Procházet zdrojové kódy

feature 代码提交

xiahan před 1 rokem
rodič
revize
0805132ef1
20 změnil soubory, kde provedl 289 přidání a 26 odebrání
  1. 9 0
      bs-common/src/main/java/com/rongwei/safecommon/utils/SaveConstans.java
  2. 3 0
      cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/dao/ApsProcessOperationBackupDao.java
  3. 5 0
      cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/dao/ApsProcessOperationProcessEquBackupDao.java
  4. 2 1
      cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/dao/ApsProcessOperationProcessEquDao.java
  5. 2 0
      cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/dao/ApsProductionOrderDao.java
  6. 3 0
      cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/ApsBlankOrderService.java
  7. 4 0
      cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/ApsProcessOperationService.java
  8. 1 1
      cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/GanttService.java
  9. 53 3
      cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsBlankOrderServiceImpl.java
  10. 48 0
      cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsProcessOperationServiceImpl.java
  11. 16 0
      cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsProductionOrderServiceImpl.java
  12. 11 4
      cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/GanttServiceImpl.java
  13. 46 7
      cx-aps/cx-aps-common/src/main/resources/mybatis/ApsProcessOperationBackupDao.xml
  14. 26 5
      cx-aps/cx-aps-common/src/main/resources/mybatis/ApsProcessOperationProcessEquBackupDao.xml
  15. 6 1
      cx-aps/cx-aps-common/src/main/resources/mybatis/ApsProcessOperationProcessEquDao.xml
  16. 8 0
      cx-aps/cx-aps-common/src/main/resources/mybatis/ApsProductionOrderDao.xml
  17. 3 0
      cx-aps/cx-aps-entity/src/main/java/com/rongwei/bsentity/vo/ProcessGanttListVo.java
  18. 19 0
      cx-aps/cx-aps-server/src/main/java/com/rongwei/bsserver/controller/ApsBlankOrderController.java
  19. 18 0
      cx-aps/cx-aps-server/src/main/java/com/rongwei/bsserver/controller/ApsProcessOperationController.java
  20. 6 4
      cx-aps/cx-aps-server/src/main/java/com/rongwei/bsserver/controller/GanttController.java

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

@@ -563,8 +563,17 @@ public class SaveConstans {
      * 作业状态
      */
     public static class JobStatus{
+        /**
+         * 待开工
+         */
         public static final String JOBSTATUS_TO_BE_START = "待开工";
+        /**
+         * 加工中
+         */
         public static final String JOBSTATUS_TO_BE_STARTING = "加工中";
+        /**
+         * 已完工
+         */
         public static final String JOBSTATUS_TO_BE_END = "已完工";
     }
 }

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

@@ -15,6 +15,9 @@ public interface ApsProcessOperationBackupDao extends BaseMapper<ApsProcessOpera
                                 @Param("userName") String userName);
 
     void deletedByBlankId(@Param("blankIds") List<String> blankIds);
+
+    void processOperationCopy(@Param("userId") String userId,
+                              @Param("userName") String userName);
 }
 
 

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

@@ -16,6 +16,11 @@ public interface ApsProcessOperationProcessEquBackupDao extends BaseMapper<ApsPr
                                    @Param("userName") String userName);
 
     void deletedByBlankId(@Param("blankIds") List<String> blankIds);
+
+    void processOperationEquCopy(@Param("processOperationIds") List<String> processOperationIds,
+                                 @Param("userId") String userId,
+                                 @Param("userName") String userName);
+
 }
 
 

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

@@ -40,7 +40,8 @@ public interface ApsProcessOperationProcessEquDao extends BaseMapper<ApsProcessO
     List<GanttVos> getGanttDataList(@Param("startTime") Date startTime,
                                     @Param("endTime") Date endTime,
                                     @Param("factoryId") String factoryId,
-                                    @Param("workshopIds") List<String> workshopId);
+                                    @Param("workshopIds") List<String> workshopId,
+                                    @Param("orderNos") List<String> orderNo);
 
     void updateAboutStateByProcessId(@Param("updateIds") List<ProcessIdRelationVo> updateIds);
 

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

@@ -15,6 +15,8 @@ public interface ApsProductionOrderDao extends BaseMapper<ApsProductionOrderDo>
 
 
     List<String> getStartWorkById(@Param("ids") List<String> ids);
