Browse Source

装运单列表返回对应炉号的根数

lingpeng.li 1 week ago
parent
commit
ee2b1e31bc
13 changed files with 176 additions and 0 deletions
  1. 6 0
      zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/billetAutoTmp/mapper/BilletAutoTmpMapper.java
  2. 18 0
      zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/billetAutoTmp/mapper/xml/BilletAutoTmpMapper.xml
  3. 6 0
      zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/rollClubThree/mapper/RollClubThreeDetailsMapper.java
  4. 17 0
      zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/rollClubThree/mapper/xml/RollClubThreeDetailsMapper.xml
  5. 6 0
      zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/rollClubTwo/mapper/RollClubTwoDetailsMapper.java
  6. 18 0
      zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/rollClubTwo/mapper/xml/RollClubTwoDetailsMapper.xml
  7. 6 0
      zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/rollOutShipp/mapper/RollOutShippDetailsMapper.java
  8. 18 0
      zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/rollOutShipp/mapper/xml/RollOutShippDetailsMapper.xml
  9. 5 0
      zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/storageBill/controller/StorageBillController.java
  10. 6 0
      zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/storageBill/entity/StorageBill.java
  11. 2 0
      zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/storageBill/service/IStorageBillService.java
  12. 48 0
      zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/storageBill/service/impl/StorageBillServiceImpl.java
  13. 20 0
      zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/storageBill/vo/HeatNoCount.java

+ 6 - 0
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/billetAutoTmp/mapper/BilletAutoTmpMapper.java

@@ -1,7 +1,11 @@
 package org.jeecg.modules.billet.billetAutoTmp.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
 import org.jeecg.modules.billet.billetAutoTmp.entity.BilletAutoTmp;
+import org.jeecg.modules.billet.storageBill.vo.HeatNoCount;
+
+import java.util.List;
 
 /**
  * @Description: billet_auto_tmp
@@ -11,4 +15,6 @@ import org.jeecg.modules.billet.billetAutoTmp.entity.BilletAutoTmp;
  */
 public interface BilletAutoTmpMapper extends BaseMapper<BilletAutoTmp> {
 
+    List<HeatNoCount> countHeatNoGroupBy(@Param("storageBillIds") List<String> storageBillIds);
+
 }

+ 18 - 0
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/billetAutoTmp/mapper/xml/BilletAutoTmpMapper.xml

@@ -2,4 +2,22 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.jeecg.modules.billet.billetAutoTmp.mapper.BilletAutoTmpMapper">
 
+    <select id="countHeatNoGroupBy" resultType="org.jeecg.modules.billet.storageBill.vo.HeatNoCount">
+        SELECT
+        storage_bill_id AS storageBillId,
+        heat_no AS heatNo,
+        SUM(
+        CASE
+        WHEN stack_addr IS NOT NULL AND TRIM(stack_addr) != '' THEN 4
+        ELSE 1
+        END
+        ) AS count
+        FROM billet_auto_tmp
+        WHERE storage_bill_id IN
+        <foreach collection="storageBillIds" item="id" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+        GROUP BY storage_bill_id, heat_no
+    </select>
+
 </mapper>

+ 6 - 0
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/rollClubThree/mapper/RollClubThreeDetailsMapper.java

@@ -1,7 +1,11 @@
 package org.jeecg.modules.billet.rollClubThree.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
 import org.jeecg.modules.billet.rollClubThree.entity.RollClubThreeDetails;
+import org.jeecg.modules.billet.storageBill.vo.HeatNoCount;
+
+import java.util.List;
 
 /**
  * @Description: 棒三明细信息
@@ -11,4 +15,6 @@ import org.jeecg.modules.billet.rollClubThree.entity.RollClubThreeDetails;
  */
 public interface RollClubThreeDetailsMapper extends BaseMapper<RollClubThreeDetails> {
 
+    List<HeatNoCount> countHeatNoGroupBy(@Param("storageBillIds") List<String> storageBillIds);
+
 }

+ 17 - 0
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/rollClubThree/mapper/xml/RollClubThreeDetailsMapper.xml

@@ -2,4 +2,21 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.jeecg.modules.billet.rollClubThree.mapper.RollClubThreeDetailsMapper">
 
