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 67237de..c79f131 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 @@ -4,6 +4,7 @@ import java.math.BigDecimal; import java.util.List; import javax.servlet.http.HttpServletResponse; +import cn.hutool.core.collection.CollectionUtil; import com.ktg.common.constant.UserConstants; import com.ktg.common.utils.StringUtils; import com.ktg.mes.md.domain.MdWorkstation; @@ -123,6 +124,30 @@ public class ProFeedbackController extends BaseController }else { return AjaxResult.error("当前生产任务对应的工作站不存在!"); } + //检查对应的工艺路线和工序配置 + if(StringUtils.isNotNull(proFeedback.getRouteId())&& StringUtils.isNotNull(proFeedback.getProcessId())){ + ProRouteProcess param = new ProRouteProcess(); + param.setRouteId(proFeedback.getRouteId()); + param.setProcessId(proFeedback.getProcessId()); + List processes = proRouteProcessService.selectProRouteProcessList(param); + if(CollectionUtil.isEmpty(processes)){ + return AjaxResult.error("未找到生产任务对应的工艺工序配置!"); + } + }else { + return AjaxResult.error("当前生产任务对应的工艺工序配置无效!"); + } + + //检查数量 + if(UserConstants.YES.equals(proFeedback.getIsCheck())){ + if(!StringUtils.isNotNull(proFeedback.getQuantityUncheck())){ + return AjaxResult.error("请输入待检测数量!"); + } + }else { + if(!StringUtils.isNotNull(proFeedback.getQuantityQualified()) || !StringUtils.isNotNull(proFeedback.getQuantityUnquanlified())){ + return AjaxResult.error("请输入合格品和不良品数量!"); + } + } + proFeedback.setCreateBy(getUsername()); return toAjax(proFeedbackService.insertProFeedback(proFeedback)); } @@ -135,6 +160,38 @@ public class ProFeedbackController extends BaseController @PutMapping public AjaxResult edit(@RequestBody ProFeedback proFeedback) { + MdWorkstation workstation = mdWorkstationService.selectMdWorkstationByWorkstationId(proFeedback.getWorkstationId()); + if(StringUtils.isNotNull(workstation)){ + proFeedback.setProcessId(workstation.getProcessId()); + proFeedback.setProcessCode(workstation.getProcessCode()); + proFeedback.setProcessName(workstation.getProcessName()); + }else { + return AjaxResult.error("当前生产任务对应的工作站不存在!"); + } + + //检查对应的工艺路线和工序配置 + if(StringUtils.isNotNull(proFeedback.getRouteId())&& StringUtils.isNotNull(proFeedback.getProcessId())){ + ProRouteProcess param = new ProRouteProcess(); + param.setRouteId(proFeedback.getRouteId()); + param.setProcessId(proFeedback.getProcessId()); + List processes = proRouteProcessService.selectProRouteProcessList(param); + if(CollectionUtil.isEmpty(processes)){ + return AjaxResult.error("未找到生产任务对应的工艺工序配置!"); + } + }else { + return AjaxResult.error("当前生产任务对应的工艺工序配置无效!"); + } + + //检查数量 + if(UserConstants.YES.equals(proFeedback.getIsCheck())){ + if(!StringUtils.isNotNull(proFeedback.getQuantityUncheck())){ + return AjaxResult.error("当前工作站报工需要经过质检确认,请输入待检测数量!"); + } + }else { + if(!StringUtils.isNotNull(proFeedback.getQuantityQualified()) || !StringUtils.isNotNull(proFeedback.getQuantityUnquanlified())){ + return AjaxResult.error("请输入合格品和不良品数量!"); + } + } return toAjax(proFeedbackService.updateProFeedback(proFeedback)); } diff --git a/ktg-mes/src/main/java/com/ktg/mes/pro/controller/mobile/ProFeedBackMobController.java b/ktg-mes/src/main/java/com/ktg/mes/pro/controller/mobile/ProFeedBackMobController.java index 4ea29e8..563d46a 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/pro/controller/mobile/ProFeedBackMobController.java +++ b/ktg-mes/src/main/java/com/ktg/mes/pro/controller/mobile/ProFeedBackMobController.java @@ -1,5 +1,6 @@ package com.ktg.mes.pro.controller.mobile; +import cn.hutool.core.collection.CollectionUtil; import com.ktg.common.annotation.Log; import com.ktg.common.constant.UserConstants; import com.ktg.common.core.controller.BaseController; @@ -10,7 +11,9 @@ 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.ProFeedback; +import com.ktg.mes.pro.domain.ProRouteProcess; import com.ktg.mes.pro.service.IProFeedbackService; +import com.ktg.mes.pro.service.IProRouteProcessService; import io.swagger.annotations.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; @@ -30,6 +33,8 @@ public class ProFeedBackMobController extends BaseController { @Autowired private IMdWorkstationService mdWorkstationService; + @Autowired + private IProRouteProcessService proRouteProcessService; /** * 新增生产报工记录 @@ -48,6 +53,31 @@ public class ProFeedBackMobController extends BaseController { }else { return AjaxResult.error("当前生产任务对应的工作站不存在!"); } + + //检查对应的工艺路线和工序配置 + if(StringUtils.isNotNull(proFeedback.getRouteId())&& StringUtils.isNotNull(proFeedback.getProcessId())){ + ProRouteProcess param = new ProRouteProcess(); + param.setRouteId(proFeedback.getRouteId()); + param.setProcessId(proFeedback.getProcessId()); + List processes = proRouteProcessService.selectProRouteProcessList(param); + if(CollectionUtil.isEmpty(processes)){ + return AjaxResult.error("未找到生产任务对应的工艺工序配置!"); + } + }else { + return AjaxResult.error("当前生产任务对应的工艺工序配置无效!"); + } + + //检查数量 + if(UserConstants.YES.equals(proFeedback.getIsCheck())){ + if(!StringUtils.isNotNull(proFeedback.getQuantityUncheck())){ + return AjaxResult.error("当前工作站报工需要经过质检确认,请输入待检测数量!"); + } + }else { + if(!StringUtils.isNotNull(proFeedback.getQuantityQualified()) || !StringUtils.isNotNull(proFeedback.getQuantityUnquanlified())){ + return AjaxResult.error("请输入合格品和不良品数量!"); + } + } + proFeedback.setCreateBy(getUsername()); proFeedbackService.insertProFeedback(proFeedback); return AjaxResult.success(proFeedback); @@ -106,6 +136,39 @@ public class ProFeedBackMobController extends BaseController { @PutMapping public AjaxResult edit(@RequestBody ProFeedback proFeedback) { + MdWorkstation workstation = mdWorkstationService.selectMdWorkstationByWorkstationId(proFeedback.getWorkstationId()); + if(StringUtils.isNotNull(workstation)){ + proFeedback.setProcessId(workstation.getProcessId()); + proFeedback.setProcessCode(workstation.getProcessCode()); + proFeedback.setProcessName(workstation.getProcessName()); + }else { + return AjaxResult.error("当前生产任务对应的工作站不存在!"); + } + + //检查对应的工艺路线和工序配置 + if(StringUtils.isNotNull(proFeedback.getRouteId())&& StringUtils.isNotNull(proFeedback.getProcessId())){ + ProRouteProcess param = new ProRouteProcess(); + param.setRouteId(proFeedback.getRouteId()); + param.setProcessId(proFeedback.getProcessId()); + List processes = proRouteProcessService.selectProRouteProcessList(param); + if(CollectionUtil.isEmpty(processes)){ + return AjaxResult.error("未找到生产任务对应的工艺工序配置!"); + } + }else { + return AjaxResult.error("当前生产任务对应的工艺工序配置无效!"); + } + + //检查数量 + if(UserConstants.YES.equals(proFeedback.getIsCheck())){ + if(!StringUtils.isNotNull(proFeedback.getQuantityUncheck())){ + return AjaxResult.error("当前工作站报工需要经过质检确认,请输入待检测数量!"); + } + }else { + if(!StringUtils.isNotNull(proFeedback.getQuantityQualified()) || !StringUtils.isNotNull(proFeedback.getQuantityUnquanlified())){ + return AjaxResult.error("请输入合格品和不良品数量!"); + } + } + return toAjax(proFeedbackService.updateProFeedback(proFeedback)); } 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 0ab3f3d..386b199 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 @@ -41,6 +41,10 @@ public class ProFeedback extends BaseEntity @Excel(name = "工作站名称") private String workstationName; + private Long routeId; + + private String routeCode; + /** 工序ID */ private Long processId; @@ -52,6 +56,8 @@ public class ProFeedback extends BaseEntity @Excel(name = "工序名称") private String processName; + private String isCheck; + /** 生产工单ID */ @Excel(name = "生产工单ID") private Long workorderId; @@ -455,6 +461,30 @@ public class ProFeedback extends BaseEntity this.quantityUncheck = quantityUncheck; } + public String getIsCheck() { + return isCheck; + } + + public void setIsCheck(String isCheck) { + this.isCheck = isCheck; + } + + public Long getRouteId() { + return routeId; + } + + public void setRouteId(Long routeId) { + this.routeId = routeId; + } + + public String getRouteCode() { + return routeCode; + } + + public void setRouteCode(String routeCode) { + this.routeCode = routeCode; + } + @Override public String toString() { return "ProFeedback{" + @@ -464,9 +494,12 @@ public class ProFeedback extends BaseEntity ", workstationId=" + workstationId + ", workstationCode='" + workstationCode + '\'' + ", workstationName='" + workstationName + '\'' + + ", routeId=" + routeId + + ", routeCode='" + routeCode + '\'' + ", processId=" + processId + ", processCode='" + processCode + '\'' + ", processName='" + processName + '\'' + + ", isCheck='" + isCheck + '\'' + ", workorderId=" + workorderId + ", workorderCode='" + workorderCode + '\'' + ", workorderName='" + workorderName + '\'' + diff --git a/ktg-mes/src/main/java/com/ktg/mes/pro/domain/ProRouteProcess.java b/ktg-mes/src/main/java/com/ktg/mes/pro/domain/ProRouteProcess.java index f736897..b2d0e63 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/pro/domain/ProRouteProcess.java +++ b/ktg-mes/src/main/java/com/ktg/mes/pro/domain/ProRouteProcess.java @@ -69,6 +69,9 @@ public class ProRouteProcess extends BaseEntity /** 是否关键工序 */ private String keyFlag; + /** 是否质检 */ + private String isCheck; + /** 预留字段1 */ private String attr1; @@ -207,7 +210,15 @@ public class ProRouteProcess extends BaseEntity return colorCode; } - public void setAttr1(String attr1) + public String getIsCheck() { + return isCheck; + } + + public void setIsCheck(String isCheck) { + this.isCheck = isCheck; + } + + public void setAttr1(String attr1) { this.attr1 = attr1; } @@ -263,6 +274,7 @@ public class ProRouteProcess extends BaseEntity ", defaultSufTime=" + defaultSufTime + ", colorCode='" + colorCode + '\'' + ", keyFlag='" + keyFlag + '\'' + + ", isCheck='" + isCheck + '\'' + ", attr1='" + attr1 + '\'' + ", attr2='" + attr2 + '\'' + ", attr3=" + attr3 + 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 917a4af..d4f141a 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 @@ -53,6 +53,10 @@ public class ProTask extends BaseEntity @Excel(name = "工作站名称") private String workstationName; + private Long routeId; + + private String routeCode; + /** 工序ID */ @Excel(name = "工序ID") private Long processId; @@ -65,6 +69,8 @@ public class ProTask extends BaseEntity @Excel(name = "工序名称") private String processName; + private String isCheck; + /** 产品物料ID */ @Excel(name = "产品物料ID") private Long itemId; @@ -477,6 +483,30 @@ public class ProTask extends BaseEntity return attr4; } + public Long getRouteId() { + return routeId; + } + + public void setRouteId(Long routeId) { + this.routeId = routeId; + } + + public String getRouteCode() { + return routeCode; + } + + public void setRouteCode(String routeCode) { + this.routeCode = routeCode; + } + + public String getIsCheck() { + return isCheck; + } + + public void setIsCheck(String isCheck) { + this.isCheck = isCheck; + } + @Override public String toString() { return "ProTask{" + @@ -489,9 +519,12 @@ public class ProTask extends BaseEntity ", workstationId=" + workstationId + ", workstationCode='" + workstationCode + '\'' + ", workstationName='" + workstationName + '\'' + + ", routeId=" + routeId + + ", routeCode='" + routeCode + '\'' + ", processId=" + processId + ", processCode='" + processCode + '\'' + ", processName='" + processName + '\'' + + ", isCheck='" + isCheck + '\'' + ", itemId=" + itemId + ", itemCode='" + itemCode + '\'' + ", itemName='" + itemName + '\'' + diff --git a/ktg-mes/src/main/resources/mapper/pro/ProFeedbackMapper.xml b/ktg-mes/src/main/resources/mapper/pro/ProFeedbackMapper.xml index 65e773a..a895684 100644 --- a/ktg-mes/src/main/resources/mapper/pro/ProFeedbackMapper.xml +++ b/ktg-mes/src/main/resources/mapper/pro/ProFeedbackMapper.xml @@ -14,9 +14,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + @@ -28,7 +31,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + @@ -48,7 +51,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - 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,quantity_uncheck, 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 f.record_id,f.feedback_type, f.workstation_id, f.workstation_code, f.workstation_name,f.process_id, f.process_code, f.process_name,p.is_check, f.workorder_id, f.workorder_code, f.workorder_name, f.task_id, f.task_code,f.item_id,f.item_code,f.item_name,f.specification,f.unit_of_measure, f.quantity, f.quantity_feedback, f.quantity_qualified, f.quantity_unquanlified,f.quantity_uncheck, f.user_name, f.nick_name, f.feedback_channel, f.feedback_time,f.record_user,f.record_nick,f.status, f.remark, f.attr1, f.attr2, f.attr3, f.attr4, f.create_by, f.create_time, f.update_by, f.update_time + from pro_feedback f + left join pro_route_process p + on f.process_id = p.process_id and f.route_id = p.route_id @@ -123,6 +125,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" default_suf_time, color_code, key_flag, + is_check, remark, attr1, attr2, @@ -147,6 +150,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{defaultSufTime}, #{colorCode}, #{keyFlag}, + #{isCheck}, #{remark}, #{attr1}, #{attr2}, @@ -174,6 +178,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" default_pre_time = #{defaultPreTime}, default_suf_time = #{defaultSufTime}, key_flag = #{keyFlag}, + is_check = #{isCheck}, color_code = #{colorCode}, remark = #{remark}, attr1 = #{attr1}, diff --git a/ktg-mes/src/main/resources/mapper/pro/ProTaskMapper.xml b/ktg-mes/src/main/resources/mapper/pro/ProTaskMapper.xml index 7a5dea3..fbc43f8 100644 --- a/ktg-mes/src/main/resources/mapper/pro/ProTaskMapper.xml +++ b/ktg-mes/src/main/resources/mapper/pro/ProTaskMapper.xml @@ -17,6 +17,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -51,47 +52,61 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select task_id, task_code, task_name, workorder_id, workorder_code, workorder_name, workstation_id, workstation_code, workstation_name, process_id, process_code, process_name, item_id, item_code, item_name, specification, unit_of_measure, quantity, quantity_produced, quantity_changed, client_id, client_code, client_name, client_nick, start_time, duration, end_time, color_code, request_date, remark, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time, status, quantity_quanlify, quantity_unquanlify from pro_task + select t.task_id, t.task_code, t.task_name, t.workorder_id, t.workorder_code, t.workorder_name, + t.workstation_id, t.workstation_code, t.workstation_name, + t.route_id, t.route_code, + t.process_id, t.process_code, t.process_name,p.is_check, + t.item_id, t.item_code, t.item_name, t.specification, t.unit_of_measure, + t.quantity, t.quantity_produced, t.quantity_changed, + t.client_id, t.client_code, t.client_name, t.client_nick, + t.start_time, t.duration, t.end_time, t.color_code, t.request_date, + t.remark, t.attr1, t.attr2, t.attr3, t.attr4, t.create_by, t.create_time, t.update_by, t.update_time, + t.status, t.quantity_quanlify, t.quantity_unquanlify + from pro_task t + left join pro_route_process p + on t.route_id = p.route_id and t.process_id = p.process_id @@ -111,6 +126,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" workstation_id, workstation_code, workstation_name, + route_id, + route_code, process_id, process_code, process_name, @@ -153,6 +170,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{workstationId}, #{workstationCode}, #{workstationName}, + #{routeId}, + #{routeCode}, #{processId}, #{processCode}, #{processName}, @@ -199,6 +218,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" workstation_id = #{workstationId}, workstation_code = #{workstationCode}, workstation_name = #{workstationName}, + route_id = #{routeId}, + route_code = #{routeCode}, process_id = #{processId}, process_code = #{processCode}, process_name = #{processName},