diff --git a/sql/mysql/mes_data2.sql b/sql/mysql/mes_data2.sql index efcae07687..ed531d41eb 100644 --- a/sql/mysql/mes_data2.sql +++ b/sql/mysql/mes_data2.sql @@ -73,14 +73,19 @@ CREATE TABLE `mes_energy_device_check_record` ROW_FORMAT = DYNAMIC COMMENT ='抄表记录'; -CREATE TABLE `mes_dv_subject` +CREATE TABLE `device_check_subject` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID', - `subject_code` varchar(64) NOT NULL COMMENT '项目编码', - `subject_name` varchar(255) NOT NULL COMMENT '项目名称', - `subject_type` varchar(64) DEFAULT '0' COMMENT '项目类型', - `subject_content` varchar(500) NOT NULL COMMENT '项目内容', - `subject_standard` varchar(255) DEFAULT NULL COMMENT '标准', + `code` varchar(64) NOT NULL COMMENT '项目编码', + `name` varchar(255) NOT NULL COMMENT '项目名称', + `type` varchar(64) DEFAULT '0' COMMENT '项目类型', + `content` varchar(500) NOT NULL COMMENT '项目内容', + `standard_value` decimal(24, 6) DEFAULT NULL COMMENT '标准值', + `max_value` decimal(24, 6) DEFAULT NULL COMMENT '最大值', + `min_value` decimal(24, 6) DEFAULT NULL COMMENT '最小值', + `enum_value` varchar(64) DEFAULT '' COMMENT '枚举值(逗号分隔)', + `address_code` varchar(64) DEFAULT '' COMMENT '采集点编码', + `is_enable` bit(1) NOT NULL DEFAULT b'1' COMMENT '是否启用', `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', @@ -95,18 +100,13 @@ CREATE TABLE `mes_dv_subject` COLLATE = utf8mb4_unicode_ci ROW_FORMAT = DYNAMIC COMMENT ='点检项目表'; -CREATE TABLE `mes_dv_check` +CREATE TABLE `device_check_solution` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID', - `plan_code` varchar(64) NOT NULL COMMENT '计划编码', - `plan_name` varchar(255) DEFAULT NULL COMMENT '计划名称', - `plan_type` varchar(64) NOT NULL COMMENT '计划类型', - `start_date` datetime DEFAULT NULL COMMENT '开始日期', - `end_date` datetime DEFAULT NULL COMMENT '结束日期', - `cycle_type` varchar(64) DEFAULT NULL COMMENT '频率', - `cycle_count` int DEFAULT NULL COMMENT '次数', - `status` varchar(64) DEFAULT NULL COMMENT '状态', - `remark` varchar(500) DEFAULT '' COMMENT '备注', + `code` varchar(64) NOT NULL COMMENT '编码', + `name` varchar(255) NOT NULL COMMENT '方案名称', + `type` varchar(64) DEFAULT '0' COMMENT '方案类型', + `content` varchar(500) NOT NULL COMMENT '方案内容', `is_enable` bit(1) NOT NULL DEFAULT b'1' COMMENT '是否启用', `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', @@ -119,71 +119,13 @@ CREATE TABLE `mes_dv_check` AUTO_INCREMENT = 91 DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci - ROW_FORMAT = DYNAMIC COMMENT ='点检计划表'; - -CREATE TABLE `mes_dv_check_subject` -( - `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID', - `plan_id` bigint NOT NULL COMMENT '计划ID', - `subject_id` bigint NOT NULL COMMENT '设备ID', - `subject_code` varchar(64) NOT NULL COMMENT '项目编码', - `subject_name` varchar(255) DEFAULT NULL COMMENT '项目名称', - `subject_type` varchar(64) DEFAULT NULL COMMENT '项目类型', - `subject_content` varchar(500) NOT NULL COMMENT '项目内容', - `subject_standard` varchar(255) DEFAULT NULL COMMENT '标准', - `remark` varchar(500) DEFAULT '' COMMENT '备注', - `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', - `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', - `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', - `tenant_id` bigint DEFAULT NULL COMMENT '租户id', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB - AUTO_INCREMENT = 91 - DEFAULT CHARSET = utf8mb4 - COLLATE = utf8mb4_unicode_ci - ROW_FORMAT = DYNAMIC COMMENT ='点检计划项目表'; + ROW_FORMAT = DYNAMIC COMMENT ='点检方案表'; - -CREATE TABLE `mes_dv_check_device` +CREATE TABLE `device_check_solution_subject` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID', - `plan_id` bigint NOT NULL COMMENT '计划ID', - `machinery_id` bigint NOT NULL COMMENT '设备ID', - `machinery_code` varchar(64) NOT NULL COMMENT '设备编码', - `machinery_name` varchar(255) NOT NULL COMMENT '设备名称', - `machinery_brand` varchar(255) DEFAULT NULL COMMENT '品牌', - `machinery_spec` varchar(255) DEFAULT NULL COMMENT '规格型号', - `remark` varchar(500) DEFAULT '' COMMENT '备注', - `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', - `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', - `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', - `tenant_id` bigint DEFAULT NULL COMMENT '租户id', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB - AUTO_INCREMENT = 91 - DEFAULT CHARSET = utf8mb4 - COLLATE = utf8mb4_unicode_ci - ROW_FORMAT = DYNAMIC COMMENT ='点检计划设备表'; - - -CREATE TABLE `mes_dv_check_record` -( - `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID', - `plan_id` bigint DEFAULT NULL COMMENT '计划ID', - `plan_code` varchar(64) DEFAULT NULL COMMENT '计划编码', - `plan_name` varchar(255) DEFAULT NULL COMMENT '计划名称', - `plan_type` varchar(64) DEFAULT NULL COMMENT '计划类型', - `machinery_id` bigint NOT NULL COMMENT '设备ID', - `machinery_code` varchar(64) NOT NULL COMMENT '设备编码', - `machinery_name` varchar(255) NOT NULL COMMENT '设备名称', - `machinery_brand` varchar(255) DEFAULT NULL COMMENT '品牌', - `machinery_spec` varchar(255) DEFAULT NULL COMMENT '规格型号', - `check_time` datetime NOT NULL COMMENT '点检时间', - `status` varchar(64) DEFAULT 'PREPARE' COMMENT '状态', + `solution_id` bigint NOT NULL COMMENT '方案Id', + `subject_id` bigint NOT NULL COMMENT '项目Id', `is_enable` bit(1) NOT NULL DEFAULT b'1' COMMENT '是否启用', `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', @@ -196,75 +138,33 @@ CREATE TABLE `mes_dv_check_record` AUTO_INCREMENT = 91 DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci - ROW_FORMAT = DYNAMIC COMMENT ='设备点检记录表'; + ROW_FORMAT = DYNAMIC COMMENT ='点检方案项目表'; -CREATE TABLE `mes_dv_check_record_line` +CREATE TABLE `device_document` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID', - `record_id` bigint NOT NULL COMMENT '计划ID', - `subject_id` bigint NOT NULL COMMENT '项目ID', - `subject_code` varchar(64) NOT NULL COMMENT '项目编码', - `subject_name` varchar(255) DEFAULT NULL COMMENT '项目名称', - `subject_type` varchar(64) DEFAULT NULL COMMENT '项目类型', - `subject_content` varchar(500) NOT NULL COMMENT '项目内容', - `subject_standard` varchar(255) DEFAULT NULL COMMENT '标准', - `check_status` varchar(64) NOT NULL COMMENT '点检结果', - `check_result` varchar(500) DEFAULT NULL COMMENT '异常描述', - `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', - `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', - `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', - `tenant_id` bigint DEFAULT NULL COMMENT '租户id', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB - AUTO_INCREMENT = 91 - DEFAULT CHARSET = utf8mb4 - COLLATE = utf8mb4_unicode_ci - ROW_FORMAT = DYNAMIC COMMENT ='设备点检记录行表'; - - - -CREATE TABLE `mes_dv_maintain_record` -( - `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID', - `plan_id` bigint DEFAULT NULL COMMENT '计划ID', - `plan_code` varchar(64) DEFAULT NULL COMMENT '计划编码', - `plan_name` varchar(255) DEFAULT NULL COMMENT '计划名称', - `plan_type` varchar(64) DEFAULT NULL COMMENT '计划类型', - `machinery_id` bigint NOT NULL COMMENT '设备ID', - `machinery_code` varchar(64) NOT NULL COMMENT '设备编码', - `machinery_name` varchar(255) NOT NULL COMMENT '设备名称', - `machinery_brand` varchar(255) DEFAULT NULL COMMENT '品牌', - `machinery_spec` varchar(255) DEFAULT NULL COMMENT '规格型号', - `mainten_time` datetime NOT NULL COMMENT '保养时间', - `status` varchar(64) DEFAULT 'PREPARE' COMMENT '状态', - `remark` varchar(500) DEFAULT '' COMMENT '备注', - `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', - `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', - `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', - `tenant_id` bigint DEFAULT NULL COMMENT '租户id', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB - AUTO_INCREMENT = 91 - DEFAULT CHARSET = utf8mb4 - COLLATE = utf8mb4_unicode_ci - ROW_FORMAT = DYNAMIC COMMENT ='设备保养记录表'; + `code` varchar(64) NOT NULL COMMENT '编码', + `name` varchar(255) NOT NULL COMMENT '名称', + `type` varchar(64) DEFAULT '0' COMMENT '分类', + `use_status` varchar(16) NOT NULL COMMENT '设备状态', + `specifications` varchar(255) NOT NULL COMMENT '规格', + `image` varchar(255) NOT NULL COMMENT '图片', + `location` varchar(255) NOT NULL COMMENT '地点', + `description` varchar(255) NOT NULL COMMENT '描述', + + `user_id` bigint NOT NULL COMMENT '负责人Id', + `supplier_id` bigint NOT NULL COMMENT '供应商id', + + `buy_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '购买时间', + `stock_in_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '入库时间', + `check_solution_id` bigint NOT NULL COMMENT '点检方案', + `last_check_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最近点检时间', + + `maintain_solution_id` bigint NOT NULL COMMENT '保养方案', + `last_maintain_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最近保养时间', + `last_repair_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最近维修时间', -CREATE TABLE `mes_dv_maintain_record_line` -( - `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID', - `record_id` bigint NOT NULL COMMENT '计划ID', - `subject_id` bigint NOT NULL COMMENT '项目ID', - `subject_code` varchar(64) NOT NULL COMMENT '项目编码', - `subject_name` varchar(255) DEFAULT NULL COMMENT '项目名称', - `subject_type` varchar(64) DEFAULT NULL COMMENT '项目类型', - `subject_content` varchar(500) NOT NULL COMMENT '项目内容', - `subject_standard` varchar(255) DEFAULT NULL COMMENT '标准', - `maintain_status` varchar(64) NOT NULL COMMENT '保养结果', - `maintain_result` varchar(500) DEFAULT NULL COMMENT '异常描述', + `is_enable` bit(1) NOT NULL DEFAULT b'1' COMMENT '是否启用', `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', @@ -276,56 +176,17 @@ CREATE TABLE `mes_dv_maintain_record_line` AUTO_INCREMENT = 91 DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci - ROW_FORMAT = DYNAMIC COMMENT ='设备保养记录行表'; - - + ROW_FORMAT = DYNAMIC COMMENT ='设备档案'; -CREATE TABLE `mes_dv_repair` +CREATE TABLE `device_check_ticket` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID', - `repair_code` varchar(64) NOT NULL COMMENT '维修单编号', - `repair_name` varchar(255) DEFAULT NULL COMMENT '维修单名称', - `machinery_id` bigint NOT NULL COMMENT '设备ID', - `machinery_code` varchar(64) NOT NULL COMMENT '设备编码', - `machinery_name` varchar(255) NOT NULL COMMENT '设备名称', - `machinery_brand` varchar(255) DEFAULT NULL COMMENT '品牌', - `machinery_spec` varchar(255) DEFAULT NULL COMMENT '规格型号', - `machinery_type_id` bigint NOT NULL COMMENT '设备类型ID', - `require_date` datetime DEFAULT NULL COMMENT '报修日期', - `finish_date` datetime DEFAULT NULL COMMENT '维修完成日期', - `confirm_date` datetime DEFAULT NULL COMMENT '验收日期', - `repair_result` varchar(64) DEFAULT NULL COMMENT '维修结果', - `accepted_by` varchar(64) DEFAULT NULL COMMENT '维修人员', - `confirm_by` varchar(64) DEFAULT NULL COMMENT '验收人员', - `status` varchar(64) DEFAULT 'PREPARE' COMMENT '单据状态', - `remark` varchar(500) DEFAULT '' COMMENT '备注', - `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', - `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', - `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', - `tenant_id` bigint DEFAULT NULL COMMENT '租户id', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB - AUTO_INCREMENT = 91 - DEFAULT CHARSET = utf8mb4 - COLLATE = utf8mb4_unicode_ci - ROW_FORMAT = DYNAMIC COMMENT ='设备点检记录表'; + `code` varchar(64) NOT NULL COMMENT '编码', + `check_user_id` bigint NOT NULL COMMENT '点检人员', + `check_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '点检时间', + `ticket_status` varchar(16) NOT NULL COMMENT '单据状态', -CREATE TABLE `mes_dv_repair_line` -( - `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID', - `repair_id` bigint NOT NULL COMMENT '维修单ID', - `subject_id` bigint NOT NULL COMMENT '项目ID', - `subject_code` varchar(64) NOT NULL COMMENT '项目编码', - `subject_name` varchar(255) DEFAULT NULL COMMENT '项目名称', - `subject_type` varchar(64) DEFAULT NULL COMMENT '项目类型', - `subject_content` varchar(500) NOT NULL COMMENT '项目内容', - `subject_standard` varchar(255) DEFAULT NULL COMMENT '标准', - `malfunction` varchar(500) DEFAULT NULL COMMENT '故障描述', - `malfunction_url` varchar(255) DEFAULT NULL COMMENT '故障描述资源', - `repair_des` varchar(500) DEFAULT NULL COMMENT '维修情况', - `remark` varchar(500) DEFAULT '' COMMENT '备注', + `is_enable` bit(1) NOT NULL DEFAULT b'1' COMMENT '是否启用', `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', @@ -337,4 +198,4 @@ CREATE TABLE `mes_dv_repair_line` AUTO_INCREMENT = 91 DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci - ROW_FORMAT = DYNAMIC COMMENT ='设备点检记录行表'; \ No newline at end of file + ROW_FORMAT = DYNAMIC COMMENT ='设备点检单'; \ No newline at end of file diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/sale/ErpSaleOutServiceImpl.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/sale/ErpSaleOutServiceImpl.java index 6a33be0f8b..e74adc4194 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/sale/ErpSaleOutServiceImpl.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/sale/ErpSaleOutServiceImpl.java @@ -169,7 +169,7 @@ public class ErpSaleOutServiceImpl implements ErpSaleOutService { saleOut.setDiscountPercent(BigDecimal.ZERO); } saleOut.setDiscountPrice(MoneyUtils.priceMultiplyPercent(saleOut.getTotalPrice(), saleOut.getDiscountPercent())); - saleOut.setTotalPrice(saleOut.getTotalPrice().subtract(saleOut.getDiscountPrice().add(saleOut.getOtherPrice()))); + saleOut.setTotalPrice(saleOut.getTotalPrice().subtract(saleOut.getDiscountPrice()).add(saleOut.getOtherPrice())); } private void updateSaleOrderOutCount(Long orderId) { diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/producereportplan/ReportPlanViewController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/producereportplan/ReportPlanViewController.java index a7dd430e79..5aaae9403f 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/producereportplan/ReportPlanViewController.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/producereportplan/ReportPlanViewController.java @@ -19,6 +19,7 @@ import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.math.BigDecimal; +import java.util.ArrayList; import java.util.Comparator; import java.util.List; import java.util.stream.Collectors; @@ -50,14 +51,14 @@ public class ReportPlanViewController { ProcessTypeEnum type = ProcessTypeEnum.fromValue(book.getOrgType()); return type.ordinal(); })); - /****加上生产入库数量 todo - */ - BigDecimal stockInNumber = stockInDetailService.selectSumBy(id); - respVO.setTotalQualityNumber(stockInNumber); - respVO.setTotalWasteNumber(BigDecimal.ZERO); - respVO.setOrgType("ruku"); - planSummaryDOS.add(respVO); - } + }else planSummaryDOS = new ArrayList<>(); + /****加上生产入库数量 todo + */ + BigDecimal stockInNumber = stockInDetailService.selectSumBy(id); + respVO.setTotalQualityNumber(stockInNumber); + respVO.setTotalWasteNumber(BigDecimal.ZERO); + respVO.setOrgType("ruku"); + planSummaryDOS.add(respVO); return success(planSummaryDOS); } @@ -78,14 +79,14 @@ public class ReportPlanViewController { ProcessTypeEnum type = ProcessTypeEnum.fromValue(book.getOrgType()); return type.ordinal(); })); - /****加上生产入库数量 todo - */ - BigDecimal stockInNumber = stockInDetailService.selectSumByTaskDetailId(id); - respVO.setTotalQualityNumber(stockInNumber); - respVO.setTotalWasteNumber(BigDecimal.ZERO); - respVO.setOrgType("ruku"); - planSummaryDOS.add(respVO); - } + }else planSummaryDOS = new ArrayList<>(); + /****加上生产入库数量 todo + */ + BigDecimal stockInNumber = stockInDetailService.selectSumByTaskDetailId(id); + respVO.setTotalQualityNumber(stockInNumber); + respVO.setTotalWasteNumber(BigDecimal.ZERO); + respVO.setOrgType("ruku"); + planSummaryDOS.add(respVO); return success(planSummaryDOS); } } \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/stockindetail/StockInDetailServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/stockindetail/StockInDetailServiceImpl.java index e94b8eecda..e6dd5fedbb 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/stockindetail/StockInDetailServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/stockindetail/StockInDetailServiceImpl.java @@ -131,8 +131,8 @@ public class StockInDetailServiceImpl implements StockInDetailService { // 3. 变更库存 List stockInItems = stockInItemMapper.selectListByInId(id); - Integer bizType = approve ? ErpStockRecordBizTypeEnum.OTHER_IN.getType() - : ErpStockRecordBizTypeEnum.OTHER_IN_CANCEL.getType(); + Integer bizType = approve ? ErpStockRecordBizTypeEnum.MES_PRODUCT_IN.getType() + : ErpStockRecordBizTypeEnum.MES_PRODUCT_IN_CANCEL.getType(); stockInItems.forEach(stockInItem -> { BigDecimal count = approve ? stockInItem.getCount() : stockInItem.getCount().negate(); ErpProductDO productDO = productService.getProduct(stockInItem.getProductId()); @@ -183,6 +183,7 @@ public class StockInDetailServiceImpl implements StockInDetailService { private List stockInToPlan(ErpStockInDO stockIn, ErpStockInItemDO inItem,List planList){ List detailDOS = new ArrayList<>(); MathContext mc = new MathContext(0, RoundingMode.HALF_UP); + MathContext mc2 = new MathContext(6, RoundingMode.HALF_UP); long totalNeed = 0; Map planNeedMap = new HashMap<>(); Map planDoMap = new HashMap<>(); @@ -194,18 +195,31 @@ public class StockInDetailServiceImpl implements StockInDetailService { planDoMap.put(plan.getId(),plan); } //根据计划各自的需求比例分配给计划 + BigDecimal unplan = new BigDecimal(inItem.getCount().toString()); for (Long planId : planNeedMap.keySet()) { Long planNeed = planNeedMap.get(planId); if(planNeed>0){ - BigDecimal planNumber = inItem.getCount().multiply(BigDecimal.valueOf(planNeed/totalNeed),mc); + BigDecimal planNumber = inItem.getCount().multiply(BigDecimal.valueOf(planNeed),mc).divide(BigDecimal.valueOf(totalNeed),mc2) + .setScale(0,RoundingMode.CEILING); StockInDetailDO detailDO = new StockInDetailDO() .setStockInId(stockIn.getId()).setStockInNo(stockIn.getNo()) .setProductId(inItem.getProductId()).setStockInItemId(inItem.getId()) - .setNumber(planNumber).setPlanId(planId) - .setTaskDetailId(planDoMap.get(planId).getTaskDetailId()); - detailDOS.add(detailDO); + .setPlanId(planId).setTaskDetailId(planDoMap.get(planId).getTaskDetailId()); + if(unplan.compareTo(planNumber)>=0){ + detailDO.setNumber(planNumber); + unplan = unplan.subtract(planNumber,mc); + } + else{ + detailDO.setNumber(unplan); + unplan = BigDecimal.ZERO; + } + if(detailDO.getNumber().compareTo(BigDecimal.ZERO)>0) + detailDOS.add(detailDO); } } + if(unplan.compareTo(BigDecimal.ZERO) > 0 && detailDOS.size()>0){ + detailDOS.get(0).setNumber(detailDOS.get(0).getNumber().add(unplan)); + } return detailDOS; } } \ No newline at end of file