+    <select id="countHeatNoGroupBy" resultType="org.jeecg.modules.billet.storageBill.vo.HeatNoCount">
+        SELECT
+        storage_bill_id AS storageBillId,
+        heat_no AS heatNo,
+        SUM(
+        CASE
+        WHEN stack_addr IS NOT NULL AND TRIM(stack_addr) != '' THEN 4
+        ELSE 1
+        END
+        ) AS count
+        FROM roll_club_three_details
+        WHERE storage_bill_id IN
+        <foreach collection="storageBillIds" item="id" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+        GROUP BY storage_bill_id, heat_no
+    </select>
 </mapper>

+ 6 - 0
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/rollClubTwo/mapper/RollClubTwoDetailsMapper.java

@@ -1,7 +1,11 @@
 package org.jeecg.modules.billet.rollClubTwo.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
 import org.jeecg.modules.billet.rollClubTwo.entity.RollClubTwoDetails;
+import org.jeecg.modules.billet.storageBill.vo.HeatNoCount;
+
+import java.util.List;
 
 /**
  * @Description: 棒二明细信息
@@ -11,4 +15,6 @@ import org.jeecg.modules.billet.rollClubTwo.entity.RollClubTwoDetails;
  */
 public interface RollClubTwoDetailsMapper extends BaseMapper<RollClubTwoDetails> {
 
+    List<HeatNoCount> countHeatNoGroupBy(@Param("storageBillIds") List<String> storageBillIds);
+
 }

+ 18 - 0
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/rollClubTwo/mapper/xml/RollClubTwoDetailsMapper.xml

@@ -2,4 +2,22 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.jeecg.modules.billet.rollClubTwo.mapper.RollClubTwoDetailsMapper">
 
+    <select id="countHeatNoGroupBy" resultType="org.jeecg.modules.billet.storageBill.vo.HeatNoCount">
+        SELECT
+        storage_bill_id AS storageBillId,
+        heat_no AS heatNo,
+        SUM(
+        CASE
+        WHEN stack_addr IS NOT NULL AND TRIM(stack_addr) != '' THEN 4
+        ELSE 1
+        END
+        ) AS count
+        FROM roll_club_two_details
+        WHERE storage_bill_id IN
+        <foreach collection="storageBillIds" item="id" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+        GROUP BY storage_bill_id, heat_no
+    </select>
+
 </mapper>

+ 6 - 0
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/rollOutShipp/mapper/RollOutShippDetailsMapper.java

@@ -1,7 +1,11 @@
 package org.jeecg.modules.billet.rollOutShipp.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
 import org.jeecg.modules.billet.rollOutShipp.entity.RollOutShippDetails;
+import org.jeecg.modules.billet.storageBill.vo.HeatNoCount;
+
+import java.util.List;
 
 /**
  * @Description: 上若明细信息
@@ -11,4 +15,6 @@ import org.jeecg.modules.billet.rollOutShipp.entity.RollOutShippDetails;
  */
 public interface RollOutShippDetailsMapper extends BaseMapper<RollOutShippDetails> {
 
+    List<HeatNoCount> countHeatNoGroupBy(@Param("storageBillIds") List<String> storageBillIds);
+
 }

+ 18 - 0
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/rollOutShipp/mapper/xml/RollOutShippDetailsMapper.xml

@@ -2,4 +2,22 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.jeecg.modules.billet.rollOutShipp.mapper.RollOutShippDetailsMapper">
 
+    <select id="countHeatNoGroupBy" resultType="org.jeecg.modules.billet.storageBill.vo.HeatNoCount">
+        SELECT
+        storage_bill_id AS storageBillId,
+        heat_no AS heatNo,
+        SUM(
+        CASE
+        WHEN stack_addr IS NOT NULL AND TRIM(stack_addr) != '' THEN 4
+        ELSE 1
+        END
+        ) AS count
+        FROM roll_out_shipp_details
+        WHERE storage_bill_id IN
+        <foreach collection="storageBillIds" item="id" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+        GROUP BY storage_bill_id, heat_no
+    </select>
+
 </mapper>

+ 5 - 0
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/storageBill/controller/StorageBillController.java

