Explorar o código

aps-交期延期预警

sucheng hai 2 meses
pai
achega
97f1e70386

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

@@ -166,6 +166,10 @@ public interface ApsProcessOperationProcessEquDao extends BaseMapper<ApsProcessO
     void myDeleteByIds(@Param("needDelIdList") List<String> needDelIdList);
 
     List<TenantIdAndUserIdsVo> selectNeedPushMessageUsers();
+
+    void updateProcessEquBatchById(@Param("list") List<ApsProcessOperationProcessEquDo> list);
+
+    void saveOrUpdateDeliverOffsetBatch(@Param("list") List<ApsDeliveryOffsetDo> needUpdateOrInsertList);
 }
 
 

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

@@ -18,6 +18,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.google.common.collect.Lists;
 import com.rongwei.bscommon.sys.dao.ApsDeliveryOffsetDao;
 import com.rongwei.bscommon.sys.dao.ApsProcessOperationProcessEquDao;
 import com.rongwei.bscommon.sys.listener.SpecificRowDropDownHandler;
@@ -3052,6 +3053,13 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
                                         Integer::max
                                 )));
 
+        SysUserVo currentUser = CXCommonUtils.getCurrentUser();
+        if (currentUser == null){
+            currentUser = new SysUserVo();
+            currentUser.setId("0");
+            currentUser.setName("定时任务操作");
+        }
+        DateTime now = DateUtil.date();
         //需要修改或新增的集合
         List<ApsDeliveryOffsetDo> needUpdateOrInsertList = new LinkedList<>();
         for (ProductCardVo productCardVo : list) {
@@ -3060,6 +3068,14 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
             apsDeliveryOffsetDo.setOrderid(productCardVo.getOrderId());
             apsDeliveryOffsetDo.setBlankid(productCardVo.getBlankId());
             apsDeliveryOffsetDo.setStatus(productCardVo.getStatus());
+            apsDeliveryOffsetDo.setTenantid(productCardVo.getTenantId());
+            apsDeliveryOffsetDo.setCreatedate(now);
+            apsDeliveryOffsetDo.setModifydate(now);
+            apsDeliveryOffsetDo.setCreateuserid(currentUser.getId());
+            apsDeliveryOffsetDo.setCreateusername(currentUser.getName());
+            apsDeliveryOffsetDo.setModifyuserid(currentUser.getId());
+            apsDeliveryOffsetDo.setModifyusername(currentUser.getName());
+            apsDeliveryOffsetDo.setDeleted("0");
 
             //计算每个料卷(卡片ID区分料卷)计划完工时间=计划成品卷数>0的作业明细的最晚的排程完工时间+订单的送货时长
             //订单的送货时长(小时)
@@ -3156,14 +3172,14 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
 
 
         if (!apsProcessOperationProcessEquDos.isEmpty()) {
-            for (ApsProcessOperationProcessEquDo apsProcessOperationProcessEquDo : apsProcessOperationProcessEquDos) {
-                apsProcessOperationProcessEquService.update(new LambdaUpdateWrapper<ApsProcessOperationProcessEquDo>()
-                        .set(ApsProcessOperationProcessEquDo::getTimeoffset, apsProcessOperationProcessEquDo.getTimeoffset())
-                        .eq(ApsProcessOperationProcessEquDo::getId, apsProcessOperationProcessEquDo.getId()));
-            }
+            Lists.partition(apsProcessOperationProcessEquDos, 1000).forEach(apsProcessOperationProcessEquDoList -> {
+                this.baseMapper.updateProcessEquBatchById(apsProcessOperationProcessEquDoList);
+            });
         }
         if (!needUpdateOrInsertList.isEmpty()) {
-            apsDeliveryOffsetService.saveOrUpdateBatch(needUpdateOrInsertList);
+            Lists.partition(needUpdateOrInsertList, 50).forEach(needUpdateOrInsertListVo -> {
+                this.baseMapper.saveOrUpdateDeliverOffsetBatch(needUpdateOrInsertListVo);
+            });
         }
         //反查需要删除的数据
         List<String> needDelIdList = this.baseMapper.selectAllNeedDelIds();

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

@@ -472,6 +472,47 @@
         WHERE
             apo.DELETED = 0
     </update>
+    <update id="updateProcessEquBatchById">
+        <foreach collection="list" item="item">
+            update aps_process_operation_process_equ set TIMEOFFSET = #{item.timeoffset} where ID = #{item.id};
+        </foreach>
+    </update>
+    <update id="saveOrUpdateDeliverOffsetBatch">
+        <foreach collection="list" item="item">
+            INSERT INTO aps_delivery_offset (ID,TENANTID,ROPTION,DELETED,REMARK,CREATEDATE,CREATEUSERID,MODIFYDATE,MODIFYUSERID,CREATEUSERNAME,MODIFYUSERNAME,DELIVERYOFFSET,PLANENDDATE,GUESSENDDATE,ACTUALENDDATE,`STATUS`,ORDERID,BLANKID)
+            VALUES (#{item.id},
+                    #{item.tenantid},
+                    #{item.roption},
+                    #{item.deleted},
+                    #{item.remark},
+                    #{item.createdate},
+                    #{item.createuserid},
+                    #{item.modifydate},
+                    #{item.modifyuserid},
+                    #{item.createusername},
+                    #{item.modifyusername},
+                    #{item.deliveryoffset},
+                    #{item.planenddate},
+                    #{item.guessenddate},
+                    #{item.actualenddate},
+                    #{item.status},
+                    #{item.orderid},
+                    #{item.blankid})
+            ON DUPLICATE KEY
+                UPDATE
+            DELETED=#{item.deleted},
+            MODIFYDATE=#{item.modifydate},
+            MODIFYUSERID=#{item.modifyuserid},
+            MODIFYUSERNAME=#{item.modifyusername},
+            DELIVERYOFFSET=#{item.deliveryoffset},
+            PLANENDDATE=#{item.planenddate},
+            GUESSENDDATE=#{item.guessenddate},
+            ACTUALENDDATE=#{item.actualenddate},
+            STATUS=#{item.status},
+            ORDERID=#{item.orderid},
+            BLANKID=#{item.blankid};
+        </foreach>
+    </update>
     <select id="getOptionalEquipmentById" resultType="com.rongwei.bsentity.vo.OptionalEquipmentVo">
         SELECT
         CONCAT(aci.USEDEPTID, '/', aci.ID ) AS value ,