wangxin 8 months ago
parent
commit
225255d2a9

+ 7 - 1
src/main/java/cn/ezhizao/project/business/controller/BizSpecialDayworkController.java

@@ -1019,6 +1019,8 @@ public class BizSpecialDayworkController extends BaseController {
 
 
             //保存载具信息
             //保存载具信息
             bizDayworkCarrierService.saveOrUpdateBatch(bizDaywork.getDayworkCarriers());
             bizDayworkCarrierService.saveOrUpdateBatch(bizDaywork.getDayworkCarriers());
+            //保存报工箱数
+            bizDayworkItemService.saveCarrierNum(itemList);
 
 
         } else {
         } else {
             /**
             /**
@@ -1099,6 +1101,9 @@ public class BizSpecialDayworkController extends BaseController {
             }
             }
             bizDayworkCarrierService.saveOrUpdateBatch(bizDaywork.getDayworkCarriers());
             bizDayworkCarrierService.saveOrUpdateBatch(bizDaywork.getDayworkCarriers());
 
 
+            //保存报工箱数
+            bizDayworkItemService.saveCarrierNum(itemList);
+
             //修改daywork信息(只修改合格数、userId、userName、neckName、特殊报工字段)
             //修改daywork信息(只修改合格数、userId、userName、neckName、特殊报工字段)
             daywork.setUserId(bizDaywork.getUserId());
             daywork.setUserId(bizDaywork.getUserId());
             daywork.setUserName(bizDaywork.getUserName());
             daywork.setUserName(bizDaywork.getUserName());
@@ -1203,7 +1208,8 @@ public class BizSpecialDayworkController extends BaseController {
             carrier.setDayworkId(daywork.getId());
             carrier.setDayworkId(daywork.getId());
         }
         }
         bizDayworkCarrierService.saveOrUpdateBatch(bizDaywork.getDayworkCarriers());
         bizDayworkCarrierService.saveOrUpdateBatch(bizDaywork.getDayworkCarriers());
-
+        //保存报工箱数
+        bizDayworkItemService.saveCarrierNum(itemList);
         //修改daywork信息(只修改合格数、userId、userName、neckName、特殊报工字段)
         //修改daywork信息(只修改合格数、userId、userName、neckName、特殊报工字段)
         daywork.setProcessQualifiedNum(bizDaywork.getProcessQualifiedNum());
         daywork.setProcessQualifiedNum(bizDaywork.getProcessQualifiedNum());
         daywork.setTemporaryProcessQualifiedNum(bizDaywork.getProcessQualifiedNum());
         daywork.setTemporaryProcessQualifiedNum(bizDaywork.getProcessQualifiedNum());

+ 5 - 0
src/main/java/cn/ezhizao/project/business/domain/BizDayworkItem.java

@@ -59,6 +59,11 @@ public class BizDayworkItem extends BaseEntity {
     //外协发出明细
     //外协发出明细
     private Long  outsourceDetailId;
     private Long  outsourceDetailId;
 
 
+
+    /** 箱数 */
+    @Excel(name = "箱数")
+    private Integer carrierNum;
+
     /** 批次号 */
     /** 批次号 */
     @ApiModelProperty(value = "${comment}")
     @ApiModelProperty(value = "${comment}")
     private Long lotId;
     private Long lotId;

+ 8 - 0
src/main/java/cn/ezhizao/project/business/mapper/BizDayworkCarrierMapper.java

@@ -33,4 +33,12 @@ public interface BizDayworkCarrierMapper extends BaseMapper<BizDayworkCarrier>
     int updateByDaywork(Long dayworkId);
     int updateByDaywork(Long dayworkId);
 
 
     int removeSpecial(List<Long> firstDayworkIds);
     int removeSpecial(List<Long> firstDayworkIds);
+
+    /**
+     * 根据dayworkId查询绑定信息
+     * 在计算箱数时使用
+     * @param dayworkItemId
+     * @return
+     */
+    List<BizDayworkCarrier> getListBayDayworkId(List<Long> dayworkItemId);
 }
 }

+ 6 - 0
src/main/java/cn/ezhizao/project/business/service/IBizDayworkItemService.java

@@ -82,4 +82,10 @@ public interface IBizDayworkItemService extends IService<BizDayworkItem>
     int removeSpecial(List<Long> firstDayworkIds);
     int removeSpecial(List<Long> firstDayworkIds);
 
 
     List<BizDayworkItem> getListForLotTechnological(BizDayworkItem bizDayworkItem);
     List<BizDayworkItem> getListForLotTechnological(BizDayworkItem bizDayworkItem);
+
+    /**
+     * 保存工序结束时当前工序箱数
+     * @param dayworkItems
+     */
+    void saveCarrierNum(List<BizDayworkItem> dayworkItems);
 }
 }

