parent
b255556b35
commit
4f2b13f4b1
@ -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<Long> createPlanTask(@Valid @RequestBody PlanTaskSaveReqVO createReqVO) {
|
|
||||||
return success(planTaskService.createPlanTask(createReqVO));
|
|
||||||
}
|
|
||||||
|
|
||||||
@PutMapping("/update")
|
|
||||||
@Operation(summary = "更新生产计划任务")
|
|
||||||
@PreAuthorize("@ss.hasPermission('biz:plan-task:update')")
|
|
||||||
public CommonResult<Boolean> 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<Boolean> 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<PlanTaskRespVO> 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<PageResult<PlanTaskRespVO>> getPlanTaskPage(@Valid PlanTaskPageReqVO pageReqVO) {
|
|
||||||
PageResult<PlanTaskDO> 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<PlanTaskDO> 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<Integer> 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<Integer> refreshPlanTaskByPlanId(@RequestParam("id") Long id) {
|
|
||||||
return success(planTaskService.refreshPlanTaskByPlanId(id));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -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<Long> 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<Boolean> 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<Boolean> 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<PlanTaskBomRespVO> 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<PageResult<PlanTaskBomRespVO>> getPlanTaskBomPage(@Valid PlanTaskBomPageReqVO pageReqVO) {
|
|
||||||
PageResult<PlanTaskBomDO> 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<PlanTaskBomDO> list = planTaskBomService.getPlanTaskBomPage(pageReqVO).getList();
|
|
||||||
// 导出 Excel
|
|
||||||
ExcelUtils.write(response, "生产计划任务Bom.xls", "数据", PlanTaskBomRespVO.class,
|
|
||||||
BeanUtils.toBean(list, PlanTaskBomRespVO.class));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -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;
|
|
||||||
|
|
||||||
}
|
|
@ -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;
|
|
||||||
|
|
||||||
}
|
|
@ -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;
|
|
||||||
|
|
||||||
}
|
|
@ -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<PlanWorkshopDO> {
|
||||||
|
|
||||||
|
default List<PlanWorkshopDO> selectListByProjectPlanId(Long projectPlanId) {
|
||||||
|
return selectList(PlanWorkshopDO::getProjectPlanId, projectPlanId);
|
||||||
|
}
|
||||||
|
|
||||||
|
default int deleteByProjectPlanId(Long projectPlanId) {
|
||||||
|
return delete(PlanWorkshopDO::getProjectPlanId, projectPlanId);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -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<PlanTaskDO> {
|
|
||||||
|
|
||||||
default PageResult<PlanTaskDO> selectPage(PlanTaskPageReqVO reqVO) {
|
|
||||||
MPJLambdaWrapper<PlanTaskDO> 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<PlanTaskDO>()
|
|
||||||
// .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<PlanTaskDO> 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);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -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<PlanTaskBomDO> {
|
|
||||||
|
|
||||||
default PageResult<PlanTaskBomDO> selectPage(PlanTaskBomPageReqVO reqVO) {
|
|
||||||
MPJLambdaWrapper<PlanTaskBomDO> 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);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -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<PlanTaskBomDO> getPlanTaskBomPage(PlanTaskBomPageReqVO pageReqVO);
|
|
||||||
|
|
||||||
}
|
|
@ -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<PlanTaskBomDO> getPlanTaskBomPage(PlanTaskBomPageReqVO pageReqVO) {
|
|
||||||
return planTaskBomMapper.selectPage(pageReqVO);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -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 })
|
|
||||||
}
|
|
@ -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 })
|
|
||||||
}
|
|
@ -1,179 +0,0 @@
|
|||||||
<template>
|
|
||||||
<el-card class="hl-card">
|
|
||||||
<template #header>
|
|
||||||
<span>生产任务单</span>
|
|
||||||
</template>
|
|
||||||
<ContentWrap class="borderxx">
|
|
||||||
<!-- 搜索工作栏 -->
|
|
||||||
<el-form class="-mb-15px" :model="queryParams" ref="queryFormRef" :inline="true" label-width="120px">
|
|
||||||
<el-form-item label="生产任务单号" prop="taskNo">
|
|
||||||
<el-input v-model="queryParams.taskNo" placeholder="生产任务单号" clearable @keyup.enter="handleQuery" class="!w-240px" />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="生产计划单号" prop="planNo">
|
|
||||||
<el-input v-model="queryParams.planNo" placeholder="生产计划单号" clearable @keyup.enter="handleQuery" class="!w-240px" />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="项目编号" prop="projectCode">
|
|
||||||
<el-input v-model="queryParams.projectCode" placeholder="项目编号" clearable @keyup.enter="handleQuery" class="!w-240px" />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="客户名称" prop="customerName">
|
|
||||||
<el-input v-model="queryParams.customerName" placeholder="客户名称" clearable @keyup.enter="handleQuery" class="!w-240px" />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="项目名称" prop="projectName">
|
|
||||||
<el-input v-model="queryParams.projectName" placeholder="项目名称" clearable @keyup.enter="handleQuery" class="!w-240px" />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="子项目名称 " prop="projectSubName">
|
|
||||||
<el-input v-model="queryParams.projectSubName" placeholder="子项目名称" clearable @keyup.enter="handleQuery" class="!w-240px" />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="子项目编号 " prop="projectSubCode">
|
|
||||||
<el-input v-model="queryParams.projectSubCode" placeholder="子项目编号" clearable @keyup.enter="handleQuery" class="!w-240px" />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="单据状态 " prop="status">
|
|
||||||
<el-select v-model="queryParams.status" placeholder="单据状态" clearable class="!w-240px">
|
|
||||||
<el-option v-for="dict in getIntDictOptions(DICT_TYPE.BIZ_BOM_STATUS)" :key="dict.value" :label="dict.label" :value="dict.value" />
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item style="margin-left: 20px">
|
|
||||||
<el-button @click="handleQuery" type="primary">
|
|
||||||
<Icon icon="ep:search" class="mr-5px" /> 搜索
|
|
||||||
</el-button>
|
|
||||||
<el-button @click="resetQuery">
|
|
||||||
<Icon icon="ep:refresh" class="mr-5px" /> 重置
|
|
||||||
</el-button>
|
|
||||||
</el-form-item>
|
|
||||||
</el-form>
|
|
||||||
</ContentWrap>
|
|
||||||
|
|
||||||
<!-- 列表 -->
|
|
||||||
<ContentWrap>
|
|
||||||
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true" class="hl-table">
|
|
||||||
<el-table-column type="index" min-width="100" fixed label="序号" align="center" />
|
|
||||||
<el-table-column label="生产任务单号" align="center" prop="taskNo" min-width="200px" fixed >
|
|
||||||
<template #default="scope">
|
|
||||||
<el-button text type="primary" @click="openForm('detail', scope.row.id)">
|
|
||||||
{{scope.row.taskNo}}
|
|
||||||
</el-button>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column label="生产计划单号" align="center" prop="planNo" min-width="200px" fixed />
|
|
||||||
<el-table-column label="项目编号" align="center" prop="projectCode" min-width="220px" fixed />
|
|
||||||
<el-table-column label="客户名称" align="center" prop="customerName" min-width="220px" />
|
|
||||||
<el-table-column label="项目名称" align="center" prop="projectName" min-width="220px" />
|
|
||||||
<el-table-column label="项目结束时间" align="center" prop="projectEndTime" min-width="260">
|
|
||||||
<template #default="scope">
|
|
||||||
{{
|
|
||||||
formatDate(scope.row.projectEndTime, 'YYYY-MM-DD')
|
|
||||||
}}
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column label="子项目名称" align="center" prop="projectSubName" min-width="220px" />
|
|
||||||
<el-table-column label="子项目编号" align="center" prop="projectSubCode" min-width="220px" />
|
|
||||||
<el-table-column label="BOM清单号" align="center" prop="bomCode" min-width="220px" />
|
|
||||||
<el-table-column label="BOM版本号" align="center" prop="bomVersion" min-width="220px" />
|
|
||||||
<el-table-column label="创建时间" align="center" prop="createTime" :formatter="dateFormatter" min-width="220" />
|
|
||||||
<el-table-column label="备注" align="center" prop="description" min-width="220px" />
|
|
||||||
<el-table-column fixed="right" label="单据状态" align="center" prop="status" min-width="150">
|
|
||||||
<template #default="scope">
|
|
||||||
<dict-tag :type="DICT_TYPE.BIZ_BOM_STATUS" :value="scope.row.status" />
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
|
|
||||||
<el-table-column label="操作" align="center" fixed="right" min-width="220px">
|
|
||||||
<template #default="scope">
|
|
||||||
<el-button link type="primary" @click="openForm('update', scope.row.id)">
|
|
||||||
编辑
|
|
||||||
</el-button>
|
|
||||||
<el-button link type="primary" @click="openForm('detail', scope.row.id)">
|
|
||||||
查看详情
|
|
||||||
</el-button>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
</el-table>
|
|
||||||
<!-- 分页 -->
|
|
||||||
<Pagination :total="total" v-model:page="queryParams.pageNo" v-model:limit="queryParams.pageSize" @pagination="getList" />
|
|
||||||
</ContentWrap>
|
|
||||||
|
|
||||||
</el-card>
|
|
||||||
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script setup lang="ts">
|
|
||||||
import { getIntDictOptions, getStrDictOptions, DICT_TYPE } from '@/utils/dict'
|
|
||||||
import { dateFormatter, formatDate } from '@/utils/formatTime'
|
|
||||||
import download from '@/utils/download'
|
|
||||||
import * as PlanTaskApi from '@/api/biz/plantask'
|
|
||||||
|
|
||||||
defineOptions({ name: 'PlanTask' })
|
|
||||||
|
|
||||||
const message = useMessage() // 消息弹窗
|
|
||||||
const { t } = useI18n() // 国际化
|
|
||||||
const router = useRouter()
|
|
||||||
|
|
||||||
const loading = ref(true) // 列表的加载中
|
|
||||||
const list = ref([]) // 列表的数据
|
|
||||||
const total = ref(0) // 列表的总页数
|
|
||||||
const queryParams = reactive({
|
|
||||||
pageNo: 1,
|
|
||||||
pageSize: 10,
|
|
||||||
taskNo: undefined,
|
|
||||||
planNo: undefined,
|
|
||||||
projectName: undefined,
|
|
||||||
customerName: undefined,
|
|
||||||
projectCode: undefined,
|
|
||||||
projectSubCode: undefined,
|
|
||||||
projectSubName: undefined,
|
|
||||||
status: undefined,
|
|
||||||
createTime: []
|
|
||||||
})
|
|
||||||
const queryFormRef = ref() // 搜索的表单
|
|
||||||
const exportLoading = ref(false) // 导出的加载中
|
|
||||||
|
|
||||||
/** 查询列表 */
|
|
||||||
const getList = async () => {
|
|
||||||
loading.value = true
|
|
||||||
try {
|
|
||||||
const data = await PlanTaskApi.getPlanTaskPage(queryParams)
|
|
||||||
list.value = data.list
|
|
||||||
total.value = data.total
|
|
||||||
} finally {
|
|
||||||
loading.value = false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 搜索按钮操作 */
|
|
||||||
const handleQuery = () => {
|
|
||||||
queryParams.pageNo = 1
|
|
||||||
getList()
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 重置按钮操作 */
|
|
||||||
const resetQuery = () => {
|
|
||||||
queryFormRef.value.resetFields()
|
|
||||||
handleQuery()
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 添加/修改操作 */
|
|
||||||
const formRef = ref()
|
|
||||||
const openForm = (type: string, id?: number) => {
|
|
||||||
router.push({ path: '/plan/plantaskedit', query: { type: type, id: id } })
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 导出按钮操作 */
|
|
||||||
const handleExport = async () => {
|
|
||||||
try {
|
|
||||||
// 导出的二次确认
|
|
||||||
await message.exportConfirm()
|
|
||||||
// 发起导出
|
|
||||||
exportLoading.value = true
|
|
||||||
const data = await PlanTaskApi.exportPlanTask(queryParams)
|
|
||||||
download.excel(data, '生产计划任务.xls')
|
|
||||||
} catch {
|
|
||||||
} finally {
|
|
||||||
exportLoading.value = false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 初始化 **/
|
|
||||||
onMounted(() => {
|
|
||||||
getList()
|
|
||||||
})
|
|
||||||
</script>
|
|
Loading…
Reference in new issue