فهرست منبع

feature 代码提交

xiahan 1 سال پیش
والد
کامیت
2d70ba4331
26فایلهای تغییر یافته به همراه1449 افزوده شده و 44 حذف شده
  1. 7 0
      bs-common/src/main/java/com/rongwei/safecommon/utils/SaveConstans.java
  2. 1 0
      cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/dao/ApsBlankOrderDao.java
  3. 22 0
      cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/dao/ApsProcessOperationBackupDao.java
  4. 5 0
      cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/dao/ApsProcessOperationDao.java
  5. 23 0
      cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/dao/ApsProcessOperationProcessEquBackupDao.java
  6. 5 1
      cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/dao/ApsProductDetailDao.java
  7. 7 0
      cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/dao/ApsProductionOrderDao.java
  8. 1 1
      cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/ApsBlankOrderService.java
  9. 11 0
      cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/ApsProcessOperationBackupService.java
  10. 11 0
      cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/ApsProcessOperationProcessEquBackupService.java
  11. 6 0
      cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/ApsProductionOrderService.java
  12. 89 36
      cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsBlankOrderServiceImpl.java
  13. 20 0
      cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsProcessOperationBackupServiceImpl.java
  14. 20 0
      cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsProcessOperationProcessEquBackupServiceImpl.java
  15. 55 0
      cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsProductionOrderServiceImpl.java
  16. 78 0
      cx-aps/cx-aps-common/src/main/resources/mybatis/ApsBlankOrderDao.xml
  17. 163 0
      cx-aps/cx-aps-common/src/main/resources/mybatis/ApsProcessOperationBackupDao.xml
  18. 35 3
      cx-aps/cx-aps-common/src/main/resources/mybatis/ApsProcessOperationDao.xml
  19. 90 0
      cx-aps/cx-aps-common/src/main/resources/mybatis/ApsProcessOperationProcessEquBackupDao.xml
  20. 74 0
      cx-aps/cx-aps-common/src/main/resources/mybatis/ApsProductDetailDao.xml
  21. 58 0
      cx-aps/cx-aps-common/src/main/resources/mybatis/ApsProductionOrderDao.xml
  22. 459 0
      cx-aps/cx-aps-entity/src/main/java/com/rongwei/bsentity/domain/ApsProcessOperationBackupDo.java
  23. 157 0
      cx-aps/cx-aps-entity/src/main/java/com/rongwei/bsentity/domain/ApsProcessOperationProcessEquBackupDo.java
  24. 2 3
      cx-aps/cx-aps-entity/src/main/java/com/rongwei/bsentity/domain/ApsProductDetailDo.java
  25. 2 0
      cx-aps/cx-aps-server/src/main/java/com/rongwei/bsserver/controller/ApsBlankOrderController.java
  26. 48 0
      cx-aps/cx-aps-server/src/main/java/com/rongwei/bsserver/controller/ApsProductionOrderController.java

+ 7 - 0
bs-common/src/main/java/com/rongwei/safecommon/utils/SaveConstans.java

@@ -552,4 +552,11 @@ public class SaveConstans {
 
     }
 
+    /**
+     * 坯料计划生产状态
+     */
+    public static class ProductionStatus{
+        public static final String TO_BE_SCHEDULED ="10";
+    }
+
 }

+ 1 - 0
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/dao/ApsBlankOrderDao.java

@@ -39,4 +39,5 @@ public interface ApsBlankOrderDao extends BaseMapper<ApsBlankOrderDo> {
     @Update("update aps_blank_order set CRAFTROUTEID = #{craftrouteid} where ID=#{blankId} ")
     void upCraftrouteId(@Param("blankId") String blankId, @Param("craftrouteid") String craftrouteid);
 
+    void publish(@Param("productionOrderIds") List<String> productionOrderIds);
 }

+ 22 - 0
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/dao/ApsProcessOperationBackupDao.java

@@ -0,0 +1,22 @@
+package com.rongwei.bscommon.sys.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.rongwei.bsentity.domain.ApsProcessOperationBackupDo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @Entity com.rongwei.training.domain.ApsProcessOperationBackup
+ */
+public interface ApsProcessOperationBackupDao extends BaseMapper<ApsProcessOperationBackupDo> {
+    void processOperationBackup(@Param("processOperationIdList") List<String> processOperationIdList,
+                                @Param("userId") String userId,
+                                @Param("userName") String userName);
+
+    void deletedByBlankId(@Param("blankIds") List<String> blankIds);
+}
+
+
+
+

+ 5 - 0
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/dao/ApsProcessOperationDao.java

@@ -57,4 +57,9 @@ public interface ApsProcessOperationDao extends BaseMapper<ApsProcessOperationDo
 
     @Select("select ID,PLANPROCESSRALL from aps_process_operation where DELETED='0' and BLANKID=#{blankid}")
     List<ApsProcessOperationDo> getProcessOperation(@Param("blankid") String blankid);
+
+    void publish(@Param("productionOrderIds") List<String> productionOrderIds);
+
+    void publishCancel(@Param("productionOrderIds") List<String> productionOrderIds);
+
 }

+ 23 - 0
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/dao/ApsProcessOperationProcessEquBackupDao.java

@@ -0,0 +1,23 @@
+package com.rongwei.bscommon.sys.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.rongwei.bsentity.domain.ApsProcessOperationProcessEquBackupDo;
+import com.rongwei.bsentity.domain.ApsProcessOperationProcessEquDo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @Entity com.rongwei.training.domain.ApsProcessOperationProcessEquBackup
+ */
+public interface ApsProcessOperationProcessEquBackupDao extends BaseMapper<ApsProcessOperationProcessEquBackupDo> {
+    void processOperationEquBackup(@Param("equDos") List<ApsProcessOperationProcessEquDo> equDos,
+                                   @Param("userId") String userId,
+                                   @Param("userName") String userName);
+
+    void deletedByBlankId(@Param("blankIds") List<String> blankIds);
+}
+
+
+
+

+ 5 - 1
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/dao/ApsProductDetailDao.java

@@ -4,6 +4,9 @@ package com.rongwei.bscommon.sys.dao;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.rongwei.bsentity.domain.ApsCustomerManagementDo;
 import com.rongwei.bsentity.domain.ApsProductDetailDo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 import com.rongwei.bsentity.domain.ApsProductionMergeOrderDo;
 import com.rongwei.bsentity.domain.ApsProductionOrderDo;
 import org.apache.ibatis.annotations.Param;
@@ -41,4 +44,5 @@ public interface ApsProductDetailDao extends BaseMapper<ApsProductDetailDo> {
     @Select("select ID,CUSTOMERNAME,DELIVERYTIME from aps_customer_management where DELETED='0'")
     List<ApsCustomerManagementDo> getCustomerData();
 
-}
+    void publish(@Param("productionOrderIds") List<String> productionOrderIds);
+}

+ 7 - 0
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/dao/ApsProductionOrderDao.java

@@ -2,12 +2,19 @@ package com.rongwei.bscommon.sys.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.rongwei.bsentity.domain.ApsProductionOrderDo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * @Entity com.rongwei.training.domain.ApsProductionOrder
  */
 public interface ApsProductionOrderDao extends BaseMapper<ApsProductionOrderDo> {
+    void publish(@Param("ids") List<String> productionOrderIds);
+    void publishCancel(@Param("ids") List<String> productionOrderIds);
+
 
+    List<String> getStartWorkById(@Param("ids") List<String> ids);
 }
 
 

+ 1 - 1
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/ApsBlankOrderService.java

@@ -6,7 +6,7 @@ import com.rongwei.bsentity.vo.ApsBlankOrderVo;
 import com.rongwei.bsentity.vo.ApsPlanVo;
 import com.rongwei.bsentity.vo.OrderLockVo;
 import com.rongwei.bsentity.vo.ProductionScheduleVo;
-
+import com.rongwei.rwcommon.base.R;
 import java.util.List;
 
 /**

+ 11 - 0
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/ApsProcessOperationBackupService.java

@@ -0,0 +1,11 @@
+package com.rongwei.bscommon.sys.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwei.bsentity.domain.ApsProcessOperationBackupDo;
+
+/**
+ *
+ */
+public interface ApsProcessOperationBackupService extends IService<ApsProcessOperationBackupDo> {
+
+}

+ 11 - 0
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/ApsProcessOperationProcessEquBackupService.java

@@ -0,0 +1,11 @@
+package com.rongwei.bscommon.sys.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwei.bsentity.domain.ApsProcessOperationProcessEquBackupDo;
+
+/**
+ *
+ */
+public interface ApsProcessOperationProcessEquBackupService extends IService<ApsProcessOperationProcessEquBackupDo> {
+
+}

+ 6 - 0
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/ApsProductionOrderService.java

@@ -2,10 +2,16 @@ package com.rongwei.bscommon.sys.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.rongwei.bsentity.domain.ApsProductionOrderDo;
+import com.rongwei.rwcommon.base.R;
+
+import java.util.List;
 
 /**
  *
  */
 public interface ApsProductionOrderService extends IService<ApsProductionOrderDo> {
 
+    R publish(List<String> productionOrderIds);
+
+    R publishCancel(List<String> productionOrderIds) ;
 }

