From 9be047b579e6165f64e71b944740b052c6078281 Mon Sep 17 00:00:00 2001 From: z Date: Tue, 17 Jun 2025 20:45:09 +0800 Subject: [PATCH] =?UTF-8?q?=E9=9B=B6=E4=BB=B6=E8=B7=9F=E6=A0=87=E5=87=86?= =?UTF-8?q?=E4=BB=B6=E7=89=A9=E6=96=99=E9=9C=80=E6=B1=82=E8=AE=A1=E5=88=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bdgzsomthing/bdgzsomthingController.java | 10 +- .../materialplan/MaterialPlanController.java | 238 +++-- .../vo/MaterialPlanPageReqVO.java | 9 + .../materialplan/vo/MaterialPlanRespVO.java | 13 + .../admin/materialplan/vo/PartExcelVO.java | 56 ++ .../MaterialPlanBoomController.java | 8 +- .../vo/ProcessBoomPageReqVO.java | 2 + .../processbom/ProcessBomController.java | 34 + .../processbom/vo/ProcessBomExcelVO.java | 59 ++ .../processbom/vo/ProcessBomPageReqVO.java | 6 + .../materialplan/MaterialPlanDO.java | 33 +- .../materialplanboom/MaterialPlanBoomDO.java | 38 + .../heli/dal/dataobject/plan/PlanDO.java | 2 + .../processbom/ProcessBomDetailDO.java | 33 + .../processdesign/ProcessDesignDO.java | 3 +- .../taskdispatch/TaskDispatchDetailDO.java | 35 +- .../materialplan/MaterialPlanMapper.java | 18 + .../MaterialPlanBoomMapper.java | 15 + .../processbom/ProcessBomDetailMapper.java | 54 +- .../processdesign/ProcessDesignMapper.java | 2 +- .../TaskDispatchDetailMapper.java | 40 + .../materialplan/MaterialPlanService.java | 124 +-- .../materialplan/MaterialPlanServiceImpl.java | 127 +++ .../MaterialPlanBoomService.java | 1 + .../MaterialPlanBoomServiceImpl.java | 5 + .../service/processbom/ProcessBomService.java | 7 + .../processbom/ProcessBomServiceImpl.java | 91 ++ .../ProcessDesignServiceImpl.java | 2 +- .../src/api/heli/materialplan/index.ts | 113 ++- .../src/api/heli/materialplanboom/index.ts | 3 + .../src/api/heli/processbom/index.ts | 16 + mes-ui/mes-ui-admin-vue3/src/utils/dict.ts | 6 +- .../views/heli/materialplan/management.vue | 180 ++++ .../heli/materialplan/managementdetail.vue | 164 ++++ .../src/views/heli/materialplan/part.vue | 281 ++++++ .../heli/materialplan/partmanagement.vue | 180 ++++ .../materialplan/partmanagementdetail.vue | 165 ++++ .../src/views/heli/materialplan/standard.vue | 282 ++++++ .../productionReport/components/dataItem.vue | 864 ++++++++++-------- 39 files changed, 2726 insertions(+), 593 deletions(-) create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplan/vo/PartExcelVO.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/processbom/vo/ProcessBomExcelVO.java create mode 100644 mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/management.vue create mode 100644 mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/managementdetail.vue create mode 100644 mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/part.vue create mode 100644 mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/partmanagement.vue create mode 100644 mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/partmanagementdetail.vue create mode 100644 mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/standard.vue 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 2a08e1e..9007375 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 af6cc4c..95fa7b3 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,95 +1,143 @@ -package com.chanko.yunxi.mes.module.heli.controller.admin.materialplan; - -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.materialplan.vo.*; -import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplan.MaterialPlanDO; -import com.chanko.yunxi.mes.module.heli.service.materialplan.MaterialPlanService; - -@Tag(name = "管理后台 - 物料需求计划") -@RestController -@RequestMapping("/heli/material-plan") -@Validated -public class MaterialPlanController { - - @Resource - private MaterialPlanService materialPlanService; - - @PostMapping("/create") - @Operation(summary = "创建物料需求计划") - @PreAuthorize("@ss.hasPermission('heli:material-plan:create')") - public CommonResult createMaterialPlan(@Valid @RequestBody MaterialPlanSaveReqVO createReqVO) { - return success(materialPlanService.createMaterialPlan(createReqVO)); - } - - @PutMapping("/update") - @Operation(summary = "更新物料需求计划") - @PreAuthorize("@ss.hasPermission('heli:material-plan:update')") - public CommonResult updateMaterialPlan(@Valid @RequestBody MaterialPlanSaveReqVO updateReqVO) { - materialPlanService.updateMaterialPlan(updateReqVO); - return success(true); - } - - @DeleteMapping("/delete") - @Operation(summary = "删除物料需求计划") - @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('heli:material-plan:delete')") - public CommonResult deleteMaterialPlan(@RequestParam("id") Long id) { - materialPlanService.deleteMaterialPlan(id); - return success(true); - } - - @GetMapping("/get") - @Operation(summary = "获得物料需求计划") - @Parameter(name = "id", description = "编号", required = true, example = "1024") - @PreAuthorize("@ss.hasPermission('heli:material-plan:query')") - public CommonResult getMaterialPlan(@RequestParam("id") Long id) { - MaterialPlanDO materialPlan = materialPlanService.getMaterialPlan(id); - return success(BeanUtils.toBean(materialPlan, MaterialPlanRespVO.class)); - } - - @GetMapping("/page") - @Operation(summary = "获得物料需求计划分页") - @PreAuthorize("@ss.hasPermission('heli:material-plan:query')") - public CommonResult> getMaterialPlanPage(@Valid MaterialPlanPageReqVO pageReqVO) { - PageResult pageResult = materialPlanService.getMaterialPlanPage(pageReqVO); - return success(BeanUtils.toBean(pageResult, MaterialPlanRespVO.class)); - } - - @GetMapping("/export-excel") - @Operation(summary = "导出物料需求计划 Excel") - @PreAuthorize("@ss.hasPermission('heli:material-plan:export')") - @OperateLog(type = EXPORT) - public void exportMaterialPlanExcel(@Valid MaterialPlanPageReqVO pageReqVO, - HttpServletResponse response) throws IOException { - pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); - List list = materialPlanService.getMaterialPlanPage(pageReqVO).getList(); - // 导出 Excel - ExcelUtils.write(response, "物料需求计划.xls", "数据", MaterialPlanRespVO.class, - BeanUtils.toBean(list, MaterialPlanRespVO.class)); - } - -} \ No newline at end of file +package com.chanko.yunxi.mes.module.heli.controller.admin.materialplan; + +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.*; +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.materialplan.vo.*; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplan.MaterialPlanDO; +import com.chanko.yunxi.mes.module.heli.service.materialplan.MaterialPlanService; + +@Tag(name = "管理后台 - 物料需求计划") +@RestController +@RequestMapping("/heli/material-plan") +@Validated +public class MaterialPlanController { + + @Resource + private MaterialPlanService materialPlanService; + + @PostMapping("/create") + @Operation(summary = "创建物料需求计划") + @PreAuthorize("@ss.hasPermission('heli:material-plan:create')") + public CommonResult createMaterialPlan(@Valid @RequestBody MaterialPlanSaveReqVO createReqVO) { + return success(materialPlanService.createMaterialPlan(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新物料需求计划") + @PreAuthorize("@ss.hasPermission('heli:material-plan:update')") + public CommonResult updateMaterialPlan(@Valid @RequestBody MaterialPlanSaveReqVO updateReqVO) { + materialPlanService.updateMaterialPlan(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除物料需求计划") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('heli:material-plan:delete')") + public CommonResult deleteMaterialPlan(@RequestParam("id") Long id) { + materialPlanService.deleteMaterialPlan(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得物料需求计划") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('heli:material-plan:query')") + public CommonResult getMaterialPlan(@RequestParam("id") Long id) { + MaterialPlanDO materialPlan = materialPlanService.getMaterialPlan(id); + return success(BeanUtils.toBean(materialPlan, MaterialPlanRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得物料需求计划分页") + @PreAuthorize("@ss.hasPermission('heli:material-plan:query')") + public CommonResult> getMaterialPlanPage(@Valid MaterialPlanPageReqVO pageReqVO) { + PageResult pageResult = materialPlanService.getMaterialPlanPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, MaterialPlanRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出物料需求计划 Excel") + @PreAuthorize("@ss.hasPermission('heli:material-plan:export')") + @OperateLog(type = EXPORT) + public void exportMaterialPlanExcel(@Valid MaterialPlanPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = materialPlanService.getMaterialPlanPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "物料需求计划.xls", "数据", MaterialPlanRespVO.class, + BeanUtils.toBean(list, MaterialPlanRespVO.class)); + } + @GetMapping("/pages") + @Operation(summary = "获得标准件物料需求计划管理分页") + @PreAuthorize("@ss.hasPermission('heli:material-plan:query')") + public CommonResult> getMaterialPlanPages(@Valid MaterialPlanPageReqVO pageReqVO) { + PageResult pageResult = materialPlanService.getMaterialPlanPages(pageReqVO); + return success(BeanUtils.toBean(pageResult, MaterialPlanRespVO.class)); + } + @DeleteMapping("/delMaterialPlan") + @Operation(summary = "删除物料需求计划") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('heli:material-plan:delete')") + public CommonResult delMaterialPlan(@RequestParam("id") Long id) { + return materialPlanService.delMaterialPlan(id); + } + + @GetMapping("/getPartPage") + @Operation(summary = "获得零件物料需求计划分页") + @PreAuthorize("@ss.hasPermission('heli:material-plan:query')") + public CommonResult> getPartPage(@Valid MaterialPlanPageReqVO pageReqVO) { + PageResult pageResult = materialPlanService.getPartPage(pageReqVO); + return success(pageResult); + } + @PostMapping("/submit") + @Operation(summary = "提交") + @PreAuthorize("@ss.hasPermission('heli:process-bom:create')") + public CommonResult submit(@Valid @RequestBody List list) { + return success(materialPlanService.submit(list)); + } + @GetMapping("/withdraw") + @Operation(summary = "撤回") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('heli:process-bom:query')") + public CommonResult withdraw(@RequestParam("code") String code) { + return materialPlanService.withdraw(code); + } + @GetMapping("/exportPart") + @Operation(summary = "导出物料需求计划 Excel") + @PreAuthorize("@ss.hasPermission('heli:material-plan:export')") + @OperateLog(type = EXPORT) + public void exportPart(@Valid MaterialPlanPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = materialPlanService.getPartPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "零件物料需求计划.xlsx", "数据", PartExcelVO.class, + BeanUtils.toBean(list, PartExcelVO.class)); + } +} 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 6ab6858..90585f9 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 @@ -56,5 +56,14 @@ public class MaterialPlanPageReqVO extends PageParam { @Schema(description = "创建时间") private String createTime; + @Schema(description = "子项目名称") + private String projectSubName; + @Schema(description = "零件名称") + private String materialName; + @Schema(description = "项目编码") + private String projectCode; + @Schema(description = "需求计划类型") + private String matType; + } \ No newline at end of file diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplan/vo/MaterialPlanRespVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplan/vo/MaterialPlanRespVO.java index d6353fa..52f1d42 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplan/vo/MaterialPlanRespVO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplan/vo/MaterialPlanRespVO.java @@ -72,4 +72,17 @@ public class MaterialPlanRespVO { @ExcelProperty("创建时间") private LocalDateTime createTime; + @Schema(description = "子项目名称") + @ExcelProperty("子项目名称") + private String name; + @Schema(description = "客户简称") + @ExcelProperty("客户简称") + private String brief; + @Schema(description = "需求计划类型") + @ExcelProperty("需求计划类型") + private String matType; + @Schema(description = "制单日期", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("制单日期") + private LocalDateTime matPlanDate; + } \ No newline at end of file diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplan/vo/PartExcelVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplan/vo/PartExcelVO.java new file mode 100644 index 0000000..6f2b1b8 --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplan/vo/PartExcelVO.java @@ -0,0 +1,56 @@ +package com.chanko.yunxi.mes.module.heli.controller.admin.materialplan.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.chanko.yunxi.mes.framework.excel.core.annotations.DictFormat; +import com.chanko.yunxi.mes.framework.excel.core.convert.DictConvert; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * BOM Excel 导入 VO + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +@Accessors(chain = false) // 设置 chain = false,避免BOM导入有问题 +public class PartExcelVO { + @ExcelProperty("工序名称") + private String procedureName; + + + @ExcelProperty("项目名称") + private String projectName; + + @ExcelProperty("子项目名称") + private String projectSubName; + @ExcelProperty("客户简码") + private String customerName; + @ExcelProperty("零件名称") + private String materialName; + + @ExcelProperty("材质") + private String compositionName; + + @ExcelProperty("数量") + private Integer amount; + + + @ExcelProperty("要求完成日期") + private String boomArriveDates; + + @ExcelProperty("要求说明") + private String description; + @ExcelProperty("重量(T)") + private BigDecimal matWeight; + @ExcelProperty("责任人") + private String nickname; + @ExcelProperty("物料需求单号") + private String projectMaterialPlanNo; +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplanboom/MaterialPlanBoomController.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplanboom/MaterialPlanBoomController.java index 4322de7..742a8d0 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplanboom/MaterialPlanBoomController.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplanboom/MaterialPlanBoomController.java @@ -112,6 +112,12 @@ public class MaterialPlanBoomController { PageResult pageResult = materialPlanBoomService.getProcessBoomDetailList(pageReqVO); return success(BeanUtils.toBean(pageResult, ProcessBomDetailDO.class)); } - + @GetMapping("/pages") + @Operation(summary = "获得物料需求计划加工件明细分页") + @PreAuthorize("@ss.hasPermission('heli:material-plan-boom:query')") + public CommonResult> getMaterialPlanBoomPages(@Valid ProcessBoomPageReqVO pageReqVO) { + PageResult pageResult = materialPlanBoomService.getMaterialPlanBoomPages(pageReqVO); + return success(BeanUtils.toBean(pageResult, MaterialPlanBoomDO.class)); + } } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplanboom/vo/ProcessBoomPageReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplanboom/vo/ProcessBoomPageReqVO.java index 1a4a89c..6c0567d 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplanboom/vo/ProcessBoomPageReqVO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplanboom/vo/ProcessBoomPageReqVO.java @@ -27,4 +27,6 @@ public class ProcessBoomPageReqVO extends PageParam { @Schema(description = "生产计划子项目编号") private String projectSubCode; + @Schema(description = "物料需求计划id") + private String projectMaterialPlanId; } \ 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/processbom/ProcessBomController.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/processbom/ProcessBomController.java index 4d5d6bd..b15edf6 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/processbom/ProcessBomController.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/processbom/ProcessBomController.java @@ -12,9 +12,12 @@ import com.chanko.yunxi.mes.framework.excel.core.util.ExcelUtils; import com.chanko.yunxi.mes.framework.operatelog.core.annotations.OperateLog; import com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum; import com.chanko.yunxi.mes.framework.operatelog.core.service.OperateLogFrameworkService; +import com.chanko.yunxi.mes.module.heli.controller.admin.plantask.vo.PlanTaskPageReqVO; +import com.chanko.yunxi.mes.module.heli.controller.admin.plantask.vo.PlanTaskRespVO; import com.chanko.yunxi.mes.module.heli.controller.admin.processbom.vo.*; 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.plantask.PlanTaskDO; 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.mysql.processbom.ProcessBomDetailMapper; @@ -230,4 +233,35 @@ public class ProcessBomController { processBomService.deleteProcessBomDetailNew(id); return success(true); } + @GetMapping("/getStandardPage") + @Operation(summary = "获得标准件物料需求计划") + @PreAuthorize("@ss.hasPermission('heli:process-bom:query')") + public CommonResult> getStandardPage(@Valid ProcessBomPageReqVO pageReqVO) { + PageResult pageResult = processBomService.getStandardPage(pageReqVO); + return success(pageResult); + } + @PostMapping("/submit") + @Operation(summary = "提交") + @PreAuthorize("@ss.hasPermission('heli:process-bom:create')") + public CommonResult submit(@Valid @RequestBody List list) { + return success(processBomService.submit(list)); + } + @GetMapping("/withdraw") + @Operation(summary = "撤回") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('heli:process-bom:query')") + public CommonResult withdraw(@RequestParam("code") String code) { + return processBomService.withdraw(code); + } + @GetMapping("/exportStandard") + @Operation(summary = "导出标准件物料需求计划Excel") + @OperateLog(type = EXPORT) + public void exportStandard(@Valid ProcessBomPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = processBomService.getStandardPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "标准件物料需求计划.xlsx", "数据", ProcessBomExcelVO.class, + BeanUtils.toBean(list, ProcessBomExcelVO.class)); + } } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/processbom/vo/ProcessBomExcelVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/processbom/vo/ProcessBomExcelVO.java new file mode 100644 index 0000000..0934ea3 --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/processbom/vo/ProcessBomExcelVO.java @@ -0,0 +1,59 @@ +package com.chanko.yunxi.mes.module.heli.controller.admin.processbom.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.chanko.yunxi.mes.framework.excel.core.annotations.DictFormat; +import com.chanko.yunxi.mes.framework.excel.core.convert.DictConvert; +import com.chanko.yunxi.mes.module.system.enums.DictTypeConstants; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +import java.util.Date; + +/** + * BOM Excel 导入 VO + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +@Accessors(chain = false) // 设置 chain = false,避免BOM导入有问题 +public class ProcessBomExcelVO { + + @ExcelProperty("客户简称") + private String customerName; + + @ExcelProperty("项目名称") + private String projectName; + + @ExcelProperty("子项目名称") + private String projectSubName; + + @ExcelProperty("零件名称") + private String materialName; + + @ExcelProperty("材质") + private String compositionName; + + @ExcelProperty("规格型号") + private String spec; + + @ExcelProperty("图号") + private String blueprintNo; + + @ExcelProperty("数量") + private Integer amount; + + @ExcelProperty(value = "单位", converter = DictConvert.class) + @DictFormat("heli_material_unit") + private String unit; + @ExcelProperty("要求完成日期") + private String boomArriveDates; + + @ExcelProperty("责任人") + private String nickname; + @ExcelProperty("物料需求单号") + private String projectMaterialPlanNo; +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/processbom/vo/ProcessBomPageReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/processbom/vo/ProcessBomPageReqVO.java index e170444..cb1faca 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/processbom/vo/ProcessBomPageReqVO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/processbom/vo/ProcessBomPageReqVO.java @@ -60,7 +60,13 @@ public class ProcessBomPageReqVO extends PageParam { @Schema(description = "项目名称") private String projectName; + @Schema(description = "零件名称") + private String materialName; + @Schema(description = "责任人") + private String ownerName; + @Schema(description = "物料需求单号") + private String projectMaterialPlanNo; @Schema(description = "审核人") private Long userId; diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/materialplan/MaterialPlanDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/materialplan/MaterialPlanDO.java index a2c9bf6..c547348 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/materialplan/MaterialPlanDO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/materialplan/MaterialPlanDO.java @@ -68,6 +68,14 @@ public class MaterialPlanDO extends BaseDO { * 备注 */ private String description; + /** + * 客户id + */ + private Long customerId; + /** + * 客户简称 + */ + private String brief; /** * 生产计划单号 @@ -77,7 +85,30 @@ public class MaterialPlanDO extends BaseDO { /** * 项目名称 */ - @TableField(exist = false) private String projectName; + /** + * 项目简码 + */ + private String projectNameSim; + /** + * 需求计划类型 + */ + private Integer matType; + /** + * 子项目id + */ + private Long projectPlanSubId; + /** + * 子项目名称 + */ + private String name; + /** + * 子项目简码 + */ + private String nameSim; + /** + * 制单日期 + */ + private Date matPlanDate; } \ 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/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 460a6a5..1a8c07c 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 @@ -53,6 +53,42 @@ public class MaterialPlanBoomDO extends BaseDO { * 备注 */ private String description; + /** + * 物料名称 + */ + private String matName; + /** + * 责任人id + */ + private Long duEmpId; + /** + * 采购or库存(0 -采购 1- 库存) + */ + private Integer isPurYard; + /** + * 需求状态(0-待送审 1 -已送审 2-已批准 3-已打回) + */ + private Integer mplanStatus; + /** + * 采购单id + */ + private Long projectPurchaseOrderMakeId; + /** + * 采购单号 + */ + private String purchaseNo; + /** + * 采购单明细id + */ + private Long projectPurchaseOrderMakeDetailId; + /** + * 物料id + */ + private Long materialId; + /** + * 零件重量 + */ + private BigDecimal matWeight; @TableField(exist = false) private String materialName; @TableField(exist = false) @@ -69,5 +105,7 @@ public class MaterialPlanBoomDO extends BaseDO { private Long compositionId; @TableField(exist = false) private String projectMaterialPlanNo; + @TableField(exist = false) + private String nickname; } \ 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/plan/PlanDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/plan/PlanDO.java index 426beb5..c461ee4 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/plan/PlanDO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/plan/PlanDO.java @@ -116,7 +116,9 @@ public class PlanDO extends BaseDO { *要求设计结束日期 * */ private LocalDateTime changeEndTime; + @TableField(exist = false) private String name; + @TableField(exist = false) private String brief; /** * 子项目id diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/processbom/ProcessBomDetailDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/processbom/ProcessBomDetailDO.java index 137fc6c..8851416 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/processbom/ProcessBomDetailDO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/processbom/ProcessBomDetailDO.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.chanko.yunxi.mes.framework.mybatis.core.dataobject.BaseDO; import lombok.*; +import org.apache.poi.hpsf.Date; import org.apache.poi.hpsf.Decimal; import java.math.BigDecimal; @@ -78,6 +79,10 @@ public class ProcessBomDetailDO extends BaseDO { * 备注 */ private String remark; + /** + * 其他件物料编码 + */ + private String otherMaterialCode; /** * 状态,1表示正常,2表示禁用 */ @@ -104,6 +109,13 @@ public class ProcessBomDetailDO extends BaseDO { * 操作次数 * */ private Integer bomOperateCount; + private Long duEmpId; + private Integer mplanStatus; + /* + *操作时间 + * */ + private LocalDateTime mplanDate; + private Integer isPurYard; /* *操作时间 @@ -151,4 +163,25 @@ public class ProcessBomDetailDO extends BaseDO { private BigDecimal price; @TableField(exist = false) private String matUnitId; + @TableField(exist = false) + private String customerName; + @TableField(exist = false) + private String projectName; + @TableField(exist = false) + private String projectSubName; + @TableField(exist = false) + private LocalDateTime boomArriveDate; + @TableField(exist = false) + private String boomArriveDates; + private String projectMaterialPlanNo; + @TableField(exist = false) + private Long projectId; + @TableField(exist = false) + private Long customerId; + @TableField(exist = false) + private String nameSim; + @TableField(exist = false) + private String projectNameSim; + @TableField(exist = false) + private String nickname; } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/processdesign/ProcessDesignDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/processdesign/ProcessDesignDO.java index 796fc2d..3a171bb 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/processdesign/ProcessDesignDO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/processdesign/ProcessDesignDO.java @@ -151,5 +151,6 @@ public class ProcessDesignDO extends BaseDO { @TableField(exist = false) private String blueprintLink; - + @TableField(exist = false) + private String brief; } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/taskdispatch/TaskDispatchDetailDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/taskdispatch/TaskDispatchDetailDO.java index a2fc967..326ada5 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/taskdispatch/TaskDispatchDetailDO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/taskdispatch/TaskDispatchDetailDO.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.*; import com.chanko.yunxi.mes.framework.mybatis.core.dataobject.BaseDO; import io.swagger.v3.oas.models.security.SecurityScheme; import lombok.*; +import org.apache.poi.hpsf.Date; import java.math.BigDecimal; import java.time.LocalDateTime; @@ -96,6 +97,9 @@ public class TaskDispatchDetailDO extends BaseDO { private Long dispatchType; private String postId; private String isOutsourcing; + private String projectMaterialPlanNo; + private Long projectMaterialPlanDetailId; + private Integer planStatus; /** * 工序状态 默认 已提交 已完成 0 1 2 */ @@ -157,7 +161,8 @@ public class TaskDispatchDetailDO extends BaseDO { @TableField(exist = false) private Integer wgType; - + @TableField(exist = false) + private Integer boomAmount; @TableField(exist = false) private String deviceName; @@ -194,4 +199,32 @@ public class TaskDispatchDetailDO extends BaseDO { @TableField(exist = false) private String nextProcedureName; + @TableField(exist = false) + private String customerName; + @TableField(exist = false) + private String compositionName; + @TableField(exist = false) + private String description; + @TableField(exist = false) + private LocalDateTime boomArriveDate; + @TableField(exist = false) + private String boomArriveDates; + @TableField(exist = false) + private Long projectSubId; + @TableField(exist = false) + private Long projectId; + @TableField(exist = false) + private Long planId; + @TableField(exist = false) + private Long customerId; + @TableField(exist = false) + private String nameSim; + @TableField(exist = false) + private String projectNameSim; + @TableField(exist = false) + private Long duEmpId; + @TableField(exist = false) + private BigDecimal matWeight; + @TableField(exist = false) + private String nickname; } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/materialplan/MaterialPlanMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/materialplan/MaterialPlanMapper.java index 912aa8a..455b3e4 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/materialplan/MaterialPlanMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/materialplan/MaterialPlanMapper.java @@ -8,6 +8,7 @@ import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX; import com.chanko.yunxi.mes.module.heli.controller.admin.plan.vo.PlanPageReqVO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.customer.CustomerDO; 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.plan.PlanDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderDO; import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO; @@ -41,6 +42,23 @@ public interface MaterialPlanMapper extends BaseMapperX { return selectPage(reqVO, query); } + + default PageResult selectPages(MaterialPlanPageReqVO pageReqVO){ + MPJLambdaWrapper query = new MPJLambdaWrapper<>(); + query.selectAll(MaterialPlanDO.class) + .leftJoin(MaterialPlanBoomDO.class, "b", MaterialPlanBoomDO::getProjectMaterialPlanId, MaterialPlanDO::getId) + .groupBy(MaterialPlanDO::getId) + .orderByDesc(MaterialPlanDO::getCreateTime); + query.like(!StringUtils.isEmpty(pageReqVO.getProjectMaterialPlanNo()), MaterialPlanDO::getProjectMaterialPlanNo, pageReqVO.getProjectMaterialPlanNo()) + .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()) + .eq(!StringUtils.isEmpty(pageReqVO.getMatType()), MaterialPlanDO::getMatType, pageReqVO.getMatType()); + + + + return selectPage(pageReqVO, query); + } // default PageResult selectPage(MaterialPlanPageReqVO reqVO) { // return selectPage(reqVO, new LambdaQueryWrapperX() // .eqIfPresent(MaterialPlanDO::getId, reqVO.getId()) 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 75b6645..18d28e8 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 @@ -13,6 +13,7 @@ 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.enums.BoomDetailTypeEnum; import com.chanko.yunxi.mes.module.heli.enums.ProcessBomStatusEnum; +import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO; import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.ibatis.annotations.Mapper; import com.chanko.yunxi.mes.module.heli.controller.admin.materialplanboom.vo.*; @@ -70,6 +71,20 @@ public interface MaterialPlanBoomMapper extends BaseMapperX List selectafterten(@Param("id") Long txrid, @Param("evday") String evday); + default PageResult getMaterialPlanBoomPages(ProcessBoomPageReqVO pageReqVO){ + MPJLambdaWrapper query = new MPJLambdaWrapper<>(); + query.selectAll(MaterialPlanBoomDO.class) + .select("a.nickname as nickname,b.spec as boomSpec") + .leftJoin(AdminUserDO.class, "a", AdminUserDO::getId, MaterialPlanBoomDO::getDuEmpId) + .leftJoin(ProcessBomDetailDO.class, "b", ProcessBomDetailDO::getId, MaterialPlanBoomDO::getBoomDetailId) + .orderByDesc(MaterialPlanBoomDO::getId) + .disableSubLogicDel() + ; + + query.eq(pageReqVO.getProjectMaterialPlanId() != null, MaterialPlanBoomDO::getProjectMaterialPlanId, pageReqVO.getProjectMaterialPlanId()); + 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/processbom/ProcessBomDetailMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/processbom/ProcessBomDetailMapper.java index c97b547..5d7bc75 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/processbom/ProcessBomDetailMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/processbom/ProcessBomDetailMapper.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.chanko.yunxi.mes.framework.common.pojo.PageResult; import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX; +import com.chanko.yunxi.mes.module.heli.controller.admin.equip.EquipController; import com.chanko.yunxi.mes.module.heli.controller.admin.materialplanboom.vo.ProcessBoomPageReqVO; import com.chanko.yunxi.mes.module.heli.controller.admin.materialplanboom.vo.ProcessBoomRespVO; import com.chanko.yunxi.mes.module.heli.controller.admin.plantaskbom.vo.PlanTaskBomPageReqVO; @@ -13,6 +14,8 @@ import com.chanko.yunxi.mes.module.heli.controller.admin.processbom.vo.ProcessBo import com.chanko.yunxi.mes.module.heli.dal.dataobject.composition.CompositionDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.customer.CustomerDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.material.MaterialDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplan.MaterialPlanDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplanboom.MaterialPlanBoomDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.plan.PlanDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.plansub.PlanSubDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.plantask.PlanTaskDO; @@ -22,10 +25,13 @@ import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDeta import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderSubDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelogNow.StorageLogNowDO; +import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO; import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import org.bouncycastle.eac.EACCertificateBuilder; +import org.springframework.util.ObjectUtils; import org.springframework.util.StringUtils; import java.util.Arrays; @@ -39,7 +45,9 @@ import java.util.List; @Mapper public interface ProcessBomDetailMapper extends BaseMapperX { -// default List selectListByBomId(Long bomId) { + + + // default List selectListByBomId(Long bomId) { // // MPJLambdaWrapper query = new MPJLambdaWrapper<>(); // @@ -186,4 +194,48 @@ public interface ProcessBomDetailMapper extends BaseMapperX .eq(ProcessBomDetailDO::getType,'1'); return selectPage(reqVO,query); } + + default PageResult getStandardPage(ProcessBomPageReqVO pageReqVO){ + MPJLambdaWrapper query = new MPJLambdaWrapper<>(); + query.selectAll(ProcessBomDetailDO.class) + .select( "c.brief as customerName", "b.project_name as projectName","b.project_name_sim as projectNameSim") + .select("d.name as projectSubName,d.id as projectSubId,d.name_sim as nameSim,f.name as compositionName") + .select("b.id as projectId,g.plan_id as planId,c.id as customerId") + .select("u.nickname as nickname") + .select("DATE_FORMAT(p.boom_arrive_date, '%Y-%m-%d') AS boomArriveDates") + .select("p.boom_arrive_date as boomArriveDate,p.du_emp_id as duEmpId,h.project_material_plan_no as projectMaterialPlanNo") + .leftJoin(ProcessBomDO.class,"g",ProcessBomDO::getId,ProcessBomDetailDO::getBomId) + .leftJoin(ProjectOrderDO.class, "b", ProjectOrderDO::getId, ProcessBomDO::getProjectId) + .leftJoin(CustomerDO.class, "c", CustomerDO::getId, ProjectOrderDO::getCustomerId) + .leftJoin(ProjectOrderSubDO.class, "d", ProjectOrderSubDO::getId, ProcessBomDO::getProjectSubId) + .leftJoin(CompositionDO.class,"f",CompositionDO::getId,ProcessBomDetailDO::getCompositionId) +// .leftJoin(MaterialPlanDO.class,"h",MaterialPlanDO::getProjectMaterialPlanNo,ProcessBomDetailDO::getProjectMaterialPlanNo) +// .leftJoin(MaterialPlanBoomDO.class,"p",MaterialPlanBoomDO::getBoomDetailId,ProcessBomDetailDO::getId) + .leftJoin("project_material_plan h on (h.project_material_plan_no = t.project_material_plan_no and h.deleted=0)") + .leftJoin("project_material_plan_boom p on (p.boom_detail_id = t.id and p.deleted=0)") + .leftJoin(AdminUserDO.class,"u",AdminUserDO::getId,ProcessBomDetailDO::getDuEmpId) + .groupBy(ProcessBomDetailDO::getId) + .orderByDesc(ProcessBomDO::getId) + .disableSubLogicDel(); + + query + .like(!StringUtils.isEmpty(pageReqVO.getProjectCode()), ProjectOrderDO::getCode, pageReqVO.getProjectCode()) + .like(!StringUtils.isEmpty(pageReqVO.getProjectName()), ProjectOrderDO::getProjectName, pageReqVO.getProjectName()) + .like(!StringUtils.isEmpty(pageReqVO.getProjectSubName()), ProjectOrderSubDO::getName, pageReqVO.getProjectSubName()) + .like(!StringUtils.isEmpty(pageReqVO.getMaterialName()), ProcessBomDetailDO::getMaterialName, pageReqVO.getMaterialName()) + .like(!StringUtils.isEmpty(pageReqVO.getOwnerName()), AdminUserDO::getNickname, pageReqVO.getOwnerName()) + .like(!StringUtils.isEmpty(pageReqVO.getProjectMaterialPlanNo()), MaterialPlanDO::getProjectMaterialPlanNo, pageReqVO.getProjectMaterialPlanNo()) + .eq(!StringUtils.isEmpty(pageReqVO.getStatus()), ProcessBomDetailDO::getMplanStatus, pageReqVO.getStatus()); +// .eq(MaterialPlanBoomDO::getDeleted,0) +// .eq(MaterialPlanDO::getDeleted,0); + if (ObjectUtils.isEmpty(pageReqVO.getProjectMaterialPlanNo())) { + query.eq(ProcessBomDO::getBomStatus,"2") + .ne(ProjectOrderDO::getOrderStatus,"64") + .eq(ProcessBomDetailDO::getType,"1"); + ; + } + + + return selectPage(pageReqVO, query); + } } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/processdesign/ProcessDesignMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/processdesign/ProcessDesignMapper.java index dedc14f..afebf0d 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/processdesign/ProcessDesignMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/processdesign/ProcessDesignMapper.java @@ -109,7 +109,7 @@ public interface ProcessDesignMapper extends BaseMapperX { MPJLambdaWrapper query = new MPJLambdaWrapper<>(); query.selectAll(ProcessDesignDO.class) .select("a.status as planStatus") - .select("a.plan_no as planCode","a.has_craft as hasCraft", "a.craft_start_date as craftStartDate", "a.craft_end_date as craftEndDate", "e.name as customerName") + .select("a.plan_no as planCode","a.has_craft as hasCraft", "a.craft_start_date as craftStartDate", "a.craft_end_date as craftEndDate", "e.name as customerName","e.brief as brief") .select("d.code as projectCode", "d.project_name as projectName", "d.business_line as businessLine", "d.property","d.is_urgency as isUrgency") .select("u1.nickname as projectOwnerName", "u2.nickname as craftOwnerName") .select("b.blank_date as blankDate", "b.two_dim_date as twoDimDate", "b.three_dim_date as threeDimDate") diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/taskdispatch/TaskDispatchDetailMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/taskdispatch/TaskDispatchDetailMapper.java index 87dfff1..fcdacfc 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/taskdispatch/TaskDispatchDetailMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/taskdispatch/TaskDispatchDetailMapper.java @@ -5,12 +5,17 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.chanko.yunxi.mes.framework.common.pojo.PageResult; import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX; import com.chanko.yunxi.mes.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.chanko.yunxi.mes.module.heli.controller.admin.materialplan.vo.MaterialPlanPageReqVO; import com.chanko.yunxi.mes.module.heli.controller.admin.taskdispatch.vo.TaskDispatchDetailPageReqVO; import com.chanko.yunxi.mes.module.heli.controller.admin.taskdispatch.vo.TaskDispatchDetailTotalVO; import com.chanko.yunxi.mes.module.heli.controller.admin.taskdispatch.vo.TaskPlanJDBaoBiaoPageReqVO; import com.chanko.yunxi.mes.module.heli.controller.admin.ygjx.vo.YgjxPageReqVO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.composition.CompositionDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.customer.CustomerDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.equipmanufacture.EquipManufactureDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplan.MaterialPlanDO; 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.projectorder.ProjectOrderSubDO; @@ -23,6 +28,7 @@ import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.springframework.beans.BeanUtils; +import org.springframework.util.ObjectUtils; import org.springframework.util.StringUtils; import java.math.BigDecimal; @@ -674,4 +680,38 @@ public interface TaskDispatchDetailMapper extends BaseMapperX getPartPage(MaterialPlanPageReqVO pageReqVO){ + MPJLambdaWrapper query = new MPJLambdaWrapper<>(); + query.selectAll(TaskDispatchDetailDO.class) + .select("f.name as compositionName,g.name as procedureName,d.amount as boomAmount") + .select("b.project_name_sim as projectNameSim,c.name_sim as nameSim") + .select("b.id as projectId,i.plan_id as planId,c.id as customerId,d.id as bomDetailId") + .select( "b.project_name as projectName", "c.name as projectSubName") + .select("d.material_name as materialName,DATE_FORMAT(p.boom_arrive_date, '%Y-%m-%d') AS boomArriveDates") + .select("e.brief as customerName,u.nickname as nickname,c.id as projectSubId") + .select("p.boom_arrive_date as boomArriveDate,p.du_emp_id as duEmpId,p.description as description,p.mat_weight as matWeight") + .leftJoin(TaskDispatchDO.class, "a", TaskDispatchDO::getId, TaskDispatchDetailDO::getDispatchId) + .leftJoin(ProjectOrderDO.class, "b", ProjectOrderDO::getId, TaskDispatchDO::getProjectId) + .leftJoin(ProjectOrderSubDO.class, "c", ProjectOrderSubDO::getId, TaskDispatchDO::getProjectSubId) + .leftJoin(ProcessBomDetailDO.class, "d", ProcessBomDetailDO::getId, TaskDispatchDO::getBomDetailId) + .leftJoin(ProcessBomDO.class,"i",ProcessBomDO::getId,ProcessBomDetailDO::getBomId) + .leftJoin(CustomerDO.class, "e", CustomerDO::getId, ProjectOrderDO::getCustomerId) + .leftJoin(CompositionDO.class,"f",CompositionDO::getId,ProcessBomDetailDO::getCompositionId) + .leftJoin("project_material_plan h on (h.project_material_plan_no = t.project_material_plan_no and h.deleted=0)") + .leftJoin("project_material_plan_boom p on (p.id = t.project_material_plan_detail_id and p.deleted=0)") + .leftJoin(ProcedureDO.class, "g", ProcedureDO::getId, TaskDispatchDetailDO::getProcedureId) + .leftJoin("system_users u on (u.id=p.du_emp_id and u.deleted=0)") + .groupBy(TaskDispatchDetailDO::getId) + .disableSubLogicDel(); + + query + .like(!StringUtils.isEmpty(pageReqVO.getProjectCode()), ProjectOrderDO::getCode, pageReqVO.getProjectCode()) + .like(!StringUtils.isEmpty(pageReqVO.getProjectName()), ProjectOrderDO::getProjectName, pageReqVO.getProjectName()) + .like(!StringUtils.isEmpty(pageReqVO.getProjectSubName()), ProjectOrderSubDO::getName, pageReqVO.getProjectSubName()) + .like(!StringUtils.isEmpty(pageReqVO.getMaterialName()), ProcessBomDetailDO::getMaterialName, pageReqVO.getMaterialName()) + .like(!StringUtils.isEmpty(pageReqVO.getProjectMaterialPlanNo()), MaterialPlanDO::getProjectMaterialPlanNo, pageReqVO.getProjectMaterialPlanNo()) + .eq(!StringUtils.isEmpty(pageReqVO.getStatus()), TaskDispatchDetailDO::getPlanStatus, pageReqVO.getStatus()) + .eq( TaskDispatchDetailDO::getIsOutsourcing, "Y"); + return selectPage(pageReqVO, query); + } } 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 4b2a60b..05d409b 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 @@ -1,55 +1,69 @@ -package com.chanko.yunxi.mes.module.heli.service.materialplan; - -import java.util.*; -import javax.validation.*; -import com.chanko.yunxi.mes.module.heli.controller.admin.materialplan.vo.*; -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; - -/** - * 物料需求计划 Service 接口 - * - * @author 管理员 - */ -public interface MaterialPlanService { - - /** - * 创建物料需求计划 - * - * @param createReqVO 创建信息 - * @return 编号 - */ - Long createMaterialPlan(@Valid MaterialPlanSaveReqVO createReqVO); - - /** - * 更新物料需求计划 - * - * @param updateReqVO 更新信息 - */ - void updateMaterialPlan(@Valid MaterialPlanSaveReqVO updateReqVO); - - /** - * 删除物料需求计划 - * - * @param id 编号 - */ - void deleteMaterialPlan(Long id); - - /** - * 获得物料需求计划 - * - * @param id 编号 - * @return 物料需求计划 - */ - MaterialPlanDO getMaterialPlan(Long id); - - /** - * 获得物料需求计划分页 - * - * @param pageReqVO 分页查询 - * @return 物料需求计划分页 - */ - PageResult getMaterialPlanPage(MaterialPlanPageReqVO pageReqVO); - -} \ No newline at end of file +package com.chanko.yunxi.mes.module.heli.service.materialplan; + +import java.util.*; +import javax.validation.*; + +import com.chanko.yunxi.mes.framework.common.pojo.CommonResult; +import com.chanko.yunxi.mes.module.heli.controller.admin.materialplan.vo.*; +import com.chanko.yunxi.mes.module.heli.controller.admin.taskdispatch.TaskDispatchController; +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.processbom.ProcessBomDetailDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatchDetailDO; + +/** + * 物料需求计划 Service 接口 + * + * @author 管理员 + */ +public interface MaterialPlanService { + + /** + * 创建物料需求计划 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createMaterialPlan(@Valid MaterialPlanSaveReqVO createReqVO); + + /** + * 更新物料需求计划 + * + * @param updateReqVO 更新信息 + */ + void updateMaterialPlan(@Valid MaterialPlanSaveReqVO updateReqVO); + + /** + * 删除物料需求计划 + * + * @param id 编号 + */ + void deleteMaterialPlan(Long id); + + /** + * 获得物料需求计划 + * + * @param id 编号 + * @return 物料需求计划 + */ + MaterialPlanDO getMaterialPlan(Long id); + + /** + * 获得物料需求计划分页 + * + * @param pageReqVO 分页查询 + * @return 物料需求计划分页 + */ + PageResult getMaterialPlanPage(MaterialPlanPageReqVO pageReqVO); + + PageResult getMaterialPlanPages(MaterialPlanPageReqVO pageReqVO); + + CommonResult delMaterialPlan(Long id); + + PageResult getPartPage(MaterialPlanPageReqVO pageReqVO); + + Boolean submit(List list); + + CommonResult withdraw(String code); +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/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 4327c2c..955c556 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 @@ -2,12 +2,20 @@ package com.chanko.yunxi.mes.module.heli.service.materialplan; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.chanko.yunxi.mes.framework.common.pojo.CommonResult; import com.chanko.yunxi.mes.framework.common.util.object.ObjectUtils; import com.chanko.yunxi.mes.framework.security.core.util.SecurityFrameworkUtils; import com.chanko.yunxi.mes.module.heli.dal.dataobject.attentiontodo.AttentiontodoDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.bdgzsomthing.bdgzsomthingDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplanboom.MaterialPlanBoomDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDetailDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.serialnumber.SerialNumberDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatchDetailDO; import com.chanko.yunxi.mes.module.heli.dal.mysql.attentiontodo.AttentiontodoMapper; +import com.chanko.yunxi.mes.module.heli.dal.mysql.materialplanboom.MaterialPlanBoomMapper; +import com.chanko.yunxi.mes.module.heli.dal.mysql.processbom.ProcessBomDetailMapper; +import com.chanko.yunxi.mes.module.heli.dal.mysql.taskdispatch.TaskDispatchDetailMapper; import com.chanko.yunxi.mes.module.heli.service.attentiontodo.AttentiontodoService; import com.chanko.yunxi.mes.module.heli.service.serialnumber.SerialNumberService; import com.chanko.yunxi.mes.module.system.api.user.AdminUserApi; @@ -15,11 +23,13 @@ import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO; import com.chanko.yunxi.mes.module.system.dal.mysql.user.AdminUserMapper; import com.chanko.yunxi.mes.module.system.service.user.AdminUserService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.core.parameters.P; import org.springframework.stereotype.Service; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.util.*; @@ -60,7 +70,13 @@ public class MaterialPlanServiceImpl implements MaterialPlanService { @Resource private AdminUserService adminUserService; @Resource + private MaterialPlanBoomMapper materialPlanBoomMapper; + @Resource private com.chanko.yunxi.mes.module.heli.dal.mysql.bdgzsomthing.bdgzsomthingMapper bdgzsomthingMapper; + @Resource + private ProcessBomDetailMapper processBomDetailMapper; + @Resource + private TaskDispatchDetailMapper taskDispatchDetailMapper; @Override public Long createMaterialPlan(MaterialPlanSaveReqVO createReqVO) { // 插入 @@ -197,5 +213,116 @@ public class MaterialPlanServiceImpl implements MaterialPlanService { public PageResult getMaterialPlanPage(MaterialPlanPageReqVO pageReqVO) { return materialPlanMapper.selectPage(pageReqVO); } + @Override + public PageResult getMaterialPlanPages(MaterialPlanPageReqVO pageReqVO) { + return materialPlanMapper.selectPages(pageReqVO); + } + + @Override + public CommonResult delMaterialPlan(Long id) { + MaterialPlanDO planDO = materialPlanMapper.selectById(id); + if(ObjectUtil.isEmpty(planDO)) return CommonResult.error(400,"该物料需求单号不存在,请确认!"); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(MaterialPlanBoomDO::getProjectMaterialPlanId, planDO.getId()); + queryWrapper.in(MaterialPlanBoomDO::getMplanStatus,1,2,3); + if (materialPlanBoomMapper.selectCount(queryWrapper) > 0)return CommonResult.error(400,"该物料需求计划已送审,不允许删除,请确认!"); + LambdaQueryWrapper queryWrapper1 = new LambdaQueryWrapper<>(); + queryWrapper1.eq(MaterialPlanBoomDO::getProjectMaterialPlanId, planDO.getId()); + if (planDO.getMatType()==0){ + LambdaUpdateWrapper lambdaUpdateWrapper = new LambdaUpdateWrapper<>(); + lambdaUpdateWrapper.eq(ProcessBomDetailDO::getProjectMaterialPlanNo, planDO.getProjectMaterialPlanNo()); + lambdaUpdateWrapper.set(ProcessBomDetailDO::getProjectMaterialPlanNo, null); + lambdaUpdateWrapper.set(ProcessBomDetailDO::getDuEmpId, null); + lambdaUpdateWrapper.set(ProcessBomDetailDO::getMplanStatus,0); + lambdaUpdateWrapper.set(ProcessBomDetailDO::getMplanDate,null); + processBomDetailMapper.update(lambdaUpdateWrapper); + }else { + LambdaUpdateWrapper lambdaUpdateWrapper = new LambdaUpdateWrapper<>(); + lambdaUpdateWrapper.eq(TaskDispatchDetailDO::getProjectMaterialPlanNo, planDO.getProjectMaterialPlanNo()); + lambdaUpdateWrapper.set(TaskDispatchDetailDO::getProjectMaterialPlanNo, null); + lambdaUpdateWrapper.set(TaskDispatchDetailDO::getPlanStatus,0); + lambdaUpdateWrapper.set(TaskDispatchDetailDO::getProjectMaterialPlanDetailId,null); + taskDispatchDetailMapper.update(lambdaUpdateWrapper); + } + materialPlanBoomMapper.delete(queryWrapper1); + materialPlanMapper.deleteById(planDO.getId()); + return CommonResult.success(true); + } + + @Override + public PageResult getPartPage(MaterialPlanPageReqVO pageReqVO) { + return taskDispatchDetailMapper.getPartPage(pageReqVO); + } + + @Override + @Transactional + public Boolean submit(List list) { + TaskDispatchDetailDO detailDO = list.get(0); + MaterialPlanDO planDO = new MaterialPlanDO(); + SerialNumberDO serialNumberDO = new SerialNumberDO(); + serialNumberDO = serialNumberService.getSerialNumber(MATERIAL_PLAN.name(), new SimpleDateFormat("yyyyMMdd").format(new Date())); + serialNumberDO.setSerialNumber(serialNumberDO.getSerialNumber()+1); + planDO.setProjectMaterialPlanNo(MATERIAL_PLAN.getCode(serialNumberDO.getSerialNumber().toString())); + planDO.setProjectId(detailDO.getProjectId()); + planDO.setProjectPlanId(detailDO.getPlanId()); + planDO.setCustomerId(detailDO.getCustomerId()); + planDO.setBrief(detailDO.getCustomerName()); + planDO.setProjectName(detailDO.getProjectName()); + planDO.setProjectNameSim(detailDO.getProjectNameSim()); + planDO.setMatType(1); + planDO.setProjectPlanSubId(detailDO.getProjectSubId()); + planDO.setName(detailDO.getProjectSubName()); + planDO.setNameSim(detailDO.getNameSim()); + planDO.setMatPlanDate(new Date()); + materialPlanMapper.insert(planDO); + // 回写序列记录 + serialNumberService.updateSerialNumber(serialNumberDO); + List materialPlanBoomDOList = new ArrayList<>(); + for (TaskDispatchDetailDO taskDispatchDetailDO : list) { + MaterialPlanBoomDO boomDO = new MaterialPlanBoomDO(); + boomDO.setProjectMaterialPlanId(planDO.getId()); + boomDO.setBoomDetailId(taskDispatchDetailDO.getBomDetailId()); + boomDO.setBoomAmount(new BigDecimal(taskDispatchDetailDO.getBoomAmount())); + boomDO.setBoomArriveDate(taskDispatchDetailDO.getBoomArriveDate()); + boomDO.setMatName(taskDispatchDetailDO.getMaterialName()); + boomDO.setDuEmpId(taskDispatchDetailDO.getDuEmpId()); + boomDO.setProjectPlanSubId(taskDispatchDetailDO.getProjectSubId()); + boomDO.setMplanStatus(0); + boomDO.setMatWeight(taskDispatchDetailDO.getMatWeight()); + boomDO.setDescription(taskDispatchDetailDO.getDescription()); + materialPlanBoomMapper.insert(boomDO); + materialPlanBoomDOList.add(boomDO); + taskDispatchDetailDO.setProjectMaterialPlanDetailId(boomDO.getId()); + taskDispatchDetailDO.setPlanStatus(1); + taskDispatchDetailDO.setProjectMaterialPlanNo(planDO.getProjectMaterialPlanNo()); + } +// materialPlanBoomMapper.insertBatch(materialPlanBoomDOList); + taskDispatchDetailMapper.insertOrUpdateBatch(list); + return true; + } + + @Override + public CommonResult withdraw(String code) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(MaterialPlanDO::getProjectMaterialPlanNo, code); + wrapper.eq(MaterialPlanDO::getDeleted,0); + MaterialPlanDO planDO = materialPlanMapper.selectOne(wrapper); + if(ObjectUtil.isEmpty(planDO)) return CommonResult.error(400,"该物料需求单号不存在,请确认!"); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(MaterialPlanBoomDO::getProjectMaterialPlanId, planDO.getId()); + queryWrapper.in(MaterialPlanBoomDO::getMplanStatus,1,2,3); + if (materialPlanBoomMapper.selectCount(queryWrapper) > 0)return CommonResult.error(400,"该物料需求计划已送审,不允许撤回,请确认!"); + LambdaQueryWrapper queryWrapper1 = new LambdaQueryWrapper<>(); + queryWrapper1.eq(MaterialPlanBoomDO::getProjectMaterialPlanId, planDO.getId()); + materialPlanBoomMapper.delete(queryWrapper1); + materialPlanMapper.deleteById(planDO.getId()); + LambdaUpdateWrapper lambdaUpdateWrapper = new LambdaUpdateWrapper<>(); + lambdaUpdateWrapper.eq(TaskDispatchDetailDO::getProjectMaterialPlanNo, code); + lambdaUpdateWrapper.set(TaskDispatchDetailDO::getProjectMaterialPlanNo, null); + lambdaUpdateWrapper.set(TaskDispatchDetailDO::getPlanStatus,0); + lambdaUpdateWrapper.set(TaskDispatchDetailDO::getProjectMaterialPlanDetailId,null); + taskDispatchDetailMapper.update(lambdaUpdateWrapper); + return CommonResult.success(true); + } } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplanboom/MaterialPlanBoomService.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplanboom/MaterialPlanBoomService.java index 278c148..3391b35 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplanboom/MaterialPlanBoomService.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplanboom/MaterialPlanBoomService.java @@ -57,4 +57,5 @@ public interface MaterialPlanBoomService { PageResult getProcessBoomDetailList(ProcessBoomPageReqVO pageReqVO); + PageResult getMaterialPlanBoomPages(ProcessBoomPageReqVO pageReqVO); } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplanboom/MaterialPlanBoomServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplanboom/MaterialPlanBoomServiceImpl.java index b04ae36..c7e99d9 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplanboom/MaterialPlanBoomServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplanboom/MaterialPlanBoomServiceImpl.java @@ -154,4 +154,9 @@ public class MaterialPlanBoomServiceImpl implements MaterialPlanBoomService { return processBomDetailDOPageResult; } + @Override + public PageResult getMaterialPlanBoomPages(ProcessBoomPageReqVO pageReqVO) { + return materialPlanBoomMapper.getMaterialPlanBoomPages(pageReqVO); + } + } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processbom/ProcessBomService.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processbom/ProcessBomService.java index 80fe2c8..2b01588 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processbom/ProcessBomService.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processbom/ProcessBomService.java @@ -1,5 +1,6 @@ package com.chanko.yunxi.mes.module.heli.service.processbom; +import com.chanko.yunxi.mes.framework.common.pojo.CommonResult; import com.chanko.yunxi.mes.framework.common.pojo.PageResult; import com.chanko.yunxi.mes.module.heli.controller.admin.processbom.vo.ProcessBomPageReqVO; import com.chanko.yunxi.mes.module.heli.controller.admin.processbom.vo.ProcessBomSaveReqVO; @@ -91,4 +92,10 @@ public interface ProcessBomService { void deleteProcessBomDetailNew(Long id); ProcessBomDetailDO selectProcessBomDetail(Long id); void updateProcessBomDetail(ProcessBomDetailDO processBomDetailDO); + + PageResult getStandardPage(ProcessBomPageReqVO pageReqVO); + + Boolean submit(List list); + + CommonResult withdraw(String code); } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processbom/ProcessBomServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processbom/ProcessBomServiceImpl.java index 4479eea..aab3119 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processbom/ProcessBomServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processbom/ProcessBomServiceImpl.java @@ -4,10 +4,12 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.generator.IFill; import com.chanko.yunxi.mes.framework.common.enums.BomEditStatusEnum; import com.chanko.yunxi.mes.framework.common.enums.StatusEnum; import com.chanko.yunxi.mes.framework.common.exception.ErrorCode; +import com.chanko.yunxi.mes.framework.common.pojo.CommonResult; 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.util.object.BeanUtils; @@ -23,14 +25,18 @@ import com.chanko.yunxi.mes.module.heli.dal.dataobject.bdgzsomthing.bdgzsomthing 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.plan.PlanDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.plantask.PlanTaskDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.plantaskbom.PlanTaskBomDO; 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.serialnumber.SerialNumberDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.shenhe.ShenheDO; import com.chanko.yunxi.mes.module.heli.dal.mysql.attentiontodo.AttentiontodoMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.bdgzsomthing.bdgzsomthingMapper; +import com.chanko.yunxi.mes.module.heli.dal.mysql.materialplan.MaterialPlanMapper; +import com.chanko.yunxi.mes.module.heli.dal.mysql.materialplanboom.MaterialPlanBoomMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.plan.PlanMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.plantask.PlanTaskMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.processbom.ProcessBomDetailMapper; @@ -41,6 +47,7 @@ import com.chanko.yunxi.mes.module.heli.service.attentiontodo.AttentiontodoServi import com.chanko.yunxi.mes.module.heli.service.composition.CompositionService; import com.chanko.yunxi.mes.module.heli.service.material.MaterialService; import com.chanko.yunxi.mes.module.heli.service.plantaskbom.PlanTaskBomService; +import com.chanko.yunxi.mes.module.heli.service.serialnumber.SerialNumberService; import com.chanko.yunxi.mes.module.system.api.user.AdminUserApi; import com.chanko.yunxi.mes.module.system.controller.admin.dict.vo.data.DictDataPageReqVO; import com.chanko.yunxi.mes.module.system.dal.dataobject.dict.DictDataDO; @@ -63,12 +70,14 @@ import java.io.IOException; import java.io.Serializable; import java.math.BigDecimal; import java.rmi.RemoteException; +import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.chanko.yunxi.mes.framework.common.pojo.CommonResult.error; +import static com.chanko.yunxi.mes.module.heli.enums.CodeEnum.MATERIAL_PLAN; import static com.chanko.yunxi.mes.module.heli.enums.ErrorCodeConstants.*; /** @@ -108,6 +117,12 @@ public class ProcessBomServiceImpl implements ProcessBomService { private AdminUserService adminUserService; @Resource private PlanMapper planMapper; + @Resource + private SerialNumberService serialNumberService; + @Resource + private MaterialPlanMapper materialPlanMapper; + @Resource + private MaterialPlanBoomMapper materialPlanBoomMapper; @Override @Transactional(rollbackFor = Exception.class) public Long createProcessBom(ProcessBomSaveReqVO createReqVO) { @@ -987,6 +1002,82 @@ public class ProcessBomServiceImpl implements ProcessBomService { public void updateProcessBomDetail(ProcessBomDetailDO processBomDetailDO){ processBomDetailMapper.updateById(processBomDetailDO); } + + @Override + public PageResult getStandardPage(ProcessBomPageReqVO pageReqVO) { + return processBomDetailMapper.getStandardPage(pageReqVO); + } + + @Override + public Boolean submit(List list) { + ProcessBomDetailDO detailDO = list.get(0); + MaterialPlanDO planDO = new MaterialPlanDO(); + SerialNumberDO serialNumberDO = new SerialNumberDO(); + serialNumberDO = serialNumberService.getSerialNumber(MATERIAL_PLAN.name(), new SimpleDateFormat("yyyyMMdd").format(new Date())); + serialNumberDO.setSerialNumber(serialNumberDO.getSerialNumber()+1); + planDO.setProjectMaterialPlanNo(MATERIAL_PLAN.getCode(serialNumberDO.getSerialNumber().toString())); + planDO.setProjectId(detailDO.getProjectId()); + planDO.setProjectPlanId(detailDO.getPlanId()); + planDO.setCustomerId(detailDO.getCustomerId()); + planDO.setBrief(detailDO.getCustomerName()); + planDO.setProjectName(detailDO.getProjectName()); + planDO.setProjectNameSim(detailDO.getProjectNameSim()); + planDO.setMatType(0); + planDO.setProjectPlanSubId(detailDO.getProjectSubId()); + planDO.setName(detailDO.getProjectSubName()); + planDO.setNameSim(detailDO.getNameSim()); + planDO.setMatPlanDate(new Date()); + materialPlanMapper.insert(planDO); + + // 回写序列记录 + serialNumberService.updateSerialNumber(serialNumberDO); + List materialPlanBoomDOList = new ArrayList<>(); + for (ProcessBomDetailDO processBomDetailDO : list) { + MaterialPlanBoomDO boomDO = new MaterialPlanBoomDO(); + boomDO.setProjectMaterialPlanId(planDO.getId()); + boomDO.setBoomDetailId(processBomDetailDO.getId()); + boomDO.setBoomAmount(new BigDecimal(processBomDetailDO.getAmount())); + boomDO.setBoomArriveDate(processBomDetailDO.getBoomArriveDate()); + boomDO.setMatName(processBomDetailDO.getMaterialName()); + boomDO.setDuEmpId(processBomDetailDO.getDuEmpId()); + boomDO.setProjectPlanSubId(processBomDetailDO.getProjectSubId()); + boomDO.setMaterialId(processBomDetailDO.getMaterialId()); + boomDO.setMplanStatus(0); + materialPlanBoomDOList.add(boomDO); + processBomDetailDO.setMplanDate(processBomDetailDO.getBoomArriveDate()); + processBomDetailDO.setMplanStatus(1); + processBomDetailDO.setProjectMaterialPlanNo(planDO.getProjectMaterialPlanNo()); + } + materialPlanBoomMapper.insertBatch(materialPlanBoomDOList); + processBomDetailMapper.insertOrUpdateBatch(list); + return true; + } + + @Override + public CommonResult withdraw(String code) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(MaterialPlanDO::getProjectMaterialPlanNo, code); + wrapper.eq(MaterialPlanDO::getDeleted,0); + MaterialPlanDO planDO = materialPlanMapper.selectOne(wrapper); + if(ObjectUtil.isEmpty(planDO)) return CommonResult.error(400,"该物料需求单号不存在,请确认!"); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(MaterialPlanBoomDO::getProjectMaterialPlanId, planDO.getId()); + queryWrapper.in(MaterialPlanBoomDO::getMplanStatus,1,2,3); + if (materialPlanBoomMapper.selectCount(queryWrapper) > 0)return CommonResult.error(400,"该物料需求计划已送审,不允许撤回,请确认!"); + LambdaQueryWrapper queryWrapper1 = new LambdaQueryWrapper<>(); + queryWrapper1.eq(MaterialPlanBoomDO::getProjectMaterialPlanId, planDO.getId()); + materialPlanBoomMapper.delete(queryWrapper1); + materialPlanMapper.deleteById(planDO.getId()); + LambdaUpdateWrapper lambdaUpdateWrapper = new LambdaUpdateWrapper<>(); + lambdaUpdateWrapper.eq(ProcessBomDetailDO::getProjectMaterialPlanNo, code); + lambdaUpdateWrapper.set(ProcessBomDetailDO::getProjectMaterialPlanNo, null); + lambdaUpdateWrapper.set(ProcessBomDetailDO::getDuEmpId, null); + lambdaUpdateWrapper.set(ProcessBomDetailDO::getMplanStatus,0); + lambdaUpdateWrapper.set(ProcessBomDetailDO::getMplanDate,null); + processBomDetailMapper.update(lambdaUpdateWrapper); + return CommonResult.success(true); + } + private void createProcessBomDetailList(String bomCode,Long bomId, List list,Integer num) { LocalDateTime now = LocalDateTime.now(); /*list.forEach(o -> {o.setBomId(bomId);o.setUpdateTimes(now);} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processdesign/ProcessDesignServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processdesign/ProcessDesignServiceImpl.java index 549fddc..2444837 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processdesign/ProcessDesignServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processdesign/ProcessDesignServiceImpl.java @@ -390,7 +390,7 @@ public class ProcessDesignServiceImpl implements ProcessDesignService { BdgzsomthingDO.setThingname(thingname); // BdgzsomthingDO.setThings(things); BdgzsomthingDO.setAttr4("1"); - BdgzsomthingDO.setAttr6(processDesignDO.getCustomerName()); + BdgzsomthingDO.setAttr6(processDesignDO.getBrief()); BdgzsomthingDO.setAttr7(processDesignDO.getProjectName()); BdgzsomthingDO.setAttr8(processDesignDO.getProjectSubName()); BdgzsomthingDO.setAttr9(processDesignProgressDO.getRemark()); 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 af2de45..abfd829 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 @@ -1,44 +1,69 @@ -import request from '@/config/axios' - -export interface MaterialPlanVO { - id: number - projectMaterialPlanNo: string - projectId: number - projectPlanId: number - submitUserId: number - submitTime: Date - auditor: number - auditTime: Date - status: number - description: string -} - -// 查询物料需求计划分页 -export const getMaterialPlanPage = async (params) => { - return await request.get({ url: `/heli/material-plan/page`, params }) -} - -// 查询物料需求计划详情 -export const getMaterialPlan = async (id: number) => { - return await request.get({ url: `/heli/material-plan/get?id=` + id }) -} - -// 新增物料需求计划 -export const createMaterialPlan = async (data: MaterialPlanVO) => { - return await request.post({ url: `/heli/material-plan/create`, data }) -} - -// 修改物料需求计划 -export const updateMaterialPlan = async (data: MaterialPlanVO) => { - return await request.put({ url: `/heli/material-plan/update`, data }) -} - -// 删除物料需求计划 -export const deleteMaterialPlan = async (id: number) => { - return await request.delete({ url: `/heli/material-plan/delete?id=` + id }) -} - -// 导出物料需求计划 Excel -export const exportMaterialPlan = async (params) => { - return await request.download({ url: `/heli/material-plan/export-excel`, params }) -} \ No newline at end of file +import request from '@/config/axios' + + + + +export interface MaterialPlanVO { + id: number + projectMaterialPlanNo: string + projectId: number + projectPlanId: number + submitUserId: number + submitTime: Date + auditor: number + auditTime: Date + status: number + description: string +} + +// 查询物料需求计划分页 +export const getMaterialPlanPage = async (params) => { + return await request.get({ url: `/heli/material-plan/page`, params }) +} + +// 查询物料需求计划详情 +export const getMaterialPlan = async (id: number) => { + return await request.get({ url: `/heli/material-plan/get?id=` + id }) +} + +// 新增物料需求计划 +export const createMaterialPlan = async (data: MaterialPlanVO) => { + return await request.post({ url: `/heli/material-plan/create`, data }) +} + +// 修改物料需求计划 +export const updateMaterialPlan = async (data: MaterialPlanVO) => { + return await request.put({ url: `/heli/material-plan/update`, data }) +} + +// 删除物料需求计划 +export const deleteMaterialPlan = async (id: number) => { + return await request.delete({ url: `/heli/material-plan/delete?id=` + id }) +} + +// 导出物料需求计划 Excel +export const exportMaterialPlan = async (params) => { + return await request.download({ url: `/heli/material-plan/export-excel`, params }) +} +// 查询标准件物料需求计划管理分页 +export const getMaterialPlanPages = async (params) => { + return await request.get({ url: `/heli/material-plan/pages`, params }) +} +// 删除物料需求计划 +export const delMaterialPlan = async (id: number) => { + return await request.delete({ url: `/heli/material-plan/delMaterialPlan?id=` + id }) +} +// 查询物料需求计划分页 +export const getPartPage = async (params) => { + return await request.get({ url: `/heli/material-plan/getPartPage`, params }) +} +// 导出物料需求计划 Excel +export const exportPart = async (params) => { + return await request.download({ url: `/heli/material-plan/exportPart`, params }) +} +export const submitForm = async (data) => { + return await request.post({ url: `/heli/material-plan/submit`, data }) +} +export const withdraw = async (code) => { + return await request.get({ url: `/heli/material-plan/withdraw?code=` + code }) +} diff --git a/mes-ui/mes-ui-admin-vue3/src/api/heli/materialplanboom/index.ts b/mes-ui/mes-ui-admin-vue3/src/api/heli/materialplanboom/index.ts index 1632378..43cb499 100644 --- a/mes-ui/mes-ui-admin-vue3/src/api/heli/materialplanboom/index.ts +++ b/mes-ui/mes-ui-admin-vue3/src/api/heli/materialplanboom/index.ts @@ -48,3 +48,6 @@ export const deleteMaterialPlanBoom = async (id: number) => { export const exportMaterialPlanBoom = async (params) => { return await request.download({ url: `/heli/material-plan-boom/export-excel`, params }) } +export const getMaterialPlanBoomPages = async (params) => { + return await request.get({ url: `/heli/material-plan-boom/pages`, params }) +} diff --git a/mes-ui/mes-ui-admin-vue3/src/api/heli/processbom/index.ts b/mes-ui/mes-ui-admin-vue3/src/api/heli/processbom/index.ts index 830a259..41d6adc 100644 --- a/mes-ui/mes-ui-admin-vue3/src/api/heli/processbom/index.ts +++ b/mes-ui/mes-ui-admin-vue3/src/api/heli/processbom/index.ts @@ -73,3 +73,19 @@ export const deleteProcessBomDetail = async (id: number) => { export async function operateProcessBom(data: ProcessBomVO) { return await request.post({ url: `/heli/process-bom/operate`, data }) } + +// 查询标准件物料需求计划 +export const getStandardPage = async (params) => { + return await request.get({ url: `/heli/process-bom/getStandardPage`, params }) +} +export const submitForm = async (data) => { + return await request.post({ url: `/heli/process-bom/submit`, data }) +} +export const withdraw = async (code) => { + return await request.get({ url: `/heli/process-bom/withdraw?code=` + code }) +} +// 导出工艺bom Excel +export const exportStandard = async (params) => { + return await request.download({ url: `/heli/process-bom/exportStandard`, params }) +} + diff --git a/mes-ui/mes-ui-admin-vue3/src/utils/dict.ts b/mes-ui/mes-ui-admin-vue3/src/utils/dict.ts index f0c7d0f..af17730 100644 --- a/mes-ui/mes-ui-admin-vue3/src/utils/dict.ts +++ b/mes-ui/mes-ui-admin-vue3/src/utils/dict.ts @@ -279,7 +279,11 @@ export enum DICT_TYPE { HELI_PG_PLANTYPE = 'heli_pg_planType',//生产进度报表中派工是否完成状态 HELI_GRADE='heli_grade', HELI_CGTYPE='heli_cgType', - HELI_PROJECT_LEADER='heli_project_leader' + HELI_PROJECT_LEADER='heli_project_leader', + HELI_MATERIAL_PLAN_BOOM_STATUS = 'heli_material_plan_boom_status',//物料需求计划标准件状态 + HELI_MAT_TYPE = 'heli_mat_type',//物料需求计划类型 + HELI_PROJECT_MATERIAL_PLAN_BOOM_STATUS='heli_project_material_plan_boom_status'//物料需求计划Boon状态 + } diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/management.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/management.vue new file mode 100644 index 0000000..3f4e63a --- /dev/null +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/management.vue @@ -0,0 +1,180 @@ + + + diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/managementdetail.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/managementdetail.vue new file mode 100644 index 0000000..4370a74 --- /dev/null +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/managementdetail.vue @@ -0,0 +1,164 @@ + + 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 new file mode 100644 index 0000000..b6f98d1 --- /dev/null +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/part.vue @@ -0,0 +1,281 @@ + + + + diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/partmanagement.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/partmanagement.vue new file mode 100644 index 0000000..69d66b6 --- /dev/null +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/partmanagement.vue @@ -0,0 +1,180 @@ + + + diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/partmanagementdetail.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/partmanagementdetail.vue new file mode 100644 index 0000000..51b351f --- /dev/null +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/partmanagementdetail.vue @@ -0,0 +1,165 @@ + + diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/standard.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/standard.vue new file mode 100644 index 0000000..4c30a87 --- /dev/null +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/standard.vue @@ -0,0 +1,282 @@ + + + + diff --git a/mes-ui/mini-app/src/pages/productionReport/components/dataItem.vue b/mes-ui/mini-app/src/pages/productionReport/components/dataItem.vue index e9ffcd5..46ccaa2 100644 --- a/mes-ui/mini-app/src/pages/productionReport/components/dataItem.vue +++ b/mes-ui/mini-app/src/pages/productionReport/components/dataItem.vue @@ -1,206 +1,299 @@ import type { stringify } from 'querystring';