新火炬后端单体项目初始化代码
cuilei
3 天以前 cb0cbf01863bf3d22c06410a37d280719a5c92c3
齐套性检查适配热处理产线
已修改8个文件
64 ■■■■ 文件已修改
db/双林新火炬MES数据库设计.pdma.json 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/lsw/mapper/LswMaterialInventoryMapper.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/lsw/mapper/xml/LswMaterialInventoryMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/lsw/service/ILswMaterialInventoryService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/lsw/service/impl/LswMaterialInventoryServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/mes/controller/MesProductionWorkOrderController.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/mes/service/IMesProductionWorkOrderService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/mes/service/impl/MesProductionWorkOrderServiceImpl.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
db/Ë«ÁÖлð¾æMESÊý¾Ý¿âÉè¼Æ.pdma.json
@@ -4,7 +4,7 @@
  "avatar": "",
  "version": "4.9.2",
  "createdTime": "2025-3-10 16:38:19",
  "updatedTime": "2025-9-9 17:51:22",
  "updatedTime": "2025-9-12 15:03:56",
  "dbConns": [],
  "profile": {
    "default": {
@@ -71266,7 +71266,9 @@
        "B57F92D3-3089-453E-A007-85C497CEE088",
        "EE37A932-3559-47C8-A1F3-1E788DE4A116",
        "D1A16DCC-C4AB-4717-A74C-1B52B918A87F",
        "378CF92C-B63B-4D7F-84DF-5D2F84CE4753"
        "378CF92C-B63B-4D7F-84DF-5D2F84CE4753",
        "9F7C10B2-9B87-4E80-AF35-D054CEEF11FA",
        "C4D7D8D8-A80F-4A15-B253-50CF701ADF78"
      ],
      "refViews": [],
      "refDiagrams": [],
src/main/java/org/jeecg/modules/lsw/mapper/LswMaterialInventoryMapper.java
@@ -18,7 +18,8 @@
public interface LswMaterialInventoryMapper extends BaseMapper<LswMaterialInventory> {
    List<LswMaterialInventoryVo> selectLineSideMaterialInventoryByMaterialNumber(@Param("materialNumberList") List<String> bomMaterialNumberList,
                                                                                 @Param("factoryId") String factoryId);
                                                                                 @Param("factoryId") String factoryId,
                                                                                 @Param("heatFlag") String heatFlag);
    /**
     * åº“存统计
src/main/java/org/jeecg/modules/lsw/mapper/xml/LswMaterialInventoryMapper.xml
@@ -13,7 +13,11 @@
        <foreach collection="materialNumberList" item="item" separator="," open="(" close=")">
            #{item}
        </foreach>
        <if test="heatFlag != null and heatFlag != ''">
            AND t2.heat_treatment_flag = #{heatFlag}
        </if>
        AND t2.warehouse_id = #{factoryId}
        AND t2.inventory_status = 'NORMAL'
        AND t1.del_flag = 0
        GROUP BY
            t1.material_number,
src/main/java/org/jeecg/modules/lsw/service/ILswMaterialInventoryService.java
@@ -16,7 +16,7 @@
 */
public interface ILswMaterialInventoryService extends IService<LswMaterialInventory> {
    /** é€šè¿‡ç‰©æ–™ç¼–码和线边库id查询物料库存 */
    List<LswMaterialInventoryVo> selectLineSideMaterialInventoryByMaterialNumber(List<String> bomMaterialNumberList, String factoryId);
    List<LswMaterialInventoryVo> selectLineSideMaterialInventoryByMaterialNumber(List<String> bomMaterialNumberList, String factoryId, String heatFlag);
    /**
     * åº“存统计
src/main/java/org/jeecg/modules/lsw/service/impl/LswMaterialInventoryServiceImpl.java
@@ -43,8 +43,8 @@
    private IFactoryService factoryService;
    @Override
    public List<LswMaterialInventoryVo> selectLineSideMaterialInventoryByMaterialNumber(List<String> bomMaterialNumberList, String factoryId) {
        return lswMaterialInventoryMapper.selectLineSideMaterialInventoryByMaterialNumber(bomMaterialNumberList, factoryId);
    public List<LswMaterialInventoryVo> selectLineSideMaterialInventoryByMaterialNumber(List<String> bomMaterialNumberList, String factoryId, String heatFlag) {
        return lswMaterialInventoryMapper.selectLineSideMaterialInventoryByMaterialNumber(bomMaterialNumberList, factoryId, heatFlag);
    }
    @Override
src/main/java/org/jeecg/modules/mes/controller/MesProductionWorkOrderController.java
@@ -16,6 +16,9 @@
import org.jeecg.common.exception.JeecgBootException;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.modules.base.entity.Factory;
import org.jeecg.modules.base.enums.ProductionTypeEnum;
import org.jeecg.modules.base.service.IFactoryService;
import org.jeecg.modules.eam.constant.MaintenanceCategoryEnum;
import org.jeecg.modules.eam.constant.MaintenanceStandardStatusEnum;
import org.jeecg.modules.eam.entity.EamEquipment;
@@ -65,6 +68,8 @@
    private IEamProcessCheckDetailService eamProcessCheckDetailService;
    @Autowired
    private IEamEquipmentService eamEquipmentService;
    @Autowired
    private IFactoryService factoryService;
    /**
     * åˆ†é¡µåˆ—表查询
@@ -221,6 +226,14 @@
        if (!ProductionWorkOrderStatus.PUBLISHED.name().equals(workOrder.getWorkOrderStatus())) {
            return Result.error("当前工单状态不能进行齐套性检查!");
        }
        Factory factory = factoryService.getById(workOrder.getFactoryId());
        String productionType = factory.getProductionType();
        if (ProductionTypeEnum.HEATTREATMENT.name().equals(productionType)) {
            //热处理产线
            List<MesKittingCompletenessCheck> list = mesProductionWorkOrderService.workOrderCompletenessCheckOnHeatTreatment(workOrder);
            return Result.ok(list);
        }
        //其余产线
        List<MesKittingCompletenessCheck> list = mesProductionWorkOrderService.workOrderCompletenessCheck(workOrder);
        return Result.ok(list);
    }
src/main/java/org/jeecg/modules/mes/service/IMesProductionWorkOrderService.java
@@ -23,4 +23,6 @@
    IPage<MesProductionWorkOrder> queryPageList(Page<MesProductionWorkOrder> page, Map<String, String[]> parameterMap);
    List<MesKittingCompletenessCheck> workOrderCompletenessCheck(MesProductionWorkOrder workOrder);
    List<MesKittingCompletenessCheck> workOrderCompletenessCheckOnHeatTreatment(MesProductionWorkOrder workOrder);
}
src/main/java/org/jeecg/modules/mes/service/impl/MesProductionWorkOrderServiceImpl.java
@@ -234,7 +234,7 @@
        List<String> bomMaterialNumberList = processBillMaterialsDetails.stream()
                .map(PmsProcessBillMaterialsDetail::getMaterialNumber).collect(Collectors.toList());
        Map<String, LswMaterialInventoryVo> lswMaterialInventoryMap = lswMaterialInventoryService
                .selectLineSideMaterialInventoryByMaterialNumber(bomMaterialNumberList, lineSideWarehouse.getId()).stream()
                .selectLineSideMaterialInventoryByMaterialNumber(bomMaterialNumberList, lineSideWarehouse.getId(), null).stream()
                .collect(Collectors.toMap(LswMaterialInventoryVo::getMaterialNumber, v1 -> v1, (v1, v2) -> v1));
        List<MesKittingCompletenessCheck> completenessCheckResultList = CollectionUtil.newArrayList();
        //根据订单BOM明细列出齐套检查结果
@@ -260,4 +260,32 @@
        });
        return completenessCheckResultList;
    }
    @Override
    public List<MesKittingCompletenessCheck> workOrderCompletenessCheckOnHeatTreatment(MesProductionWorkOrder workOrder) {
        //查询工单所属产线对应的线边仓
        LineSideWarehouse lineSideWarehouse = lineSideWarehouseService.list(new LambdaQueryWrapper<LineSideWarehouse>()
                        .eq(LineSideWarehouse::getFactoryId, workOrder.getFactoryId())
                        .eq(LineSideWarehouse::getDelFlag, CommonConstant.DEL_FLAG_0)
                        .eq(LineSideWarehouse::getWarehouseStatus, CommonConstant.DEFAULT_1))
                .stream().findFirst().orElse(null);
        if (lineSideWarehouse == null) {
            throw new JeecgBootException("该产线未配置线边仓!");
        }
        //查询工单热处理物料对应毛坯在线边仓的库存
        LswMaterialInventoryVo materialInventoryVo = lswMaterialInventoryService.selectLineSideMaterialInventoryByMaterialNumber(Collections
                        .singletonList(workOrder.getMaterialNumber()), lineSideWarehouse.getId(), CommonConstant.DEFAULT_0)
                .stream().findFirst().orElse(null);
        if (materialInventoryVo == null) {
            throw new JeecgBootException("线边库物料不存在!");
        }
        MesKittingCompletenessCheck completenessCheck = new MesKittingCompletenessCheck()
                .setMaterialNumber(materialInventoryVo.getMaterialNumber())
                .setMaterialName(materialInventoryVo.getMaterialName())
                .setRequiredQuantity(workOrder.getPlanQuantity())
                .setActualQuantity(materialInventoryVo.getStockQuantity())
                .setProductionUnit("PC")
                .setCheckFlag(materialInventoryVo.getStockQuantity().compareTo(workOrder.getPlanQuantity()) > 0 ? CommonConstant.DEFAULT_1 : CommonConstant.DEFAULT_0);
        return Collections.singletonList(completenessCheck);
    }
}