Browse Source

辅料申购提醒、作业延期提醒

DLC 1 year ago
parent
commit
9450bb37e6

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

@@ -184,6 +184,14 @@ public class SaveConstans {
          * 订单未及时评审提醒
          */
         public static final String ORDEROUTTIME_AUDIT = "orderouttimeaudit";
+        /**
+         * 辅料申购提醒
+         */
+        public static final String AUXILIARYMATERIAL_REMIND = "auxiliarymaterial";
+        /**
+         * 作业延期提醒
+         */
+        public static final String PROCESSDELAY_REMIND = "processdelay";
     }
 
     public static class NotifyTitle {
@@ -291,6 +299,16 @@ public class SaveConstans {
          * 订单评审提醒
          */
         public static final String ORDEROUTTIMEAUDIT_TITLE = "订单评审提醒";
+
+        /**
+         * 辅料申购提醒
+         */
+        public static final String AUXILIARYMATERIAL_TITLE = "辅料申购提醒";
+
+        /**
+         * 作业延期提醒
+         */
+        public static final String PROCESSDELAY_TITLE = "订单作业未按计划完成";
     }
 
     public static class NotifyContent {
@@ -395,6 +413,14 @@ public class SaveConstans {
          * 订单评审提醒内容
          */
         public static final String ORDEROUTTIME_AUDIT_CONTENT = "订单【%s】待评审,请及时处理";
+        /**
+         * 辅料申购提醒
+         */
+        public static final String AUXILIARYMATERIAL_CONTENT = "订单【%s】有辅料计划申购日期临近或到期,请及时申购";
+        /**
+         * 作业延期提醒
+         */
+        public static final String PROCESSDELAY_CONTENT = "订单【%s】有作业未按计划完工,请及时调整计划";
     }
 
     /**

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

@@ -38,6 +38,19 @@ public interface ApsProductionOrderDao extends BaseMapper<ApsProductionOrderDo>
 
     @Select("SELECT count(1) 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 apo2 ON abo.ID = apo2.BLANKID  AND apo2.DELETED = 0  LEFT JOIN aps_process_operation_process_equ apope ON apo2.ID = apope.PROCESSID AND apope.DELETED = 0 WHERE apo.DELETED = 0  AND apo.ID = #{id} AND (apope.CONFLICTDES is not null or apope.CONFLICTDES != '')")
     int selectConflictdesCount(@Param("id") String id);
+
+    @Select("select o.ID,o.ORDERNO,o.CREATEUSERID,o.CREATEUSERNAME,u.EMAIL as MODIFYUSERNAME from aps_production_order o left join sys_user u on o.CREATEUSERID=u.ID and u.DELETED='0'\n" +
+            "where o.DELETED='0' and IFNULL(o.ORDERNO,'')!='' and o.MATERIALSTATUS='已评审' \n" +
+            "\tand o.ID in(select distinct MAINID from aps_auxiliary_material where DELETED='0' and SUBDCRIPTIONCODE='未申购' and TIMESTAMPDIFF(DAY,DATE_FORMAT(NOW(),'%Y-%m-%d'),DATE_FORMAT(SUBSCRIPTIONDATE,'%Y-%m-%d'))<8)")
+    List<ApsProductionOrderDo> getAuxiliaryMaterial();
+
+    @Select("select o.ID,o.ORDERNO,o.CREATEUSERID,o.CREATEUSERNAME,u.EMAIL as MODIFYUSERNAME from aps_production_order o left join sys_user u on o.CREATEUSERID=u.ID and u.DELETED='0'\n" +
+            "where o.DELETED='0' and IFNULL(o.ORDERNO,'')!='' and o.ID in(\n" +
+            "\tselect distinct b.PRODUCTIONORDERID from aps_process_operation_process_equ e\n" +
+            "\tleft join aps_process_operation p on p.DELETED='0' and p.ID=e.PROCESSID\n" +
+            "\tleft join aps_blank_order b on b.DELETED='0' and b.ID=p.BLANKID\n" +
+            "\twhere e.DELETED='0' and (p.PROCESSSTATUS='30' or p.PROCESSSTATUS='40') and (e.WORKSTATUS='待开工' or e.WORKSTATUS='加工中') and TIMESTAMPDIFF(DAY,DATE_FORMAT(NOW(),'%Y-%m-%d'),DATE_FORMAT(e.PLANENDDATE,'%Y-%m-%d'))<0)")
+    List<ApsProductionOrderDo> getProcessDelay();
 }
 
 

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

@@ -20,5 +20,9 @@ public interface ApsProductionOrderService extends IService<ApsProductionOrderDo
 
     void orderOuttimeAudit();
 
+    void auxiliaryMaterial();
+
     R changeOrder(ApsProductionOrderDo req);
+
+    void processDelay();
 }

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

@@ -14,13 +14,6 @@ import com.rongwei.bscommon.sys.service.ApsProductionOrderService;
 import com.rongwei.bscommon.sys.utils.ApsUtils;
 import com.rongwei.bsentity.domain.*;
 import com.rongwei.bsentity.vo.*;
-import com.rongwei.bsentity.domain.ApsBlankOrderDo;
-import com.rongwei.bsentity.domain.ApsProductionMergeOrderDo;
-import com.rongwei.bsentity.domain.ApsProductionOrderDo;
-import com.rongwei.bsentity.vo.ApsProductDetailVo;
-import com.rongwei.bsentity.vo.CheckAndSaveOrUpdateOrderReq;
-import com.rongwei.bsentity.vo.ProductDetailIdAndPlanOutPutRollCountAllVo;
-import com.rongwei.bsentity.vo.ProductTypeIdAndPidVo;
 import com.rongwei.rwadmincommon.system.vo.SysUserVo;
 import com.rongwei.rwcommon.base.R;
 import com.rongwei.rwcommon.utils.StringUtils;
@@ -40,9 +33,9 @@ import java.util.List;
 import java.util.Set;
 import java.util.stream.Collectors;
 
-import static com.rongwei.safecommon.utils.SaveConstans.NotifyContent.ORDEROUTTIME_AUDIT_CONTENT;
-import static com.rongwei.safecommon.utils.SaveConstans.NotifyTitle.ORDEROUTTIMEAUDIT_TITLE;
-import static com.rongwei.safecommon.utils.SaveConstans.NotifyType.ORDEROUTTIME_AUDIT;
+import static com.rongwei.safecommon.utils.SaveConstans.NotifyContent.*;
+import static com.rongwei.safecommon.utils.SaveConstans.NotifyTitle.*;
+import static com.rongwei.safecommon.utils.SaveConstans.NotifyType.*;
 
 /**
  *
@@ -325,6 +318,30 @@ public class ApsProductionOrderServiceImpl extends ServiceImpl<ApsProductionOrde
         }
     }
 
+    /*
+    辅料申购提醒
+     */
+    @Override
+    public void auxiliaryMaterial() {
+        log.info("辅料申购提醒开始");
+        List<ApsProductionOrderDo> apsProductionOrderDos = this.baseMapper.getAuxiliaryMaterial();
+        for (ApsProductionOrderDo apsProductionOrderDo : apsProductionOrderDos) {
+            //系统通知(移动端和PC端个人工作台)
+            CXCommonUtils.sendNotify(AUXILIARYMATERIAL_TITLE, String.format(AUXILIARYMATERIAL_CONTENT, apsProductionOrderDo.getOrderno()), null, Arrays.asList(apsProductionOrderDo.getCreateuserid().split(",")), apsProductionOrderDo.getId(), AUXILIARYMATERIAL_REMIND, false);
+
+            //邮件提醒
+            if (StringUtils.isNotEmpty(apsProductionOrderDo.getModifyusername())) {
+                MailDo mailDo = new MailDo();
+                mailDo.setReceiveEmail(apsProductionOrderDo.getModifyusername().split(","));
+                mailDo.setNeedTransReceive(false);
+                mailDo.setCcEmail(new String[]{});
+                mailDo.setSubject(AUXILIARYMATERIAL_TITLE);
+                mailDo.setContent(String.format(AUXILIARYMATERIAL_CONTENT, apsProductionOrderDo.getOrderno()));
+                autoCommonFeginClient.sendHtmlMail(mailDo);
+            }
+        }
+    }
+
     @Override
     @Transactional
     public R changeOrder(ApsProductionOrderDo req) {
@@ -349,6 +366,30 @@ public class ApsProductionOrderServiceImpl extends ServiceImpl<ApsProductionOrde
         return R.ok();
     }
 
+    /*
+    作业延期提醒
+     */
+    @Override
+    public void processDelay() {
+        log.info("作业延期提醒开始");
+        List<ApsProductionOrderDo> apsProductionOrderDos = this.baseMapper.getProcessDelay();
+        for (ApsProductionOrderDo apsProductionOrderDo : apsProductionOrderDos) {
+            //系统通知(移动端和PC端个人工作台)
+            CXCommonUtils.sendNotify(PROCESSDELAY_TITLE, String.format(PROCESSDELAY_CONTENT, apsProductionOrderDo.getOrderno()), null, Arrays.asList(apsProductionOrderDo.getCreateuserid().split(",")), apsProductionOrderDo.getId(), PROCESSDELAY_REMIND, false);
+
+            //邮件提醒
+            if (StringUtils.isNotEmpty(apsProductionOrderDo.getModifyusername())) {
+                MailDo mailDo = new MailDo();
+                mailDo.setReceiveEmail(apsProductionOrderDo.getModifyusername().split(","));
+                mailDo.setNeedTransReceive(false);
+                mailDo.setCcEmail(new String[]{});
+                mailDo.setSubject(PROCESSDELAY_TITLE);
+                mailDo.setContent(String.format(PROCESSDELAY_CONTENT, apsProductionOrderDo.getOrderno()));
+                autoCommonFeginClient.sendHtmlMail(mailDo);
+            }
+        }
+    }
+
 }
 
 

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

@@ -74,4 +74,20 @@ public class ApsProductionOrderController {
         return apsProductionOrderService.changeOrder(req);
     }
 
+    /*
+    辅料申购提醒
+     */
+    @PostMapping("/auxiliaryMaterial")
+    public void auxiliaryMaterial() {
+        apsProductionOrderService.auxiliaryMaterial();
+    }
+
+    /*
+    作业延期提醒
+     */
+    @PostMapping("/processDelay")
+    public void processDelay() {
+        apsProductionOrderService.processDelay();
+    }
+
 }