From 3476f72d74b14270c8d67f821df55ef13a1d0b57 Mon Sep 17 00:00:00 2001 From: z Date: Tue, 24 Jun 2025 09:19:47 +0800 Subject: [PATCH] =?UTF-8?q?=E9=97=AE=E9=A2=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/heli/enums/ErrorCodeConstants.java | 2 + .../bdgzsomthing/bdgzsomthingController.java | 10 +- .../materialplan/MaterialPlanController.java | 16 + .../vo/MaterialPlanPageReqVO.java | 3 +- .../admin/matreq/MatReqController.java | 102 ++++++ .../admin/matreq/vo/MatReqPageReqVO.java | 55 ++++ .../admin/matreq/vo/MatReqRespVO.java | 62 ++++ .../admin/matreq/vo/MatReqSaveReqVO.java | 47 +++ .../matreqdetail/MatReqDetailController.java | 95 ++++++ .../vo/MatReqDetailPageReqVO.java | 72 +++++ .../matreqdetail/vo/MatReqDetailRespVO.java | 96 ++++++ .../vo/MatReqDetailSaveReqVO.java | 68 ++++ .../vo/PurchaseOrderNoPageReqVO.java | 2 +- .../vo/PurchaseOrderNoRespVO.java | 4 +- .../vo/PurchaseOrderNoDetailPageReqVO.java | 2 +- .../materialplanboom/MaterialPlanBoomDO.java | 9 + .../heli/dal/dataobject/matreq/MatReqDO.java | 69 ++++ .../matreqdetail/MatReqDetailDO.java | 104 ++++++ .../purchaseorderno/PurchaseOrderNoDO.java | 5 +- .../PurchaseOrderNoDetailDO.java | 2 + .../MaterialPlanBoomMapper.java | 26 ++ .../heli/dal/mysql/matreq/MatReqMapper.java | 44 +++ .../matreqdetail/MatReqDetailMapper.java | 39 +++ .../PurchaseOrderNoMapper.java | 10 +- .../PurchaseOrderNoDetailMapper.java | 18 +- .../materialplan/MaterialPlanService.java | 5 + .../materialplan/MaterialPlanServiceImpl.java | 32 ++ .../heli/service/matreq/MatReqService.java | 57 ++++ .../service/matreq/MatReqServiceImpl.java | 106 ++++++ .../matreqdetail/MatReqDetailService.java | 55 ++++ .../matreqdetail/MatReqDetailServiceImpl.java | 74 +++++ .../PartPurchaseOrderServiceImpl.java | 2 +- .../PurchaseOrderNoServiceImpl.java | 43 ++- .../PurchaseOrderNoDetailServiceImpl.java | 26 +- .../resources/mapper/matreq/MatReqMapper.xml | 12 + .../matreqdetail/MatReqDetailMapper.xml | 12 + .../src/api/heli/materialplan/index.ts | 7 + .../src/api/heli/matreq/index.ts | 48 +++ .../src/api/heli/matreqdetail/index.ts | 51 +++ .../src/api/heli/purchaseorderno/index.ts | 8 +- .../api/heli/purchaseordernodetail/index.ts | 2 +- mes-ui/mes-ui-admin-vue3/src/utils/dict.ts | 5 +- .../src/views/heli/materialplan/part.vue | 3 - .../src/views/heli/matreq/MatReqForm.vue | 139 ++++++++ .../src/views/heli/matreq/detail.vue | 153 +++++++++ .../src/views/heli/matreq/index.vue | 214 ++++++++++++ .../src/views/heli/matreq/standardParts.vue | 306 ++++++++++++++++++ .../src/views/heli/orderyf/index.vue | 16 +- .../outsourcestock/purchaseorderDialog.vue | 38 +-- .../src/views/heli/purchaseorderno/detail.vue | 8 +- .../src/views/heli/purchaseorderno/index.vue | 4 +- .../views/heli/purchaseorderno/management.vue | 4 +- .../heli/purchaseorderno/managementdetail.vue | 5 + 53 files changed, 2335 insertions(+), 62 deletions(-) create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/matreq/MatReqController.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/matreq/vo/MatReqPageReqVO.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/matreq/vo/MatReqRespVO.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/matreq/vo/MatReqSaveReqVO.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/matreqdetail/MatReqDetailController.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/matreqdetail/vo/MatReqDetailPageReqVO.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/matreqdetail/vo/MatReqDetailRespVO.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/matreqdetail/vo/MatReqDetailSaveReqVO.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/matreq/MatReqDO.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/matreqdetail/MatReqDetailDO.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/matreq/MatReqMapper.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/matreqdetail/MatReqDetailMapper.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/matreq/MatReqService.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/matreq/MatReqServiceImpl.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/matreqdetail/MatReqDetailService.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/matreqdetail/MatReqDetailServiceImpl.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/matreq/MatReqMapper.xml create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/matreqdetail/MatReqDetailMapper.xml create mode 100644 mes-ui/mes-ui-admin-vue3/src/api/heli/matreq/index.ts create mode 100644 mes-ui/mes-ui-admin-vue3/src/api/heli/matreqdetail/index.ts create mode 100644 mes-ui/mes-ui-admin-vue3/src/views/heli/matreq/MatReqForm.vue create mode 100644 mes-ui/mes-ui-admin-vue3/src/views/heli/matreq/detail.vue create mode 100644 mes-ui/mes-ui-admin-vue3/src/views/heli/matreq/index.vue create mode 100644 mes-ui/mes-ui-admin-vue3/src/views/heli/matreq/standardParts.vue 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 741b12f..e9f63f1 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 @@ -147,5 +147,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 9007375..2a08e1e 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,15 +159,15 @@ 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 = "小程序消息") 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 ada302f..a290fd7 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,5 +1,6 @@ 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.taskdispatch.TaskDispatchDetailDO; import org.springframework.web.bind.annotation.*; @@ -154,4 +155,19 @@ 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("/operation") + @Operation(summary = "获得标准件库存") + @PreAuthorize("@ss.hasPermission('heli:material-plan:query')") + public CommonResult operation(@Valid MaterialPlanPageReqVO pageReqVO) { + return materialPlanService.operation(pageReqVO); + } } 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 90585f9..476f67c 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/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 0000000..ba7704c --- /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 success(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 0000000..0c147ac --- /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 0000000..0db8fb4 --- /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 0000000..5b3df14 --- /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 0000000..2bf762d --- /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 0000000..0a9466d --- /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 0000000..66d3957 --- /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 0000000..c499e27 --- /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/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 a8f0eb1..9c44e4c 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 8b468e4..4578d08 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 897f9cf..ea8ad79 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/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 3b60ba5..96de91a 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 @@ -112,6 +112,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,8 +126,12 @@ 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 Long projectId; + @TableField(exist = false) private String matCode; @TableField(exist = false) private String matSpec; @@ -134,4 +142,5 @@ public class MaterialPlanBoomDO extends BaseDO { @TableField(exist = false) private BigDecimal matRest; + } \ 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 0000000..c9a1047 --- /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 0000000..73607fb --- /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/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 142c59e..23db3a2 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 73c0c6e..b9927aa 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 @@ -188,4 +188,6 @@ public class PurchaseOrderNoDetailDO extends BaseDO { private BigDecimal purchaseRemAmounts; @TableField(exist = false) private String compositionName; + @TableField(exist = false) + private String procedureName; } \ No newline at end of file diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/materialplanboom/MaterialPlanBoomMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/materialplanboom/MaterialPlanBoomMapper.java index ce6c28b..5712acd 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 @@ -6,14 +6,18 @@ import cn.hutool.core.util.ObjectUtil; 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.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; @@ -110,6 +114,28 @@ 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") + .select("d.spec as boomSpec","d.blueprint_no as blueprintNo","d.unit as boomUnit") + .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) + .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()) 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 0000000..2ff8c9a --- /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 0000000..371d68f --- /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/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 aadc068..7424a7d 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 07b484a..84775f8 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/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 cec2644..b543546 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,6 +9,7 @@ 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.taskdispatch.TaskDispatchDetailDO; @@ -70,4 +71,8 @@ public interface MaterialPlanService { PageResult getBeiKuPage(MaterialPlanPageReqVO pageReqVO); MaterialPlanDO getProjectMaterialPlanNo(String code); + + PageResult getStandardPartsPages(MaterialPlanPageReqVO pageReqVO); + + CommonResult operation(MaterialPlanPageReqVO pageReqVO); } 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 f542523..9893372 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 @@ -339,4 +339,36 @@ 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); + } + } 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 0000000..ef3fc96 --- /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,57 @@ +package com.chanko.yunxi.mes.module.heli.service.matreq; + +import java.util.*; +import javax.validation.*; +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); + + Boolean 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 0000000..e3a7743 --- /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,106 @@ +package com.chanko.yunxi.mes.module.heli.service.matreq; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +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.mysql.materialplanboom.MaterialPlanBoomMapper; +import com.chanko.yunxi.mes.module.heli.dal.mysql.matreqdetail.MatReqDetailMapper; +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 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.ErrorCodeConstants.*; + +/** + * 领料单主 Service 实现类 + * + * @author 管理员 + */ +@Service +@Validated +public class MatReqServiceImpl implements MatReqService { + + @Resource + private MatReqMapper matReqMapper; + @Resource + private MaterialPlanBoomMapper materialPlanBoomMapper; + @Resource + private MatReqDetailMapper matReqDetailMapper; + + @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 Boolean generate(List list) { + + return null; + } + +} 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 0000000..8c83d95 --- /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 0000000..94a79da --- /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/PartPurchaseOrderServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/partpurchaseorder/PartPurchaseOrderServiceImpl.java index b3d0dda..0dc13ab 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 @@ -62,7 +62,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(); 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 01bf77e..33b8e5f 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 f67dbdf..255e4b1 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/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 0000000..da792cf --- /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 0000000..bb1d634 --- /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/src/api/heli/materialplan/index.ts b/mes-ui/mes-ui-admin-vue3/src/api/heli/materialplan/index.ts index 7a8c9f2..c0a348e 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,10 @@ 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 }) +} 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 0000000..96c2cd7 --- /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 0000000..eb3f112 --- /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/purchaseorderno/index.ts b/mes-ui/mes-ui-admin-vue3/src/api/heli/purchaseorderno/index.ts index 5174d0a..ed85117 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 0046410..099daf1 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/utils/dict.ts b/mes-ui/mes-ui-admin-vue3/src/utils/dict.ts index 9c9fbba..bea430e 100644 --- a/mes-ui/mes-ui-admin-vue3/src/utils/dict.ts +++ b/mes-ui/mes-ui-admin-vue3/src/utils/dict.ts @@ -285,5 +285,8 @@ export enum DICT_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_PART_PURCHASE_ORDER_TYPE='heli_part_purchase_order_type' + 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' } 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 90ee521..d7f9693 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/matreq/MatReqForm.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/matreq/MatReqForm.vue new file mode 100644 index 0000000..6d269cb --- /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 0000000..b00c9f5 --- /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 0000000..be6eb1e --- /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/standardParts.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/matreq/standardParts.vue new file mode 100644 index 0000000..fd78a73 --- /dev/null +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/matreq/standardParts.vue @@ -0,0 +1,306 @@ + + + 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 e5fb49e..05d84f1 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/purchaseorderno/detail.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/purchaseorderno/detail.vue index 0040423..799287d 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/purchaseorderno/detail.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/purchaseorderno/detail.vue @@ -44,8 +44,14 @@ + + + + @@ -191,13 +197,13 @@ const receiveGoods = async () => { return; } await PurchaseOrderNoDetailApi.verification(list) - loading.value = true; const res = await Promise.race([ PurchaseOrderNoDetailApi.receiveGoods(list), new Promise((_, reject) => setTimeout(() => reject(new Error("请求超时")), 30000) ) ]); + loading.value = true; message.success("收货成功"); getList(); // 确保刷新完成 diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/purchaseorderno/index.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/purchaseorderno/index.vue index b444966..e360974 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/purchaseorderno/index.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/purchaseorderno/index.vue @@ -79,9 +79,9 @@ v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true" cl - + diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/purchaseorderno/management.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/purchaseorderno/management.vue index d8973d0..4979512 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/purchaseorderno/management.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/purchaseorderno/management.vue @@ -61,9 +61,9 @@ v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true" cl - + diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/purchaseorderno/managementdetail.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/purchaseorderno/managementdetail.vue index b4a107b..41975ca 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/purchaseorderno/managementdetail.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/purchaseorderno/managementdetail.vue @@ -43,6 +43,11 @@ + + +