diff --git a/doc/设计文档/数据库设计/mes-pro.sql b/doc/设计文档/数据库设计/mes-pro.sql index 5487745..53f51a2 100644 --- a/doc/设计文档/数据库设计/mes-pro.sql +++ b/doc/设计文档/数据库设计/mes-pro.sql @@ -288,6 +288,9 @@ create table pro_feedback ( workorder_id bigint(20) not null comment '生产工单ID', workorder_code varchar(64) comment '生产工单编号', workorder_name varchar(255) comment '生产工单名称', + process_id bigint(20) not null comment '工序ID', + process_code varchar(64) comment '工序编码', + process_name varchar(255) comment '工序名称', task_id bigint(20) comment '生产任务ID', task_code varchar(64) comment '生产任务编号', item_id bigint(20) not null comment '产品物料ID', diff --git a/ktg-mes/src/main/java/com/ktg/mes/pro/controller/ProFeedbackController.java b/ktg-mes/src/main/java/com/ktg/mes/pro/controller/ProFeedbackController.java index a3b4a96..83fd40e 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/pro/controller/ProFeedbackController.java +++ b/ktg-mes/src/main/java/com/ktg/mes/pro/controller/ProFeedbackController.java @@ -6,6 +6,8 @@ import javax.servlet.http.HttpServletResponse; import com.ktg.common.constant.UserConstants; import com.ktg.common.utils.StringUtils; +import com.ktg.mes.md.domain.MdWorkstation; +import com.ktg.mes.md.service.IMdWorkstationService; import com.ktg.mes.pro.domain.*; import com.ktg.mes.pro.service.IProRouteProcessService; import com.ktg.mes.pro.service.IProTaskService; @@ -58,6 +60,9 @@ public class ProFeedbackController extends BaseController @Autowired private IProWorkorderService proWorkorderService; + @Autowired + private IMdWorkstationService mdWorkstationService; + @Autowired private IWmItemConsumeService wmItemConsumeService; @@ -110,6 +115,13 @@ public class ProFeedbackController extends BaseController @PostMapping public AjaxResult add(@RequestBody ProFeedback proFeedback) { + MdWorkstation workstation = mdWorkstationService.selectMdWorkstationByWorkstationId(proFeedback.getWorkstationId()); + proFeedback.setProcessId(workstation.getProcessId()); + proFeedback.setProcessCode(workstation.getProcessCode()); + proFeedback.setProcessName(workstation.getProcessName()); + + //根据生产工单,工作站,工序 查找对应的生产任务 + return toAjax(proFeedbackService.insertProFeedback(proFeedback)); } @@ -165,7 +177,9 @@ public class ProFeedbackController extends BaseController //如果是关键工序,则更新当前工单的已生产数量,进行产品产出动作 if(proRouteProcessService.checkKeyProcess(feedback)){ //更新生产工单的生产数量 - workorder.setQuantityProduced(workorder.getQuantityProduced().add(feedback.getQuantityFeedback())); + BigDecimal produced = workorder.getQuantityProduced() == null?new BigDecimal(0):workorder.getQuantityProduced(); + BigDecimal feedBackQuantity = feedback.getQuantityFeedback() ==null?new BigDecimal(0):feedback.getQuantityFeedback(); + workorder.setQuantityProduced( produced.add(feedBackQuantity)); proWorkorderService.updateProWorkorder(workorder); //生成产品产出记录单 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 da24d3d..c0a0e8b 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 @@ -1,5 +1,6 @@ package com.ktg.mes.pro.controller; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletResponse; @@ -117,7 +118,9 @@ public class ProTaskController extends BaseController if(workorder.getParentId().longValue()!=0L){ wdata.setParent("MO"+workorder.getParentId().toString()); } - wdata.setProgress(0f); + BigDecimal produced = workorder.getQuantityProduced(); + BigDecimal quantitiy = workorder.getQuantity(); + wdata.setProgress( produced.divide(quantitiy).floatValue()); wdata.setDuration(0L); wdata.setType(UserConstants.GANTT_TASK_TYPE_PROJECT); ganttData.add(wdata); @@ -139,7 +142,9 @@ public class ProTaskController extends BaseController data.setQuantity(task.getQuantity()); data.setProcess(task.getProcessName()); data.setWorkstation(task.getWorkstationName()); - data.setProgress(0f); + BigDecimal taskproduced = task.getQuantityProduced(); + BigDecimal taskquantitiy = task.getQuantity(); + data.setProgress(taskproduced.divide(taskquantitiy).floatValue()); data.setType(UserConstants.GANTT_TASK_TYPE_TASK); ganttData.add(data); } diff --git a/ktg-mes/src/main/java/com/ktg/mes/pro/domain/ProFeedback.java b/ktg-mes/src/main/java/com/ktg/mes/pro/domain/ProFeedback.java index 84b8e15..ac45ee1 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/pro/domain/ProFeedback.java +++ b/ktg-mes/src/main/java/com/ktg/mes/pro/domain/ProFeedback.java @@ -36,6 +36,17 @@ public class ProFeedback extends BaseEntity @Excel(name = "工作站名称") private String workstationName; + /** 工序ID */ + private Long processId; + + /** 工序编码 */ + @Excel(name = "工序编码") + private String processCode; + + /** 工序名称 */ + @Excel(name = "工序名称") + private String processName; + /** 生产工单ID */ @Excel(name = "生产工单ID") private Long workorderId; @@ -175,7 +186,31 @@ public class ProFeedback extends BaseEntity this.workorderId = workorderId; } - public Long getWorkorderId() + public Long getProcessId() { + return processId; + } + + public void setProcessId(Long processId) { + this.processId = processId; + } + + public String getProcessCode() { + return processCode; + } + + public void setProcessCode(String processCode) { + this.processCode = processCode; + } + + public String getProcessName() { + return processName; + } + + public void setProcessName(String processName) { + this.processName = processName; + } + + public Long getWorkorderId() { return workorderId; } @@ -404,6 +439,9 @@ public class ProFeedback extends BaseEntity ", workstationId=" + workstationId + ", workstationCode='" + workstationCode + '\'' + ", workstationName='" + workstationName + '\'' + + ", processId=" + processId + + ", processCode='" + processCode + '\'' + + ", processName='" + processName + '\'' + ", workorderId=" + workorderId + ", workorderCode='" + workorderCode + '\'' + ", workorderName='" + workorderName + '\'' + diff --git a/ktg-mes/src/main/java/com/ktg/mes/pro/service/impl/ProRouteProcessServiceImpl.java b/ktg-mes/src/main/java/com/ktg/mes/pro/service/impl/ProRouteProcessServiceImpl.java index bf0bdba..1297d1c 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/pro/service/impl/ProRouteProcessServiceImpl.java +++ b/ktg-mes/src/main/java/com/ktg/mes/pro/service/impl/ProRouteProcessServiceImpl.java @@ -101,8 +101,8 @@ public class ProRouteProcessServiceImpl implements IProRouteProcessService ProRouteProduct param = new ProRouteProduct(); param.setItemId(feedback.getItemId()); List products = proRouteProductMapper.selectProRouteProductList(param); - if(!CollectionUtil.isNotEmpty(products)){ - products = products.stream().filter(item -> proRouteMapper.selectProRouteByRouteId(item.getRouteId()).getEnableFlag()==UserConstants.YES).collect(Collectors.toList()); + if(CollectionUtil.isNotEmpty(products)){ + products = products.stream().filter(item -> proRouteMapper.selectProRouteByRouteId(item.getRouteId()).getEnableFlag().equals(UserConstants.YES)).collect(Collectors.toList()); if (CollectionUtil.isNotEmpty(products)){ routeId = products.get(0).getRouteId(); } diff --git a/ktg-mes/src/main/java/com/ktg/mes/wm/service/impl/WmItemConsumeServiceImpl.java b/ktg-mes/src/main/java/com/ktg/mes/wm/service/impl/WmItemConsumeServiceImpl.java index 244465d..e07fbd4 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/wm/service/impl/WmItemConsumeServiceImpl.java +++ b/ktg-mes/src/main/java/com/ktg/mes/wm/service/impl/WmItemConsumeServiceImpl.java @@ -173,7 +173,7 @@ public class WmItemConsumeServiceImpl implements IWmItemConsumeService line.setItemName(bom.getItemName()); line.setSpecification(bom.getSpecification()); line.setUnitOfMeasure(bom.getUnitOfMeasure()); - line.setQuantityConsume(bom.getQuantity().multiply(feedback.getQuantity())); + line.setQuantityConsume(bom.getQuantity().multiply(feedback.getQuantityFeedback())); line.setBatchCode(workorder.getBatchCode()); wmItemConsumeLineMapper.insertWmItemConsumeLine(line); } diff --git a/ktg-mes/src/main/java/com/ktg/mes/wm/service/impl/WmProductProduceServiceImpl.java b/ktg-mes/src/main/java/com/ktg/mes/wm/service/impl/WmProductProduceServiceImpl.java index 9975050..6fd5bd3 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/wm/service/impl/WmProductProduceServiceImpl.java +++ b/ktg-mes/src/main/java/com/ktg/mes/wm/service/impl/WmProductProduceServiceImpl.java @@ -160,7 +160,7 @@ public class WmProductProduceServiceImpl implements IWmProductProduceService line.setItemName(feedback.getItemName()); line.setSpecification(feedback.getSpecification()); line.setUnitOfMeasure(feedback.getUnitOfMeasure()); - line.setQuantityProduce(feedback.getQuantity()); + line.setQuantityProduce(feedback.getQuantityFeedback()); line.setBatchCode(workorder.getBatchCode()); wmProductProduceLineMapper.insertWmProductProduceLine(line); return productProduce; diff --git a/ktg-mes/src/main/resources/mapper/pro/ProFeedbackMapper.xml b/ktg-mes/src/main/resources/mapper/pro/ProFeedbackMapper.xml index 61fed13..e775870 100644 --- a/ktg-mes/src/main/resources/mapper/pro/ProFeedbackMapper.xml +++ b/ktg-mes/src/main/resources/mapper/pro/ProFeedbackMapper.xml @@ -13,6 +13,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + @@ -42,7 +45,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select record_id,feedback_type, workstation_id, workstation_code, workstation_name, workorder_id, workorder_code, workorder_name, task_id, task_code,item_id,item_code,item_name,specification,unit_of_measure, quantity, quantity_feedback, quantity_qualified, quantity_unquanlified, user_name, nick_name, feedback_channel, feedback_time,record_user,record_nick,status, remark, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time from pro_feedback + select record_id,feedback_type, workstation_id, workstation_code, workstation_name,process_id, process_code, process_name, workorder_id, workorder_code, workorder_name, task_id, task_code,item_id,item_code,item_name,specification,unit_of_measure, quantity, quantity_feedback, quantity_qualified, quantity_unquanlified, user_name, nick_name, feedback_channel, feedback_time,record_user,record_nick,status, remark, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time from pro_feedback - + and task_code = #{taskCode} and task_name like concat('%', #{taskName}, '%') and workorder_id = #{workorderId} @@ -73,8 +75,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and unit_of_measure = #{unitOfMeasure} and quantity = #{quantity} and quantity_produced = #{quantityProduced} - and quantity_quanlify = #{quantityQuanlify} - and quantity_unquanlify = #{quantityUnquanlify} and quantity_changed = #{quantityChanged} and client_id = #{clientId} and client_code = #{clientCode} @@ -85,8 +85,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and end_time = #{endTime} and color_code = #{colorCode} and request_date = #{requestDate} - and status = #{status} - order by request_date asc + and attr1 = #{attr1} + and attr2 = #{attr2} + and attr3 = #{attr3} + and attr4 = #{attr4} + and status = #{status} + and quantity_quanlify = #{quantityQuanlify} + and quantity_unquanlify = #{quantityUnquanlify} diff --git a/ktg-mes/src/main/resources/mapper/pro/ProWorkorderMapper.xml b/ktg-mes/src/main/resources/mapper/pro/ProWorkorderMapper.xml index 75c4032..51c2862 100644 --- a/ktg-mes/src/main/resources/mapper/pro/ProWorkorderMapper.xml +++ b/ktg-mes/src/main/resources/mapper/pro/ProWorkorderMapper.xml @@ -39,7 +39,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select workorder_id, workorder_code, workorder_name, order_source, source_code, product_id, product_code, product_name, product_spc, unit_of_measure,batch_code, quantity, client_id, client_code, client_name, request_date, parent_id, ancestors, status, remark, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time from pro_workorder + select workorder_id, workorder_code, workorder_name, order_source, source_code, product_id, product_code, product_name, product_spc, unit_of_measure,batch_code, quantity,quantity_produced, client_id, client_code, client_name, request_date, parent_id, ancestors, status, remark, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time from pro_workorder