+ 89 - 36
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsBlankOrderServiceImpl.java

@@ -2,33 +2,37 @@ package com.rongwei.bscommon.sys.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
-import cn.hutool.core.collection.ListUtil;
 import cn.hutool.core.date.DateField;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.json.JSONConfig;
 import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
-import com.rongwei.bscommon.sys.dao.ApsBlankOrderDao;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.rongwei.bscommon.sys.dao.*;
 import com.rongwei.bscommon.sys.fegin.RwApsServer;
 import com.rongwei.bscommon.sys.service.*;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.rongwei.bsentity.domain.*;
 import com.rongwei.bsentity.vo.*;
+import com.rongwei.rwadmincommon.system.vo.SysUserVo;
 import com.rongwei.rwcommon.base.exception.CustomException;
 import com.rongwei.rwcommon.utils.SecurityUtil;
 import com.rongwei.rwcommon.utils.StringUtils;
+import com.rongwei.safecommon.utils.CXCommonUtils;
 import com.rongwei.safecommon.utils.SaveConstans;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+
 import java.math.BigDecimal;
 import java.time.ZoneId;
 import java.util.*;
 import java.util.stream.Collectors;
 
+import static com.rongwei.safecommon.utils.SaveConstans.ProductionStatus.TO_BE_SCHEDULED;
+
 /**
  * <p>
  * 生产订单_坯料计划 服务实现类
@@ -56,6 +60,12 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
     private ApsScheduleConfigService apsScheduleConfigService;
     @Autowired
     private ApsProductionOrderService apsProductionOrderService;
+    @Autowired
+    private ApsProcessOperationBackupDao apsProcessOperationBackupDao;
+    @Autowired
+    private ApsProcessOperationProcessEquBackupDao apsProcessOperationProcessEquBackupDao;
+    @Autowired
+    private ApsProductionOrderDao apsProcessOperationDao;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -68,37 +78,59 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
 
     /**
      * 取消订单排程
+     *
      * @param apsProductionOrderIds
      */
     @Override