+
+    List<ApsProductionOrderDo> getDataByBlankId(@Param("blankIds")List<String> blankids);
 }
 
 

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

@@ -36,4 +36,7 @@ public interface ApsBlankOrderService extends IService<ApsBlankOrderDo> {
     void blankApsCancel(List<String> apsBlankIds);
 
     void updateBlankJobStatusByProductProcessId(String productProcessId);
+
+    R publish(List<String> blankIds);
+    R publishCancel(List<String> blankIds);
 }

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

@@ -38,4 +38,8 @@ public interface ApsProcessOperationService extends IService<ApsProcessOperation
     List<ApsProcessOperationOutMaterDo> resetProcessOperation(List<ApsProcessOperationOutMaterDo> apsProcessOperationOutMaterDoList);
 
     R updateBorrowProcess(Map<String, Object> params);
+
+    R backupProcessOperation();
+
+    R backupCancelProcessOperation();
 }

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

@@ -12,5 +12,5 @@ import java.util.Date;
  */
 public interface GanttService {
 
-    R getListByCondition(Date searchDate,  String factoryId, String workshopId);
+    R getListByCondition(Date searchDate,  String factoryId, String workshopId,String orderNo);
 }

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

@@ -35,6 +35,8 @@ import java.time.ZoneId;
 import java.util.*;
 import java.util.stream.Collectors;
 
+import static com.rongwei.bscommon.sys.service.impl.ApsProductionOrderServiceImpl.ERROR_MSG;
+import static com.rongwei.safecommon.utils.SaveConstans.JobStatus.JOBSTATUS_TO_BE_START;
 import static com.rongwei.safecommon.utils.SaveConstans.LockmarkType.LOCKMARK_N;
 import static com.rongwei.safecommon.utils.SaveConstans.LockmarkType.LOCKMARK_Y;
 import static com.rongwei.safecommon.utils.SaveConstans.ProductionStatus.TO_BE_SCHEDULED;
@@ -137,20 +139,68 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
         apsBlankOrderDo.setId(vo.getBlankId());
         //如果作业最大生产状态<加工中(40),则作业状态=待开工
         if(Integer.parseInt(vo.getMaxProcessStatus()) < 40){
-            apsBlankOrderDo.setJobstatus(SaveConstans.JobStatus.JOBSTATUS_TO_BE_START);
+            apsBlankOrderDo.setJobstatus(JOBSTATUS_TO_BE_START);
         }
         //如果作业最小生产状态=已完工(50),则作业状态=已完工
