Forráskód Böngészése

订单删除恢复炉号数量

laoyao 3 éve
szülő
commit
c86eaaedd2

+ 31 - 0
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/operationManagementCenter/service/impl/OrderServiceImpl.java

@@ -269,6 +269,22 @@ public class OrderServiceImpl extends SuperServiceImpl<OrderMapper, Order> imple
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Boolean delete(Order model) {
+
+
+        //原炉数量回收
+        List<OrderProduct>orderProductList = orderProductService.list(Wraps.<OrderProduct>lbQ().eq(OrderProduct::getOrderId,model.getId()));
+        Map<Long,Integer>orderProductMap = orderProductList.stream().collect(groupingBy(OrderProduct::getMeterialReceiveId, Collectors.summingInt(OrderProduct::getBomNum)));
+
+
+        List<Long>idList = orderProductList.stream().map(t->t.getMeterialReceiveId()).collect(Collectors.toList());
+        List<MMeterialReceiveLog>meterialReceiveLogList = meterialReceiveLogService.list(Wraps.<MMeterialReceiveLog>lbQ().in(MMeterialReceiveLog::getId,idList));
+
+        for(MMeterialReceiveLog meterialReceiveLog:meterialReceiveLogList){
+            int bomNum = orderProductMap.get(meterialReceiveLog.getId());
+            meterialReceiveLog.setUsedNum(meterialReceiveLog.getUsedNum()-bomNum);
+        }
+        meterialReceiveLogService.saveOrUpdateBatch(meterialReceiveLogList);
+
         //删除任务
         taskService.remove(Wraps.<TTask>lbQ().eq(TTask::getOrderId,model.getId()));
         //删除计划明细
@@ -765,6 +781,21 @@ public class OrderServiceImpl extends SuperServiceImpl<OrderMapper, Order> imple
     public Boolean deleteOrder(Order model){
         // 判断计划是否在生产中,如果是在生产中不可删除
         isFalse(checkPlan(model) > 0, "订单已生产,不可删除");
+
+        //原炉数量回收
+        List<OrderProduct>orderProductList = orderProductService.list(Wraps.<OrderProduct>lbQ().eq(OrderProduct::getOrderId,model.getId()));
+        Map<Long,Integer>orderProductMap = orderProductList.stream().collect(groupingBy(OrderProduct::getMeterialReceiveId, Collectors.summingInt(OrderProduct::getBomNum)));
+
+
+        List<Long>idList = orderProductList.stream().map(t->t.getMeterialReceiveId()).collect(Collectors.toList());
+        List<MMeterialReceiveLog>meterialReceiveLogList = meterialReceiveLogService.list(Wraps.<MMeterialReceiveLog>lbQ().in(MMeterialReceiveLog::getId,idList));
+
+        for(MMeterialReceiveLog meterialReceiveLog:meterialReceiveLogList){
+            int bomNum = orderProductMap.get(meterialReceiveLog.getId());
+            meterialReceiveLog.setUsedNum(meterialReceiveLog.getUsedNum()-bomNum);
+        }
+        meterialReceiveLogService.saveOrUpdateBatch(meterialReceiveLogList);
+
         PlanProduct planProduct = planProductMapper.selectOne(Wraps.<PlanProduct>lbQ().eq(PlanProduct::getPlanId,model.getId()));
         int count =  planMapper.delete(Wraps.<Plan>lbQ().eq(Plan::getId,model.getId()));
         planProductMapper.delete(Wraps.<PlanProduct>lbQ().eq(PlanProduct::getPlanId,model.getId()));

+ 2 - 2
imcs-admin-boot/imcs-business-biz/src/main/resources/mapper_business/base/productionReadyCenter/MMeterialReceiveLogMapper.xml

@@ -20,7 +20,7 @@
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id,create_time,create_user,update_time,update_user,meterialCode,tradeMark,used_num,
+        id,create_time,create_user,update_time,update_user,meterialCode,tradeMark,used_num,lastNum,
         meterial_id, furnace_batch_no, bom_batch_no, batch_stand, factory, meterial_batch_no, factory_date
     </sql>
 
@@ -30,7 +30,7 @@
         select
         <include refid="Base_Column_List"/>
         from (SELECT
-        l.*,m.meterial_code meterialCode,m.trade_mark tradeMark
+        l.*,m.meterial_code meterialCode,m.trade_mark tradeMark,(ifnull(l.batch_stand, 0) - ifnull(l.used_num, 0))lastNum
         from imcs_m_meterial_receive_log l
         left join imcs_m_meterial m on l.meterial_id = m.id
         ) s ${ew.customSqlSegment}

+ 6 - 0
imcs-admin-boot/imcs-business-entity/src/main/java/com/github/zuihou/business/productionReadyCenter/entity/MMeterialReceiveLog.java

@@ -134,6 +134,12 @@ public class MMeterialReceiveLog extends Entity<Long> {
     private Integer usedNum;
 
 
+    @ApiModelProperty(value = "剩余数量")
+    @TableField(exist = false)
+    @Excel(name = "剩余数量")
+    private Integer lastNum;
+
+
     @Builder
     public MMeterialReceiveLog(Long id, LocalDateTime createTime, Long createUser, LocalDateTime updateTime, Long updateUser, 
                     Long meterialId, String furnaceBatchNo, String bomBatchNo, Integer batchStand, String factory,