diff --git a/ktg-mes/src/main/java/com/ktg/mes/pro/controller/ProRouteProcessController.java b/ktg-mes/src/main/java/com/ktg/mes/pro/controller/ProRouteProcessController.java index a7c48cb..4facacf 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/pro/controller/ProRouteProcessController.java +++ b/ktg-mes/src/main/java/com/ktg/mes/pro/controller/ProRouteProcessController.java @@ -3,10 +3,14 @@ package com.ktg.mes.pro.controller; import java.util.List; import javax.servlet.http.HttpServletResponse; +import cn.hutool.core.collection.CollUtil; import com.ktg.common.constant.UserConstants; import com.ktg.common.utils.StringUtils; import com.ktg.mes.pro.domain.ProProcess; +import com.ktg.mes.pro.domain.ProRouteProduct; +import com.ktg.mes.pro.domain.ProWorkorder; import com.ktg.mes.pro.service.IProProcessService; +import com.ktg.mes.pro.service.IProRouteProductService; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -39,6 +43,9 @@ public class ProRouteProcessController extends BaseController @Autowired private IProRouteProcessService proRouteProcessService; + @Autowired + private IProRouteProductService proRouteProductService; + @Autowired private IProProcessService proProcessService; @@ -54,6 +61,28 @@ public class ProRouteProcessController extends BaseController return getDataTable(list); } + + /** + * 查询指定产品的工艺组成 + * @return + */ + @PreAuthorize("@ss.hasPermi('mes:pro:routeproduct:list')") + @GetMapping("/listProductProcess") + public AjaxResult listProductProcess(Long productId){ + ProRouteProduct proRouteProduct = new ProRouteProduct(); + proRouteProduct.setItemId(productId); + List products = proRouteProductService.selectProRouteProductList(proRouteProduct); + if(CollUtil.isNotEmpty(products)){ + ProRouteProduct product = products.get(0); + ProRouteProcess param = new ProRouteProcess(); + param.setRouteId(product.getRouteId()); + return AjaxResult.success(proRouteProcessService.selectProRouteProcessList(param)); + }else { + return AjaxResult.error("当前产品未配置工艺路线!"); + } + } + + /** * 导出工艺组成列表 */ diff --git a/ktg-mes/src/main/java/com/ktg/mes/pro/controller/ProRouteProductController.java b/ktg-mes/src/main/java/com/ktg/mes/pro/controller/ProRouteProductController.java index 1896953..f867cdd 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/pro/controller/ProRouteProductController.java +++ b/ktg-mes/src/main/java/com/ktg/mes/pro/controller/ProRouteProductController.java @@ -49,6 +49,7 @@ public class ProRouteProductController extends BaseController return getDataTable(list); } + /** * 导出产品制程列表 */ diff --git a/ktg-mes/src/main/java/com/ktg/mes/pro/controller/ProTaskController.java b/ktg-mes/src/main/java/com/ktg/mes/pro/controller/ProTaskController.java index 7e1ed9c..8a1f9f6 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/pro/controller/ProTaskController.java +++ b/ktg-mes/src/main/java/com/ktg/mes/pro/controller/ProTaskController.java @@ -2,6 +2,13 @@ package com.ktg.mes.pro.controller; import java.util.List; import javax.servlet.http.HttpServletResponse; + +import com.ktg.common.constant.UserConstants; +import com.ktg.mes.pro.domain.ProProcess; +import com.ktg.mes.pro.domain.ProWorkorder; +import com.ktg.mes.pro.service.IProProcessService; +import com.ktg.mes.pro.service.IProWorkorderService; +import com.ktg.system.strategy.AutoCodeUtil; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -28,12 +35,21 @@ import com.ktg.common.core.page.TableDataInfo; * @date 2022-05-14 */ @RestController -@RequestMapping("/pro/protask") +@RequestMapping("/mes/pro/protask") public class ProTaskController extends BaseController { @Autowired private IProTaskService proTaskService; + @Autowired + private IProWorkorderService proWorkorderService; + + @Autowired + private IProProcessService proProcessService; + + @Autowired + private AutoCodeUtil autoCodeUtil; + /** * 查询生产任务列表 */ @@ -69,6 +85,21 @@ public class ProTaskController extends BaseController return AjaxResult.success(proTaskService.selectProTaskByTaskId(taskId)); } + /** + * 获取甘特图中需要显示的TASK,包括三种类型的内容: + * 1.Project:基于时间范围搜索的生产工单转换而来的Project。 + * 搜索逻辑为:默认使用当前日期作为开始时间,搜索所有需求时间大于当前时间的生产工单 + * 2.Task:基于生产工单拆分到具体工作站后的生产任务转换而来的Task。 + * 3.Link:根据工序与工序之间的依赖关系转换而来的Link。 + */ + @PreAuthorize("@ss.hasPermi('pro:protask:list')") + @GetMapping("/listGanttTaskList") + public AjaxResult getGanttTaskList(ProTask proTask){ + + return AjaxResult.success(); + } + + /** * 新增生产任务 */ @@ -77,6 +108,31 @@ public class ProTaskController extends BaseController @PostMapping public AjaxResult add(@RequestBody ProTask proTask) { + + //生产工单 + ProWorkorder order = proWorkorderService.selectProWorkorderByWorkorderId(proTask.getWorkorderId()); + proTask.setWorkorderCode(order.getWorkorderCode()); + proTask.setWorkorderName(order.getWorkorderName()); + proTask.setItemId(order.getProductId()); + proTask.setItemCode(order.getProductCode()); + proTask.setItemName(order.getProductName()); + proTask.setSpecification(order.getProductSpc()); + proTask.setUnitOfMeasure(order.getUnitOfMeasure()); + proTask.setClientId(order.getClientId()); + proTask.setClientCode(order.getClientCode()); + proTask.setClientName(order.getClientName()); + + //工序信息 + ProProcess process = proProcessService.selectProProcessByProcessId(proTask.getProcessId()); + proTask.setProcessId(process.getProcessId()); + proTask.setProcessCode(process.getProcessCode()); + proTask.setProcessName(process.getProcessName()); + + //自动生成任务编号和名称 + proTask.setTaskCode(autoCodeUtil.genSerialCode(UserConstants.TASK_CODE,null)); + proTask.setTaskName(new StringBuilder().append(proTask.getItemName()).append("【").append(proTask.getQuantity().toString()).append("】").append(proTask.getUnitOfMeasure()).toString()); + + return toAjax(proTaskService.insertProTask(proTask)); } diff --git a/ktg-mes/src/main/java/com/ktg/mes/pro/domain/ProTask.java b/ktg-mes/src/main/java/com/ktg/mes/pro/domain/ProTask.java index 2df0f2d..7c258c7 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/pro/domain/ProTask.java +++ b/ktg-mes/src/main/java/com/ktg/mes/pro/domain/ProTask.java @@ -12,7 +12,7 @@ import com.ktg.common.core.domain.BaseEntity; * 生产任务对象 pro_task * * @author yinjinlu - * @date 2022-05-14 + * @date 2022-05-15 */ public class ProTask extends BaseEntity { @@ -53,6 +53,18 @@ public class ProTask extends BaseEntity @Excel(name = "工作站名称") private String workstationName; + /** 工序ID */ + @Excel(name = "工序ID") + private Long processId; + + /** 工序编码 */ + @Excel(name = "工序编码") + private String processCode; + + /** 工序名称 */ + @Excel(name = "工序名称") + private String processName; + /** 产品物料ID */ @Excel(name = "产品物料ID") private Long itemId; @@ -217,6 +229,33 @@ public class ProTask extends BaseEntity { return workstationName; } + public void setProcessId(Long processId) + { + this.processId = processId; + } + + public Long getProcessId() + { + return processId; + } + public void setProcessCode(String processCode) + { + this.processCode = processCode; + } + + public String getProcessCode() + { + return processCode; + } + public void setProcessName(String processName) + { + this.processName = processName; + } + + public String getProcessName() + { + return processName; + } public void setItemId(Long itemId) { this.itemId = itemId; @@ -419,6 +458,9 @@ public class ProTask extends BaseEntity .append("workstationId", getWorkstationId()) .append("workstationCode", getWorkstationCode()) .append("workstationName", getWorkstationName()) + .append("processId", getProcessId()) + .append("processCode", getProcessCode()) + .append("processName", getProcessName()) .append("itemId", getItemId()) .append("itemCode", getItemCode()) .append("itemName", getItemName()) diff --git a/ktg-mes/src/main/java/com/ktg/mes/pro/domain/ProWorkorder.java b/ktg-mes/src/main/java/com/ktg/mes/pro/domain/ProWorkorder.java index e07ee05..055ef1b 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/pro/domain/ProWorkorder.java +++ b/ktg-mes/src/main/java/com/ktg/mes/pro/domain/ProWorkorder.java @@ -12,7 +12,7 @@ import com.ktg.common.core.domain.TreeEntity; * 生产工单对象 pro_workorder * * @author yinjinlu - * @date 2022-05-09 + * @date 2022-05-15 */ public class ProWorkorder extends TreeEntity { @@ -61,6 +61,18 @@ public class ProWorkorder extends TreeEntity @Excel(name = "生产数量") private BigDecimal quantity; + /** 已生产数量 */ + @Excel(name = "已生产数量") + private BigDecimal quantityProduced; + + /** 调整数量 */ + @Excel(name = "调整数量") + private BigDecimal quantityChanged; + + /** 已排产数量 */ + @Excel(name = "已排产数量") + private BigDecimal quantityScheduled; + /** 客户ID */ @Excel(name = "客户ID") private Long clientId; @@ -193,6 +205,33 @@ public class ProWorkorder extends TreeEntity { return quantity; } + public void setQuantityProduced(BigDecimal quantityProduced) + { + this.quantityProduced = quantityProduced; + } + + public BigDecimal getQuantityProduced() + { + return quantityProduced; + } + public void setQuantityChanged(BigDecimal quantityChanged) + { + this.quantityChanged = quantityChanged; + } + + public BigDecimal getQuantityChanged() + { + return quantityChanged; + } + public void setQuantityScheduled(BigDecimal quantityScheduled) + { + this.quantityScheduled = quantityScheduled; + } + + public BigDecimal getQuantityScheduled() + { + return quantityScheduled; + } public void setClientId(Long clientId) { this.clientId = clientId; @@ -289,6 +328,9 @@ public class ProWorkorder extends TreeEntity .append("productSpc", getProductSpc()) .append("unitOfMeasure", getUnitOfMeasure()) .append("quantity", getQuantity()) + .append("quantityProduced", getQuantityProduced()) + .append("quantityChanged", getQuantityChanged()) + .append("quantityScheduled", getQuantityScheduled()) .append("clientId", getClientId()) .append("clientCode", getClientCode()) .append("clientName", getClientName()) diff --git a/ktg-mes/src/main/resources/mapper/pro/ProTaskMapper.xml b/ktg-mes/src/main/resources/mapper/pro/ProTaskMapper.xml index 00ab908..fb4b4c9 100644 --- a/ktg-mes/src/main/resources/mapper/pro/ProTaskMapper.xml +++ b/ktg-mes/src/main/resources/mapper/pro/ProTaskMapper.xml @@ -14,6 +14,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + @@ -57,6 +60,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and workstation_id = #{workstationId} and workstation_code = #{workstationCode} and workstation_name like concat('%', #{workstationName}, '%') + and process_id = #{processId} + and process_code = #{processCode} + and process_name like concat('%', #{processName}, '%') and item_id = #{itemId} and item_code = #{itemCode} and item_name like concat('%', #{itemName}, '%') @@ -93,6 +99,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" workstation_id, workstation_code, workstation_name, + process_id, + process_code, + process_name, item_id, item_code, item_name, @@ -129,6 +138,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{workstationId}, #{workstationCode}, #{workstationName}, + #{processId}, + #{processCode}, + #{processName}, #{itemId}, #{itemCode}, #{itemName}, @@ -169,6 +181,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" workstation_id = #{workstationId}, workstation_code = #{workstationCode}, workstation_name = #{workstationName}, + process_id = #{processId}, + process_code = #{processCode}, + process_name = #{processName}, item_id = #{itemId}, item_code = #{itemCode}, item_name = #{itemName}, diff --git a/ktg-mes/src/main/resources/mapper/pro/ProWorkorderMapper.xml b/ktg-mes/src/main/resources/mapper/pro/ProWorkorderMapper.xml index 93b0329..63f611d 100644 --- a/ktg-mes/src/main/resources/mapper/pro/ProWorkorderMapper.xml +++ b/ktg-mes/src/main/resources/mapper/pro/ProWorkorderMapper.xml @@ -16,6 +16,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + @@ -51,6 +54,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and product_spc = #{productSpc} and unit_of_measure = #{unitOfMeasure} and quantity = #{quantity} + and quantity_produced = #{quantityProduced} + and quantity_changed = #{quantityChanged} + and quantity_scheduled = #{quantityScheduled} and client_id = #{clientId} and client_code = #{clientCode} and client_name like concat('%', #{clientName}, '%') @@ -84,6 +90,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" product_spc, unit_of_measure, quantity, + quantity_produced, + quantity_changed, + quantity_scheduled, client_id, client_code, client_name, @@ -112,6 +121,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{productSpc}, #{unitOfMeasure}, #{quantity}, + #{quantityProduced}, + #{quantityChanged}, + #{quantityScheduled}, #{clientId}, #{clientCode}, #{clientName}, @@ -144,6 +156,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" product_spc = #{productSpc}, unit_of_measure = #{unitOfMeasure}, quantity = #{quantity}, + quantity_produced = #{quantityProduced}, + quantity_changed = #{quantityChanged}, + quantity_scheduled = #{quantityScheduled}, client_id = #{clientId}, client_code = #{clientCode}, client_name = #{clientName},