diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/domain/dto/BaseBomDTO.java b/op-api/op-api-system/src/main/java/com/op/system/api/domain/dto/BaseBomDTO.java index 2f4ea9c6..2118cb48 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/domain/dto/BaseBomDTO.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/domain/dto/BaseBomDTO.java @@ -103,6 +103,15 @@ public class BaseBomDTO extends BaseEntity { private String productGroupName; private String productCode; private String workorderCode; + private String parentOrder; + + public String getParentOrder() { + return parentOrder; + } + + public void setParentOrder(String parentOrder) { + this.parentOrder = parentOrder; + } public String getWorkorderCode() { return workorderCode; diff --git a/op-modules/op-job/src/main/java/com/op/job/task/RyTask.java b/op-modules/op-job/src/main/java/com/op/job/task/RyTask.java index fb387861..394e2fbc 100644 --- a/op-modules/op-job/src/main/java/com/op/job/task/RyTask.java +++ b/op-modules/op-job/src/main/java/com/op/job/task/RyTask.java @@ -157,9 +157,15 @@ public class RyTask { /************质量管理系统定时任务开始*****************/ //过程巡检,每3分钟执行检查一次 public void createProduceXJTask(){ - logger.info("++质量管理系统+过程巡检+开始++createProduceXJTask+++++"); + logger.info("++质量管理系统+过程巡检任务创建+开始++createProduceXJTask+++++"); remoteQualityService.createProduceXJTask(); } + + //来料检验批量检验任务创建,每30分钟执行一次 + public void createIncomeBatchTask(){ + logger.info("++质量管理系统+来料检验任务创建+开始++createIncomeBatchTask+++++"); + remoteQualityService.createIncomeBatchTask(); + } /************质量管理系统定时任务结束*****************/ /************hr 人力基础数据定时任务开始*****************/ @@ -182,12 +188,5 @@ public class RyTask { } /************部门基础数据定时任务开始*****************/ - /************质量管理系统-来料检验批量检验任务创建-定时任务开始*****************/ - //来料检验批量检验任务创建,每30分钟执行一次 - public void createIncomeBatchTask(){ - logger.info("++质量管理系统+来料检验批量检验任务创建+开始++createIncomeBatchTask+++++"); - remoteQualityService.createIncomeBatchTask(); - } - /************质量管理系统-来料检验批量检验任务创建-定时任务结束*****************/ } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesReportWorkMapper.java b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesReportWorkMapper.java index 5362f1a4..0aa76436 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesReportWorkMapper.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesReportWorkMapper.java @@ -142,4 +142,6 @@ public interface MesReportWorkMapper { List getWarehouseList(MesReportWorkConsume workConsume); List getUpdateAttr1Boms(MesReportWork workorderCode); + + int updateAttr2(MesReportWork workorder); } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java index 2edfbc70..09383f65 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java @@ -347,12 +347,6 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { return R.fail("子母工单信息缺失"); } - /**修改sap物料损耗组成**/ - R updateBomsSap = this.updateAttr1BomsSap(workOrders); - if(updateBomsSap.getCode()== 500){ - return updateBomsSap; - } - R sapRson = null; if(workOrders.size()==1){ /**(一层报工)工单报工**/ @@ -440,32 +434,6 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { } return sapRson; } - //修改报工物料组成 - private R updateAttr1BomsSap(List workOrderCodes) { - //是否有变动的物料损耗组成 - List updateBoms = mesReportWorkMapper.getUpdateAttr1Boms(workOrderCodes.get(workOrderCodes.size()-1)); - if(!CollectionUtils.isEmpty(updateBoms)){ - List> mapList = new ArrayList<>(); - Map mapBom = null; - for(MesReportWorkConsume updateBom:updateBoms){ - mapBom = new HashMap(); - mapBom.put("P_AUFNR",updateBom.getWorkorderCodeSap());// 订单号 例如:000100308287 - mapBom.put("P_MATNR",updateBom.getMaterialCode());// 物料号 例如:000000040000015089 - //mapBom.put("P_GMEIN",updateBom.getUnit());// 基本计量单位 例如:m - mapBom.put("P_WERKS",workOrderCodes.get(0).getFactoryCode());//物料工厂 例如:1000 - mapBom.put("P_LGORT",updateBom.getWarehouseCode());//仓库编号 例如:0013 - mapList.add(mapBom); - } - - logger.info(workOrderCodes.get(workOrderCodes.size()-1).getWorkorderCode() - + "报工损耗物料组件修改请求:" + JSONObject.toJSONString(mapList)); - R bomUpdateR = remoteSapService.shopOrderBomUpdate(mapList); - logger.info(workOrderCodes.get(workOrderCodes.size()-1).getWorkorderCode() - + "报工损耗物料组件修改结果:" + JSONObject.toJSONString(bomUpdateR)); - return bomUpdateR; - } - return R.ok(); - } /** * diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkConsumeServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkConsumeServiceImpl.java index 65f44bfd..e5bb05f5 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkConsumeServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkConsumeServiceImpl.java @@ -4,13 +4,16 @@ import java.math.BigDecimal; import java.util.*; import java.util.stream.Collectors; +import com.alibaba.fastjson2.JSONObject; import com.baomidou.dynamic.datasource.annotation.DS; +import com.op.common.core.domain.R; import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.bean.BeanUtils; import com.op.common.core.utils.uuid.IdUtils; import com.op.common.security.utils.SecurityUtils; import com.op.mes.domain.*; import com.op.mes.mapper.MesReportWorkMapper; +import com.op.system.api.RemoteSapService; import com.op.system.api.domain.dto.BaseBomDTO; import com.op.system.api.domain.mes.BaseProductDTO; import com.op.system.api.domain.mes.BaseTeamTDTO; @@ -21,6 +24,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.op.mes.mapper.MesReportWorkConsumeMapper; import com.op.mes.service.IMesReportWorkConsumeService; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; /** @@ -38,6 +42,9 @@ public class MesReportWorkConsumeServiceImpl implements IMesReportWorkConsumeSer @Autowired private MesReportWorkMapper mesReportWorkMapper; + @Autowired + private RemoteSapService remoteSapService; + /** * 查询生产报工物料消耗 * @@ -163,7 +170,15 @@ public class MesReportWorkConsumeServiceImpl implements IMesReportWorkConsumeSer @Override @DS("#header.poolName") + @Transactional(rollbackFor = IllegalArgumentException.class) public int submitConsumePS(List mesReportWorkConsumes) { + + //根据belong_work_order找到sap工单(子子母) + List workOrders = mesReportWorkMapper.getSapWorkOrder(mesReportWorkConsumes.get(0).getParentOrder()); + if (CollectionUtils.isEmpty(workOrders)) { + return 0; + } + Date nowTime = DateUtils.getNowDate(); String updateBy = SecurityUtils.getUsername(); for (MesReportWorkConsume mesReportWorkConsume : mesReportWorkConsumes) { @@ -172,17 +187,17 @@ public class MesReportWorkConsumeServiceImpl implements IMesReportWorkConsumeSer } List updates = mesReportWorkConsumes .stream() - .filter(u -> u.getCreateTime()!=null).collect(Collectors.toList()); + .filter(u -> u.getCreateTime() != null).collect(Collectors.toList()); List adds = mesReportWorkConsumes .stream() - .filter(u -> u.getCreateTime()==null).collect(Collectors.toList()); - if(!CollectionUtils.isEmpty(adds)){ - Map consumeInfoMap = new HashMap<>(); - for(MesReportWorkConsume add:adds){ + .filter(u -> u.getCreateTime() == null).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(adds)) { + Map consumeInfoMap = new HashMap<>(); + for (MesReportWorkConsume add : adds) { MesReportWorkConsume newConsumeInfo = consumeInfoMap.get(add.getWorkorderCode()); - if(newConsumeInfo==null){ + if (newConsumeInfo == null) { MesReportWorkConsume mapItem = mesReportWorkConsumeMapper.getNewConsumeInfo(add.getWorkorderCode()); - consumeInfoMap.put(add.getWorkorderCode(),mapItem); + consumeInfoMap.put(add.getWorkorderCode(), mapItem); } newConsumeInfo = consumeInfoMap.get(add.getWorkorderCode()); @@ -194,12 +209,57 @@ public class MesReportWorkConsumeServiceImpl implements IMesReportWorkConsumeSer add.setAttr1("1");//新增标识 add.setParentOrder(newConsumeInfo.getParentOrder()); } - int addNum =mesReportWorkConsumeMapper.addConsumePS(adds); - System.out.println("addNum:"+addNum); + int addNum = mesReportWorkConsumeMapper.addConsumePS(adds); + System.out.println("addNum:" + addNum); + } + int updateNum = mesReportWorkConsumeMapper.submitConsumePS(updates); + System.out.println("updateNum:" + updateNum); + + /**修改sap物料损耗组成**/ + R updateBomsSap = this.updateAttr1BomsSap(workOrders); + if(updateBomsSap.getCode()== 500){ + throw new IllegalArgumentException("修改组件异常"); + } + return 1; + + } + + //修改报工物料组成 + private R updateAttr1BomsSap(List workOrderCodes) { + //是否有变动的物料损耗组成 + MesReportWork workorder = workOrderCodes.get(workOrderCodes.size()-1); + if(workorder == null ){ + logger.info(workorder.getWorkorderCode() + + "报工损耗物料组件修改请求:null"); + return R.fail(); + } + List updateBoms = mesReportWorkMapper.getUpdateAttr1Boms(workorder); + if(!CollectionUtils.isEmpty(updateBoms)){ + List> mapList = new ArrayList<>(); + Map mapBom = null; + for(MesReportWorkConsume updateBom:updateBoms){ + mapBom = new HashMap(); + mapBom.put("P_AUFNR",updateBom.getWorkorderCodeSap());// 订单号 例如:000100308287 + mapBom.put("P_MATNR",updateBom.getMaterialCode());// 物料号 例如:000000040000015089 + //mapBom.put("P_GMEIN",updateBom.getUnit());// 基本计量单位 例如:m + mapBom.put("P_WERKS",workOrderCodes.get(0).getFactoryCode());//物料工厂 例如:1000 + mapBom.put("P_LGORT",updateBom.getWarehouseCode());//仓库编号 例如:0013 + mapList.add(mapBom); + } + + logger.info(workorder.getWorkorderCode() + + "报工损耗物料组件修改请求:" + JSONObject.toJSONString(mapList)); + R bomUpdateR = remoteSapService.shopOrderBomUpdate(mapList); + logger.info(workorder.getWorkorderCode() + + "报工损耗物料组件修改结果:" + JSONObject.toJSONString(bomUpdateR)); + if(bomUpdateR.getCode() == 200){ + //attr2 0->1组件完成修改 + int f = mesReportWorkMapper.updateAttr2(workorder); + logger.info("组件修改完成:"+f); + } + return bomUpdateR; } - int updateNum =mesReportWorkConsumeMapper.submitConsumePS(updates); - System.out.println("addNum:"+updateNum); - return updateNum; + return R.ok(); } @Override 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 db3b3a7a..77d9b0a2 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 @@ -52,6 +52,7 @@ and factory_code = #{factoryCode} and recoil = #{recoil} and del_flag = '0' + and quantity != '.00' @@ -86,6 +87,12 @@ and bp.product_group_name like concat('%',#{productGroupName}, '%') + + and bp.product_code not in( + select material_code from mes_report_work_consume + where workorder_code = #{parentOrder} or parent_order = #{parentOrder} and del_flag='0' + ) + diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml index 9a5b2bcf..2541a16d 100644 --- a/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml +++ b/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml @@ -687,8 +687,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" pow.workorder_code_sap workorderCodeSap, mrwc.warehouse_code warehouseCode from mes_report_work_consume mrwc - left join pro_order_workorder pow on mrwc.workorder_code = pow.workorder_code - where mrwc.attr1 = '1' and mrwc.del_flag = '0' + left join pro_order_workorder pow on mrwc.workorder_code = pow.workorder_code + where mrwc.attr1 = '1' and mrwc.del_flag = '0' and mrwc.attr2 = '0' and mrwc.parent_order = #{workorderCode} @@ -877,8 +877,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" upload_msg = null where workorder_code = #{workorderCode} or parent_order = #{workorderCode} + + update mes_report_work_consume + set attr2 = '1' + where parent_order = #{workorderCode} and attr1= '1' + - + update mes_report_work set del_flag = '1' where id = #{id} diff --git a/op-modules/op-open/src/main/java/com/op/open/mapper/OpenMapper.java b/op-modules/op-open/src/main/java/com/op/open/mapper/OpenMapper.java index 85ccc6cf..3bd8ad5f 100644 --- a/op-modules/op-open/src/main/java/com/op/open/mapper/OpenMapper.java +++ b/op-modules/op-open/src/main/java/com/op/open/mapper/OpenMapper.java @@ -80,5 +80,7 @@ public interface OpenMapper { List getCheckUsers(String checkType); public int addCheckUsers(@Param("list") List users); + + String getSampNum(QcCheckTaskProduceDTO sampQua); } 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 da094dcb..52b75d54 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 @@ -372,24 +372,33 @@ public class OpenServiceImpl implements OpenService { int m = openMapper.addCheckUsers(users); logger.info(qcCheckTaskProduce.getOrderNo()+":检查人新增" + m + "成功"); - /**qc_check_type_project**/ + /**qc_check_type_project**///个性 List items = openMapper.getTPByTypeMaterial(qctp); - if (CollectionUtils.isEmpty(items)) { - /**qc_material_group_detail**/ - QcMaterialGroupDetailDTO group = openMapper.getGroupByMaterial(qcCheckTaskProduce.getMaterialCode()); - if (group == null) { - logger.info(qcCheckTaskProduce.getOrderNo()+":"+qcCheckTaskProduce.getMaterialCode()+"没有维护物料组检测项,检验任务生成失败"); - return 0;//没有找到检测项目 - } - qctp.setGroupId(group.getGroupId());//共性 - items = openMapper.getTPByTypeGroup(qctp); + + /**qc_material_group_detail**/ + QcMaterialGroupDetailDTO group = openMapper.getGroupByMaterial(qcCheckTaskProduce.getMaterialCode()); + if (group == null) { + group = new QcMaterialGroupDetailDTO(); + group.setGroupId("3dc0655fea3449c59c76a01cc5b91565"); } + qctp.setGroupId(group.getGroupId());//共性 + List itemsGG = openMapper.getTPByTypeGroup(qctp); + items.addAll(itemsGG); /**qc_check_task_detail**/ if (CollectionUtils.isEmpty(items)) { return 0;//没有找到检测项目 } + /**qc_sample_rule**/ + QcCheckTaskProduceDTO sampQua = new QcCheckTaskProduceDTO(); + sampQua.setCheckType(qcCheckTaskProduce.getCheckType()); + sampQua.setQuality(qcCheckTaskProduce.getQuality()); + String sampNum = openMapper.getSampNum(sampQua); + if(StringUtils.isNotBlank(sampNum)){ + qcCheckTaskProduce.setSampleQuality(new BigDecimal(sampNum)); + } + /**qc_check_task**/ qcCheckTaskProduce.setRecordId(beLongId); qcCheckTaskProduce.setFactoryCode(factoryCode); diff --git a/op-modules/op-open/src/main/resources/mapper/open/OpenMapper.xml b/op-modules/op-open/src/main/resources/mapper/open/OpenMapper.xml index 6e780f62..7255db33 100644 --- a/op-modules/op-open/src/main/resources/mapper/open/OpenMapper.xml +++ b/op-modules/op-open/src/main/resources/mapper/open/OpenMapper.xml @@ -199,8 +199,14 @@ select qum.user_code userCode, qum.user_name userName from qc_user_material qum - where qum.material_code = #{checkType} and pow.del_flag = '0' and qum.del_flag = '0' + where qum.material_code = #{checkType} and qum.del_flag = '0' + insert into equ_repair_order diff --git a/op-modules/op-plan/src/main/java/com/op/plan/controller/ProOrderController.java b/op-modules/op-plan/src/main/java/com/op/plan/controller/ProOrderController.java index f3915d6f..08a18768 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/controller/ProOrderController.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/controller/ProOrderController.java @@ -292,7 +292,6 @@ public class ProOrderController extends BaseController { return proOrderService.syncSAPOrders(); } /** - * 下发生产工单。workorderIds:母工单号 * 如果改成复选,需要考虑很多中订单组合情况 * 所以尽量不要动 */ diff --git a/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderWorkorderMapper.java b/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderWorkorderMapper.java index b9e518f0..72fc7853 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderWorkorderMapper.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderWorkorderMapper.java @@ -197,5 +197,9 @@ public interface ProOrderWorkorderMapper { List getOrderByOrders(@Param("orderIds") String[] orderIds); List checkBatchCodes(@Param("batchs") List formFields); + + List getUnSplitOrder(@Param("orderIds") String[] orderIds); + + ProOrderWorkorder selectSonOrder(String parentOrder); } 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 5ae7f845..0b119c07 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 @@ -1093,20 +1093,41 @@ public class ProOrderServiceImpl implements IProOrderService { @DS("#header.poolName") @Transactional(rollbackFor = Exception.class) public int deleteOrder(String[] orderIds) { + //只准一个个的删 - //未拆分,直接关闭订单 List checkOrders = proOrderWorkorderMapper.getOrderByOrders(orderIds); if(!CollectionUtils.isEmpty(checkOrders)){ - int m0 = proOrderMapper.deleteProOrderByIds(orderIds); - logger.info(orderIds[0]+"删除订单m0:"+m0); - return 1; + if(checkOrders.get(0).equals("o0")){ + //未拆分,直接关闭订单 + List allOrderIds = new ArrayList<>(); + for(ProOrderWorkorder order:checkOrders){ + String topOrderCode = order.getOrderCode(); + allOrderIds.add(order.getOrderId()); + Boolean run = true; + while (run) { + //下级 + ProOrderWorkorder sonOrder = proOrderWorkorderMapper.selectSonOrder(topOrderCode); + //有下级code + if (sonOrder != null) { + allOrderIds.add(sonOrder.getOrderId()); + topOrderCode = sonOrder.getOrderCode(); + } else { + run = false; + } + } + } + int m0 = proOrderMapper.deleteProOrderByIds(allOrderIds.toArray(new String[allOrderIds.size()])); + logger.info(orderIds[0]+"删除订单m0:"+m0); + return 1; + } } - //已经存在工单可以进行订单关闭的数据 + //完全拆分已经存在工单可以进行订单关闭的数据 List checkWorkOrders = proOrderWorkorderMapper.getWorkOrderByOrders(orderIds); if(checkWorkOrders.size() != orderIds.length){ return 2; } + for(ProOrderWorkorder workorder:checkWorkOrders){ //要删除的工单id们 List delteIds = new ArrayList<>(); @@ -1178,7 +1199,7 @@ public class ProOrderServiceImpl implements IProOrderService { if(!CollectionUtils.isEmpty(repeatBatchCodes)){ return StringUtils.join(repeatBatchCodes, ","); } - return ""; + return ""; } public static void main(String args[]){ 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 583eb34c..18185476 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 @@ -535,22 +535,42 @@ and pow.del_flag = '0' + + insert into mes_prepare_detail diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskIncomeController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskIncomeController.java index 75d7d2b9..c0d601a9 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskIncomeController.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskIncomeController.java @@ -12,6 +12,7 @@ import java.util.stream.Collectors; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; @@ -181,49 +182,49 @@ public class QcCheckTaskIncomeController extends BaseController { } public AjaxResult createIncomeBatchTaskFunc(String poolName){ - try { - DynamicDataSourceContextHolder.push(poolName);// 这是数据源的key - Date taskTime = DateUtils.getNowDate(); - logger.info("++++++++++++" + poolName + "工厂来料检验批量创建任务开始+++时间:"+ taskTime +"++++++++++"); - Map mapBom = new HashMap(); - mapBom.put("P_WERKS",poolName.replace("ds_",""));//物料工厂 例如:1000 - logger.info("来料信息查询请求:" + JSONObject.toJSONString(mapBom)); - R incomeR = remoteSapService.inComingCheck(mapBom); - if(incomeR.getCode()==500){ - logger.info("来料信息查询请求:" + JSONObject.toJSONString(incomeR)); - return AjaxResult.error(JSONObject.toJSONString(incomeR)); - } - logger.info("来料信息查询结果:" + JSONObject.toJSONString(incomeR)); - List incomeAll = (List)incomeR.getData(); - //已经生成过检验任务的采购订单 - List todayIncomeLists = qcCheckTaskIncomeService.getTodayIncomeLists(); - List newIncomes = incomeAll.stream() + DynamicDataSourceContextHolder.push(poolName);// 这是数据源的key + Date taskTime = DateUtils.getNowDate(); + logger.info("++++++++++++" + poolName + "工厂来料检验批量创建任务开始+++时间:"+ taskTime +"++++++++++"); + Map mapBom = new HashMap(); + mapBom.put("P_WERKS",poolName.replace("ds_",""));//物料工厂 例如:1000 + logger.info("来料信息查询请求:" + JSONObject.toJSONString(mapBom)); + R incomeR = remoteSapService.inComingCheck(mapBom); + if(incomeR.getCode()==500){ + logger.info("来料信息查询请求:" + JSONObject.toJSONString(incomeR)); + return AjaxResult.error(JSONObject.toJSONString(incomeR)); + } + logger.info("来料信息查询结果:" + JSONObject.toJSONString(incomeR)); + List incomeAll = JSONArray.parseArray(JSONObject.toJSONString(incomeR.getData()),QcCheckTaskIncomeDTO.class); + //已经生成过检验任务的采购订单 + List todayIncomeLists = qcCheckTaskIncomeService.getTodayIncomeLists(); + List newIncomes= null; + if(CollectionUtils.isEmpty(todayIncomeLists)){ + newIncomes = incomeAll; + }else{ + newIncomes = incomeAll.stream() .filter(item -> !todayIncomeLists.contains(item.getOrderNo())) .collect(Collectors.toList()); + } - int successNum = 0;//成功任务数 - int failNum = 0;//失败任务数 - if(!CollectionUtils.isEmpty(newIncomes)){ - logger.info("工厂来料检验任务生成参数:" + JSONObject.toJSONString(newIncomes)); - for(QcCheckTaskIncomeDTO income:newIncomes){ - AjaxResult ajaxResult = createIncomeTask(income); - if(ajaxResult.isSuccess()){ - successNum = successNum + 1; - logger.info(poolName + "工厂的" + income.getCheckNo()+"来料检验创建任务成功++++++++++"); - }else if(ajaxResult.isError()){ - failNum = failNum +1; - logger.info(poolName + "工厂的" + income.getCheckNo()+"来料检验创建任务失败++++++++++"); - } + int successNum = 0;//成功任务数 + int failNum = 0;//失败任务数 + if(!CollectionUtils.isEmpty(newIncomes)){ + logger.info("工厂来料检验任务生成参数:" + JSONObject.toJSONString(newIncomes)); + for(QcCheckTaskIncomeDTO income:newIncomes){ + AjaxResult ajaxResult = createIncomeTask(income); + if(ajaxResult.isSuccess()){ + successNum = successNum + 1; + logger.info(poolName + "工厂的" + income.getCheckNo()+"来料检验创建任务成功++++++++++"); + }else if(ajaxResult.isError()){ + failNum = failNum +1; + logger.info(poolName + "工厂的" + income.getCheckNo()+"来料检验创建任务失败++++++++++"); } - }else{ - logger.info("++++++++++++" + poolName + "工厂来料检验没有可创建的任务++++++++++"); } - logger.info("++++++++++++" + poolName + "工厂来料检验批量创建任务结束:成功"+ successNum +"失败"+ failNum +"+++++"); - return success(); - } catch (Exception e) { - logger.info("++++++++++++" + poolName + "工厂来料检验批量创建任务失败++++++++++"); - return error("++++++++++++" + poolName + "工厂来料检验批量创建任务失败++++++++++"); + }else{ + logger.info("++++++++++++" + poolName + "工厂来料检验没有可创建的任务++++++++++"); } + logger.info("++++++++++++" + poolName + "工厂来料检验批量创建任务结束:成功"+ successNum +"失败"+ failNum +"+++++"); + return success(); } @PostMapping("/createIncomeTask") 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 9ac1a3f5..e88e9018 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 @@ -150,22 +150,17 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService { QcCheckTypeProject qctp= new QcCheckTypeProject(); qctp.setTypeId(qcCheckTaskIncome.getCheckType());//生产过程检验 qctp.setMaterialCode(qcCheckTaskIncome.getMaterialCode());//特性 - /**qc_check_type_project**/ + /**qc_check_type_project**///个性 List items = qcCheckTypeProjectMapper.getTPByTypeMaterial(qctp); - /**qc_material_group_detail**/ - //个性 QcMaterialGroupDetail group = qcMaterialGroupDetailMapper.getGroupByMaterial(qcCheckTaskIncome.getMaterialCode()); -// if(group == null){ -// return 0;//没有找到检测项目 -// } - if(Objects.isNull(group)){ - return 0;//没有找到检测项目 - } //共性 + if(group == null){//默认 + group = new QcMaterialGroupDetail(); + group.setGroupId("729971295b734782b544f9d6d06fb8b9"); + } qctp.setGroupId(group.getGroupId()); List itemsGG = qcCheckTypeProjectMapper.getTPByTypeGroup(qctp); - items.addAll(itemsGG); /**qc_check_task_detail**/ 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 0d6572cd..ee0810c1 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 @@ -27,6 +27,7 @@ import com.op.quality.service.IQcCheckTaskUserService; import com.op.system.api.RemoteUserService; import com.op.system.api.domain.SysUser; import com.op.system.api.domain.mes.ProOrderWorkorderDTO; +import com.op.system.api.domain.quality.QcMaterialGroupDetailDTO; import com.op.system.api.domain.quality.QcUserMaterialDTO; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -158,17 +159,18 @@ public class QcCheckTaskProduceServiceImpl implements IQcCheckTaskProduceService QcCheckTypeProject qctp= new QcCheckTypeProject(); qctp.setTypeId(qcCheckTaskProduce.getCheckType());//生产过程检验 qctp.setMaterialCode(qcCheckTaskProduce.getMaterialCode());//特性 - /**qc_check_type_project**/ + /**qc_check_type_project**///个性 List items = qcCheckTypeProjectMapper.getTPByTypeMaterial(qctp); - if(CollectionUtils.isEmpty(items)){ - /**qc_material_group_detail**/ - QcMaterialGroupDetail group = qcMaterialGroupDetailMapper.getGroupByMaterial(qcCheckTaskProduce.getMaterialCode()); - if(group == null){ - return 0;//没有找到检测项目 - } - qctp.setGroupId(group.getGroupId());//共性 - items = qcCheckTypeProjectMapper.getTPByTypeGroup(qctp); + + /**qc_material_group_detail**/ + QcMaterialGroupDetail group = qcMaterialGroupDetailMapper.getGroupByMaterial(qcCheckTaskProduce.getMaterialCode()); + if(group == null){ + group = new QcMaterialGroupDetail(); + group.setGroupId("3dc0655fea3449c59c76a01cc5b91565"); } + qctp.setGroupId(group.getGroupId());//共性 + List itemsGG = qcCheckTypeProjectMapper.getTPByTypeGroup(qctp); + items.addAll(itemsGG); /**qc_check_task_detail**/ if(CollectionUtils.isEmpty(items)){ diff --git a/op-modules/op-wms/src/main/java/com/op/wms/controller/BaseEquipmentController.java b/op-modules/op-wms/src/main/java/com/op/wms/controller/BaseEquipmentController.java index b15c51b8..e39cbc74 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/controller/BaseEquipmentController.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/controller/BaseEquipmentController.java @@ -277,4 +277,13 @@ public class BaseEquipmentController extends BaseController { List list = baseEquipmentService.selectBYRecordsList(baseEquipment); return getDataTable(list); } + + /** + * 查询设备类型(字典中的) + */ + @GetMapping("/getEquipmentTypeDeptList") + public TableDataInfo getEquipmentTypeDeptList(BaseEquipment baseEquipment) { + List list = baseEquipmentService.getEquipmentTypeDeptList(baseEquipment); + return getDataTable(list); + } } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/domain/WmsProductPutTrayCode.java b/op-modules/op-wms/src/main/java/com/op/wms/domain/WmsProductPutTrayCode.java index 88e9ed32..9f4dc49e 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/domain/WmsProductPutTrayCode.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/domain/WmsProductPutTrayCode.java @@ -68,6 +68,34 @@ public class WmsProductPutTrayCode extends BaseEntity { this.siteCode = siteCode; } + /** + * 产品名称 + */ + @Excel(name = "产品名称") + private String productName; + + /** + * 产品编码 + */ + @Excel(name = "产品编码") + private String productCode; + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductCode() { + return productCode; + } + + public void setProductCode(String productCode) { + this.productCode = productCode; + } + /** * 预留字段1 */ diff --git a/op-modules/op-wms/src/main/java/com/op/wms/mapper/BaseEquipmentMapper.java b/op-modules/op-wms/src/main/java/com/op/wms/mapper/BaseEquipmentMapper.java index 05753314..4c1aae93 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/mapper/BaseEquipmentMapper.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/mapper/BaseEquipmentMapper.java @@ -135,4 +135,7 @@ public interface BaseEquipmentMapper { //查询辅助设备 List selectEquipmentListByCategory(BaseEquipment baseEquipment); + + //查询设备类型(维护在字典中的) + List getEquipmentTypeDeptList(BaseEquipment baseEquipment); } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/IBaseEquipmentService.java b/op-modules/op-wms/src/main/java/com/op/wms/service/IBaseEquipmentService.java index d4ed29d5..fec24879 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/IBaseEquipmentService.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/IBaseEquipmentService.java @@ -93,4 +93,6 @@ public interface IBaseEquipmentService { //辅助设备列表 List selectEquipmentListByCategory(BaseEquipment baseEquipment); + + List getEquipmentTypeDeptList(BaseEquipment baseEquipment); } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/BaseEquipmentServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/BaseEquipmentServiceImpl.java index 330a7668..6204554c 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/BaseEquipmentServiceImpl.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/BaseEquipmentServiceImpl.java @@ -616,4 +616,13 @@ public class BaseEquipmentServiceImpl implements IBaseEquipmentService { public List selectBYRecordsList(BaseEquipment baseEquipment) { return baseEquipmentMapper.selectBYRecordsList(baseEquipment); } + + /** + * 查询设备类型 + */ + @Override + @DS("master") + public List getEquipmentTypeDeptList(BaseEquipment baseEquipment) { + return baseEquipmentMapper.getEquipmentTypeDeptList(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 7599edef..015878ea 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 @@ -685,7 +685,7 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService { //成品销售出库--确认接口---修改出库单,--出库库存 WmsSellOutEmbryo wmsSellOutEmbryo1 = wmsSellOutEmbryoMapper.selectWmsSellOutEmbryoById(wmsSellOutEmbryo.getId()); Integer tem= wmsProductPutTrayCodeList.size(); - BigDecimal OutQuantity= wmsSellOutEmbryo1.getOutQuantity().add(new BigDecimal(tem)); + BigDecimal OutQuantity= wmsSellOutEmbryo1.getOutQuantity().add(new BigDecimal(tem));//2 int result = wmsSellOutEmbryo1.getPlanQuantity().compareTo(OutQuantity); WmsSellOutEmbryo wmsSellOutEmbryoUpdate=new WmsSellOutEmbryo(); if (result == 0){//出库完 @@ -695,7 +695,7 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService { } wmsSellOutEmbryoUpdate.setId(wmsSellOutEmbryo.getId()); wmsSellOutEmbryoUpdate.setOutQuantity(OutQuantity); - wmsSellOutEmbryoMapper.updateWmsSellOutEmbryo(wmsSellOutEmbryo); + wmsSellOutEmbryoMapper.updateWmsSellOutEmbryo(wmsSellOutEmbryoUpdate); //订单修改完成 for(WmsProductPutTrayCode wmsProductPutTrayCode: wmsProductPutTrayCodeList){//库存修改 //解除绑定 @@ -745,6 +745,8 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService { for (WmsProductPutTrayCode wmsProductPutTrayCode1: wmsProductPutTrayCodeList) { wmsProductPutTrayCode1.setWlCode(wmsFpStorageNewsSn1.getWlCode()); + wmsProductPutTrayCode1.setProductCode(wmsFpStorageNewsSn1.getProductCode()); + wmsProductPutTrayCode1.setProductName(wmsFpStorageNewsSn1.getProductName()); } } @@ -769,6 +771,8 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService { if(wmsFpStorageNewsSns.size()>0){ WmsFpStorageNewsSn wmsFpStorageNewsSn1= wmsFpStorageNewsSns.get(0); wmsProductPutTrayCode.setWlCode( wmsFpStorageNewsSn1.getWlCode());//库位 + wmsProductPutTrayCode.setProductCode(wmsFpStorageNewsSn1.getProductCode()); + wmsProductPutTrayCode.setProductName(wmsFpStorageNewsSn1.getProductName()); return wmsProductPutTrayCode; } } @@ -783,5 +787,4 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService { List wmsSellOutEmbryoList= wmsSellOutEmbryoMapper.selectWmsSellOutEmbryoList(wmsSellOutEmbryo); return wmsSellOutEmbryoList; } - } diff --git a/op-modules/op-wms/src/main/resources/mapper/wms/BaseEquipmentMapper.xml b/op-modules/op-wms/src/main/resources/mapper/wms/BaseEquipmentMapper.xml index cf87e858..73f685fc 100644 --- a/op-modules/op-wms/src/main/resources/mapper/wms/BaseEquipmentMapper.xml +++ b/op-modules/op-wms/src/main/resources/mapper/wms/BaseEquipmentMapper.xml @@ -710,4 +710,13 @@ and plan_type = 'maintenance' + +