From 355d8e6d6d7e1361d29f11901c27d3fa970537cb Mon Sep 17 00:00:00 2001 From: zhaoxiaolin <khd@123> Date: Thu, 18 Jul 2024 14:59:23 +0800 Subject: [PATCH 01/14] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E7=B3=BB=E7=BB=9F?= =?UTF-8?q?=E5=8D=87=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../op/common/core/utils/http/HttpUtils.java | 4 +- .../java/com/op/mes/mapper/MesLineMapper.java | 2 +- .../mes/service/impl/MesLineServiceImpl.java | 48 ++------ .../resources/mapper/mes/MesLineMapper.xml | 2 +- .../op/open/service/impl/OpenServiceImpl.java | 1 + .../main/java/com/op/plan/domain/ProLine.java | 9 ++ .../java/com/op/plan/domain/ProOrder.java | 9 ++ .../service/impl/ProOrderServiceImpl.java | 32 +++-- .../mapper/plan/ProOrderWorkorderMapper.xml | 3 +- .../service/IQcMaterialGroupService.java | 2 +- .../impl/QcCheckTaskIncomeServiceImpl.java | 6 +- .../impl/QcCheckTaskProduceServiceImpl.java | 1 + .../impl/QcCheckTypeProjectServiceImpl.java | 2 +- .../impl/QcCheckUnqualifiedServiceImpl.java | 18 +-- .../service/impl/QcGoalServiceImpl.java | 116 +++++++++++++++++- .../impl/QcMaterialGroupServiceImpl.java | 2 +- .../quality/QcCheckTypeProjectMapper.xml | 9 +- .../mapper/quality/QcMaterialGroupMapper.xml | 17 ++- 18 files changed, 206 insertions(+), 77 deletions(-) diff --git a/op-common/op-common-core/src/main/java/com/op/common/core/utils/http/HttpUtils.java b/op-common/op-common-core/src/main/java/com/op/common/core/utils/http/HttpUtils.java index bb3e5a57..a9716114 100644 --- a/op-common/op-common-core/src/main/java/com/op/common/core/utils/http/HttpUtils.java +++ b/op-common/op-common-core/src/main/java/com/op/common/core/utils/http/HttpUtils.java @@ -162,13 +162,13 @@ public class HttpUtils { conn.setRequestProperty("user-agent" , "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); conn.setRequestProperty("Accept-Charset" , "utf-8"); // conn.setRequestProperty("contentType" , "utf-8"); - conn.setRequestProperty("content-Type", "application/json; charset=utf-8"); + conn.setRequestProperty("content-Type", "application/json; charset=GBK"); conn.setDoOutput(true); conn.setDoInput(true); out = new PrintWriter(conn.getOutputStream()); out.print(param); out.flush(); - in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "utf-8")); + in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "GBK")); String line; while ((line = in.readLine()) != null) { result.append(line); diff --git a/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesLineMapper.java b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesLineMapper.java index b6c32d7b..c578bd0d 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesLineMapper.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesLineMapper.java @@ -72,7 +72,7 @@ public interface MesLineMapper { MesLine selectInfoByLineProduct(MesLine mesLine); - void insertLineProduct(MesLine mesLine); + int insertLineProduct(MesLine mesLine); void updateLineProduct(MesLine mesLine); } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesLineServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesLineServiceImpl.java index 7217382a..f683ea81 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesLineServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesLineServiceImpl.java @@ -1,6 +1,7 @@ package com.op.mes.service.impl; import java.math.BigDecimal; +import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.stream.Collectors; @@ -14,6 +15,7 @@ import com.op.common.core.web.domain.AjaxResult; import com.op.common.security.utils.SecurityUtils; import com.op.mes.domain.MesLineProcess; import com.op.mes.domain.MesLineProduct; +import com.op.mes.mapper.MesLineProductMapper; import com.op.mes.service.IMesLineProcessService; import com.op.mes.service.IMesLineProductService; import org.apache.commons.collections4.CollectionUtils; @@ -43,6 +45,9 @@ public class MesLineServiceImpl implements IMesLineService { @Autowired private MesLineMapper mesLineMapper; + @Autowired + private MesLineProductMapper mesLineProductMapper; + @Autowired private IMesLineProcessService mesLineProcessService; @Autowired @@ -97,49 +102,20 @@ public class MesLineServiceImpl implements IMesLineService { */ @Override @DS("#header.poolName") - @Transactional(propagation = Propagation.REQUIRED) + // @Transactional(propagation = Propagation.REQUIRED) public int insertMesLine(MesLine mesLine) { - mesLine.setCreateTime(DateUtils.getNowDate()); - mesLine.setCreateBy(SecurityUtils.getUsername()); - mesLine.setId(IdUtils.fastSimpleUUID()); - String belongTo = mesLine.getId(); // 获取工厂编码 HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); String key = "#header.poolName"; String factoryCode = request.getHeader(key.substring(8)).replace("ds_", ""); - mesLine.setFactoryCode(factoryCode); - // 绑定工艺 - List<String> processList = mesLine.getProcessList(); - List<BigDecimal> qualityList = mesLine.getQualityList(); - if (!CollectionUtils.isEmpty(processList)) { - - String lineCode = mesLine.getLineCode(); - String lineName = mesLine.getLineName(); - for (int i = 0; i < processList.size(); i++) { - MesLineProcess mesLineProcess = new MesLineProcess(); - mesLineProcess.setBelongTo(belongTo); - mesLineProcess.setProcessName(processList.get(i)); - mesLineProcess.setQuality(qualityList.get(i)); - mesLineProcess.setLineCode(lineCode); - mesLineProcess.setLineName(lineName); - mesLineProcess.setFactoryCode(factoryCode); - mesLineProcessService.insertMesLineProcess(mesLineProcess); - } - } // 绑定产品 - List<MesLineProduct> productList = mesLine.getProductList(); - if (CollectionUtils.isNotEmpty(productList)) { - for (MesLineProduct item : productList) { - item.setId(IdUtils.fastSimpleUUID()); - item.setBelongTo(belongTo); - item.setFactoryCode(factoryCode); - item.setCreateBy(SecurityUtils.getUsername()); - item.setCreateTime(DateUtils.getNowDate()); - } - mesLineProductService.batchInsertMesLineProduct(productList); - } + mesLine.setId(IdUtils.fastSimpleUUID()); + mesLine.setFactoryCode(factoryCode); + mesLine.setCreateBy(SecurityUtils.getUsername()); + mesLine.setCreateTime(DateUtils.getNowDate()); + int m = mesLineMapper.insertLineProduct(mesLine); - return mesLineMapper.insertMesLine(mesLine); + return m; } /** diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/MesLineMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/MesLineMapper.xml index 64ab6d24..6815cce6 100644 --- a/op-modules/op-mes/src/main/resources/mapper/mes/MesLineMapper.xml +++ b/op-modules/op-mes/src/main/resources/mapper/mes/MesLineMapper.xml @@ -204,7 +204,7 @@ select id, line_code, use_man, efficiency from mes_line_product where del_flag = '0' and line_code = #{lineCode} - and use_man = #{useMan} and efficiency = #{efficiency} + and product_code = #{productCode} </select> <select id="getProductListBom" resultType="com.op.mes.domain.MesLineProduct"> diff --git a/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java b/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java index caa9ff0a..8684c5b7 100644 --- a/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java +++ b/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java @@ -386,6 +386,7 @@ public class OpenServiceImpl implements OpenService { return success(); } + /**首检 批次成品**/ @Override public int insertQcCheckTaskProduce(QcCheckTaskProduceDTO qcCheckTaskProduce) { DynamicDataSourceContextHolder.push("ds_" + qcCheckTaskProduce.getFactoryCode()); diff --git a/op-modules/op-plan/src/main/java/com/op/plan/domain/ProLine.java b/op-modules/op-plan/src/main/java/com/op/plan/domain/ProLine.java index 320b8aef..308f223e 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/domain/ProLine.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/domain/ProLine.java @@ -8,6 +8,15 @@ public class ProLine { private String lineName; private Long efficiency; private String dh; + private String factoryDh; + + public String getFactoryDh() { + return factoryDh; + } + + public void setFactoryDh(String factoryDh) { + this.factoryDh = factoryDh; + } public Long getEfficiency() { return efficiency; diff --git a/op-modules/op-plan/src/main/java/com/op/plan/domain/ProOrder.java b/op-modules/op-plan/src/main/java/com/op/plan/domain/ProOrder.java index 457f61a7..267219ab 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/domain/ProOrder.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/domain/ProOrder.java @@ -76,6 +76,15 @@ public class ProOrder extends TreeEntity { private Integer endFlag; private String belongWorkOrder; private String shiftId; + private String factoryDh; + + public String getFactoryDh() { + return factoryDh; + } + + public void setFactoryDh(String factoryDh) { + this.factoryDh = factoryDh; + } public String getShiftId() { return shiftId; diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java index 6c03eefb..d0a4a34a 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java @@ -1357,8 +1357,8 @@ public class ProOrderServiceImpl implements IProOrderService { proOrder.setLineCode(proOrder.getLineCodes()[i]); ProLine plineInfo = proOrderWorkorderMapper.getLineProductInfo(proOrder);//线体母单产品产能和线体代码 if(plineInfo==null){ - logger.error("线体"+proOrder.getLineCodes()[i]+"无法生产"); - return AjaxResult.error(642,"线体"+proOrder.getLineCodes()[i]+"无法生产"); + logger.error("线体"+proOrder.getLineCodes()[i]+"无法生产,请到【线体产品管理界面进行维护】"); + return AjaxResult.error(642,"线体"+proOrder.getLineCodes()[i]+"无法生产,请到【线体产品管理界面进行维护】"); } Long efficiency = plineInfo.getEfficiency(); if(efficiency < orderQua){ @@ -1424,10 +1424,15 @@ public class ProOrderServiceImpl implements IProOrderService { /**拆批次**/ proOrder.setProdSpc(plineInfo.getDh());//借用字段 + /**批次中的工厂代码**/ + proOrder.setFactoryDh(plineInfo.getFactoryDh()); + AjaxResult aResult = getBatchList(proOrder);//Done; + if(!aResult.isSuccess()){ + return aResult; + } - - List<ProOrderWorkorderBatch> workorderBatches0 = getBatchList(proOrder);//TODO; + List<ProOrderWorkorderBatch> workorderBatches0 = (List<ProOrderWorkorderBatch>)aResult.get("data"); if(CollectionUtils.isEmpty(workorderBatches0)){ logger.error("批次太多,请检查【产品批次数量】、【产线产能】、【批次号夜班开始字母】是否设置正常。"); @@ -1491,7 +1496,7 @@ public class ProOrderServiceImpl implements IProOrderService { String[][] lineCodeArray = {{gxCode,pOrder.getLineCode()}}; workOrder.setProdLineCode(JSONArray.toJSONString(lineCodeArray)); workOrder.setProductDate(DateUtils.dateTime("yyyy-MM-dd",pOrder.getProductDate())); - //workOrder.setShiftId(); + workOrder.setShiftId(pOrder.getShiftId()); workOrder.setParentOrder(proOrder.getParentOrder()); workOrder.setStatus("w0"); workOrder.setCreateBy(SecurityUtils.getUsername()); @@ -1504,10 +1509,16 @@ public class ProOrderServiceImpl implements IProOrderService { } //靠母单先生成批次模板 - protected List<ProOrderWorkorderBatch> getBatchList(ProOrder proOrder){ + protected AjaxResult getBatchList(ProOrder proOrder){ List<ProOrderWorkorderBatch> workorderBatches = new ArrayList<>(); Long pworkOrderQua = proOrder.getQuantitySplit();//母工单数量 BaseProduct batchQua0 = proOrderWorkorderMapper.getProductInfo(proOrder);//母单标准批次产能和几合一 + + if(batchQua0 == null || batchQua0.getBatchQuaStandar()==null){ + logger.error("未设置最大批次数,请到【产品管理】界面进行产品的最大批次设置"); + return AjaxResult.error("未设置最大批次数,请到【产品管理】界面进行产品的最大批次设置"); + } + ProOrderWorkorderBatch workBatch = null; while(pworkOrderQua>0){ workBatch = new ProOrderWorkorderBatch(); @@ -1525,8 +1536,6 @@ public class ProOrderServiceImpl implements IProOrderService { List<String> batches = proOrderWorkorderMapper.getBatchDict("batch_flag"); char dayWorkBatchStart = batches.get(0).charAt(0); char nightWorkBatchStart = batches.get(1).charAt(0); - int dayBatches = nightWorkBatchStart - dayWorkBatchStart; - int nigthBatches = 'Z' - nightWorkBatchStart; int maxBatchNum = 0; char startZM = 'A'; @@ -1540,11 +1549,12 @@ public class ProOrderServiceImpl implements IProOrderService { if(workorderBatches.size()>maxBatchNum){ logger.error("大于工厂字典【batch_flag】推理的的批次数"); - return null; + return AjaxResult.error("大于工厂字典【batch_flag】推理的的批次数"); } + //获取批次号集合 - List<String> batchCodes = StringUtils.batchAutoCreate(proOrder.getFactoryCode(), + List<String> batchCodes = StringUtils.batchAutoCreate(proOrder.getFactoryDh(), proOrder.getProdSpc(), DateUtils.dateTime("yyyy-MM-dd",proOrder.getProductDate()), proOrder.getAtrr2().substring(proOrder.getAtrr2().length()-1), @@ -1554,7 +1564,7 @@ public class ProOrderServiceImpl implements IProOrderService { workorderBatches.get(n).setBatchCode(batchCodes.get(n)); } - return workorderBatches; + return AjaxResult.success(workorderBatches); } /** diff --git a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml index 5d212b51..044983b3 100644 --- a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml +++ b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml @@ -649,9 +649,10 @@ </select> <select id="getLineProductInfo" resultType="com.op.plan.domain.ProLine"> select mlp.efficiency efficiency, - bp.dh + bp.dh,sf.ancestors factoryDh from mes_line_product mlp left join base_equipment bp on mlp.line_code = bp.equipment_code + left join sys_factory sf on sf.factory_code = mlp.factory_code and sf.del_flag = '0' where mlp.del_flag = '0' and product_code = #{prodCode} and mlp.line_code = #{lineCode} and bp.del_flag = '0' </select> diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcMaterialGroupService.java b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcMaterialGroupService.java index bacb239e..8b14ef83 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcMaterialGroupService.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcMaterialGroupService.java @@ -23,7 +23,7 @@ public interface IQcMaterialGroupService { public QcMaterialGroup selectQcMaterialGroupById(String id); /** - * 获得原始物料分组 + * 获得检验标准 * @param qcMaterialGroup * @return */ diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java index 41b62061..e33853b9 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java @@ -140,7 +140,7 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements /** * 新增来料检验 - * + * 来料检验要根据检验标准进行 * @param qcCheckTaskIncome 来料检验 * @return 结果 */ @@ -640,7 +640,7 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements } @Override - @Transactional(rollbackFor = Exception.class) + //@Transactional(rollbackFor = Exception.class) public int commitCheckResults(QcCheckTaskIncome qcCheckTaskIncome) { logger.info("质检提交参数:"+JSONObject.toJSONString(qcCheckTaskIncome)); List<QcCheckTaskDetail> details = qcCheckTaskIncome.getQcCheckTaskDetails(); @@ -815,7 +815,7 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements if("produce".equals(qcCheckTaskIncome.getTypeCode())){ unqualified.setTypeCode(qcCheckTaskIncome.getTypeCode()); unqualified.setSfgyswt(qcCheckTaskIncome.getSfgyswt()); - + unqualified.setUser(qcCheckTaskIncome.getUpdateBy()); //申请人- unqualified.setSqr(qcCheckTaskIncome.getSqr()); //申请部门 diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskProduceServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskProduceServiceImpl.java index 0aba0dd8..9a4c1882 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskProduceServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskProduceServiceImpl.java @@ -145,6 +145,7 @@ public class QcCheckTaskProduceServiceImpl implements IQcCheckTaskProduceService * 新增生产过程检验任务 * * @param qcCheckTaskProduce 生产过程检验任务 + * 巡检 首检 * @return 结果 */ @Override diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTypeProjectServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTypeProjectServiceImpl.java index e851b40a..16b45793 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTypeProjectServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTypeProjectServiceImpl.java @@ -247,7 +247,7 @@ public class QcCheckTypeProjectServiceImpl implements IQcCheckTypeProjectService return failOrder; } - @Transactional(rollbackFor = Exception.class) + //@Transactional(rollbackFor = Exception.class) public String syncFunc(QcMaterialGroupDetail materialGroupDetail){ String failOrder = ""; Date nowDate = DateUtils.getNowDate(); diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckUnqualifiedServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckUnqualifiedServiceImpl.java index 39466663..6321d131 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckUnqualifiedServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckUnqualifiedServiceImpl.java @@ -184,7 +184,7 @@ public class QcCheckUnqualifiedServiceImpl implements IQcCheckUnqualifiedService //QcCheckTaskIncome detailInfo = qcCheckTaskIncomeMapper.getTaskInfo(task.getTaskId()); //发起来料检验OA流程 Map<String, Object> paramMap = new HashMap<>(); - paramMap.put("user",task.getSqr());//提交人工号 + paramMap.put("user",task.getUser());//提交人工号 paramMap.put("requestLevel",0);//流程紧急度 paramMap.put("requestName","ZL0010-来料检验不合格控制流程");//流程名称 paramMap.put("workflowId",113454);//该流程对应的唯- workFlowld @@ -195,7 +195,7 @@ public class QcCheckUnqualifiedServiceImpl implements IQcCheckUnqualifiedService StringBuffer mainObject = new StringBuffer(); mainObject.append("{"); - mainObject.append("\"SQR\":"+"\""+task.getSqr()+"");//申请人-- + mainObject.append("\"SQR\":"+"\""+task.getSqr()+"\"");//申请人-- mainObject.append(",\"CQ\":"+task.getOaFactory());//厂区-- mainObject.append(",\"LLLB\":"+task.getMaterialType());//来料类别【0、1】 mainObject.append(",\"MATNR\":"+"\""+task.getMaterialCode()+"\"");//物料编码 @@ -314,31 +314,31 @@ public class QcCheckUnqualifiedServiceImpl implements IQcCheckUnqualifiedService QcCheckTaskIncome detailInfo = qcCheckTaskIncomeMapper.getTaskInfo(task.getTaskId()); //发起来料检验OA流程 Map<String, Object> paramMap = new HashMap<>(); - paramMap.put("user",task.getSqr());//提交人工号 + paramMap.put("user",task.getUser());//提交人工号 paramMap.put("requestLevel",0);//流程紧急度 paramMap.put("requestName","ZL0030-品质异常流程-智能制造-"+DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss",detailInfo.getIncomeTime())+"(产品名称:"+detailInfo.getMaterialName()+")");//流程名称 paramMap.put("workflowId",113455);//该流程对应的唯- workFlowld StringBuffer mainObject = new StringBuffer(); mainObject.append("{"); - mainObject.append("\"CPMC\":"+detailInfo.getMaterialName());//产品名称 - mainObject.append(",\"CPBM\":"+detailInfo.getMaterialCode());//产品编码 - mainObject.append(",\"SQBM\":"+task.getSqbm());//0品质保障部 + mainObject.append("\"CPMC\":"+"\""+detailInfo.getMaterialName()+"\"");//产品名称 + mainObject.append(",\"CPBM\":"+"\""+detailInfo.getMaterialCode()+"\"");//产品编码 + mainObject.append(",\"SQBM\":"+"\""+task.getSqbm()+"\"");//0品质保障部 mainObject.append(",\"SQR\":"+"\""+task.getSqr()+"\"");//申请人:默认当前用户 mainObject.append(",\"SQSJ\":"+"\""+DateUtils.parseDateToStr("yyyy-MM-dd",detailInfo.getCheckTime())+"\"");//申请时间 mainObject.append(",\"SCCJ\":"+"\"162\"");//所属车间 mainObject.append(",\"SCPH\":"+"\""+detailInfo.getIncomeBatchNo()+"\"");//生产批号 - mainObject.append(",\"SCSL\":"+"\""+task.getQuality()+"\"");//生产数量 + mainObject.append(",\"SCSL\":"+task.getQuality());//生产数量 mainObject.append(",\"FXDD\":"+"\""+task.getCheckLoc()+"\"");//发现地点 mainObject.append(",\"FXRQ\":"+"\""+DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss",detailInfo.getCheckTime())+"\"");//发现日期 mainObject.append(",\"BH\":"+"\""+detailInfo.getCheckNo()+"\"");//编号:流水号 年月日+四位流水号 - mainObject.append(",\"YCFW\":"+task.getOaFactoryF()+"\"");//*异常范围:下拉框榄菊所有工厂 1代表小榄工厂 + mainObject.append(",\"YCFW\":"+"\""+task.getOaFactoryF()+"\"");//*异常范围:下拉框榄菊所有工厂 1代表小榄工厂 mainObject.append(",\"PZYCMS\":"+"\""+detailInfo.getRemark()+"\"");//品质异常描述 mainObject.append(",\"Notes\":"+"\"\"");//测试备注 mainObject.append(",\"SFXYZG\":"+"\""+task.getSfxyzg()+"\"");//*是否需要主管审核 1否 0是 mainObject.append(",\"PGZG\":"+"\""+task.getPgzg()+"\"");//QC主管:SFXYZG字段为"是",则此项选择QC主管信息 mainObject.append(",\"PGZR\":"+"\""+task.getPgzr()+"\"");//质量主管 660:朱继新 - mainObject.append(",\"SFGYSWT\":"+task.getSfgyswt()+"\"");//*是否供应商问题 1非供应商问题 0是供应商问题 + mainObject.append(",\"SFGYSWT\":"+"\""+task.getSfgyswt()+"\"");//*是否供应商问题 1非供应商问题 0是供应商问题 mainObject.append("}"); diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcGoalServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcGoalServiceImpl.java index f3aa0a00..84fc9a99 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcGoalServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcGoalServiceImpl.java @@ -1,22 +1,34 @@ package com.op.quality.service.impl; import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Date; -import java.util.Iterator; -import java.util.List; +import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import java.util.stream.Collectors; +import com.alibaba.fastjson2.JSONObject; import com.baomidou.dynamic.datasource.annotation.DS; import com.op.common.core.utils.DateUtils; +import com.op.common.core.utils.StringUtils; +import com.op.common.core.web.domain.AjaxResult; import com.op.common.security.utils.SecurityUtils; +import com.op.quality.domain.QcCheckUnqualified; import com.op.quality.domain.vo.TreeSelect; +import com.op.quality.mapper.QcCheckTaskIncomeMapper; +import com.op.system.api.RemoteOpenService; +import com.op.system.api.RemoteQualityService; +import com.op.system.api.domain.SysNoticeGroup; +import com.op.system.api.domain.dto.WechartDTO; +import com.op.system.api.domain.quality.QcCheckTaskIncomeDTO; import com.sun.xml.bind.v2.TODO; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.op.quality.mapper.QcGoalMapper; import com.op.quality.domain.QcGoal; import com.op.quality.service.IQcGoalService; +import org.springframework.util.CollectionUtils; import org.springframework.util.ObjectUtils; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; @@ -31,8 +43,21 @@ import javax.servlet.http.HttpServletRequest; */ @Service public class QcGoalServiceImpl implements IQcGoalService { + protected Logger logger = LoggerFactory.getLogger(getClass()); @Autowired private QcGoalMapper qcGoalMapper; +// @Autowired +// private QcCheckTaskIncomeMapper qcCheckTaskIncomeMapper; +// @Autowired +// private RemoteOpenService remoteOpenService; +// +// private static Pattern p2= Pattern.compile("<[^>]+>"); + + @Autowired + private RemoteOpenService remoteOpenService; + @Autowired + private RemoteQualityService remoteQualityService; + /** * 查询质量目标 @@ -59,9 +84,92 @@ public class QcGoalServiceImpl implements IQcGoalService { for (QcGoal item : qcGoals) { item.setHasChildren(true); } +// QcCheckUnqualified task = new QcCheckUnqualified(); +// task.setUser("002007");//9999999 +// task.setSqr("660"); +// task.setOaFactory("0"); +// task.setMaterialType("0"); +// task.setMaterialCode("000000040000015128"); +// task.setMaterialName("榄菊蚊香加大盘Ф137.5mm×H100mm36圈内增高塑料筒(有字盖)2201"); +// task.setSupplierCode("0000100330"); +// task.setSupplierName("中山市荣星塑料包装有限公司"); +// task.setQuality("15296"); +// task.setUnit("ST"); +// task.setCheckNo("202407130047"); +// task.setCzbjr("284"); +// task.setMaterialFrom("2"); +// task.setZcf("0"); +// task.setZcoemcm("转出工厂"); +// task.setRemark("zxl测试不合格发起oa"); +// task.setQczg("660"); +// this.createLLOA(task); + +// //手持来料质检触发 +// QcCheckTaskIncomeDTO qcCheckTaskIncomeDTO = new QcCheckTaskIncomeDTO(); +// qcCheckTaskIncomeDTO.setPoolName("ds_1000" ); +// qcCheckTaskIncomeDTO.setCheckLoc("mjtest"); +// qcCheckTaskIncomeDTO.setCheckType("checkTypeLL"); +//// qcCheckTaskIncomeDTO.setCheckManCode("mobile"); +//// qcCheckTaskIncomeDTO.setCheckManName("手持测试用户"); +// qcCheckTaskIncomeDTO.setSupplierCode("0000102272"); +// qcCheckTaskIncomeDTO.setFactoryCode("1000"); +// qcCheckTaskIncomeDTO.setSupplierName("广州市彩晴包装印刷有限公司"); +// qcCheckTaskIncomeDTO.setOrderType("8040");//包材固定码 +// qcCheckTaskIncomeDTO.setUnit("KG"); +// qcCheckTaskIncomeDTO.setQuality(new BigDecimal("10")); +// qcCheckTaskIncomeDTO.setMaterialCode("000000040000011094"); +// qcCheckTaskIncomeDTO.setMaterialName("LANJU 出口封口胶(1000米/卷)(1901)"); +// qcCheckTaskIncomeDTO.setIncomeBatchNo("202312250001"); +// qcCheckTaskIncomeDTO.setOrderNo("4500297568"); +// qcCheckTaskIncomeDTO.setIncomeTime(new Date()); +// remoteQualityService.createIncomeTask(qcCheckTaskIncomeDTO); + return qcGoals; } + private AjaxResult createLLOA(QcCheckUnqualified task){ + + //QcCheckTaskIncome detailInfo = qcCheckTaskIncomeMapper.getTaskInfo(task.getTaskId()); + //发起来料检验OA流程 + Map<String, Object> paramMap = new HashMap<>(); + paramMap.put("user",task.getUser());//提交人工号 + paramMap.put("requestLevel",0);//流程紧急度 + paramMap.put("requestName","ZL0010-来料检验不合格控制流程");//流程名称 + paramMap.put("workflowId",113454);//该流程对应的唯- workFlowld + + if(StringUtils.isEmpty(task.getIncomeBatchNo())){ + task.setIncomeBatchNo(DateUtils.parseDateToStr("yyyyMMdd",new Date())); + } + + StringBuffer mainObject = new StringBuffer(); + mainObject.append("{"); + mainObject.append("\"SQR\":"+"\""+task.getSqr()+"\"");//申请人-- + mainObject.append(",\"CQ\":"+task.getOaFactory());//厂区-- + mainObject.append(",\"LLLB\":"+task.getMaterialType());//来料类别【0、1】 + mainObject.append(",\"MATNR\":"+"\""+task.getMaterialCode()+"\"");//物料编码 + mainObject.append(",\"MAKTX\":"+"\""+task.getMaterialName()+"\"");//物料名称 + mainObject.append(",\"suppliernum\":"+"\""+task.getSupplierCode()+"\"");//供应商编码 + mainObject.append(",\"supplier\":"+"\""+task.getSupplierName()+"\"");//供应商名称 + mainObject.append(",\"CHARG\":"+"\""+task.getIncomeBatchNo()+"\"");//生产批号 + mainObject.append(",\"comeQty\":"+"\""+task.getQuality()+"\"");//来料数量 + mainObject.append(",\"DW\":"+"\""+task.getUnit()+"\"");//来料单位 + mainObject.append(",\"testDate\":"+"\""+DateUtils.parseDateToStr("yyyy-MM-dd",new Date())+"\"");//检验日期 + mainObject.append(",\"JYBH\":"+"\""+task.getCheckNo()+"\"");//检验编码 + mainObject.append(",\"BJY\":"+"\""+task.getCzbjr()+"\"");//仓储报检人-- + mainObject.append(",\"WLLY\":"+"\""+task.getMaterialFrom()+"\"");//物料来源 + mainObject.append(",\"ZCF\":"+"\""+task.getZcf()+"\"");//转出方 + mainObject.append(",\"ZCOEMCM\":"+"\""+task.getZcoemcm()+"\"");//转出OEM厂名 + mainObject.append(",\"memo\":"+"\""+task.getRemark()+"\"");//不合格描述 + mainObject.append(",\"PZGLBZG\":"+"\""+task.getQczg()+"\"");//qc主管-- + mainObject.append("}"); + + paramMap.put("mainObject",mainObject.toString()); + logger.info("流程Id 113454:"+ JSONObject.toJSONString(paramMap)); + AjaxResult oaR = remoteOpenService.OAInspection(paramMap); + logger.info("流程Id 113454:"+ JSONObject.toJSONString(oaR)); + return oaR; + } + @Override @DS("#header.poolName") public List<QcGoal> selectChildrenByParent(QcGoal goal) { diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcMaterialGroupServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcMaterialGroupServiceImpl.java index b4ac41c6..9eded988 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcMaterialGroupServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcMaterialGroupServiceImpl.java @@ -54,7 +54,7 @@ public class QcMaterialGroupServiceImpl implements IQcMaterialGroupService { } /** - * 获取原始物料分组 + * 获取检验标准 * @param qcMaterialGroup * @return */ diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeProjectMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeProjectMapper.xml index f26e1a89..57a272af 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeProjectMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeProjectMapper.xml @@ -307,13 +307,20 @@ where del_flag = '0' </select> <select id="getProductGroup" resultType="com.op.quality.domain.QcProjectType"> - select bp.product_group productGroup, + <!--select bp.product_group productGroup, bp.product_group_name productGroupName, qmg.id groupId from base_product bp left join qc_material_group qmg on qmg.group_code = bp.product_group + where bp.product_code like concat('%',#{materialCode},'%') + and bp.del_flag = '0'--> + + select top 1 qmg.id groupId + from base_product bp + left join qc_material_group qmg on qmg.group_code = bp.mvgr5 where bp.product_code like concat('%',#{materialCode},'%') and bp.del_flag = '0' + order by qmg.create_time desc </select> <select id="selectExist" resultType="com.op.quality.domain.QcMaterialGroupDetail"> select material_name from qc_material_group_detail diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcMaterialGroupMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcMaterialGroupMapper.xml index 4a558445..054abf1e 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcMaterialGroupMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcMaterialGroupMapper.xml @@ -14,10 +14,14 @@ <result property="updateTime" column="update_time"/> <result property="factoryCode" column="factory_code"/> <result property="delFlag" column="del_flag"/> + <result property="groupCode" column="group_code"/> + </resultMap> <sql id="selectQcMaterialGroupVo"> - select id, group_name, attr1, create_by, create_time, update_by, update_time, factory_code, del_flag from qc_material_group + select id, group_name, attr1, create_by, create_time, + update_by, update_time, factory_code, del_flag + from qc_material_group </sql> <select id="selectQcMaterialGroupList" parameterType="QcMaterialGroup" resultMap="QcMaterialGroupResult"> @@ -40,10 +44,10 @@ <select id="getOriginalGroupList" parameterType="QcMaterialGroup" resultType="QcMaterialGroup"> SELECT DISTINCT - product_group groupCode, - concat(product_group_name,'(',product_group,')') groupName + mvgr5 groupCode, + mvgr5 groupName FROM base_product - WHERE del_flag = '0' AND product_group_name IS NOT NULL + WHERE del_flag = '0' AND mvgr5 IS NOT NULL </select> <select id="getMaterialChildrenList" parameterType="QcMaterialGroup" resultMap="QcMaterialGroupResult"> @@ -61,7 +65,10 @@ <select id="selectQcMaterialGroupById" parameterType="String" resultMap="QcMaterialGroupResult"> - <include refid="selectQcMaterialGroupVo"/> + select id, group_name, attr1, create_by, create_time, + update_by, update_time, factory_code, del_flag, + group_code + from qc_material_group where id = #{id} </select> From cdb7b88a36b65240429e48e6d75e06c8d6e2c524 Mon Sep 17 00:00:00 2001 From: zhaoxiaolin <khd@123> Date: Thu, 18 Jul 2024 16:46:52 +0800 Subject: [PATCH 02/14] =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E5=8D=87=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/QcCheckTaskIncomeServiceImpl.java | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java index e33853b9..60fba57f 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java @@ -825,7 +825,7 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements //发现地点 unqualified.setCheckLoc(qcCheckTaskIncome.getCheckLoc()); //是否需要主管审核 - unqualified.setSfgyswt(qcCheckTaskIncome.getSfgyswt()); + unqualified.setSfxyzg(qcCheckTaskIncome.getSfxyzg()); if(qcCheckTaskIncome.getSfgyswt().equals("0")){//是 //qc主管 unqualified.setPgzg(qcCheckTaskIncome.getPgzg()); @@ -834,6 +834,7 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements } //是否供应商问题 unqualified.setSfgyswt(qcCheckTaskIncome.getSfgyswt()); + unqualified.setOaFactoryF(qcCheckTaskIncome.getOaFactoryF()); }else if("material".equals(qcCheckTaskIncome.getTypeCode())){ unqualified.setTypeCode(qcCheckTaskIncome.getTypeCode()); @@ -859,7 +860,8 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements //来料数量 unqualified.setQuality(qcCheckTaskIncome.getQuality().toString()); //来料单位 - unqualified.setUnit(qcCheckTaskIncome.getUnit()); + //CAR:0 PC:1 其它:2 吨:3 千克:4 + unqualified.setUnit(getConvertUnit(qcCheckTaskIncome.getUnit())); //检验编号 unqualified.setCheckNo(qcCheckTaskIncome.getCheckNo()); //仓储报检人-李爱娟 @@ -931,6 +933,15 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements //发企业微信--------------------结束 } } + //CAR:0 PC:1 其它:2 吨:3 千克:4 + protected String getConvertUnit(String unit){ + String unitOa= ""; + switch (unit) { + case "ST": unitOa="1"; + default: unitOa="1"; + } + return unitOa; + } protected String getSampleQua(QcCheckTaskIncome qcCheckTaskIncome){ String sampleQuaStr = ""; @@ -993,4 +1004,9 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements public SysUser getOaUserId(SysUser getUserIdList) { return qcCheckTaskIncomeMapper.getOaUserId(getUserIdList); } + + public static void main(String args[]){ + QcCheckTaskIncomeServiceImpl impl = new QcCheckTaskIncomeServiceImpl(); + System.out.println(impl.getConvertUnit("ST")); + } } From 57e5bf149086a6e3039a042686d404f5429d22cc Mon Sep 17 00:00:00 2001 From: zhaoxiaolin <khd@123> Date: Fri, 19 Jul 2024 13:31:05 +0800 Subject: [PATCH 03/14] =?UTF-8?q?=E9=A2=86=E6=96=99=E5=8D=95=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/domain/dto/MesPrepareDetailDTO.java | 20 +++++++++++++++++ .../domain/sap/SapMaterialPreparation.java | 20 +++++++++++++++++ .../op/mes/domain/MesReportWorkConsume.java | 18 +++++++++++++++ .../mapper/mes/MesReportWorkConsumeMapper.xml | 2 +- .../impl/ProOrderWorkorderServiceImpl.java | 5 ++++- .../mapper/plan/ProOrderWorkorderMapper.xml | 5 +++-- .../SapMaterialPreparationServiceImpl.java | 22 +++++++++---------- 7 files changed, 76 insertions(+), 16 deletions(-) diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/domain/dto/MesPrepareDetailDTO.java b/op-api/op-api-system/src/main/java/com/op/system/api/domain/dto/MesPrepareDetailDTO.java index 6f566e3c..01d2da62 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/domain/dto/MesPrepareDetailDTO.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/domain/dto/MesPrepareDetailDTO.java @@ -84,6 +84,26 @@ public class MesPrepareDetailDTO extends BaseEntity { private String recoil; private String buyFlag; private String parentWorkOrder; + //以输入单位计的数量 + private String erfmg; + //条目单位 + private String erfme; + + public String getErfmg() { + return erfmg; + } + + public void setErfmg(String erfmg) { + this.erfmg = erfmg; + } + + public String getErfme() { + return erfme; + } + + public void setErfme(String erfme) { + this.erfme = erfme; + } public String getParentWorkOrder() { return parentWorkOrder; diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapMaterialPreparation.java b/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapMaterialPreparation.java index c9aef40b..be0a7734 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapMaterialPreparation.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapMaterialPreparation.java @@ -29,6 +29,26 @@ public class SapMaterialPreparation { private String RGEKZ; //直接采购标识 private String DBSKZ; + //以输入单位计的数量 + private String ERFMG; + //条目单位 + private String ERFME; + + public String getERFMG() { + return ERFMG; + } + + public void setERFMG(String ERFMG) { + this.ERFMG = ERFMG; + } + + public String getERFME() { + return ERFME; + } + + public void setERFME(String ERFME) { + this.ERFME = ERFME; + } public String getAUFNR() { return AUFNR; diff --git a/op-modules/op-mes/src/main/java/com/op/mes/domain/MesReportWorkConsume.java b/op-modules/op-mes/src/main/java/com/op/mes/domain/MesReportWorkConsume.java index c2de7b11..a75a09c4 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/domain/MesReportWorkConsume.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/domain/MesReportWorkConsume.java @@ -114,6 +114,24 @@ public class MesReportWorkConsume extends BaseEntity { private String planQuantity; private String machineCode; private String rspos;//sap物料项目编号 + private String erfmg; + private String erfme; + + public String getErfmg() { + return erfmg; + } + + public void setErfmg(String erfmg) { + this.erfmg = erfmg; + } + + public String getErfme() { + return erfme; + } + + public void setErfme(String erfme) { + this.erfme = erfme; + } public String getRspos() { return rspos; diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkConsumeMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkConsumeMapper.xml index 0c98d05d..2c9f01f2 100644 --- a/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkConsumeMapper.xml +++ b/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkConsumeMapper.xml @@ -114,7 +114,7 @@ pow.workorder_code_sap workorderCodeSap, mrwc.attr1, mrwc.warehouse_code warehouseCode, - mpd.quantity planQuantity, + mpd.quantity planQuantity,mpd.erfmg,mpd.erfme, mrwc.parent_order parentOrder,mrwc.report_code reportCode, mrwc.rspos from mes_report_work_consume mrwc diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java index 9e869f28..1377de7a 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java @@ -488,11 +488,14 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { detail.setCreateBy(SecurityUtils.getUsername()); detail.setCreateTime(createDate); detail.setParentWorkOrder(workOrders.get(0)); + detail.setErfmg(sap.getERFMG());//以输入单位计的数量 + detail.setErfme(sap.getERFME());//条目单位 details.add(detail); logger.info("领料单内容detail:" + sap.getRSPOS() + "," + sap.getMATNR() + "," + sap.getMAKTX() + "," + sap.getWERKS() + "," + sap.getLGORT() + "," + sap.getBDTER() + "," + sap.getBDMNG() + "," + sap.getZQLSL() + "," + - sap.getMEINS() + "," + sap.getRGEKZ() + "," + sap.getDBSKZ() + sap.getMEINS() + "," + sap.getRGEKZ() + "," + sap.getDBSKZ()+ "," + + sap.getERFMG() + "," + sap.getERFME() ); } if (!CollectionUtils.isEmpty(details)) { diff --git a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml index 044983b3..1b34d814 100644 --- a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml +++ b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml @@ -764,14 +764,15 @@ INSERT INTO mes_prepare_detail ( record_id,prepare_id,material_code,material_name,unit, quantity,create_by,create_time,factory_code,status, - locator,need_date,recoil,fund_quanlity,buy_flag,parent_work_order,attr1 + locator,need_date,recoil,fund_quanlity,buy_flag,parent_work_order,attr1, + erfmg,erfme )VALUES <foreach collection="list" item="d" index="index" separator=","> ( #{d.recordId},#{d.prepareId},#{d.materialCode},#{d.materailName},#{d.unit}, #{d.quantity},#{d.createBy},#{d.createTime},#{d.factoryCode},#{d.status}, #{d.locator},#{d.needDate},#{d.recoil},#{d.fundQuanlity},#{d.buyFlag},#{d.parentWorkOrder}, - #{d.attr1} + #{d.attr1},#{d.erfmg},#{d.erfme} ) </foreach> diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapMaterialPreparationServiceImpl.java b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapMaterialPreparationServiceImpl.java index a17bdfdb..5efb9c9a 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapMaterialPreparationServiceImpl.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapMaterialPreparationServiceImpl.java @@ -67,6 +67,10 @@ public class SapMaterialPreparationServiceImpl implements SapMaterialPreparation String BDMNG = maraTable.getString("BDMNG"); String ZQLSL = maraTable.getString("ZQLSL"); String MEINS = maraTable.getString("MEINS"); + + String ERFMG = maraTable.getString("ERFMG"); + String ERFME = maraTable.getString("ERFME"); + String RGEKZ = maraTable.getString("RGEKZ"); String DBSKZ = maraTable.getString("DBSKZ"); log.info("备料单输出------" + "订单号:" + AUFNR @@ -79,20 +83,10 @@ public class SapMaterialPreparationServiceImpl implements SapMaterialPreparation " - 需求量:" + BDMNG + " - 欠料数量:" + ZQLSL + " - 基本计量单位:" + MEINS + + " - 以输入单位计的数量:" + ERFMG + + " - 条目单位:" + ERFME + " - 标识:反冲:" + RGEKZ + " - 直接采购标识:" + DBSKZ); -// System.out.println("订单号:" + AUFNR -// + " - 预留/相关需求的项目编号:" + RSPOS + -// " - 物料号:" + MATNR + -// " - 物料描述(短文本):" + MAKTX + -// " - 工厂:" + WERKS + -// " - 库存地点:" + LGORT + -// " - 组件的需求日期 :" + BDTER + -// " - 需求量:" + BDMNG + -// " - 欠料数量:" + ZQLSL + -// " - 基本计量单位:" + MEINS + -// " - 标识:反冲:" + RGEKZ + -// " - 直接采购标识:" + DBSKZ ); SapMaterialPreparation sapMaterialPreparation = new SapMaterialPreparation(); sapMaterialPreparation.setAUFNR(AUFNR); sapMaterialPreparation.setBDMNG(BDMNG); @@ -106,6 +100,10 @@ public class SapMaterialPreparationServiceImpl implements SapMaterialPreparation sapMaterialPreparation.setRSPOS(RSPOS); sapMaterialPreparation.setWERKS(WERKS); sapMaterialPreparation.setZQLSL(ZQLSL); + + sapMaterialPreparation.setERFMG(ERFMG); + sapMaterialPreparation.setERFME(ERFME); + sapMaterialPreparationList.add(sapMaterialPreparation); } String MSG = func.getExportParameterList().getString("MSG"); From 95dcfd10db15b0f7694b4502850f9a6383c850cd Mon Sep 17 00:00:00 2001 From: A0010407 <KHD@202305> Date: Fri, 19 Jul 2024 15:36:21 +0800 Subject: [PATCH 04/14] =?UTF-8?q?2024-07-19=20=E8=AE=BE=E5=A4=87-=E7=BB=84?= =?UTF-8?q?=E7=BA=BF=E9=97=AE=E9=A2=98=E5=AF=BC=E8=87=B4=E7=82=B9=E6=A3=80?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E4=B8=8D=E7=94=9F=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../op/device/service/impl/DeviceTaskServiceImpl.java | 9 ++++++--- .../src/main/resources/mapper/device/EquOrderMapper.xml | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java index b64a4807..eb415717 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java @@ -5,6 +5,7 @@ import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; import com.op.common.core.context.SecurityContextHolder; import com.op.common.core.domain.R; import com.op.common.core.utils.DateUtils; +import com.op.common.core.utils.StringUtils; import com.op.common.core.utils.uuid.IdUtils; import com.op.common.core.web.domain.AjaxResult; import com.op.common.security.utils.SecurityUtils; @@ -340,9 +341,11 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService { order.setOutsourceCode("BW" + orderCode); } - //查询组线 - String lineName = equOrderMapper.getGroupLine(plan.getEquipmentCode()); - order.setPlanProdLine(lineName); + if(StringUtils.isNotEmpty(plan.getEquipmentCode())){ + //查询组线 + String lineName = equOrderMapper.getGroupLine(plan.getEquipmentCode()); + order.setPlanProdLine(lineName); + } /**equ_order**/ sce = equOrderMapper.insertEquOrder(order); diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml index d20a4aaf..27598cf6 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml @@ -518,7 +518,7 @@ <!-- 获取组线信息 --> <select id="getGroupLine" parameterType="java.lang.String" resultType="java.lang.String"> - select equipment_name + select TOP 1 equipment_name from equ_bind_auxiliary_equipment where auxiliary_equipment_code = #{auxiliaryEquipmentCode} and del_flag = '0' From 0cd19c21d2bbce6742c5656c1cd67f840167a1c3 Mon Sep 17 00:00:00 2001 From: zhaoxiaolin <khd@123> Date: Fri, 19 Jul 2024 16:33:06 +0800 Subject: [PATCH 05/14] =?UTF-8?q?=E6=9D=A5=E6=96=99oa=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/QcCheckTaskIncomeServiceImpl.java | 14 +++++------ .../impl/QcCheckUnqualifiedServiceImpl.java | 24 ++++++++++++++++++- .../impl/QcStaticTableServiceImpl.java | 22 +++++++++++++---- .../quality/QcCheckTaskIncomeMapper.xml | 2 +- 4 files changed, 49 insertions(+), 13 deletions(-) diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java index 60fba57f..4b015980 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java @@ -817,9 +817,9 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements unqualified.setSfgyswt(qcCheckTaskIncome.getSfgyswt()); unqualified.setUser(qcCheckTaskIncome.getUpdateBy()); //申请人- - unqualified.setSqr(qcCheckTaskIncome.getSqr()); + unqualified.setSqr("MSL%23"+qcCheckTaskIncome.getSqr()); //申请部门 - unqualified.setSqbm(qcCheckTaskIncome.getSqbm()); + unqualified.setSqbm("MSD%23"+qcCheckTaskIncome.getSqbm()); //实际生产数量 unqualified.setQuality(qcCheckTaskIncome.getQuality().toString()); //发现地点 @@ -828,9 +828,9 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements unqualified.setSfxyzg(qcCheckTaskIncome.getSfxyzg()); if(qcCheckTaskIncome.getSfgyswt().equals("0")){//是 //qc主管 - unqualified.setPgzg(qcCheckTaskIncome.getPgzg()); + unqualified.setPgzg("MSL%23"+qcCheckTaskIncome.getPgzg()); //质量主管 - unqualified.setPgzr(qcCheckTaskIncome.getPgzr()); + unqualified.setPgzr("MSL%23"+qcCheckTaskIncome.getPgzr()); } //是否供应商问题 unqualified.setSfgyswt(qcCheckTaskIncome.getSfgyswt()); @@ -865,15 +865,15 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements //检验编号 unqualified.setCheckNo(qcCheckTaskIncome.getCheckNo()); //仓储报检人-李爱娟 - unqualified.setCzbjr(qcCheckTaskIncome.getCzbjr()); + unqualified.setCzbjr("MSL%23"+qcCheckTaskIncome.getCzbjr()); //物料类别 unqualified.setMaterialType(qcCheckTaskIncome.getMaterialType()); //物料来源 unqualified.setMaterialFrom(qcCheckTaskIncome.getMaterialFrom()); //QC主管-朱继新 - unqualified.setQczg(qcCheckTaskIncome.getQczg()); + unqualified.setQczg("MSL%23"+qcCheckTaskIncome.getQczg()); //申请人- - unqualified.setSqr(qcCheckTaskIncome.getSqr()); + unqualified.setSqr("MSL%23"+qcCheckTaskIncome.getSqr()); unqualified.setUser(qcCheckTaskIncome.getUpdateBy()); //转出方 unqualified.setZcf(qcCheckTaskIncome.getZcf()); diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckUnqualifiedServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckUnqualifiedServiceImpl.java index 6321d131..b65c1b96 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckUnqualifiedServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckUnqualifiedServiceImpl.java @@ -177,7 +177,6 @@ public class QcCheckUnqualifiedServiceImpl implements IQcCheckUnqualifiedService * \"supplier\":\"广东高顺印刷包装有限公司\",\"CHARG\":\"null\",\"comeQty\":\"1117\", * \"DW\":\"ST\",\"JYBH\":\"202404180042\",\"BJY\":\"202404180042\",\"WLLY\":\"2\", * \"memo\":\"不合格\",\"PZGLBZG\":\"不合格\"}","user":"999999","requestLevel":0,"workflowId":113454} - */ private AjaxResult createLLOA(QcCheckUnqualified task){ @@ -306,6 +305,29 @@ public class QcCheckUnqualifiedServiceImpl implements IQcCheckUnqualifiedService "SFGYSWT":"1" *是否供应商问题 1非供应商问题 0是供应商问题 }" } + + http://oa.lanju.cn/lanju/oa/submitOa.jsp? + user=9999999&requestLevel=0& + requestName=品质异常流程测试& + workflowId=113455& + mainObject={"CPMC":"榄菊加大盘野菊花蚊香塑料筒装(18装)(36单圈)", + "CPBM":"000000010101046600", + "SQBM":"0", + "SQR":"MSL%23999999", + "SQSJ":"2024-07-18", + "SCCJ":"MSD%2310000769", + "SCPH":"LJ20240705ABACEQ", + "SCSL":100, + "FXDD":"测试发现地点", + "FXRQ":"2024-07-18 16:26:45", + "BH":"202407040001", + "YCFW":"1", + "PZYCMS":"zxl测试不合格发起oa", + "Notes":"", + "SFXYZG":"0", + "PGZG":"MSL%23001539", + "PGZR":"MSL%23001539", + "SFGYSWT":"0"} * @param task * @return */ diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java index 48bc40b8..b4314e0d 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java @@ -632,9 +632,20 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService { public static double calculateCpk(double[] data, double USL, double LSL) { double mean = calculateMean(data); double stdDev = calculateStandardDeviation(data); - double cpkUpper = (USL - mean) / (3 * stdDev); - double cpkLower = (mean - LSL) / (3 * stdDev); - return Math.min(cpkUpper, cpkLower); + if(new BigDecimal(USL).compareTo(BigDecimal.ZERO)>0 && new BigDecimal(LSL).compareTo(BigDecimal.ZERO)>0){ + double cpkUpper = (USL - mean) / (3 * stdDev); + double cpkLower = (mean - LSL) / (3 * stdDev); + return Math.min(cpkUpper, cpkLower); + }else if(new BigDecimal(USL).compareTo(BigDecimal.ZERO)==0 && new BigDecimal(LSL).compareTo(BigDecimal.ZERO)>0){ + //无上限 + double cpkLower = (mean - LSL) / (3 * stdDev); + return cpkLower; + }else if(new BigDecimal(USL).compareTo(BigDecimal.ZERO)>0 && new BigDecimal(LSL).compareTo(BigDecimal.ZERO)==0){ + //无下限 + double cpkUpper = (USL - mean) / (3 * stdDev); + return cpkUpper; + } + return 0; } // 计算均值 public static double calculateMean(double[] data) { @@ -736,5 +747,8 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService { return days; } - + public static void main(String args[]){ + double a = 0.01; + System.out.println(new BigDecimal(a).compareTo(BigDecimal.ZERO)); + } } diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml index a02a26d8..3e5cbec5 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml @@ -574,7 +574,7 @@ where del_flag='0' and sample_code like concat(#{sampleCode},'%') </select> <select id="getUserIdList" resultType="com.op.system.api.domain.SysUser"> - select oa_user_id userId, + select user_name userCode, nick_name userName from sys_user where dept_id = #{deptId} and del_flag='0' </select> From e333fa5d73b4c751ffd8066a7adc1a1a2a74d385 Mon Sep 17 00:00:00 2001 From: zhaoxiaolin <khd@123> Date: Mon, 22 Jul 2024 11:55:04 +0800 Subject: [PATCH 06/14] =?UTF-8?q?=E6=9D=A5=E6=96=99oa=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E8=B0=83=E6=95=B42?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/op/common/core/utils/StringUtils.java | 2 - .../op/quality/domain/QcCheckTaskIncome.java | 9 +++ .../op/quality/domain/QcCheckUnqualified.java | 9 +++ .../impl/QcCheckTaskIncomeServiceImpl.java | 18 +++--- .../impl/QcCheckUnqualifiedServiceImpl.java | 8 +-- .../service/impl/QcGoalServiceImpl.java | 59 +++++++++++++++++++ 6 files changed, 92 insertions(+), 13 deletions(-) diff --git a/op-common/op-common-core/src/main/java/com/op/common/core/utils/StringUtils.java b/op-common/op-common-core/src/main/java/com/op/common/core/utils/StringUtils.java index c6b43806..c58179ad 100644 --- a/op-common/op-common-core/src/main/java/com/op/common/core/utils/StringUtils.java +++ b/op-common/op-common-core/src/main/java/com/op/common/core/utils/StringUtils.java @@ -488,8 +488,6 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils { calendar.setTime(productDate); // Add three years to the current date calendar.add(Calendar.YEAR, 3); - // Subtract one day from the new date - calendar.add(Calendar.DAY_OF_MONTH, -1); // Get the new date Date futureDate = calendar.getTime(); // Format the new date diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskIncome.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskIncome.java index 9b7f1462..4d678ccc 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskIncome.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskIncome.java @@ -214,6 +214,15 @@ public class QcCheckTaskIncome extends BaseEntity { private String pgzg;//QC主管:SFXYZG字段为"是",则此项选择QC主管信息 private String pgzr;//质量主管 private String oaFactoryF;//异常范围 + private String sccj; + + public String getSccj() { + return sccj; + } + + public void setSccj(String sccj) { + this.sccj = sccj; + } public String getOaFactoryF() { return oaFactoryF; diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckUnqualified.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckUnqualified.java index 971a2d15..01fd5968 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckUnqualified.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckUnqualified.java @@ -132,6 +132,15 @@ public class QcCheckUnqualified extends BaseEntity { private String pgzg;//QC主管:SFXYZG字段为"是",则此项选择QC主管信息 private String pgzr;//质量主管 private String oaFactoryF; + private String sccj;//所属车间 + + public String getSccj() { + return sccj; + } + + public void setSccj(String sccj) { + this.sccj = sccj; + } public String getOaFactoryF() { return oaFactoryF; diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java index 4b015980..6e099a99 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java @@ -817,9 +817,11 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements unqualified.setSfgyswt(qcCheckTaskIncome.getSfgyswt()); unqualified.setUser(qcCheckTaskIncome.getUpdateBy()); //申请人- - unqualified.setSqr("MSL%23"+qcCheckTaskIncome.getSqr()); + unqualified.setSqr("MSL#"+qcCheckTaskIncome.getSqr()); //申请部门 - unqualified.setSqbm("MSD%23"+qcCheckTaskIncome.getSqbm()); + unqualified.setSqbm(qcCheckTaskIncome.getSqbm()); + //所属车间 + unqualified.setSccj("MSD#"+qcCheckTaskIncome.getSccj()); //实际生产数量 unqualified.setQuality(qcCheckTaskIncome.getQuality().toString()); //发现地点 @@ -828,9 +830,9 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements unqualified.setSfxyzg(qcCheckTaskIncome.getSfxyzg()); if(qcCheckTaskIncome.getSfgyswt().equals("0")){//是 //qc主管 - unqualified.setPgzg("MSL%23"+qcCheckTaskIncome.getPgzg()); + unqualified.setPgzg("MSL#"+qcCheckTaskIncome.getPgzg()); //质量主管 - unqualified.setPgzr("MSL%23"+qcCheckTaskIncome.getPgzr()); + unqualified.setPgzr("MSL#"+qcCheckTaskIncome.getPgzr()); } //是否供应商问题 unqualified.setSfgyswt(qcCheckTaskIncome.getSfgyswt()); @@ -865,15 +867,15 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements //检验编号 unqualified.setCheckNo(qcCheckTaskIncome.getCheckNo()); //仓储报检人-李爱娟 - unqualified.setCzbjr("MSL%23"+qcCheckTaskIncome.getCzbjr()); + unqualified.setCzbjr("MSL#"+qcCheckTaskIncome.getCzbjr()); //物料类别 unqualified.setMaterialType(qcCheckTaskIncome.getMaterialType()); //物料来源 unqualified.setMaterialFrom(qcCheckTaskIncome.getMaterialFrom()); //QC主管-朱继新 - unqualified.setQczg("MSL%23"+qcCheckTaskIncome.getQczg()); + unqualified.setQczg("MSL#"+qcCheckTaskIncome.getQczg()); //申请人- - unqualified.setSqr("MSL%23"+qcCheckTaskIncome.getSqr()); + unqualified.setSqr("MSL#"+qcCheckTaskIncome.getSqr()); unqualified.setUser(qcCheckTaskIncome.getUpdateBy()); //转出方 unqualified.setZcf(qcCheckTaskIncome.getZcf()); @@ -913,6 +915,8 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements .replace("${quality}", qcCheckTaskIncome.getQuality()+"\n"); if(StringUtils.isNotBlank(qcCheckTaskIncome.getIncomeBatchNo())){ contentInfo = contentInfo.replace("${incomeBatchNo}", qcCheckTaskIncome.getIncomeBatchNo()+"\n"); + }else{ + contentInfo = contentInfo.replace("${incomeBatchNo}", "无"+"\n"); } if(StringUtils.isNotBlank(qcCheckTaskIncome.getOrderNo())){ contentInfo = contentInfo.replace("${orderNo}", qcCheckTaskIncome.getOrderNo()+"\n"); diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckUnqualifiedServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckUnqualifiedServiceImpl.java index b65c1b96..8f681429 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckUnqualifiedServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckUnqualifiedServiceImpl.java @@ -313,9 +313,9 @@ public class QcCheckUnqualifiedServiceImpl implements IQcCheckUnqualifiedService mainObject={"CPMC":"榄菊加大盘野菊花蚊香塑料筒装(18装)(36单圈)", "CPBM":"000000010101046600", "SQBM":"0", - "SQR":"MSL%23999999", + "SQR":"MSL#999999", \"SQR\":\"MSL#002007\", "SQSJ":"2024-07-18", - "SCCJ":"MSD%2310000769", + "SCCJ":"MSD#10000769", \"SCCJ\":\"MSD#10000152\", "SCPH":"LJ20240705ABACEQ", "SCSL":100, "FXDD":"测试发现地点", @@ -348,11 +348,11 @@ public class QcCheckUnqualifiedServiceImpl implements IQcCheckUnqualifiedService mainObject.append(",\"SQBM\":"+"\""+task.getSqbm()+"\"");//0品质保障部 mainObject.append(",\"SQR\":"+"\""+task.getSqr()+"\"");//申请人:默认当前用户 mainObject.append(",\"SQSJ\":"+"\""+DateUtils.parseDateToStr("yyyy-MM-dd",detailInfo.getCheckTime())+"\"");//申请时间 - mainObject.append(",\"SCCJ\":"+"\"162\"");//所属车间 + mainObject.append(",\"SCCJ\":"+"\""+task.getSccj()+"\"");//所属车间 mainObject.append(",\"SCPH\":"+"\""+detailInfo.getIncomeBatchNo()+"\"");//生产批号 mainObject.append(",\"SCSL\":"+task.getQuality());//生产数量 mainObject.append(",\"FXDD\":"+"\""+task.getCheckLoc()+"\"");//发现地点 - mainObject.append(",\"FXRQ\":"+"\""+DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss",detailInfo.getCheckTime())+"\"");//发现日期 + mainObject.append(",\"FXRQ\":"+"\""+DateUtils.parseDateToStr("yyyy-MM-dd",detailInfo.getCheckTime())+"\"");//发现日期 mainObject.append(",\"BH\":"+"\""+detailInfo.getCheckNo()+"\"");//编号:流水号 年月日+四位流水号 mainObject.append(",\"YCFW\":"+"\""+task.getOaFactoryF()+"\"");//*异常范围:下拉框榄菊所有工厂 1代表小榄工厂 mainObject.append(",\"PZYCMS\":"+"\""+detailInfo.getRemark()+"\"");//品质异常描述 diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcGoalServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcGoalServiceImpl.java index 84fc9a99..44af3945 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcGoalServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcGoalServiceImpl.java @@ -12,6 +12,7 @@ import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.StringUtils; import com.op.common.core.web.domain.AjaxResult; import com.op.common.security.utils.SecurityUtils; +import com.op.quality.domain.QcCheckTaskIncome; import com.op.quality.domain.QcCheckUnqualified; import com.op.quality.domain.vo.TreeSelect; import com.op.quality.mapper.QcCheckTaskIncomeMapper; @@ -58,6 +59,9 @@ public class QcGoalServiceImpl implements IQcGoalService { @Autowired private RemoteQualityService remoteQualityService; + @Autowired + private QcCheckTaskIncomeMapper qcCheckTaskIncomeMapper; + /** * 查询质量目标 @@ -124,6 +128,21 @@ public class QcGoalServiceImpl implements IQcGoalService { // qcCheckTaskIncomeDTO.setIncomeTime(new Date()); // remoteQualityService.createIncomeTask(qcCheckTaskIncomeDTO); +// 品质检验 +// QcCheckUnqualified task = new QcCheckUnqualified(); +// task.setTaskId("3ffb199037ba46a48e39cb148d7ad9e0"); +// task.setUser("002007"); +// task.setSqbm("0"); +// task.setSqr("MSL#002007"); +// task.setSccj("MSD#10000152"); +// task.setQuality("100"); +// task.setCheckLoc("测试发现地点"); +// task.setOaFactoryF("0"); +// task.setSfxyzg("0"); +// task.setPgzg("MSL#019184"); +// task.setPgzr("MSL#019184"); +// task.setSfgyswt("0"); +// this.createProduceOA(task); return qcGoals; } @@ -170,6 +189,46 @@ public class QcGoalServiceImpl implements IQcGoalService { return oaR; } + private AjaxResult createProduceOA(QcCheckUnqualified task){ + + QcCheckTaskIncome detailInfo = qcCheckTaskIncomeMapper.getTaskInfo(task.getTaskId()); + //发起来料检验OA流程 + Map<String, Object> paramMap = new HashMap<>(); + paramMap.put("user",task.getUser());//提交人工号 + paramMap.put("requestLevel",0);//流程紧急度 + paramMap.put("requestName","ZL0030-品质异常流程-智能制造-"+DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss",detailInfo.getIncomeTime())+"(产品名称:"+detailInfo.getMaterialName()+")");//流程名称 + paramMap.put("workflowId",113455);//该流程对应的唯- workFlowld + + StringBuffer mainObject = new StringBuffer(); + mainObject.append("{"); + mainObject.append("\"CPMC\":"+"\""+detailInfo.getMaterialName()+"\"");//产品名称 + mainObject.append(",\"CPBM\":"+"\""+detailInfo.getMaterialCode()+"\"");//产品编码 + mainObject.append(",\"SQBM\":"+"\""+task.getSqbm()+"\"");//0品质保障部 + mainObject.append(",\"SQR\":"+"\""+task.getSqr()+"\"");//申请人:默认当前用户 + mainObject.append(",\"SQSJ\":"+"\""+DateUtils.parseDateToStr("yyyy-MM-dd",detailInfo.getCheckTime())+"\"");//申请时间 + mainObject.append(",\"SCCJ\":"+"\""+task.getSccj()+"\"");//所属车间 + mainObject.append(",\"SCPH\":"+"\""+detailInfo.getIncomeBatchNo()+"\"");//生产批号 + mainObject.append(",\"SCSL\":"+task.getQuality());//生产数量 + mainObject.append(",\"FXDD\":"+"\""+task.getCheckLoc()+"\"");//发现地点 + mainObject.append(",\"FXRQ\":"+"\""+DateUtils.parseDateToStr("yyyy-MM-dd",detailInfo.getCheckTime())+"\"");//发现日期 + mainObject.append(",\"BH\":"+"\""+detailInfo.getCheckNo()+"\"");//编号:流水号 年月日+四位流水号 + mainObject.append(",\"YCFW\":"+"\""+task.getOaFactoryF()+"\"");//*异常范围:下拉框榄菊所有工厂 1代表小榄工厂 + mainObject.append(",\"PZYCMS\":"+"\""+detailInfo.getRemark()+"\"");//品质异常描述 + mainObject.append(",\"Notes\":"+"\"\"");//测试备注 + mainObject.append(",\"SFXYZG\":"+"\""+task.getSfxyzg()+"\"");//*是否需要主管审核 1否 0是 + mainObject.append(",\"PGZG\":"+"\""+task.getPgzg()+"\"");//QC主管:SFXYZG字段为"是",则此项选择QC主管信息 + mainObject.append(",\"PGZR\":"+"\""+task.getPgzr()+"\"");//质量主管 660:朱继新 + mainObject.append(",\"SFGYSWT\":"+"\""+task.getSfgyswt()+"\"");//*是否供应商问题 1非供应商问题 0是供应商问题 + + mainObject.append("}"); + + paramMap.put("mainObject",mainObject.toString()); + logger.info("流程Id 113455:"+ JSONObject.toJSONString(paramMap)); + AjaxResult oaR = remoteOpenService.OAInspection(paramMap); + logger.info("流程Id 113455:"+ JSONObject.toJSONString(oaR)); + return oaR; + } + @Override @DS("#header.poolName") public List<QcGoal> selectChildrenByParent(QcGoal goal) { From 26ca325e5fef02ab9583edbd81a65e5b6bf979a1 Mon Sep 17 00:00:00 2001 From: zhaoxiaolin <khd@123> Date: Mon, 22 Jul 2024 14:43:37 +0800 Subject: [PATCH 07/14] =?UTF-8?q?=E8=BE=85=E5=8A=A9=E6=8E=92=E4=BA=A7?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E7=B1=BB=E5=9E=8Bbug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/op/plan/service/impl/ProOrderServiceImpl.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java index d0a4a34a..7101c05c 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java @@ -1501,6 +1501,11 @@ public class ProOrderServiceImpl implements IProOrderService { workOrder.setStatus("w0"); workOrder.setCreateBy(SecurityUtils.getUsername()); workOrder.setCreateTime(pOrder.getCreateTime()); + if("LJ88".equals(pOrder.getOrderType())){ + workOrder.setProdType("LJ01"); + }else{ + workOrder.setProdType(pOrder.getOrderType()); + } workOrder.setProdType(proOrder.getOrderType()); workOrder.setFactoryCode(pOrder.getFactoryCode()); workOrder.setEndFlag(proOrder.getEndFlag()); From 05fb2811c8495a768fbd5abe6c148d16b9d41311 Mon Sep 17 00:00:00 2001 From: zhaoxiaolin <khd@123> Date: Mon, 22 Jul 2024 15:26:10 +0800 Subject: [PATCH 08/14] =?UTF-8?q?=E8=BE=85=E5=8A=A9=E6=8E=92=E4=BA=A7?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E7=B1=BB=E5=9E=8Bbug=E4=BF=AE=E5=A4=8D2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/op/common/core/utils/StringUtils.java | 4 +++- .../java/com/op/plan/service/impl/ProOrderServiceImpl.java | 1 - 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/op-common/op-common-core/src/main/java/com/op/common/core/utils/StringUtils.java b/op-common/op-common-core/src/main/java/com/op/common/core/utils/StringUtils.java index c58179ad..f3e7defa 100644 --- a/op-common/op-common-core/src/main/java/com/op/common/core/utils/StringUtils.java +++ b/op-common/op-common-core/src/main/java/com/op/common/core/utils/StringUtils.java @@ -475,7 +475,7 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils { * * @param factoryCode 工厂代码 * @param lineCode 产线编码 - * @param productDate 生产日期 + * @param productDate 生产日期 生产日期减一天位有效期 * @param version 订单生产版本号最后一位 * @param productStatus 产出状态:正常是A * @param content 内容物 (根据产品,一般为0) @@ -488,6 +488,8 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils { calendar.setTime(productDate); // Add three years to the current date calendar.add(Calendar.YEAR, 3); + // Subtract one day from the new date + calendar.add(Calendar.DAY_OF_MONTH, -1); // Get the new date Date futureDate = calendar.getTime(); // Format the new date diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java index 7101c05c..b1f2380e 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java @@ -1506,7 +1506,6 @@ public class ProOrderServiceImpl implements IProOrderService { }else{ workOrder.setProdType(pOrder.getOrderType()); } - workOrder.setProdType(proOrder.getOrderType()); workOrder.setFactoryCode(pOrder.getFactoryCode()); workOrder.setEndFlag(proOrder.getEndFlag()); workOrder.setSortNo(pOrder.getSortNo()); From 14fcf17a5a2fc87708289eb3bd8d7654191fd9df Mon Sep 17 00:00:00 2001 From: mengjiao <3338049200@qq,com> Date: Tue, 23 Jul 2024 12:07:10 +0800 Subject: [PATCH 09/14] =?UTF-8?q?wms=EF=BC=8Csap=E6=94=B6=E8=B4=A7?= =?UTF-8?q?=E7=94=9F=E4=BA=A7=E6=89=B9=E6=AC=A1=EF=BC=8C=20=E5=90=8E?= =?UTF-8?q?=E9=9D=A2=E5=8A=A0=E4=B8=80=E4=B8=AA=E5=85=A5=E5=BA=93=E6=89=B9?= =?UTF-8?q?=E6=AC=A1=E5=AD=97=E6=AE=B5=E3=80=82=E6=98=BE=E7=A4=BA=E4=B8=8A?= =?UTF-8?q?=E9=9D=A2=E6=88=AA=E5=8F=96=E7=9A=84=E5=80=BC=E6=88=96=E8=80=85?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=90=8E=E7=9A=84=E5=80=BC,=E8=BF=87?= =?UTF-8?q?=E8=B4=A6=E7=94=A8=E5=85=A5=E5=BA=93=E6=89=B9=E6=AC=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/api/domain/wms/wmsReportWork.java | 11 ++++- .../java/com/op/wms/domain/WmsProductPut.java | 11 +++++ .../impl/WmsProductPutServiceImpl.java | 46 ++++++++++++------- 3 files changed, 51 insertions(+), 17 deletions(-) diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/domain/wms/wmsReportWork.java b/op-api/op-api-system/src/main/java/com/op/system/api/domain/wms/wmsReportWork.java index 921c8ee1..622a2c88 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/domain/wms/wmsReportWork.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/domain/wms/wmsReportWork.java @@ -193,10 +193,19 @@ public class wmsReportWork extends BaseEntity { private String createTimeEnd; private String feedbackTimeStart; private String feedbackTimeEnd; - private String batch; + private String batch;//生产批次 + private String batchSK;//RK批次 private String endReport; private String whCode; + public String getBatchSK() { + return batchSK; + } + + public void setBatchSK(String batchSK) { + this.batchSK = batchSK; + } + public String getWhCode() { return whCode; } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/domain/WmsProductPut.java b/op-modules/op-wms/src/main/java/com/op/wms/domain/WmsProductPut.java index 5b72dc1b..31f815e5 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/domain/WmsProductPut.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/domain/WmsProductPut.java @@ -47,6 +47,15 @@ public class WmsProductPut extends BaseEntity { */ @Excel(name = "仓库编码") private String whCode; + private String batchSK;//生产批次 + + public String getBatchSK() { + return batchSK; + } + + public void setBatchSK(String batchSK) { + this.batchSK = batchSK; + } /** * 库区编码 @@ -490,4 +499,6 @@ public class WmsProductPut extends BaseEntity { ", attr10='" + attr10 + '\'' + '}'; } + + } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java index 86e9de66..e00d5215 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java @@ -329,6 +329,15 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService { @DS("#header.poolName") public List<wmsReportWork> getReportList(wmsReportWork mesReportWork) { List<wmsReportWork> rlist = wmsProductPutMapper.getReportList(mesReportWork); + for (wmsReportWork wmsReportWork: + rlist ) { + if (wmsReportWork.getBatch().length()>=23){ + String batchsk = InterceptionRules(wmsReportWork.getBatch()); + wmsReportWork.setBatchSK(batchsk); + }else { + wmsReportWork.setBatchSK(wmsReportWork.getBatch()); + } + } return rlist; } @@ -365,6 +374,7 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService { wmsProductPutk.setBatchNumber(mesReportWork.getBatch());// // wmsProductPutk.setSapStatus("2");//过账失败的 List<WmsProductPut> wmsProductPutList = wmsProductPutMapper.selectWmsProductPutList(wmsProductPutk); + if (wmsProductPutList.size() > 0) { String id = wmsProductPutList.get(0).getId(); mesReportWork.setId(id); @@ -393,6 +403,7 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService { wmsReportWorkListagain.add(mesReportWork);// // } } + //已经插入且插入失败的 for (wmsReportWork mesReportWork : wmsReportWorkList) { WmsProductPut wmsProductPutk = new WmsProductPut(); @@ -408,6 +419,7 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService { wmsProductPutk.setUnitOfMeasure(mesReportWork.getUnit()); wmsProductPutk.setBatchNumber(mesReportWork.getBatch());// wmsProductPutk.setSapStatus("2"); + List<WmsProductPut> wmsProductPutList = wmsProductPutMapper.selectWmsProductPutList(wmsProductPutk); if (wmsProductPutList.size() > 0) {//已经插入且失败的 wmsReportWorkListTWO.add(mesReportWork);// @@ -415,7 +427,7 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService { } - //先屏蔽起来 + //第一次 for (wmsReportWork mesReportWork : wmsReportWorkListRk) { WmsProductPut wmsProductPutk = new WmsProductPut(); @@ -433,12 +445,12 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService { wmsProductPutk.setStatus("1"); wmsProductPutk.setUnitOfMeasure(mesReportWork.getUnit()); wmsProductPutk.setBatchNumber(mesReportWork.getBatch());// + wmsProductPutk.setAttr4(mesReportWork.getBatchSK()); //List<WmsProductPut> wmsProductPutList= wmsProductPutMapper.selectWmsProductPutList(wmsProductPutk); - +// wmsProductPutk.setBatchSK(mesReportWork.getBatchSK());//入库批次 wmsProductPutk.setAttr3(formattedDate);// wmsProductPutk.setCreateBy(SecurityUtils.getUsername()); wmsProductPutk.setCreateTime(new Date()); - wmsProductPutk.setProductDate(mesReportWork.getProductDate()); wmsProductPutk.setId(mesReportWork.getId()); wmsProductPutk.setSapStatus("0"); @@ -492,13 +504,14 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService { map.put("LGORT", mesReportWork.getWhCode()); map.put("QUANTITY", mesReportWork.getQuantityQualified()); map.put("ERFME", mesReportWork.getUnit()); - if (mesReportWork.getBatch().length()>12){ - //String batch = mesReportWork.getBatch().substring(12); - String batch = InterceptionRules(mesReportWork.getBatch()); - map.put("BATCH", batch); - }else { - map.put("BATCH", mesReportWork.getBatch()); - } + map.put("BATCH", mesReportWork.getBatchSK()); +// if (mesReportWork.getBatch().length()>12){ +// //String batch = mesReportWork.getBatch().substring(12); +// String batch = InterceptionRules(mesReportWork.getBatch()); +// +// }else { +// map.put("BATCH", mesReportWork.getBatch()); +// } String formattedsDate = mesReportWork.getProductDate().replace("-", ""); map.put("HSDAT", formattedsDate); mapList.add(map); @@ -532,12 +545,13 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService { map.put("LGORT", mesReportWork.getWhCode()); map.put("QUANTITY", mesReportWork.getQuantityQualified()); map.put("ERFME", mesReportWork.getUnit()); - if (mesReportWork.getBatch().length()>12){ - String batch = InterceptionRules(mesReportWork.getBatch()); - map.put("BATCH", batch); - }else { - map.put("BATCH", mesReportWork.getBatch()); - } + map.put("BATCH", mesReportWork.getBatchSK()); +// if (mesReportWork.getBatch().length()>12){ +// String batch = InterceptionRules(mesReportWork.getBatch()); +// map.put("BATCH", batch); +// }else { +// map.put("BATCH", mesReportWork.getBatch()); +// } String formattedsDate = mesReportWork.getProductDate().replace("-", ""); map.put("HSDAT", formattedsDate); mapList.add(map); From ba364605185e31a8fa013e9db637718bb22c2bed Mon Sep 17 00:00:00 2001 From: mengjiao <3338049200@qq,com> Date: Tue, 23 Jul 2024 12:52:25 +0800 Subject: [PATCH 10/14] =?UTF-8?q?wms=EF=BC=8C=E6=88=90=E5=93=81=E7=94=9F?= =?UTF-8?q?=E4=BA=A7=E5=85=A5=E5=BA=93=E9=A1=B5=E9=9D=A2=E7=9A=84=E8=BF=87?= =?UTF-8?q?=E8=B4=A6=E6=8C=89=E9=92=AE=E9=9A=8F=E4=B9=8B=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/WmsProductPutServiceImpl.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java index e00d5215..bcf01c55 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java @@ -285,14 +285,15 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService { map.put("LGORT", wmsProductPut3.getWhCode()); map.put("QUANTITY", wmsProductPut3.getPutQuantity()); map.put("ERFME", wmsProductPut3.getUnitOfMeasure()); + map.put("BATCH", wmsProductPut3.getAttr4()); //map.put("BATCH", wmsProductPut3.getBatchNumber()); - if (wmsProductPut3.getBatchNumber().length()>12){ - //String batch = mesReportWork.getBatch().substring(12); - String batch = InterceptionRules(wmsProductPut3.getBatchNumber()); - map.put("BATCH", batch); - }else { - map.put("BATCH", wmsProductPut3.getBatchNumber()); - } +// if (wmsProductPut3.getBatchNumber().length()>12){ +// //String batch = mesReportWork.getBatch().substring(12); +// String batch = InterceptionRules(wmsProductPut3.getBatchNumber()); +// map.put("BATCH", batch); +// }else { +// map.put("BATCH", wmsProductPut3.getBatchNumber()); +// } map.put("HSDAT", wmsProductPut3.getProductDate()); mapList.add(map); } From c9f61c2501729272827ba8e42df1b6a516444d58 Mon Sep 17 00:00:00 2001 From: zhaoxiaolin <khd@123> Date: Tue, 23 Jul 2024 17:51:38 +0800 Subject: [PATCH 11/14] =?UTF-8?q?bug=E4=BF=AE=E5=A4=8D3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/QcMaterialGroupController.java | 16 ++++++++-------- .../op/quality/mapper/QcMaterialGroupMapper.java | 2 ++ .../service/impl/QcMaterialGroupServiceImpl.java | 1 + .../mapper/quality/QcMaterialGroupMapper.xml | 3 +++ 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcMaterialGroupController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcMaterialGroupController.java index 1506d925..27284088 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcMaterialGroupController.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcMaterialGroupController.java @@ -109,14 +109,14 @@ public class QcMaterialGroupController extends BaseController { public AjaxResult remove(@PathVariable String id) { QcMaterialGroup parent = new QcMaterialGroup(); parent.setId(id); - List<QcMaterialGroup> children = qcMaterialGroupService.getMaterialChildrenList(parent); - boolean hasRule = qcMaterialGroupService.validationData(id); - if (!children.isEmpty()) { - return AjaxResult.error("此节点下含有子节点,请先删除子节点"); - } else if (hasRule) { - return AjaxResult.error("此节点含有检验规则,请先删除检验规则"); - } else { +// List<QcMaterialGroup> children = qcMaterialGroupService.getMaterialChildrenList(parent); +// boolean hasRule = qcMaterialGroupService.validationData(id); +// if (!children.isEmpty()) { +// return AjaxResult.error("此节点下含有子节点,请先删除子节点"); +// } else if (hasRule) { +// return AjaxResult.error("此节点含有检验规则,请先删除检验规则"); +// } else { return toAjax(qcMaterialGroupService.deleteQcMaterialGroupById(id)); - } +// } } } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcMaterialGroupMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcMaterialGroupMapper.java index 112a74f9..40c3e5e1 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcMaterialGroupMapper.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcMaterialGroupMapper.java @@ -68,4 +68,6 @@ public interface QcMaterialGroupMapper { public List<QcMaterialGroup> validationData(String id); String selectGroupIdByName(String groupName); + + void deleteGroupDetailById(String id); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcMaterialGroupServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcMaterialGroupServiceImpl.java index 9eded988..8ab5580a 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcMaterialGroupServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcMaterialGroupServiceImpl.java @@ -191,6 +191,7 @@ public class QcMaterialGroupServiceImpl implements IQcMaterialGroupService { @Override @DS("#header.poolName") public int deleteQcMaterialGroupById(String id) { + qcMaterialGroupMapper.deleteGroupDetailById(id); return qcMaterialGroupMapper.deleteQcMaterialGroupById(id); } diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcMaterialGroupMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcMaterialGroupMapper.xml index 054abf1e..e327235d 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcMaterialGroupMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcMaterialGroupMapper.xml @@ -126,6 +126,9 @@ #{id} </foreach> </delete> + <delete id="deleteGroupDetailById"> + delete from qc_material_group_detail where group_id = #{id} + </delete> <select id="validationData" parameterType="String" resultMap="QcMaterialGroupResult"> select id, From 9c509a0415ae8d72d5632803e4a5294eababde14 Mon Sep 17 00:00:00 2001 From: zhaoxiaolin <khd@123> Date: Wed, 24 Jul 2024 15:35:40 +0800 Subject: [PATCH 12/14] =?UTF-8?q?=E4=BF=AE=E5=A4=8D2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java index 6e099a99..d490b307 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java @@ -828,7 +828,7 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements unqualified.setCheckLoc(qcCheckTaskIncome.getCheckLoc()); //是否需要主管审核 unqualified.setSfxyzg(qcCheckTaskIncome.getSfxyzg()); - if(qcCheckTaskIncome.getSfgyswt().equals("0")){//是 + if(qcCheckTaskIncome.getSfxyzg().equals("0")){//是 //qc主管 unqualified.setPgzg("MSL#"+qcCheckTaskIncome.getPgzg()); //质量主管 From 8a69f82b0185813dc94cb5cb5593f37f7bc00c6c Mon Sep 17 00:00:00 2001 From: mengjiao <3338049200@qq,com> Date: Wed, 24 Jul 2024 16:08:30 +0800 Subject: [PATCH 13/14] =?UTF-8?q?wms=E6=89=8B=E6=8C=81=E7=9A=84=E7=BA=BF?= =?UTF-8?q?=E4=BD=93=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WmsToWCSmissionController.java | 7 ++ .../wms/mapper/WmsRuturnPutEmbryoMapper.java | 3 + .../op/wms/service/IWmsProductPutService.java | 2 + .../impl/WmsProductPutServiceImpl.java | 8 ++ .../mapper/wms/WmsRuturnPutEmbryoMapper.xml | 110 ++++++++++++++++++ 5 files changed, 130 insertions(+) diff --git a/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java b/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java index f11d4734..c275c37f 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java @@ -5,6 +5,7 @@ package com.op.wms.controller; import com.op.common.core.utils.StringUtils; import com.op.common.core.web.domain.AjaxResult; +import com.op.common.core.web.page.TableDataInfo; import com.op.system.api.RemoteOpenService; import com.op.wms.domain.*; import com.op.wms.service.*; @@ -615,6 +616,12 @@ public class WmsToWCSmissionController { return success(odsProductEmbryoInventoryCorrelationList); } + //查询线体 + @PostMapping("/listBaseEquipment") + public AjaxResult listBaseEquipment(@RequestBody BaseEquipment baseEquipment) { + List<BaseEquipment> list = wmsProductPutService.selectBaseEquipmentList(baseEquipment); + return success(list); + } /** diff --git a/op-modules/op-wms/src/main/java/com/op/wms/mapper/WmsRuturnPutEmbryoMapper.java b/op-modules/op-wms/src/main/java/com/op/wms/mapper/WmsRuturnPutEmbryoMapper.java index 1de6f9b4..ebffa17b 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/mapper/WmsRuturnPutEmbryoMapper.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/mapper/WmsRuturnPutEmbryoMapper.java @@ -1,5 +1,6 @@ package com.op.wms.mapper; +import com.op.wms.domain.BaseEquipment; import com.op.wms.domain.WmsRuturnPutEmbryo; import java.util.List; @@ -23,4 +24,6 @@ public interface WmsRuturnPutEmbryoMapper { public List<WmsRuturnPutEmbryo> selectWmsRuturnPutEmbryoList(WmsRuturnPutEmbryo wmsRuturnPutEmbryo); void insertWmsRuturnPutEmbryo(WmsRuturnPutEmbryo wmsRuturnPutEmbryo1); + + List<BaseEquipment> selectBaseEquipmentList(BaseEquipment baseEquipment); } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/IWmsProductPutService.java b/op-modules/op-wms/src/main/java/com/op/wms/service/IWmsProductPutService.java index f9954c3a..bd910f3b 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/IWmsProductPutService.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/IWmsProductPutService.java @@ -130,4 +130,6 @@ public interface IWmsProductPutService { List<WmsRuturnPutEmbryo> selectWmsRuturnPutEmbryoList(WmsRuturnPutEmbryo wmsRuturnPutEmbryo); String finishedProductSalesReturnTD(WmsRuturnPutEmbryo wmsRuturnPutEmbryo); + + List<BaseEquipment> selectBaseEquipmentList(BaseEquipment baseEquipment); } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java index bcf01c55..04b66376 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java @@ -982,6 +982,14 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService { } return results; } + + @Override + public List<BaseEquipment> selectBaseEquipmentList(BaseEquipment baseEquipment) { + DynamicDataSourceContextHolder.push("ds_" + baseEquipment.getFactoryCode()); + List<BaseEquipment> baseEquipments = wmsRuturnPutEmbryoMapper.selectBaseEquipmentList(baseEquipment); + return baseEquipments; + } + @Override public List<WmsRuturnPutEmbryo> FinishedProductSalesReturn(WmsRuturnPutEmbryo wmsRuturnPutEmbryo) { DynamicDataSourceContextHolder.push("ds_" + wmsRuturnPutEmbryo.getFactoryCode()); diff --git a/op-modules/op-wms/src/main/resources/mapper/wms/WmsRuturnPutEmbryoMapper.xml b/op-modules/op-wms/src/main/resources/mapper/wms/WmsRuturnPutEmbryoMapper.xml index d16d7d81..d854285d 100644 --- a/op-modules/op-wms/src/main/resources/mapper/wms/WmsRuturnPutEmbryoMapper.xml +++ b/op-modules/op-wms/src/main/resources/mapper/wms/WmsRuturnPutEmbryoMapper.xml @@ -387,4 +387,114 @@ </if> </where> </select> + <resultMap type="com.op.wms.domain.BaseEquipment" id="BaseEquipmentResult"> + <result property="equipmentId" column="equipment_id"/> + <result property="equipmentCode" column="equipment_code"/> + <result property="equipmentName" column="equipment_name"/> + <result property="equipmentBrand" column="equipment_brand"/> + <result property="equipmentSpec" column="equipment_spec"/> + <result property="equipmentTypeId" column="equipment_type_id"/> + <result property="equipmentTypeCode" column="equipment_type_code"/> + <result property="equipmentTypeName" column="equipment_type_name"/> + <result property="workshopId" column="workshop_id"/> + <result property="workshopCode" column="workshop_code"/> + <result property="workshopName" column="workshop_name"/> + <result property="status" column="status"/> + <result property="remark" column="remark"/> + <result property="attr1" column="attr1"/> + <result property="attr2" column="attr2"/> + <result property="attr3" column="attr3"/> + <result property="attr4" column="attr4"/> + <result property="createBy" column="create_by"/> + <result property="createTime" column="create_time"/> + <result property="updateBy" column="update_by"/> + <result property="updateTime" column="update_time"/> + <result property="delFlag" column="del_flag"/> + <result property="unitWorkingHours" column="unit_working_hours"/> + <result property="workshopSection" column="workshop_section"/> + <result property="equipmentLocation" column="equipment_location"/> + <result property="hourlyUnitPrice" column="hourly_unit_price"/> + <result property="plcIp" column="plc_ip"/> + <result property="plcPort" column="plc_port"/> + <result property="equipmentBarcode" column="equipment_barcode"/> + <result property="equipmentBarcodeImage" column="equipment_barcode_image"/> + <result property="manufacturer" column="manufacturer"/> + <result property="supplier" column="supplier"/> + <result property="useLife" column="use_life"/> + <result property="buyTime" column="buy_time"/> + <result property="assetOriginalValue" column="asset_original_value"/> + <result property="netAssetValue" column="net_asset_value"/> + <result property="assetHead" column="asset_head"/> + <result property="fixedAssetCode" column="fixed_asset_code"/> + <result property="department" column="department"/> + <result property="sapAsset" column="sap_asset"/> + <result property="equipmentHead" column="equipment_head"/> + <result property="factoryCode" column="factory_code"/> + <result property="equipmentStatus" column="equipment_status"/> + <result property="equipmentCategory" column="equipment_category"/> + <result property="assetClassificationName" column="asset_classification_name"/> + <result property="assetDescription" column="asset_description"/> + <result property="equipmentNumber" column="equipment_number"/> + <result property="inventoryNumber" column="inventory_number"/> + <result property="unitMeasurement" column="unit_measurement"/> + <result property="sapCode" column="sap_code"/> + <result property="sapName" column="sap_name"/> + <result property="factoryWorkshop" column="factory_workshop"/> + </resultMap> + <select id="selectBaseEquipmentList" resultMap="BaseEquipmentResult" > + select + equipment_id, + equipment_code, + equipment_name, + equipment_brand, + equipment_spec, + equipment_type_id, + equipment_type_code, + equipment_type_name, + workshop_id, + workshop_code, + workshop_name, + status, + remark, + attr1, + attr2, + attr3, + attr4, + create_by, + create_time, + update_by, + update_time, + workshop_section, + equipment_location, + hourly_unit_price, + unit_working_hours, + del_flag, + plc_ip, + plc_port, + sap_asset, + equipment_barcode, + equipment_barcode_image, + manufacturer, + supplier, + use_life, + buy_time, + asset_original_value, + net_asset_value, + asset_head, + fixed_asset_code, + department, + equipment_head, + factory_code, + equipment_status, + equipment_category, + asset_classification_name, + asset_description, + equipment_number, + inventory_number, + unit_measurement, + sap_code, + sap_name, + factory_workshop + from base_equipment WHERE equipment_type_code='equ_type_bzx' AND del_flag='0' + </select> </mapper> From a8e76d04cc41d3976b8921d434160dbba638d80f Mon Sep 17 00:00:00 2001 From: mengjiao <3338049200@qq,com> Date: Thu, 25 Jul 2024 10:20:31 +0800 Subject: [PATCH 14/14] =?UTF-8?q?wms=E6=89=8B=E6=8C=81=E6=88=90=E5=93=81?= =?UTF-8?q?=E7=94=9F=E6=88=90=E8=AE=B0=E5=BD=95=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WmsToWCSmissionController.java | 14 +++++++++-- .../wms/mapper/WmsOdsWhiteEmbryoInMapper.java | 2 ++ .../op/wms/service/IWmsProductPutService.java | 2 ++ .../impl/WmsProductPutServiceImpl.java | 7 ++++++ .../mapper/wms/WmsOdsWhiteEmbryoInMapper.xml | 23 ++++++++++++++++++- 5 files changed, 45 insertions(+), 3 deletions(-) diff --git a/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java b/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java index c275c37f..27fee112 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java @@ -622,8 +622,18 @@ public class WmsToWCSmissionController { List<BaseEquipment> list = wmsProductPutService.selectBaseEquipmentList(baseEquipment); return success(list); } - - + //根据线体查询单子 + @PostMapping("/listProOrderWorkorder") + public AjaxResult listProOrderWorkorder(@RequestBody ProOrderWorkorder proOrderWorkorder) { + List<ProOrderWorkorder> list = wmsProductPutService.listProOrderWorkorder(proOrderWorkorder); + return success(list); + } + //保存--成品生产记录 + @PostMapping("/finishedProductProductionRecords") + public AjaxResult finishedProductProductionRecords(@RequestBody ProOrderWorkorder proOrderWorkorder) { + List<ProOrderWorkorder> list = wmsProductPutService.listProOrderWorkorder(proOrderWorkorder); + return success(list); + } /** * 成品自动码垛完以后,RGV 接驳要入库的托盘,扫描 RFID 号,请求 WMS 获取入库托盘信息。 * 触发时机:扫描 RFID 编码,进行入库 diff --git a/op-modules/op-wms/src/main/java/com/op/wms/mapper/WmsOdsWhiteEmbryoInMapper.java b/op-modules/op-wms/src/main/java/com/op/wms/mapper/WmsOdsWhiteEmbryoInMapper.java index 6caa7444..a0027c6f 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/mapper/WmsOdsWhiteEmbryoInMapper.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/mapper/WmsOdsWhiteEmbryoInMapper.java @@ -73,4 +73,6 @@ public interface WmsOdsWhiteEmbryoInMapper { WmsOdsWhiteEmbryoIn selectWmsOdsWhiteEmbryoInByOrderCodeAndUserDefined1(WmsOdsWhiteEmbryoIn wmsOdsWhiteEmbryoIn); String selectByOrderAndBc(@Param("proOrderWorkorderBatch") ProOrderWorkorderBatch proOrderWorkorderBatch,@Param("orderCode") String orderCode); + + List<ProOrderWorkorder> listProOrderWorkorder(ProOrderWorkorder proOrderWorkorder); } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/IWmsProductPutService.java b/op-modules/op-wms/src/main/java/com/op/wms/service/IWmsProductPutService.java index bd910f3b..114b75f0 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/IWmsProductPutService.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/IWmsProductPutService.java @@ -132,4 +132,6 @@ public interface IWmsProductPutService { String finishedProductSalesReturnTD(WmsRuturnPutEmbryo wmsRuturnPutEmbryo); List<BaseEquipment> selectBaseEquipmentList(BaseEquipment baseEquipment); + + List<ProOrderWorkorder> listProOrderWorkorder(ProOrderWorkorder proOrderWorkorder); } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java index 04b66376..b81c5963 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java @@ -990,6 +990,13 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService { return baseEquipments; } + @Override + public List<ProOrderWorkorder> listProOrderWorkorder(ProOrderWorkorder proOrderWorkorder) { + DynamicDataSourceContextHolder.push("ds_" + proOrderWorkorder.getFactoryCode()); + List<ProOrderWorkorder> workorderList= wmsOdsWhiteEmbryoInMapper.listProOrderWorkorder(proOrderWorkorder); + return workorderList; + } + @Override public List<WmsRuturnPutEmbryo> FinishedProductSalesReturn(WmsRuturnPutEmbryo wmsRuturnPutEmbryo) { DynamicDataSourceContextHolder.push("ds_" + wmsRuturnPutEmbryo.getFactoryCode()); diff --git a/op-modules/op-wms/src/main/resources/mapper/wms/WmsOdsWhiteEmbryoInMapper.xml b/op-modules/op-wms/src/main/resources/mapper/wms/WmsOdsWhiteEmbryoInMapper.xml index cb1a82cb..f6c17e30 100644 --- a/op-modules/op-wms/src/main/resources/mapper/wms/WmsOdsWhiteEmbryoInMapper.xml +++ b/op-modules/op-wms/src/main/resources/mapper/wms/WmsOdsWhiteEmbryoInMapper.xml @@ -285,5 +285,26 @@ <include refid="selectWmsOdsWhiteEmbryoInVo"/> WHERE Active='1' AND Order_Code=#{orderCode} AND User_Defined1=#{userDefined1} </select> - + <select id="listProOrderWorkorder" resultType="com.op.wms.domain.ProOrderWorkorder"> + SELECT + pro_order_workorder.workorder_code_sap AS workorderCodeSap, + pro_order_workorder.status AS status, + pro_order_workorder_batch.batch_code AS batchCode, + pro_order_workorder.product_code AS productCode, + pro_order_workorder.product_name AS productName, + pro_order_workorder.unit AS unit, + pro_order_workorder.workorder_name AS workorderName + FROM + pro_order_workorder + LEFT JOIN pro_order_workorder_batch ON pro_order_workorder_batch.workorder_id= pro_order_workorder.workorder_id + WHERE + pro_order_workorder.parent_order= '0' + AND pro_order_workorder_batch.del_flag= '0' + AND pro_order_workorder.status IN('w2','w3') + AND pro_order_workorder.product_date= CONVERT(DATE, GETDATE()) + <if test="workorderName != null">AND pro_order_workorder.workorder_name= #{workorderName}</if> + <if test="workorderCodeSap != null">AND pro_order_workorder.workorder_code_sap= #{workorderCodeSap}</if> + <if test="batchCode != null">AND pro_order_workorder_batch.batch_code= #{batchCode}</if> + <if test="productCode != null">AND pro_order_workorder.product_code= #{productCode}</if> + </select> </mapper>