+ 39 - 0
src/main/java/cn/ezhizao/project/business/service/impl/BizDayworkItemServiceImpl.java

@@ -1,6 +1,7 @@
 package cn.ezhizao.project.business.service.impl;
 package cn.ezhizao.project.business.service.impl;
 
 
 import cn.ezhizao.project.business.domain.*;
 import cn.ezhizao.project.business.domain.*;
+import cn.ezhizao.project.business.mapper.BizDayworkCarrierMapper;
 import cn.ezhizao.project.business.mapper.BizDayworkItemMapper;
 import cn.ezhizao.project.business.mapper.BizDayworkItemMapper;
 import cn.ezhizao.project.business.mapper.BizDayworkMapper;
 import cn.ezhizao.project.business.mapper.BizDayworkMapper;
 import cn.ezhizao.project.business.service.IBizDayworkItemService;
 import cn.ezhizao.project.business.service.IBizDayworkItemService;
@@ -26,6 +27,9 @@ public class BizDayworkItemServiceImpl extends ServiceImpl<BizDayworkItemMapper,
     private BizDayworkItemMapper bizDayworkItemMapper;
     private BizDayworkItemMapper bizDayworkItemMapper;
     @Resource
     @Resource
     private BizDayworkMapper bizDayworkMapper;
     private BizDayworkMapper bizDayworkMapper;
+    @Resource
+    private BizDayworkCarrierMapper bizDayworkCarrierMapper;
+
     @Resource
     @Resource
     private BizOutsourcedOrderDetailProcessServiceImpl bizOutsourcedOrderDetailProcessService;
     private BizOutsourcedOrderDetailProcessServiceImpl bizOutsourcedOrderDetailProcessService;
 
 
@@ -393,4 +397,39 @@ public class BizDayworkItemServiceImpl extends ServiceImpl<BizDayworkItemMapper,
     }
     }
 
 
 
 
+    /**
+     * 保存工序结束时当前工序箱数
+     * @param dayworkItems
+     */
+    @Override
+    public void saveCarrierNum(List<BizDayworkItem> dayworkItems) {
+        /**
+         * 1.因为只在工序结束时保存箱数所以在传入的dayworkItem集合中筛选出status=3的数据
+         * 2.根据筛选出的数据中的dayworkId查询出当前绑定的箱数,只计算普通蓝箱子和铁箱子,不计算外协箱子,检测箱子
+         * 3.将对应的箱数保存到dayworkItem中
+         */
+
+        //将工序已完成status='3'的数据筛选出来
+        List<BizDayworkItem> dayworkItemList=dayworkItems.stream().filter(item -> "3".equals(item.getStatus())).collect(Collectors.toList());
+        if(!dayworkItemList.isEmpty()){
+            // 提取dayworkId到一个新的集合中
+            List<Long> dayworkIds = dayworkItemList.stream()
+                    .map(BizDayworkItem::getDayworkId) // 提取dayworkId
+                    .collect(Collectors.toList()); // 收集到新的列表中
+
+            //根据dayworkId查询绑定信息只查询蓝箱子和铁箱子
+            List<BizDayworkCarrier> dayworkCarriers=bizDayworkCarrierMapper.getListBayDayworkId(dayworkIds);
+            Map<Long, Integer> countsByDayworkId = dayworkCarriers.stream().collect(Collectors.groupingBy(BizDayworkCarrier::getDayworkId,Collectors.summingInt(carrier -> 1)));
+
+            //将对应的箱数保存到dayworkItem中
+            for (BizDayworkItem dayworkItem:dayworkItemList){
+                dayworkItem.setCarrierNum(countsByDayworkId.get(dayworkItem.getDayworkId()));
+            }
+            super.saveOrUpdateBatch(dayworkItemList);
+
+        }
+
+    }
+
+
 }
 }

+ 11 - 0
src/main/resources/mybatis/business/BizDayworkCarrierMapper.xml

@@ -46,6 +46,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </foreach>
         </foreach>
     </update>
     </update>
 
 
+    <select id="getListBayDayworkId" parameterType="list" resultMap="BizDayworkCarrierResult">
+        SELECT * FROM biz_daywork_carrier d
+        LEFT JOIN  biz_carrier c ON d.carrier_id=c.id
+        <trim prefix=" WHERE" suffix="" suffixOverrides="AND">
+            d.deleted = 0 AND d.is_changed=0 AND c.is_inspection=0
+            AND d.daywork_id IN
+            <foreach item="dayworkId"  collection="list" open="(" separator="," close=")">
+                #{dayworkId}
+            </foreach>
+        </trim>
+    </select>
 
 
 
 
     <delete id="physicalDelete">
     <delete id="physicalDelete">