diff --git a/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/CodeEnum.java b/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/CodeEnum.java index e9e2630..d811ca4 100644 --- a/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/CodeEnum.java +++ b/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/CodeEnum.java @@ -52,7 +52,6 @@ public enum CodeEnum { TASK_DISPATCH_ASSEMBLE("装配任务派工单", "ATD", 3, "yyyyMMdd"), TASK_DISPATCH_GCJYPG("过程检验派工单", "GCJ", 4, "yyyyMMdd"), TASK_DISPATCH_ZJJYPG("终检检验派工单", "ZJ", 4, "yyyyMMdd"), - UNQUALIFIED_NOTIFICATION("品质异常通知单", "RN", 4, "yyyyMMdd"), MATERIAL("物料", 6), ; diff --git a/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/ErrorCodeConstants.java b/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/ErrorCodeConstants.java index e9f63f1..81a5b1b 100644 --- a/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/ErrorCodeConstants.java +++ b/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/ErrorCodeConstants.java @@ -99,6 +99,8 @@ public interface ErrorCodeConstants { ErrorCode PURCHASE_ORDER_BOOM_NOT_EXISTS = new ErrorCode(1_008_006, "采购订单加工件明细不存在"); ErrorCode PURCHASE_ORDER_MAKE_NOT_EXISTS = new ErrorCode(1_008_007, "采购单主不存在"); ErrorCode PURCHASE_ORDER_MAKE_DETAIL_NOT_EXISTS = new ErrorCode(1_008_008, "采购单明细不存在"); + ErrorCode PURCHASE_ORDER_MAKE_DETAIL_IS_EXISTS = new ErrorCode(1_008_009, "存在物料清单已生成采购订单,请刷新界面!"); + ErrorCode PURCHASE_ORDER_MAKE_DETAIL_IS_STORAGE = new ErrorCode(1_008_010, "存在物料清单已转库存,请刷新界面!"); /************生产管理***********/ ErrorCode TASK_DISPATCH_NOT_EXISTS = new ErrorCode(1_009_001, "派工单不存在"); ErrorCode TASK_REPORT_NOT_EXISTS = new ErrorCode(1_009_002, "任务报工不存在"); diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplan/vo/MaterialPlanSaveReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplan/vo/MaterialPlanSaveReqVO.java index 2f86601..37702f9 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplan/vo/MaterialPlanSaveReqVO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplan/vo/MaterialPlanSaveReqVO.java @@ -1,5 +1,6 @@ package com.chanko.yunxi.mes.module.heli.controller.admin.materialplan.vo; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplanboom.MaterialPlanBoomDO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; @@ -41,4 +42,6 @@ public class MaterialPlanSaveReqVO { @Schema(description = "备注") private String description; + + private List boomDOList; } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplanboom/MaterialPlanBoomController.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplanboom/MaterialPlanBoomController.java index a8a582a..4fcd415 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplanboom/MaterialPlanBoomController.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplanboom/MaterialPlanBoomController.java @@ -1,5 +1,6 @@ package com.chanko.yunxi.mes.module.heli.controller.admin.materialplanboom; +import com.chanko.yunxi.mes.module.heli.controller.admin.processbom.vo.ProcessBomPageReqVO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDetailDO; import com.chanko.yunxi.mes.module.heli.service.processbom.ProcessBomService; import org.springframework.web.bind.annotation.*; @@ -125,4 +126,12 @@ public class MaterialPlanBoomController { return success(BeanUtils.toBean(pageResult, MaterialPlanBoomDO.class)); } + @GetMapping("/getStandardBuyPage") + @Operation(summary = "采购管理列表") + @PreAuthorize("@ss.hasPermission('heli:process-bom:query')") + public CommonResult> getStandardBuyPage(@Valid MaterialPlanBoomPageReqVO pageReqVO) { + PageResult pageResult = materialPlanBoomService.getStandardBuyPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, MaterialPlanBoomDO.class)); + } + } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplanboom/vo/MaterialPlanBoomPageReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplanboom/vo/MaterialPlanBoomPageReqVO.java index e547da5..c3fff94 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplanboom/vo/MaterialPlanBoomPageReqVO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplanboom/vo/MaterialPlanBoomPageReqVO.java @@ -60,4 +60,31 @@ public class MaterialPlanBoomPageReqVO extends PageParam { private Long matType; -} \ No newline at end of file + @Schema(description = "子项目名称", example = "张三") + private String projectSubName; + + @Schema(description = "子项目编号") + private String projectName; + + @Schema(description = "采购状态") + private Integer mplanStatus; + + + @Schema(description = "生产计划单号") + private String planCode; + + @Schema(description = "项目编号") + private String projectCode; + + @Schema(description = "客户名称") + private String customerName; + + + + @Schema(description = "责任人") + private String ownerName; + + @Schema(description = "物料需求单号") + private String projectMaterialPlanNo; + +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplanboom/vo/MaterialPlanBoomSaveReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplanboom/vo/MaterialPlanBoomSaveReqVO.java index 58777c5..d73b9e8 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplanboom/vo/MaterialPlanBoomSaveReqVO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplanboom/vo/MaterialPlanBoomSaveReqVO.java @@ -1,5 +1,6 @@ package com.chanko.yunxi.mes.module.heli.controller.admin.materialplanboom.vo; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplanboom.MaterialPlanBoomDO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; @@ -34,7 +35,18 @@ public class MaterialPlanBoomSaveReqVO { @Schema(description = "需求到货日期") private LocalDateTime boomArriveDate; + private Integer buyType; @Schema(description = "备注") private String description; + //采购数量 + private BigDecimal purchaseAmount; + //暂估价格 + private BigDecimal estimatedPrice; + //预估到时间 + private LocalDateTime arriveTime; + //供应商id + private Long supplierId; + private BigDecimal matRest; + private List materialPlanBoomDOList; } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/processbom/ProcessBomController.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/processbom/ProcessBomController.java index b15edf6..03fa146 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/processbom/ProcessBomController.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/processbom/ProcessBomController.java @@ -150,6 +150,13 @@ public class ProcessBomController { PageResult pageResult = processBomService.getProcessBomPages(pageReqVO); return success(BeanUtils.toBean(pageResult, ProcessBomRespVO.class)); } + @GetMapping("/detailpages") + @Operation(summary = "获得工艺bom审核分页") + @PreAuthorize("@ss.hasPermission('heli:process-bom:query')") + public CommonResult> getProcessBomDetailPages(@Valid ProcessBomPageReqVO pageReqVO) { + PageResult pageResult = processBomService.getProcessBomPageNew(pageReqVO); + return success(pageResult); + } @GetMapping("/export-excel") @Operation(summary = "导出工艺bom Excel") @@ -240,6 +247,8 @@ public class ProcessBomController { PageResult pageResult = processBomService.getStandardPage(pageReqVO); return success(pageResult); } + + @PostMapping("/submit") @Operation(summary = "提交") @PreAuthorize("@ss.hasPermission('heli:process-bom:create')") diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/processbom/vo/ProcessBomPageReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/processbom/vo/ProcessBomPageReqVO.java index cb1faca..12014c4 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/processbom/vo/ProcessBomPageReqVO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/processbom/vo/ProcessBomPageReqVO.java @@ -23,7 +23,8 @@ public class ProcessBomPageReqVO extends PageParam { @Schema(description = "项目id", example = "32751") private Long projectId; - + private String inventoryCodes; + private String inventoryName; @Schema(description = "子项目id", example = "12526") private Long projectSubId; diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/purchaseordermakedetail/vo/PurchaseOrderMakeDetailPageReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/purchaseordermakedetail/vo/PurchaseOrderMakeDetailPageReqVO.java index 4f080e1..b9363fa 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/purchaseordermakedetail/vo/PurchaseOrderMakeDetailPageReqVO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/purchaseordermakedetail/vo/PurchaseOrderMakeDetailPageReqVO.java @@ -18,7 +18,7 @@ public class PurchaseOrderMakeDetailPageReqVO extends PageParam { @Schema(description = "采购单id", example = "13340") private Long purchaseOrderId; - + private String projectSubName; @Schema(description = "加工件boom detail id", example = "31132") private Long boomDetailId; @@ -75,7 +75,10 @@ public class PurchaseOrderMakeDetailPageReqVO extends PageParam { @Schema(description = "子项目名称,唯一", example = "张三") private String name; - + @Schema(description = "项目名称,唯一", example = "张三") + private String projectName; + @Schema(description = "项目编码,唯一", example = "张三") + private String projectCode; @Schema(description = "子项目简码") private String nameSim; @@ -86,7 +89,7 @@ public class PurchaseOrderMakeDetailPageReqVO extends PageParam { private Long purchaseOrderNoDetailId; @Schema(description = "订单状态 未生成/已生成 1/2", example = "1") - private Boolean orderStatus; + private Integer orderStatus; @Schema(description = "子项目编码") private String projectSubCode; @@ -106,4 +109,4 @@ public class PurchaseOrderMakeDetailPageReqVO extends PageParam { @Schema(description = "责任人id", example = "25680") private Long duEmpId; -} \ No newline at end of file +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/purchaseordermakedetail/vo/PurchaseOrderMakeDetailRespVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/purchaseordermakedetail/vo/PurchaseOrderMakeDetailRespVO.java index 99f3905..2e1a563 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/purchaseordermakedetail/vo/PurchaseOrderMakeDetailRespVO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/purchaseordermakedetail/vo/PurchaseOrderMakeDetailRespVO.java @@ -26,6 +26,7 @@ public class PurchaseOrderMakeDetailRespVO { @ExcelProperty("加工件boom detail id") private Long boomDetailId; + private String boomCode; @Schema(description = "零件名称", example = "芋艿") @ExcelProperty("零件名称") private String boomName; @@ -108,7 +109,7 @@ public class PurchaseOrderMakeDetailRespVO { @Schema(description = "订单状态 未生成/已生成 1/2", example = "1") @ExcelProperty("订单状态 未生成/已生成 1/2") - private Boolean orderStatus; + private Integer orderStatus; @Schema(description = "子项目编码") @ExcelProperty("子项目编码") @@ -134,4 +135,4 @@ public class PurchaseOrderMakeDetailRespVO { @ExcelProperty("责任人id") private Long duEmpId; -} \ No newline at end of file +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/purchaseordermakedetail/vo/PurchaseOrderMakeDetailSaveReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/purchaseordermakedetail/vo/PurchaseOrderMakeDetailSaveReqVO.java index a856c55..e8886c5 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/purchaseordermakedetail/vo/PurchaseOrderMakeDetailSaveReqVO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/purchaseordermakedetail/vo/PurchaseOrderMakeDetailSaveReqVO.java @@ -1,104 +1,105 @@ -package com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordermakedetail.vo; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import java.util.*; -import javax.validation.constraints.*; -import java.util.*; -import java.math.BigDecimal; -import org.springframework.format.annotation.DateTimeFormat; -import java.time.LocalDateTime; - -@Schema(description = "管理后台 - 采购单明细新增/修改 Request VO") -@Data -public class PurchaseOrderMakeDetailSaveReqVO { - - @Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED, example = "22882") - private Long id; - - @Schema(description = "采购单id", requiredMode = Schema.RequiredMode.REQUIRED, example = "13340") - @NotNull(message = "采购单id不能为空") - private Long purchaseOrderId; - - @Schema(description = "加工件boom detail id", example = "31132") - private Long boomDetailId; - - @Schema(description = "零件名称", example = "芋艿") - private String boomName; - - @Schema(description = "规格型号") - private String boomSpec; - - @Schema(description = "系统单位") - private String boomUnit; - - @Schema(description = "材质") - private String composition; - - @Schema(description = "采购数量") - private BigDecimal purchaseAmount; - - @Schema(description = "暂估价金额", example = "20986") - private BigDecimal estimatedPrice; - - @Schema(description = "实际价金额", example = "683") - private BigDecimal actualPrice; - - @Schema(description = "预计到货日期") - private LocalDateTime arriveTime; - - @Schema(description = "备注", example = "你说的对") - private String description; - - @Schema(description = "需求数量") - private BigDecimal boomAmount; - - @Schema(description = "需求到货日期") - private LocalDateTime requireTime; - - @Schema(description = "供应商id", example = "30352") - private Long supplierId; - - @Schema(description = "物料需求计划id", example = "16465") - private Long projectMaterialPlanId; - - @Schema(description = "物料需求计划子项目id", example = "11304") - private Long projectMaterialPlanBoomId; - - @Schema(description = "订单子项目id", example = "28999") - private Long projectPlanSubId; - - @Schema(description = "子项目名称,唯一", example = "张三") - private String name; - - @Schema(description = "子项目简码") - private String nameSim; - - @Schema(description = "采购订单主表id", example = "18351") - private Long purchaseOrderNoId; - - @Schema(description = "采购订单明细表id", example = "18566") - private Long purchaseOrderNoDetailId; - - @Schema(description = "订单状态 未生成/已生成 1/2", example = "1") - private Boolean orderStatus; - - @Schema(description = "子项目编码") - private String projectSubCode; - - @Schema(description = "收货状态 未收货/收货中/收货完成 1/2/3", example = "2") - private Boolean receivingStatus; - - @Schema(description = "采购单号") - private String purchaseNo; - - @Schema(description = "工序id", example = "21391") - private Long procedureId; - - @Schema(description = "零件理论重量") - private BigDecimal theWeight; - - @Schema(description = "责任人id", example = "25680") - private Long duEmpId; - -} \ No newline at end of file +package com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordermakedetail.vo; + +import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordermakedetail.PurchaseOrderMakeDetailDO; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; +import java.util.*; +import java.math.BigDecimal; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 采购单明细新增/修改 Request VO") +@Data +public class PurchaseOrderMakeDetailSaveReqVO { + + @Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED, example = "22882") + private Long id; + + @Schema(description = "采购单id", requiredMode = Schema.RequiredMode.REQUIRED, example = "13340") + @NotNull(message = "采购单id不能为空") + private Long purchaseOrderId; + + @Schema(description = "加工件boom detail id", example = "31132") + private Long boomDetailId; + + @Schema(description = "零件名称", example = "芋艿") + private String boomName; + + @Schema(description = "规格型号") + private String boomSpec; + + @Schema(description = "系统单位") + private String boomUnit; + + @Schema(description = "材质") + private String composition; + + @Schema(description = "采购数量") + private BigDecimal purchaseAmount; + + @Schema(description = "暂估价金额", example = "20986") + private BigDecimal estimatedPrice; + + @Schema(description = "实际价金额", example = "683") + private BigDecimal actualPrice; + + @Schema(description = "预计到货日期") + private LocalDateTime arriveTime; + + @Schema(description = "备注", example = "你说的对") + private String description; + + @Schema(description = "需求数量") + private BigDecimal boomAmount; + + @Schema(description = "需求到货日期") + private LocalDateTime requireTime; + + @Schema(description = "供应商id", example = "30352") + private Long supplierId; + + @Schema(description = "物料需求计划id", example = "16465") + private Long projectMaterialPlanId; + + @Schema(description = "物料需求计划子项目id", example = "11304") + private Long projectMaterialPlanBoomId; + + @Schema(description = "订单子项目id", example = "28999") + private Long projectPlanSubId; + + @Schema(description = "子项目名称,唯一", example = "张三") + private String name; + + @Schema(description = "子项目简码") + private String nameSim; + + @Schema(description = "采购订单主表id", example = "18351") + private Long purchaseOrderNoId; + + @Schema(description = "采购订单明细表id", example = "18566") + private Long purchaseOrderNoDetailId; + + @Schema(description = "订单状态 未生成/已生成 1/2", example = "1") + private Boolean orderStatus; + + @Schema(description = "子项目编码") + private String projectSubCode; + + @Schema(description = "收货状态 未收货/收货中/收货完成 1/2/3", example = "2") + private Boolean receivingStatus; + + @Schema(description = "采购单号") + private String purchaseNo; + + @Schema(description = "工序id", example = "21391") + private Long procedureId; + + @Schema(description = "零件理论重量") + private BigDecimal theWeight; + + @Schema(description = "责任人id", example = "25680") + private Long duEmpId; + private List updateList; +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/materialplanboom/MaterialPlanBoomDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/materialplanboom/MaterialPlanBoomDO.java index 96de91a..81695ad 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/materialplanboom/MaterialPlanBoomDO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/materialplanboom/MaterialPlanBoomDO.java @@ -33,6 +33,8 @@ public class MaterialPlanBoomDO extends BaseDO { * 物料需求计划id */ private Long projectMaterialPlanId; + @TableField(exist = false) + private Long projectId; /** * 工艺boom明细id,零件类型:加工件 */ @@ -130,8 +132,6 @@ public class MaterialPlanBoomDO extends BaseDO { @TableField(exist = false) private Long matId; @TableField(exist = false) - private Long projectId; - @TableField(exist = false) private String matCode; @TableField(exist = false) private String matSpec; @@ -139,8 +139,24 @@ public class MaterialPlanBoomDO extends BaseDO { private String matUnit; @TableField(exist = false) private String matType; + @TableField(exist = false) + private String mplanStatusName; + private BigDecimal matRest; + //采购数量 + private BigDecimal purchaseAmount; + //暂估价格 + private BigDecimal estimatedPrice; + //预估到时间 + private LocalDateTime arriveTime; + //供应商id + private Long supplierId; + + @TableField(exist = false) + //客户简称 + private String customerBriefName; -} \ No newline at end of file + +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/materialplandetail/MaterialPlanDetailDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/materialplandetail/MaterialPlanDetailDO.java index 9c1988c..6524a90 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/materialplandetail/MaterialPlanDetailDO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/materialplandetail/MaterialPlanDetailDO.java @@ -78,4 +78,4 @@ public class MaterialPlanDetailDO extends BaseDO { private String name; private String creator; -} \ No newline at end of file +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/processbom/ProcessBomDetailDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/processbom/ProcessBomDetailDO.java index 144c607..d4e987d 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/processbom/ProcessBomDetailDO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/processbom/ProcessBomDetailDO.java @@ -58,6 +58,8 @@ public class ProcessBomDetailDO extends BaseDO { * 材质id */ private Long compositionId; + @TableField(exist = false) + private String inventCode; /** * 规格 */ @@ -82,6 +84,7 @@ public class ProcessBomDetailDO extends BaseDO { /** * 其他件物料编码 */ + @TableField(exist = false) private String otherMaterialCode; /** * 状态,1表示正常,2表示禁用 @@ -186,4 +189,6 @@ public class ProcessBomDetailDO extends BaseDO { private String projectNameSim; @TableField(exist = false) private String nickname; + + } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/purchaseordermake/PurchaseOrderMakeDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/purchaseordermake/PurchaseOrderMakeDO.java index 4a68744..231311e 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/purchaseordermake/PurchaseOrderMakeDO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/purchaseordermake/PurchaseOrderMakeDO.java @@ -42,11 +42,11 @@ public class PurchaseOrderMakeDO extends BaseDO { /** * 采购单类型,1按物料需求计划采购,2备库采购 */ - private Boolean purchaseType; + private Integer purchaseType; /** * 采购物类型,1物料,2加工件 */ - private Boolean goodsType; + private Integer goodsType; /** * 结算币种 */ @@ -66,7 +66,7 @@ public class PurchaseOrderMakeDO extends BaseDO { /** * 单据状态,0 待送审,1已送审,2已审核,3已打回 ,默认是1 */ - private Boolean status; + private Integer status; /** * 送审人 */ @@ -112,4 +112,4 @@ public class PurchaseOrderMakeDO extends BaseDO { */ private String projectNameSim; -} \ No newline at end of file +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/purchaseordermakedetail/PurchaseOrderMakeDetailDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/purchaseordermakedetail/PurchaseOrderMakeDetailDO.java index 3d1f961..885e6f3 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/purchaseordermakedetail/PurchaseOrderMakeDetailDO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/purchaseordermakedetail/PurchaseOrderMakeDetailDO.java @@ -34,6 +34,7 @@ public class PurchaseOrderMakeDetailDO extends BaseDO { */ @TableId private Long id; + /** * 采购单id */ @@ -46,6 +47,9 @@ public class PurchaseOrderMakeDetailDO extends BaseDO { * 零件名称 */ private String boomName; + + @TableField(exist = false) + private String boomCode; /** * 规格型号 */ @@ -90,6 +94,8 @@ public class PurchaseOrderMakeDetailDO extends BaseDO { * 供应商id */ private Long supplierId; + @TableField(exist = false) + private String supplierName; /** * 物料需求计划id */ @@ -121,7 +127,8 @@ public class PurchaseOrderMakeDetailDO extends BaseDO { /** * 订单状态 未生成/已生成 1/2 */ - private Boolean orderStatus; + @TableField( "order_status") + private Integer orderStatus; /** * 子项目编码 */ @@ -147,4 +154,4 @@ public class PurchaseOrderMakeDetailDO extends BaseDO { */ private Long duEmpId; -} \ No newline at end of file +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/purchaseordernodetail/PurchaseOrderNoDetailDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/purchaseordernodetail/PurchaseOrderNoDetailDO.java index b9927aa..8a850a8 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/purchaseordernodetail/PurchaseOrderNoDetailDO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/purchaseordernodetail/PurchaseOrderNoDetailDO.java @@ -35,6 +35,8 @@ public class PurchaseOrderNoDetailDO extends BaseDO { */ @TableId private Long id; + @TableField(exist = false) + private Long makeDetailId; /** * 采购单id */ @@ -190,4 +192,4 @@ public class PurchaseOrderNoDetailDO extends BaseDO { private String compositionName; @TableField(exist = false) private String procedureName; -} \ No newline at end of file +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/materialplanboom/MaterialPlanBoomMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/materialplanboom/MaterialPlanBoomMapper.java index 5712acd..dad2fd0 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/materialplanboom/MaterialPlanBoomMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/materialplanboom/MaterialPlanBoomMapper.java @@ -3,11 +3,13 @@ package com.chanko.yunxi.mes.module.heli.dal.mysql.materialplanboom; import java.util.*; import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.chanko.yunxi.mes.framework.common.pojo.PageResult; import com.chanko.yunxi.mes.framework.mybatis.core.query.LambdaQueryWrapperX; import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX; import com.chanko.yunxi.mes.module.heli.controller.admin.materialplan.vo.MaterialPlanPageReqVO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.composition.CompositionDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.customer.CustomerDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.material.MaterialDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplan.MaterialPlanDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplanboom.MaterialPlanBoomDO; @@ -37,6 +39,9 @@ import org.springframework.util.StringUtils; @Mapper public interface MaterialPlanBoomMapper extends BaseMapperX { + Long hasPurchase(Map map); + Long hasPurYard(Map map); + default PageResult selectPage(MaterialPlanBoomPageReqVO reqVO) { MPJLambdaWrapper query = new MPJLambdaWrapper<>(); query.selectAll(MaterialPlanBoomDO.class) @@ -54,7 +59,51 @@ public interface MaterialPlanBoomMapper extends BaseMapperX return selectPage(reqVO,query); } + default PageResult getStandardBuyPage(MaterialPlanBoomPageReqVO pageReqVO){ + MPJLambdaWrapper query = new MPJLambdaWrapper<>(); + query.selectAll(MaterialPlanBoomDO.class) + // .select("mat.id as matId","mat.name as matName","mat.code as matCode","mat.spec as matSpec","mat.unit as matUnit","mat.material_type as matType") + .select("b.material_name as matName","b.material_code as matCode","b.spec as matSpec","b.unit as matUnit","b.blueprint_no as blueprintNo") + .select("bc.`name` as compositionName","b.`composition_id` as compositionId") + .select("ma.brief as customerBriefName,ma.project_name as projectName,ma.name as projectSubName,ma.project_id as projectId") + .leftJoin(MaterialPlanDO.class,"ma",MaterialPlanDO::getId, MaterialPlanBoomDO::getProjectMaterialPlanId) + // .leftJoin(StorageMaterialDO.class,"sm",StorageMaterialDO::getId, MaterialPlanDetailDO::getMaterialId) + .leftJoin(ProcessBomDetailDO.class, "b", ProcessBomDetailDO::getId, MaterialPlanBoomDO::getBoomDetailId) + .leftJoin(CompositionDO.class, "bc", CompositionDO::getId, ProcessBomDetailDO::getCompositionId) + .leftJoin(ProjectOrderDO.class,"po",ProjectOrderDO::getId,MaterialPlanDO::getProjectId) + .leftJoin(AdminUserDO.class,"u",AdminUserDO::getId, MaterialPlanBoomDO::getDuEmpId) + // .eq(MaterialPlanDO::getMatType,0) + .disableSubLogicDel() + .groupBy(MaterialPlanBoomDO::getId) + .orderByDesc(MaterialPlanBoomDO::getCreateTime); + query.like(ObjectUtil.isNotEmpty(pageReqVO.getProjectName()),MaterialPlanDO::getProjectName, pageReqVO.getProjectName()); + query.like(ObjectUtil.isNotEmpty(pageReqVO.getProjectSubName()),MaterialPlanDO::getName, pageReqVO.getProjectSubName()); + query.like(ObjectUtil.isNotEmpty(pageReqVO.getMaterialName()),MaterialPlanBoomDO::getMatName, pageReqVO.getMaterialName()); + query.like(ObjectUtil.isNotEmpty(pageReqVO.getProjectCode()),ProjectOrderDO::getCode, pageReqVO.getProjectCode()); + query.like(ObjectUtil.isNotEmpty(pageReqVO.getOwnerName()),AdminUserDO::getNickname, pageReqVO.getOwnerName()); + query.like(ObjectUtil.isNotEmpty(pageReqVO.getProjectMaterialPlanNo()),MaterialPlanDO::getProjectMaterialPlanNo, pageReqVO.getProjectMaterialPlanNo()); + if (pageReqVO.getMplanStatus() == 0){ + query.in(MaterialPlanBoomDO::getMplanStatus,Arrays + .asList(0,3,5)); + }else{ + query.eq(MaterialPlanBoomDO::getMplanStatus,1); + } + // query.like(ObjectUtil.isNotEmpty(pageReqVO.getMplanStatus()),ProjectOrderDO::getCode, pageReqVO.getProjectCode()); + + return selectPage(pageReqVO, query); + } + default int clearSuplier(MaterialPlanBoomDO updateObj){ + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + if (updateObj.getSupplierId() == null){ + updateWrapper.set("supplier_id",null); } + if (updateObj.getArriveTime() == null){ + updateWrapper.set("arrive_time",null); + } + updateWrapper.eq("id",updateObj.getId()); + + return update(updateWrapper); + } default PageResult selectSumPage(MaterialPlanBoomPageReqVO reqVO) { MPJLambdaWrapper query = new MPJLambdaWrapper<>(); query.selectAll(MaterialPlanBoomDO.class) @@ -150,4 +199,5 @@ public interface MaterialPlanBoomMapper extends BaseMapperX // } -} \ No newline at end of file +} + diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/materialplandetail/MaterialPlanDetailMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/materialplandetail/MaterialPlanDetailMapper.java index 213d530..f4808df 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/materialplandetail/MaterialPlanDetailMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/materialplandetail/MaterialPlanDetailMapper.java @@ -65,6 +65,22 @@ public interface MaterialPlanDetailMapper extends BaseMapperX getStandardBuyPage(MaterialPlanDetailPageReqVO reqVO) { + MPJLambdaWrapper query = new MPJLambdaWrapper<>(); + query.selectAll(MaterialPlanDetailDO.class) + + .leftJoin(MaterialDO.class, "mat", MaterialDO::getId, MaterialPlanDetailDO::getMaterialId) + .disableSubLogicDel() + .groupBy(MaterialPlanDetailDO::getMaterialId) + .orderByDesc(MaterialPlanDetailDO::getCreateTime); + query.eq(reqVO.getProjectMaterialPlanId()!=null,MaterialPlanDetailDO::getProjectMaterialPlanId, reqVO.getProjectMaterialPlanId()) + .like(!StringUtils.isEmpty(reqVO.getMatName()), "mat.name", reqVO.getMatName()) + .like(!StringUtils.isEmpty(reqVO.getMatCode()), "mat.code", reqVO.getMatCode()) + .eq(!StringUtils.isEmpty(reqVO.getMatType()), "mat.material_type", reqVO.getMatType()) + .orderByAsc(MaterialPlanDetailDO::getCreateTime); + + return selectPage(reqVO, query); + } // default PageResult selectPage(MaterialPlanDetailPageReqVO reqVO) { // return selectPage(reqVO, new LambdaQueryWrapperX() // .eqIfPresent(MaterialPlanDetailDO::getId, reqVO.getId()) @@ -81,4 +97,4 @@ public interface MaterialPlanDetailMapper extends BaseMapperX selectafterten(@Param("id") Long id, @Param("evday") String evday); List selectafterten1(); -} \ No newline at end of file +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/plansub/PlanSubMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/plansub/PlanSubMapper.java index a82bdb0..4ad76e4 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/plansub/PlanSubMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/plansub/PlanSubMapper.java @@ -48,12 +48,17 @@ public interface PlanSubMapper extends BaseMapperX { query.selectAll(PlanSubDO.class) .select("b.project_name_sim as projectNameSim") .select("a.brief as customerName") + .select("s.name as projectSubName") .leftJoin(ProjectOrderDO.class, "b", ProjectOrderDO::getId, PlanSubDO::getProjectId) + .leftJoin(ProjectOrderSubDO.class,"s",ProjectOrderSubDO::getId,PlanSubDO::getProjectSubId) .leftJoin(CustomerDO.class,"a",CustomerDO::getId,ProjectOrderDO::getCustomerId) .eq(PlanSubDO::getId, id); return selectOne(query); } + + + default List searchOwnerThrees(Long planId,String name,String dateOne,String dateTwo,String id,long projectPlanid) { MPJLambdaWrapper query = new MPJLambdaWrapper<>(); query.selectAll(PlanSubDO.class) diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/processbom/ProcessBomDetailMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/processbom/ProcessBomDetailMapper.java index 4b6f610..08e2f16 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/processbom/ProcessBomDetailMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/processbom/ProcessBomDetailMapper.java @@ -100,6 +100,7 @@ public interface ProcessBomDetailMapper extends BaseMapperX .select("concat('BOM-', e.project_sub_code) as bomCode", "e.project_sub_code as projectSubCode") .select("a.plan_no as planCode", "b.code as projectCode", "c.name as customerName", "b.project_name as projectName") .select("d.name as projectSubName,f.name as compositionName") + .leftJoin(ProcessBomDO.class,"g",ProcessBomDO::getId,ProcessBomDetailDO::getBomId) .leftJoin(PlanDO.class, "a", PlanDO::getId, ProcessBomDO::getPlanId) .leftJoin(PlanSubDO.class, "e", PlanSubDO::getProjectSubId, ProcessBomDO::getProjectSubId) @@ -117,9 +118,16 @@ public interface ProcessBomDetailMapper extends BaseMapperX .like(!StringUtils.isEmpty(reqVO.getCustomerName()), CustomerDO::getName, reqVO.getCustomerName()) .like(!StringUtils.isEmpty(reqVO.getProjectName()), ProjectOrderDO::getProjectName, reqVO.getProjectName()) .like(!StringUtils.isEmpty(reqVO.getProjectSubName()), ProjectOrderSubDO::getName, reqVO.getProjectSubName()) + .eq(reqVO.getBomStatus() != null, ProcessBomDO::getBomStatus, reqVO.getBomStatus()) ; - + if (!StringUtils.isEmpty(reqVO.getInventoryName())) { + query.and(qw -> + qw.like("t.material_name", reqVO.getInventoryName()) + .or() + .like("t.material_code", reqVO.getInventoryName()) + ); + } return selectPage(reqVO, query); } // default List selectListByBomIdbyid(Long bomId,Long bomId) { diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/projectorder/ProjectOrderSubMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/projectorder/ProjectOrderSubMapper.java index 151f613..be2dcaa 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/projectorder/ProjectOrderSubMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/projectorder/ProjectOrderSubMapper.java @@ -38,7 +38,14 @@ public interface ProjectOrderSubMapper extends BaseMapperX { return selectOne(query); } - + default ProjectOrderSubDO selectById(Long id) { + MPJLambdaWrapper query = new MPJLambdaWrapper<>(); + query.selectAll(ProjectOrderSubDO.class) + .select("pb.project_sub_code as projectSubCode") + .leftJoin(PlanSubDO.class,"pb",PlanSubDO::getProjectSubId,ProjectOrderSubDO::getId) + .eq(ProjectOrderSubDO::getId, id); + return selectOne(query); + } default List selectListByProjectOrderId(Long projectOrderId) { MPJLambdaWrapper query = new MPJLambdaWrapper<>(); query.selectAll(ProjectOrderSubDO.class) diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/purchaseordermakedetail/PurchaseOrderMakeDetailMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/purchaseordermakedetail/PurchaseOrderMakeDetailMapper.java index 8a570b9..db370e8 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/purchaseordermakedetail/PurchaseOrderMakeDetailMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/purchaseordermakedetail/PurchaseOrderMakeDetailMapper.java @@ -2,14 +2,20 @@ package com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseordermakedetail; import java.util.*; +import cn.hutool.core.util.ObjectUtil; import com.alibaba.excel.util.StringUtils; import com.chanko.yunxi.mes.framework.common.pojo.PageResult; import com.chanko.yunxi.mes.framework.mybatis.core.query.LambdaQueryWrapperX; import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX; +import com.chanko.yunxi.mes.module.heli.controller.admin.materialplanboom.vo.MaterialPlanBoomPageReqVO; import com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordermake.vo.PartPurchaseOrderPageReqVO; import com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordermake.vo.PartPurchaseOrderPageRespVO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplan.MaterialPlanDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplanboom.MaterialPlanBoomDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.procedure.ProcedureDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDetailDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderSubDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordermake.PurchaseOrderMakeDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordermakedetail.PurchaseOrderMakeDetailDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.supplier.SupplierDO; @@ -28,37 +34,35 @@ import com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordermakedetail public interface PurchaseOrderMakeDetailMapper extends BaseMapperX { default PageResult selectPage(PurchaseOrderMakeDetailPageReqVO reqVO) { - return selectPage(reqVO, new LambdaQueryWrapperX() - .eqIfPresent(PurchaseOrderMakeDetailDO::getPurchaseOrderId, reqVO.getPurchaseOrderId()) - .eqIfPresent(PurchaseOrderMakeDetailDO::getBoomDetailId, reqVO.getBoomDetailId()) - .likeIfPresent(PurchaseOrderMakeDetailDO::getBoomName, reqVO.getBoomName()) - .eqIfPresent(PurchaseOrderMakeDetailDO::getBoomSpec, reqVO.getBoomSpec()) - .eqIfPresent(PurchaseOrderMakeDetailDO::getBoomUnit, reqVO.getBoomUnit()) - .eqIfPresent(PurchaseOrderMakeDetailDO::getComposition, reqVO.getComposition()) - .eqIfPresent(PurchaseOrderMakeDetailDO::getPurchaseAmount, reqVO.getPurchaseAmount()) - .eqIfPresent(PurchaseOrderMakeDetailDO::getEstimatedPrice, reqVO.getEstimatedPrice()) - .eqIfPresent(PurchaseOrderMakeDetailDO::getActualPrice, reqVO.getActualPrice()) - .betweenIfPresent(PurchaseOrderMakeDetailDO::getArriveTime, reqVO.getArriveTime()) - .eqIfPresent(PurchaseOrderMakeDetailDO::getDescription, reqVO.getDescription()) - .betweenIfPresent(PurchaseOrderMakeDetailDO::getCreateTime, reqVO.getCreateTime()) - .eqIfPresent(PurchaseOrderMakeDetailDO::getBoomAmount, reqVO.getBoomAmount()) - .betweenIfPresent(PurchaseOrderMakeDetailDO::getRequireTime, reqVO.getRequireTime()) - .eqIfPresent(PurchaseOrderMakeDetailDO::getSupplierId, reqVO.getSupplierId()) - .eqIfPresent(PurchaseOrderMakeDetailDO::getProjectMaterialPlanId, reqVO.getProjectMaterialPlanId()) - .eqIfPresent(PurchaseOrderMakeDetailDO::getProjectMaterialPlanBoomId, reqVO.getProjectMaterialPlanBoomId()) - .eqIfPresent(PurchaseOrderMakeDetailDO::getProjectPlanSubId, reqVO.getProjectPlanSubId()) - .likeIfPresent(PurchaseOrderMakeDetailDO::getName, reqVO.getName()) - .eqIfPresent(PurchaseOrderMakeDetailDO::getNameSim, reqVO.getNameSim()) - .eqIfPresent(PurchaseOrderMakeDetailDO::getPurchaseOrderNoId, reqVO.getPurchaseOrderNoId()) - .eqIfPresent(PurchaseOrderMakeDetailDO::getPurchaseOrderNoDetailId, reqVO.getPurchaseOrderNoDetailId()) - .eqIfPresent(PurchaseOrderMakeDetailDO::getOrderStatus, reqVO.getOrderStatus()) - .eqIfPresent(PurchaseOrderMakeDetailDO::getProjectSubCode, reqVO.getProjectSubCode()) - .eqIfPresent(PurchaseOrderMakeDetailDO::getReceivingStatus, reqVO.getReceivingStatus()) - .eqIfPresent(PurchaseOrderMakeDetailDO::getPurchaseNo, reqVO.getPurchaseNo()) - .eqIfPresent(PurchaseOrderMakeDetailDO::getProcedureId, reqVO.getProcedureId()) - .eqIfPresent(PurchaseOrderMakeDetailDO::getTheWeight, reqVO.getTheWeight()) - .eqIfPresent(PurchaseOrderMakeDetailDO::getDuEmpId, reqVO.getDuEmpId()) - .orderByDesc(PurchaseOrderMakeDetailDO::getId)); + MPJLambdaWrapper query = new MPJLambdaWrapper<>(); + query.selectAll(PurchaseOrderMakeDetailDO.class) + .select("b.material_name as boomName","b.material_code as boomCode","b.spec as boomSpec","b.unit as boomUnit") + .select("pom.purchase_no as purchaseNo") + .leftJoin(ProcessBomDetailDO.class,"b",ProcessBomDetailDO::getId,PurchaseOrderMakeDetailDO::getBoomDetailId) + .leftJoin(ProjectOrderSubDO.class,"pos",ProjectOrderSubDO::getId,PurchaseOrderMakeDetailDO::getProjectPlanSubId) + .leftJoin(ProjectOrderDO.class,"po",ProjectOrderDO::getId, ProjectOrderSubDO::getProjectOrderId) + .leftJoin(PurchaseOrderMakeDO.class,"pom",PurchaseOrderMakeDO::getId,PurchaseOrderMakeDetailDO::getPurchaseOrderId) + .eq(PurchaseOrderMakeDO::getGoodsType,1) + .disableSubLogicDel(); + if (!StringUtils.isEmpty(reqVO.getProjectName())){ + query.like(ProjectOrderDO::getProjectName, reqVO.getProjectName()); + } + if (!StringUtils.isEmpty(reqVO.getProjectCode())){ + query.like(ProjectOrderDO::getCode, reqVO.getProjectCode()); + } + if (!StringUtils.isEmpty(reqVO.getBoomName())){ + query.like(ProcessBomDetailDO::getMaterialName, reqVO.getBoomName()); + } + if (!StringUtils.isEmpty(reqVO.getProjectSubName())){ + query.like(ProjectOrderSubDO::getName, reqVO.getProjectSubName()); + } + if (reqVO.getOrderStatus() != null){ + query.eq(PurchaseOrderMakeDetailDO::getOrderStatus, reqVO.getOrderStatus()); + } + + + + return selectPage(reqVO, query); } default PageResult selectPartPurchaseOrderPage(PartPurchaseOrderPageReqVO pageReqVO) { @@ -89,4 +93,4 @@ public interface PurchaseOrderMakeDetailMapper extends BaseMapperX getMaterialPlanBoomPages(ProcessBoomPageReqVO pageReqVO); PageResult getProjectMaterialPlanId(MaterialPlanBoomPageReqVO pageReqVO); + + PageResult getStandardBuyPage(MaterialPlanBoomPageReqVO pageReqVO); } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplanboom/MaterialPlanBoomServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplanboom/MaterialPlanBoomServiceImpl.java index 0105105..7242542 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplanboom/MaterialPlanBoomServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplanboom/MaterialPlanBoomServiceImpl.java @@ -1,7 +1,19 @@ package com.chanko.yunxi.mes.module.heli.service.materialplanboom; import cn.binarywang.wx.miniapp.bean.cloud.WxCloudDatabaseQueryResult; +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; +import com.chanko.yunxi.mes.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.chanko.yunxi.mes.framework.security.core.util.SecurityFrameworkUtils; +import com.chanko.yunxi.mes.module.heli.controller.admin.processbom.vo.ProcessBomPageReqVO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplan.MaterialPlanDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.plansub.PlanSubDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDetailDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderSubDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordermake.PurchaseOrderMakeDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordermakedetail.PurchaseOrderMakeDetailDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.serialnumber.SerialNumberDO; +import com.chanko.yunxi.mes.module.heli.dal.mysql.materialplan.MaterialPlanMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.materialplanboom.BoomDetailRespVOMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.materialplanboom.MaterialPlanBoomDetailMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.plansub.PlanSubMapper; @@ -9,12 +21,21 @@ import com.chanko.yunxi.mes.module.heli.dal.mysql.processbom.ProcessBomDetailMap import com.chanko.yunxi.mes.module.heli.dal.mysql.processbom.ProcessBomMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.projectorder.ProjectOrderMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.projectorder.ProjectOrderSubMapper; +import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseorder.PurchaseOrderMapper; +import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseordermake.PurchaseOrderMakeMapper; +import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseordermakedetail.PurchaseOrderMakeDetailMapper; +import com.chanko.yunxi.mes.module.heli.enums.CodeEnum; +import com.chanko.yunxi.mes.module.heli.service.serialnumber.SerialNumberService; +import com.sun.org.apache.bcel.internal.generic.IF_ACMPEQ; +import org.apache.catalina.security.SecurityUtil; import org.apache.ibatis.jdbc.Null; import org.springframework.stereotype.Service; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; import org.springframework.transaction.annotation.Transactional; +import java.text.SimpleDateFormat; +import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; @@ -27,6 +48,7 @@ import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; import com.chanko.yunxi.mes.module.heli.dal.mysql.materialplanboom.MaterialPlanBoomMapper; import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.chanko.yunxi.mes.module.heli.enums.CodeEnum.*; import static com.chanko.yunxi.mes.module.heli.enums.ErrorCodeConstants.*; /** @@ -46,6 +68,18 @@ public class MaterialPlanBoomServiceImpl implements MaterialPlanBoomService { @Resource private ProjectOrderSubMapper projectOrderSubMapper; + @Resource + private SerialNumberService serialNumberService; + @Resource + private MaterialPlanMapper materialPlanMapper; + @Resource + private PlanSubMapper planSubMapper; + + @Resource + private PurchaseOrderMakeMapper purchaseOrderMakeMapper; + @Resource + private PurchaseOrderMakeDetailMapper purchaseOrderMakeDetailMapper; + @Override public Long createMaterialPlanBoom(MaterialPlanBoomSaveReqVO createReqVO) { @@ -58,11 +92,157 @@ public class MaterialPlanBoomServiceImpl implements MaterialPlanBoomService { @Override public void updateMaterialPlanBoom(MaterialPlanBoomSaveReqVO updateReqVO) { + Long loginUserId = SecurityFrameworkUtils.getLoginUserId(); // 校验存在 validateMaterialPlanBoomExists(updateReqVO.getId()); // 更新 - MaterialPlanBoomDO updateObj = BeanUtils.toBean(updateReqVO, MaterialPlanBoomDO.class); - materialPlanBoomMapper.updateById(updateObj); + if (CollUtil.isEmpty(updateReqVO.getMaterialPlanBoomDOList())){ + MaterialPlanBoomDO updateObj = BeanUtils.toBean(updateReqVO, MaterialPlanBoomDO.class); + materialPlanBoomMapper.updateById(updateObj); + if (updateObj.getSupplierId() == null || updateObj.getArriveTime() == null + ) { + materialPlanBoomMapper.clearSuplier(updateObj); + } + }else{ + if (updateReqVO.getBuyType() == 0){ + List materialPlanBoomDOList = updateReqVO.getMaterialPlanBoomDOList(); + List ids = new ArrayList<>(); + Map map = new HashMap(); + List makeDetailDOList = new ArrayList<>(); + + HashMap hashMap = new HashMap<>(); + HashMap planSubMap = new HashMap<>(); + for (MaterialPlanBoomDO dp : materialPlanBoomDOList) { + PurchaseOrderMakeDetailDO makeDetailDO = new PurchaseOrderMakeDetailDO(); + makeDetailDO.setBoomDetailId(dp.getBoomDetailId()); + makeDetailDO.setBoomName(dp.getMatName()); + makeDetailDO.setBoomSpec(dp.getMatSpec()); + makeDetailDO.setBoomUnit(dp.getMatUnit()); + makeDetailDO.setComposition(dp.getCompositionName()); + makeDetailDO.setPurchaseAmount(dp.getPurchaseAmount()); + makeDetailDO.setEstimatedPrice(dp.getEstimatedPrice()); + makeDetailDO.setArriveTime(dp.getArriveTime()); + makeDetailDO.setBoomAmount(dp.getBoomAmount()); + makeDetailDO.setRequireTime(dp.getBoomArriveDate()); + makeDetailDO.setSupplierId(dp.getSupplierId()); + makeDetailDO.setProjectMaterialPlanId(dp.getProjectMaterialPlanId()); + makeDetailDO.setProjectMaterialPlanBoomId(dp.getId()); + makeDetailDO.setName(dp.getProjectName()); + + ProjectOrderSubDO subDO = new ProjectOrderSubDO(); + if (hashMap.get(dp.getProjectPlanSubId()) != null) { + subDO = hashMap.get(dp.getProjectPlanSubId()); + }else{ + ProjectOrderSubDO projectOrderSubDO = projectOrderSubMapper.selectById(dp.getProjectPlanSubId()); + hashMap.put(dp.getProjectPlanSubId(), projectOrderSubDO); + subDO = hashMap.get(dp.getProjectPlanSubId()); + } + if (subDO != null){ + PlanSubDO planSubDO = new PlanSubDO(); + if (planSubMap.get(dp.getProjectPlanSubId()) != null) { + planSubDO = planSubMap.get(dp.getProjectPlanSubId()); + }else{ + List planSubDOS = planSubMapper.selectList(new LambdaQueryWrapperX().eq(PlanSubDO::getProjectSubId, subDO.getId())); + if (CollUtil.isEmpty(planSubDOS)){ + planSubMap.put(dp.getProjectPlanSubId(), planSubDOS.get(0)); + planSubDO = planSubDOS.get(0); + } + + } + if (planSubDO != null){ + makeDetailDO.setProjectSubCode(planSubDO.getProjectSubCode()); + } + makeDetailDO.setName(subDO.getProjectSubName()); + makeDetailDO.setProjectPlanSubId(subDO.getId()); + makeDetailDO.setNameSim(subDO.getNameSim()); + makeDetailDO.setProjectSubCode(subDO.getProjectSubCode()); + } + makeDetailDO.setOrderStatus(1); + makeDetailDOList.add(makeDetailDO); + ids.add(dp.getId()); + } + map.put("ids", ids); + Long l1 = materialPlanBoomMapper.hasPurchase(map); + if (l1 != null && l1 > 0L) { + throw exception(PURCHASE_ORDER_MAKE_DETAIL_IS_EXISTS); + } + Long l = materialPlanBoomMapper.hasPurYard(map); + if (l != null && l> 0L){ + throw exception(PURCHASE_ORDER_MAKE_DETAIL_IS_STORAGE); + } + //插入make表 + PurchaseOrderMakeDO purchaseOrderMakeDO = new PurchaseOrderMakeDO(); + SerialNumberDO serialNumberDO = new SerialNumberDO(); + // 月度流水号 + serialNumberDO = serialNumberService.getSerialNumber(PURCHASE_ORDER.name(), new SimpleDateFormat("yyyyMMdd").format(new Date())); + serialNumberDO.setSerialNumber(serialNumberDO.getSerialNumber()+1); + + // 入库前缀 + purchaseOrderMakeDO.setPurchaseNo(PURCHASE_ORDER.getCode(serialNumberDO.getSerialNumber().toString())); + purchaseOrderMakeDO.setGoodsType(1); + purchaseOrderMakeDO.setStatus(1); + purchaseOrderMakeDO.setSubmitUserId(loginUserId); + purchaseOrderMakeDO.setSubmitTime(LocalDateTime.now()); + purchaseOrderMakeDO.setProjectId(materialPlanBoomDOList.get(0).getProjectId()); + + + MaterialPlanDO materialPlanDO = materialPlanMapper.selectOne(new LambdaQueryWrapperX().eq(MaterialPlanDO::getId, materialPlanBoomDOList.get(0).getProjectMaterialPlanId())); + if (materialPlanDO != null){ + purchaseOrderMakeDO.setProjectPlanId(materialPlanDO.getProjectPlanId()); + purchaseOrderMakeDO.setCustomerId(materialPlanDO.getCustomerId()); + purchaseOrderMakeDO.setBrief(materialPlanDO.getBrief()); + purchaseOrderMakeDO.setProjectName(materialPlanDO.getProjectName()); + purchaseOrderMakeDO.setProjectNameSim(materialPlanDO.getProjectNameSim()); + purchaseOrderMakeMapper.insert(purchaseOrderMakeDO); + //******* 插入明细****// + + for (PurchaseOrderMakeDetailDO purchaseOrderMakeDetailDO : makeDetailDOList) { + purchaseOrderMakeDetailDO.setPurchaseOrderId(purchaseOrderMakeDO.getId()); + } + purchaseOrderMakeDetailMapper.insertBatch(makeDetailDOList); + for (MaterialPlanBoomDO dp : materialPlanBoomDOList) { + for (PurchaseOrderMakeDetailDO purchaseOrderMakeDetailDO : makeDetailDOList){ + if (dp.getId().equals(purchaseOrderMakeDetailDO.getProjectMaterialPlanBoomId())) { + dp.setMplanStatus(1); + dp.setProjectPurchaseOrderMakeId(purchaseOrderMakeDO.getId()); + dp.setProjectPurchaseOrderMakeDetailId(purchaseOrderMakeDetailDO.getId()); + dp.setPurchaseNo(purchaseOrderMakeDO.getPurchaseNo()); + } + } + } + materialPlanBoomMapper.updateBatch(materialPlanBoomDOList); + serialNumberService.updateSerialNumber(serialNumberDO); + }else { + throw exception(MATERIAL_PLAN_NOT_EXISTS); + } + + }else{ + List materialPlanBoomDOList = updateReqVO.getMaterialPlanBoomDOList(); + List ids = new ArrayList<>(); + + Map map = new HashMap(); + HashMap hashMap = new HashMap<>(); + for (MaterialPlanBoomDO dp : materialPlanBoomDOList) { + dp.setIsPurYard(1); + ids.add(dp.getId()); + } + map.put("ids", ids); + Long l1 = materialPlanBoomMapper.hasPurchase(map); + if (l1 != null && l1 > 0L) { + throw exception(PURCHASE_ORDER_MAKE_DETAIL_IS_EXISTS); + } + Long l = materialPlanBoomMapper.hasPurYard(map); + if (l != null && l> 0L){ + throw exception(PURCHASE_ORDER_MAKE_DETAIL_IS_STORAGE); + } + materialPlanBoomMapper.updateBatch(materialPlanBoomDOList); + + } + + + // purchaseOrderMakeDO.setCustomerId(materialPlanBoomDOList.get(0).getCustomerBriefName()) + } + } @Override @@ -164,4 +344,17 @@ public class MaterialPlanBoomServiceImpl implements MaterialPlanBoomService { return materialPlanBoomMapper.getProjectMaterialPlanId(pageReqVO); } + + @Override + public PageResult getStandardBuyPage(MaterialPlanBoomPageReqVO pageReqVO) { + PageResult standardBuyPage = materialPlanBoomMapper.getStandardBuyPage(pageReqVO); +// if (standardBuyPage.getTotal() > 0){ +// for (MaterialPlanBoomDO materialPlanBoomDO : standardBuyPage.getList()) { +// if (materialPlanBoomDO.getPurchaseAmount() == null){ +// materialPlanBoomDO.setPurchaseAmount(materialPlanBoomDO.getBoomAmount()); +// } +// } +// } + return standardBuyPage; + } } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/partpurchaseorder/PartPurchaseOrderServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/partpurchaseorder/PartPurchaseOrderServiceImpl.java index 0dc13ab..fdad974 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/partpurchaseorder/PartPurchaseOrderServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/partpurchaseorder/PartPurchaseOrderServiceImpl.java @@ -81,7 +81,7 @@ public class PartPurchaseOrderServiceImpl implements PartPurchaseOrderService{ PurchaseOrderMakeDetailDO purchaseOrderMakeDetailDO = new PurchaseOrderMakeDetailDO(); purchaseOrderMakeDetailDO.setId(detailDO.getId()); - purchaseOrderMakeDetailDO.setOrderStatus(true); + purchaseOrderMakeDetailDO.setOrderStatus(0); purchaseOrderMakeDetailDO.setPurchaseOrderNoId(purchaseOrderId); purchaseOrderMakeDetailDO.setPurchaseOrderNoDetailId(purchaseOrderDetailId); purchaseOrderMakeDetailMapper.updateById(purchaseOrderMakeDetailDO); diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processbom/ProcessBomService.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processbom/ProcessBomService.java index 2b01588..4d3b750 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processbom/ProcessBomService.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processbom/ProcessBomService.java @@ -94,7 +94,6 @@ public interface ProcessBomService { void updateProcessBomDetail(ProcessBomDetailDO processBomDetailDO); PageResult getStandardPage(ProcessBomPageReqVO pageReqVO); - Boolean submit(List list); CommonResult withdraw(String code); diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processbom/ProcessBomServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processbom/ProcessBomServiceImpl.java index 71f5c4c..ed2e678 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processbom/ProcessBomServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processbom/ProcessBomServiceImpl.java @@ -243,10 +243,10 @@ public class ProcessBomServiceImpl implements ProcessBomService { if (o.getType().equals("是")){ standard = true; type = "1"; - materialDO = materialService.getMaterialId(o.getMaterialCode()); - if (materialDO == null) { - throw new RuntimeException("物料编码为:"+o.getMaterialCode() + "物料不存在"); - } +// materialDO = materialService.getMaterialId(o.getMaterialCode()); +// if (materialDO == null) { +// throw new RuntimeException("物料编码为:"+o.getMaterialCode() + "物料不存在"); +// } } else if (o.getType().equals("否")){ @@ -292,10 +292,14 @@ public class ProcessBomServiceImpl implements ProcessBomService { processBomDetailDO.setBomId(processBomDO.getId());//BomId //BOM最新需求在这个地方更改 processBomDetailDO.setType(type);//是否标准件 + if (o.getMaterialName() == null || o.getMaterialName().trim().equals("")){ + throw new RuntimeException("物料名称不能为空!"); + } + processBomDetailDO.setMaterialName(o.getMaterialName()); if (type.equals("1")) { - processBomDetailDO.setMaterialId(materialDO.getId());//物料ID - processBomDetailDO.setMaterialCode(materialDO.getCode());//物料编码 - processBomDetailDO.setMaterialName(materialDO.getName());//物料名称 +// processBomDetailDO.setMaterialId(materialDO.getId());//物料ID +// processBomDetailDO.setMaterialCode(materialDO.getCode());//物料编码 +// processBomDetailDO.setMaterialName(materialDO.getName());//物料名称 }else{ processBomDetailDO.setMaterialName(o.getMaterialName()); } @@ -743,7 +747,15 @@ public class ProcessBomServiceImpl implements ProcessBomService { } @Override public PageResult getProcessBomPageNew(ProcessBomPageReqVO pageReqVO) { - return processBomDetailMapper.selectPageNew(pageReqVO); + PageResult processBomDetailDOPageResult = processBomDetailMapper.selectPageNew(pageReqVO); + if (processBomDetailDOPageResult.getTotal() > 0){ + for (ProcessBomDetailDO processBomDetailDO : processBomDetailDOPageResult.getList()) { + if (processBomDetailDO.getMaterialCode() != null && !processBomDetailDO.getMaterialCode().equals("")){ + processBomDetailDO.setInventCode(processBomDetailDO.getMaterialCode()); + } + } + } + return processBomDetailDOPageResult; } @Override public PageResult getProcessBomPages(ProcessBomPageReqVO pageReqVO) { diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/purchaseordermakedetail/PurchaseOrderMakeDetailServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/purchaseordermakedetail/PurchaseOrderMakeDetailServiceImpl.java index 61b88a2..60d2a26 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/purchaseordermakedetail/PurchaseOrderMakeDetailServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/purchaseordermakedetail/PurchaseOrderMakeDetailServiceImpl.java @@ -1,74 +1,176 @@ -package com.chanko.yunxi.mes.module.heli.service.purchaseordermakedetail; - -import org.springframework.stereotype.Service; -import javax.annotation.Resource; -import org.springframework.validation.annotation.Validated; -import org.springframework.transaction.annotation.Transactional; - -import java.util.*; -import com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordermakedetail.vo.*; -import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordermakedetail.PurchaseOrderMakeDetailDO; -import com.chanko.yunxi.mes.framework.common.pojo.PageResult; -import com.chanko.yunxi.mes.framework.common.pojo.PageParam; -import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; - -import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseordermakedetail.PurchaseOrderMakeDetailMapper; - -import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception; -import static com.chanko.yunxi.mes.module.heli.enums.ErrorCodeConstants.*; - -/** - * 采购单明细 Service 实现类 - * - * @author 管理员 - */ -@Service -@Validated -public class PurchaseOrderMakeDetailServiceImpl implements PurchaseOrderMakeDetailService { - - @Resource - private PurchaseOrderMakeDetailMapper purchaseOrderMakeDetailMapper; - - @Override - public Long createPurchaseOrderMakeDetail(PurchaseOrderMakeDetailSaveReqVO createReqVO) { - // 插入 - PurchaseOrderMakeDetailDO purchaseOrderMakeDetail = BeanUtils.toBean(createReqVO, PurchaseOrderMakeDetailDO.class); - purchaseOrderMakeDetailMapper.insert(purchaseOrderMakeDetail); - // 返回 - return purchaseOrderMakeDetail.getId(); - } - - @Override - public void updatePurchaseOrderMakeDetail(PurchaseOrderMakeDetailSaveReqVO updateReqVO) { - // 校验存在 - validatePurchaseOrderMakeDetailExists(updateReqVO.getId()); - // 更新 - PurchaseOrderMakeDetailDO updateObj = BeanUtils.toBean(updateReqVO, PurchaseOrderMakeDetailDO.class); - purchaseOrderMakeDetailMapper.updateById(updateObj); - } - - @Override - public void deletePurchaseOrderMakeDetail(Long id) { - // 校验存在 - validatePurchaseOrderMakeDetailExists(id); - // 删除 - purchaseOrderMakeDetailMapper.deleteById(id); - } - - private void validatePurchaseOrderMakeDetailExists(Long id) { - if (purchaseOrderMakeDetailMapper.selectById(id) == null) { - throw exception(PURCHASE_ORDER_MAKE_DETAIL_NOT_EXISTS); - } - } - - @Override - public PurchaseOrderMakeDetailDO getPurchaseOrderMakeDetail(Long id) { - return purchaseOrderMakeDetailMapper.selectById(id); - } - - @Override - public PageResult getPurchaseOrderMakeDetailPage(PurchaseOrderMakeDetailPageReqVO pageReqVO) { - return purchaseOrderMakeDetailMapper.selectPage(pageReqVO); - } - -} \ No newline at end of file +package com.chanko.yunxi.mes.module.heli.service.purchaseordermakedetail; + +import cn.hutool.core.collection.CollUtil; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseorder.PurchaseOrderDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordermake.PurchaseOrderMakeDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseorderno.PurchaseOrderNoDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordernodetail.PurchaseOrderNoDetailDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.serialnumber.SerialNumberDO; +import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseordermake.PurchaseOrderMakeMapper; +import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseorderno.PurchaseOrderNoMapper; +import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseordernodetail.PurchaseOrderNoDetailMapper; +import com.chanko.yunxi.mes.module.heli.service.serialnumber.SerialNumberService; +import org.checkerframework.checker.units.qual.A; +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.*; +import com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordermakedetail.vo.*; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordermakedetail.PurchaseOrderMakeDetailDO; +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.framework.common.pojo.PageParam; +import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; + +import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseordermakedetail.PurchaseOrderMakeDetailMapper; + +import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.chanko.yunxi.mes.module.heli.enums.CodeEnum.PURCHASE_ORDER; +import static com.chanko.yunxi.mes.module.heli.enums.ErrorCodeConstants.*; + +/** + * 采购单明细 Service 实现类 + * + * @author 管理员 + */ +@Service +@Validated +public class PurchaseOrderMakeDetailServiceImpl implements PurchaseOrderMakeDetailService { + + @Resource + private PurchaseOrderMakeDetailMapper purchaseOrderMakeDetailMapper; + @Resource + private SerialNumberService serialNumberService; + + @Resource + private PurchaseOrderNoMapper purchaseOrderNoMapper; + + @Resource + private PurchaseOrderNoDetailMapper purchaseOrderNoDetailMapper; + @Resource + private PurchaseOrderMakeMapper purchaseOrderMakeMapper; + + @Override + public Long createPurchaseOrderMakeDetail(PurchaseOrderMakeDetailSaveReqVO createReqVO) { + // 插入 + PurchaseOrderMakeDetailDO purchaseOrderMakeDetail = BeanUtils.toBean(createReqVO, PurchaseOrderMakeDetailDO.class); + purchaseOrderMakeDetailMapper.insert(purchaseOrderMakeDetail); + // 返回 + return purchaseOrderMakeDetail.getId(); + } + + @Override + public void updatePurchaseOrderMakeDetail(PurchaseOrderMakeDetailSaveReqVO updateReqVO) { + if (CollUtil.isNotEmpty(updateReqVO.getUpdateList())){ + List updateList = updateReqVO.getUpdateList(); + //插入make表 + PurchaseOrderNoDO purchaseOrderNoDO = new PurchaseOrderNoDO(); + SerialNumberDO serialNumberDO = new SerialNumberDO(); + // 月度流水号 + serialNumberDO = serialNumberService.getSerialNumber(PURCHASE_ORDER.name(), new SimpleDateFormat("yyyyMMdd").format(new Date())); + serialNumberDO.setSerialNumber(serialNumberDO.getSerialNumber()+1); + + // 入库前缀 + purchaseOrderNoDO.setPurchaseNo(PURCHASE_ORDER.getCode(serialNumberDO.getSerialNumber().toString())); + serialNumberService.updateSerialNumber(serialNumberDO); + purchaseOrderNoDO.setGoodsType(1); + purchaseOrderNoDO.setPurchaseType(1); + purchaseOrderNoDO.setSupplierId(updateList.get(0).getSupplierId()); + purchaseOrderNoDO.setOrdDate(new Date()); + purchaseOrderNoMapper.insert(purchaseOrderNoDO); + List insertList =new ArrayList<>(); + HashMap insertMap = new HashMap<>(); + for (PurchaseOrderMakeDetailDO pmd : updateList) { + + PurchaseOrderNoDetailDO pd = new PurchaseOrderNoDetailDO(); + pd.setMakeDetailId(pmd.getId()); + pd.setPurchaseOrderId(purchaseOrderNoDO.getId()); + pd.setBoomDetailId(pmd.getBoomDetailId()); + pd.setBoomName(pmd.getBoomName()); + pd.setMaterialId(pmd.getBoomDetailId()); + pd.setBoomSpec(pmd.getBoomSpec()); + pd.setBoomUnit(pmd.getBoomUnit()); + pd.setComposition(pmd.getComposition()); + pd.setPurchaseAmount(pmd.getPurchaseAmount()); + pd.setEstimatedPrice(pmd.getEstimatedPrice()); + pd.setArriveTime(pmd.getArriveTime()); + pd.setBoomAmount(pmd.getBoomAmount()); + pd.setRequireTime(pmd.getRequireTime()); + pd.setProjectMaterialPlanId(pmd.getProjectMaterialPlanId()); + pd.setProjectMaterialPlanBoomId(pmd.getProjectMaterialPlanBoomId()); + pd.setProjectPlanSubId(pmd.getProjectPlanSubId()); + pd.setName(pmd.getName()); + pd.setNameSim(pmd.getNameSim()); + PurchaseOrderMakeDO purchaseOrderMakeDO = new PurchaseOrderMakeDO(); + if (insertMap.get(pmd.getPurchaseOrderId()) != null) { + purchaseOrderMakeDO = insertMap.get(pmd.getPurchaseOrderId()); + }else{ + purchaseOrderMakeDO = purchaseOrderMakeMapper.selectById(pmd.getPurchaseOrderId()); + insertMap.put(pmd.getPurchaseOrderId(),purchaseOrderMakeDO); + } + if (purchaseOrderMakeDO != null) { + pd.setProjectId(purchaseOrderMakeDO.getProjectId()); + pd.setProjectPlanId(purchaseOrderMakeDO.getProjectPlanId()); + pd.setCustomerId(purchaseOrderMakeDO.getCustomerId()); + pd.setBrief(purchaseOrderMakeDO.getBrief()); + pd.setProjectName(purchaseOrderMakeDO.getProjectName()); + pd.setProjectNameSim(purchaseOrderMakeDO.getProjectNameSim()); + } + pd.setPurchaseRemAmount(pmd.getPurchaseAmount()); + pd.setProjectSubCode(pmd.getProjectSubCode()); + insertList.add(pd); + } + if (CollUtil.isNotEmpty(insertList)) { + purchaseOrderNoDetailMapper.insertBatch(insertList); + for (PurchaseOrderMakeDetailDO pmd : updateList) { + for (PurchaseOrderNoDetailDO pd : insertList) { + if (pmd.getId().equals(pd.getMakeDetailId())){ + pmd.setPurchaseOrderNoId(purchaseOrderNoDO.getId()); + pmd.setPurchaseOrderNoDetailId(pd.getId()); + pmd.setOrderStatus(2); + break; + } + } + } + purchaseOrderMakeDetailMapper.updateBatch(updateList); + } + + }else { + // 校验存在 + validatePurchaseOrderMakeDetailExists(updateReqVO.getId()); + // 更新 + PurchaseOrderMakeDetailDO updateObj = BeanUtils.toBean(updateReqVO, PurchaseOrderMakeDetailDO.class); + purchaseOrderMakeDetailMapper.updateById(updateObj); + } + + } + + @Override + public void deletePurchaseOrderMakeDetail(Long id) { + // 校验存在 + validatePurchaseOrderMakeDetailExists(id); + // 删除 + purchaseOrderMakeDetailMapper.deleteById(id); + } + + private void validatePurchaseOrderMakeDetailExists(Long id) { + if (purchaseOrderMakeDetailMapper.selectById(id) == null) { + throw exception(PURCHASE_ORDER_MAKE_DETAIL_NOT_EXISTS); + } + } + + @Override + public PurchaseOrderMakeDetailDO getPurchaseOrderMakeDetail(Long id) { + return purchaseOrderMakeDetailMapper.selectById(id); + } + + @Override + public PageResult getPurchaseOrderMakeDetailPage(PurchaseOrderMakeDetailPageReqVO pageReqVO) { + return purchaseOrderMakeDetailMapper.selectPage(pageReqVO); + } + +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/materialplanboom/MaterialPlanBoomMapper.xml b/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/materialplanboom/MaterialPlanBoomMapper.xml index 754a42f..0ae98c6 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/materialplanboom/MaterialPlanBoomMapper.xml +++ b/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/materialplanboom/MaterialPlanBoomMapper.xml @@ -29,4 +29,25 @@ group by project_material_plan_no - \ No newline at end of file + + + + diff --git a/mes-ui/mes-ui-admin-vue3/.vscode/settings.json b/mes-ui/mes-ui-admin-vue3/.vscode/settings.json index 0779608..1176874 100644 --- a/mes-ui/mes-ui-admin-vue3/.vscode/settings.json +++ b/mes-ui/mes-ui-admin-vue3/.vscode/settings.json @@ -86,7 +86,7 @@ "source.fixAll.eslint": "explicit" }, "[vue]": { - "editor.defaultFormatter": "rvest.vs-code-prettier-eslint" + "editor.defaultFormatter": "stylelint.vscode-stylelint" }, "i18n-ally.localesPaths": ["src/locales"], "i18n-ally.keystyle": "nested", diff --git a/mes-ui/mes-ui-admin-vue3/src/api/heli/materialplanboom/index.ts b/mes-ui/mes-ui-admin-vue3/src/api/heli/materialplanboom/index.ts index 676d1d5..ae50060 100644 --- a/mes-ui/mes-ui-admin-vue3/src/api/heli/materialplanboom/index.ts +++ b/mes-ui/mes-ui-admin-vue3/src/api/heli/materialplanboom/index.ts @@ -8,6 +8,11 @@ export interface MaterialPlanBoomVO { boomAmount: number boomArriveDate: Date description: string + purchaseAmount:number + estimatedPrice:number + arriveTime:Date + supplierId:number + materialPlanBoomDOList:Array } // 查询物料需求计划加工件明细详情 @@ -54,3 +59,9 @@ export const getMaterialPlanBoomPages = async (params) => { export const getProjectMaterialPlanId = async (params) => { return await request.get({ url: `/heli/material-plan-boom/getProjectMaterialPlanId`, params }) } + +// 查询物料需求计划加工件明细分页 +export const getStandardBuyPage = async (params) => { + return await request.get({ url: `/heli/material-plan-boom/getStandardBuyPage`, params }) +} + diff --git a/mes-ui/mes-ui-admin-vue3/src/api/heli/processbom/index.ts b/mes-ui/mes-ui-admin-vue3/src/api/heli/processbom/index.ts index 41d6adc..5c7aa65 100644 --- a/mes-ui/mes-ui-admin-vue3/src/api/heli/processbom/index.ts +++ b/mes-ui/mes-ui-admin-vue3/src/api/heli/processbom/index.ts @@ -20,7 +20,9 @@ export interface ProcessBomVO { export const getProcessBomPage = async (params) => { return await request.get({ url: `/heli/process-bom/page`, params }) } - +export const detailpages = async (params) => { + return await request.get({ url: `/heli/process-bom/detailpages`, params }) +} // 查询工艺bom审核分页 export const getProcessBomPages = async (params) => { return await request.get({ url: `/heli/process-bom/pages`, params }) diff --git a/mes-ui/mes-ui-admin-vue3/src/api/heli/purchaseordermakedetail/index.ts b/mes-ui/mes-ui-admin-vue3/src/api/heli/purchaseordermakedetail/index.ts new file mode 100644 index 0000000..3ecf609 --- /dev/null +++ b/mes-ui/mes-ui-admin-vue3/src/api/heli/purchaseordermakedetail/index.ts @@ -0,0 +1,24 @@ +import request from '@/config/axios' + +export interface PuchaseOrderMakeDetail { + id: number + projectMaterialPlanId: number + boomDetailId: number + projectSubId: number + boomAmount: number + boomArriveDate: Date + description: string + purchaseAmount:number + estimatedPrice:number + arriveTime:Date + supplierId:number + materialPlanBoomDOList:Array +} + +// 查询物料需求计划加工件明细分页 +export const page = async (params) => { + return await request.get({ url: `/heli/purchase-order-make-detail/page`, params }) +} +export const updatePurchaseOrderDetail= async (data: PuchaseOrderMakeDetail) => { + return await request.put({ url: `/heli/purchase-order-make-detail/update`, data }) +} diff --git a/mes-ui/mes-ui-admin-vue3/src/utils/dict.ts b/mes-ui/mes-ui-admin-vue3/src/utils/dict.ts index bea430e..11c5ccb 100644 --- a/mes-ui/mes-ui-admin-vue3/src/utils/dict.ts +++ b/mes-ui/mes-ui-admin-vue3/src/utils/dict.ts @@ -242,6 +242,8 @@ export enum DICT_TYPE { HELI_DELIVER_MATERIAL_TYPE = 'heli_deliver_material_type', // 发货物料类型 HELI_PROJECT_PLAN_STATUS = 'heli_project_plan_status',//生产计划状态 HELI_CRAFT = 'heli_craft',//工艺流程 + HELI_STANDARD_BUY_TYPE = 'heli_standard_buy_type',//工艺流程 + HELI_PURCHASE_STATUS = 'heli_purchase_status',//工艺流程 HELI_PROJECT_MATERIAL_PLAN_STATUS = 'heli_project_material_plan_status',//物料需求计划状态 HELI_BOM_STATUS = 'heli_bom_status', //bom状态 HELI_BOM_MATERIAL_TYPE = 'heli_bom_material_type', //bom物料类型 diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/index.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/index.vue index 2fd8a08..299a6c1 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/index.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/index.vue @@ -7,24 +7,29 @@ - - - - - @@ -100,7 +105,8 @@ - @@ -116,7 +122,7 @@ import { dateFormatter, formatDate } from '@/utils/formatTime' import download from '@/utils/download' import * as MaterialPlanApi from '@/api/heli/materialplan' import * as UserApi from '@/api/system/user' - +import { useRoute } from 'vue-router'; defineOptions({ name: 'MaterialPlan' }) const router = useRouter() const message = useMessage() // 消息弹窗 @@ -217,8 +223,13 @@ const handleExport = async () => { } const userInit = ref() +const route = useRoute(); /** 初始化 **/ onMounted(async () => { +const flushParam = route.query.flush; +if(flushParam){ + getList() +} //用户列表数据 userInit.value = await UserApi.getSimpleUserList() getList() diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/purchasemake.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/purchasemake.vue new file mode 100644 index 0000000..6a5ac2b --- /dev/null +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/purchasemake.vue @@ -0,0 +1,479 @@ + + + + diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/standardbuy.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/standardbuy.vue new file mode 100644 index 0000000..052c88e --- /dev/null +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/standardbuy.vue @@ -0,0 +1,467 @@ + + + + diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/storageLog.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/storageLog.vue new file mode 100644 index 0000000..d4267ee --- /dev/null +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/storageLog.vue @@ -0,0 +1,213 @@ + + + diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/processdesign/bomDetail.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/processdesign/bomDetail.vue index b22302a..62854c5 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/processdesign/bomDetail.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/processdesign/bomDetail.vue @@ -100,18 +100,18 @@
BOM明细 - - 新增 + + 新增 导入BOM - 打印 + 打印 @@ -769,7 +769,7 @@ const printfClick = () =>{ message.error("至少选择一项后,打印!") return } - + for(var i = 0 ; i < clickItem.value.length ; i ++ ){ var item = clickItem.value[i]; if(item.id == null ){ diff --git a/mes-ui/mini-app/src/services/constants.ts b/mes-ui/mini-app/src/services/constants.ts index 3e9d9fc..eca0edc 100644 --- a/mes-ui/mini-app/src/services/constants.ts +++ b/mes-ui/mini-app/src/services/constants.ts @@ -7,7 +7,7 @@ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE */ // export const serviceDomain = 'https://nxhs.cjyx.cc' - // export const serviceDomain = 'https://star.hz-hl.com' + export const serviceDomain = 'https://star.hz-hl.com' // export const serviceDomain = 'http://222.71.165.187:9010' -// export const serviceDomain = 'http://localhost:8080' -export const serviceDomain = 'https://nxhs.cjyx.cc' + //export const serviceDomain = 'http://localhost:8080' +// export const serviceDomain = 'https://nxhs.cjyx.cc'