diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/plan/PlanController.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/plan/PlanController.java index 9841cd7d..f9e0a376 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/plan/PlanController.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/plan/PlanController.java @@ -3,6 +3,8 @@ package com.chanko.yunxi.mes.module.biz.controller.admin.plan; import com.chanko.yunxi.mes.module.biz.controller.admin.plan.vo.PlanPageReqVO; import com.chanko.yunxi.mes.module.biz.controller.admin.plan.vo.PlanRespVO; import com.chanko.yunxi.mes.module.biz.controller.admin.plan.vo.PlanSaveReqVO; +import com.chanko.yunxi.mes.module.biz.dal.dataobject.plan.PlanWorkshopDO; +import com.chanko.yunxi.mes.module.biz.dal.dataobject.plansub.PlanSubDO; import com.chanko.yunxi.mes.module.biz.service.plan.PlanService; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -101,4 +103,24 @@ public class PlanController { BeanUtils.toBean(list, PlanRespVO.class)); } + // ==================== 子表(生产计划子项目) ==================== + + @GetMapping("/plan-sub/list-by-project-plan-id") + @Operation(summary = "获得生产计划子项目列表") + @Parameter(name = "projectPlanId", description = "计划id") + @PreAuthorize("@ss.hasPermission('biz:plan:query')") + public CommonResult> getPlanSubListByProjectPlanId(@RequestParam("projectPlanId") Long projectPlanId) { + return success(planService.getPlanSubListByProjectPlanId(projectPlanId)); + } + + // ==================== 子表(生产计划车间计划) ==================== + + @GetMapping("/plan-workshop/list-by-project-plan-id") + @Operation(summary = "获得生产计划车间计划列表") + @Parameter(name = "projectPlanId", description = "计划id") + @PreAuthorize("@ss.hasPermission('biz:plan:query')") + public CommonResult> getPlanWorkshopListByProjectPlanId(@RequestParam("projectPlanId") Long projectPlanId) { + return success(planService.getPlanWorkshopListByProjectPlanId(projectPlanId)); + } + } diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/plan/vo/PlanSaveReqVO.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/plan/vo/PlanSaveReqVO.java index 143d4055..bbef7613 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/plan/vo/PlanSaveReqVO.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/plan/vo/PlanSaveReqVO.java @@ -1,12 +1,13 @@ package com.chanko.yunxi.mes.module.biz.controller.admin.plan.vo; +import com.chanko.yunxi.mes.module.biz.dal.dataobject.plan.PlanWorkshopDO; +import com.chanko.yunxi.mes.module.biz.dal.dataobject.plansub.PlanSubDO; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import java.util.*; -import javax.validation.constraints.*; -import java.util.*; -import org.springframework.format.annotation.DateTimeFormat; +import lombok.Data; + +import javax.validation.constraints.NotNull; import java.time.LocalDateTime; +import java.util.List; @Schema(description = "管理后台 - 生产计划新增/修改 Request VO") @Data @@ -67,4 +68,9 @@ public class PlanSaveReqVO { @Schema(description = "项目变更次数") private Integer changeNum; + @Schema(description = "生产计划子项目列表") + private List planSubs; + + @Schema(description = "生产计划车间计划列表") + private List planWorkshops; } diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/plantask/PlanTaskController.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/plantask/PlanTaskController.java deleted file mode 100644 index 81d9169c..00000000 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/plantask/PlanTaskController.java +++ /dev/null @@ -1,131 +0,0 @@ -package com.chanko.yunxi.mes.module.biz.controller.admin.plantask; - -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.biz.controller.admin.plantask.vo.PlanTaskPageReqVO; -import com.chanko.yunxi.mes.module.biz.controller.admin.plantask.vo.PlanTaskRespVO; -import com.chanko.yunxi.mes.module.biz.controller.admin.plantask.vo.PlanTaskSaveReqVO; -import com.chanko.yunxi.mes.module.biz.service.plantask.PlanTaskService; -import com.chanko.yunxi.mes.module.biz.enums.BusinessTypeEnum; -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.*; -import javax.servlet.http.*; -import java.time.LocalDateTime; -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.biz.dal.dataobject.plantask.PlanTaskDO; - -@Tag(name = "管理后台 - 生产计划任务") -@RestController -@RequestMapping("/biz/plan-task") -@Validated -public class PlanTaskController { - - @Resource - private PlanTaskService planTaskService; - - @Resource - private OperateLogFrameworkService operateLogFrameworkService; - - @Resource - private HttpServletRequest request; - - @PostMapping("/create") - @Operation(summary = "创建生产计划任务") - @PreAuthorize("@ss.hasPermission('biz:plan-task:create')") - public CommonResult createPlanTask(@Valid @RequestBody PlanTaskSaveReqVO createReqVO) { - return success(planTaskService.createPlanTask(createReqVO)); - } - - @PutMapping("/update") - @Operation(summary = "更新生产计划任务") - @PreAuthorize("@ss.hasPermission('biz:plan-task:update')") - public CommonResult updatePlanTask(@Valid @RequestBody PlanTaskSaveReqVO updateReqVO) { - LocalDateTime startTime = LocalDateTime.now(); - planTaskService.updatePlanTask(updateReqVO); - - // 手动记录日志 - operateLogFrameworkService.createOperateLog(request, - startTime, - BusinessTypeEnum.PLAN_TASK.name(), - updateReqVO.getId(), - OperateTypeEnum.valueOf(updateReqVO.getActive()).getType(), - ""); - return success(true); - } - - @DeleteMapping("/delete") - @Operation(summary = "删除生产计划任务") - @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('biz:plan-task:delete')") - public CommonResult deletePlanTask(@RequestParam("id") Long id) { - planTaskService.deletePlanTask(id); - return success(true); - } - - @GetMapping("/get") - @Operation(summary = "获得生产计划任务") - @Parameter(name = "id", description = "编号", required = true, example = "1024") - @PreAuthorize("@ss.hasPermission('biz:plan-task:query')") - public CommonResult getPlanTask(@RequestParam("id") Long id) { - PlanTaskDO planTask = planTaskService.getPlanTask(id); - return success(BeanUtils.toBean(planTask, PlanTaskRespVO.class)); - } - - @GetMapping("/page") - @Operation(summary = "获得生产计划任务分页") - @PreAuthorize("@ss.hasPermission('biz:plan-task:query')") - public CommonResult> getPlanTaskPage(@Valid PlanTaskPageReqVO pageReqVO) { - PageResult pageResult = planTaskService.getPlanTaskPage(pageReqVO); - return success(BeanUtils.toBean(pageResult, PlanTaskRespVO.class)); - } - - @GetMapping("/export-excel") - @Operation(summary = "导出生产计划任务 Excel") - @PreAuthorize("@ss.hasPermission('biz:plan-task:export')") - @OperateLog(type = EXPORT) - public void exportPlanTaskExcel(@Valid PlanTaskPageReqVO pageReqVO, - HttpServletResponse response) throws IOException { - pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); - List list = planTaskService.getPlanTaskPage(pageReqVO).getList(); - // 导出 Excel - ExcelUtils.write(response, "生产计划任务.xls", "数据", PlanTaskRespVO.class, - BeanUtils.toBean(list, PlanTaskRespVO.class)); - } - - @GetMapping("/get-version-status") - @Operation(summary = "获得bom需要更新的状态") - @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('biz:plan-task:query')") - public CommonResult getPlanTaskBomStatus(@RequestParam("id") Long id) { - return success(planTaskService.getPlanTaskBomStatus(id)); - } - - @GetMapping("/refresh") - @Operation(summary = "刷新生产计划任务单最新数据") - @Parameter(name = "id", description = "生产计划id", required = true) - @PreAuthorize("@ss.hasPermission('biz:plan-task:query')") - public CommonResult refreshPlanTaskByPlanId(@RequestParam("id") Long id) { - return success(planTaskService.refreshPlanTaskByPlanId(id)); - } - -} diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/plantask/vo/PlanTaskPageReqVO.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/plantask/vo/PlanTaskPageReqVO.java deleted file mode 100644 index 8630c498..00000000 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/plantask/vo/PlanTaskPageReqVO.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.chanko.yunxi.mes.module.biz.controller.admin.plantask.vo; - -import lombok.*; -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 PlanTaskPageReqVO extends PageParam { - - @Schema(description = "自增字段,唯一") - private Long id; - - @Schema(description = "项目id") - private Long projectId; - - @Schema(description = "生产计划id") - private Long projectPlanId; - - @Schema(description = "生产计划子项目id") - private Long projectPlanSubId; - - @Schema(description = "工艺bomid") - private Long processBomId; - - @Schema(description = "生产计划编号,唯一") - private String taskNo; - - @Schema(description = "bom版本号") - private Integer bomVersion; - - @Schema(description = "备注") - private String description; - - @Schema(description = "状态,1已保存,2已提交,3已终止 ,默认是1") - private Integer status; - - @Schema(description = "创建时间") - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - private LocalDateTime[] createTime; - - - @Schema(description = "客户名称") - private String customerName; - - @Schema(description = "项目编号") - private String projectCode; - - @Schema(description = "项目名称") - private String projectName; - - @Schema(description = "生产计划单号") - private String planNo; - - @Schema(description = "子项目编号") - private String projectSubCode; - - @Schema(description = "子项目名称") - private String projectSubName; - -} diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/plantask/vo/PlanTaskRespVO.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/plantask/vo/PlanTaskRespVO.java deleted file mode 100644 index 61fe19f0..00000000 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/plantask/vo/PlanTaskRespVO.java +++ /dev/null @@ -1,92 +0,0 @@ -package com.chanko.yunxi.mes.module.biz.controller.admin.plantask.vo; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -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 PlanTaskRespVO { - - @Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED) - @ExcelProperty("自增字段,唯一") - private Long id; - - @Schema(description = "项目id") - @ExcelProperty("项目id") - private Long projectId; - - @Schema(description = "生产计划id", requiredMode = Schema.RequiredMode.REQUIRED) - @ExcelProperty("生产计划id") - private Long projectPlanId; - - @Schema(description = "生产计划子项目id") - @ExcelProperty("生产计划子项目id") - private Long projectPlanSubId; - - @Schema(description = "工艺bomid") - @ExcelProperty("工艺bomid") - private Long processBomId; - - @Schema(description = "生产计划编号,唯一") - @ExcelProperty("生产计划编号,唯一") - private String taskNo; - - @Schema(description = "bom版本号") - @ExcelProperty("bom版本号") - private Integer bomVersion; - - @Schema(description = "备注") - @ExcelProperty("备注") - private String description; - - @Schema(description = "状态,1已保存,2已提交,3已终止 ,默认是1") - @ExcelProperty("状态,1已保存,2已提交,3已终止 ,默认是1") - private Integer status; - - @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) - @ExcelProperty("创建时间") - private LocalDateTime createTime; - - @Schema(description = "客户名称") - @ExcelProperty("客户名称") - private String customerName; - - @Schema(description = "项目编号") - @ExcelProperty("项目编号") - private String projectCode; - - @Schema(description = "项目名称") - @ExcelProperty("项目名称") - private String projectName; - - @Schema(description = "生产计划编号") - @ExcelProperty("生产计划编号") - private String planNo; - - @Schema(description = "子项目编号") - @ExcelProperty("子项目编号") - private String projectSubCode; - - @Schema(description = "子项目名称") - @ExcelProperty("子项目名称") - private String projectSubName; - - @Schema(description = "项目结束时间") - @ExcelProperty("项目结束时间") - private LocalDateTime projectEndTime; - - @Schema(description = "bom编号") - @ExcelProperty("bom编号") - private String bomCode; - - @Schema(description = "子项目数量") - @ExcelProperty("子项目数量") - private Integer orderSubAmount; - -} diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/plantask/vo/PlanTaskSaveReqVO.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/plantask/vo/PlanTaskSaveReqVO.java deleted file mode 100644 index 914dbbd3..00000000 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/plantask/vo/PlanTaskSaveReqVO.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.chanko.yunxi.mes.module.biz.controller.admin.plantask.vo; - -import com.chanko.yunxi.mes.module.biz.dal.dataobject.plantaskbom.PlanTaskBomDO; -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import java.util.*; -import javax.validation.constraints.*; - -@Schema(description = "管理后台 - 生产计划任务新增/修改 Request VO") -@Data -public class PlanTaskSaveReqVO { - - @Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED) - private Long id; - - @Schema(description = "项目id") - private Long projectId; - - @Schema(description = "生产计划id", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "生产计划id不能为空") - private Long projectPlanId; - - @Schema(description = "生产计划子项目id") - private Long projectPlanSubId; - - @Schema(description = "工艺bomid") - private Long processBomId; - - @Schema(description = "生产计划编号,唯一") - private String taskNo; - - @Schema(description = "bom版本号") - private Integer bomVersion; - - @Schema(description = "备注") - private String description; - - @Schema(description = "状态,1已保存,2已提交,3已终止 ,默认是1") - private Integer status; - - @Schema(description = "操作类型") - private String active; - - @Schema(description = "工艺bom明细列表") - private List bomDetails; - -} diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/plantaskbom/PlanTaskBomController.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/plantaskbom/PlanTaskBomController.java deleted file mode 100644 index 4f826f0d..00000000 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/plantaskbom/PlanTaskBomController.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.chanko.yunxi.mes.module.biz.controller.admin.plantaskbom; - -import com.chanko.yunxi.mes.module.biz.controller.admin.plantaskbom.vo.PlanTaskBomPageReqVO; -import com.chanko.yunxi.mes.module.biz.controller.admin.plantaskbom.vo.PlanTaskBomRespVO; -import com.chanko.yunxi.mes.module.biz.controller.admin.plantaskbom.vo.PlanTaskBomSaveReqVO; -import com.chanko.yunxi.mes.module.biz.service.plantaskbom.PlanTaskBomService; -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.*; -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.biz.dal.dataobject.plantaskbom.PlanTaskBomDO; - -@Tag(name = "管理后台 - 生产计划任务Bom") -@RestController -@RequestMapping("/biz/plan-task-bom") -@Validated -public class PlanTaskBomController { - - @Resource - private PlanTaskBomService planTaskBomService; - - @PostMapping("/create") - @Operation(summary = "创建生产计划任务Bom") - @PreAuthorize("@ss.hasPermission('biz:plan-task-bom:create')") - public CommonResult createPlanTaskBom(@Valid @RequestBody PlanTaskBomSaveReqVO createReqVO) { - return success(planTaskBomService.createPlanTaskBom(createReqVO)); - } - - @PutMapping("/update") - @Operation(summary = "更新生产计划任务Bom") - @PreAuthorize("@ss.hasPermission('biz:plan-task-bom:update')") - public CommonResult updatePlanTaskBom(@Valid @RequestBody PlanTaskBomSaveReqVO updateReqVO) { - planTaskBomService.updatePlanTaskBom(updateReqVO); - return success(true); - } - - @DeleteMapping("/delete") - @Operation(summary = "删除生产计划任务Bom") - @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('biz:plan-task-bom:delete')") - public CommonResult deletePlanTaskBom(@RequestParam("id") Long id) { - planTaskBomService.deletePlanTaskBom(id); - return success(true); - } - - @GetMapping("/get") - @Operation(summary = "获得生产计划任务Bom") - @Parameter(name = "id", description = "编号", required = true, example = "1024") - @PreAuthorize("@ss.hasPermission('biz:plan-task-bom:query')") - public CommonResult getPlanTaskBom(@RequestParam("id") Long id) { - PlanTaskBomDO planTaskBom = planTaskBomService.getPlanTaskBom(id); - return success(BeanUtils.toBean(planTaskBom, PlanTaskBomRespVO.class)); - } - - @GetMapping("/page") - @Operation(summary = "获得生产计划任务Bom分页") - @PreAuthorize("@ss.hasPermission('biz:plan-task-bom:query')") - public CommonResult> getPlanTaskBomPage(@Valid PlanTaskBomPageReqVO pageReqVO) { - PageResult pageResult = planTaskBomService.getPlanTaskBomPage(pageReqVO); - return success(BeanUtils.toBean(pageResult, PlanTaskBomRespVO.class)); - } - - @GetMapping("/export-excel") - @Operation(summary = "导出生产计划任务Bom Excel") - @PreAuthorize("@ss.hasPermission('biz:plan-task-bom:export')") - @OperateLog(type = EXPORT) - public void exportPlanTaskBomExcel(@Valid PlanTaskBomPageReqVO pageReqVO, - HttpServletResponse response) throws IOException { - pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); - List list = planTaskBomService.getPlanTaskBomPage(pageReqVO).getList(); - // 导出 Excel - ExcelUtils.write(response, "生产计划任务Bom.xls", "数据", PlanTaskBomRespVO.class, - BeanUtils.toBean(list, PlanTaskBomRespVO.class)); - } - -} diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/plantaskbom/vo/PlanTaskBomPageReqVO.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/plantaskbom/vo/PlanTaskBomPageReqVO.java deleted file mode 100644 index 4c4d21a6..00000000 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/plantaskbom/vo/PlanTaskBomPageReqVO.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.chanko.yunxi.mes.module.biz.controller.admin.plantaskbom.vo; - -import com.chanko.yunxi.mes.framework.common.pojo.PageParam; -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.ToString; -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 = "管理后台 - 生产计划任务Bom分页 Request VO") -@Data -@EqualsAndHashCode(callSuper = true) -@ToString(callSuper = true) -public class PlanTaskBomPageReqVO extends PageParam { - - @Schema(description = "自增字段,唯一") - private Long id; - - @Schema(description = "生产任务id") - private Long taskId; - - @Schema(description = "bom明细id") - private Long bomDetailId; - - @Schema(description = "负责人") - private String owner; - - @Schema(description = "要求完成日期") - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - private LocalDateTime[] requireEndDate; - - @Schema(description = "项目id") - private Long projectId; - - @Schema(description = "子项目id") - private Long projectSubId; - - @Schema(description = "零件类型 1 标准件|2 其它") - private String materialType; - - private Long projectPlanId; - - private Long projectPlanSubId; - - private Boolean sortByBlueprintNo; - -} diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/plantaskbom/vo/PlanTaskBomRespVO.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/plantaskbom/vo/PlanTaskBomRespVO.java deleted file mode 100644 index f5e72312..00000000 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/plantaskbom/vo/PlanTaskBomRespVO.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.chanko.yunxi.mes.module.biz.controller.admin.plantaskbom.vo; - -import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; -import com.alibaba.excel.annotation.ExcelProperty; -import com.baomidou.mybatisplus.annotation.TableField; -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; - -import java.time.LocalDateTime; - -@Schema(description = "管理后台 - 生产计划任务Bom Response VO") -@Data -@ExcelIgnoreUnannotated -public class PlanTaskBomRespVO { - - @Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED) - @ExcelProperty("自增字段,唯一") - private Long id; - - @Schema(description = "生产任务id", requiredMode = Schema.RequiredMode.REQUIRED) - @ExcelProperty("生产任务id") - private Long taskId; - - @Schema(description = "bom明细id", requiredMode = Schema.RequiredMode.REQUIRED) - @ExcelProperty("bom明细id") - private Long bomDetailId; - - @Schema(description = "负责人") - @ExcelProperty("负责人") - private String owner; - - @Schema(description = "要求完成日期") - @ExcelProperty("要求完成日期") - private LocalDateTime requireEndDate; - - @Schema(description = "零件名称") - private String materialName; - - @Schema(description = "物料名称") - private String compositionName; - - @Schema(description = "图号") - private String blueprintNo; - - @Schema(description = "零件类型 1 标准件|2 其它") - private String type; - - @Schema(description = "物料id") - private Long materialId; - - @Schema(description = "物料编码") - private String materialCode; - - @Schema(description = "材质id") - private Long compositionId; - - @Schema(description = "规格") - private String spec; - - @Schema(description = "单位") - private String unit; - - @Schema(description = "数量") - private Integer amount; - - @Schema(description = "负责人名称") - private String ownerName; - -} diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/plantaskbom/vo/PlanTaskBomSaveReqVO.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/plantaskbom/vo/PlanTaskBomSaveReqVO.java deleted file mode 100644 index 5f827b15..00000000 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/plantaskbom/vo/PlanTaskBomSaveReqVO.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.chanko.yunxi.mes.module.biz.controller.admin.plantaskbom.vo; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import java.util.*; -import javax.validation.constraints.*; -import java.util.*; -import org.springframework.format.annotation.DateTimeFormat; -import java.time.LocalDateTime; - -@Schema(description = "管理后台 - 生产计划任务Bom新增/修改 Request VO") -@Data -public class PlanTaskBomSaveReqVO { - - @Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED) - private Long id; - - @Schema(description = "生产任务id", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "生产任务id不能为空") - private Long taskId; - - @Schema(description = "bom明细id", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "bom明细id不能为空") - private Long bomDetailId; - - @Schema(description = "负责人") - private String owner; - - @Schema(description = "要求完成日期") - private LocalDateTime requireEndDate; - -} diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/taskdispatch/vo/TaskDispatchPageReqVO.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/taskdispatch/vo/TaskDispatchPageReqVO.java index 8d82328b..3e07aa39 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/taskdispatch/vo/TaskDispatchPageReqVO.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/taskdispatch/vo/TaskDispatchPageReqVO.java @@ -35,6 +35,9 @@ public class TaskDispatchPageReqVO extends PageParam { @Schema(description = "子项目id", example = "21985") private Long projectSubId; + @Schema(description = "车间id", example = "21985") + private Long workshopId; + @Schema(description = "bom明细id", example = "15969") private Long bomDetailId; diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/taskdispatch/vo/TaskDispatchRespVO.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/taskdispatch/vo/TaskDispatchRespVO.java index 10275a22..7c93b986 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/taskdispatch/vo/TaskDispatchRespVO.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/taskdispatch/vo/TaskDispatchRespVO.java @@ -43,6 +43,9 @@ public class TaskDispatchRespVO { @ExcelProperty("子项目id") private Long projectSubId; + @Schema(description = "车间id", example = "21985") + private Long workshopId; + @Schema(description = "bom明细id", example = "15969") @ExcelProperty("bom明细id") private Long bomDetailId; diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/taskdispatch/vo/TaskDispatchSaveReqVO.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/taskdispatch/vo/TaskDispatchSaveReqVO.java index 8fbf5ef6..8ea9b475 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/taskdispatch/vo/TaskDispatchSaveReqVO.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/taskdispatch/vo/TaskDispatchSaveReqVO.java @@ -36,6 +36,10 @@ public class TaskDispatchSaveReqVO { @NotNull(message = "子项目id不能为空") private Long projectSubId; + @Schema(description = "车间id", example = "21985") + @NotNull(message = "车间id不能为空") + private Long workshopId; + @Schema(description = "bom明细id", example = "15969") private Long bomDetailId; diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/dataobject/plan/PlanWorkshopDO.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/dataobject/plan/PlanWorkshopDO.java new file mode 100644 index 00000000..3b29a142 --- /dev/null +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/dataobject/plan/PlanWorkshopDO.java @@ -0,0 +1,52 @@ +package com.chanko.yunxi.mes.module.biz.dal.dataobject.plan; + +import com.baomidou.mybatisplus.annotation.KeySequence; +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 java.time.LocalDateTime; + +/** + * 生产计划车间计划 DO + * + * @author 管理员 + */ +@TableName("project_plan_workshop") +@KeySequence("project_plan_workshop_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PlanWorkshopDO extends BaseDO { + + /** + * 自增字段,唯一 + */ + @TableId + private Long id; + /** + * 计划id + */ + private Long projectPlanId; + /** + * 项目id + */ + private Long projectId; + /** + * 车间id + */ + private Long workshopId; + /** + * 预计开始时间 + */ + private LocalDateTime startTime; + /** + * 预计结束时间 + */ + private LocalDateTime endTime; + +} diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/dataobject/plantask/PlanTaskDO.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/dataobject/plantask/PlanTaskDO.java deleted file mode 100644 index 65ae240a..00000000 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/dataobject/plantask/PlanTaskDO.java +++ /dev/null @@ -1,82 +0,0 @@ -package com.chanko.yunxi.mes.module.biz.dal.dataobject.plantask; - -import cn.hutool.core.date.DateTime; -import lombok.*; -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_plan_task") -@KeySequence("project_plan_task_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 -@Data -@EqualsAndHashCode(callSuper = true) -@ToString(callSuper = true) -@Builder -@NoArgsConstructor -@AllArgsConstructor -public class PlanTaskDO extends BaseDO { - - /** - * 自增字段,唯一 - */ - @TableId - private Long id; - /** - * 项目id - */ - private Long projectId; - /** - * 生产计划id - */ - private Long projectPlanId; - /** - * 生产计划子项目id - */ - private Long projectPlanSubId; - /** - * 工艺bomid - */ - private Long processBomId; - /** - * 生产计划编号,唯一 - */ - private String taskNo; - /** - * bom版本号 - */ - private Integer bomVersion; - /** - * 备注 - */ - private String description; - /** - * 状态,1已保存,2已提交,3已终止 ,默认是1 - */ - private Integer status; - - @TableField(exist = false) - private String customerName; - @TableField(exist = false) - private String projectCode; - @TableField(exist = false) - private String projectName; - @TableField(exist = false) - private LocalDateTime projectEndTime; - @TableField(exist = false) - private String planNo; - @TableField(exist = false) - private String projectSubCode; - @TableField(exist = false) - private String projectSubName; - @TableField(exist = false) - private String bomCode; - @TableField(exist = false) - private Integer orderSubAmount; -} diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/dataobject/plantaskbom/PlanTaskBomDO.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/dataobject/plantaskbom/PlanTaskBomDO.java deleted file mode 100644 index 30595a28..00000000 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/dataobject/plantaskbom/PlanTaskBomDO.java +++ /dev/null @@ -1,94 +0,0 @@ -package com.chanko.yunxi.mes.module.biz.dal.dataobject.plantaskbom; - -import com.baomidou.mybatisplus.annotation.KeySequence; -import com.baomidou.mybatisplus.annotation.TableField; -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 java.time.LocalDateTime; - -/** - * 生产计划任务Bom DO - * - * @author 管理员 - */ -@TableName("project_plan_task_bom") -@KeySequence("project_plan_task_bom_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 -@Data -@EqualsAndHashCode(callSuper = true) -@ToString(callSuper = true) -@Builder -@NoArgsConstructor -@AllArgsConstructor -public class PlanTaskBomDO extends BaseDO { - - /** - * 自增字段,唯一 - */ - @TableId - private Long id; - /** - * 生产任务id - */ - private Long taskId; - /** - * bom明细id - */ - private Long bomDetailId; - /** - * 负责人 - */ - private String owner; - /** - * 要求完成日期 - */ - private LocalDateTime requireEndDate; - - @TableField(exist = false) - private String materialName; - - @TableField(exist = false) - private String compositionName; - - @TableField(exist = false) - private String blueprintNo; - - @TableField(exist = false) - private String type; - /** - * 物料id - */ - @TableField(exist = false) - private Long materialId; - /** - * 物料编码 - */ - @TableField(exist = false) - private String materialCode; - /** - * 材质id - */ - @TableField(exist = false) - private Long compositionId; - /** - * 规格 - */ - @TableField(exist = false) - private String spec; - /** - * 单位 - */ - @TableField(exist = false) - private String unit; - /** - * 数量 - */ - @TableField(exist = false) - private Integer amount; - - @TableField(exist = false) - private String ownerName; - -} diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/dataobject/projectorder/ProjectOrderSubDO.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/dataobject/projectorder/ProjectOrderSubDO.java index e1eaed61..b8f8229e 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/dataobject/projectorder/ProjectOrderSubDO.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/dataobject/projectorder/ProjectOrderSubDO.java @@ -5,6 +5,7 @@ import com.chanko.yunxi.mes.framework.mybatis.core.dataobject.BaseDO; import lombok.*; import java.math.BigDecimal; +import java.time.LocalDateTime; import java.util.Set; /** @@ -121,4 +122,28 @@ public class ProjectOrderSubDO extends BaseDO { @TableField(exist = false) private String spec; + + @TableField(exist = false) + private String projectExternalCode; + + @TableField(exist = false) + private String planCode; + + @TableField(exist = false) + private String productionStatus; + + @TableField(exist = false) + private LocalDateTime projectStartTime; + + @TableField(exist = false) + private LocalDateTime projectEndTime; + + @TableField(exist = false) + private String workshopName; + + @TableField(exist = false) + private String procedureName; + + @TableField(exist = false) + private Integer restDays; } diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/dataobject/taskdispatch/TaskDispatchDO.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/dataobject/taskdispatch/TaskDispatchDO.java index 75e1e5da..a0f8984d 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/dataobject/taskdispatch/TaskDispatchDO.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/dataobject/taskdispatch/TaskDispatchDO.java @@ -57,6 +57,10 @@ public class TaskDispatchDO extends BaseDO { * 子项目id */ private Long projectSubId; + /** + * 车间id + */ + private Long workshopId; /** * bom明细id */ diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/mysql/plan/PlanWorkshopMapper.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/mysql/plan/PlanWorkshopMapper.java new file mode 100644 index 00000000..7838c425 --- /dev/null +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/mysql/plan/PlanWorkshopMapper.java @@ -0,0 +1,25 @@ +package com.chanko.yunxi.mes.module.biz.dal.mysql.plan; + +import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX; +import com.chanko.yunxi.mes.module.biz.dal.dataobject.plan.PlanWorkshopDO; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * 生产计划车间计划 Mapper + * + * @author 管理员 + */ +@Mapper +public interface PlanWorkshopMapper extends BaseMapperX { + + default List selectListByProjectPlanId(Long projectPlanId) { + return selectList(PlanWorkshopDO::getProjectPlanId, projectPlanId); + } + + default int deleteByProjectPlanId(Long projectPlanId) { + return delete(PlanWorkshopDO::getProjectPlanId, projectPlanId); + } + +} diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/mysql/plansub/PlanSubMapper.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/mysql/plansub/PlanSubMapper.java index 9f4b4062..fd64a296 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/mysql/plansub/PlanSubMapper.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/mysql/plansub/PlanSubMapper.java @@ -55,4 +55,12 @@ public interface PlanSubMapper extends BaseMapperX { return selectList(query); } + default int deleteByProjectPlanId(Long projectPlanId) { + return delete(PlanSubDO::getProjectPlanId, projectPlanId); + } + + default List selectListByProjectPlanId(Long projectPlanId) { + return selectList(PlanSubDO::getProjectPlanId, projectPlanId); + } + } diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/mysql/plantask/PlanTaskMapper.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/mysql/plantask/PlanTaskMapper.java deleted file mode 100644 index 3a0c6590..00000000 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/mysql/plantask/PlanTaskMapper.java +++ /dev/null @@ -1,84 +0,0 @@ -package com.chanko.yunxi.mes.module.biz.dal.mysql.plantask; - -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.biz.controller.admin.plantask.vo.PlanTaskPageReqVO; -import com.chanko.yunxi.mes.module.biz.dal.dataobject.customer.CustomerDO; -import com.chanko.yunxi.mes.module.biz.dal.dataobject.plan.PlanDO; -import com.chanko.yunxi.mes.module.biz.dal.dataobject.plansub.PlanSubDO; -import com.chanko.yunxi.mes.module.biz.dal.dataobject.plantask.PlanTaskDO; -import com.chanko.yunxi.mes.module.biz.dal.dataobject.processbom.ProcessBomDO; -import com.chanko.yunxi.mes.module.biz.dal.dataobject.projectorder.ProjectOrderDO; -import com.chanko.yunxi.mes.module.biz.dal.dataobject.projectorder.ProjectOrderSubDO; -import com.github.yulichang.wrapper.MPJLambdaWrapper; -import org.apache.ibatis.annotations.Mapper; -import org.springframework.util.StringUtils; - -/** - * 生产计划任务 Mapper - * - * @author 管理员 - */ -@Mapper -public interface PlanTaskMapper extends BaseMapperX { - - default PageResult selectPage(PlanTaskPageReqVO reqVO) { - MPJLambdaWrapper query = new MPJLambdaWrapper<>(); - - query.selectAll(PlanTaskDO.class) - .select("e.name as customerName","p.code as projectCode","p.project_name as projectName","p.project_end_time as projectEndTime") - .select("pl.plan_no as planNo","ps.project_sub_code as projectSubCode","po.name as projectSubName","concat('BOM-', ps.project_sub_code) as bomCode") - .select("po.amount as orderSubAmount") - .leftJoin(PlanDO.class, "pl", PlanDO::getId, PlanTaskDO::getProjectPlanId) - .leftJoin(PlanSubDO.class, "ps", PlanSubDO::getId, PlanTaskDO::getProjectPlanSubId) - .leftJoin(ProjectOrderDO.class, "p", ProjectOrderDO::getId, PlanTaskDO::getProjectId) - .leftJoin(ProjectOrderSubDO.class, "po", ProjectOrderSubDO::getId, PlanSubDO::getProjectSubId) - .leftJoin(CustomerDO.class, "e", CustomerDO::getId, ProjectOrderDO::getCustomerId) - .leftJoin(ProcessBomDO.class, "pb", ProcessBomDO::getId, PlanTaskDO::getProcessBomId) - .disableSubLogicDel() - .orderByDesc(PlanTaskDO::getCreateTime); - query.like(!StringUtils.isEmpty(reqVO.getTaskNo()), PlanTaskDO::getTaskNo, reqVO.getTaskNo()) - .like(!StringUtils.isEmpty(reqVO.getProjectCode()), "p.code", reqVO.getProjectCode()) - .like(!StringUtils.isEmpty(reqVO.getCustomerName()), "e.name", reqVO.getCustomerName()) - .like(!StringUtils.isEmpty(reqVO.getProjectName()), "p.project_name", reqVO.getProjectName()) - .like(!StringUtils.isEmpty(reqVO.getPlanNo()), "pl.plan_no", reqVO.getPlanNo()) - .like(!StringUtils.isEmpty(reqVO.getProjectSubCode()), "ps.project_sub_code", reqVO.getProjectSubCode()) - .like(!StringUtils.isEmpty(reqVO.getProjectSubName()), "po.name", reqVO.getProjectSubName()) - .eq(reqVO.getStatus() != null, PlanTaskDO::getStatus, reqVO.getStatus()); - - return selectPage(reqVO, query); - -// return selectPage(reqVO, new LambdaQueryWrapperX() -// .eqIfPresent(PlanTaskDO::getId, reqVO.getId()) -// .eqIfPresent(PlanTaskDO::getProjectId, reqVO.getProjectId()) -// .eqIfPresent(PlanTaskDO::getProjectPlanId, reqVO.getProjectPlanId()) -// .eqIfPresent(PlanTaskDO::getProjectPlanSubId, reqVO.getProjectPlanSubId()) -// .eqIfPresent(PlanTaskDO::getProcessBomId, reqVO.getProcessBomId()) -// .eqIfPresent(PlanTaskDO::getTaskNo, reqVO.getTaskNo()) -// .eqIfPresent(PlanTaskDO::getBomVersion, reqVO.getBomVersion()) -// .eqIfPresent(PlanTaskDO::getDescription, reqVO.getDescription()) -// .eqIfPresent(PlanTaskDO::getStatus, reqVO.getStatus()) -// .betweenIfPresent(PlanTaskDO::getCreateTime, reqVO.getCreateTime()) -// .orderByDesc(PlanTaskDO::getId)); - } - - default PlanTaskDO selectById(Long id) { - MPJLambdaWrapper query = new MPJLambdaWrapper<>(); - query.selectAll(PlanTaskDO.class) - .select("e.name as customerName","p.code as projectCode","p.project_name as projectName","p.project_end_time as projectEndTime") - .select("pl.plan_no as planNo","ps.project_sub_code as projectSubCode","po.name as projectSubName","concat('BOM-', ps.project_sub_code) as bomCode") - .select("po.amount as orderSubAmount") - .leftJoin(PlanDO.class, "pl", PlanDO::getId, PlanTaskDO::getProjectPlanId) - .leftJoin(PlanSubDO.class, "ps", PlanSubDO::getId, PlanTaskDO::getProjectPlanSubId) - .leftJoin(ProjectOrderDO.class, "p", ProjectOrderDO::getId, PlanTaskDO::getProjectId) - .leftJoin(ProjectOrderSubDO.class, "po", ProjectOrderSubDO::getId, PlanSubDO::getProjectSubId) - .leftJoin(CustomerDO.class, "e", CustomerDO::getId, ProjectOrderDO::getCustomerId) - .leftJoin(ProcessBomDO.class, "pb", ProcessBomDO::getId, PlanTaskDO::getProcessBomId) - .eq(PlanTaskDO::getId, id) - .last("LIMIT 1") - .disableSubLogicDel(); - return selectOne(query); - } - - -} diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/mysql/plantaskbom/PlanTaskBomMapper.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/mysql/plantaskbom/PlanTaskBomMapper.java deleted file mode 100644 index d0e58c58..00000000 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/mysql/plantaskbom/PlanTaskBomMapper.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.chanko.yunxi.mes.module.biz.dal.mysql.plantaskbom; - -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.biz.controller.admin.plantaskbom.vo.PlanTaskBomPageReqVO; -import com.chanko.yunxi.mes.module.biz.dal.dataobject.composition.CompositionDO; -import com.chanko.yunxi.mes.module.biz.dal.dataobject.plansub.PlanSubDO; -import com.chanko.yunxi.mes.module.biz.dal.dataobject.plantask.PlanTaskDO; -import com.chanko.yunxi.mes.module.biz.dal.dataobject.plantaskbom.PlanTaskBomDO; -import com.chanko.yunxi.mes.module.biz.dal.dataobject.processbom.ProcessBomDetailDO; -import com.chanko.yunxi.mes.module.biz.dal.dataobject.projectorder.ProjectOrderDO; -import com.chanko.yunxi.mes.module.biz.dal.dataobject.projectorder.ProjectOrderSubDO; -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.springframework.util.StringUtils; - -/** - * 生产计划任务Bom Mapper - * - * @author 管理员 - */ -@Mapper -public interface PlanTaskBomMapper extends BaseMapperX { - - default PageResult selectPage(PlanTaskBomPageReqVO reqVO) { - MPJLambdaWrapper query = new MPJLambdaWrapper<>(); - query.selectAll(PlanTaskBomDO.class) - .select("f.material_name as materialName", "f.blueprint_no as blueprintNo") - .select("f.type as type","f.material_id as materialId","f.material_code as materialCode") - .select("f.composition_id as compositionId","f.spec as spec","f.unit as unit","f.amount*c.amount as amount") - .select("g.name as compositionName") - .select("u1.nickname as ownerName") - .leftJoin(PlanTaskDO.class, "a", PlanTaskDO::getId, PlanTaskBomDO::getTaskId) - .leftJoin(PlanSubDO.class, "b", PlanSubDO::getId, PlanTaskDO::getProjectPlanSubId) - .leftJoin(ProjectOrderSubDO.class, "c", ProjectOrderSubDO::getId, PlanSubDO::getProjectSubId) - .leftJoin(ProjectOrderDO.class, "d", ProjectOrderDO::getId, PlanTaskDO::getProjectId) - .leftJoin(ProcessBomDetailDO.class, "f", ProcessBomDetailDO::getId, PlanTaskBomDO::getBomDetailId) - .leftJoin(CompositionDO.class,"g", CompositionDO::getId, ProcessBomDetailDO::getCompositionId) - .leftJoin(AdminUserDO.class, "u1", AdminUserDO::getId, PlanTaskBomDO::getOwner) - .disableSubLogicDel(); - if(reqVO.getSortByBlueprintNo() != null && reqVO.getSortByBlueprintNo()){ - query.orderByAsc(ProcessBomDetailDO::getBlueprintNo); - }else{ - query.orderByDesc(PlanTaskBomDO::getId); - } - - query.eq(reqVO.getTaskId() != null, PlanTaskDO::getId, reqVO.getTaskId()) - .eq(reqVO.getProjectId() != null, PlanTaskDO::getProjectId, reqVO.getProjectId()) - .eq(reqVO.getProjectSubId() != null, ProjectOrderSubDO::getId, reqVO.getProjectSubId()) - .eq(!StringUtils.isEmpty(reqVO.getMaterialType()), ProcessBomDetailDO::getType, reqVO.getMaterialType()) - .eq(reqVO.getProjectPlanId() != null, PlanTaskDO::getProjectPlanId, reqVO.getProjectPlanId()) - .eq(reqVO.getProjectPlanSubId() != null, PlanTaskDO::getProjectPlanSubId, reqVO.getProjectPlanSubId()) - ; - return selectPage(reqVO, query); - } - -} diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/mysql/projectorder/ProjectOrderSubMapper.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/mysql/projectorder/ProjectOrderSubMapper.java index b014734c..56c9ba55 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/mysql/projectorder/ProjectOrderSubMapper.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/mysql/projectorder/ProjectOrderSubMapper.java @@ -11,8 +11,12 @@ import com.chanko.yunxi.mes.module.biz.dal.dataobject.equip.EquipDO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.material.MaterialDO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.plan.PlanDO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.plansub.PlanSubDO; +import com.chanko.yunxi.mes.module.biz.dal.dataobject.procedure.ProcedureDO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.projectorder.ProjectOrderDO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.projectorder.ProjectOrderSubDO; +import com.chanko.yunxi.mes.module.biz.dal.dataobject.taskdispatch.TaskDispatchDO; +import com.chanko.yunxi.mes.module.biz.dal.dataobject.taskdispatch.TaskDispatchDetailDO; +import com.chanko.yunxi.mes.module.biz.dal.dataobject.taskreport.TaskReportDO; import com.chanko.yunxi.mes.module.biz.enums.BusinessTypeEnum; import com.chanko.yunxi.mes.module.biz.enums.ProjectOrderStatusEnum; import com.chanko.yunxi.mes.module.biz.enums.YesOrNoEnum; @@ -122,10 +126,19 @@ public interface ProjectOrderSubMapper extends BaseMapperX { default PageResult selectProjectScheduleTrackPage(ProjectOrderPageReqVO reqVO) { MPJLambdaWrapper query = new MPJLambdaWrapper<>(); query.selectAll(ProjectOrderSubDO.class) - .leftJoin(ProjectOrderSubDO.class, "a", ProjectOrderSubDO::getProjectOrderId, ProjectOrderDO::getId) + .select("a.code projectCode", "a.external_code as externalCode", "a.project_end_time as projectEndTime") + .select("DateDiff(a.project_end_time,CURRENT_DATE) as restDays") + .select("b.plan_no as planCode") + .select("d.name as projectSubName", "d.code as projectSubCode") + .select("COALESCE(SUM(h.amount), 0) as reportAmount") + .leftJoin(ProjectOrderDO.class, "a", ProjectOrderDO::getId, ProjectOrderSubDO::getProjectId) .leftJoin(PlanDO.class, "b", PlanDO::getProjectId, ProjectOrderDO::getId) .leftJoin(CustomerDO.class, "c", CustomerDO::getId, ProjectOrderDO::getCustomerId) .leftJoin(MaterialDO.class, "d", MaterialDO::getId, ProjectOrderSubDO::getMaterialId) + .leftJoin(TaskDispatchDO.class, "e", TaskDispatchDO::getProjectSubId, ProjectOrderSubDO::getId) + .leftJoin(TaskDispatchDetailDO.class, "f", TaskDispatchDetailDO::getDispatchId, TaskDispatchDO::getId) + .leftJoin(ProcedureDO.class, "g", Wrapper -> Wrapper.eq(ProcedureDO::getId, TaskDispatchDetailDO::getProcedureId).eq(ProcedureDO::getIsFinal, YesOrNoEnum.Y.getCode())) + .leftJoin(TaskReportDO.class, "h", Wrapper -> Wrapper.eq(TaskReportDO::getDispatchDetailId, TaskDispatchDetailDO::getId).eq(TaskReportDO::getHasReport, YesOrNoEnum.Y.getCode())) .disableSubLogicDel() .groupBy(ProjectOrderSubDO::getId) .orderByAsc(ProjectOrderDO::getProjectEndTime); diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/mysql/taskdispatch/TaskDispatchMapper.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/mysql/taskdispatch/TaskDispatchMapper.java index c705b990..a0e1c522 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/mysql/taskdispatch/TaskDispatchMapper.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/mysql/taskdispatch/TaskDispatchMapper.java @@ -6,15 +6,12 @@ import com.chanko.yunxi.mes.module.biz.controller.admin.taskdispatch.vo.TaskDisp import com.chanko.yunxi.mes.module.biz.dal.dataobject.composition.CompositionDO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.customer.CustomerDO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.plan.PlanDO; -import com.chanko.yunxi.mes.module.biz.dal.dataobject.plantask.PlanTaskDO; -import com.chanko.yunxi.mes.module.biz.dal.dataobject.plantaskbom.PlanTaskBomDO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.processbom.ProcessBomDetailDO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.processdesign.ProcessDesignDO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.projectorder.ProjectOrderDO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.projectorder.ProjectOrderSubDO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.taskdispatch.TaskDispatchDO; import com.chanko.yunxi.mes.module.biz.enums.TaskDispatchTypeEnum; -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.springframework.util.StringUtils; @@ -36,9 +33,6 @@ public interface TaskDispatchMapper extends BaseMapperX { .select("f.material_name as materialName", "f.composition_id as compositionId", "f.spec", "f.blueprint_no as blueprintNo") .select("case when t.dispatch_type='"+ TaskDispatchTypeEnum.ASSEMBLE.name() +"' then c.unit else f.unit end unit", "case when t.dispatch_type='"+ TaskDispatchTypeEnum.ASSEMBLE.name() +"' then c.amount else f.amount*c.amount end amount") .select("g.name as compositionName") - .select("h.task_no as taskCode") - .select("i.require_end_date as requiredCompletedDate") - .select("u1.nickname as ownerName") .leftJoin(PlanDO.class, "a", PlanDO::getId, ProcessDesignDO::getPlanId) .leftJoin("project_plan_sub b on b.project_plan_id = t.plan_id and b.project_sub_id = t.project_sub_id") .leftJoin(ProjectOrderSubDO.class, "c", ProjectOrderSubDO::getId, ProcessDesignDO::getProjectSubId) @@ -46,9 +40,6 @@ public interface TaskDispatchMapper extends BaseMapperX { .leftJoin(CustomerDO.class, "e", CustomerDO::getId, ProjectOrderDO::getCustomerId) .leftJoin(ProcessBomDetailDO.class, "f", ProcessBomDetailDO::getId, TaskDispatchDO::getBomDetailId) .leftJoin(CompositionDO.class,"g", CompositionDO::getId, ProcessBomDetailDO::getCompositionId) - .leftJoin(PlanTaskDO.class, "h", PlanTaskDO::getId, TaskDispatchDO::getTaskId) - .leftJoin(PlanTaskBomDO.class, "i", wrapper -> wrapper.eq(PlanTaskBomDO::getTaskId, PlanTaskDO::getId).eq(PlanTaskBomDO::getBomDetailId, TaskDispatchDO::getBomDetailId)) - .leftJoin(AdminUserDO.class, "u1", AdminUserDO::getId, PlanTaskBomDO::getOwner) .orderByDesc(TaskDispatchDO::getId) .disableSubLogicDel(); @@ -61,7 +52,6 @@ public interface TaskDispatchMapper extends BaseMapperX { .eq(reqVO.getDispatchStatus() != null, TaskDispatchDO::getDispatchStatus, reqVO.getDispatchStatus()) .eq(!StringUtils.isEmpty(reqVO.getDispatchType()), TaskDispatchDO::getDispatchType, reqVO.getDispatchType()) .like(!StringUtils.isEmpty(reqVO.getOwnerName()), "u1.nickname", reqVO.getOwnerName()) - .like(!StringUtils.isEmpty(reqVO.getTaskCode()), PlanTaskDO::getTaskNo, reqVO.getTaskCode()) .like(!StringUtils.isEmpty(reqVO.getPlanCode()), PlanDO::getPlanNo, reqVO.getPlanCode()) ; return selectPage(reqVO, query); @@ -76,9 +66,6 @@ public interface TaskDispatchMapper extends BaseMapperX { .select("f.material_name as materialName", "f.composition_id as compositionId", "f.spec", "f.blueprint_no as blueprintNo") .select("case when t.dispatch_type='"+ TaskDispatchTypeEnum.ASSEMBLE.name() +"' then c.unit else f.unit end unit", "case when t.dispatch_type='"+ TaskDispatchTypeEnum.ASSEMBLE.name() +"' then c.amount else f.amount*c.amount end amount") .select("g.name as compositionName") - .select("h.task_no as taskCode") - .select("i.require_end_date as requiredCompletedDate") - .select("u1.nickname as ownerName") .leftJoin(PlanDO.class, "a", PlanDO::getId, ProcessDesignDO::getPlanId) .leftJoin("project_plan_sub b on b.project_plan_id = t.plan_id and b.project_sub_id = t.project_sub_id") .leftJoin(ProjectOrderSubDO.class, "c", ProjectOrderSubDO::getId, ProcessDesignDO::getProjectSubId) @@ -86,9 +73,6 @@ public interface TaskDispatchMapper extends BaseMapperX { .leftJoin(CustomerDO.class, "e", CustomerDO::getId, ProjectOrderDO::getCustomerId) .leftJoin(ProcessBomDetailDO.class, "f", ProcessBomDetailDO::getId, TaskDispatchDO::getBomDetailId) .leftJoin(CompositionDO.class,"g", CompositionDO::getId, ProcessBomDetailDO::getCompositionId) - .leftJoin(PlanTaskDO.class, "h", PlanTaskDO::getId, TaskDispatchDO::getTaskId) - .leftJoin(PlanTaskBomDO.class, "i", wrapper -> wrapper.eq(PlanTaskBomDO::getTaskId, PlanTaskDO::getId).eq(PlanTaskBomDO::getBomDetailId, TaskDispatchDO::getBomDetailId)) - .leftJoin(AdminUserDO.class, "u1", AdminUserDO::getId, PlanTaskBomDO::getOwner) .eq(TaskDispatchDO::getId, id) .last("LIMIT 1") .disableSubLogicDel(); diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/manager/CrossOrderManager.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/manager/CrossOrderManager.java index d2072b6f..ee3a02a6 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/manager/CrossOrderManager.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/manager/CrossOrderManager.java @@ -7,28 +7,6 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; 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.biz.dal.mysql.deliverorder.DeliverOrderSubMapper; -import com.chanko.yunxi.mes.module.biz.dal.mysql.material.MaterialMapper; -import com.chanko.yunxi.mes.module.biz.dal.mysql.outsourcestock.OutsourceStockDetailMapper; -import com.chanko.yunxi.mes.module.biz.dal.mysql.outsourcestock.OutsourceStockMapper; -import com.chanko.yunxi.mes.module.biz.dal.mysql.plansub.PlanSubMapper; -import com.chanko.yunxi.mes.module.biz.dal.mysql.plantask.PlanTaskMapper; -import com.chanko.yunxi.mes.module.biz.dal.mysql.plantaskbom.PlanTaskBomMapper; -import com.chanko.yunxi.mes.module.biz.dal.mysql.procedure.ProcedureMapper; -import com.chanko.yunxi.mes.module.biz.dal.mysql.processbom.ProcessBomMapper; -import com.chanko.yunxi.mes.module.biz.dal.mysql.processdesign.ProcessDesignMapper; -import com.chanko.yunxi.mes.module.biz.dal.mysql.projectorder.ProjectOrderMapper; -import com.chanko.yunxi.mes.module.biz.dal.mysql.projectorder.ProjectOrderSubMapper; -import com.chanko.yunxi.mes.module.biz.dal.mysql.purchaseorder.PurchaseOrderMapper; -import com.chanko.yunxi.mes.module.biz.dal.mysql.storage.StorageMapper; -import com.chanko.yunxi.mes.module.biz.dal.mysql.storagelog.StorageLogMapper; -import com.chanko.yunxi.mes.module.biz.dal.mysql.storagemat.StorageMatMapper; -import com.chanko.yunxi.mes.module.biz.dal.mysql.taskdispatch.TaskDispatchMapper; -import com.chanko.yunxi.mes.module.biz.service.plan.PlanService; -import com.chanko.yunxi.mes.module.biz.service.processbom.ProcessBomService; -import com.chanko.yunxi.mes.module.biz.service.processdesign.ProcessDesignService; -import com.chanko.yunxi.mes.module.biz.service.storage.StorageService; -import com.chanko.yunxi.mes.module.biz.service.taskdispatch.TaskDispatchService; import com.chanko.yunxi.mes.module.biz.controller.admin.deliverorder.vo.DeliverOrderSaveReqVO; import com.chanko.yunxi.mes.module.biz.controller.admin.processbom.vo.ProcessBomSaveReqVO; import com.chanko.yunxi.mes.module.biz.controller.admin.processdesign.vo.ProcessDesignSaveReqVO; @@ -38,22 +16,33 @@ import com.chanko.yunxi.mes.module.biz.dal.dataobject.deliverorder.DeliverOrderD import com.chanko.yunxi.mes.module.biz.dal.dataobject.deliverorder.DeliverOrderSubDO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.material.MaterialDO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.outsourcestock.OutsourceStockDO; -import com.chanko.yunxi.mes.module.biz.dal.dataobject.outsourcestock.OutsourceStockDetailDO; -import com.chanko.yunxi.mes.module.biz.dal.dataobject.plansub.PlanSubDO; -import com.chanko.yunxi.mes.module.biz.dal.dataobject.plantask.PlanTaskDO; -import com.chanko.yunxi.mes.module.biz.dal.dataobject.plantaskbom.PlanTaskBomDO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.procedure.ProcedureDO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.processbom.ProcessBomDO; -import com.chanko.yunxi.mes.module.biz.dal.dataobject.processbom.ProcessBomDetailDO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.processdesign.ProcessDesignDO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.projectorder.ProjectOrderDO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.projectorder.ProjectOrderSubDO; -import com.chanko.yunxi.mes.module.biz.dal.dataobject.purchaseorder.PurchaseOrderDO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.storage.StorageDO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.storagelog.StorageLogDO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.storagemat.StorageMatDO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.taskdispatch.TaskDispatchDO; +import com.chanko.yunxi.mes.module.biz.dal.mysql.deliverorder.DeliverOrderSubMapper; +import com.chanko.yunxi.mes.module.biz.dal.mysql.material.MaterialMapper; +import com.chanko.yunxi.mes.module.biz.dal.mysql.outsourcestock.OutsourceStockMapper; +import com.chanko.yunxi.mes.module.biz.dal.mysql.procedure.ProcedureMapper; +import com.chanko.yunxi.mes.module.biz.dal.mysql.processbom.ProcessBomMapper; +import com.chanko.yunxi.mes.module.biz.dal.mysql.processdesign.ProcessDesignMapper; +import com.chanko.yunxi.mes.module.biz.dal.mysql.projectorder.ProjectOrderMapper; +import com.chanko.yunxi.mes.module.biz.dal.mysql.projectorder.ProjectOrderSubMapper; +import com.chanko.yunxi.mes.module.biz.dal.mysql.storage.StorageMapper; +import com.chanko.yunxi.mes.module.biz.dal.mysql.storagelog.StorageLogMapper; +import com.chanko.yunxi.mes.module.biz.dal.mysql.storagemat.StorageMatMapper; +import com.chanko.yunxi.mes.module.biz.dal.mysql.taskdispatch.TaskDispatchMapper; import com.chanko.yunxi.mes.module.biz.enums.*; +import com.chanko.yunxi.mes.module.biz.service.plan.PlanService; +import com.chanko.yunxi.mes.module.biz.service.processbom.ProcessBomService; +import com.chanko.yunxi.mes.module.biz.service.processdesign.ProcessDesignService; +import com.chanko.yunxi.mes.module.biz.service.storage.StorageService; +import com.chanko.yunxi.mes.module.biz.service.taskdispatch.TaskDispatchService; import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; @@ -61,7 +50,10 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.math.BigDecimal; import java.time.LocalDateTime; -import java.util.*; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Set; import java.util.stream.Collectors; import static com.chanko.yunxi.mes.module.biz.enums.CodeEnum.STOCK_IN; @@ -104,23 +96,13 @@ public class CrossOrderManager { @Resource private TaskDispatchMapper taskDispatchMapper; @Resource - private PlanTaskMapper planTaskMapper; - @Resource - private PlanTaskBomMapper planTaskBomMapper; - @Resource private TaskDispatchService taskDispatchService; @Resource - private PlanSubMapper planSubMapper; - @Resource private ProcedureMapper procedureMapper; @Resource private OutsourceStockMapper outsourceStockMapper; @Resource - private OutsourceStockDetailMapper outsourceStockDetailMapper; - @Resource private StorageService storageService; - @Resource - private PurchaseOrderMapper purchaseOrderMapper; /** * 刷新项目订单发货状态 @@ -328,22 +310,10 @@ public class CrossOrderManager { planService.updatePlanStatusToTerminateByProjectId(projectId); // 同时更新工艺设计状态 updateProcessDesignStatusToTerminate(projectId); - // 同时更新生产任务状态 - updatePlanTaskStatusToTerminate(projectId); // 同时更新派工任务状态 updateTaskDispatchStatusToTerminate(projectId); } - /** - * 订单终止 更新生产任务状态 - * @param projectId - */ - public void updatePlanTaskStatusToTerminate(Long projectId) { - UpdateWrapper update = new UpdateWrapper<>(); - update.eq("project_id", projectId).set("status", TaskDispatchStatusEnum.TERMINATE.getCode()); - planTaskMapper.update(update); - } - /** * 订单终止 更新派工任务状态 * @param projectId @@ -420,58 +390,6 @@ public class CrossOrderManager { } - /** - * 生成生产派工单 - * @param planTaskId - */ - @Transactional(rollbackFor = Exception.class) - public void generateProductionTaskDispatch(Long planTaskId){ - // 锁住任务数据 - PlanTaskDO planTaskDO = planTaskMapper.selectOne(new LambdaQueryWrapper() {{ - eq(PlanTaskDO::getId, planTaskId).last("LIMIT 1 FOR UPDATE"); - }}); - PlanSubDO planSubDO = planSubMapper.selectById(planTaskDO.getProjectPlanSubId()); - // 获取非标准件明细 - MPJLambdaWrapper query = new MPJLambdaWrapper<>(); - query.selectAll(PlanTaskBomDO.class) - .leftJoin(PlanTaskDO.class, "a", PlanTaskDO::getId, PlanTaskBomDO::getTaskId) - .leftJoin(ProcessBomDetailDO.class, "b", ProcessBomDetailDO::getId, PlanTaskBomDO::getBomDetailId) - ; - - query.eq(PlanTaskDO::getId, planTaskId).ne(ProcessBomDetailDO::getType, YesOrNoEnum.Y.getCode()); - - List planTaskBomDOList = planTaskBomMapper.selectList(query); - - if(planTaskBomDOList != null && !planTaskBomDOList.isEmpty()){ - // 是否已生成派工任务 - List generatedTaskDispatchList = taskDispatchMapper.selectList(new LambdaQueryWrapper() {{ - eq(TaskDispatchDO::getDispatchType, TaskDispatchTypeEnum.PRODUCTION.name()) - .in(TaskDispatchDO::getBomDetailId, planTaskBomDOList.stream().map(PlanTaskBomDO::getBomDetailId).collect(Collectors.toSet())); - }}); - if(generatedTaskDispatchList.size() == planTaskBomDOList.size()){ - return; - } - if(generatedTaskDispatchList.size() < planTaskBomDOList.size()){ - List goingToGenerateTaskList = planTaskBomDOList.stream().filter(planTaskBomDO -> !generatedTaskDispatchList.stream().anyMatch(taskDispatchDO -> planTaskBomDO.getBomDetailId().longValue() == taskDispatchDO.getBomDetailId().longValue())).collect(Collectors.toList()); - - // 生成派工单 - goingToGenerateTaskList.forEach(planTaskBomDO -> { - TaskDispatchSaveReqVO taskDispatchSaveReqVO = new TaskDispatchSaveReqVO(); - taskDispatchSaveReqVO.setDispatchType(TaskDispatchTypeEnum.PRODUCTION.name()) - .setTaskId(planTaskId) - .setPlanId(planTaskDO.getProjectPlanId()) - .setProjectId(planTaskDO.getProjectId()) - .setProjectSubId(planSubDO.getProjectSubId()) - .setBomDetailId(planTaskBomDO.getBomDetailId()) - .setActive(OperateTypeEnum.SAVE.name()) - .setDispatchStatus(TaskDispatchStatusEnum.SAVE.getCode()) - .setStatus(ValidStatusEnum.VALID.getCode()); - taskDispatchService.createTaskDispatch(taskDispatchSaveReqVO); - }); - } - } - } - /** * 生成装配任务派工单 * @param projectId diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/plan/PlanService.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/plan/PlanService.java index ed37f75a..279e48ed 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/plan/PlanService.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/plan/PlanService.java @@ -4,8 +4,11 @@ import com.chanko.yunxi.mes.framework.common.pojo.PageResult; import com.chanko.yunxi.mes.module.biz.controller.admin.plan.vo.PlanPageReqVO; import com.chanko.yunxi.mes.module.biz.controller.admin.plan.vo.PlanSaveReqVO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.plan.PlanDO; +import com.chanko.yunxi.mes.module.biz.dal.dataobject.plan.PlanWorkshopDO; +import com.chanko.yunxi.mes.module.biz.dal.dataobject.plansub.PlanSubDO; import javax.validation.Valid; +import java.util.List; /** * 生产计划 Service 接口 @@ -59,4 +62,22 @@ public interface PlanService { void updatePlanStatusToTerminateByProjectId(Long projectId); + /** + * 获得生产计划子项目列表 + * + * @param projectPlanId 计划id + * @return 生产计划子项目列表 + */ + List getPlanSubListByProjectPlanId(Long projectPlanId); + + // ==================== 子表(生产计划车间计划) ==================== + + /** + * 获得生产计划车间计划列表 + * + * @param projectPlanId 计划id + * @return 生产计划车间计划列表 + */ + List getPlanWorkshopListByProjectPlanId(Long projectPlanId); + } diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/plan/PlanServiceImpl.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/plan/PlanServiceImpl.java index 8518f89f..c5e92f80 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/plan/PlanServiceImpl.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/plan/PlanServiceImpl.java @@ -4,31 +4,20 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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; -import com.chanko.yunxi.mes.framework.operatelog.core.service.OperateLogFrameworkService; -import com.chanko.yunxi.mes.module.biz.dal.mysql.plan.PlanMapper; -import com.chanko.yunxi.mes.module.biz.dal.mysql.plansub.PlanSubMapper; -import com.chanko.yunxi.mes.module.biz.dal.mysql.plantask.PlanTaskMapper; -import com.chanko.yunxi.mes.module.biz.dal.mysql.plantaskbom.PlanTaskBomMapper; -import com.chanko.yunxi.mes.module.biz.dal.mysql.processbom.ProcessBomDetailMapper; -import com.chanko.yunxi.mes.module.biz.dal.mysql.processbom.ProcessBomMapper; -import com.chanko.yunxi.mes.module.biz.dal.mysql.projectorder.ProjectOrderMapper; -import com.chanko.yunxi.mes.module.biz.service.projectorder.ProjectOrderService; -import com.chanko.yunxi.mes.module.biz.service.serialnumber.SerialNumberService; import com.chanko.yunxi.mes.module.biz.controller.admin.plan.vo.PlanPageReqVO; import com.chanko.yunxi.mes.module.biz.controller.admin.plan.vo.PlanSaveReqVO; import com.chanko.yunxi.mes.module.biz.controller.admin.plansub.vo.PlanSubPageReqVO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.plan.PlanDO; +import com.chanko.yunxi.mes.module.biz.dal.dataobject.plan.PlanWorkshopDO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.plansub.PlanSubDO; -import com.chanko.yunxi.mes.module.biz.dal.dataobject.plantask.PlanTaskDO; -import com.chanko.yunxi.mes.module.biz.dal.dataobject.plantaskbom.PlanTaskBomDO; -import com.chanko.yunxi.mes.module.biz.dal.dataobject.processbom.ProcessBomDO; -import com.chanko.yunxi.mes.module.biz.dal.dataobject.processbom.ProcessBomDetailDO; -import com.chanko.yunxi.mes.module.biz.dal.dataobject.projectorder.ProjectOrderDO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.projectorder.ProjectOrderSubDO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.serialnumber.SerialNumberDO; -import com.chanko.yunxi.mes.module.biz.enums.BusinessTypeEnum; -import com.chanko.yunxi.mes.module.biz.enums.ProcessBomStatusEnum; +import com.chanko.yunxi.mes.module.biz.dal.mysql.plan.PlanMapper; +import com.chanko.yunxi.mes.module.biz.dal.mysql.plan.PlanWorkshopMapper; +import com.chanko.yunxi.mes.module.biz.dal.mysql.plansub.PlanSubMapper; import com.chanko.yunxi.mes.module.biz.enums.ProjectPlanStatusEnum; +import com.chanko.yunxi.mes.module.biz.service.projectorder.ProjectOrderService; +import com.chanko.yunxi.mes.module.biz.service.serialnumber.SerialNumberService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -36,7 +25,6 @@ import org.springframework.validation.annotation.Validated; import org.thymeleaf.util.StringUtils; import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.util.Date; @@ -44,7 +32,6 @@ import java.util.List; import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.chanko.yunxi.mes.module.biz.enums.CodeEnum.PROJECT_PLAN; -import static com.chanko.yunxi.mes.module.biz.enums.CodeEnum.PROJECT_PLAN_TASK; import static com.chanko.yunxi.mes.module.biz.enums.ErrorCodeConstants.PLAN_NOT_EXISTS; /** @@ -57,12 +44,6 @@ import static com.chanko.yunxi.mes.module.biz.enums.ErrorCodeConstants.PLAN_NOT_ @Validated public class PlanServiceImpl implements PlanService { - @Resource - private OperateLogFrameworkService operateLogFrameworkService; - - @Resource - private HttpServletRequest request; - @Resource private PlanMapper planMapper; @@ -76,19 +57,7 @@ public class PlanServiceImpl implements PlanService { private SerialNumberService serialNumberService; @Resource - private ProcessBomMapper processBomMapper; - - @Resource - private PlanTaskMapper planTaskMapper; - - @Resource - private ProjectOrderMapper projectOrderMapper; - - @Resource - private ProcessBomDetailMapper processBomDetailMapper; - - @Resource - private PlanTaskBomMapper planTaskBomMapper; + private PlanWorkshopMapper planWorkshopMapper; @Override public Long createPlan(PlanSaveReqVO createReqVO) { @@ -249,8 +218,6 @@ public class PlanServiceImpl implements PlanService { planDO.setStatus(ProjectPlanStatusEnum.TERMINATE.getCode()); planMapper.updateById(planDO); - // 更新生产任务单状态 - updatePlanTaskStatusToTerminateByPlanId(planDO.getId()); } } @@ -261,161 +228,51 @@ public class PlanServiceImpl implements PlanService { @Override public void generatePlanTaskByPlanId(Long planId){ // 获取生产计划 - PlanDO planDO = planMapper.selectOne(new LambdaQueryWrapper() {{ - eq(PlanDO::getId, planId); - orderByDesc(PlanDO::getId); - last("LIMIT 1"); - }}); - // 获取生产计划子项目信息 - List planSubDOS = planSubMapper.selectList(new LambdaQueryWrapper() {{ - eq(PlanSubDO::getProjectPlanId, planId); - }}); - // 获取订单信息 - ProjectOrderDO projectOrderDO = projectOrderMapper.selectOne(new LambdaQueryWrapper() {{ - eq(ProjectOrderDO::getId, planDO.getProjectId()); - last("LIMIT 1"); - }}); + } - for(PlanSubDO item : planSubDOS){ - - // 获取生产计划bom信息(一个生产计划一个生产计划子项目对应一个bom信息) - ProcessBomDO processBomDO = processBomMapper.selectOne(new LambdaQueryWrapper() {{ - eq(ProcessBomDO::getProjectId, planDO.getProjectId()); - eq(ProcessBomDO::getPlanId, planId); - eq(ProcessBomDO::getProjectSubId, item.getProjectSubId()); - last("LIMIT 1"); - }}); - - PlanTaskDO planTaskDO = planTaskMapper.selectOne(new LambdaQueryWrapper() {{ - eq(PlanTaskDO::getProjectId, planDO.getProjectId()); - eq(PlanTaskDO::getProjectPlanId, planId); - eq(PlanTaskDO::getProjectPlanSubId, item.getId()); - if(processBomDO!=null){ - eq(PlanTaskDO::getProcessBomId, processBomDO.getId()); - } + // ==================== 子表(生产计划子项目) ==================== - last("LIMIT 1"); - }}); - - // 生产计划任务单存在则更新版本号和状态,不存在则新增 - if(planTaskDO == null){ - - planTaskDO = new PlanTaskDO(); - // 日度流水号 - SerialNumberDO serialNumberDO = new SerialNumberDO(); - serialNumberDO = serialNumberService.getSerialNumber(PROJECT_PLAN_TASK.name(), new SimpleDateFormat("yyyyMMdd").format(new Date())); - serialNumberDO.setSerialNumber(serialNumberDO.getSerialNumber()+1); - - // 生产计划任务单编号:PT+年月日+日度顺序号(三位流水) - planTaskDO.setTaskNo(PROJECT_PLAN_TASK.getCode(serialNumberDO.getSerialNumber().toString())); - - // 项目id - planTaskDO.setProjectId(planDO.getProjectId()); - // 生产计划id - planTaskDO.setProjectPlanId(planId); - // 生产计划子项目id - planTaskDO.setProjectPlanSubId(item.getId()); - if(processBomDO != null) { - // bom id - planTaskDO.setProcessBomId(processBomDO.getId()); - // bom 版本号 - planTaskDO.setBomVersion(processBomDO.getVersion()); - } - // 订单状态更新生产计划任务 - planTaskDO.setStatus(projectOrderDO.getStatus()); + @Override + public List getPlanSubListByProjectPlanId(Long projectPlanId) { + return planSubMapper.selectListByProjectPlanId(projectPlanId); + } - planTaskMapper.insert(planTaskDO); + private void createPlanSubList(Long projectPlanId, List list) { + list.forEach(o -> o.setProjectPlanId(projectPlanId)); + planSubMapper.insertBatch(list); + } - // 回写序列记录 - serialNumberService.updateSerialNumber(serialNumberDO); + private void updatePlanSubList(Long projectPlanId, List list) { + deletePlanSubByProjectPlanId(projectPlanId); + list.forEach(o -> o.setId(null).setUpdater(null).setUpdateTime(null)); // 解决更新情况下:1)id 冲突;2)updateTime 不更新 + createPlanSubList(projectPlanId, list); + } - }else { - if(processBomDO != null) { - // bom id - planTaskDO.setProcessBomId(processBomDO.getId()); - // bom 版本号 - planTaskDO.setBomVersion(processBomDO.getVersion()); - } - // 订单状态更新生产计划任务 - planTaskDO.setStatus(projectOrderDO.getStatus()); + private void deletePlanSubByProjectPlanId(Long projectPlanId) { + planSubMapper.deleteByProjectPlanId(projectPlanId); + } - planTaskMapper.updateById(planTaskDO); - } + // ==================== 子表(生产计划车间计划) ==================== -// // 手动记录日志 -// LocalDateTime startTime = LocalDateTime.now(); -// operateLogFrameworkService.createOperateLog(request, -// startTime, -// BusinessTypeEnum.PLAN_TASK.name(), -// planTaskDO.getId(), -// OperateTypeEnum.valueOf("SAVE").getType(), -// ""); - // 生成生产计划任务单加工件明细 - generatePlanTaskBom(planTaskDO.getId(),processBomDO); - } + @Override + public List getPlanWorkshopListByProjectPlanId(Long projectPlanId) { + return planWorkshopMapper.selectListByProjectPlanId(projectPlanId); } - /** - * 生成生产计划任务单加工件明细 - * @param planTaskId - * @param processBomDO - */ - private void generatePlanTaskBom(Long planTaskId,ProcessBomDO processBomDO){ - if(processBomDO != null){ - // 获取bom下的加工件明细 - List processBomDetailDOS = processBomDetailMapper.selectList( - new LambdaQueryWrapper() {{ - eq(ProcessBomDetailDO::getBomId, processBomDO.getId()); - }} - ); - // 获取生产任务单下的加工件明细 - List planTaskBomDOS = planTaskBomMapper.selectList( - new LambdaQueryWrapper() {{ - eq(PlanTaskBomDO::getTaskId, planTaskId); - }} - ); - for(PlanTaskBomDO record : planTaskBomDOS){ - // 生产任务单下加工件是否已删除 - if(!processBomDetailDOS.stream().anyMatch(a ->a.getId().equals(record.getBomDetailId()))) { - planTaskBomMapper.deleteById(record); - } - } - for(ProcessBomDetailDO record : processBomDetailDOS){ - // 生产任务单下不存在该加工件,则插入,否则不处理 - if(!planTaskBomDOS.stream().anyMatch(a ->a.getBomDetailId().equals(record.getId()))) { - PlanTaskBomDO planTaskBomDO = new PlanTaskBomDO(); - - planTaskBomDO.setTaskId(planTaskId); - planTaskBomDO.setBomDetailId(record.getId()); - planTaskBomMapper.insert(planTaskBomDO); - } - } - } + private void createPlanWorkshopList(Long projectPlanId, List list) { + list.forEach(o -> o.setProjectPlanId(projectPlanId)); + planWorkshopMapper.insertBatch(list); } - /** - * 更新生产任务单状态 - * @param planId - */ - private void updatePlanTaskStatusToTerminateByPlanId(Long planId){ - List planTaskDOS = planTaskMapper.selectList(new LambdaQueryWrapper() {{ - eq(PlanTaskDO::getProjectPlanId, planId); - }}); - - for(PlanTaskDO task :planTaskDOS){ - task.setStatus(ProjectPlanStatusEnum.TERMINATE.getCode()); - - planTaskMapper.updateById(task); + private void updatePlanWorkshopList(Long projectPlanId, List list) { + deletePlanWorkshopByProjectPlanId(projectPlanId); + list.forEach(o -> o.setId(null).setUpdater(null).setUpdateTime(null)); // 解决更新情况下:1)id 冲突;2)updateTime 不更新 + createPlanWorkshopList(projectPlanId, list); + } - // 手动记录日志 - LocalDateTime startTime = LocalDateTime.now(); - operateLogFrameworkService.createOperateLog(request, - startTime, - BusinessTypeEnum.PLAN_TASK.name(), - planId, - ProcessBomStatusEnum.TERMINATE.getCode(), - ""); - } + private void deletePlanWorkshopByProjectPlanId(Long projectPlanId) { + planWorkshopMapper.deleteByProjectPlanId(projectPlanId); } + } diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/plantask/PlanTaskService.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/plantask/PlanTaskService.java deleted file mode 100644 index e81d5ea0..00000000 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/plantask/PlanTaskService.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.chanko.yunxi.mes.module.biz.service.plantask; - -import javax.validation.*; - -import com.chanko.yunxi.mes.module.biz.controller.admin.plantask.vo.PlanTaskPageReqVO; -import com.chanko.yunxi.mes.module.biz.controller.admin.plantask.vo.PlanTaskSaveReqVO; -import com.chanko.yunxi.mes.module.biz.dal.dataobject.plantask.PlanTaskDO; -import com.chanko.yunxi.mes.framework.common.pojo.PageResult; - -/** - * 生产计划任务 Service 接口 - * - * @author 管理员 - */ -public interface PlanTaskService { - - /** - * 创建生产计划任务 - * - * @param createReqVO 创建信息 - * @return 编号 - */ - Long createPlanTask(@Valid PlanTaskSaveReqVO createReqVO); - - /** - * 更新生产计划任务 - * - * @param updateReqVO 更新信息 - */ - void updatePlanTask(@Valid PlanTaskSaveReqVO updateReqVO); - - /** - * 删除生产计划任务 - * - * @param id 编号 - */ - void deletePlanTask(Long id); - - /** - * 获得生产计划任务 - * - * @param id 编号 - * @return 生产计划任务 - */ - PlanTaskDO getPlanTask(Long id); - - /** - * 获得生产计划任务分页 - * - * @param pageReqVO 分页查询 - * @return 生产计划任务分页 - */ - PageResult getPlanTaskPage(PlanTaskPageReqVO pageReqVO); - - /** - * 获得生产计划任务 - * - * @param id 编号 - * @return 是否需要更新,0更新,1不更新 - */ - Integer getPlanTaskBomStatus(Long id); - - Integer refreshPlanTaskByPlanId(Long planId); - -} diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/plantask/PlanTaskServiceImpl.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/plantask/PlanTaskServiceImpl.java deleted file mode 100644 index 4f125add..00000000 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/plantask/PlanTaskServiceImpl.java +++ /dev/null @@ -1,132 +0,0 @@ -package com.chanko.yunxi.mes.module.biz.service.plantask; - -import com.chanko.yunxi.mes.module.biz.controller.admin.plantask.vo.PlanTaskPageReqVO; -import com.chanko.yunxi.mes.module.biz.controller.admin.plantask.vo.PlanTaskSaveReqVO; -import com.chanko.yunxi.mes.module.biz.dal.mysql.plantask.PlanTaskMapper; -import com.chanko.yunxi.mes.module.biz.dal.mysql.plantaskbom.PlanTaskBomMapper; -import com.chanko.yunxi.mes.module.biz.dal.mysql.processbom.ProcessBomMapper; -import com.chanko.yunxi.mes.module.biz.dal.dataobject.plantaskbom.PlanTaskBomDO; -import com.chanko.yunxi.mes.module.biz.dal.dataobject.processbom.ProcessBomDO; -import com.chanko.yunxi.mes.module.biz.enums.ProcessBomStatusEnum; -import com.chanko.yunxi.mes.module.biz.manager.CrossOrderManager; -import com.chanko.yunxi.mes.module.biz.service.plan.PlanServiceImpl; -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.biz.dal.dataobject.plantask.PlanTaskDO; -import com.chanko.yunxi.mes.framework.common.pojo.PageResult; -import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; - -import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception; -import static com.chanko.yunxi.mes.module.biz.enums.ErrorCodeConstants.*; - -/** - * 生产计划任务 Service 实现类 - * - * @author 管理员 - */ -@Service -@Validated -public class PlanTaskServiceImpl implements PlanTaskService { - - @Resource - private PlanServiceImpl planServiceImpl; - - @Resource - private PlanTaskMapper planTaskMapper; - - @Resource - private PlanTaskBomMapper planTaskBomMapper; - - @Resource - private ProcessBomMapper processBomMapper; - - @Resource - private CrossOrderManager crossOrderManager; - - @Override - public Long createPlanTask(PlanTaskSaveReqVO createReqVO) { - // 插入 - PlanTaskDO planTask = BeanUtils.toBean(createReqVO, PlanTaskDO.class); - planTaskMapper.insert(planTask); - // 返回 - return planTask.getId(); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void updatePlanTask(PlanTaskSaveReqVO updateReqVO) { - // 校验存在 - validatePlanTaskExists(updateReqVO.getId()); - // 更新 - PlanTaskDO updateObj = BeanUtils.toBean(updateReqVO, PlanTaskDO.class); - planTaskMapper.updateById(updateObj); - - // 更新加工件明细 - List planTaskBomDOS= updateReqVO.getBomDetails().stream().filter(o -> o.getId() != null).collect(Collectors.toList()); - if(planTaskBomDOS.stream().count()>0) { - planTaskBomMapper.updateBatch(planTaskBomDOS); - } - - // 生产任务单提交同时生成派工单 - if(updateObj.getStatus().equals(ProcessBomStatusEnum.SUBMIT.getCode())){ - crossOrderManager.generateProductionTaskDispatch(updateObj.getId()); - } - } - - @Override - public void deletePlanTask(Long id) { - // 校验存在 - validatePlanTaskExists(id); - // 删除 - planTaskMapper.deleteById(id); - } - - private void validatePlanTaskExists(Long id) { - if (planTaskMapper.selectById(id) == null) { - throw exception(PLAN_TASK_NOT_EXISTS); - } - } - - @Override - public PlanTaskDO getPlanTask(Long id) { - return planTaskMapper.selectById(id); - } - - @Override - public PageResult getPlanTaskPage(PlanTaskPageReqVO pageReqVO) { - return planTaskMapper.selectPage(pageReqVO); - } - - @Override - public Integer getPlanTaskBomStatus(Long id){ - - // 刷新状态,1为刷新,0为不刷新 - Integer refreshStatus = 0; - PlanTaskDO planTaskDO = planTaskMapper.selectById(id); - - if(planTaskDO.getProcessBomId()==null){ - // 无bomid时,需要刷新 - refreshStatus = 1; - }else{ - ProcessBomDO processBomDO = processBomMapper.selectById(planTaskDO.getProcessBomId()); - - // 生产任务版本号与bom版本号不同,需要刷新 - if(!planTaskDO.getBomVersion().equals(processBomDO.getVersion())){ - refreshStatus = 1; - } - } - return refreshStatus; - } - - @Override - public Integer refreshPlanTaskByPlanId(Long planId){ - planServiceImpl.generatePlanTaskByPlanId(planId); - return 1; - } -} diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/plantaskbom/PlanTaskBomService.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/plantaskbom/PlanTaskBomService.java deleted file mode 100644 index 8cc7d8cc..00000000 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/plantaskbom/PlanTaskBomService.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.chanko.yunxi.mes.module.biz.service.plantaskbom; - -import javax.validation.*; - -import com.chanko.yunxi.mes.module.biz.controller.admin.plantaskbom.vo.PlanTaskBomPageReqVO; -import com.chanko.yunxi.mes.module.biz.controller.admin.plantaskbom.vo.PlanTaskBomSaveReqVO; -import com.chanko.yunxi.mes.module.biz.dal.dataobject.plantaskbom.PlanTaskBomDO; -import com.chanko.yunxi.mes.framework.common.pojo.PageResult; - -/** - * 生产计划任务Bom Service 接口 - * - * @author 管理员 - */ -public interface PlanTaskBomService { - - /** - * 创建生产计划任务Bom - * - * @param createReqVO 创建信息 - * @return 编号 - */ - Long createPlanTaskBom(@Valid PlanTaskBomSaveReqVO createReqVO); - - /** - * 更新生产计划任务Bom - * - * @param updateReqVO 更新信息 - */ - void updatePlanTaskBom(@Valid PlanTaskBomSaveReqVO updateReqVO); - - /** - * 删除生产计划任务Bom - * - * @param id 编号 - */ - void deletePlanTaskBom(Long id); - - /** - * 获得生产计划任务Bom - * - * @param id 编号 - * @return 生产计划任务Bom - */ - PlanTaskBomDO getPlanTaskBom(Long id); - - /** - * 获得生产计划任务Bom分页 - * - * @param pageReqVO 分页查询 - * @return 生产计划任务Bom分页 - */ - PageResult getPlanTaskBomPage(PlanTaskBomPageReqVO pageReqVO); - -} diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/plantaskbom/PlanTaskBomServiceImpl.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/plantaskbom/PlanTaskBomServiceImpl.java deleted file mode 100644 index a51b954c..00000000 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/plantaskbom/PlanTaskBomServiceImpl.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.chanko.yunxi.mes.module.biz.service.plantaskbom; - -import com.chanko.yunxi.mes.module.biz.controller.admin.plantaskbom.vo.PlanTaskBomPageReqVO; -import com.chanko.yunxi.mes.module.biz.controller.admin.plantaskbom.vo.PlanTaskBomSaveReqVO; -import com.chanko.yunxi.mes.module.biz.dal.mysql.plantaskbom.PlanTaskBomMapper; -import org.springframework.stereotype.Service; -import javax.annotation.Resource; -import org.springframework.validation.annotation.Validated; - -import com.chanko.yunxi.mes.module.biz.dal.dataobject.plantaskbom.PlanTaskBomDO; -import com.chanko.yunxi.mes.framework.common.pojo.PageResult; -import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; - -import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception; -import static com.chanko.yunxi.mes.module.biz.enums.ErrorCodeConstants.*; - -/** - * 生产计划任务Bom Service 实现类 - * - * @author 管理员 - */ -@Service -@Validated -public class PlanTaskBomServiceImpl implements PlanTaskBomService { - - @Resource - private PlanTaskBomMapper planTaskBomMapper; - - @Override - public Long createPlanTaskBom(PlanTaskBomSaveReqVO createReqVO) { - // 插入 - PlanTaskBomDO planTaskBom = BeanUtils.toBean(createReqVO, PlanTaskBomDO.class); - planTaskBomMapper.insert(planTaskBom); - // 返回 - return planTaskBom.getId(); - } - - @Override - public void updatePlanTaskBom(PlanTaskBomSaveReqVO updateReqVO) { - // 校验存在 - validatePlanTaskBomExists(updateReqVO.getId()); - // 更新 - PlanTaskBomDO updateObj = BeanUtils.toBean(updateReqVO, PlanTaskBomDO.class); - planTaskBomMapper.updateById(updateObj); - } - - @Override - public void deletePlanTaskBom(Long id) { - // 校验存在 - validatePlanTaskBomExists(id); - // 删除 - planTaskBomMapper.deleteById(id); - } - - private void validatePlanTaskBomExists(Long id) { - if (planTaskBomMapper.selectById(id) == null) { - throw exception(PLAN_TASK_BOM_NOT_EXISTS); - } - } - - @Override - public PlanTaskBomDO getPlanTaskBom(Long id) { - return planTaskBomMapper.selectById(id); - } - - @Override - public PageResult getPlanTaskBomPage(PlanTaskBomPageReqVO pageReqVO) { - return planTaskBomMapper.selectPage(pageReqVO); - } - -} diff --git a/mes-ui/mes-ui-admin-vue3/src/api/biz/plan/index.ts b/mes-ui/mes-ui-admin-vue3/src/api/biz/plan/index.ts index fc36426e..c651a0a6 100644 --- a/mes-ui/mes-ui-admin-vue3/src/api/biz/plan/index.ts +++ b/mes-ui/mes-ui-admin-vue3/src/api/biz/plan/index.ts @@ -54,3 +54,17 @@ export const deletePlan = async (id: number) => { export const exportPlan = async (params) => { return await request.download({ url: `/biz/plan/export-excel`, params }) } + +// ==================== 子表(生产计划子项目) ==================== + +// 获得生产计划子项目列表 +export const getPlanSubListByProjectPlanId = async (projectPlanId) => { + return await request.get({ url: `/biz/plan/plan-sub/list-by-project-plan-id?projectPlanId=` + projectPlanId }) +} + +// ==================== 子表(生产计划车间计划) ==================== + +// 获得生产计划车间计划列表 +export const getPlanWorkshopListByProjectPlanId = async (projectPlanId) => { + return await request.get({ url: `/biz/plan/plan-workshop/list-by-project-plan-id?projectPlanId=` + projectPlanId }) +} diff --git a/mes-ui/mes-ui-admin-vue3/src/api/biz/plantask/index.ts b/mes-ui/mes-ui-admin-vue3/src/api/biz/plantask/index.ts deleted file mode 100644 index b19ba87a..00000000 --- a/mes-ui/mes-ui-admin-vue3/src/api/biz/plantask/index.ts +++ /dev/null @@ -1,54 +0,0 @@ -import request from '@/config/axios' - -export interface PlanTaskVO { - id: number - projectId: number - projectPlanId: number - projectPlanSubId: number - processBomId: number - taskNo: string - bomVersion: number - description: string - status: number - active:string -} - -// 刷新生产计划任务单最新数据 -export const refreshPlanTaskByPlanId = async (id: number) => { - return await request.get({ url: `/biz/plan-task/refresh?id=` + id }) -} - -// 获得bom需要更新的状态 -export const getPlanTaskBomStatus = async (id: number) => { - return await request.get({ url: `/biz/plan-task/get-version-status?id=` + id }) -} - -// 查询生产计划任务分页 -export const getPlanTaskPage = async (params) => { - return await request.get({ url: `/biz/plan-task/page`, params }) -} - -// 查询生产计划任务详情 -export const getPlanTask = async (id: number) => { - return await request.get({ url: `/biz/plan-task/get?id=` + id }) -} - -// 新增生产计划任务 -export const createPlanTask = async (data: PlanTaskVO) => { - return await request.post({ url: `/biz/plan-task/create`, data }) -} - -// 修改生产计划任务 -export const updatePlanTask = async (data: PlanTaskVO) => { - return await request.put({ url: `/biz/plan-task/update`, data }) -} - -// 删除生产计划任务 -export const deletePlanTask = async (id: number) => { - return await request.delete({ url: `/biz/plan-task/delete?id=` + id }) -} - -// 导出生产计划任务 Excel -export const exportPlanTask = async (params) => { - return await request.download({ url: `/biz/plan-task/export-excel`, params }) -} diff --git a/mes-ui/mes-ui-admin-vue3/src/api/biz/plantaskbom/index.ts b/mes-ui/mes-ui-admin-vue3/src/api/biz/plantaskbom/index.ts deleted file mode 100644 index 4d0ee42f..00000000 --- a/mes-ui/mes-ui-admin-vue3/src/api/biz/plantaskbom/index.ts +++ /dev/null @@ -1,39 +0,0 @@ -import request from '@/config/axios' - -export interface PlanTaskBomVO { - id: number - taskId: number - bomDetailId: number - owner: string - endTime: Date -} - -// 查询生产计划任务Bom分页 -export const getPlanTaskBomPage = async (params) => { - return await request.get({ url: `/biz/plan-task-bom/page`, params }) -} - -// 查询生产计划任务Bom详情 -export const getPlanTaskBom = async (id: number) => { - return await request.get({ url: `/biz/plan-task-bom/get?id=` + id }) -} - -// 新增生产计划任务Bom -export const createPlanTaskBom = async (data: PlanTaskBomVO) => { - return await request.post({ url: `/biz/plan-task-bom/create`, data }) -} - -// 修改生产计划任务Bom -export const updatePlanTaskBom = async (data: PlanTaskBomVO) => { - return await request.put({ url: `/biz/plan-task-bom/update`, data }) -} - -// 删除生产计划任务Bom -export const deletePlanTaskBom = async (id: number) => { - return await request.delete({ url: `/biz/plan-task-bom/delete?id=` + id }) -} - -// 导出生产计划任务Bom Excel -export const exportPlanTaskBom = async (params) => { - return await request.download({ url: `/biz/plan-task-bom/export-excel`, params }) -} diff --git a/mes-ui/mes-ui-admin-vue3/src/views/biz/plan/PlanWorkshopForm.vue b/mes-ui/mes-ui-admin-vue3/src/views/biz/plan/PlanWorkshopForm.vue new file mode 100644 index 00000000..a3778f13 --- /dev/null +++ b/mes-ui/mes-ui-admin-vue3/src/views/biz/plan/PlanWorkshopForm.vue @@ -0,0 +1,126 @@ + + diff --git a/mes-ui/mes-ui-admin-vue3/src/views/biz/plantask/PlanTaskForm.vue b/mes-ui/mes-ui-admin-vue3/src/views/biz/plantask/PlanTaskForm.vue deleted file mode 100644 index 39170a0c..00000000 --- a/mes-ui/mes-ui-admin-vue3/src/views/biz/plantask/PlanTaskForm.vue +++ /dev/null @@ -1,126 +0,0 @@ - - diff --git a/mes-ui/mes-ui-admin-vue3/src/views/biz/plantask/edit.vue b/mes-ui/mes-ui-admin-vue3/src/views/biz/plantask/edit.vue deleted file mode 100644 index fe24eac4..00000000 --- a/mes-ui/mes-ui-admin-vue3/src/views/biz/plantask/edit.vue +++ /dev/null @@ -1,390 +0,0 @@ - - - diff --git a/mes-ui/mes-ui-admin-vue3/src/views/biz/plantask/index.vue b/mes-ui/mes-ui-admin-vue3/src/views/biz/plantask/index.vue deleted file mode 100644 index 78c9f2f5..00000000 --- a/mes-ui/mes-ui-admin-vue3/src/views/biz/plantask/index.vue +++ /dev/null @@ -1,179 +0,0 @@ - - - diff --git a/sql/v1.0.0/2.business/1.structure.sql b/sql/v1.0.0/2.business/1.structure.sql index 1bcb5bac..0da481e3 100644 --- a/sql/v1.0.0/2.business/1.structure.sql +++ b/sql/v1.0.0/2.business/1.structure.sql @@ -71,3 +71,27 @@ ALTER TABLE project_sale_order MODIFY COLUMN `project_end_time` datetime COMMENT ALTER TABLE project_sale_order_sub MODIFY COLUMN `composition_id` BIGINT ( 20 ) COMMENT '材质'; ALTER TABLE infra_file ADD COLUMN `business_file_remark` VARCHAR(255) COMMENT '业务文件说明' AFTER `business_file_type`; + +drop table if exists project_plan_task; +drop table if exists project_plan_task_bom; + + +drop table if exists `project_plan_workshop`; +CREATE TABLE `project_plan_workshop` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增字段,唯一', + `project_plan_id` bigint(20) NOT NULL COMMENT '计划id', + `project_id` bigint(20) NOT NULL COMMENT '项目id', + `workshop_id` bigint(20) NOT NULL COMMENT '车间id', + `start_time` datetime COMMENT '预计开始时间', + `end_time` datetime COMMENT '预计结束时间', + `creator` varchar(64) DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE KEY `uk_project_workshop` (`project_plan_id`, `workshop_id`,`tenant_id`) USING BTREE +) ENGINE=InnoDB COMMENT='生产计划车间计划'; + +ALTER TABLE pro_task_dispatch ADD COLUMN `workshop_id` BIGINT ( 20 ) NOT NULL COMMENT '车间id' AFTER `project_sub_id`;