瀏覽代碼

aps-交期偏差

sucheng 2 月之前
父節點
當前提交
2824eaee48

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

@@ -0,0 +1,16 @@
+package com.rongwei.bscommon.sys.dao;
+
+import com.rongwei.bsentity.domain.ApsDeliveryOffsetDo;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Update;
+
+/**
+ * @Entity generator.domain.ApsDeliveryOffset
+ */
+public interface ApsDeliveryOffsetDao extends BaseMapper<ApsDeliveryOffsetDo> {
+
+}
+
+
+
+

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

@@ -2,6 +2,7 @@ package com.rongwei.bscommon.sys.dao;
 
 import cn.hutool.core.date.DateTime;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.rongwei.bsentity.domain.ApsDeliveryOffsetDo;
 import com.rongwei.bsentity.domain.ApsProcessOperationProcessEquDo;
 import com.rongwei.bsentity.domain.ApsProductDetailDo;
 import com.rongwei.bsentity.vo.*;
@@ -149,6 +150,8 @@ public interface ApsProcessOperationProcessEquDao extends BaseMapper<ApsProcessO
     List<RollerTypeDownVo> selectAllRollerType(@Param("tenantId") String tenantId);
 
     List<RollerTypeExcelLookVo> selectAllRollerTypeAndWorkShopAndDevice(@Param("tenantId") String tenantId);
+
+    List<ApsDeliveryOffsetDo> selectDeliveryOffestList();
 }
 
 

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

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

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

@@ -58,4 +58,6 @@ public interface ApsProcessOperationProcessEquService extends IService<ApsProces
     void workShopExport(CriteriaQuery query, HttpServletResponse response) throws IOException;
 
     R workShopImport(MultipartFile multipartFile, HttpServletResponse response) throws IOException;
+
+    R workDeliveryOffset(WorkDeliveryOffsetReq req);
 }

+ 20 - 0
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsDeliveryOffsetServiceImpl.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.ApsDeliveryOffsetDao;
+import com.rongwei.bscommon.sys.service.ApsDeliveryOffsetService;
+import com.rongwei.bsentity.domain.ApsDeliveryOffsetDo;
+import org.springframework.stereotype.Service;
+
+/**
+ *
+ */
+@Service
+public class ApsDeliveryOffsetServiceImpl extends ServiceImpl<ApsDeliveryOffsetDao, ApsDeliveryOffsetDo>
+    implements ApsDeliveryOffsetService {
+
+}
+
+
+
+

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

@@ -17,6 +17,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.rongwei.bscommon.sys.dao.ApsDeliveryOffsetDao;
 import com.rongwei.bscommon.sys.dao.ApsProcessOperationProcessEquDao;
 import com.rongwei.bscommon.sys.listener.SpecificRowDropDownHandler;
 import com.rongwei.bscommon.sys.listener.WorkShopImportListener;
@@ -29,6 +30,7 @@ import com.rongwei.rwcommon.base.exception.CustomException;
 import com.rongwei.rwcommon.utils.SecurityUtil;
 import com.rongwei.rwcommon.utils.StringUtils;
 import com.rongwei.rwcommon.vo.CriteriaQuery;
+import com.rongwei.rwcommon.vo.MailDo;
 import com.rongwei.safecommon.fegin.CXAdminFeginClient;
 import com.rongwei.safecommon.utils.CXCommonUtils;
 import com.rongwei.wfserver.wfcommon.sys.service.impl.ProcessServiceImpl;
@@ -58,6 +60,9 @@ import static com.rongwei.safecommon.utils.SaveConstans.ForcedConflictsDescripti
 import static com.rongwei.safecommon.utils.SaveConstans.JobStatus.*;
 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.NotifyContent.PROCESSDELAY_CONTENT;
+import static com.rongwei.safecommon.utils.SaveConstans.NotifyTitle.PROCESSDELAY_TITLE;
+import static com.rongwei.safecommon.utils.SaveConstans.NotifyType.PROCESSDELAY_REMIND;
 import static com.rongwei.safecommon.utils.SaveConstans.ProcessWay.PROCESS_WAY_MERGE;
 import static com.rongwei.safecommon.utils.SaveConstans.ProductionStatus.*;
 import static com.rongwei.safecommon.utils.SaveConstans.UNForcedConflictsDescription.*;
@@ -114,6 +119,10 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
     private CXAdminFeginClient cxAdminFeginClient;
     @Autowired
     private ApsProductionProcessesService apsProductionProcessesService;
+    @Autowired
+    private ApsDeliveryOffsetService apsDeliveryOffsetService;
+    @Autowired
+    private ApsDeliveryOffsetDao apsDeliveryOffsetDao;
 
 //    /**
 //     * 更新工序的待加工批次号信息
@@ -3003,6 +3012,18 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
             return R.ok(res);
         }
     }