-    public void orderApsCancel(List<String> apsProductionOrderIds) throws Exception{
-        if(apsProductionOrderIds != null && apsProductionOrderIds.size()>0){
-            List<ApsBlankOrderDo> blankOrderDos = this.list(new LambdaQueryWrapper<ApsBlankOrderDo>().in(ApsBlankOrderDo::getProductionorderid, apsProductionOrderIds));
-            if(blankOrderDos != null && blankOrderDos.size()>0){
-                List<String> blankids = blankOrderDos.stream().map(ApsBlankOrderDo::getId).collect(Collectors.toList());
-                // 删除已排程的工序作业
-                processOperationProcessEquService.remove(new LambdaQueryWrapper<ApsProcessOperationProcessEquDo>().in(ApsProcessOperationProcessEquDo::getBlankid,blankids));
-                // 更新订单的排程状态
-                List<ApsProductionOrderDo> productionOrderDos = new ArrayList<>();
-                for (String apsProductionOrderId : apsProductionOrderIds) {
-                    ApsProductionOrderDo productionOrderDo = new ApsProductionOrderDo();
-                    productionOrderDo.setId(apsProductionOrderId);
-                    productionOrderDo.setSchedulstatus(SaveConstans.SchedulstatusTyep.SCHEDULSTATUS_TOSCHEDULE);
-                    productionOrderDos.add(productionOrderDo);
-                }
-                if(productionOrderDos != null && productionOrderDos.size()>0){
-                    apsProductionOrderService.updateBatchById(productionOrderDos);
-                }
-                // 更新坯料计划的锁定状态
-                List<ApsBlankOrderDo> updateBlanks = blankids.stream().map(str -> {
-                    ApsBlankOrderDo blankOrderDo = new ApsBlankOrderDo();
-                    blankOrderDo.setId(str);
-                    blankOrderDo.setLockmark(SaveConstans.LockmarkType.LOCKMARK_N);
-                    return blankOrderDo;
-                }).collect(Collectors.toList());
-                this.updateBatchById(updateBlanks);
-            }
+    public void orderApsCancel(List<String> apsProductionOrderIds) throws Exception {
+        if (apsProductionOrderIds.isEmpty()) {
+            log.debug("取消排程参数为空");
+            return;
+        }
+        // 获取坯料计划
+        List<ApsBlankOrderDo> blankOrderDos = this.list(new LambdaQueryWrapper<ApsBlankOrderDo>()
+                .in(ApsBlankOrderDo::getProductionorderid, apsProductionOrderIds));
+        if (blankOrderDos.isEmpty()) {
+            return;
         }
+        // 校验取消的订单中是否存在已加工的工序作业
+        List<String> startWorkOrderNo = apsProcessOperationDao.getStartWorkById(apsProductionOrderIds);
+        if (!startWorkOrderNo.isEmpty()){
+            throw new CustomException(CollUtil.join(startWorkOrderNo, ",")+" 以上订单存在已开工的坯料计划!");
+        }
+        List<String> blankids = blankOrderDos.stream().map(ApsBlankOrderDo::getId).collect(Collectors.toList());
+        // 删除工序作业和工序作业明备份数据
+        apsProcessOperationBackupDao.deletedByBlankId(blankids);
+        apsProcessOperationProcessEquBackupDao.deletedByBlankId(blankids);
+        // 更工序作业生产状态=待排程,是否锁定=否,
+        apsProcessOperationService.remove(new LambdaQueryWrapper<ApsProcessOperationDo>().in(ApsProcessOperationDo::getBlankid,blankids));
+        // 清空作业明细
+        processOperationProcessEquService.remove(new LambdaQueryWrapper<ApsProcessOperationProcessEquDo>().in(ApsProcessOperationProcessEquDo::getBlankid, blankids));
+        // 更新坯料计划状态
+
+        // 更新订单的排程状态
+        List<ApsProductionOrderDo> productionOrderDos = new ArrayList<>();
+        for (String apsProductionOrderId : apsProductionOrderIds) {
+            ApsProductionOrderDo productionOrderDo = new ApsProductionOrderDo();
+            productionOrderDo.setId(apsProductionOrderId);
+            productionOrderDo.setSchedulstatus(SaveConstans.SchedulstatusTyep.SCHEDULSTATUS_TOSCHEDULE);
+            productionOrderDo.setScheduledeliverydate(null);
+            productionOrderDos.add(productionOrderDo);
+        }
+        if (productionOrderDos != null && productionOrderDos.size() > 0) {
+            apsProductionOrderService.updateBatchById(productionOrderDos);
+        }
+        // 更新坯料计划的锁定状态
+        List<ApsBlankOrderDo> updateBlanks = blankids.stream().map(str -> {
+            ApsBlankOrderDo blankOrderDo = new ApsBlankOrderDo();
+            blankOrderDo.setId(str);
+            blankOrderDo.setLockmark(SaveConstans.LockmarkType.LOCKMARK_N);
+            blankOrderDo.setProductstatus(TO_BE_SCHEDULED);
+            return blankOrderDo;
+        }).collect(Collectors.toList());
+        this.updateBatchById(updateBlanks);
+
+
     }
 
     /**
@@ -274,7 +306,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
             }
             // 更新订单的排程交货期、排程状态
             if(orderDeliveryTime.size()>0){
-                orderDeliveryTime.forEach((k,v)->{
+                orderDeliveryTime.forEach((k, v)->{
                     ApsProductionOrderDo productionOrderDo = apsProductionOrderService.getById(k);
                     ApsProductionOrderDo apsProductionOrderDo = new ApsProductionOrderDo();
                     apsProductionOrderDo.setId(k);
@@ -289,24 +321,45 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
             }
 
         }
+        backupProcessOperation(apsProcessOperationProcessEquDos, productionScheduleRetVo.getProcesses());
+    }
+
+    /**
+     * 工序作业备份
+     *
+     * @param apsProcessOperationProcessEquDos
+     * @param processes
+     */
+    private void backupProcessOperation(List<ApsProcessOperationProcessEquDo> apsProcessOperationProcessEquDos,
+                                        List<ProductionProcesses> processes) {
+        
+
+        // 工序作业明细ID
+        List<String> apsProcessOperationIds = processes.stream().map(ProductionProcesses::getId).distinct().collect(Collectors.toList());
+        SysUserVo currentUser = CXCommonUtils.getCurrentUser();
+        apsProcessOperationBackupDao.processOperationBackup(apsProcessOperationIds,
+                currentUser == null ? null : currentUser.getId(), currentUser == null ? null : currentUser.getName());
+        apsProcessOperationProcessEquBackupDao.processOperationEquBackup(apsProcessOperationProcessEquDos,
+                currentUser == null ? null : currentUser.getId(), currentUser == null ? null : currentUser.getName());
     }
 
     /**
      * 原始订单表数据转换APS平台模型数据
+     *
      * @param apsBlankOrders
      * @return
      */
     @Override
-    public ProductionScheduleVo apsPlanModelSet(List<ApsBlankOrderVo> apsBlankOrders){
+    public ProductionScheduleVo apsPlanModelSet(List<ApsBlankOrderVo> apsBlankOrders) {
         ProductionScheduleVo productionScheduleVo = new ProductionScheduleVo();
         productionScheduleVo.setProductionScheduleId("批量排程");
         List<ApsScheduleConfigDo> apsConfigs = apsScheduleConfigService.list();
-        if (apsConfigs != null && apsConfigs.size()>0){
+        if (apsConfigs != null && apsConfigs.size() > 0) {
             ApsScheduleConfigDo apsScheduleConfig = apsConfigs.get(0);
             productionScheduleVo.setPlanSeconds(apsScheduleConfig.getScheduleruntime());
-            Map<String,Integer> roamTime = new HashMap<>();
-            roamTime.put("WORKSHOP_IN",apsScheduleConfig.getWorkshopin());
-            roamTime.put("WORKSHOP_CROSS",apsScheduleConfig.getWorkshopcross());
+            Map<String, Integer> roamTime = new HashMap<>();
+            roamTime.put("WORKSHOP_IN", apsScheduleConfig.getWorkshopin());
+            roamTime.put("WORKSHOP_CROSS", apsScheduleConfig.getWorkshopcross());
             productionScheduleVo.setRoamTime(roamTime);
             // 排程计划开始时间
             int a = 8;

+ 20 - 0
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsProcessOperationBackupServiceImpl.java

@@ -0,0 +1,20 @@
+package com.rongwei.bscommon.sys.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.rongwei.bscommon.sys.dao.ApsProcessOperationBackupDao;
+import com.rongwei.bscommon.sys.service.ApsProcessOperationBackupService;
+import com.rongwei.bsentity.domain.ApsProcessOperationBackupDo;
+import org.springframework.stereotype.Service;
+
+/**
+ *
+ */
+@Service
+public class ApsProcessOperationBackupServiceImpl extends ServiceImpl<ApsProcessOperationBackupDao, ApsProcessOperationBackupDo>
+implements ApsProcessOperationBackupService {
+
+}
+
+
+
+

+ 20 - 0
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsProcessOperationProcessEquBackupServiceImpl.java

@@ -0,0 +1,20 @@
+package com.rongwei.bscommon.sys.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.rongwei.bscommon.sys.dao.ApsProcessOperationProcessEquBackupDao;
+import com.rongwei.bscommon.sys.service.ApsProcessOperationProcessEquBackupService;
+import com.rongwei.bsentity.domain.ApsProcessOperationProcessEquBackupDo;
+import org.springframework.stereotype.Service;
+
+/**
+ *
+ */
+@Service
+public class ApsProcessOperationProcessEquBackupServiceImpl extends ServiceImpl<ApsProcessOperationProcessEquBackupDao, ApsProcessOperationProcessEquBackupDo>
+implements ApsProcessOperationProcessEquBackupService {
+
+}
+
+
+
+

+ 55 - 0
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsProductionOrderServiceImpl.java

@@ -1,17 +1,72 @@
 package com.rongwei.bscommon.sys.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.rongwei.bscommon.sys.dao.ApsBlankOrderDao;
+import com.rongwei.bscommon.sys.dao.ApsProcessOperationDao;
+import com.rongwei.bscommon.sys.dao.ApsProductDetailDao;
 import com.rongwei.bscommon.sys.dao.ApsProductionOrderDao;
 import com.rongwei.bscommon.sys.service.ApsProductionOrderService;
 import com.rongwei.bsentity.domain.ApsProductionOrderDo;
+import com.rongwei.rwcommon.base.R;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  *
  */
 @Service
 public class ApsProductionOrderServiceImpl extends ServiceImpl<ApsProductionOrderDao, ApsProductionOrderDo>
         implements ApsProductionOrderService {
+    private final Logger log = LoggerFactory.getLogger(this.getClass().getName());
+    @Autowired
+    private ApsProcessOperationDao apsProcessOperationDao;
+    @Autowired
+    private ApsBlankOrderDao apsBlankOrderDao;
+    @Autowired
+    private ApsProductDetailDao apsProductDetailDao;
+
+    /**
+     * 发布订单排程
+     * @param productionOrderIds
+     * @return
+     */
+    @Override
+    public R publish(List<String> productionOrderIds) {
+        if(productionOrderIds.isEmpty()){
+            return  R.ok();
+        }
+        // 更新工序作业的生产状态和是否锁定=是
+        apsProcessOperationDao.publish(productionOrderIds);
+        // 更新坯料计划的生产状态
+        apsBlankOrderDao.publish(productionOrderIds);
+        // 更新产品明细的生产状态
+        apsProductDetailDao.publish(productionOrderIds);
+        // 更新订单的生产状态
+        this.baseMapper.publish(productionOrderIds);
+        return R.ok();
+    }
+
+    /**
+     * 取消发布订单排程
+     * @param productionOrderIds
+     * @return
+     */
+    @Override
+    public R publishCancel(List<String> productionOrderIds) {
+        // 更新工序作业的生产状态和是否锁定=是
+        apsProcessOperationDao.publish(productionOrderIds);
+        // 更新坯料计划的生产状态
+        apsBlankOrderDao.publish(productionOrderIds);
+        // 更新产品明细的生产状态
+        apsProductDetailDao.publish(productionOrderIds);
+        // 更新订单的生产状态
+        this.baseMapper.publishCancel(productionOrderIds);
+        return R.ok();
+    }
 
 }
 

+ 78 - 0
cx-aps/cx-aps-common/src/main/resources/mybatis/ApsBlankOrderDao.xml

@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.rongwei.bscommon.sys.dao.ApsBlankOrderDao">
+
+    <resultMap id="BaseResultMap" type="com.rongwei.bsentity.domain.ApsBlankOrderDo">
+            <id property="id" column="ID" jdbcType="VARCHAR"/>
+            <result property="productionorderid" column="PRODUCTIONORDERID" jdbcType="VARCHAR"/>
+            <result property="materialname" column="MATERIALNAME" jdbcType="VARCHAR"/>
+            <result property="materialcode" column="MATERIALCODE" jdbcType="VARCHAR"/>
+            <result property="blanktype" column="BLANKTYPE" jdbcType="VARCHAR"/>
+            <result property="producttype" column="PRODUCTTYPE" jdbcType="VARCHAR"/>
+            <result property="alloy" column="ALLOY" jdbcType="VARCHAR"/>
+            <result property="alloystatus" column="ALLOYSTATUS" jdbcType="VARCHAR"/>
+            <result property="thickness" column="THICKNESS" jdbcType="DECIMAL"/>
+            <result property="prowidth" column="PROWIDTH" jdbcType="DECIMAL"/>
+            <result property="prolength" column="PROLENGTH" jdbcType="DECIMAL"/>
+            <result property="singlerollweight" column="SINGLEROLLWEIGHT" jdbcType="DECIMAL"/>
+            <result property="numberunit" column="NUMBERUNIT" jdbcType="VARCHAR"/>
+            <result property="rollnum" column="ROLLNUM" jdbcType="INTEGER"/>
+            <result property="totalweight" column="TOTALWEIGHT" jdbcType="DECIMAL"/>
+            <result property="preparematerial" column="PREPAREMATERIAL" jdbcType="VARCHAR"/>
+            <result property="defectiveproduct" column="DEFECTIVEPRODUCT" jdbcType="VARCHAR"/>
+            <result property="preparematerialbatchno" column="PREPAREMATERIALBATCHNO" jdbcType="VARCHAR"/>
+            <result property="outputorderproduct" column="OUTPUTORDERPRODUCT" jdbcType="VARCHAR"/>
+            <result property="outputfinishproduct" column="OUTPUTFINISHPRODUCT" jdbcType="VARCHAR"/>
+            <result property="outputmaterial" column="OUTPUTMATERIAL" jdbcType="VARCHAR"/>
+            <result property="productstatus" column="PRODUCTSTATUS" jdbcType="VARCHAR"/>
+            <result property="tenantid" column="TENANTID" jdbcType="VARCHAR"/>
+            <result property="roption" column="ROPTION" jdbcType="VARCHAR"/>
+            <result property="deleted" column="DELETED" jdbcType="CHAR"/>
+            <result property="remark" column="REMARK" jdbcType="VARCHAR"/>
+            <result property="createdate" column="CREATEDATE" jdbcType="TIMESTAMP"/>
+            <result property="createuserid" column="CREATEUSERID" jdbcType="VARCHAR"/>
+            <result property="modifydate" column="MODIFYDATE" jdbcType="TIMESTAMP"/>
+            <result property="modifyuserid" column="MODIFYUSERID" jdbcType="VARCHAR"/>
+            <result property="createusername" column="CREATEUSERNAME" jdbcType="VARCHAR"/>
+            <result property="modifyusername" column="MODIFYUSERNAME" jdbcType="VARCHAR"/>
+            <result property="producttypeid" column="PRODUCTTYPEID" jdbcType="VARCHAR"/>
+            <result property="inputreportdescribe" column="INPUTREPORTDESCRIBE" jdbcType="VARCHAR"/>
+            <result property="craftrouteid" column="CRAFTROUTEID" jdbcType="VARCHAR"/>
+            <result property="lockmark" column="LOCKMARK" jdbcType="VARCHAR"/>
+            <result property="isstag" column="ISSTAG" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        ID,PRODUCTIONORDERID,MATERIALNAME,
+        MATERIALCODE,BLANKTYPE,PRODUCTTYPE,
+        ALLOY,ALLOYSTATUS,THICKNESS,
+        PROWIDTH,PROLENGTH,SINGLEROLLWEIGHT,
+        NUMBERUNIT,ROLLNUM,TOTALWEIGHT,
+        PREPAREMATERIAL,DEFECTIVEPRODUCT,PREPAREMATERIALBATCHNO,
+        OUTPUTORDERPRODUCT,OUTPUTFINISHPRODUCT,OUTPUTMATERIAL,
+        PRODUCTSTATUS,TENANTID,ROPTION,
+        DELETED,REMARK,CREATEDATE,
+        CREATEUSERID,MODIFYDATE,MODIFYUSERID,
+        CREATEUSERNAME,MODIFYUSERNAME,PRODUCTTYPEID,
+        INPUTREPORTDESCRIBE,CRAFTROUTEID,LOCKMARK,
+        ISSTAG
+    </sql>
+    <update id="publish">
+        <if test="productionOrderIds != null and productionOrderIds.size() >0">
+            UPDATE aps_blank_order b
+                <set>
+                    PRODUCTSTATUS=(select min(PROCESSSTATUS) from aps_process_operation a where a.BLANKID = b.ID and deleted='0'
+                group by a.BLANKID )
+                </set>
+                <where>
+                    AND DELETED='0'
+                    AND PRODUCTIONORDERID in
+                    <foreach collection="productionOrderIds" item="id" open="(" close=")" separator=",">
+                        #{id}
+                    </foreach>
+                </where>
+        </if>
+    </update>
+</mapper>

+ 163 - 0
cx-aps/cx-aps-common/src/main/resources/mybatis/ApsProcessOperationBackupDao.xml

@@ -0,0 +1,163 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.rongwei.bscommon.sys.dao.ApsProcessOperationBackupDao">
+
+    <resultMap id="BaseResultMap" type="com.rongwei.bsentity.domain.ApsProcessOperationBackupDo">
+        <id property="id" column="ID" jdbcType="VARCHAR"/>
+        <result property="tenantid" column="TENANTID" jdbcType="VARCHAR"/>
+        <result property="roption" column="ROPTION" jdbcType="VARCHAR"/>
+        <result property="deleted" column="DELETED" jdbcType="VARCHAR"/>
+        <result property="remark" column="REMARK" jdbcType="VARCHAR"/>
+        <result property="createdate" column="CREATEDATE" jdbcType="TIMESTAMP"/>
+        <result property="createuserid" column="CREATEUSERID" jdbcType="VARCHAR"/>
+        <result property="modifydate" column="MODIFYDATE" jdbcType="TIMESTAMP"/>
+        <result property="modifyuserid" column="MODIFYUSERID" jdbcType="VARCHAR"/>
+        <result property="createusername" column="CREATEUSERNAME" jdbcType="VARCHAR"/>
+        <result property="modifyusername" column="MODIFYUSERNAME" jdbcType="VARCHAR"/>
+        <result property="ownedfactory" column="OWNEDFACTORY" jdbcType="VARCHAR"/>
+        <result property="craftstepid" column="CRAFTSTEPID" jdbcType="VARCHAR"/>
+        <result property="stepnum" column="STEPNUM" jdbcType="VARCHAR"/>
+        <result property="processid" column="PROCESSID" jdbcType="VARCHAR"/>
+        <result property="processcode" column="PROCESSCODE" jdbcType="VARCHAR"/>
+        <result property="process" column="PROCESS" jdbcType="VARCHAR"/>
+        <result property="processname" column="PROCESSNAME" jdbcType="VARCHAR"/>
+        <result property="processway" column="PROCESSWAY" jdbcType="VARCHAR"/>
+        <result property="numunit" column="NUMUNIT" jdbcType="VARCHAR"/>
+        <result property="onceprocessval" column="ONCEPROCESSVAL" jdbcType="DECIMAL"/>
+        <result property="onceprocessmin" column="ONCEPROCESSMIN" jdbcType="DECIMAL"/>
+        <result property="pertimecapacity" column="PERTIMECAPACITY" jdbcType="DECIMAL"/>
+        <result property="timeunit" column="TIMEUNIT" jdbcType="VARCHAR"/>
+        <result property="prepressworkmin" column="PREPRESSWORKMIN" jdbcType="DECIMAL"/>
+        <result property="loadingmin" column="LOADINGMIN" jdbcType="DECIMAL"/>
+        <result property="cuttingmin" column="CUTTINGMIN" jdbcType="DECIMAL"/>
+        <result property="cutfinishmin" column="CUTFINISHMIN" jdbcType="DECIMAL"/>
+        <result property="minflowbatch" column="MINFLOWBATCH" jdbcType="DECIMAL"/>
+        <result property="minflowwaitmin" column="MINFLOWWAITMIN" jdbcType="DECIMAL"/>
+        <result property="maxflowwaitmin" column="MAXFLOWWAITMIN" jdbcType="DECIMAL"/>
+        <result property="ifblankprocess" column="IFBLANKPROCESS" jdbcType="VARCHAR"/>
+        <result property="materialcode" column="MATERIALCODE" jdbcType="VARCHAR"/>
+        <result property="materialname" column="MATERIALNAME" jdbcType="VARCHAR"/>
+        <result property="thickness" column="THICKNESS" jdbcType="DECIMAL"/>
+        <result property="thickstr" column="THICKSTR" jdbcType="DECIMAL"/>
+        <result property="thickend" column="THICKEND" jdbcType="DECIMAL"/>
+        <result property="prowidth" column="PROWIDTH" jdbcType="DECIMAL"/>
+        <result property="widthstr" column="WIDTHSTR" jdbcType="DECIMAL"/>
+        <result property="widthend" column="WIDTHEND" jdbcType="DECIMAL"/>
+        <result property="prolength" column="PROLENGTH" jdbcType="DECIMAL"/>
+        <result property="lengthstr" column="LENGTHSTR" jdbcType="DECIMAL"/>
+        <result property="lengthend" column="LENGTHEND" jdbcType="DECIMAL"/>
+        <result property="inmatercondition" column="INMATERCONDITION" jdbcType="VARCHAR"/>
+        <result property="outmaterrequest" column="OUTMATERREQUEST" jdbcType="VARCHAR"/>
+        <result property="canchoosedeviceid" column="CANCHOOSEDEVICEID" jdbcType="VARCHAR"/>
+        <result property="chooseequ" column="CHOOSEEQU" jdbcType="VARCHAR"/>
+        <result property="blankid" column="BLANKID" jdbcType="VARCHAR"/>
+        <result property="planinputid" column="PLANINPUTID" jdbcType="VARCHAR"/>
+        <result property="planinput" column="PLANINPUT" jdbcType="VARCHAR"/>
+        <result property="planoutput" column="PLANOUTPUT" jdbcType="VARCHAR"/>
+        <result property="planinrall" column="PLANINRALL" jdbcType="INTEGER"/>
+        <result property="planblankrall" column="PLANBLANKRALL" jdbcType="INTEGER"/>
+        <result property="planprocessrall" column="PLANPROCESSRALL" jdbcType="INTEGER"/>
+        <result property="processworkshopid" column="PROCESSWORKSHOPID" jdbcType="VARCHAR"/>
+        <result property="processworkshop" column="PROCESSWORKSHOP" jdbcType="VARCHAR"/>
+        <result property="processdeviceid" column="PROCESSDEVICEID" jdbcType="VARCHAR"/>
+        <result property="processdevice" column="PROCESSDEVICE" jdbcType="VARCHAR"/>
+        <result property="planstartdate" column="PLANSTARTDATE" jdbcType="TIMESTAMP"/>
+        <result property="actualstartdate" column="ACTUALSTARTDATE" jdbcType="TIMESTAMP"/>
+        <result property="planenddate" column="PLANENDDATE" jdbcType="TIMESTAMP"/>
+        <result property="actualfinishdate" column="ACTUALFINISHDATE" jdbcType="TIMESTAMP"/>
+        <result property="actualimputroll" column="ACTUALIMPUTROLL" jdbcType="INTEGER"/>
+        <result property="inputunqualifiedroll" column="INPUTUNQUALIFIEDROLL" jdbcType="INTEGER"/>
+        <result property="actualcanprocessroll" column="ACTUALCANPROCESSROLL" jdbcType="INTEGER"/>
+        <result property="closestatus" column="CLOSESTATUS" jdbcType="VARCHAR"/>
+        <result property="secondroll" column="SECONDROLL" jdbcType="INTEGER"/>
+        <result property="startingroll" column="STARTINGROLL" jdbcType="INTEGER"/>
+        <result property="reportroll" column="REPORTROLL" jdbcType="INTEGER"/>
+        <result property="checkoutroll" column="CHECKOUTROLL" jdbcType="INTEGER"/>
+        <result property="unfinishroll" column="UNFINISHROLL" jdbcType="INTEGER"/>
+        <result property="cancelroll" column="CANCELROLL" jdbcType="INTEGER"/>
+        <result property="workstatus" column="WORKSTATUS" jdbcType="VARCHAR"/>
+        <result property="processstatus" column="PROCESSSTATUS" jdbcType="VARCHAR"/>
+        <result property="bachmaterialprocess" column="BACHMATERIALPROCESS" jdbcType="VARCHAR"/>
+        <result property="processtotaltime" column="PROCESSTOTALTIME" jdbcType="DECIMAL"/>
+        <result property="waitreportid" column="WAITREPORTID" jdbcType="VARCHAR"/>
+        <result property="planprocessnum" column="PLANPROCESSNUM" jdbcType="INTEGER"/>
+        <result property="previousprocessid" column="PREVIOUSPROCESSID" jdbcType="VARCHAR"/>
+        <result property="previousprocess" column="PREVIOUSPROCESS" jdbcType="VARCHAR"/>
+        <result property="nextprocessid" column="NEXTPROCESSID" jdbcType="VARCHAR"/>
+        <result property="nextprocess" column="NEXTPROCESS" jdbcType="VARCHAR"/>
+        <result property="level" column="LEVEL" jdbcType="INTEGER"/>
+        <result property="producttypeid" column="PRODUCTTYPEID" jdbcType="VARCHAR"/>
+        <result property="producttype" column="PRODUCTTYPE" jdbcType="VARCHAR"/>
+        <result property="metal" column="METAL" jdbcType="VARCHAR"/>
+        <result property="metalstate" column="METALSTATE" jdbcType="VARCHAR"/>
+        <result property="outputqualifiednum" column="OUTPUTQUALIFIEDNUM" jdbcType="INTEGER"/>
+        <result property="outputunqualifiednum" column="OUTPUTUNQUALIFIEDNUM" jdbcType="INTEGER"/>
+        <result property="changeinmeter" column="CHANGEINMETER" jdbcType="VARCHAR"/>
+        <result property="singlerollweight" column="SINGLEROLLWEIGHT" jdbcType="DECIMAL"/>
+        <result property="lockmark" column="LOCKMARK" jdbcType="VARCHAR"/>
+        <result property="backupuser" column="BACKUPUSER" jdbcType="VARCHAR"/>
+        <result property="backupuserid" column="BACKUPUSERID" jdbcType="VARCHAR"/>
+        <result property="backupdate" column="BACKUPDATE" jdbcType="TIMESTAMP"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        ID,TENANTID,ROPTION,
+        DELETED,REMARK,CREATEDATE,
+        CREATEUSERID,MODIFYDATE,MODIFYUSERID,
+        CREATEUSERNAME,MODIFYUSERNAME,OWNEDFACTORY,
+        CRAFTSTEPID,STEPNUM,PROCESSID,
+        PROCESSCODE,PROCESS,PROCESSNAME,
+        PROCESSWAY,NUMUNIT,ONCEPROCESSVAL,
+        ONCEPROCESSMIN,PERTIMECAPACITY,TIMEUNIT,
+        PREPRESSWORKMIN,LOADINGMIN,CUTTINGMIN,
+        CUTFINISHMIN,MINFLOWBATCH,MINFLOWWAITMIN,
+        MAXFLOWWAITMIN,IFBLANKPROCESS,MATERIALCODE,
+        MATERIALNAME,THICKNESS,THICKSTR,
+        THICKEND,PROWIDTH,WIDTHSTR,
+        WIDTHEND,PROLENGTH,LENGTHSTR,
+        LENGTHEND,INMATERCONDITION,OUTMATERREQUEST,
+        CANCHOOSEDEVICEID,CHOOSEEQU,BLANKID,
+        PLANINPUTID,PLANINPUT,PLANOUTPUT,
+        PLANINRALL,PLANBLANKRALL,PLANPROCESSRALL,
+        PROCESSWORKSHOPID,PROCESSWORKSHOP,PROCESSDEVICEID,
+        PROCESSDEVICE,PLANSTARTDATE,ACTUALSTARTDATE,
+        PLANENDDATE,ACTUALFINISHDATE,ACTUALIMPUTROLL,
+        INPUTUNQUALIFIEDROLL,ACTUALCANPROCESSROLL,CLOSESTATUS,
+        SECONDROLL,STARTINGROLL,REPORTROLL,
+        CHECKOUTROLL,UNFINISHROLL,CANCELROLL,
+        WORKSTATUS,PROCESSSTATUS,BACHMATERIALPROCESS,
+        PROCESSTOTALTIME,WAITREPORTID,PLANPROCESSNUM,
+        PREVIOUSPROCESSID,PREVIOUSPROCESS,NEXTPROCESSID,
+        NEXTPROCESS,LEVEL,PRODUCTTYPEID,
+        PRODUCTTYPE,METAL,METALSTATE,
+        OUTPUTQUALIFIEDNUM,OUTPUTUNQUALIFIEDNUM,CHANGEINMETER,
+        SINGLEROLLWEIGHT,LOCKMARK,BACKUPUSER,
+        BACKUPUSERID,BACKUPDATE
+    </sql>
+    <insert id="processOperationBackup">
+        <if test="processOperationIdList != null and processOperationIdList.size() >0">
+            <foreach collection="processOperationIdList" item="id" separator=";">
+                INSERT INTO aps_process_operation_backup (<include refid="Base_Column_List"/>)
+                SELECT
+                <include refid="Base_Column_List"/>
+                ,#{userName} AS BACKUPUSER ,#{userId} AS BACKUPUSERID,NOW() AS BACKUPDATE
+                FROM aps_process_operation
+                WHERE ID=#{id} and PROCESSSTATUS in('20','30','40')
+                ON DUPLICATE KEY UPDATE DELETED='0'
+            </foreach>
+        </if>
+    </insert>
+    <delete id="deletedByBlankId">
+        <if test="blankIds != null and blankIds.size() >0">
+            DELETE FROM aps_process_operation_backup
+            <where>
+                BLANKID in
+                <foreach collection="blankIds" item="id" open="(" close=")" separator=",">
+                    #{id}
+                </foreach>
+            </where>
+        </if>
+    </delete>
+</mapper>

+ 35 - 3
cx-aps/cx-aps-common/src/main/resources/mybatis/ApsProcessOperationDao.xml

@@ -73,7 +73,39 @@
         a.* ,apope.ID as PROCESSDETAILID
         FROM
         cte a
-        left join  (select PROCESSID,GROUP_CONCAT(DISTINCT ID) ID from aps_process_operation_process_equ
-                           where DELETED='0' group by PROCESSID)  apope on  a.ID=apope.PROCESSID
+        left join (select PROCESSID,GROUP_CONCAT(DISTINCT ID) ID from aps_process_operation_process_equ
+        where DELETED='0' group by PROCESSID) apope on a.ID=apope.PROCESSID
     </select>
- </mapper>
+    <update id="publish">
+        <if test="productionOrderIds != null and productionOrderIds.size() >0">
+            update aps_process_operation a
+            <set>
+                PROCESSSTATUS=if(PROCESSSTATUS='20','30',PROCESSSTATUS),
+                LOCKMARK='y'
+            </set>
+            <where>
+                DELETED='0' AND BLANKID in (select ID from aps_blank_order WHERE PRODUCTIONORDERID in
+                <foreach collection="productionOrderIds" open="(" close=")" item="id" separator=",">
+                    #{id}
+                </foreach>
+               and DELETED='0')
+            </where>
+        </if>
+    </update>
+    <update id="publishCancel">
+        <if test="productionOrderIds != null and productionOrderIds.size() >0">
+            update aps_process_operation a
+            <set>
+                PROCESSSTATUS='20'
+            </set>
+            <where>
+                DELETED='0' AND BLANKID in (select ID from aps_blank_order WHERE PRODUCTIONORDERID in
+                <foreach collection="productionOrderIds" open="(" close=")" item="id" separator=",">
+                    #{id}
+                </foreach>
+                and DELETED='0')
+                AND PROCESSSTATUS ='30'
+            </where>
+        </if>
+    </update>
+</mapper>

+ 90 - 0
cx-aps/cx-aps-common/src/main/resources/mybatis/ApsProcessOperationProcessEquBackupDao.xml

@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.rongwei.bscommon.sys.dao.ApsProcessOperationProcessEquBackupDao">
+
+    <resultMap id="BaseResultMap" type="com.rongwei.bsentity.domain.ApsProcessOperationProcessEquBackupDo">
+            <id property="id" column="ID" jdbcType="VARCHAR"/>
+            <result property="tenantid" column="TENANTID" jdbcType="VARCHAR"/>
+            <result property="roption" column="ROPTION" jdbcType="VARCHAR"/>
+            <result property="deleted" column="DELETED" jdbcType="VARCHAR"/>
+            <result property="remark" column="REMARK" jdbcType="VARCHAR"/>
+            <result property="createdate" column="CREATEDATE" jdbcType="TIMESTAMP"/>
+            <result property="createuserid" column="CREATEUSERID" jdbcType="VARCHAR"/>
+            <result property="modifydate" column="MODIFYDATE" jdbcType="TIMESTAMP"/>
+            <result property="modifyuserid" column="MODIFYUSERID" jdbcType="VARCHAR"/>
+            <result property="createusername" column="CREATEUSERNAME" jdbcType="VARCHAR"/>
+            <result property="modifyusername" column="MODIFYUSERNAME" jdbcType="VARCHAR"/>
+            <result property="ownedfactory" column="OWNEDFACTORY" jdbcType="VARCHAR"/>
+            <result property="processid" column="PROCESSID" jdbcType="VARCHAR"/>
+            <result property="processworkshopid" column="PROCESSWORKSHOPID" jdbcType="VARCHAR"/>
+            <result property="processworkshop" column="PROCESSWORKSHOP" jdbcType="VARCHAR"/>
+            <result property="processdeviceid" column="PROCESSDEVICEID" jdbcType="VARCHAR"/>
+            <result property="processdevice" column="PROCESSDEVICE" jdbcType="VARCHAR"/>
+            <result property="planstartdate" column="PLANSTARTDATE" jdbcType="TIMESTAMP"/>
+            <result property="actualstartdate" column="ACTUALSTARTDATE" jdbcType="TIMESTAMP"/>
+            <result property="planenddate" column="PLANENDDATE" jdbcType="TIMESTAMP"/>
+            <result property="actualfinishdate" column="ACTUALFINISHDATE" jdbcType="TIMESTAMP"/>
+            <result property="closestatus" column="CLOSESTATUS" jdbcType="VARCHAR"/>
+            <result property="planprocessrall" column="PLANPROCESSRALL" jdbcType="INTEGER"/>
+            <result property="startingroll" column="STARTINGROLL" jdbcType="INTEGER"/>
+            <result property="reportroll" column="REPORTROLL" jdbcType="INTEGER"/>
+            <result property="checkoutroll" column="CHECKOUTROLL" jdbcType="INTEGER"/>
+            <result property="unfinishroll" column="UNFINISHROLL" jdbcType="INTEGER"/>
+            <result property="workstatus" column="WORKSTATUS" jdbcType="VARCHAR"/>
+            <result property="bachmaterialprocess" column="BACHMATERIALPROCESS" jdbcType="VARCHAR"/>
+            <result property="waitreportid" column="WAITREPORTID" jdbcType="VARCHAR"/>
+            <result property="lockmark" column="LOCKMARK" jdbcType="VARCHAR"/>
+            <result property="blankid" column="BLANKID" jdbcType="VARCHAR"/>
+            <result property="backupuser" column="BACKUPUSER" jdbcType="VARCHAR"/>
+            <result property="backupuserid" column="BACKUPUSERID" jdbcType="VARCHAR"/>
+            <result property="backupdate" column="BACKUPDATE" jdbcType="TIMESTAMP"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        ID,TENANTID,ROPTION,
+        DELETED,REMARK,CREATEDATE,
+        CREATEUSERID,MODIFYDATE,MODIFYUSERID,
+        CREATEUSERNAME,MODIFYUSERNAME,OWNEDFACTORY,
+        PROCESSID,PROCESSWORKSHOPID,PROCESSWORKSHOP,
+        PROCESSDEVICEID,PROCESSDEVICE,PLANSTARTDATE,
+        ACTUALSTARTDATE,PLANENDDATE,ACTUALFINISHDATE,
+        CLOSESTATUS,PLANPROCESSRALL,STARTINGROLL,
+        REPORTROLL,CHECKOUTROLL,UNFINISHROLL,
+        WORKSTATUS,BACHMATERIALPROCESS,WAITREPORTID,
+        LOCKMARK,BLANKID,BACKUPUSER,
+        BACKUPUSERID,BACKUPDATE
+    </sql>
+    <insert id="processOperationEquBackup">
+        <if test="equDos != null and equDos.size() >0">
+            <foreach collection="processOperationIdList" item="id" separator=";">
+                INSERT INTO aps_process_operation_process_equ_backup (<include refid="Base_Column_List"/>)
+                VALUES (#{data.id},#{data.tenantid},#{data.roption},
+                #{data.deleted},#{data.remark},#{data.createdate},
+                #{data.createuserid},#{data.modifydate},#{data.modifyuserid},
+                #{data.createusername},#{data.modifyusername},#{data.ownedfactory},
+                #{data.processid},#{data.processworkshopid},#{data.processworkshop},
+                #{data.processdeviceid},#{data.processdevice},#{data.planstartdate},
+                #{data.actualstartdate},#{data.planenddate},#{data.actualfinishdate},
+                #{data.closestatus},#{data.planprocessrall},#{data.startingroll},
+                #{data.reportroll},#{data.checkoutroll},#{data.unfinishroll},
+                #{data.workstatus},#{data.bachmaterialprocess},#{data.waitreportid},
+                #{data.lockmark},#{data.blankid},#{userName} ,#{userId} ,NOW())
+                ON DUPLICATE KEY UPDATE DELETED='0'
+            </foreach>
+        </if>
+    </insert>
+
+    <delete id="deletedByBlankId">
+        <if test="blankIds != null and blankIds.size() >0">
+            DELETE FROM aps_process_operation_process_equ_backup
+            <where>
+                BLANKID in
+                <foreach collection="blankIds" item="id" open="(" close=")" separator=",">
+                    #{id}
+                </foreach>
+            </where>
+        </if>
+    </delete>
+</mapper>

+ 74 - 0
cx-aps/cx-aps-common/src/main/resources/mybatis/ApsProductDetailDao.xml

@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.rongwei.bscommon.sys.dao.ApsProductDetailDao">
+
+    <resultMap id="BaseResultMap" type="com.rongwei.bsentity.domain.ApsProductDetailDo">
+            <id property="id" column="ID" jdbcType="VARCHAR"/>
+            <result property="materialname" column="MATERIALNAME" jdbcType="VARCHAR"/>
+            <result property="materialcode" column="MATERIALCODE" jdbcType="VARCHAR"/>
+            <result property="producttype" column="PRODUCTTYPE" jdbcType="VARCHAR"/>
+            <result property="alloy" column="ALLOY" jdbcType="VARCHAR"/>
+            <result property="alloystatus" column="ALLOYSTATUS" jdbcType="VARCHAR"/>
+            <result property="thickness" column="THICKNESS" jdbcType="DECIMAL"/>
+            <result property="prowidth" column="PROWIDTH" jdbcType="DECIMAL"/>
+            <result property="prolength" column="PROLENGTH" jdbcType="DECIMAL"/>
+            <result property="specialfication" column="SPECIALFICATION" jdbcType="VARCHAR"/>
+            <result property="mergeordernumber" column="MERGEORDERNUMBER" jdbcType="VARCHAR"/>
+            <result property="totalordercount" column="TOTALORDERCOUNT" jdbcType="DECIMAL"/>
+            <result property="planout" column="PLANOUT" jdbcType="DECIMAL"/>
+            <result property="realout" column="REALOUT" jdbcType="DECIMAL"/>
+            <result property="singlerollweightstart" column="SINGLEROLLWEIGHTSTART" jdbcType="DECIMAL"/>
+            <result property="singlerollweightend" column="SINGLEROLLWEIGHTEND" jdbcType="DECIMAL"/>
+            <result property="numberunit" column="NUMBERUNIT" jdbcType="VARCHAR"/>
+            <result property="rollnum" column="ROLLNUM" jdbcType="INTEGER"/>
+            <result property="productstatus" column="PRODUCTSTATUS" jdbcType="VARCHAR"/>
+            <result property="tenantid" column="TENANTID" jdbcType="VARCHAR"/>
+            <result property="roption" column="ROPTION" jdbcType="VARCHAR"/>
+            <result property="deleted" column="DELETED" jdbcType="CHAR"/>
+            <result property="remark" column="REMARK" jdbcType="VARCHAR"/>
+            <result property="createdate" column="CREATEDATE" jdbcType="TIMESTAMP"/>
+            <result property="createuserid" column="CREATEUSERID" jdbcType="VARCHAR"/>
+            <result property="modifydate" column="MODIFYDATE" jdbcType="TIMESTAMP"/>
+            <result property="modifyuserid" column="MODIFYUSERID" jdbcType="VARCHAR"/>
+            <result property="createusername" column="CREATEUSERNAME" jdbcType="VARCHAR"/>
+            <result property="modifyusername" column="MODIFYUSERNAME" jdbcType="VARCHAR"/>
+            <result property="mainid" column="MAINID" jdbcType="VARCHAR"/>
+            <result property="producttypeid" column="PRODUCTTYPEID" jdbcType="VARCHAR"/>
+            <result property="inputmaterialdescription" column="INPUTMATERIALDESCRIPTION" jdbcType="VARCHAR"/>
+            <result property="materialid" column="MATERIALID" jdbcType="VARCHAR"/>
+            <result property="customorderdetailid" column="CUSTOMORDERDETAILID" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        ID,MATERIALNAME,MATERIALCODE,
+        PRODUCTTYPE,ALLOY,ALLOYSTATUS,
+        THICKNESS,PROWIDTH,PROLENGTH,
+        SPECIALFICATION,MERGEORDERNUMBER,TOTALORDERCOUNT,
+        PLANOUT,REALOUT,SINGLEROLLWEIGHTSTART,
+        SINGLEROLLWEIGHTEND,NUMBERUNIT,ROLLNUM,
+        PRODUCTSTATUS,TENANTID,ROPTION,
+        DELETED,REMARK,CREATEDATE,
+        CREATEUSERID,MODIFYDATE,MODIFYUSERID,
+        CREATEUSERNAME,MODIFYUSERNAME,MAINID,
+        PRODUCTTYPEID,INPUTMATERIALDESCRIPTION,MATERIALID,
+        CUSTOMORDERDETAILID
+    </sql>
+    <update id="publish">
+        <if test="productionOrderIds != null and productionOrderIds.size() >0">
+            <foreach collection="productionOrderIds"  item="id" separator=";">
+                update aps_product_detail  set PRODUCTSTATUS=
+                    (SELECT
+                MIN(PROCESSSTATUS)
+                FROM
+                aps_process_operation apo
+                LEFT JOIN aps_blank_order abo ON apo.BLANKID = abo.ID AND abo.DELETED='0'
+                where apo.DELETED='0'
+                and abo.PRODUCTIONORDERID =#{id}
+                GROUP BY abo.PRODUCTIONORDERID)
+                WHERE MAINID=#{id}
+            </foreach>
+        </if>
+    </update>
+</mapper>

+ 58 - 0
cx-aps/cx-aps-common/src/main/resources/mybatis/ApsProductionOrderDao.xml

@@ -119,4 +119,62 @@
         OTHERPRECAUTION,ENDDATE,PLANDATE,
         REVIEWTYPE,SCHEDULSTATUS
     </sql>
+    <update id="publish">
+        <if test="ids != null and ids.size() >0">
+            <foreach collection="ids" item="id" separator=";">
+                update aps_production_order
+                <set>
+                    PRODUCTIONSTATUS=(SELECT
+                    MIN(PROCESSSTATUS)
+                    FROM
+                    aps_process_operation apo
+                    LEFT JOIN aps_blank_order abo ON apo.BLANKID = abo.ID AND abo.DELETED='0'
+                    where apo.DELETED='0'
+                    and abo.PRODUCTIONORDERID =#{id}
+                    GROUP BY abo.PRODUCTIONORDERID),
+                    SCHEDULSTATUS='已发布'
+                </set>
+                <where>
+                    ID = #{id} and DELETED='0'
+                </where>
+            </foreach>
+        </if>
+    </update>
+    <update id="publishCancel">
+        <if test="ids != null and ids.size() >0">
+            <foreach collection="ids" item="id" separator=";">
+                update aps_production_order
+                <set>
+                    PRODUCTIONSTATUS=(SELECT
+                    MIN(PROCESSSTATUS)
+                    FROM
+                    aps_process_operation apo
+                    LEFT JOIN aps_blank_order abo ON apo.BLANKID = abo.ID AND abo.DELETED='0'
+                    where apo.DELETED='0'
+                    and abo.PRODUCTIONORDERID =#{id}
+                    GROUP BY abo.PRODUCTIONORDERID),
+                    SCHEDULSTATUS='待发布'
+                </set>
+                <where>
+                    ID = #{id} and DELETED='0'
+                </where>
+            </foreach>
+        </if>
+    </update>
+    <select id="getStartWorkById" resultType="java.lang.String">
+        select DISTINCT apo.ORDERNO
+        from aps_production_order apo
+        left join aps_blank_order abo on apo.ID=abo.PRODUCTIONORDERID AND abo.DELETED='0'
+        left join aps_process_operation apo1 on apo1.BLANKID =abo.ID and apo1.DELETED='0'
+        <where>
+             apo.DELETED='0'
+            <if test="ids != null and ids.size() >0">
+                and apo.ID in
+                <foreach collection="ids" open="(" close=")" separator="," item="id">
+                    #{id}
+                </foreach>
+            </if>
+            and apo1.PROCESSSTATUS in ('40','50')
+        </where>
+    </select>
 </mapper>

+ 459 - 0
cx-aps/cx-aps-entity/src/main/java/com/rongwei/bsentity/domain/ApsProcessOperationBackupDo.java

@@ -0,0 +1,459 @@
+package com.rongwei.bsentity.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.rongwei.rwcommon.base.BaseDo;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 生产订单-坯料计划-工序作业
+ * @TableName aps_process_operation_backup
+ */
+@TableName(value ="aps_process_operation_backup")
+@Data
+public class ApsProcessOperationBackupDo extends BaseDo implements Serializable {
+    /**
+     * 主键ID
+     */
+    @TableId
+    private String id;
+
+    /**
+     * 
+     */
+    private String tenantid;
+
+    /**
+     * 扩展json格式配置
+     */
+    private String roption;
+
+
+    /**
+     * 所属工厂
+     */
+    private String ownedfactory;
+
+    /**
+     * 工艺路线的工艺步骤表ID
+     */
+    private String craftstepid;
+
+    /**
+     * 工艺步骤编号
+     */
+    private String stepnum;
+
+    /**
+     * 工序ID
+     */
+    private String processid;
+
+    /**
+     * 工序编号
+     */
+    private String processcode;
+
+    /**
+     * 工序
+     */
+    private String process;
+
+    /**
+     * 工序显示名
+     */
+    private String processname;
+
+    /**
+     * 加工方式
+     */
+    private String processway;
+
+    /**
+     * 数量单位
+     */
+    private String numunit;
+
+    /**
+     * 单次加工量
+     */
+    private BigDecimal onceprocessval;
+
+    /**
+     * 单次加工时长
+     */
+    private BigDecimal onceprocessmin;
+
+    /**
+     * 单位时间产能
+     */
+    private BigDecimal pertimecapacity;
+
+    /**
+     * 加工时间单位
+     */
+    private String timeunit;
+
+    /**
+     * 上机准备时间(分钟)
+     */
+    private BigDecimal prepressworkmin;
+
+    /**
+     * 上料时间(分钟)
+     */
+    private BigDecimal loadingmin;
+
+    /**
+     * 下料时间(分钟)
+     */
+    private BigDecimal cuttingmin;
+
+    /**
+     * 下机收尾时间(分钟)
+     */
+    private BigDecimal cutfinishmin;
+
+    /**
+     * 最小流转批次
+     */
+    private BigDecimal minflowbatch;
+
+    /**
+     * 流转等待最小时长(分钟)
+     */
+    private BigDecimal minflowwaitmin;
+
+    /**
+     * 流转等待最大时长(分钟)
+     */
+    private BigDecimal maxflowwaitmin;
+
+    /**
+     * 是否坯料工序
+     */
+    private String ifblankprocess;
+
+    /**
+     * 物料编号
+     */
+    private String materialcode;
+
+    /**
+     * 物料名称
+     */
+    private String materialname;
+
+    /**
+     * 厚度(mm)
+     */
+    private BigDecimal thickness;
+
+    /**
+     * 厚度-起(mm)
+     */
+    private BigDecimal thickstr;
+
+    /**
+     * 厚度-止(mm)
+     */
+    private BigDecimal thickend;
+
+    /**
+     * 宽度
+     */
+    private BigDecimal prowidth;
+
+    /**
+     * 宽度-起(mm)
+     */
+    private BigDecimal widthstr;
+
+    /**
+     * 宽度-止(mm)
+     */
+    private BigDecimal widthend;
+
+    /**
+     * 长度
+     */
+    private BigDecimal prolength;
+
+    /**
+     * 长度-起(mm)
+     */
+    private BigDecimal lengthstr;
+
+    /**
+     * 长度-止(mm)
+     */
+    private BigDecimal lengthend;
+
+    /**
+     * 输入物料条件
+     */
+    private String inmatercondition;
+
+    /**
+     * 输出物料要求
+     */
+    private String outmaterrequest;
+
+    /**
+     * 可选设备IDS
+     */
+    private String canchoosedeviceid;
+
+    /**
+     * 可选设备
+     */
+    private String chooseequ;
+
+    /**
+     * 坯料计划ID
+     */
+    private String blankid;
+
+    /**
+     * 输入物料ID
+     */
+    private String planinputid;
+
+    /**
+     * 计划输入物料
+     */
+    private String planinput;
+
+    /**
+     * 计划输出物料
+     */
+    private String planoutput;
+
+    /**
+     * 计划输入卷数
+     */
+    private Integer planinrall;
+
+    /**
+     * 计划备料卷数
+     */
+    private Integer planblankrall;
+
+    /**
+     * 计划加工卷数
+     */
+    private Integer planprocessrall;
+
+    /**
+     * 加工车间ID
+     */
+    private String processworkshopid;
+
+    /**
+     * 加工车间
+     */
+    private String processworkshop;
+
+    /**
+     * 加工设备ID
+     */
+    private String processdeviceid;
+
+    /**
+     * 加工设备
+     */
+    private String processdevice;
+
+    /**
+     * 计划开工时间
+     */
+    private Date planstartdate;
+
+    /**
+     * 实际开工时间
+     */
+    private Date actualstartdate;
+
+    /**
+     * 计划完工时间
+     */
+    private Date planenddate;
+
+    /**
+     * 实际完工时间
+     */
+    private Date actualfinishdate;
+
+    /**
+     * 实际可输入卷数
+     */
+    private Integer actualimputroll;
+
+    /**
+     * 输入不合格卷数
+     */
+    private Integer inputunqualifiedroll;
+
+    /**
+     * 实际可加工卷数
+     */
+    private Integer actualcanprocessroll;
+
+    /**
+     * 完工状态
+     */
+    private String closestatus;
+
+    /**
+     * 已借调卷数
+     */
+    private Integer secondroll;
+
+    /**
+     * 已开工卷数
+     */
+    private Integer startingroll;
+
+    /**
+     * 已报工卷数
+     */
+    private Integer reportroll;
+
+    /**
+     * 已检验卷数
+     */
+    private Integer checkoutroll;
+
+    /**
+     * 未完工卷数
+     */
+    private Integer unfinishroll;
+
+    /**
+     * 已取消卷数
+     */
+    private Integer cancelroll;
+
+    /**
+     * 作业状态
+     */
+    private String workstatus;
+
+    /**
+     * 生产状态
+     */
+    private String processstatus;
+
+    /**
+     * 待加工料卷批次号
+     */
+    private String bachmaterialprocess;
+
+    /**
+     * 计划作业时长
+     */
+    private BigDecimal processtotaltime;
+
+    /**
+     * 待报工记录ID
+     */
+    private String waitreportid;
+
+    /**
+     * 计划加工次数
+     */
+    private Integer planprocessnum;
+
+    /**
+     * 前道工序作业ID
+     */
+    private String previousprocessid;
+
+    /**
+     * 前道工序作业
+     */
+    private String previousprocess;
+
+    /**
+     * 后道工序作业ID
+     */
+    private String nextprocessid;
+
+    /**
+     * 后道工序作业
+     */
+    private String nextprocess;
+
+    /**
+     * 顺序
+     */
+    private Integer level;
+
+    /**
+     * 产品类型ID
+     */
+    private String producttypeid;
+
+    /**
+     * 产品类型
+     */
+    private String producttype;
+
+    /**
+     * 合金
+     */
+    private String metal;
+
+    /**
+     * 合金状态
+     */
+    private String metalstate;
+
+    /**
+     * 合格输出数量
+     */
+    private Integer outputqualifiednum;
+
+    /**
+     * 不合格输出数量
+     */
+    private Integer outputunqualifiednum;
+
+    /**
+     * 输入物料是否可编辑
+     */
+    private String changeinmeter;
+
+    /**
+     * 输入单卷重
+     */
+    private BigDecimal singlerollweight;
+
+    /**
+     * 是否锁定 y:锁定,n:未锁定
+     */
+    private String lockmark;
+
+    /**
+     * 备份人姓名
+     */
+    private String backupuser;
+
+    /**
+     * 备份人姓名ID
+     */
+    private String backupuserid;
+
+    /**
+     * 备份日期
+     */
+    private Date backupdate;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 157 - 0
cx-aps/cx-aps-entity/src/main/java/com/rongwei/bsentity/domain/ApsProcessOperationProcessEquBackupDo.java

@@ -0,0 +1,157 @@
+package com.rongwei.bsentity.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.rongwei.rwcommon.base.BaseDo;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 生产订单-坯料计划-工序作业加工设备
+ * @TableName aps_process_operation_process_equ_backup
+ */
+@TableName(value ="aps_process_operation_process_equ_backup")
+@Data
+public class ApsProcessOperationProcessEquBackupDo extends BaseDo implements Serializable {
+    /**
+     * 主键ID
+     */
+    @TableId
+    private String id;
+
+    /**
+     * 
+     */
+    private String tenantid;
+
+    /**
+     * 扩展json格式配置
+     */
+    private String roption;
+
+    /**
+     * 所属工厂
+     */
+    private String ownedfactory;
+
+    /**
+     * 工序作业ID
+     */
+    private String processid;
+
+    /**
+     * 加工车间ID
+     */
+    private String processworkshopid;
+
+    /**
+     * 加工车间
+     */
+    private String processworkshop;
+
+    /**
+     * 加工设备ID
+     */
+    private String processdeviceid;
+
+    /**
+     * 加工设备
+     */
+    private String processdevice;
+
+    /**
+     * 计划开工时间
+     */
+    private Date planstartdate;
+
+    /**
+     * 实际开工时间
+     */
+    private Date actualstartdate;
+
+    /**
+     * 计划完工时间
+     */
+    private Date planenddate;
+
+    /**
+     * 实际完工时间
+     */
+    private Date actualfinishdate;
+
+    /**
+     * 完工状态
+     */
+    private String closestatus;
+
+    /**
+     * 计划加工卷数
+     */
+    private Integer planprocessrall;
+
+    /**
+     * 已开工卷数
+     */
+    private Integer startingroll;
+
+    /**
+     * 已报工卷数
+     */
+    private Integer reportroll;
+
+    /**
+     * 已检验卷数
+     */
+    private Integer checkoutroll;
+
+    /**
+     * 未完工卷数
+     */
+    private Integer unfinishroll;
+
+    /**
+     * 作业状态
+     */
+    private String workstatus;
+
+    /**
+     * 待加工料卷批次号
+     */
+    private String bachmaterialprocess;
+
+    /**
+     * 待报工记录ID
+     */
+    private String waitreportid;
+
+    /**
+     * 是否锁定 y:锁定,n:未锁定
+     */
+    private String lockmark;
+
+    /**
+     * 坯料计划ID
+     */
+    private String blankid;
+
+    /**
+     * 备份人姓名
+     */
+    private String backupuser;
+
+    /**
+     * 备份人姓名ID
+     */
+    private String backupuserid;
+
+    /**
+     * 备份日期
+     */
+    private Date backupdate;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 2 - 3
cx-aps/cx-aps-entity/src/main/java/com/rongwei/bsentity/domain/ApsProductDetailDo.java

@@ -6,9 +6,7 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
-import java.io.Serializable;
 import java.math.BigDecimal;
-import java.util.Date;
 
 /**
  * aps_product_detail
@@ -153,4 +151,5 @@ public class ApsProductDetailDo extends BaseDo {
     private String customorderno;
 
     private static final long serialVersionUID = 1L;
-}
+}
+

+ 2 - 0
cx-aps/cx-aps-server/src/main/java/com/rongwei/bsserver/controller/ApsBlankOrderController.java

@@ -76,5 +76,7 @@ public class ApsBlankOrderController {
         return R.ok();
     }
 
+
+
 }
 

+ 48 - 0
cx-aps/cx-aps-server/src/main/java/com/rongwei/bsserver/controller/ApsProductionOrderController.java

@@ -0,0 +1,48 @@
+package com.rongwei.bsserver.controller;
+
+import com.rongwei.bscommon.sys.service.ApsProductionOrderService;
+import com.rongwei.rwcommon.base.R;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * ApsProductionOrderController class
+ *
+ * @author XH
+ * @date 2024/04/18
+ */
+@RestController
+@RequestMapping("/product-order")
+public class ApsProductionOrderController {
+    private final Logger log = LoggerFactory.getLogger(this.getClass().getName());
+
+    @Autowired
+    private ApsProductionOrderService apsProductionOrderService;
+
+    /**
+     * 发布
+     * @param productionOrderIds
+     * @return
+     */
+    @PostMapping("/publish")
+    public R publish(@RequestBody List<String> productionOrderIds){
+        return apsProductionOrderService.publish(productionOrderIds);
+    }
+
+    /**
+     * 取消发布
+     * @param productionOrderIds
+     * @return
+     */
+    @PostMapping("/publish/cancel")
+    public R publishCancel(@RequestBody List<String> productionOrderIds){
+        return apsProductionOrderService.publishCancel(productionOrderIds);
+    }
+}