@@ -78,6 +78,9 @@ import java.time.LocalDateTime;
 import java.time.ZoneId;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 import java.util.stream.IntStream;
@@ -258,6 +261,8 @@ public class StorageBillController extends JeecgController<StorageBill, IStorage
 		// 8. 填充车次编号与交班记录信息
 		storageBillService.fillCarNumbersAndShiftInfo(records);
 
+		storageBillService.fillHeatNoCountMapForBills(page.getRecords());
+
 		// 9. 返回分页结果
 		pagedBills.setRecords(records);
 		return Result.OK(pagedBills);

+ 6 - 0
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/storageBill/entity/StorageBill.java

@@ -9,10 +9,12 @@ import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 import org.jeecg.common.aspect.annotation.Dict;
 import org.jeecgframework.poi.excel.annotation.Excel;
+import org.jeecgframework.poi.excel.annotation.ExcelIgnore;
 import org.springframework.format.annotation.DateTimeFormat;
 
 import java.io.Serializable;
 import java.util.Date;
+import java.util.Map;
 
 /**
  * @Description: 钢坯装运单
@@ -201,4 +203,8 @@ public class StorageBill implements Serializable {
     @Excel(name = "看板总支数", width = 15)
     @ApiModelProperty(value = "看板总支数")
     private Integer panelAmountTotal;
+
+    @ExcelIgnore
+    @TableField(exist = false)
+    private Map<String, Integer> heatNoCountMap;
 }

+ 2 - 0
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/storageBill/service/IStorageBillService.java

@@ -101,4 +101,6 @@ public interface IStorageBillService extends IService<StorageBill> {
     void fillCarNumbersAndShiftInfo(List<StorageBill> bills);
 
     String destinationSwitchHandle(StorageBill sb, String destination, String typeConfigId);
+
+    void fillHeatNoCountMapForBills(List<StorageBill> storageBills);
 }

+ 48 - 0
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/storageBill/service/impl/StorageBillServiceImpl.java

@@ -21,6 +21,7 @@ import org.jeecg.modules.actualControl.billetActual.billetActual.service.IBillet
 import org.jeecg.modules.actualControl.heatsActuals.entity.HeatsActuals;
 import org.jeecg.modules.actualControl.heatsActuals.service.IHeatsActualsService;
 import org.jeecg.modules.billet.billetAutoTmp.entity.BilletAutoTmp;
+import org.jeecg.modules.billet.billetAutoTmp.mapper.BilletAutoTmpMapper;
 import org.jeecg.modules.billet.billetAutoTmp.service.IBilletAutoTmpService;
 import org.jeecg.modules.billet.billetHotsend.entity.BilletHotsend;
 import org.jeecg.modules.billet.billetHotsend.entity.BilletHotsendDetailsVo;
@@ -34,20 +35,25 @@ import org.jeecg.modules.billet.billetLiftingBill.entity.BilletLiftingBill;
 import org.jeecg.modules.billet.billetLiftingBill.service.IBilletLiftingBillService;
 import org.jeecg.modules.billet.operateLog.service.IOperateLogService;
 import org.jeecg.modules.billet.rollClubOne.entity.RollClubOneDetails;
+import org.jeecg.modules.billet.rollClubOne.mapper.RollClubOneDetailsMapper;
 import org.jeecg.modules.billet.rollClubOne.service.IRollClubOneDetailsService;
 import org.jeecg.modules.billet.rollClubThree.entity.RollClubThree;
 import org.jeecg.modules.billet.rollClubThree.entity.RollClubThreeDetails;
+import org.jeecg.modules.billet.rollClubThree.mapper.RollClubThreeDetailsMapper;
 import org.jeecg.modules.billet.rollClubThree.service.IRollClubThreeDetailsService;
 import org.jeecg.modules.billet.rollClubThree.service.IRollClubThreeService;
 import org.jeecg.modules.billet.rollClubTwo.entity.RollClubTwo;
 import org.jeecg.modules.billet.rollClubTwo.entity.RollClubTwoDetails;
+import org.jeecg.modules.billet.rollClubTwo.mapper.RollClubTwoDetailsMapper;
 import org.jeecg.modules.billet.rollClubTwo.service.IRollClubTwoDetailsService;
 import org.jeecg.modules.billet.rollClubTwo.service.IRollClubTwoService;
 import org.jeecg.modules.billet.rollHeight.entity.DestinationStatisticsDetails;
 import org.jeecg.modules.billet.rollHeight.entity.RollHeightDetails;
+import org.jeecg.modules.billet.rollHeight.mapper.RollHeightDetailsMapper;
 import org.jeecg.modules.billet.rollHeight.service.IRollHeightDetailsService;
 import org.jeecg.modules.billet.rollOutShipp.entity.RollOutShipp;
 import org.jeecg.modules.billet.rollOutShipp.entity.RollOutShippDetails;
+import org.jeecg.modules.billet.rollOutShipp.mapper.RollOutShippDetailsMapper;
 import org.jeecg.modules.billet.rollOutShipp.service.IRollOutShippDetailsService;
 import org.jeecg.modules.billet.rollOutShipp.service.IRollOutShippService;
 import org.jeecg.modules.billet.stackingAndLoadingVehicles.entity.StackingAndLoadingVehicles;
@@ -158,6 +164,20 @@ public class StorageBillServiceImpl extends ServiceImpl<StorageBillMapper, Stora
 
     @Autowired
     private StackingAndLoadingVehiclesMapper stackingAndLoadingVehiclesMapper;
+
+    @Autowired
+    private RollClubTwoDetailsMapper rollClubTwoDetailsMapper;
+
+    @Autowired
+    private RollClubThreeDetailsMapper rollClubThreeDetailsMapper;
+
+    @Autowired
+    private RollOutShippDetailsMapper rollOutShippDetailsMapper;
+
+    @Autowired
+    private BilletAutoTmpMapper billetAutoTmpMapper;
+
+
     @Override
     public void departHandle(BilletHotsendDetailsVo billetHotsendDetailsVo) {
         StorageBill storageBill = billetHotsendDetailsVo.getStorageBill();
@@ -6160,6 +6180,34 @@ public class StorageBillServiceImpl extends ServiceImpl<StorageBillMapper, Stora
         return "切换棒线操作成功!";
     }
 
+    public void fillHeatNoCountMapForBills(List<StorageBill> storageBills) {
+        if (oConvertUtils.isEmpty(storageBills)) {return;}
+
+        List<String> storageBillIds = storageBills.stream()
+                .map(StorageBill::getId)
+                .collect(Collectors.toList());
+
+        List<HeatNoCount> allCounts = new ArrayList<>();
+        allCounts.addAll(rollClubTwoDetailsMapper.countHeatNoGroupBy(storageBillIds));
+        allCounts.addAll(rollClubThreeDetailsMapper.countHeatNoGroupBy(storageBillIds));
+        allCounts.addAll(rollOutShippDetailsMapper.countHeatNoGroupBy(storageBillIds));
+        allCounts.addAll(billetAutoTmpMapper.countHeatNoGroupBy(storageBillIds));
+
+        // 聚合到 Map<storageBillId, Map<heatNo, count>>
+        Map<String, Map<String, Integer>> billHeatNoMap = new HashMap<>();
+        for (HeatNoCount dto : allCounts) {
+            billHeatNoMap
+                    .computeIfAbsent(dto.getStorageBillId(), k -> new HashMap<>())
+                    .merge(dto.getHeatNo(), dto.getCount(), Integer::sum);
+        }
+
+        // 设置回每个 StorageBill 对象中
+        for (StorageBill bill : storageBills) {
+            Map<String, Integer> heatNoMap = billHeatNoMap.getOrDefault(bill.getId(), new HashMap<>());
+            bill.setHeatNoCountMap(heatNoMap);
+        }
+    }
+
     /**
      * 棒二切换到其他目的地的处理逻辑
      */

+ 20 - 0
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/storageBill/vo/HeatNoCount.java

@@ -0,0 +1,20 @@
+package org.jeecg.modules.billet.storageBill.vo;
+
+import lombok.Data;
+
+@Data
+public class HeatNoCount {
+
+    /**
+     * 装运单id
+     */
+    private String storageBillId;
+    /**
+     * 炉号
+     */
+    private String heatNo;
+    /**
+     * 数量
+     */
+    private Integer count;
+}