فهرست منبع

订单删除恢复炉号数量

laoyao 3 سال پیش
والد
کامیت
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
     @Override
     @Transactional(rollbackFor = Exception.class)
     @Transactional(rollbackFor = Exception.class)
     public Boolean delete(Order model) {
     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()));
         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){
     public Boolean deleteOrder(Order model){
         // 判断计划是否在生产中,如果是在生产中不可删除
         // 判断计划是否在生产中,如果是在生产中不可删除
         isFalse(checkPlan(model) > 0, "订单已生产,不可删除");
         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()));
         PlanProduct planProduct = planProductMapper.selectOne(Wraps.<PlanProduct>lbQ().eq(PlanProduct::getPlanId,model.getId()));
         int count =  planMapper.delete(Wraps.<Plan>lbQ().eq(Plan::getId,model.getId()));
         int count =  planMapper.delete(Wraps.<Plan>lbQ().eq(Plan::getId,model.getId()));
         planProductMapper.delete(Wraps.<PlanProduct>lbQ().eq(PlanProduct::getPlanId,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">
     <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
         meterial_id, furnace_batch_no, bom_batch_no, batch_stand, factory, meterial_batch_no, factory_date
     </sql>
     </sql>
 
 
@@ -30,7 +30,7 @@
         select
         select
         <include refid="Base_Column_List"/>
         <include refid="Base_Column_List"/>
         from (SELECT
         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
         from imcs_m_meterial_receive_log l
         left join imcs_m_meterial m on l.meterial_id = m.id
         left join imcs_m_meterial m on l.meterial_id = m.id
         ) s ${ew.customSqlSegment}
         ) 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;
     private Integer usedNum;
 
 
 
 
+    @ApiModelProperty(value = "剩余数量")
+    @TableField(exist = false)
+    @Excel(name = "剩余数量")
+    private Integer lastNum;
+
+
     @Builder
     @Builder
     public MMeterialReceiveLog(Long id, LocalDateTime createTime, Long createUser, LocalDateTime updateTime, Long updateUser, 
     public MMeterialReceiveLog(Long id, LocalDateTime createTime, Long createUser, LocalDateTime updateTime, Long updateUser, 
                     Long meterialId, String furnaceBatchNo, String bomBatchNo, Integer batchStand, String factory, 
                     Long meterialId, String furnaceBatchNo, String bomBatchNo, Integer batchStand, String factory,