-        if(vo.getMinProcessStatus().equals("50")){
+        if (vo.getMinProcessStatus().equals("50")) {
             apsBlankOrderDo.setJobstatus(SaveConstans.JobStatus.JOBSTATUS_TO_BE_END);
         }
         //如果作业最大生产状态>=加工中(40),并且作业最小生产状态<已完工(50),则作业状态=加工中
-        if(Integer.parseInt(vo.getMaxProcessStatus()) >= 40 && Integer.parseInt(vo.getMinProcessStatus()) < 50){
+        if (Integer.parseInt(vo.getMaxProcessStatus()) >= 40 && Integer.parseInt(vo.getMinProcessStatus()) < 50) {
             apsBlankOrderDo.setJobstatus(SaveConstans.JobStatus.JOBSTATUS_TO_BE_STARTING);
         }
         //更新坯料计划的作业状态
         this.updateById(apsBlankOrderDo);
     }
 
+    @Override
+    public R publish(List<String> blankIds) {
+        if (blankIds == null || blankIds.isEmpty()) {
+            log.debug("坯料计划为空");
+            return R.error("坯料计划id 必传");
+        }
+        List<String> searchCondition = new ArrayList<String>() {{
+            add("30");
+            add("20");
+            add("10");
+        }};
+        // 判断是否存在已发布的工序作业
+        List<ApsBlankOrderDo> apsBlankOrderDos = this.baseMapper.selectBatchIds(blankIds);
+        List<ApsBlankOrderDo> collect1 = apsBlankOrderDos.stream().filter(info -> !searchCondition.contains(info.getProductstatus())).collect(Collectors.toList());
+        if (!collect1.isEmpty()) {
+            logger.error("存在已开工的坯料计划:{}", collect1);
+            return R.error("存在已开工的坯料计划");
+        }
+        // 如果 订单排程交货期>承诺交货期 抛出异常信息
+        List<ApsProductionOrderDo> dataByBlankId = apsProcessOperationDao.getDataByBlankId(blankIds);
+        if (!dataByBlankId.isEmpty()) {
+            String collect = dataByBlankId.stream()
+                    .map(info -> info.getOrderno() + "-" + info.getCustomname())
+                    .collect(Collectors.joining(";"));
+            logger.error("存在排程交货期>承诺交货期 的订单:{}", collect);
+            return R.error(String.format(ERROR_MSG, collect));
+        }
+        // 更新坯料计划的生产状态为已发布
+        this.update(new LambdaUpdateWrapper<ApsBlankOrderDo>().in(ApsBlankOrderDo::getId, blankIds)
+                .set(ApsBlankOrderDo::getProductstatus, "30")
+                .set(ApsBlankOrderDo::getJobstatus, JOBSTATUS_TO_BE_START)
+                .set(ApsBlankOrderDo::getLockmark, LOCKMARK_Y));
+        // 更新坯料计划对应工序作业的状态为待开工
+        apsProcessOperationService.update(new LambdaUpdateWrapper<ApsProcessOperationDo>()
+                .in(ApsProcessOperationDo::getBlankid, blankIds)
+                .set(ApsProcessOperationDo::getProcessstatus, "30")
+                .set(ApsProcessOperationDo::getLockmark, LOCKMARK_Y)
+                .set(ApsProcessOperationDo::getWorkstatus, "待开工"));
+        
+
+        return null;
+    }
+
+    @Override
+    public R publishCancel(List<String> blankIds) {
+        return null;
+    }
+
     /**
      * 获取锁定和解锁的 搜索事件
      *

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

@@ -4,10 +4,13 @@ import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.json.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.rongwei.bscommon.sys.dao.ApsBlankOrderDao;
+import com.rongwei.bscommon.sys.dao.ApsProcessOperationBackupDao;
 import com.rongwei.bscommon.sys.dao.ApsProcessOperationDao;
+import com.rongwei.bscommon.sys.dao.ApsProcessOperationProcessEquBackupDao;
 import com.rongwei.bscommon.sys.service.*;
 import com.rongwei.bsentity.domain.*;
 import com.rongwei.bsentity.vo.CommonUpdateProductionStatusReq;
@@ -16,10 +19,12 @@ import com.rongwei.bsentity.vo.ProcessIdRelationVo;
 import com.rongwei.commonservice.service.SysMindMappingService;
 import com.rongwei.rwadmincommon.system.domain.SysOrganizationDo;
 import com.rongwei.rwadmincommon.system.service.SysOrganizationService;
+import com.rongwei.rwadmincommon.system.vo.SysUserVo;
 import com.rongwei.rwcommon.base.R;
 import com.rongwei.rwcommon.utils.SecurityUtil;
 import com.rongwei.rwcommon.utils.StringUtils;
 import com.rongwei.rwcommonentity.commonservers.domain.SysMindMappingDo;
+import com.rongwei.safecommon.utils.CXCommonUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -61,6 +66,7 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
 
     @Autowired
     ApsProcessOperationOutMaterService apsProcessOperationOutMaterService;
+
     @Autowired
     ApsProcessOperationEquService apsProcessOperationEquService;
 
@@ -78,6 +84,11 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
     @Autowired
     private SysOrganizationService sysOrganizationService;
 
+    @Autowired
+    private ApsProcessOperationBackupDao apsProcessOperationBackupDao;
+    @Autowired
+    private ApsProcessOperationProcessEquBackupDao apsProcessOperationProcessEquBackupDao;
+
 
     private final static Map<String, String> UNIT_MAP = new HashMap<String, String>() {{
         put("kg", "公斤");
@@ -831,6 +842,43 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
         return R.ok();
     }
 
+    /**
+     * 工序作业备份
+     * @return
+     */
+    @Override
+    public R backupProcessOperation() {
+        SysUserVo currentUser = CXCommonUtils.getCurrentUser();
+        // 先删除
+        apsProcessOperationBackupDao.deletedByBlankId(null);
+        apsProcessOperationProcessEquBackupDao.deletedByBlankId(null);
+        List<ApsProcessOperationDo> apsProcessOperationDos = apsProcessOperationDao.selectList(
+                new LambdaQueryWrapper<ApsProcessOperationDo>()
+                .in(ApsProcessOperationDo::getProcessstatus, "20", "30", "40"));
+        // 再备份
+        List<String> collect = apsProcessOperationDos.stream().map(ApsProcessOperationDo::getId).collect(Collectors.toList());
+        apsProcessOperationBackupDao.processOperationBackup(collect,
+                currentUser ==null?"":currentUser.getId(),
+                currentUser ==null?"":currentUser.getName());
+        apsProcessOperationProcessEquBackupDao.processOperationEquCopy(collect,
+                currentUser ==null?"":currentUser.getId(),
+                currentUser ==null?"":currentUser.getName());
+        return R.ok();
+    }
+
+    /**
+     * 工序作业取消备份
+     *
+     * @return
+     */
+    @Override
+    public R backupCancelProcessOperation() {
+        log.debug("开始删除工序做鱼备份信息");
+        apsProcessOperationBackupDao.deletedByBlankId(null);
+        apsProcessOperationProcessEquBackupDao.deletedByBlankId(null);
+        return R.ok();
+    }
+
     //根据工序ID更新,明细和工序的状态
     private String updateProcessByProcessId(String processId, String orderId) {
         //=============迭代开始,更新当前工序及其明细==================

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

@@ -1,5 +1,6 @@
 package com.rongwei.bscommon.sys.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.rongwei.bscommon.sys.dao.ApsBlankOrderDao;
 import com.rongwei.bscommon.sys.dao.ApsProcessOperationDao;
@@ -14,6 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  *
@@ -29,6 +31,8 @@ public class ApsProductionOrderServiceImpl extends ServiceImpl<ApsProductionOrde
     @Autowired
     private ApsProductDetailDao apsProductDetailDao;
 
+    public static final String ERROR_MSG ="%s上诉订单的排程交货期大于承诺交货期";
+
     /**
      * 发布订单排程
      * @param productionOrderIds
@@ -39,6 +43,18 @@ public class ApsProductionOrderServiceImpl extends ServiceImpl<ApsProductionOrde
         if(productionOrderIds.isEmpty()){
             return  R.ok();
         }
+        // 如果 订单排程交货期>承诺交货期 抛出异常信息
+        List<ApsProductionOrderDo> list = this.list(new LambdaQueryWrapper<ApsProductionOrderDo>()
+                .in(ApsProductionOrderDo::getId, productionOrderIds)
+                .apply(" SCHEDULEDELIVERYDATE>PROMISEDELIVERYDATE"));
+        if(!list.isEmpty()){
+            String collect = list.stream()
+                    .map(info -> info.getOrderno() + "-" + info.getCustomname())
+                    .collect(Collectors.joining(";"));
+            log.error("存在排程交货期>承诺交货期 的订单:{}",collect);
+            return R.error(String.format(ERROR_MSG,collect));
+        }
+
         // 更新工序作业的生产状态和是否锁定=是
         apsProcessOperationDao.publish(productionOrderIds);
         // 更新坯料计划的生产状态

+ 11 - 4
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/GanttServiceImpl.java

@@ -58,13 +58,18 @@ public class GanttServiceImpl implements GanttService {
      * @return
      */
     @Override
-    public R getListByCondition(Date searchDate, String factoryId, String workshopId) {
+    public R getListByCondition(Date searchDate, String factoryId, String workshopId,String orderNo) {
         log.info("甘特图查询开始时间:"+ DateUtil.now());
         List<Date> searchDateList = getSearchDate(searchDate);
         List<String> workShopIdList = StringUtils.isNotBlank(workshopId) ? Arrays.asList(workshopId.split(",")) : new ArrayList<>();
         // 获取 工序作业信息
-        List<GanttVos> apsProcessOperationProcessEquDos = apsProcessOperationProcessEquDao.getGanttDataList(searchDateList.get(0),
-                searchDateList.get(1), factoryId, workShopIdList);
+        List<String> orderNoList=StringUtils.isBlank(orderNo)?null:Arrays.asList(orderNo.split(","));
+        List<GanttVos> apsProcessOperationProcessEquDos = apsProcessOperationProcessEquDao.getGanttDataList(
+                searchDateList==null?null:searchDateList.get(0),
+                searchDateList==null?null:searchDateList.get(1),
+                factoryId,
+                workShopIdList,
+                orderNoList);
         // 需要返回给前端的数据
         List<ScheduleGanttVo> resultVo = new ArrayList<>();
         if (apsProcessOperationProcessEquDos.isEmpty()) {
@@ -232,7 +237,9 @@ public class GanttServiceImpl implements GanttService {
      * @return
      */
     private List<Date> getSearchDate(Date date){
-
+        if(date==null){
+            return null;
+        }
         LocalDateTime now = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
         // 获取前6天的0点0分01秒
         LocalDateTime sixDaysAgoStart = now.minusDays(6).truncatedTo(ChronoUnit.DAYS).plusSeconds(1);

+ 46 - 7
cx-aps/cx-aps-common/src/main/resources/mybatis/ApsProcessOperationBackupDao.xml

@@ -179,14 +179,53 @@
         </if>
     </insert>
     <delete id="deletedByBlankId">
-        <if test="blankIds != null and blankIds.size() >0">
-            DELETE FROM aps_process_operation_backup
+        DELETE FROM aps_process_operation_backup
             <where>
-                BLANKID in
-                <foreach collection="blankIds" item="id" open="(" close=")" separator=",">
-                    #{id}
-                </foreach>
+                <if test="blankIds != null and blankIds.size() >0">
+                    BLANKID in
+                    <foreach collection="blankIds" item="id" open="(" close=")" separator=",">
+                        #{id}
+                    </foreach>
+                </if>
             </where>
-        </if>
     </delete>
+    <insert id="processOperationCopy">
+        INSERT INTO aps_process_operation_backup (<include refid="Base_Column_List"/>)
+        SELECT
+        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,
+        #{userName} AS BACKUPUSER ,#{userId} AS BACKUPUSERID,NOW() AS BACKUPDATE
+        FROM aps_process_operation
+        WHERE  PROCESSSTATUS in('20','30','40')
+        ON DUPLICATE KEY UPDATE DELETED='0'
+    </insert>
 </mapper>

+ 26 - 5
cx-aps/cx-aps-common/src/main/resources/mybatis/ApsProcessOperationProcessEquBackupDao.xml

@@ -77,14 +77,35 @@
     </insert>
 
     <delete id="deletedByBlankId">
-        <if test="blankIds != null and blankIds.size() >0">
-            DELETE FROM aps_process_operation_process_equ_backup
-            <where>
+        DELETE FROM aps_process_operation_process_equ_backup
+        <where>
+            <if test="blankIds != null and blankIds.size() >0">
                 BLANKID in
                 <foreach collection="blankIds" item="id" open="(" close=")" separator=",">
                     #{id}
                 </foreach>
-            </where>
-        </if>
+            </if>
+        </where>
     </delete>
+    <insert id="processOperationEquCopy">
+        INSERT INTO aps_process_operation_process_equ_backup (<include refid="Base_Column_List"/>)
+        SELECT
+        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,#{userName} AS BACKUPUSER ,#{userId} AS BACKUPUSERID,NOW() AS BACKUPDATE
+        FROM aps_process_operation_process_equ
+        WHERE  DELETED ='0' AND ID IN
+        <foreach collection="processOperationIds" item="processOperationId" open="(" close=")" separator=",">
+            #{processOperationId}
+        </foreach>
+        ON DUPLICATE KEY UPDATE DELETED='0'
+    </insert>
 </mapper>

+ 6 - 1
cx-aps/cx-aps-common/src/main/resources/mybatis/ApsProcessOperationProcessEquDao.xml

@@ -201,7 +201,12 @@
             </if>
             <if test="factoryId != null and factoryId != 'ALL'">and a1.TENANTID = #{factoryId}</if>
             <if test="startTime != null ">and a1.PLANSTARTDATE &gt;= #{startTime}</if>
-            <if test="endTime != null ">and a1.PLANENDDATE &lt;= #{endTime}
+            <if test="endTime != null ">and a1.PLANENDDATE &lt;= #{endTime}</if>
+            <if test="orderNos !=null and orderNos.size()>0">
+                and  a6.ORDERNO in
+                <foreach collection="orderNos" item="orderNo" open="(" close=")" separator=",">
+                    #{orderNo}
+                </foreach>
             </if>
         </where>
         order by a1.PLANSTARTDATE asc,a1.PLANENDDATE asc

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

@@ -178,4 +178,12 @@
         </where>
         group by apo.CUSTOMNAME
     </select>
+    <select id="getDataByBlankId" resultType="com.rongwei.bsentity.domain.ApsProductionOrderDo">
+        select * from aps_production_order where ID in(
+        select PRODUCTIONORDERID from aps_blank_order where DELETED ='0' AND ID IN
+        <foreach collection="blankIds" open="(" close=")" separator="," item="id">
+                                                              #{id}
+        </foreach>
+        )
+    </select>
 </mapper>

+ 3 - 0
cx-aps/cx-aps-entity/src/main/java/com/rongwei/bsentity/vo/ProcessGanttListVo.java

@@ -1,6 +1,7 @@
 package com.rongwei.bsentity.vo;
 
 import lombok.Data;
+import org.springframework.web.bind.annotation.RequestParam;
 
 import java.util.Date;
 
@@ -13,4 +14,6 @@ public class ProcessGanttListVo {
 
     private String workshopId;
 
+    private String orderNo;
+
 }

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

@@ -96,6 +96,25 @@ public class ApsBlankOrderController {
         return R.ok();
     }
 
+    /**
+     * 批量计划发布
+     * @param blankIds
+     * @return
+     */
+    @PostMapping("/publish")
+    public R publish(@RequestBody List<String> blankIds){
+        return apsBlankOrderService.publish(blankIds);
+    }
+
+    /**
+     * 批量计划取消发布
+     * @param blankIds
+     * @return
+     */
+    @PostMapping("/publish/cancel")
+    public R publishCancel(@RequestBody List<String> blankIds){
+        return apsBlankOrderService.publishCancel(blankIds);
+    }
 
 
 }

+ 18 - 0
cx-aps/cx-aps-server/src/main/java/com/rongwei/bsserver/controller/ApsProcessOperationController.java

@@ -107,5 +107,23 @@ public class ApsProcessOperationController {
             return R.error("更新被借调工序失败");
         }
     }
+
+    /**
+     * 工序作业备份
+     * @return
+     */
+    @PostMapping("/backup")
+    public R backupProcessOperation() {
+        return apsProcessOperationService.backupProcessOperation();
+    }
+    /**
+     * 工序作业备份恢复
+     * @return
+     */
+    @PostMapping("/backup/restore")
+    public R backupCancelProcessOperation() {
+        return apsProcessOperationService.backupCancelProcessOperation();
+    }
+
 }
 

+ 6 - 4
cx-aps/cx-aps-server/src/main/java/com/rongwei/bsserver/controller/GanttController.java

@@ -30,10 +30,11 @@ public class GanttController {
      * @return
      */
     @GetMapping("/list")
-    public R updateRelevantInformation(@RequestParam(name = "startTime") @DateTimeFormat(pattern = "yyyy-MM-dd") Date searchDate,
+    public R updateRelevantInformation(@RequestParam(name = "startTime", required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") Date searchDate,
                                        @RequestParam(name = "factoryId") String factoryId,
-                                       @RequestParam(name = "workshopId", required = false) String workshopId) {
-        return ganttService.getListByCondition(searchDate, factoryId, workshopId);
+                                       @RequestParam(name = "workshopId", required = false) String workshopId,
+                                       @RequestParam(name = "orderNo",required = false) String orderNo) {
+        return ganttService.getListByCondition(searchDate, factoryId, workshopId,orderNo);
     }
 
     /**
@@ -43,7 +44,8 @@ public class GanttController {
      */
     @PostMapping("/processGanttList")
     public R processGanttList(@RequestBody ProcessGanttListVo processGanttListVo) {
-        return ganttService.getListByCondition(processGanttListVo.getStartTime(), processGanttListVo.getFactoryId(), processGanttListVo.getWorkshopId());
+        return ganttService.getListByCondition(processGanttListVo.getStartTime(), processGanttListVo.getFactoryId(),
+                processGanttListVo.getWorkshopId(),processGanttListVo.getOrderNo());
     }
 
 }