zhanghl
2025-05-12 088a46dc697ef5b719f1ab62c9988f96a21e5e0c
aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateStandardRequireServiceImpl.java
@@ -166,7 +166,7 @@
        /*定义工厂为南通 */
        String plantCode="FORTUNA";
        /*定义主单类型为钣金主单*/
        String mainOrderType = "0";
        String mainOrderType = "main";
        /*生成新批次号*/
        String batchNum= requireBatchService.getNewBatchNumber();
        /*获取钣金主单信息*/
@@ -226,8 +226,6 @@
        /*计算需求数量*/
        if (level == 0) {
            require.setBomUseAmount(BigDecimal.ONE);
            require.setCompleteDate(plan.getPlanEndDay());
            require.setDemandDate(plan.getPlanEndDay());
        } else {
            require.setBomUseAmount(itemNum.multiply(plan.getProductionQuantity()));
        }
@@ -236,6 +234,8 @@
        /*默认净需求为BOM用量*/
        require.setNetRequirement(require.getBomUseAmount());
        Optional<ApsMaterialStorageManagement> itemStorage = getItemStorage(plant, itemCode);
        if (itemStorage.isPresent()) {
            ApsMaterialStorageManagement storage = itemStorage.get();
            /*剩余库存*/
@@ -264,7 +264,7 @@
        /*未匹配数量,默认为净需求*/
        require.setUnmatchedDemandAmount(require.getNetRequirement());
        /*工艺路线总需求*/
        ApsStandardProcessRouteLine routeHeader = routeLineService.getRouteLineTotalTime(require);
        ApsStandardProcessRouteLine routeHeader = routeLineService.getRouteHeaderRouteTime(require);
        String routeId = routeHeader.getRouteId();
        BigDecimal totalRouteTime = routeHeader.getRouteTime();
        long millisecond = 60 * 60 * 1000L;
@@ -317,7 +317,7 @@
        if (require.getNetRequirement().compareTo(BigDecimal.ZERO) > 0) {
            /*当前Bom节点处理完成后,处理下级BOM*/
            long nextLevel=level+1;
            List<ApsBom> bomLineList = bomLineService.selectApsBomLineList(plant, itemCode);
            List<ApsBom> bomLineList = bomLineService.selectRdsBomLineList(plant, itemCode);
            if (!bomLineList.isEmpty()) {
                bomLineList.forEach(line -> {
                    getBomRequires(plant, itemCode, line.getBomLineId(),line.getItemCode() ,line.getNum() , batchNum, require.getStartDate(), plan, allRequires, nextLevel);
@@ -355,9 +355,6 @@
    private void matchRequireAndSubPlan(ApsPlateStandardRequire require) {
        BigDecimal netRequirement = require.getNetRequirement();
        require.setMatchMode("工单匹配");
        if(require.getBomLineCode().equals("W0202-100028")){
            System.out.println("W0202-100028");
        }
        if (netRequirement.compareTo(BigDecimal.ZERO) > 0) {
            ApsPlatePlan platePlan = apsPlatePlanMapper.selectUnMatchPlateSubPlan(require.getOrgCode(),  require.getBomLineCode());
            /*子件工单的未匹配数量 作为当前的库存*/