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 e9e2630d..98d8f85d 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,6 +52,7 @@ public enum CodeEnum { TASK_DISPATCH_ASSEMBLE("装配任务派工单", "ATD", 3, "yyyyMMdd"), TASK_DISPATCH_GCJYPG("过程检验派工单", "GCJ", 4, "yyyyMMdd"), TASK_DISPATCH_ZJJYPG("终检检验派工单", "ZJ", 4, "yyyyMMdd"), + MAT_REQ("领料单", "LL", 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 741b12f7..81a5b1b9 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, "任务报工不存在"); @@ -147,5 +149,7 @@ public interface ErrorCodeConstants { /************责任人管理***********/ ErrorCode OWNER_NOT_EXISTS = new ErrorCode(1_013_001, "人员配置主数据维护错误,请确认!"); ErrorCode TRACK_NOT_EXISTS = new ErrorCode(1_013_002, "生产进度跟踪不存在"); + ErrorCode MAT_REQ_NOT_EXISTS = new ErrorCode(1_013_003, "领料单不存在"); + ErrorCode MAT_REQ_DETAIL_NOT_EXISTS = new ErrorCode(1_013_004, "领料单明细不存在"); } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/bdgzsomthing/bdgzsomthingController.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/bdgzsomthing/bdgzsomthingController.java index 90073756..4a8e2967 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/bdgzsomthing/bdgzsomthingController.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/bdgzsomthing/bdgzsomthingController.java @@ -151,7 +151,7 @@ public class bdgzsomthingController { BeanUtils.toBean(list, bdgzsomthingRespVO.class)); } -// @Scheduled(fixedRate = 10800000) + @Scheduled(fixedRate = 10800000) public void scheduledTask() { bdgzsomthingService.selectds(); } @@ -159,20 +159,20 @@ public class bdgzsomthingController { //@Scheduled(cron = "0 2 0 * * ?") //每天十天执行一次 @PostConstruct public void init() { -// selectHasPrice(); -// selectSafeStorageAndDeliverOneYear(); + selectHasPrice(); + selectSafeStorageAndDeliverOneYear(); } -// @Scheduled(cron = "0 0 2 * * ?") + @Scheduled(cron = "0 0 2 * * ?") public void selectHasPrice(){ bdgzsomthingService.selectHasPrice(); } -// @Scheduled(cron = "0 0 0 * * ?") + @Scheduled(cron = "0 0 0 * * ?") public void selectSafeStorageAndDeliverOneYear(){bdgzsomthingService.selectSafeStorageAndDeliverOneYear();} @PostMapping("/getMessage") @Operation(summary = "小程序消息") @PreAuthorize("@ss.hasPermission('heli:bdgzsomthing:query')") - public CommonResult> getMessage(@Valid bdgzsomthingPageReqVO pageReqVO) { + public CommonResult> getMessage(@Valid @RequestBody bdgzsomthingPageReqVO pageReqVO) { PageResultpageResult = bdgzsomthingService.getMessage(pageReqVO); return success(BeanUtils.toBean(pageResult, bdgzsomthingDO.class)); } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/material/MaterialController.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/material/MaterialController.java index 2e228592..dd964d89 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/material/MaterialController.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/material/MaterialController.java @@ -122,4 +122,11 @@ public class MaterialController { materialService.importExcel(list, updateSupport); return success(null); } + @GetMapping({"/getbzjList"}) + @Operation(summary = "TODO:获取物料标准件信息列表", description = "只包含被开启的物料,主要用于前端的下拉选项") + public CommonResult> > getbzjList() { + List> list = materialService.getbzjList(); + // 拼接数据 + return success(list); + } } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/material/vo/MaterialPageReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/material/vo/MaterialPageReqVO.java index 249f8aba..566ba836 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/material/vo/MaterialPageReqVO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/material/vo/MaterialPageReqVO.java @@ -27,6 +27,7 @@ public class MaterialPageReqVO extends PageParam { @Schema(description = "物料名称", example = "李四") private String codeAndName; + private String inventoryName; @Schema(description = "品牌") private String brand; diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplan/MaterialPlanController.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplan/MaterialPlanController.java index ada302f8..d9559aff 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplan/MaterialPlanController.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplan/MaterialPlanController.java @@ -1,6 +1,8 @@ package com.chanko.yunxi.mes.module.heli.controller.admin.materialplan; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplanboom.MaterialPlanBoomDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDetailDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelogNow.StorageLogNowDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatchDetailDO; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -154,4 +156,40 @@ public class MaterialPlanController { MaterialPlanDO materialPlan = materialPlanService.getProjectMaterialPlanNo(code); return success(BeanUtils.toBean(materialPlan, MaterialPlanRespVO.class)); } + + + @GetMapping("/getStandardPartsPages") + @Operation(summary = "获得标准件库存") + @PreAuthorize("@ss.hasPermission('heli:material-plan:query')") + public CommonResult> getStandardPartsPages(@Valid MaterialPlanPageReqVO pageReqVO) { + PageResult pageResult = materialPlanService.getStandardPartsPages(pageReqVO); + return success(pageResult); + } + + + @GetMapping("/exportStandardParts") + @Operation(summary = "导出标准件库存") + @PreAuthorize("@ss.hasPermission('heli:material-plan:export')") + @OperateLog(type = EXPORT) + public void exportStandardParts(@Valid MaterialPlanPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = materialPlanService.getStandardPartsPages(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "标准件库存.xlsx", "数据", MaterialPlanBoomExcelVo.class, + BeanUtils.toBean(list, MaterialPlanBoomExcelVo.class)); + } + @GetMapping("/operation") + @Operation(summary = "获得标准件库存") + @PreAuthorize("@ss.hasPermission('heli:material-plan:query')") + public CommonResult operation(@Valid MaterialPlanPageReqVO pageReqVO) { + return materialPlanService.operation(pageReqVO); + } + + @PostMapping("/supplement") + @Operation(summary = "库存补充") + @PreAuthorize("@ss.hasPermission('heli:process-bom:create')") + public CommonResult supplement(@Valid @RequestBody List list) { + return success(materialPlanService.supplement(list)); + } } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplan/vo/MaterialPlanBoomExcelVo.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplan/vo/MaterialPlanBoomExcelVo.java new file mode 100644 index 00000000..b9225b7d --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplan/vo/MaterialPlanBoomExcelVo.java @@ -0,0 +1,45 @@ +package com.chanko.yunxi.mes.module.heli.controller.admin.materialplan.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.chanko.yunxi.mes.framework.excel.core.annotations.DictFormat; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * Excel 导入 VO + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +@Accessors(chain = false) // 设置 chain = false,避免BOM导入有问题 +public class MaterialPlanBoomExcelVo { + + + @ExcelProperty("项目名称") + private String projectName; + @ExcelProperty("子项目名称") + private String projectSubName; + @ExcelProperty("物料编码") + private String materialName; + @ExcelProperty("物料名称") + private String matName; + + @ExcelProperty("规格型号") + private String boomSpec; + @ExcelProperty("图号") + private String blueprintNo; + @ExcelProperty("需求数量") + private String boomAmount; + @ExcelProperty("系统单位") + @DictFormat("heli_material_unit") + private String boomUnit; + @ExcelProperty("要求完成日期") + private String boomArriveDates; +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplan/vo/MaterialPlanPageReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplan/vo/MaterialPlanPageReqVO.java index 90585f90..476f67c9 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplan/vo/MaterialPlanPageReqVO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplan/vo/MaterialPlanPageReqVO.java @@ -64,6 +64,7 @@ public class MaterialPlanPageReqVO extends PageParam { private String projectCode; @Schema(description = "需求计划类型") private String matType; - + @Schema(description = "类型") + private String type; } \ 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/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 2f866017..37702f9e 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 a8a582a4..4fcd4156 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 e547da5d..c3fff949 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 58777c5f..d73b9e86 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/matreq/MatReqController.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/matreq/MatReqController.java new file mode 100644 index 00000000..9b338585 --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/matreq/MatReqController.java @@ -0,0 +1,102 @@ +package com.chanko.yunxi.mes.module.heli.controller.admin.matreq; + +import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplanboom.MaterialPlanBoomDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatchDetailDO; +import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import javax.validation.constraints.*; +import javax.validation.*; +import javax.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import com.chanko.yunxi.mes.framework.common.pojo.PageParam; +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.framework.common.pojo.CommonResult; +import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; +import static com.chanko.yunxi.mes.framework.common.pojo.CommonResult.success; + +import com.chanko.yunxi.mes.framework.excel.core.util.ExcelUtils; + +import com.chanko.yunxi.mes.framework.operatelog.core.annotations.OperateLog; +import static com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum.*; + +import com.chanko.yunxi.mes.module.heli.controller.admin.matreq.vo.*; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.matreq.MatReqDO; +import com.chanko.yunxi.mes.module.heli.service.matreq.MatReqService; + +@Tag(name = "管理后台 - 领料单主") +@RestController +@RequestMapping("/heli/mat-req") +@Validated +public class MatReqController { + + @Resource + private MatReqService matReqService; + + @PostMapping("/create") + @Operation(summary = "创建领料单主") + @PreAuthorize("@ss.hasPermission('heli:mat-req:create')") + public CommonResult createMatReq(@Valid @RequestBody MatReqSaveReqVO createReqVO) { + return success(matReqService.createMatReq(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新领料单主") + @PreAuthorize("@ss.hasPermission('heli:mat-req:update')") + public CommonResult updateMatReq(@Valid @RequestBody MatReqSaveReqVO updateReqVO) { + matReqService.updateMatReq(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除领料单主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('heli:mat-req:delete')") + public CommonResult deleteMatReq(@RequestParam("id") Long id) { + matReqService.deleteMatReq(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得领料单主") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('heli:mat-req:query')") + public CommonResult getMatReq(@RequestParam("id") Long id) { + MatReqDO matReq = matReqService.getMatReq(id); + return success(BeanUtils.toBean(matReq, MatReqRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得领料单主分页") + @PreAuthorize("@ss.hasPermission('heli:mat-req:query')") + public CommonResult> getMatReqPage(@Valid MatReqPageReqVO pageReqVO) { + PageResult pageResult = matReqService.getMatReqPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, MatReqRespVO.class)); + } + @PostMapping("/generate") + @Operation(summary = "领料单生成") + @PreAuthorize("@ss.hasPermission('heli:process-bom:create')") + public CommonResult generate(@Valid @RequestBody List list) { + return matReqService.generate(list); + } + @GetMapping("/export-excel") + @Operation(summary = "导出领料单主 Excel") + @PreAuthorize("@ss.hasPermission('heli:mat-req:export')") + @OperateLog(type = EXPORT) + public void exportMatReqExcel(@Valid MatReqPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = matReqService.getMatReqPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "领料单主.xls", "数据", MatReqRespVO.class, + BeanUtils.toBean(list, MatReqRespVO.class)); + } + +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/matreq/vo/MatReqPageReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/matreq/vo/MatReqPageReqVO.java new file mode 100644 index 00000000..0c147aca --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/matreq/vo/MatReqPageReqVO.java @@ -0,0 +1,55 @@ +package com.chanko.yunxi.mes.module.heli.controller.admin.matreq.vo; + +import lombok.*; + +import java.time.LocalDate; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import com.chanko.yunxi.mes.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static com.chanko.yunxi.mes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 领料单主分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class MatReqPageReqVO extends PageParam { + + @Schema(description = "领料单单号") + private String matReqNo; + + @Schema(description = "领料单类型,1物料,2加工件", example = "2") + private Integer goodsType; + + @Schema(description = "单据状态,0 未领料,1已领料 ,默认是0", example = "1") + private Integer status; + + @Schema(description = "备注", example = "你说的对") + private String description; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "订单id", example = "31962") + private Long projectId; + + @Schema(description = "生产计划id", example = "14788") + private Long projectPlanId; + + @Schema(description = "客户id", example = "23800") + private Long customerId; + + @Schema(description = "领料单日期") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDate[] reqDate; + + @Schema(description = "项目名称", example = "李四") + private String projectName; + @Schema(description = "项目名称", example = "李四") + private String projectSubName; + @Schema(description = "物料名称", example = "李四") + private String materialName; +} \ 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/matreq/vo/MatReqRespVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/matreq/vo/MatReqRespVO.java new file mode 100644 index 00000000..0db8fb48 --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/matreq/vo/MatReqRespVO.java @@ -0,0 +1,62 @@ +package com.chanko.yunxi.mes.module.heli.controller.admin.matreq.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +import java.time.LocalDate; +import java.util.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 领料单主 Response VO") +@Data +@ExcelIgnoreUnannotated +public class MatReqRespVO { + + @Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED, example = "15799") + @ExcelProperty("自增字段,唯一") + private Long id; + + @Schema(description = "领料单单号", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("领料单单号") + private String matReqNo; + + @Schema(description = "领料单类型,1物料,2加工件", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + @ExcelProperty("领料单类型,1物料,2加工件") + private Integer goodsType; + + @Schema(description = "单据状态,0 未领料,1已领料 ,默认是0", example = "1") + @ExcelProperty("单据状态,0 未领料,1已领料 ,默认是0") + private Integer status; + + @Schema(description = "备注", example = "你说的对") + @ExcelProperty("备注") + private String description; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @Schema(description = "订单id", example = "31962") + @ExcelProperty("订单id") + private Long projectId; + + @Schema(description = "生产计划id", example = "14788") + @ExcelProperty("生产计划id") + private Long projectPlanId; + + @Schema(description = "客户id", example = "23800") + @ExcelProperty("客户id") + private Long customerId; + + @Schema(description = "领料单日期") + @ExcelProperty("领料单日期") + private Date reqDate; + + @Schema(description = "项目名称", example = "李四") + @ExcelProperty("项目名称") + private String projectName; + +} \ 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/matreq/vo/MatReqSaveReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/matreq/vo/MatReqSaveReqVO.java new file mode 100644 index 00000000..5b3df146 --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/matreq/vo/MatReqSaveReqVO.java @@ -0,0 +1,47 @@ +package com.chanko.yunxi.mes.module.heli.controller.admin.matreq.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +import java.time.LocalDate; +import java.util.*; +import javax.validation.constraints.*; +import java.util.*; + +@Schema(description = "管理后台 - 领料单主新增/修改 Request VO") +@Data +public class MatReqSaveReqVO { + + @Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED, example = "15799") + private Long id; + + @Schema(description = "领料单单号", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "领料单单号不能为空") + private String matReqNo; + + @Schema(description = "领料单类型,1物料,2加工件", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + @NotNull(message = "领料单类型,1物料,2加工件不能为空") + private Integer goodsType; + + @Schema(description = "单据状态,0 未领料,1已领料 ,默认是0", example = "1") + private Integer status; + + @Schema(description = "备注", example = "你说的对") + private String description; + + @Schema(description = "订单id", example = "31962") + private Long projectId; + + @Schema(description = "生产计划id", example = "14788") + private Long projectPlanId; + + @Schema(description = "客户id", example = "23800") + private Long customerId; + + @Schema(description = "领料单日期") + private LocalDate reqDate; + + @Schema(description = "项目名称", example = "李四") + private String projectName; + +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/matreqdetail/MatReqDetailController.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/matreqdetail/MatReqDetailController.java new file mode 100644 index 00000000..2bf762de --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/matreqdetail/MatReqDetailController.java @@ -0,0 +1,95 @@ +package com.chanko.yunxi.mes.module.heli.controller.admin.matreqdetail; + +import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import javax.validation.constraints.*; +import javax.validation.*; +import javax.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import com.chanko.yunxi.mes.framework.common.pojo.PageParam; +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.framework.common.pojo.CommonResult; +import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; +import static com.chanko.yunxi.mes.framework.common.pojo.CommonResult.success; + +import com.chanko.yunxi.mes.framework.excel.core.util.ExcelUtils; + +import com.chanko.yunxi.mes.framework.operatelog.core.annotations.OperateLog; +import static com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum.*; + +import com.chanko.yunxi.mes.module.heli.controller.admin.matreqdetail.vo.*; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.matreqdetail.MatReqDetailDO; +import com.chanko.yunxi.mes.module.heli.service.matreqdetail.MatReqDetailService; + +@Tag(name = "管理后台 - 领料单明细") +@RestController +@RequestMapping("/heli/mat-req-detail") +@Validated +public class MatReqDetailController { + + @Resource + private MatReqDetailService matReqDetailService; + + @PostMapping("/create") + @Operation(summary = "创建领料单明细") + @PreAuthorize("@ss.hasPermission('heli:mat-req-detail:create')") + public CommonResult createMatReqDetail(@Valid @RequestBody MatReqDetailSaveReqVO createReqVO) { + return success(matReqDetailService.createMatReqDetail(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新领料单明细") + @PreAuthorize("@ss.hasPermission('heli:mat-req-detail:update')") + public CommonResult updateMatReqDetail(@Valid @RequestBody MatReqDetailSaveReqVO updateReqVO) { + matReqDetailService.updateMatReqDetail(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除领料单明细") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('heli:mat-req-detail:delete')") + public CommonResult deleteMatReqDetail(@RequestParam("id") Long id) { + matReqDetailService.deleteMatReqDetail(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得领料单明细") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('heli:mat-req-detail:query')") + public CommonResult getMatReqDetail(@RequestParam("id") Long id) { + MatReqDetailDO matReqDetail = matReqDetailService.getMatReqDetail(id); + return success(BeanUtils.toBean(matReqDetail, MatReqDetailRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得领料单明细分页") + @PreAuthorize("@ss.hasPermission('heli:mat-req-detail:query')") + public CommonResult> getMatReqDetailPage(@Valid MatReqDetailPageReqVO pageReqVO) { + PageResult pageResult = matReqDetailService.getMatReqDetailPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, MatReqDetailRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出领料单明细 Excel") + @PreAuthorize("@ss.hasPermission('heli:mat-req-detail:export')") + @OperateLog(type = EXPORT) + public void exportMatReqDetailExcel(@Valid MatReqDetailPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = matReqDetailService.getMatReqDetailPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "领料单明细.xls", "数据", MatReqDetailRespVO.class, + BeanUtils.toBean(list, MatReqDetailRespVO.class)); + } + +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/matreqdetail/vo/MatReqDetailPageReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/matreqdetail/vo/MatReqDetailPageReqVO.java new file mode 100644 index 00000000..0a9466db --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/matreqdetail/vo/MatReqDetailPageReqVO.java @@ -0,0 +1,72 @@ +package com.chanko.yunxi.mes.module.heli.controller.admin.matreqdetail.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import com.chanko.yunxi.mes.framework.common.pojo.PageParam; +import java.math.BigDecimal; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static com.chanko.yunxi.mes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 领料单明细分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class MatReqDetailPageReqVO extends PageParam { + + @Schema(description = "采购单id", example = "29474") + private Long matReqId; + + @Schema(description = "加工件boom detail id", example = "3666") + 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 = "备注", example = "你猜") + private String description; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "需求数量") + private BigDecimal boomAmount; + + @Schema(description = "需求到货日期") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] requireTime; + + @Schema(description = "订单子项目id", example = "3875") + private Long projectPlanSubId; + + @Schema(description = "子项目名称,唯一", example = "张三") + private String name; + + @Schema(description = "子项目简码") + private String nameSim; + + @Schema(description = "子项目编码") + private String projectSubCode; + + @Schema(description = "物料id", example = "32088") + private Long materialId; + + @Schema(description = "物料需求计划主表id", example = "14306") + private Long projectMaterialPlanId; + + @Schema(description = "物料需求计划子表id", example = "20125") + private Long projectMaterialPlanDetailId; + +} \ 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/matreqdetail/vo/MatReqDetailRespVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/matreqdetail/vo/MatReqDetailRespVO.java new file mode 100644 index 00000000..66d3957b --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/matreqdetail/vo/MatReqDetailRespVO.java @@ -0,0 +1,96 @@ +package com.chanko.yunxi.mes.module.heli.controller.admin.matreqdetail.vo; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.matreqdetail.MatReqDetailDO; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.util.*; +import java.math.BigDecimal; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 领料单明细 Response VO") +@Data +@ExcelIgnoreUnannotated +public class MatReqDetailRespVO { + + @Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED, example = "1058") + @ExcelProperty("自增字段,唯一") + private Long id; + + @Schema(description = "采购单id", requiredMode = Schema.RequiredMode.REQUIRED, example = "29474") + @ExcelProperty("采购单id") + private Long matReqId; + + @Schema(description = "加工件boom detail id", example = "3666") + @ExcelProperty("加工件boom detail id") + private Long boomDetailId; + + @Schema(description = "零件名称", example = "赵六") + @ExcelProperty("零件名称") + private String boomName; + + @Schema(description = "规格型号") + @ExcelProperty("规格型号") + private String boomSpec; + + @Schema(description = "系统单位") + @ExcelProperty("系统单位") + private String boomUnit; + + @Schema(description = "材质") + @ExcelProperty("材质") + private String composition; + + @Schema(description = "备注", example = "你猜") + @ExcelProperty("备注") + private String description; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @Schema(description = "需求数量") + @ExcelProperty("需求数量") + private BigDecimal boomAmount; + + @Schema(description = "需求到货日期") + @ExcelProperty("需求到货日期") + private LocalDateTime requireTime; + + @Schema(description = "订单子项目id", example = "3875") + @ExcelProperty("订单子项目id") + private Long projectPlanSubId; + + @Schema(description = "子项目名称,唯一", example = "张三") + @ExcelProperty("子项目名称,唯一") + private String name; + + @Schema(description = "子项目简码") + @ExcelProperty("子项目简码") + private String nameSim; + + @Schema(description = "子项目编码") + @ExcelProperty("子项目编码") + private String projectSubCode; + + @Schema(description = "物料id", example = "32088") + @ExcelProperty("物料id") + private Long materialId; + + @Schema(description = "物料需求计划主表id", example = "14306") + @ExcelProperty("物料需求计划主表id") + private Long projectMaterialPlanId; + + @Schema(description = "物料需求计划子表id", example = "20125") + @ExcelProperty("物料需求计划子表id") + private Long projectMaterialPlanDetailId; + /** + * 子项目编码 + */ + @Schema(description = "物料编码", example = "32088") + private String materialCode; + +} \ 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/matreqdetail/vo/MatReqDetailSaveReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/matreqdetail/vo/MatReqDetailSaveReqVO.java new file mode 100644 index 00000000..c499e273 --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/matreqdetail/vo/MatReqDetailSaveReqVO.java @@ -0,0 +1,68 @@ +package com.chanko.yunxi.mes.module.heli.controller.admin.matreqdetail.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 MatReqDetailSaveReqVO { + + @Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED, example = "1058") + private Long id; + + @Schema(description = "采购单id", requiredMode = Schema.RequiredMode.REQUIRED, example = "29474") + @NotNull(message = "采购单id不能为空") + private Long matReqId; + + @Schema(description = "加工件boom detail id", example = "3666") + 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 = "备注", example = "你猜") + private String description; + + @Schema(description = "需求数量") + private BigDecimal boomAmount; + + @Schema(description = "需求到货日期") + private LocalDateTime requireTime; + + @Schema(description = "订单子项目id", example = "3875") + private Long projectPlanSubId; + + @Schema(description = "子项目名称,唯一", example = "张三") + private String name; + + @Schema(description = "子项目简码") + private String nameSim; + + @Schema(description = "子项目编码") + private String projectSubCode; + + @Schema(description = "物料id", example = "32088") + private Long materialId; + + @Schema(description = "物料需求计划主表id", example = "14306") + private Long projectMaterialPlanId; + + @Schema(description = "物料需求计划子表id", example = "20125") + private Long projectMaterialPlanDetailId; + +} 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 b15edf6e..03fa1468 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 cb1faca8..12014c43 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/purchaseordermake/PurchaseOrderMakeController.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/purchaseordermake/PurchaseOrderMakeController.java index 218cfcb3..864ab65a 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/purchaseordermake/PurchaseOrderMakeController.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/purchaseordermake/PurchaseOrderMakeController.java @@ -107,4 +107,16 @@ public class PurchaseOrderMakeController { return success(pageResult); } + @PutMapping("/updatePartCheck") + @Operation(summary = "更新采购审批通过状态") + public CommonResult updatePartCheck(@RequestParam("id") Long id) { + return success(partPurchaseOrderService.updatePartCheckStatus(id)); + } + + @PutMapping("/updatePartCheckNo") + @Operation(summary = "更新采购审批驳回状态") + public CommonResult updatePartCheckNo(@Valid PurchaseOrderMakeSaveReqVO updateReqVO) { + return success(partPurchaseOrderService.updatePartCheckStatusNo(updateReqVO)); + } + } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/purchaseordermake/vo/PartPurchaseOrderPageReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/purchaseordermake/vo/PartPurchaseOrderPageReqVO.java index b9511678..99c5e683 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/purchaseordermake/vo/PartPurchaseOrderPageReqVO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/purchaseordermake/vo/PartPurchaseOrderPageReqVO.java @@ -19,6 +19,9 @@ public class PartPurchaseOrderPageReqVO extends PageParam { @Schema(description = "自增字段,唯一") private Long id; + @Schema(description = "采购单id") + private Long purchaseOrderId; + @Schema(description = "物料计划单号") private String projectMaterialPlanNo; @@ -68,4 +71,10 @@ public class PartPurchaseOrderPageReqVO extends PageParam { private String ownerName; @Schema(description = "供应商名称") private String supplierName; + @Schema(description = "采购单号") + private String contractNo; + @Schema(description = "采购单类型,1物料,2加工件") + private Integer goodsType; + @Schema(description = "单据状态,0 待送审,1已送审,2已审核,3已打回 ,默认是1") + private Integer documentStatus; } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/purchaseordermake/vo/PartPurchaseOrderPageRespVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/purchaseordermake/vo/PartPurchaseOrderPageRespVO.java index bb1e467b..a2bb011e 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/purchaseordermake/vo/PartPurchaseOrderPageRespVO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/purchaseordermake/vo/PartPurchaseOrderPageRespVO.java @@ -114,7 +114,7 @@ public class PartPurchaseOrderPageRespVO extends BaseDO { /** * 订单状态 未生成/已生成 1/2 */ - private Boolean orderStatus; + private Integer orderStatus; /** * 子项目编码 */ @@ -147,4 +147,28 @@ public class PartPurchaseOrderPageRespVO extends BaseDO { * 工序名称 */ private String procedureName; + /** + * 采购单号 + */ + private String contractNo; + /** + * 采购单类型,1物料,2加工件 + */ + private Integer goodsType; + /** + * 客户简码 + */ + private String brief; + /** + * 项目名称 + */ + private String projectName; + /** + * 项目名称简码 + */ + private String projectNameSim; + /** + * 单据状态,0 待送审,1已送审,2已审核,3已打回 ,默认是1 + */ + private Integer status; } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/purchaseordermake/vo/PurchaseOrderMakeRespVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/purchaseordermake/vo/PurchaseOrderMakeRespVO.java index 3c341e92..ce5dc652 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/purchaseordermake/vo/PurchaseOrderMakeRespVO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/purchaseordermake/vo/PurchaseOrderMakeRespVO.java @@ -28,11 +28,11 @@ public class PurchaseOrderMakeRespVO { @Schema(description = "采购单类型,1按物料需求计划采购,2备库采购", example = "1") @ExcelProperty("采购单类型,1按物料需求计划采购,2备库采购") - private Boolean purchaseType; + private Integer purchaseType; @Schema(description = "采购物类型,1物料,2加工件", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @ExcelProperty("采购物类型,1物料,2加工件") - private Boolean goodsType; + private Integer goodsType; @Schema(description = "结算币种", example = "2") @ExcelProperty("结算币种") @@ -52,7 +52,7 @@ public class PurchaseOrderMakeRespVO { @Schema(description = "单据状态,0 待送审,1已送审,2已审核,3已打回 ,默认是1", example = "2") @ExcelProperty("单据状态,0 待送审,1已送审,2已审核,3已打回 ,默认是1") - private Boolean status; + private Integer status; @Schema(description = "送审人", example = "17514") @ExcelProperty("送审人") diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/purchaseordermake/vo/PurchaseOrderMakeSaveReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/purchaseordermake/vo/PurchaseOrderMakeSaveReqVO.java index be4046a7..8737291a 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/purchaseordermake/vo/PurchaseOrderMakeSaveReqVO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/purchaseordermake/vo/PurchaseOrderMakeSaveReqVO.java @@ -1,81 +1,82 @@ -package com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordermake.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 PurchaseOrderMakeSaveReqVO { - - @Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED, example = "29741") - private Long id; - - @Schema(description = "采购单号", requiredMode = Schema.RequiredMode.REQUIRED) - @NotEmpty(message = "采购单号不能为空") - private String purchaseNo; - - @Schema(description = "采购合同号") - private String contractNo; - - @Schema(description = "采购单类型,1按物料需求计划采购,2备库采购", example = "1") - private Boolean purchaseType; - - @Schema(description = "采购物类型,1物料,2加工件", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") - @NotNull(message = "采购物类型,1物料,2加工件不能为空") - private Boolean goodsType; - - @Schema(description = "结算币种", example = "2") - private Integer currencyType; - - @Schema(description = "税率") - private Integer taxRatio; - - @Schema(description = "暂估价金额", example = "13902") - private BigDecimal estimatedPrice; - - @Schema(description = "实际价金额", example = "14735") - private BigDecimal actualPrice; - - @Schema(description = "单据状态,0 待送审,1已送审,2已审核,3已打回 ,默认是1", example = "2") - private Boolean status; - - @Schema(description = "送审人", example = "17514") - private Long submitUserId; - - @Schema(description = "送审时间") - private LocalDateTime submitTime; - - @Schema(description = "审核人") - private Long auditor; - - @Schema(description = "审核时间") - private LocalDateTime auditTime; - - @Schema(description = "备注", example = "随便") - private String description; - - @Schema(description = "订单id", example = "14178") - private Long projectId; - - @Schema(description = "生产计划id", example = "707") - private Long projectPlanId; - - @Schema(description = "客户id", example = "20356") - private Long customerId; - - @Schema(description = "客户简称") - private String brief; - - @Schema(description = "项目名称", example = "芋艿") - private String projectName; - - @Schema(description = "项目名称简码") - private String projectNameSim; - -} \ No newline at end of file +package com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordermake.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 PurchaseOrderMakeSaveReqVO { + + @Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED, example = "29741") + private Long id; + + @Schema(description = "采购单号", requiredMode = Schema.RequiredMode.REQUIRED) + private String purchaseNo; + + @Schema(description = "采购合同号") + private String contractNo; + + @Schema(description = "采购单类型,1按物料需求计划采购,2备库采购", example = "1") + private Boolean purchaseType; + + @Schema(description = "采购物类型,1物料,2加工件", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Boolean goodsType; + + @Schema(description = "结算币种", example = "2") + private Integer currencyType; + + @Schema(description = "税率") + private Integer taxRatio; + + @Schema(description = "暂估价金额", example = "13902") + private BigDecimal estimatedPrice; + + @Schema(description = "实际价金额", example = "14735") + private BigDecimal actualPrice; + + @Schema(description = "单据状态,0 待送审,1已送审,2已审核,3已打回 ,默认是1", example = "2") + private Boolean status; + + @Schema(description = "送审人", example = "17514") + private Long submitUserId; + + @Schema(description = "送审时间") + private LocalDateTime submitTime; + + @Schema(description = "审核人") + private Long auditor; + + @Schema(description = "审核时间") + private LocalDateTime auditTime; + + @Schema(description = "备注", example = "随便") + private String description; + + @Schema(description = "订单id", example = "14178") + private Long projectId; + + @Schema(description = "生产计划id", example = "707") + private Long projectPlanId; + + @Schema(description = "客户id", example = "20356") + private Long customerId; + + @Schema(description = "客户简称") + private String brief; + + @Schema(description = "项目名称", example = "芋艿") + private String projectName; + + @Schema(description = "项目名称简码") + private String projectNameSim; + + @Schema(description = "驳回原因") + private String reason; + +} 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 4f080e10..926465c7 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,13 +89,13 @@ 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; @Schema(description = "收货状态 未收货/收货中/收货完成 1/2/3", example = "2") - private Boolean receivingStatus; + private Integer receivingStatus; @Schema(description = "采购单号") private String purchaseNo; @@ -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 99f3905d..2e1a563a 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 a856c55f..0ad56d3c 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; + private Long materialId; + @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/controller/admin/purchaseorderno/vo/PurchaseOrderNoPageReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/purchaseorderno/vo/PurchaseOrderNoPageReqVO.java index a8f0eb17..9c44e4cf 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/purchaseorderno/vo/PurchaseOrderNoPageReqVO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/purchaseorderno/vo/PurchaseOrderNoPageReqVO.java @@ -75,7 +75,7 @@ public class PurchaseOrderNoPageReqVO extends PageParam { private LocalDate[] ordDate; @Schema(description = "收货状态 未收货/收货中/收货完成 1/2/3", example = "1") - private Boolean receivingStatus; + private Integer receivingStatus; @Schema(description = "结算币种", example = "2") private Integer currencyType; diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/purchaseorderno/vo/PurchaseOrderNoRespVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/purchaseorderno/vo/PurchaseOrderNoRespVO.java index 8b468e40..4578d08c 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/purchaseorderno/vo/PurchaseOrderNoRespVO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/purchaseorderno/vo/PurchaseOrderNoRespVO.java @@ -28,7 +28,7 @@ public class PurchaseOrderNoRespVO { @Schema(description = "创建时间") @ExcelProperty(value="单据日期", converter = TimestampToDateConvert.class) - private LocalDateTime createTime; + private Date createTime; @Schema(description = "供应商id") private Long supplierId; @@ -107,4 +107,6 @@ public class PurchaseOrderNoRespVO { private String creator; @Schema(description = "是否打印") private String isPrint; + @Schema(description = "收货状态") + private Integer receivingStatus1; } \ 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/purchaseordernodetail/vo/PurchaseOrderNoDetailPageReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/purchaseordernodetail/vo/PurchaseOrderNoDetailPageReqVO.java index 897f9cf1..ea8ad79d 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/purchaseordernodetail/vo/PurchaseOrderNoDetailPageReqVO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/purchaseordernodetail/vo/PurchaseOrderNoDetailPageReqVO.java @@ -98,7 +98,7 @@ public class PurchaseOrderNoDetailPageReqVO extends PageParam { private Long materialId; @Schema(description = "收货状态 未收货/收货中/收货完成 1/2/3", example = "2") - private Boolean receivingStatus; + private Integer receivingStatus; @Schema(description = "入库单id", example = "28663") private Long storageId; diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/storagelog/StorageLogController.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/storagelog/StorageLogController.java index f526178d..692c6bd2 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/storagelog/StorageLogController.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/storagelog/StorageLogController.java @@ -168,4 +168,11 @@ public class StorageLogController { BeanUtils.toBean(list, StorageLogRespVO.class)); } + @GetMapping("/getSupplementPage") + @Operation(summary = "获得库存补充") + @PreAuthorize("@ss.hasPermission('heli:storage-log:query')") + public CommonResult> getSupplementPage(@Valid StorageLogPageReqVO pageReqVO) { + PageResult pageResult = storageLogService.getSupplementPage(pageReqVO); + return success(pageResult); + } } 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 3b60ba5e..6d87dcab 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,零件类型:加工件 */ @@ -112,6 +114,10 @@ public class MaterialPlanBoomDO extends BaseDO { @TableField(exist = false) private String boomUnit; @TableField(exist = false) + private String projectName; + @TableField(exist = false) + private String projectSubName; + @TableField(exist = false) private String compositionName; @TableField(exist = false) private String name; @@ -122,6 +128,8 @@ public class MaterialPlanBoomDO extends BaseDO { @TableField(exist = false) private String nickname; @TableField(exist = false) + private String blueprintNo; + @TableField(exist = false) private Long matId; @TableField(exist = false) private String matCode; @@ -132,6 +140,25 @@ public class MaterialPlanBoomDO extends BaseDO { @TableField(exist = false) private String matType; @TableField(exist = false) + private String mplanStatusName; + @TableField(exist = false) private BigDecimal matRest; + //采购数量 + @TableField(exist = false) + private BigDecimal purchaseAmount; + @TableField(exist = false) + //暂估价格 + private BigDecimal estimatedPrice; + @TableField(exist = false) + //预估到时间 + private LocalDateTime arriveTime; + @TableField(exist = false) + //供应商id + private Long supplierId; -} \ No newline at end of file + @TableField(exist = false) + //客户简称 + private String customerBriefName; + @TableField(exist = false) + private String boomArriveDates; +} 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 9c1988c1..6524a901 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/matreq/MatReqDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/matreq/MatReqDO.java new file mode 100644 index 00000000..c9a1047b --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/matreq/MatReqDO.java @@ -0,0 +1,69 @@ +package com.chanko.yunxi.mes.module.heli.dal.dataobject.matreq; + +import lombok.*; + +import java.time.LocalDate; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import com.chanko.yunxi.mes.framework.mybatis.core.dataobject.BaseDO; + +/** + * 领料单主 DO + * + * @author 管理员 + */ +@TableName("project_mat_req") +@KeySequence("project_mat_req_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class MatReqDO extends BaseDO { + + /** + * 自增字段,唯一 + */ + @TableId + private Long id; + /** + * 领料单单号 + */ + private String matReqNo; + /** + * 领料单类型,1物料,2加工件 + */ + private Integer goodsType; + /** + * 单据状态,0 未领料,1已领料 ,默认是0 + */ + private Integer status; + /** + * 备注 + */ + private String description; + /** + * 订单id + */ + private Long projectId; + /** + * 生产计划id + */ + private Long projectPlanId; + /** + * 客户id + */ + private Long customerId; + /** + * 领料单日期 + */ + private LocalDate reqDate; + /** + * 项目名称 + */ + private String projectName; + +} \ 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/matreqdetail/MatReqDetailDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/matreqdetail/MatReqDetailDO.java new file mode 100644 index 00000000..73607fbf --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/matreqdetail/MatReqDetailDO.java @@ -0,0 +1,104 @@ +package com.chanko.yunxi.mes.module.heli.dal.dataobject.matreqdetail; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import com.chanko.yunxi.mes.framework.mybatis.core.dataobject.BaseDO; + +/** + * 领料单明细 DO + * + * @author 管理员 + */ +@TableName("project_mat_req_detail") +@KeySequence("project_mat_req_detail_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class MatReqDetailDO extends BaseDO { + + /** + * 自增字段,唯一 + */ + @TableId + private Long id; + /** + * 采购单id + */ + private Long matReqId; + /** + * 加工件boom detail id + */ + private Long boomDetailId; + /** + * 零件名称 + */ + private String boomName; + /** + * 规格型号 + */ + private String boomSpec; + /** + * 系统单位 + */ + private String boomUnit; + /** + * 材质 + */ + private String composition; + /** + * 备注 + */ + private String description; + /** + * 需求数量 + */ + private BigDecimal boomAmount; + /** + * 需求到货日期 + */ + private LocalDateTime requireTime; + /** + * 订单子项目id + */ + private Long projectPlanSubId; + /** + * 子项目名称,唯一 + */ + private String name; + /** + * 子项目简码 + */ + private String nameSim; + /** + * 子项目编码 + */ + private String projectSubCode; + + /** + * 物料id + */ + private Long materialId; + /** + * 物料需求计划主表id + */ + private Long projectMaterialPlanId; + /** + * 物料需求计划子表id + */ + private Long projectMaterialPlanDetailId; + + /** + * 子项目编码 + */ + @TableField(exist = false) + private String materialCode; + +} \ 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 144c6077..d4e987dd 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 4a68744d..231311e4 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 3d1f9613..744416ee 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 @@ -46,6 +46,8 @@ public class PurchaseOrderMakeDetailDO extends BaseDO { * 零件名称 */ private String boomName; + @TableField(exist = false) + private String boomCode; /** * 规格型号 */ @@ -90,6 +92,8 @@ public class PurchaseOrderMakeDetailDO extends BaseDO { * 供应商id */ private Long supplierId; + @TableField(exist = false) + private String supplierName; /** * 物料需求计划id */ @@ -121,7 +125,8 @@ public class PurchaseOrderMakeDetailDO extends BaseDO { /** * 订单状态 未生成/已生成 1/2 */ - private Boolean orderStatus; + @TableField( "order_status") + private Integer orderStatus; /** * 子项目编码 */ @@ -129,7 +134,7 @@ public class PurchaseOrderMakeDetailDO extends BaseDO { /** * 收货状态 未收货/收货中/收货完成 1/2/3 */ - private Boolean receivingStatus; + private Integer receivingStatus; /** * 采购单号 */ @@ -146,5 +151,9 @@ public class PurchaseOrderMakeDetailDO extends BaseDO { * 责任人id */ private Long duEmpId; + /** + * 物料id + */ + private Long materialId; -} \ 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/purchaseorderno/PurchaseOrderNoDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/purchaseorderno/PurchaseOrderNoDO.java index 142c59ee..23db3a2b 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/purchaseorderno/PurchaseOrderNoDO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/purchaseorderno/PurchaseOrderNoDO.java @@ -6,6 +6,7 @@ import lombok.*; import java.time.*; import java.math.BigDecimal; import java.time.LocalDateTime; +import java.util.Date; import java.util.List; import com.baomidou.mybatisplus.annotation.*; @@ -141,6 +142,8 @@ public class PurchaseOrderNoDO extends BaseDO { @TableField(exist = false) private String contactMobile; @TableField(exist = false) + private Integer receivingStatus1; + @TableField(exist = false) private List PurchaseOrderNoDetailList; /** * 是否打印 @@ -153,5 +156,5 @@ public class PurchaseOrderNoDO extends BaseDO { /** * 订单日期 */ - private LocalDate ordDate; + private Date ordDate; } \ 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 73c0c6e9..a6a3dcd8 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 */ @@ -163,6 +165,10 @@ public class PurchaseOrderNoDetailDO extends BaseDO { * 责任人id */ private Long duEmpId; + /** + * 工序id + */ + private Long procedureId; @TableField(exist = false) private Long matId; @TableField(exist = false) @@ -188,4 +194,6 @@ public class PurchaseOrderNoDetailDO extends BaseDO { private BigDecimal purchaseRemAmounts; @TableField(exist = false) private String compositionName; -} \ No newline at end of file + @TableField(exist = false) + private String procedureName; +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/storagelogNow/StorageLogNowDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/storagelogNow/StorageLogNowDO.java index 8356eff1..32555cf3 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/storagelogNow/StorageLogNowDO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/storagelogNow/StorageLogNowDO.java @@ -60,6 +60,7 @@ public class StorageLogNowDO extends BaseDO { private BigDecimal storageOkQtys; @TableField(exist = false) private Long matUnitId; - + @TableField(exist = false) + private String invSafe; private String creator; } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/bdgzsomthing/bdgzsomthingMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/bdgzsomthing/bdgzsomthingMapper.java index 957f7d69..352bf53e 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/bdgzsomthing/bdgzsomthingMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/bdgzsomthing/bdgzsomthingMapper.java @@ -128,19 +128,20 @@ public interface bdgzsomthingMapper extends BaseMapperX { default PageResult getMessage(bdgzsomthingPageReqVO pageReqVO){ LambdaQueryWrapper query = new LambdaQueryWrapper<>(); - query.eq(!StringUtils.isEmpty(pageReqVO.getStatus()),bdgzsomthingDO::getDeleted, pageReqVO.getStatus()); + query.eq(bdgzsomthingDO::getDeleted, pageReqVO.getStatus()); query.eq(bdgzsomthingDO::getClick, pageReqVO.getClick()); + query.eq(bdgzsomthingDO::getAttr13,"1"); query.isNotNull(bdgzsomthingDO::getAttr6); Page page = new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()); Page result = this.selectPage(page, query); return new PageResult<>(result.getRecords(), result.getTotal()); - } default Long unreadMessage(String name){ LambdaQueryWrapper query = new LambdaQueryWrapper<>(); query.eq(bdgzsomthingDO::getClick, name); query.isNotNull(bdgzsomthingDO::getAttr6); + query.eq(bdgzsomthingDO::getAttr13,"1"); query.eq(bdgzsomthingDO::getDeleted,0); return this.selectCount(query); diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/material/MaterialMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/material/MaterialMapper.java index 465087c7..21d51328 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/material/MaterialMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/material/MaterialMapper.java @@ -61,6 +61,13 @@ public interface MaterialMapper extends BaseMapperX { .eq(true,MaterialDO::getVirtualPart, YesOrNoEnum.N.name()) .apply(!StringUtils.isEmpty(reqVO.getCodeAndName()), " (t.name like {0} or t.code like {0})", "%"+reqVO.getCodeAndName()+"%"); + if (!StringUtils.isEmpty(reqVO.getInventoryName())) { + query.and(qw -> + qw.like("t.name", reqVO.getInventoryName()) + .or() + .like("t.code", reqVO.getInventoryName()) + ); + } // if(!StringUtils.isEmpty(reqVO.getCodeAndName())){ // query.like(MaterialDO::getName, reqVO.getCodeAndName()).or().like(MaterialDO::getCode, reqVO.getCodeAndName()); // @@ -80,4 +87,9 @@ public interface MaterialMapper extends BaseMapperX { return selectMaps(new QueryWrapper().select("id", "name","short_name","code","material_type","spec","unit","brand").eq("virtual_part", YesOrNoEnum.Y.name()).lambda()); } + + default List> getbzjList(){ + return selectMaps(new QueryWrapper().select("id", "name","short_name","code","material_type","spec","unit","brand").eq("material_type", 5)); + + } } 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 ce6c28b4..bc419e10 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,17 +3,23 @@ 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; import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplandetail.MaterialPlanDetailDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.matreqdetail.MatReqDetailDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.plansub.PlanSubDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.procedure.ProcedureDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDO; 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.storagelogNow.StorageMaterialDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatchDetailDO; import com.chanko.yunxi.mes.module.heli.enums.BoomDetailTypeEnum; @@ -33,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) @@ -50,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) @@ -110,6 +163,30 @@ public interface MaterialPlanBoomMapper extends BaseMapperX return selectPage(pageReqVO, query); } + default PageResult getStandardPartsPages(MaterialPlanPageReqVO pageReqVO){ + MPJLambdaWrapper query = new MPJLambdaWrapper<>(); + query.selectAll(MaterialPlanBoomDO.class) + .select("p.project_name as projectName","p.project_id as projectId","p.name as projectSubName","mat.material_id as matId","m.code as materialName") + .select("d.spec as boomSpec","d.blueprint_no as blueprintNo","d.unit as boomUnit","DATE_FORMAT(t.boom_arrive_date, '%Y-%m-%d') AS boomArriveDates") + .leftJoin(MaterialPlanDO.class, "p", MaterialPlanDO::getId,MaterialPlanBoomDO::getProjectMaterialPlanId) + .leftJoin(ProjectOrderDO.class,"b",ProjectOrderDO::getId,MaterialPlanDO::getProjectId) + .leftJoin(ProcessBomDetailDO.class,"d",ProcessBomDetailDO::getId,MaterialPlanBoomDO::getBoomDetailId) +// .leftJoin(MatReqDetailDO.class,"mat",MatReqDetailDO::getProjectMaterialPlanDetailId,MaterialPlanBoomDO::getId) + .leftJoin("project_mat_req_detail mat on (t.id=mat.project_material_plan_detail_id and mat.deleted=0)") + .leftJoin(MaterialDO.class,"m",MaterialDO::getId,MatReqDetailDO::getMaterialId) + .disableSubLogicDel() + .groupBy(MaterialPlanBoomDO::getId) + .orderByDesc(MaterialPlanBoomDO::getCreateTime); + query + .like(!StringUtils.isEmpty(pageReqVO.getProjectName()),MaterialPlanDO::getProjectName, pageReqVO.getProjectName()) + .like(!StringUtils.isEmpty(pageReqVO.getProjectSubName()), MaterialPlanDO::getName, pageReqVO.getProjectSubName()) + .like(!StringUtils.isEmpty(pageReqVO.getMaterialName()), MaterialPlanBoomDO::getMatName, pageReqVO.getMaterialName()) + .like(!StringUtils.isEmpty(pageReqVO.getProjectCode()), ProjectOrderDO::getCode, pageReqVO.getProjectCode()) + .eq(!StringUtils.isEmpty(pageReqVO.getMatType()), MaterialPlanDO::getMatType, pageReqVO.getMatType()) + .eq(!StringUtils.isEmpty(pageReqVO.getStatus()), MaterialPlanBoomDO::getIsPurYard, pageReqVO.getStatus()); + return selectPage(pageReqVO, query); + } + // default PageResult selectPage(MaterialPlanBoomPageReqVO reqVO) { // return selectPage(reqVO, new LambdaQueryWrapperX() // .eqIfPresent(MaterialPlanBoomDO::getId, reqVO.getId()) @@ -124,4 +201,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 213d5309..f4808df4 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/matreq/MatReqMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/matreq/MatReqMapper.java new file mode 100644 index 00000000..2ff8c9a9 --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/matreq/MatReqMapper.java @@ -0,0 +1,44 @@ +package com.chanko.yunxi.mes.module.heli.dal.mysql.matreq; + +import java.util.*; + +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.matreqdetail.MatReqDetailController; +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; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.matreq.MatReqDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.matreqdetail.MatReqDetailDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderSubDO; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import org.apache.ibatis.annotations.Mapper; +import com.chanko.yunxi.mes.module.heli.controller.admin.matreq.vo.*; +import org.springframework.util.StringUtils; + +/** + * 领料单主 Mapper + * + * @author 管理员 + */ +@Mapper +public interface MatReqMapper extends BaseMapperX { + + default PageResult selectPage(MatReqPageReqVO reqVO) { + MPJLambdaWrapper query = new MPJLambdaWrapper<>(); + query.selectAll(MatReqDO.class) + .leftJoin(MatReqDetailDO.class, "d", MatReqDetailDO::getMatReqId, MatReqDO::getId) + .leftJoin(MaterialDO.class, "m", MaterialDO::getId, MatReqDetailDO::getMaterialId) + .disableSubLogicDel() + .groupBy(MatReqDO::getId) + .orderByDesc(MatReqDO::getCreateTime); + query.like(!StringUtils.isEmpty(reqVO.getMatReqNo()), MatReqDO::getMatReqNo, reqVO.getMatReqNo()) + .like(!StringUtils.isEmpty(reqVO.getProjectName()),MatReqDO::getProjectName, reqVO.getProjectName()) + .like(!StringUtils.isEmpty(reqVO.getProjectSubName()), MatReqDetailDO::getName,reqVO.getProjectSubName()) + .like(!StringUtils.isEmpty(reqVO.getMaterialName()), MaterialDO::getName, reqVO.getMaterialName()) + .eq(!StringUtils.isEmpty(reqVO.getGoodsType()), MatReqDO::getGoodsType, reqVO.getGoodsType()); + return selectPage(reqVO, query); + } + +} \ 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/matreqdetail/MatReqDetailMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/matreqdetail/MatReqDetailMapper.java new file mode 100644 index 00000000..371d68fb --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/matreqdetail/MatReqDetailMapper.java @@ -0,0 +1,39 @@ +package com.chanko.yunxi.mes.module.heli.dal.mysql.matreqdetail; + +import java.util.*; + +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.dal.dataobject.material.MaterialDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplanboom.MaterialPlanBoomDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.matreq.MatReqDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.matreqdetail.MatReqDetailDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderSubDO; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import org.apache.ibatis.annotations.Mapper; +import com.chanko.yunxi.mes.module.heli.controller.admin.matreqdetail.vo.*; +import org.springframework.util.StringUtils; + +/** + * 领料单明细 Mapper + * + * @author 管理员 + */ +@Mapper +public interface MatReqDetailMapper extends BaseMapperX { + + default PageResult selectPage(MatReqDetailPageReqVO reqVO) { + MPJLambdaWrapper query = new MPJLambdaWrapper<>(); + query.selectAll(MatReqDetailDO.class) + .select("m.code as materialCode") + .leftJoin(MaterialDO.class, "m", MaterialDO::getId, MatReqDetailDO::getMaterialId) + .disableSubLogicDel() + .groupBy(MatReqDetailDO::getId) + .orderByDesc(MatReqDetailDO::getCreateTime); + query.eq(!StringUtils.isEmpty(reqVO.getMatReqId()), MatReqDetailDO::getMatReqId, reqVO.getMatReqId()); + + return selectPage(reqVO, query); + } + +} \ 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 a82bdb01..4ad76e4f 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 4b6f610d..b10232f4 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,6 +118,7 @@ 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()) ; 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 151f6134..be2dcaa3 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 8a570b9a..25e61229 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,21 @@ 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.material.MaterialDO; +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,42 +35,47 @@ 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","m.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(MaterialDO.class,"m",MaterialDO::getId,PurchaseOrderMakeDetailDO::getMaterialId) + .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) { MPJLambdaWrapper query = new MPJLambdaWrapper<>(); query.selectAll(PurchaseOrderMakeDetailDO.class) + .select(PurchaseOrderMakeDO::getContractNo, + PurchaseOrderMakeDO::getGoodsType, + PurchaseOrderMakeDO::getBrief, + PurchaseOrderMakeDO::getProjectName, + PurchaseOrderMakeDO::getProjectNameSim, + PurchaseOrderMakeDO::getStatus) .select("c.nickname as duEmpName") .select("d.name as supplierName") .select("e.name as procedureName") @@ -75,6 +87,9 @@ public interface PurchaseOrderMakeDetailMapper extends BaseMapperX pageResult = selectJoinPage(pageReqVO, PartPurchaseOrderPageRespVO.class, query); return pageResult; } -} \ 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/purchaseorderno/PurchaseOrderNoMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/purchaseorderno/PurchaseOrderNoMapper.java index aadc0682..7424a7db 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/purchaseorderno/PurchaseOrderNoMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/purchaseorderno/PurchaseOrderNoMapper.java @@ -33,6 +33,12 @@ public interface PurchaseOrderNoMapper extends BaseMapperX { query.selectAll(PurchaseOrderNoDO.class) .select("s.name as supplierName","m.project_material_plan_no as materialPlanNo") + .select("CASE " + + " WHEN COUNT(d.id) = 0 THEN 1 " + // 无子记录 + " WHEN SUM(CASE d.receiving_status WHEN 3 THEN 0 ELSE 1 END) = 0 THEN 3 " + // 全部为3 + " WHEN SUM(CASE d.receiving_status WHEN 1 THEN 1 ELSE 0 END) = COUNT(d.id) THEN 1 " + // 全部为1 + " ELSE 2 " + // 其他情况 + "END AS receivingStatus1") .leftJoin(SupplierDO.class, "s", SupplierDO::getId, PurchaseOrderNoDO::getSupplierId) .leftJoin(PurchaseOrderNoDetailDO.class,"d", PurchaseOrderNoDetailDO::getPurchaseOrderId, PurchaseOrderNoDO::getId) .leftJoin(MaterialPlanDO.class, "m", MaterialPlanDO::getId, PurchaseOrderNoDO::getProjectMaterialPlanId) @@ -45,13 +51,13 @@ public interface PurchaseOrderNoMapper extends BaseMapperX { .like(!StringUtils.isEmpty(reqVO.getMaterialPlanNo()), "m.project_material_plan_no", reqVO.getMaterialPlanNo()) .apply(!StringUtils.isEmpty(reqVO.getCreateTime()), "DATE_FORMAT(t.create_time,'%Y-%m-%d') = {0}", reqVO.getCreateTime()) .eq(reqVO.getStatus() != null, PurchaseOrderNoDO::getStatus, reqVO.getStatus()) - .eq(reqVO.getReceivingStatus() != null, PurchaseOrderNoDO::getReceivingStatus, reqVO.getReceivingStatus()) +// .eq(reqVO.getReceivingStatus() != null, PurchaseOrderNoDO::getReceivingStatus, reqVO.getReceivingStatus()) .eq(reqVO.getPurchaseType() != null, PurchaseOrderNoDO::getPurchaseType, reqVO.getPurchaseType()) .eq(reqVO.getGoodsType() != null, PurchaseOrderNoDO::getGoodsType, reqVO.getGoodsType()) .like(!StringUtils.isEmpty(reqVO.getProjectName()), PurchaseOrderNoDetailDO::getProjectName, reqVO.getProjectName()) .like(!StringUtils.isEmpty(reqVO.getProjectSubName()), PurchaseOrderNoDetailDO::getName, reqVO.getProjectSubName()) .like(!StringUtils.isEmpty(reqVO.getUsername()), AdminUserDO::getNickname, reqVO.getUsername()) - + .having(reqVO.getReceivingStatus() != null,"receivingStatus1 = {0}", reqVO.getReceivingStatus()) .in(reqVO.getIds() != null && !reqVO.getIds().isEmpty(),PurchaseOrderNoDO::getId,reqVO.getIds()); return selectPage(reqVO, query); diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/purchaseordernodetail/PurchaseOrderNoDetailMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/purchaseordernodetail/PurchaseOrderNoDetailMapper.java index 07b484a1..84775f8e 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/purchaseordernodetail/PurchaseOrderNoDetailMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/purchaseordernodetail/PurchaseOrderNoDetailMapper.java @@ -5,10 +5,14 @@ import java.util.*; 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.ProcessBoomPageReqVO; import com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordermaterial.vo.PurchaseOrderMaterialPageReqVO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.composition.CompositionDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.material.MaterialDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplanboom.MaterialPlanBoomDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplandetail.MaterialPlanDetailDO; +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.ProjectOrderSubDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseorder.PurchaseOrderDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseorderboom.PurchaseOrderBoomDO; @@ -19,6 +23,7 @@ import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelogNow.StorageMate import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.ibatis.annotations.Mapper; import com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordernodetail.vo.*; +import org.springframework.beans.PropertyValues; /** * 采购订单明细 Mapper @@ -53,8 +58,11 @@ public interface PurchaseOrderNoDetailMapper extends BaseMapperX query = new MPJLambdaWrapper<>(); query.selectAll(PurchaseOrderNoDetailDO.class) - .select("com.name as compositionName","t.purchase_rem_amount as purchaseRemAmounts","mat.code as matCode") + .select("com.name as compositionName","t.purchase_rem_amount as purchaseRemAmounts","mat.code as matCode","pro.name as procedureName") .leftJoin(PurchaseOrderNoDO.class, "pb", PurchaseOrderNoDO::getId, PurchaseOrderBoomDO::getPurchaseOrderId) + .leftJoin(ProcessBomDetailDO.class,"bom", ProcessBomDetailDO::getId, PurchaseOrderNoDetailDO::getBoomDetailId) + .leftJoin(MaterialPlanBoomDO.class,"plan", MaterialPlanBoomDO::getId, PurchaseOrderNoDetailDO::getProjectMaterialPlanBoomId) + .leftJoin(ProcedureDO.class,"pro", ProcedureDO::getId, MaterialPlanBoomDO::getProcedureId) .leftJoin(CompositionDO.class, "com", CompositionDO::getId, PurchaseOrderNoDetailDO::getComposition) .leftJoin(ProjectOrderSubDO.class,"sub",ProjectOrderSubDO::getId, PurchaseOrderNoDetailDO::getProjectPlanSubId) .leftJoin(MaterialDO.class,"mat",MaterialDO::getId,PurchaseOrderNoDetailDO::getMaterialId) @@ -64,4 +72,12 @@ public interface PurchaseOrderNoDetailMapper extends BaseMapperX listStatusByOrderIds(List orderIds){ + MPJLambdaWrapper query = new MPJLambdaWrapper<>(); + query.selectAll(PurchaseOrderNoDetailDO.class); + query.in(PurchaseOrderNoDetailDO::getPurchaseOrderId, orderIds); + query.eq(PurchaseOrderNoDetailDO::getDeleted, 0); + return selectList(query); + } } \ 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/storagelog/StorageLogNowMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/storagelog/StorageLogNowMapper.java index f0eca003..78586c37 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/storagelog/StorageLogNowMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/storagelog/StorageLogNowMapper.java @@ -17,6 +17,7 @@ import org.apache.poi.hpsf.Decimal; import java.math.BigDecimal; import java.util.HashMap; import java.util.List; +import java.util.stream.Collectors; /** * 入/出库日志 Mapper @@ -124,4 +125,82 @@ public interface StorageLogNowMapper extends BaseMapperX { return selectPage(reqVO,query); } + + default PageResult getSupplementPage(StorageLogPageReqVO pageReqVO){ +// MPJLambdaWrapper query = new MPJLambdaWrapper<>() +//// 选择所有字段 + 安全库存字段 +// query.selectAll(StorageLogNowDO.class) +// .select("SUM(storage_ok_qty) as storageOkQtys","m.inv_safe as invSafe") +// .select(MaterialDO::getInvSafe) // 添加安全库存字段 +// .leftJoin(MaterialDO.class,"m", MaterialDO::getCode, StorageLogNowDO::getMatCode) +// .orderByDesc(StorageLogNowDO::getMatCode); +// +//// 原有条件 +// query.like(!StringUtils.isEmpty(pageReqVO.getMatType()), StorageLogNowDO::getMatType, pageReqVO.getMatType()) +// .like(!StringUtils.isEmpty(pageReqVO.getMatSpec()), StorageLogNowDO::getMatSpec, pageReqVO.getMatSpec()) +// .eq(pageReqVO.getWhId() != null, StorageLogNowDO::getWhId, pageReqVO.getWhId()) +// .eq(pageReqVO.getRgId() != null, StorageLogNowDO::getRgId, pageReqVO.getRgId()) +// .eq(pageReqVO.getPnId() != null, StorageLogNowDO::getPnId, pageReqVO.getPnId()) +// .ne(true, StorageLogNowDO::getStorageOkQty, 0) +// .like(!StringUtils.isEmpty(pageReqVO.getMatName()), StorageLogNowDO::getMatName, pageReqVO.getMatName()) +// .like(!StringUtils.isEmpty(pageReqVO.getMatCode()), StorageLogNowDO::getMatCode, pageReqVO.getMatCode()) +// .like(!StringUtils.isEmpty(pageReqVO.getLotNo()), StorageLogNowDO::getLotNo, pageReqVO.getLotNo()); +// +//// 添加分组和筛选条件 +// query.groupBy(StorageLogNowDO::getMatCode) +// .having("SUM(storageOkQtys) < COALESCE(invSafe, 0)"); +// +// +// return selectPage(pageReqVO, query); + // 步骤1:创建子查询获取符合条件的matCode列表 + MPJLambdaWrapper subQuery = new MPJLambdaWrapper<>(); + subQuery.select(StorageLogNowDO::getMatCode) + .leftJoin(MaterialDO.class, "m", MaterialDO::getCode, StorageLogNowDO::getMatCode) + .groupBy(StorageLogNowDO::getMatCode) + .having("SUM(storage_ok_qty) < COALESCE(MAX(m.inv_safe), 0)"); +// .like(!StringUtils.isEmpty(pageReqVO.getMatType()), StorageLogNowDO::getMatType, pageReqVO.getMatType()) +// .like(!StringUtils.isEmpty(pageReqVO.getMatSpec()), StorageLogNowDO::getMatSpec, pageReqVO.getMatSpec()) +// .eq(pageReqVO.getWhId() != null, StorageLogNowDO::getWhId, pageReqVO.getWhId()) +// .eq(pageReqVO.getRgId() != null, StorageLogNowDO::getRgId, pageReqVO.getRgId()) +// .eq(pageReqVO.getPnId() != null, StorageLogNowDO::getPnId, pageReqVO.getPnId()) +// .ne(true, StorageLogNowDO::getStorageOkQty, 0) +// .like(!StringUtils.isEmpty(pageReqVO.getMatName()), StorageLogNowDO::getMatName, pageReqVO.getMatName()) +// .like(!StringUtils.isEmpty(pageReqVO.getMatCode()), StorageLogNowDO::getMatCode, pageReqVO.getMatCode()) +// .like(!StringUtils.isEmpty(pageReqVO.getLotNo()), StorageLogNowDO::getLotNo, pageReqVO.getLotNo()); + +// 执行子查询获取符合条件的matCode + List qualifiedMatCodes = this.selectList(subQuery) + .stream() + .map(StorageLogNowDO::getMatCode) + .distinct() + .collect(Collectors.toList()); + +// 步骤2:主查询返回原始记录 + MPJLambdaWrapper query = new MPJLambdaWrapper<>(); + query.selectAll(StorageLogNowDO.class) + .select("ROUND(m.inv_safe, 2) as invSafe") // 添加安全库存字段 + .leftJoin(MaterialDO.class, "m", MaterialDO::getCode, StorageLogNowDO::getMatCode) + .orderByDesc(StorageLogNowDO::getMatCode); + +// 复制原有条件 + query.like(!StringUtils.isEmpty(pageReqVO.getMatType()), StorageLogNowDO::getMatType, pageReqVO.getMatType()) + .like(!StringUtils.isEmpty(pageReqVO.getMatSpec()), StorageLogNowDO::getMatSpec, pageReqVO.getMatSpec()) + .eq(pageReqVO.getWhId() != null, StorageLogNowDO::getWhId, pageReqVO.getWhId()) + .eq(pageReqVO.getRgId() != null, StorageLogNowDO::getRgId, pageReqVO.getRgId()) + .eq(pageReqVO.getPnId() != null, StorageLogNowDO::getPnId, pageReqVO.getPnId()) + .ne(true, StorageLogNowDO::getStorageOkQty, 0) + .like(!StringUtils.isEmpty(pageReqVO.getMatName()), StorageLogNowDO::getMatName, pageReqVO.getMatName()) + .like(!StringUtils.isEmpty(pageReqVO.getMatCode()), StorageLogNowDO::getMatCode, pageReqVO.getMatCode()) + .like(!StringUtils.isEmpty(pageReqVO.getLotNo()), StorageLogNowDO::getLotNo, pageReqVO.getLotNo()) + .isNotNull(MaterialDO::getInvSafe); +// 添加筛选条件:只返回符合条件的matCode组中的记录 + if (!qualifiedMatCodes.isEmpty()) { + query.in(StorageLogNowDO::getMatCode, qualifiedMatCodes); + } else { + // 如果没有符合条件的matCode,返回空结果 + query.apply("1 = 0"); + } + + return selectPage(pageReqVO, query); + } } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/material/MaterialService.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/material/MaterialService.java index fe2ddb8a..a6cf4d51 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/material/MaterialService.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/material/MaterialService.java @@ -58,4 +58,6 @@ public interface MaterialService { List> selectSimpleVirtualList(); void importExcel(List materialExcelVOList, Boolean updateSupport); + + List> getbzjList(); } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/material/MaterialServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/material/MaterialServiceImpl.java index 946506a1..74623538 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/material/MaterialServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/material/MaterialServiceImpl.java @@ -204,6 +204,10 @@ public class MaterialServiceImpl implements MaterialService { })); } + @Override + public List> getbzjList() { + return materialMapper.getbzjList(); } + private void checkData(List materialExcelVOList) { // 基础校验 Set>> validate = validator.validate(materialExcelVOList, MaterialExcelVO.class); diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplan/MaterialPlanService.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplan/MaterialPlanService.java index cec26441..465ec2be 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplan/MaterialPlanService.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplan/MaterialPlanService.java @@ -9,7 +9,9 @@ import com.chanko.yunxi.mes.module.heli.controller.admin.taskdispatch.TaskDispat import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplan.MaterialPlanDO; import com.chanko.yunxi.mes.framework.common.pojo.PageResult; import com.chanko.yunxi.mes.framework.common.pojo.PageParam; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplanboom.MaterialPlanBoomDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDetailDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelogNow.StorageLogNowDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatchDetailDO; /** @@ -70,4 +72,10 @@ public interface MaterialPlanService { PageResult getBeiKuPage(MaterialPlanPageReqVO pageReqVO); MaterialPlanDO getProjectMaterialPlanNo(String code); + + PageResult getStandardPartsPages(MaterialPlanPageReqVO pageReqVO); + + CommonResult operation(MaterialPlanPageReqVO pageReqVO); + + Boolean supplement(List list); } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplan/MaterialPlanServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplan/MaterialPlanServiceImpl.java index f5425239..be30ea3c 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplan/MaterialPlanServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplan/MaterialPlanServiceImpl.java @@ -8,11 +8,14 @@ import com.chanko.yunxi.mes.framework.common.util.object.ObjectUtils; import com.chanko.yunxi.mes.framework.security.core.util.SecurityFrameworkUtils; import com.chanko.yunxi.mes.module.heli.dal.dataobject.attentiontodo.AttentiontodoDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.bdgzsomthing.bdgzsomthingDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.material.MaterialDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplanboom.MaterialPlanBoomDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDetailDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.serialnumber.SerialNumberDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelogNow.StorageLogNowDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatchDetailDO; import com.chanko.yunxi.mes.module.heli.dal.mysql.attentiontodo.AttentiontodoMapper; +import com.chanko.yunxi.mes.module.heli.dal.mysql.material.MaterialMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.materialplanboom.MaterialPlanBoomMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.processbom.ProcessBomDetailMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.taskdispatch.TaskDispatchDetailMapper; @@ -77,6 +80,8 @@ public class MaterialPlanServiceImpl implements MaterialPlanService { private ProcessBomDetailMapper processBomDetailMapper; @Resource private TaskDispatchDetailMapper taskDispatchDetailMapper; + @Resource + private MaterialMapper materialMapper; @Override public Long createMaterialPlan(MaterialPlanSaveReqVO createReqVO) { // 插入 @@ -339,4 +344,67 @@ public class MaterialPlanServiceImpl implements MaterialPlanService { return materialPlanMapper.selectOne(queryWrapper); } + @Override + public PageResult getStandardPartsPages(MaterialPlanPageReqVO pageReqVO) { + return materialPlanBoomMapper.getStandardPartsPages(pageReqVO); + } + + @Override + public CommonResult operation(MaterialPlanPageReqVO pageReqVO) { + MaterialPlanBoomDO boomDO = materialPlanBoomMapper.selectById(pageReqVO.getId()); + if (ObjectUtil.isNotEmpty(boomDO)){ + switch (pageReqVO.getType()){ + case "del": + if (boomDO.getIsPurYard()!=5||boomDO.getIsPurYard()!=2) return CommonResult.error(400,"该物料信息状态非确认状态,请刷新界面!"); + boomDO.setIsPurYard(1); + break; + case "queren": + if (boomDO.getIsPurYard()!=1) return CommonResult.error(400,"该物料信息状态非库存状态,请刷新界面!"); + boomDO.setIsPurYard(2); + break; + case "bucong": + if (boomDO.getIsPurYard()!=1) return CommonResult.error(400,"该物料信息状态非库存状态,请刷新界面!"); + boomDO.setIsPurYard(4); + break; + case "caigou": + if (boomDO.getIsPurYard()!=1) return CommonResult.error(400,"该物料信息状态非库存状态,请刷新界面!"); + boomDO.setIsPurYard(5); + break; + } + materialPlanBoomMapper.updateById(boomDO); + } + return CommonResult.success(true); + } + + @Override + public Boolean supplement(List list) { + MaterialPlanDO planDO = new MaterialPlanDO(); + SerialNumberDO serialNumberDO = new SerialNumberDO(); + serialNumberDO = serialNumberService.getSerialNumber(MATERIAL_PLAN.name(), new SimpleDateFormat("yyyyMMdd").format(new Date())); + serialNumberDO.setSerialNumber(serialNumberDO.getSerialNumber()+1); + planDO.setProjectMaterialPlanNo(MATERIAL_PLAN.getCode(serialNumberDO.getSerialNumber().toString())); + planDO.setMatType(2); + planDO.setMatPlanDate(new Date()); + materialPlanMapper.insert(planDO); + // 回写序列记录 + serialNumberService.updateSerialNumber(serialNumberDO); + List materialPlanBoomDOList = new ArrayList<>(); + for (StorageLogNowDO nowDO : list) { + MaterialPlanBoomDO boomDO = new MaterialPlanBoomDO(); + boomDO.setProjectMaterialPlanId(planDO.getId()); + boomDO.setBoomAmount(nowDO.getStorageOkQtys()); + boomDO.setMplanStatus(0); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(MaterialDO::getCode, nowDO.getMatCode()); + MaterialDO materialDO = materialMapper.selectOne(queryWrapper); + if (ObjectUtil.isNotEmpty(materialDO)){ + boomDO.setMatName(materialDO.getName()); + boomDO.setMaterialId(materialDO.getId()); + } + materialPlanBoomDOList.add(boomDO); + } + materialPlanBoomMapper.insertOrUpdateBatch(materialPlanBoomDOList); + return true; + } + } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplanboom/MaterialPlanBoomService.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplanboom/MaterialPlanBoomService.java index 41604189..fa1fefe4 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplanboom/MaterialPlanBoomService.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplanboom/MaterialPlanBoomService.java @@ -3,6 +3,7 @@ package com.chanko.yunxi.mes.module.heli.service.materialplanboom; import java.util.*; import javax.validation.*; import com.chanko.yunxi.mes.module.heli.controller.admin.materialplanboom.vo.*; +import com.chanko.yunxi.mes.module.heli.controller.admin.processbom.vo.ProcessBomPageReqVO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplanboom.MaterialPlanBoomDO; import com.chanko.yunxi.mes.framework.common.pojo.PageResult; import com.chanko.yunxi.mes.framework.common.pojo.PageParam; @@ -60,4 +61,6 @@ public interface MaterialPlanBoomService { PageResult 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 01051057..7242542d 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/matreq/MatReqService.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/matreq/MatReqService.java new file mode 100644 index 00000000..c15fef9a --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/matreq/MatReqService.java @@ -0,0 +1,59 @@ +package com.chanko.yunxi.mes.module.heli.service.matreq; + +import java.util.*; +import javax.validation.*; + +import com.chanko.yunxi.mes.framework.common.pojo.CommonResult; +import com.chanko.yunxi.mes.module.heli.controller.admin.matreq.vo.*; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplanboom.MaterialPlanBoomDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.matreq.MatReqDO; +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.framework.common.pojo.PageParam; + +/** + * 领料单主 Service 接口 + * + * @author 管理员 + */ +public interface MatReqService { + + /** + * 创建领料单主 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createMatReq(@Valid MatReqSaveReqVO createReqVO); + + /** + * 更新领料单主 + * + * @param updateReqVO 更新信息 + */ + void updateMatReq(@Valid MatReqSaveReqVO updateReqVO); + + /** + * 删除领料单主 + * + * @param id 编号 + */ + void deleteMatReq(Long id); + + /** + * 获得领料单主 + * + * @param id 编号 + * @return 领料单主 + */ + MatReqDO getMatReq(Long id); + + /** + * 获得领料单主分页 + * + * @param pageReqVO 分页查询 + * @return 领料单主分页 + */ + PageResult getMatReqPage(MatReqPageReqVO pageReqVO); + + CommonResult generate(List list); +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/matreq/MatReqServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/matreq/MatReqServiceImpl.java new file mode 100644 index 00000000..37882b95 --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/matreq/MatReqServiceImpl.java @@ -0,0 +1,174 @@ +package com.chanko.yunxi.mes.module.heli.service.matreq; + +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.chanko.yunxi.mes.framework.common.pojo.CommonResult; +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; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.matreqdetail.MatReqDetailDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.serialnumber.SerialNumberDO; +import com.chanko.yunxi.mes.module.heli.dal.mysql.material.MaterialMapper; +import com.chanko.yunxi.mes.module.heli.dal.mysql.materialplan.MaterialPlanMapper; +import com.chanko.yunxi.mes.module.heli.dal.mysql.materialplanboom.MaterialPlanBoomMapper; +import com.chanko.yunxi.mes.module.heli.dal.mysql.matreqdetail.MatReqDetailMapper; +import com.chanko.yunxi.mes.module.heli.service.serialnumber.SerialNumberService; +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.util.*; +import java.util.stream.Collectors; + +import com.chanko.yunxi.mes.module.heli.controller.admin.matreq.vo.*; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.matreq.MatReqDO; +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.matreq.MatReqMapper; + +import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.chanko.yunxi.mes.module.heli.enums.CodeEnum.MAT_REQ; +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 MatReqServiceImpl implements MatReqService { + + @Resource + private MatReqMapper matReqMapper; + @Resource + private MaterialPlanBoomMapper materialPlanBoomMapper; + @Resource + private MaterialPlanMapper materialPlanMapper; + @Resource + private MatReqDetailMapper matReqDetailMapper; + @Resource + private SerialNumberService serialNumberService; + @Resource + private MaterialMapper materialMapper; + + @Override + public Long createMatReq(MatReqSaveReqVO createReqVO) { + // 插入 + MatReqDO matReq = BeanUtils.toBean(createReqVO, MatReqDO.class); + matReqMapper.insert(matReq); + // 返回 + return matReq.getId(); + } + + @Override + public void updateMatReq(MatReqSaveReqVO updateReqVO) { + // 校验存在 + validateMatReqExists(updateReqVO.getId()); + // 更新 + MatReqDO updateObj = BeanUtils.toBean(updateReqVO, MatReqDO.class); + matReqMapper.updateById(updateObj); + } + + @Override + public void deleteMatReq(Long id) { + // 校验存在 + validateMatReqExists(id); + MatReqDO matReqDO = matReqMapper.selectById(id); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(MatReqDetailDO::getMatReqId,id); + List matReqDetailDOS = matReqDetailMapper.selectList(wrapper); + List detailIds = matReqDetailDOS.stream() + .map(MatReqDetailDO::getProjectMaterialPlanDetailId) + .collect(Collectors.toList()); + LambdaUpdateWrapper wrapper1 = new LambdaUpdateWrapper<>(); + wrapper1.in(MaterialPlanBoomDO::getId,detailIds); + wrapper1.set(MaterialPlanBoomDO::getIsPurYard,1); + materialPlanBoomMapper.update(wrapper1); + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(MatReqDetailDO::getMatReqId,id); + matReqDetailMapper.delete(updateWrapper); + // 删除 + matReqMapper.deleteById(id); + } + + private void validateMatReqExists(Long id) { + if (matReqMapper.selectById(id) == null) { + throw exception(MAT_REQ_NOT_EXISTS); + } + } + + @Override + public MatReqDO getMatReq(Long id) { + return matReqMapper.selectById(id); + } + + @Override + public PageResult getMatReqPage(MatReqPageReqVO pageReqVO) { + return matReqMapper.selectPage(pageReqVO); + } + + @Override + public CommonResult generate(List list) { + List ids = list.stream() + .map(MaterialPlanBoomDO::getId) + .collect(Collectors.toList()); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.in(MaterialPlanBoomDO::getId,ids); + queryWrapper.ne(MaterialPlanBoomDO::getIsPurYard,1); + List materialPlanBoomDOS = materialPlanBoomMapper.selectList(queryWrapper); + if (ObjectUtil.isNotEmpty(materialPlanBoomDOS)) return CommonResult.error(400,"该物料信息状态非库存状态,请刷新界面!"); + MatReqDO matReqDO = new MatReqDO(); + SerialNumberDO serialNumberDO = new SerialNumberDO(); + serialNumberDO = serialNumberService.getSerialNumber(MAT_REQ.name(), new SimpleDateFormat("yyyyMMdd").format(new Date())); + serialNumberDO.setSerialNumber(serialNumberDO.getSerialNumber()+1); + // 回写序列记录 + serialNumberService.updateSerialNumber(serialNumberDO); + matReqDO.setMatReqNo(MAT_REQ.getCode(serialNumberDO.getSerialNumber().toString())); + matReqDO.setGoodsType(1); + matReqDO.setStatus(0); + MaterialPlanDO planDO = materialPlanMapper.selectById(list.get(0).getProjectMaterialPlanId()); + matReqDO.setProjectId(planDO.getProjectId()); + matReqDO.setProjectName(planDO.getProjectName()); + matReqDO.setCustomerId(planDO.getCustomerId()); + matReqDO.setReqDate(LocalDate.now()); + matReqMapper.insert(matReqDO); + List matReqDetailDOS = new ArrayList<>(); + for (MaterialPlanBoomDO materialPlanBoomDO : list) { + MaterialPlanBoomDO boomDO = materialPlanBoomMapper.selectById(materialPlanBoomDO.getId()); + if (ObjectUtil.isNotEmpty(boomDO)){ + MaterialPlanDO plan = materialPlanMapper.selectById(boomDO.getProjectMaterialPlanId()); + MatReqDetailDO matReqDetailDO = new MatReqDetailDO(); + matReqDetailDO.setMatReqId(matReqDO.getId()); + matReqDetailDO.setBoomDetailId(boomDO.getBoomDetailId()); + MaterialDO materialDO = materialMapper.selectById(materialPlanBoomDO.getMatId()); + if (ObjectUtil.isNotEmpty(materialDO)){ + matReqDetailDO.setBoomName(materialDO.getName()); + matReqDetailDO.setBoomSpec(materialDO.getSpec()); + matReqDetailDO.setBoomUnit(materialDO.getUnit()); + } + matReqDetailDO.setBoomAmount(boomDO.getBoomAmount()); + matReqDetailDO.setRequireTime(boomDO.getBoomArriveDate()); + matReqDetailDO.setProjectPlanSubId(plan.getProjectPlanSubId()); + matReqDetailDO.setName(plan.getName()); + matReqDetailDO.setNameSim(plan.getNameSim()); + matReqDetailDO.setMaterialId(materialPlanBoomDO.getMatId()); + matReqDetailDO.setProjectMaterialPlanDetailId(boomDO.getId()); + matReqDetailDO.setProjectMaterialPlanId(boomDO.getProjectMaterialPlanId()); + matReqDetailDOS.add(matReqDetailDO); + boomDO.setIsPurYard(3); + materialPlanBoomMapper.updateById(boomDO); + } + } + matReqDetailMapper.insertOrUpdateBatch(matReqDetailDOS); + return CommonResult.success(true); + } + +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/matreqdetail/MatReqDetailService.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/matreqdetail/MatReqDetailService.java new file mode 100644 index 00000000..8c83d951 --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/matreqdetail/MatReqDetailService.java @@ -0,0 +1,55 @@ +package com.chanko.yunxi.mes.module.heli.service.matreqdetail; + +import java.util.*; +import javax.validation.*; +import com.chanko.yunxi.mes.module.heli.controller.admin.matreqdetail.vo.*; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.matreqdetail.MatReqDetailDO; +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.framework.common.pojo.PageParam; + +/** + * 领料单明细 Service 接口 + * + * @author 管理员 + */ +public interface MatReqDetailService { + + /** + * 创建领料单明细 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createMatReqDetail(@Valid MatReqDetailSaveReqVO createReqVO); + + /** + * 更新领料单明细 + * + * @param updateReqVO 更新信息 + */ + void updateMatReqDetail(@Valid MatReqDetailSaveReqVO updateReqVO); + + /** + * 删除领料单明细 + * + * @param id 编号 + */ + void deleteMatReqDetail(Long id); + + /** + * 获得领料单明细 + * + * @param id 编号 + * @return 领料单明细 + */ + MatReqDetailDO getMatReqDetail(Long id); + + /** + * 获得领料单明细分页 + * + * @param pageReqVO 分页查询 + * @return 领料单明细分页 + */ + PageResult getMatReqDetailPage(MatReqDetailPageReqVO pageReqVO); + +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/matreqdetail/MatReqDetailServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/matreqdetail/MatReqDetailServiceImpl.java new file mode 100644 index 00000000..94a79dab --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/matreqdetail/MatReqDetailServiceImpl.java @@ -0,0 +1,74 @@ +package com.chanko.yunxi.mes.module.heli.service.matreqdetail; + +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.matreqdetail.vo.*; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.matreqdetail.MatReqDetailDO; +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.matreqdetail.MatReqDetailMapper; + +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 MatReqDetailServiceImpl implements MatReqDetailService { + + @Resource + private MatReqDetailMapper matReqDetailMapper; + + @Override + public Long createMatReqDetail(MatReqDetailSaveReqVO createReqVO) { + // 插入 + MatReqDetailDO matReqDetail = BeanUtils.toBean(createReqVO, MatReqDetailDO.class); + matReqDetailMapper.insert(matReqDetail); + // 返回 + return matReqDetail.getId(); + } + + @Override + public void updateMatReqDetail(MatReqDetailSaveReqVO updateReqVO) { + // 校验存在 + validateMatReqDetailExists(updateReqVO.getId()); + // 更新 + MatReqDetailDO updateObj = BeanUtils.toBean(updateReqVO, MatReqDetailDO.class); + matReqDetailMapper.updateById(updateObj); + } + + @Override + public void deleteMatReqDetail(Long id) { + // 校验存在 + validateMatReqDetailExists(id); + // 删除 + matReqDetailMapper.deleteById(id); + } + + private void validateMatReqDetailExists(Long id) { + if (matReqDetailMapper.selectById(id) == null) { + throw exception(MAT_REQ_DETAIL_NOT_EXISTS); + } + } + + @Override + public MatReqDetailDO getMatReqDetail(Long id) { + return matReqDetailMapper.selectById(id); + } + + @Override + public PageResult getMatReqDetailPage(MatReqDetailPageReqVO pageReqVO) { + return matReqDetailMapper.selectPage(pageReqVO); + } + +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/partpurchaseorder/PartPurchaseOrderService.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/partpurchaseorder/PartPurchaseOrderService.java index 33c97b3b..47ee9d93 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/partpurchaseorder/PartPurchaseOrderService.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/partpurchaseorder/PartPurchaseOrderService.java @@ -4,6 +4,7 @@ import com.chanko.yunxi.mes.framework.common.pojo.PageResult; 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.controller.admin.purchaseordermake.vo.PurchaseOrderMakePageReqVO; +import com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordermake.vo.PurchaseOrderMakeSaveReqVO; import com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordermakedetail.vo.PurchaseOrderMakeDetailRespVO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordermake.PurchaseOrderMakeDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordermakedetail.PurchaseOrderMakeDetailDO; @@ -31,4 +32,28 @@ public interface PartPurchaseOrderService { * @return 零件采购订单生成信息提交 */ boolean submit(List list); + + /** + * 获得零件采购单审批分页 + * + * @param pageReqVO 分页查询 + * @return 零件采购单审批分页 + */ + PageResult getPartPurchaseOrderCheckPage(PartPurchaseOrderPageReqVO pageReqVO); + + /** + * 更新采购单审批状态为通过 + * + * @param id + * @return 更新采购单审批状态 + */ + boolean updatePartCheckStatus(Long id); + + /** + * 更新采购单审批状态为驳回 + * + * @param updateReqVO + * @return 更新采购单审批状态 + */ + boolean updatePartCheckStatusNo(PurchaseOrderMakeSaveReqVO updateReqVO); } 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 b3d0dda4..a4e19985 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 @@ -1,14 +1,20 @@ package com.chanko.yunxi.mes.module.heli.service.partpurchaseorder; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.chanko.yunxi.mes.framework.common.pojo.PageResult; import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; +import com.chanko.yunxi.mes.framework.mybatis.core.query.QueryWrapperX; 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.controller.admin.purchaseordermake.vo.PurchaseOrderMakeSaveReqVO; import com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordermakedetail.vo.PurchaseOrderMakeDetailRespVO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplanboom.MaterialPlanBoomDO; +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.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.materialplanboom.MaterialPlanBoomMapper; 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.dal.mysql.purchaseorderno.PurchaseOrderNoMapper; @@ -39,6 +45,8 @@ public class PartPurchaseOrderServiceImpl implements PartPurchaseOrderService{ private PurchaseOrderNoDetailMapper purchaseOrderNoDetailMapper; @Resource private SerialNumberService serialNumberService; + @Resource + private MaterialPlanBoomMapper materialPlanBoomMapper; @Override public PageResult getPartPurchaseOrderPage(PartPurchaseOrderPageReqVO pageReqVO) { @@ -62,7 +70,7 @@ public class PartPurchaseOrderServiceImpl implements PartPurchaseOrderService{ purchaseOrderNoDO.setPurchaseType(1); purchaseOrderNoDO.setGoodsType(2); purchaseOrderNoDO.setSupplierId(detailDO.getSupplierId()); - purchaseOrderNoDO.setOrdDate(LocalDate.now()); + purchaseOrderNoDO.setOrdDate(new Date()); purchaseOrderNoMapper.insert(purchaseOrderNoDO); long purchaseOrderId = purchaseOrderNoDO.getId(); @@ -74,6 +82,8 @@ public class PartPurchaseOrderServiceImpl implements PartPurchaseOrderService{ // purchaseOrderNoDetailDO.setBoomSpec(detailDO.getBoomSpec()); PurchaseOrderNoDetailDO purchaseOrderNoDetailDO = BeanUtils.toBean(detailDO, PurchaseOrderNoDetailDO.class); purchaseOrderNoDetailDO.setId(null); + purchaseOrderNoDetailDO.setCreateTime(null); + purchaseOrderNoDetailDO.setUpdateTime(null); purchaseOrderNoDetailDO.setPurchaseOrderId(purchaseOrderId); purchaseOrderNoDetailDO.setPurchaseRemAmount(detailDO.getPurchaseAmount()); purchaseOrderNoDetailMapper.insert(purchaseOrderNoDetailDO); @@ -81,7 +91,7 @@ public class PartPurchaseOrderServiceImpl implements PartPurchaseOrderService{ PurchaseOrderMakeDetailDO purchaseOrderMakeDetailDO = new PurchaseOrderMakeDetailDO(); purchaseOrderMakeDetailDO.setId(detailDO.getId()); - purchaseOrderMakeDetailDO.setOrderStatus(true); + purchaseOrderMakeDetailDO.setOrderStatus(2); purchaseOrderMakeDetailDO.setPurchaseOrderNoId(purchaseOrderId); purchaseOrderMakeDetailDO.setPurchaseOrderNoDetailId(purchaseOrderDetailId); purchaseOrderMakeDetailMapper.updateById(purchaseOrderMakeDetailDO); @@ -90,4 +100,54 @@ public class PartPurchaseOrderServiceImpl implements PartPurchaseOrderService{ return true; } + + @Override + public PageResult getPartPurchaseOrderCheckPage(PartPurchaseOrderPageReqVO pageReqVO) { + return null; + } + + @Override + public boolean updatePartCheckStatus(Long id) { + PurchaseOrderMakeDO purchaseOrderMakeDO = new PurchaseOrderMakeDO(); + purchaseOrderMakeDO.setId(id); + purchaseOrderMakeDO.setStatus(2); + purchaseOrderMakeMapper.updateById(purchaseOrderMakeDO); + + List materialPlanBoomDOs= materialPlanBoomMapper.selectList("project_purchase_order_make_id", id); + materialPlanBoomDOs.forEach(materialPlanBoomDO -> { + MaterialPlanBoomDO materialPlanBoom = new MaterialPlanBoomDO(); + materialPlanBoom.setId(materialPlanBoomDO.getId()); + materialPlanBoom.setMplanStatus(2); + materialPlanBoomMapper.updateById(materialPlanBoom); + }); + return true; + } + + @Override + public boolean updatePartCheckStatusNo(PurchaseOrderMakeSaveReqVO updateReqVO) { + PurchaseOrderMakeDO purchaseOrderMakeDO = new PurchaseOrderMakeDO(); + purchaseOrderMakeDO.setId(updateReqVO.getId()); + purchaseOrderMakeDO.setStatus(3); + purchaseOrderMakeMapper.updateById(purchaseOrderMakeDO); + purchaseOrderMakeMapper.deleteById(purchaseOrderMakeDO); + + List list= purchaseOrderMakeDetailMapper.selectList("purchase_order_id", updateReqVO.getId()); + list.forEach(detailDO -> { + purchaseOrderNoDetailMapper.deleteById(detailDO.getId()); + }); + + List materialPlanBoomDOs= materialPlanBoomMapper.selectList("project_purchase_order_make_id", updateReqVO.getId()); + materialPlanBoomDOs.forEach(materialPlanBoom -> { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("id", materialPlanBoom.getId()) + .set("mplan_status", 3) + .set("project_purchase_order_make_id", null) + .set("purchase_no", null) + .set("project_purchase_order_make_detail_id", null) + .set("rej_remark", updateReqVO.getReason()); + materialPlanBoomMapper.update(updateWrapper); + }); + + return true; + } } 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 2b01588c..4d3b7505 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 71f5c4c9..27ddf4ef 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 @@ -195,11 +195,12 @@ public class ProcessBomServiceImpl implements ProcessBomService { materialNameList.forEach((materialName, listTemp2) -> { if (listTemp2.size() > 1) { throw new RuntimeException("非标准件物料名称:" + materialName + "重复!"); - }else{ - if(listTemp2.get(0).getSpec() == null){ - throw new RuntimeException("非标准件:" + materialName + "规格为空!"); - } } +// else{ +// if(listTemp2.get(0).getSpec() == null){ +// throw new RuntimeException("非标准件:" + materialName + "规格为空!"); +// } +// } }); }); List processBomDetailDOList = new ArrayList<>(); @@ -243,10 +244,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,16 +293,28 @@ 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()); } - processBomDetailDO.setSpec(o.getSpec());//规格 - + if (o.getSpec() == null || o.getSpec().trim().equals("") ){ + if (!type.equals("1")){ + processBomDetailDO.setSpec("A");//规格 + } + }else { + processBomDetailDO.setSpec(o.getSpec()); + } processBomDetailDO.setUnit(o.getUnit());//单位 processBomDetailDO.setBlueprintNo(o.getBlueprintNo());//图号 try { @@ -743,7 +756,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/processdesign/ProcessDesignServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processdesign/ProcessDesignServiceImpl.java index 2444837e..8277f9d8 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processdesign/ProcessDesignServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processdesign/ProcessDesignServiceImpl.java @@ -394,6 +394,7 @@ public class ProcessDesignServiceImpl implements ProcessDesignService { BdgzsomthingDO.setAttr7(processDesignDO.getProjectName()); BdgzsomthingDO.setAttr8(processDesignDO.getProjectSubName()); BdgzsomthingDO.setAttr9(processDesignProgressDO.getRemark()); + BdgzsomthingDO.setAttr13("1"); bdgzsomthingMapper.insert(BdgzsomthingDO); } } 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 61b88a2b..b0cd4a70 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,175 @@ -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.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/java/com/chanko/yunxi/mes/module/heli/service/purchaseorderno/PurchaseOrderNoServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/purchaseorderno/PurchaseOrderNoServiceImpl.java index 01bf77ea..33b8e5f8 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/purchaseorderno/PurchaseOrderNoServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/purchaseorderno/PurchaseOrderNoServiceImpl.java @@ -42,6 +42,8 @@ import org.springframework.transaction.annotation.Transactional; import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.util.*; +import java.util.stream.Collectors; + import com.chanko.yunxi.mes.module.heli.controller.admin.purchaseorderno.vo.*; import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseorderno.PurchaseOrderNoDO; import com.chanko.yunxi.mes.framework.common.pojo.PageResult; @@ -245,6 +247,39 @@ public class PurchaseOrderNoServiceImpl implements PurchaseOrderNoService { @Override public PageResult getPurchaseOrderNoPage(PurchaseOrderNoPageReqVO pageReqVO) { +// PageResult orderNoDOPageResult = +// // 获取分页结果中的主订单列表 +// List orderList = orderNoDOPageResult.getList(); +// +//// 提取所有主订单ID +// List orderIds = orderList.stream() +// .map(PurchaseOrderNoDO::getId) +// .collect(Collectors.toList()); +// +//// 批量查询子表收货状态(orderId -> 状态列表) +// Map> statusMap = orderIds.isEmpty() +// ? Collections.emptyMap() +// : purchaseOrderNoDetailMapper.listStatusByOrderIds(orderIds).stream() +// .collect(Collectors.groupingBy( +// PurchaseOrderNoDetailDO::getPurchaseOrderId, +// Collectors.mapping(PurchaseOrderNoDetailDO::getReceivingStatus, Collectors.toList()) +// )); +// +//// 遍历主订单并设置收货状态 +// orderList.forEach(order -> { +// List subStatuses = statusMap.getOrDefault(order.getId(), Collections.emptyList()); +// +// if (subStatuses.isEmpty()) { +// order.setReceivingStatus(1); // 无子记录视为未收货 +// } else if (subStatuses.stream().allMatch(status -> status == 3)) { +// order.setReceivingStatus(3); // 全部为3:收货完成 +// } else if (subStatuses.stream().allMatch(status -> status == 1)) { +// order.setReceivingStatus(1); // 全部为1:未收货 +// } else { +// order.setReceivingStatus(2); // 其他情况:收货中 +// } +// }); +// orderNoDOPageResult.setList(orderList); return purchaseOrderNoMapper.selectPage(pageReqVO); } @@ -280,8 +315,12 @@ public class PurchaseOrderNoServiceImpl implements PurchaseOrderNoService { @Override public CommonResult deleteForm(Long id) { - PurchaseOrderNoDO purchaseOrderNoDO = purchaseOrderNoMapper.selectById(id); - if (purchaseOrderNoDO.getReceivingStatus()!=1) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(PurchaseOrderNoDetailDO::getPurchaseOrderId, id); + queryWrapper.eq(PurchaseOrderNoDetailDO::getDeleted,0); + queryWrapper.ne(PurchaseOrderNoDetailDO::getReceivingStatus, 1); + List noDetailDOS = purchaseOrderNoDetailMapper.selectList(queryWrapper); + if (ObjectUtil.isNotEmpty(noDetailDOS)) { return CommonResult.error(400,"该订单已收货,请确认!"); } LambdaQueryWrapper queryWrapper1 = new LambdaQueryWrapper<>(); diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/purchaseordernodetail/PurchaseOrderNoDetailServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/purchaseordernodetail/PurchaseOrderNoDetailServiceImpl.java index f67dbdfc..255e4b14 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/purchaseordernodetail/PurchaseOrderNoDetailServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/purchaseordernodetail/PurchaseOrderNoDetailServiceImpl.java @@ -1,6 +1,7 @@ package com.chanko.yunxi.mes.module.heli.service.purchaseordernodetail; import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.chanko.yunxi.mes.framework.common.exception.ErrorCode; import com.chanko.yunxi.mes.framework.common.pojo.CommonResult; import com.chanko.yunxi.mes.module.heli.dal.dataobject.material.MaterialDO; @@ -110,7 +111,7 @@ public class PurchaseOrderNoDetailServiceImpl implements PurchaseOrderNoDetailSe PurchaseOrderNoDetailDO byId = purchaseOrderNoDetailMapper.selectById(purchaseOrderNoDetailDO.getId()); if (ObjectUtil.isNotEmpty(byId)){ if (BigDecimal.ZERO.compareTo(byId.getPurchaseRemAmount())>=0) throw exception(new ErrorCode(1_006_9999,"该订单零件名称"+byId.getBoomName()+"剩余数量等于0,请确认!")); - if (byId.getReceivingStatus()!=1) throw exception(new ErrorCode(1_006_9999,"该订单零件名称"+byId.getBoomName()+"已收货,请确认!")); + if (byId.getReceivingStatus()==3) throw exception(new ErrorCode(1_006_9999,"该订单零件名称"+byId.getBoomName()+"已收货,请确认!")); if (byId.getPurchaseRemAmount().compareTo(purchaseOrderNoDetailDO.getPurchaseRemAmounts())<0) { throw exception(new ErrorCode(1_006_9999,"该订单零件名称"+byId.getBoomName()+"入库数量"+purchaseOrderNoDetailDO.getPurchaseRemAmounts()+"大于剩余数量"+byId.getPurchaseRemAmount()+"请确认!")); } @@ -120,6 +121,7 @@ public class PurchaseOrderNoDetailServiceImpl implements PurchaseOrderNoDetailSe } @Override + @Transactional public CommonResult receiveGoods(List list) { List materialDOList=new ArrayList(); for (PurchaseOrderNoDetailDO detailDO : list) { @@ -143,22 +145,34 @@ public class PurchaseOrderNoDetailServiceImpl implements PurchaseOrderNoDetailSe materialDO.setName(bomDetailDO.getMaterialName()); ProcessBomDO processBomDO = pocessBomMapper.selectById(bomDetailDO.getBomId()); if (ObjectUtil.isNotEmpty(processBomDO)){ - bomCode=processBomDO.getCode(); + if (ObjectUtil.isNotEmpty(processBomDO.getCode())){ + bomCode=processBomDO.getCode(); + } } if (ObjectUtil.isNotEmpty(bomDetailDO.getBlueprintNo())){ - blueprintNo=bomDetailDO.getBlueprintNo(); + if (ObjectUtil.isNotEmpty(processBomDO.getBlueprintNo())){ + blueprintNo=bomDetailDO.getBlueprintNo(); + } } MaterialPlanBoomDO boomDO = materialPlanBoomMapper.selectById(detailDO.getProjectMaterialPlanBoomId()); if (ObjectUtil.isNotEmpty(boomDO)){ ProcedureDO procedure = procedureService.getProcedure(boomDO.getProcedureId()); if (ObjectUtil.isNotEmpty(procedure)){ - ProcedureName=procedure.getName(); + if (ObjectUtil.isNotEmpty(procedure.getName())){ + ProcedureName=procedure.getName(); + } } } - materialDO.setCode(bomCode+blueprintNo+ProcedureName); + String code=bomCode+blueprintNo+ProcedureName; + materialDO.setCode(code); materialDO.setCompositionId(bomDetailDO.getCompositionId()); materialDO.setMaterialType("1"); - materialDOList.add(materialDO); + materialDO.setVirtualPart("Y"); + MaterialDO material = materialMapper.selectMaterial(code); + if (ObjectUtil.isEmpty(material)){ + materialDOList.add(materialDO); + + } } } } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagelog/StorageLogService.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagelog/StorageLogService.java index c70d3509..46f60d7e 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagelog/StorageLogService.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagelog/StorageLogService.java @@ -74,4 +74,6 @@ public interface StorageLogService { PageResult getStorageNowPricePage(StorageLogPageReqVO pageReqVO); void updatePrice(StorageLogSaveReqVO updateReqVO); + + PageResult getSupplementPage(StorageLogPageReqVO pageReqVO); } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagelog/StorageLogServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagelog/StorageLogServiceImpl.java index bf952523..ace7101c 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagelog/StorageLogServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagelog/StorageLogServiceImpl.java @@ -214,4 +214,8 @@ public class StorageLogServiceImpl implements StorageLogService { materialMapper.update(wrapper); } + @Override + public PageResult getSupplementPage(StorageLogPageReqVO pageReqVO) { + return storageLogNowMapper.getSupplementPage(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 754a42f5..0ae98c6b 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-module-heli/mes-module-heli-biz/src/main/resources/mapper/matreq/MatReqMapper.xml b/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/matreq/MatReqMapper.xml new file mode 100644 index 00000000..da792cff --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/matreq/MatReqMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/matreqdetail/MatReqDetailMapper.xml b/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/matreqdetail/MatReqDetailMapper.xml new file mode 100644 index 00000000..bb1d634f --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/matreqdetail/MatReqDetailMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ 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 0779608e..11768741 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/material/index.ts b/mes-ui/mes-ui-admin-vue3/src/api/heli/material/index.ts index e7bd9a88..f77fe5d2 100644 --- a/mes-ui/mes-ui-admin-vue3/src/api/heli/material/index.ts +++ b/mes-ui/mes-ui-admin-vue3/src/api/heli/material/index.ts @@ -67,3 +67,6 @@ export const deleteMaterial = async (id: number) => { export const exportMaterial = async (params) => { return await request.download({ url: `/heli/material/export-excel`, params }) } +export const getbzjList = async () => { + return await request.get({ url: `/heli/material/getbzjList` }) +} diff --git a/mes-ui/mes-ui-admin-vue3/src/api/heli/materialplan/index.ts b/mes-ui/mes-ui-admin-vue3/src/api/heli/materialplan/index.ts index 7a8c9f22..cc06ab1f 100644 --- a/mes-ui/mes-ui-admin-vue3/src/api/heli/materialplan/index.ts +++ b/mes-ui/mes-ui-admin-vue3/src/api/heli/materialplan/index.ts @@ -75,3 +75,18 @@ export const getBeiKuPage = async (params) => { export const getProjectMaterialPlanNo = async (code:string) => { return await request.get({ url: `/heli/material-plan/getProjectMaterialPlanNo?code=` + code }) } +// 查询标准件库存 +export const getStandardPartsPages = async (params) => { + return await request.get({ url: `/heli/material-plan/getStandardPartsPages`, params }) +} +export const operation = async (params) => { + return await request.get({ url: `/heli/material-plan/operation`, params }) +} +// 导出物料需求计划 Excel +export const exportStandardParts = async (params) => { + return await request.download({ url: `/heli/material-plan/exportStandardParts`, params }) +} + +export const supplement = async (data) => { + return await request.post({ url: `/heli/material-plan/supplement`, data }) +} 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 676d1d5f..ae500600 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/matreq/index.ts b/mes-ui/mes-ui-admin-vue3/src/api/heli/matreq/index.ts new file mode 100644 index 00000000..96c2cd71 --- /dev/null +++ b/mes-ui/mes-ui-admin-vue3/src/api/heli/matreq/index.ts @@ -0,0 +1,48 @@ +import request from '@/config/axios' + +export interface MatReqVO { + id: number + matReqNo: string + goodsType: boolean + status: boolean + description: string + projectId: number + projectPlanId: number + customerId: number + reqDate: localdate + projectName: string +} + +// 查询领料单主分页 +export const getMatReqPage = async (params) => { + return await request.get({ url: `/heli/mat-req/page`, params }) +} + +// 查询领料单主详情 +export const getMatReq = async (id: number) => { + return await request.get({ url: `/heli/mat-req/get?id=` + id }) +} + +// 新增领料单主 +export const createMatReq = async (data: MatReqVO) => { + return await request.post({ url: `/heli/mat-req/create`, data }) +} + +// 修改领料单主 +export const updateMatReq = async (data: MatReqVO) => { + return await request.put({ url: `/heli/mat-req/update`, data }) +} + +// 删除领料单主 +export const deleteMatReq = async (id: number) => { + return await request.delete({ url: `/heli/mat-req/delete?id=` + id }) +} + +// 导出领料单主 Excel +export const exportMatReq = async (params) => { + return await request.download({ url: `/heli/mat-req/export-excel`, params }) +} +// 新增领料单主 +export const generate = async (data) => { + return await request.post({ url: `/heli/mat-req/generate`, data }) +} diff --git a/mes-ui/mes-ui-admin-vue3/src/api/heli/matreqdetail/index.ts b/mes-ui/mes-ui-admin-vue3/src/api/heli/matreqdetail/index.ts new file mode 100644 index 00000000..eb3f1121 --- /dev/null +++ b/mes-ui/mes-ui-admin-vue3/src/api/heli/matreqdetail/index.ts @@ -0,0 +1,51 @@ +import request from '@/config/axios' + +export interface MatReqDetailVO { + id: number + matReqId: number + boomDetailId: number + boomName: string + boomSpec: string + boomUnit: string + composition: string + description: string + boomAmount: number + requireTime: Date + projectPlanSubId: number + name: string + nameSim: string + projectSubCode: string + materialId: number + projectMaterialPlanId: number + projectMaterialPlanDetailId: number +} + +// 查询领料单明细分页 +export const getMatReqDetailPage = async (params) => { + return await request.get({ url: `/heli/mat-req-detail/page`, params }) +} + +// 查询领料单明细详情 +export const getMatReqDetail = async (id: number) => { + return await request.get({ url: `/heli/mat-req-detail/get?id=` + id }) +} + +// 新增领料单明细 +export const createMatReqDetail = async (data: MatReqDetailVO) => { + return await request.post({ url: `/heli/mat-req-detail/create`, data }) +} + +// 修改领料单明细 +export const updateMatReqDetail = async (data: MatReqDetailVO) => { + return await request.put({ url: `/heli/mat-req-detail/update`, data }) +} + +// 删除领料单明细 +export const deleteMatReqDetail = async (id: number) => { + return await request.delete({ url: `/heli/mat-req-detail/delete?id=` + id }) +} + +// 导出领料单明细 Excel +export const exportMatReqDetail = async (params) => { + return await request.download({ url: `/heli/mat-req-detail/export-excel`, params }) +} diff --git a/mes-ui/mes-ui-admin-vue3/src/api/heli/partpurchaseorder/index.ts b/mes-ui/mes-ui-admin-vue3/src/api/heli/partpurchaseorder/index.ts index 59e740c0..66a2484e 100644 --- a/mes-ui/mes-ui-admin-vue3/src/api/heli/partpurchaseorder/index.ts +++ b/mes-ui/mes-ui-admin-vue3/src/api/heli/partpurchaseorder/index.ts @@ -16,7 +16,7 @@ export interface PartPurchaseOrderVO { description: string } -// 查询零件采购订单计划分页 +// 获取零件采购订单生成分页 export const getPartPage = async (params) => { return await request.get({ url: `/heli/purchase-order-make/getPartPurchaseOrderPage`, params }) } @@ -24,3 +24,24 @@ export const getPartPage = async (params) => { export const submitForm = async (data) => { return await request.post({ url: `/heli/purchase-order-no/submit`, data }) } + +// 获取零件采购单审批分页 +export const getPartCheckPage = async (params) => { + return await request.get({ url: `/heli/purchase-order-make/page`, params }) +} + +// 查询采购单主 +export const getPurchaseOrderMake = async (id: number) => { + return await request.get({ url: `/heli/purchase-order-make/get?id=` + id }) +} + +// 更新采购单主批准 +export const updatePurchaseOrderMake = async (id: number) => { + return await request.put({ url: `/heli/purchase-order-make/updatePartCheck?id=` + id }) +} + +// 更新采购单主驳回 +export const updatePurchaseOrderMakeNo = async (params) => { + return await request.put({ url: `/heli/purchase-order-make/updatePartCheckNo`, 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 41d6adcd..5c7aa65e 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 00000000..3ecf609c --- /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/api/heli/purchaseorderno/index.ts b/mes-ui/mes-ui-admin-vue3/src/api/heli/purchaseorderno/index.ts index 5174d0aa..ed85117c 100644 --- a/mes-ui/mes-ui-admin-vue3/src/api/heli/purchaseorderno/index.ts +++ b/mes-ui/mes-ui-admin-vue3/src/api/heli/purchaseorderno/index.ts @@ -3,11 +3,11 @@ import request from '@/config/axios' export interface PurchaseOrderNoVO { id: number purchaseNo: string - purchaseType: boolean - goodsType: boolean + purchaseType: number + goodsType: number estimatedPrice: number actualPrice: number - status: boolean + status: number submitUserId: number submitTime: Date auditor: number @@ -17,7 +17,7 @@ export interface PurchaseOrderNoVO { isPrint: string printDtime: Date ordDate: Date - receivingStatus: boolean + receivingStatus: number currencyType: number taxRatio: number } diff --git a/mes-ui/mes-ui-admin-vue3/src/api/heli/purchaseordernodetail/index.ts b/mes-ui/mes-ui-admin-vue3/src/api/heli/purchaseordernodetail/index.ts index 00464104..099daf10 100644 --- a/mes-ui/mes-ui-admin-vue3/src/api/heli/purchaseordernodetail/index.ts +++ b/mes-ui/mes-ui-admin-vue3/src/api/heli/purchaseordernodetail/index.ts @@ -27,7 +27,7 @@ export interface PurchaseOrderNoDetailVO { projectName: string projectNameSim: string materialId: number - receivingStatus: boolean + receivingStatus: number storageId: number storageMatId: number purchaseRemAmount: number diff --git a/mes-ui/mes-ui-admin-vue3/src/api/heli/storagelog/index.ts b/mes-ui/mes-ui-admin-vue3/src/api/heli/storagelog/index.ts index 732495b0..645665c1 100644 --- a/mes-ui/mes-ui-admin-vue3/src/api/heli/storagelog/index.ts +++ b/mes-ui/mes-ui-admin-vue3/src/api/heli/storagelog/index.ts @@ -85,3 +85,8 @@ export const deleteStorageLog = async (id: number) => { export const exportStorageLog = async (params) => { return await request.download({ url: `/heli/storage-log/export-excel`, params }) } +// 查询入/出库实时分页 +export const getSupplementPage = async (params) => { + return await request.get({ url: `/heli/storage-log/getSupplementPage`, params }) +} + 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 730cb730..b9038a90 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物料类型 @@ -284,5 +286,10 @@ export enum DICT_TYPE { HELI_MAT_TYPE = 'heli_mat_type',//物料需求计划类型 HELI_PROJECT_MATERIAL_PLAN_BOOM_STATUS='heli_project_material_plan_boom_status',//物料需求计划Boon状态 PART_PURCHASE_STATUS='part_purchase_status', - HELI_IS_PRINT='heli_is_print' + HELI_IS_PRINT='heli_is_print', + HELI_PART_PURCHASE_ORDER_TYPE='heli_part_purchase_order_type', + HELI_MAT_REQ_TYPE='heli_mat_req_type', + HELI_MAT_REQ_STATUS='heli_mat_req_status', + HELI_MATERIAL_STATUS='heli_material_status', + HELI_DOCUMENT_STATUS='heli_document_status' } 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 2fd8a084..299a6c13 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/part.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/part.vue index 90ee521b..d7f96931 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/part.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/part.vue @@ -118,9 +118,6 @@ - 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 00000000..1af676be --- /dev/null +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/purchasemake.vue @@ -0,0 +1,486 @@ + + + + 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 00000000..c628e3e8 --- /dev/null +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/standardbuy.vue @@ -0,0 +1,488 @@ + + + + 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 00000000..cb970027 --- /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/matreq/MatReqForm.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/matreq/MatReqForm.vue new file mode 100644 index 00000000..6d269cb9 --- /dev/null +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/matreq/MatReqForm.vue @@ -0,0 +1,139 @@ + + diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/matreq/detail.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/matreq/detail.vue new file mode 100644 index 00000000..b00c9f53 --- /dev/null +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/matreq/detail.vue @@ -0,0 +1,153 @@ + + diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/matreq/index.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/matreq/index.vue new file mode 100644 index 00000000..be6eb1e7 --- /dev/null +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/matreq/index.vue @@ -0,0 +1,214 @@ + + + diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/matreq/materialNewSelect.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/matreq/materialNewSelect.vue new file mode 100644 index 00000000..bea95585 --- /dev/null +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/matreq/materialNewSelect.vue @@ -0,0 +1,121 @@ + + + diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/matreq/standardParts.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/matreq/standardParts.vue new file mode 100644 index 00000000..c0cd0e2f --- /dev/null +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/matreq/standardParts.vue @@ -0,0 +1,311 @@ + + + diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/orderyf/index.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/orderyf/index.vue index e5fb49ed..05d84f1a 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/orderyf/index.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/orderyf/index.vue @@ -67,14 +67,14 @@ 搜索 重置 - - 新增 - + + + + + + + + - - - - - + + + + + + + 查询 @@ -42,7 +42,7 @@ ref="purchaseOrderTable" v-loading="loading" :data="list" :stripe="true" :show-o @@ -75,11 +75,11 @@ label="单据日期" align="center" prop="createTime" :formatter="dateFormatter" - - - + + + + + @@ -99,6 +99,7 @@ import { getIntDictOptions, DICT_TYPE } from '@/utils/dict' import { dateFormatter, formatDate } from '@/utils/formatTime' import download from '@/utils/download' import * as PurchaseOrderApi from '@/api/heli/purchaseorder' +import * as PurchaseOrderNoApi from '@/api/heli/purchaseorderno' import PurchaseOrderForm from './PurchaseOrderForm.vue' import { ElTable } from 'element-plus' @@ -120,15 +121,15 @@ const queryParams = reactive({ purchaseNo: undefined, supplierId: undefined, contractNo: undefined, - purchaseType: undefined, + purchaseType: 2, projectMaterialPlanId: undefined, - goodsType: undefined, + goodsType: 1, currencyType: undefined, taxRatio: undefined, estimatedPrice: undefined, actualPrice: undefined, - status: 3, - receivingStatus: 2, + status: undefined, + receivingStatus: undefined, submitUserId: undefined, submitTime: [], auditor: undefined, @@ -145,7 +146,8 @@ const getList = async () => { loading.value = true try { queryParams.ids = undefined - const data = await PurchaseOrderApi.getPurchaseOrderPage(queryParams) + // const data = await PurchaseOrderApi.getPurchaseOrderPage(queryParams) + const data = await PurchaseOrderNoApi.getPurchaseOrderNoPage(queryParams) list.value = data.list total.value = data.total } finally { diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/partpurchasecheck/detail.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/partpurchasecheck/detail.vue index 4370a744..d415167a 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/partpurchasecheck/detail.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/partpurchasecheck/detail.vue @@ -17,22 +17,12 @@ - - + + - - - - - - - - - - @@ -41,24 +31,26 @@ - - + + + + + - - - - - - + + + + + + + @@ -68,7 +60,8 @@ @@ -93,6 +86,9 @@ import { useUserStore } from '@/store/modules/user' import { useTagsViewStore } from '@/store/modules/tagsView' import MaterialSelect from '@/views/heli/hlvuestyle/materialSelect.vue' import booms from './boom.vue' +import * as PartPurchaseOrderApi from "@/api/heli/partpurchaseorder"; +import { ElMessageBox } from 'element-plus' +import { ref } from 'vue' const reload: any = inject('reload') const { t } = useI18n() // 国际化 @@ -105,7 +101,7 @@ const dialogVisible = ref(false) // 弹窗的是否展示 const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用 const formData = ref({ id: undefined, - projectMaterialPlanNo: undefined, + contractNo: undefined, projectId: undefined, projectPlanId: undefined, projectPlanNo: undefined, @@ -127,10 +123,42 @@ const loading = ref(true) // 列表的加载中 const total = ref(0) // 列表的总页数 const subBoomFormLoading = ref(false) const subBoomFormRef = ref() +const updateParams = reactive({ + id: query.id, + reason: undefined +}) +const approve = async () => { + await PartPurchaseOrderApi.updatePurchaseOrderMake(formData.value.id) + console.log("批准成功") +} +const handleReject = async () => { + try { + const { value, action } = await ElMessageBox.prompt('请输入驳回原因', '提示', { + confirmButtonText: '确定', + cancelButtonText: '取消', + inputPattern: /.+/, // 至少输入一个字符 + inputErrorMessage: '内容不能为空' + }) + if (action === 'confirm') { + reject(value) // 将输入内容传入 reject 方法 + } + } catch (err) { + // 用户点击取消或输入不合法时会进入这里 + console.log('操作取消或输入无效') + } +} +// 假设这是你要调用的 reject 方法 +const reject = async(reason) => { + console.log('驳回原因:', reason) + updateParams.reason = reason + // 这里可以执行提交驳回逻辑 + await PartPurchaseOrderApi.updatePurchaseOrderMakeNo(updateParams) + console.log("驳回成功") +} const closeForm = async () => { @@ -142,18 +170,18 @@ const userList = ref([]) // 用户列表 const queryParams = reactive({ pageNo: 1, pageSize: 10, - projectMaterialPlanId: query.id + purchaseOrderId: query.id }) // 页面数据加载初始化 onMounted(async () => { // 获取物料需求计划信息 - formData.value = await MaterialPlanApi.getMaterialPlan(query.id) + formData.value = await PartPurchaseOrderApi.getPurchaseOrderMake(query.id) getList(); }) const getList = async () => { loading.value = true try { - const data = await MaterialPlanBoomApi.getMaterialPlanBoomPages(queryParams) + const data = await PartPurchaseOrderApi.getPartPage(queryParams) formData.value.matBoomDOList = data.list total.value = data.total } finally { diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/partpurchasecheck/index.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/partpurchasecheck/index.vue index c04c4be1..c0cb59c3 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/partpurchasecheck/index.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/partpurchasecheck/index.vue @@ -6,8 +6,8 @@ - - + @@ -18,7 +18,17 @@ - + + + + + + + + + + + @@ -36,33 +46,46 @@ - + - - - - - + + + + + + + @@ -77,9 +100,11 @@ diff --git a/mes-ui/mini-app/src/services/constants.ts b/mes-ui/mini-app/src/services/constants.ts index 3e9d9fc7..63ce0a9d 100644 --- a/mes-ui/mini-app/src/services/constants.ts +++ b/mes-ui/mini-app/src/services/constants.ts @@ -9,5 +9,5 @@ // export const serviceDomain = 'https://nxhs.cjyx.cc' // 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'