+
+    @Override
+    public R workDeliveryOffset(WorkDeliveryOffsetReq req) {
+        List<ApsDeliveryOffsetDo> list = this.baseMapper.selectDeliveryOffestList();
+        //新增现在的所有偏差
+        apsDeliveryOffsetService.saveOrUpdateBatch(list);
+        //需要
+        if (req.getNeedSendMessage()){
+
+        }
+        return R.ok();
+    }
 }
 
 

+ 18 - 0
cx-aps/cx-aps-common/src/main/resources/mybatis/ApsProcessOperationProcessEquDao.xml

@@ -727,4 +727,22 @@
         AND art.TENANTID = #{tenantId}
         ORDER BY aci.USEDEPTNAME,aci.CHECKITEMNAME,art.ROLLERTYPE
     </select>
+    <select id="selectDeliveryOffestList" resultType="com.rongwei.bsentity.domain.ApsDeliveryOffsetDo">
+        SELECT
+            apope.ROOTTASKID AS 'ID',
+            IF(apope.WORKSTATUS = '加工中',
+               TIMESTAMPDIFF(HOUR,apope.SCHEDULEENDDATE,apope.PLANENDDATE),
+               TIMESTAMPDIFF(HOUR,apope.SCHEDULEENDDATE,GREATEST(apope.PLANENDDATE,DATE_ADD(now(),INTERVAL TIMESTAMPDIFF(MINUTE,apope.PLANSTARTDATE,apope.PLANENDDATE) MINUTE)))) AS 'DELIVERYOFFSET'
+        FROM
+            aps_process_operation_process_equ apope
+                LEFT JOIN aps_process_operation_process_equ preapope ON preapope.ID = apope.PREVIOUSPROCESSESIDS
+                AND preapope.DELETED = 0
+        WHERE
+            apope.DELETED = 0
+          AND (
+            apope.WORKSTATUS = '加工中'
+                OR (
+                apope.WORKSTATUS = '待开工'
+                    AND ( preapope.ID IS NULL OR preapope.WORKSTATUS = '已完工' )))
+    </select>
 </mapper>

+ 43 - 0
cx-aps/cx-aps-entity/src/main/java/com/rongwei/bsentity/domain/ApsDeliveryOffsetDo.java

@@ -0,0 +1,43 @@
+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;
+
+/**
+ * 生产订单-坯料计划-工序作业加工设备-作业明细-料卷交货期偏差
+ * @TableName aps_delivery_offset
+ */
+@TableName(value ="aps_delivery_offset")
+@Data
+public class ApsDeliveryOffsetDo extends BaseDo {
+    /**
+     * 主键ID(作业明细ID)
+     */
+    @TableId(value = "ID")
+    private String id;
+
+    /**
+     * 
+     */
+    @TableField(value = "TENANTID")
+    private String tenantid;
+
+    /**
+     * 扩展json格式配置
+     */
+    @TableField(value = "ROPTION")
+    private String roption;
+
+    /**
+     * 料卷交货期偏差
+     */
+    @TableField(value = "DELIVERYOFFSET")
+    private Integer deliveryoffset;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 13 - 0
cx-aps/cx-aps-entity/src/main/java/com/rongwei/bsentity/vo/ApsDeliveryOffsetVo.java

@@ -0,0 +1,13 @@
+package com.rongwei.bsentity.vo;
+
+import com.rongwei.bsentity.domain.ApsDeliveryOffsetDo;
+import lombok.Data;
+
+/**
+ * @author :sc
+ * @since :2025/5/19
+ */
+@Data
+public class ApsDeliveryOffsetVo extends ApsDeliveryOffsetDo {
+    private String orderId;
+}

+ 12 - 0
cx-aps/cx-aps-entity/src/main/java/com/rongwei/bsentity/vo/WorkDeliveryOffsetReq.java

@@ -0,0 +1,12 @@
+package com.rongwei.bsentity.vo;
+
+import lombok.Data;
+
+/**
+ * @author :sc
+ * @since :2025/5/19
+ */
+@Data
+public class WorkDeliveryOffsetReq {
+    private Boolean needSendMessage = true;
+}

+ 10 - 0
cx-aps/cx-aps-server/src/main/java/com/rongwei/bsserver/controller/ApsProcessOperationProcessEquController.java

@@ -8,6 +8,7 @@ import com.rongwei.rwcommon.base.R;
 import com.rongwei.rwcommon.vo.CriteriaQuery;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
@@ -168,5 +169,14 @@ public class ApsProcessOperationProcessEquController {
         log.info("车间作业跟踪,导入");
         return apsProcessOperationProcessEquService.workShopImport(multipartFile, response);
     }
+
+    /**
+     * 作业延期提醒
+     */
+    @PostMapping("workDeliveryOffset")
+    @Scheduled(cron = "0 0 23 * * *")
+    public R workDeliveryOffset(@RequestBody WorkDeliveryOffsetReq req) {
+        return apsProcessOperationProcessEquService.workDeliveryOffset(req);
+    }
 }