diff --git a/op-modules/op-mes/src/main/java/com/op/mes/controller/MesReportWorkController.java b/op-modules/op-mes/src/main/java/com/op/mes/controller/MesReportWorkController.java index 8803c2186..ff0da3722 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/controller/MesReportWorkController.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/controller/MesReportWorkController.java @@ -562,6 +562,17 @@ public class MesReportWorkController extends BaseController { dynamicRoutingDataSource.removeDataSource(dataSourceProperty.getPoolName()); return R.ok(); } + + /**批次预报工数据**/ + @PostMapping("/preReportRow") + public AjaxResult preReportRow(@RequestBody MesReportWork mesReportWork) { + R r = mesReportWorkService.preReportRow(mesReportWork); + if(r.getCode()==200){ + return AjaxResult.success(); + }else{ + return AjaxResult.error("报工失败:"+r.getMsg()); + } + } } 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 09e9bdccf..20f16bdb4 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 @@ -162,4 +162,12 @@ public interface MesReportWorkMapper { int deleteReport(String reportCode); int deleteReportConsume(String reportCode); + + List getSapWorkOrderByReport(String reportCode); + + MesReportWork getPreReportWork(MesReportWork mesReportWork); + + void updatePreReportAttr1(MesReportWork workOrder); + + MesReportWork getReportWorkHzAttr1(MesReportWork mesReportWork); } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/IMesReportWorkService.java b/op-modules/op-mes/src/main/java/com/op/mes/service/IMesReportWorkService.java index c8a52065c..f2992d4a9 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/IMesReportWorkService.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/IMesReportWorkService.java @@ -129,4 +129,6 @@ public interface IMesReportWorkService { List getMachineProductionTitle(MesMachineReport mesMachineReport); int deleteReportNow(String reportCode); + + R preReportRow(MesReportWork mesReportWork); } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/IWCSInterfaceService.java b/op-modules/op-mes/src/main/java/com/op/mes/service/IWCSInterfaceService.java index 984a3cae3..214cee3cd 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/IWCSInterfaceService.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/IWCSInterfaceService.java @@ -42,4 +42,6 @@ public interface IWCSInterfaceService { Map dryRoomDataCarousel(BoardDTO boardDTO); AjaxResult changeTransferResultTask(); + + R prReportWork(MesReportWork mesReportWork); } 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 9a4e54364..b105e0d3e 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 @@ -357,6 +357,11 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { mesReportWork.setWorkorderCode(workOrders.get(0).getWorkorderCode()); mesReportWork.setMachineCode(mesReportWork.getMachineCode()); MesReportWork sHzWorks = mesReportWorkMapper.getReportWorkHz(mesReportWork); + + if(sHzWorks==null){//再去查预报工的一条数,带出基本数据,其它全部赋值0 + sHzWorks = mesReportWorkMapper.getReportWorkHzAttr1(mesReportWork); + } + if(sHzWorks==null){ return R.fail("未查询到一层报工单"); } @@ -380,6 +385,11 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { mesReportWork.setWorkorderCode(workOrders.get(0).getWorkorderCode()); mesReportWork.setMachineCode(mesReportWork.getMachineCode()); MesReportWork sHzWorks = mesReportWorkMapper.getReportWorkHz(mesReportWork); + + if(sHzWorks==null){//再去查预报工的一条数,带出基本数据,其它全部赋值0 + sHzWorks = mesReportWorkMapper.getReportWorkHzAttr1(mesReportWork); + } + if(sHzWorks==null){ return R.fail("未查询到子报工单"); } @@ -394,6 +404,11 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { mesReportWork.setWorkorderCode(workOrders.get(1).getWorkorderCode()); mesReportWork.setMachineCode(mesReportWork.getMachineCode()); MesReportWork pHzWork = mesReportWorkMapper.getReportWorkHz(mesReportWork); + + if(pHzWork==null){//再去查预报工的一条数,带出基本数据,其它全部赋值0 + pHzWork = mesReportWorkMapper.getReportWorkHzAttr1(mesReportWork); + } + if(pHzWork==null){ return R.fail("未查询到母报工单"); } @@ -428,6 +443,11 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { mesReportWork.setWorkorderCode(workOrder.getWorkorderCode()); mesReportWork.setMachineCode(mesReportWork.getMachineCode()); MesReportWork sHzWorks = mesReportWorkMapper.getReportWorkHz(mesReportWork); + + if(sHzWorks==null){//再去查预报工的一条数,带出基本数据,其它全部赋值0 + sHzWorks = mesReportWorkMapper.getReportWorkHzAttr1(mesReportWork); + } + if (sHzWorks == null) { return R.fail(workOrder.getWorkorderCode()+"未查询到报工单"); } @@ -458,6 +478,124 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { return sapRson; } + @Override + public R prReportWork(MesReportWork mesReportWork) { + + //根据belong_work_order找到sap工单(子子母) + List workOrders = mesReportWorkMapper.getSapWorkOrderByReport(mesReportWork.getReportCode()); + if (CollectionUtils.isEmpty(workOrders)) { + return R.fail("子母工单信息缺失"); + } + + R sapRson = null; + if(workOrders.size()==1){ + /**(一层报工)工单报工**/ + mesReportWork.setUploadStatus("1");//除了1报工成功的,都需要报工 + mesReportWork.setProdType("prod"); + mesReportWork.setWorkorderCode(workOrders.get(0).getWorkorderCode()); + mesReportWork.setMachineCode(workOrders.get(0).getMachineCode()); + MesReportWork sHzWorks = mesReportWorkMapper.getPreReportWork(mesReportWork); + if(sHzWorks==null){ + return R.fail("未查询到一层报工单"); + } + //查询base_product的report_rate//单层项向sap报工的数量=上位机报工数量*报工汇率 + BigDecimal reportRate = mesReportWorkMapper.getReportRate(workOrders.get(0).getProductCode()); + if(reportRate != null){ + BigDecimal newQuantity = sHzWorks.getQuantityFeedback().multiply(reportRate); + sHzWorks.setQuantityFeedback(newQuantity); + } + //机器=sum(工时数) 【设备开机时间】 Sac1 + //人工 = sum(每批的工时数*每批用人数) Sac2 + //子工单报工 + logger.info("==========================一层工单预报工开始"); + sHzWorks.setMachineCode(workOrders.get(0).getMachineCode()); + sapRson = this.preReportToSap(sHzWorks); + logger.info("==========================一层工单预报工结束:"+JSONObject.toJSONString(sapRson)); + }else if(workOrders.size()==2){ + /**(两层报工)子工单先报工,然后母工单报工**/ + mesReportWork.setUploadStatus("1");//除了1报工成功的,都需要报工 + mesReportWork.setProdType("prod"); + mesReportWork.setWorkorderCode(workOrders.get(0).getWorkorderCode()); + mesReportWork.setMachineCode(workOrders.get(0).getMachineCode()); + MesReportWork sHzWorks = mesReportWorkMapper.getPreReportWork(mesReportWork); + if(sHzWorks==null){ + return R.fail("未查询到子报工单"); + } + + //子工单报工 + logger.info("==========================子工单预报工开始"); + sHzWorks.setMachineCode(workOrders.get(0).getMachineCode()); + sapRson = this.preReportToSap(sHzWorks); + logger.info("==========================子工单预报工结束:"+JSONObject.toJSONString(sapRson)); + if(sapRson.getCode()== 200){ + //一定是子单报工成功返回后,再母单报工 + mesReportWork.setWorkorderCode(workOrders.get(1).getWorkorderCode()); + mesReportWork.setMachineCode(workOrders.get(1).getMachineCode()); + MesReportWork pHzWork = mesReportWorkMapper.getPreReportWork(mesReportWork); + if(pHzWork==null){ + return R.fail("未查询到母报工单"); + } + try { + Thread.sleep(3000); + }catch (Exception e){ + e.printStackTrace(); + } + //母工单报工 + logger.info("==========================母工单预报工开始"); + //查询base_product的report_rate//箱子-大盒-小盒 + BigDecimal reportRate = mesReportWorkMapper.getReportRate(workOrders.get(1).getProductCode()); + if(reportRate != null){ + BigDecimal newQuantity = sHzWorks.getQuantityFeedback().divide(reportRate,2, RoundingMode.HALF_UP); + pHzWork.setQuantityFeedback(newQuantity); + }else{ + pHzWork.setQuantityFeedback(sHzWorks.getQuantityFeedback()); + } + pHzWork.setMachineCode(mesReportWork.getMachineCode()); + //pHzWork.setSac2("4");//母单报工固定值(上位机插入数据时候默认4) + R sapR = this.preReportToSap(pHzWork); + logger.info("==========================母工单预报工结束"+JSONObject.toJSONString(sapR)); + return sapR; + } + + }else if(workOrders.size()>=3){ + BigDecimal gamng = null; + for(int n=0;n lt_hwList = new ArrayList<>(); + MesReportWorkConsume consumeqo = new MesReportWorkConsume(); + consumeqo.setWorkorderCode(workOrder.getWorkorderCode()); + consumeqo.setRecoil("X"); + consumeqo.setMachineCode(workOrder.getMachineCode()); +// List consumes = mesReportWorkConsumeMapper.getSumConsumeList(consumeqo); +// if (!CollectionUtils.isEmpty(consumes)) { +// for (MesReportWorkConsume consume : consumes) { +// SapRFW.lt_hw lthw = new SapRFW.lt_hw();//MES生产订单报工货物移动修改 +// lthw.setEntry_qnt(consume.getQuantity() + "");//数量 +// lthw.setMaterial(consume.getMaterialCode());//物料编码 +// lt_hwList.add(lthw); +// } +// } else { +// logger.info(workOrder.getWorkorderCodeSap() + "sap工单报工:工单" + workOrder.getWorkorderCode() + "mes_report_work_consume没有数据"); +// return R.fail("mes_report_work_consume没有数据"); +// } + sapRFW.setLt_hwList(lt_hwList); + sapRFW.setAnzma(workOrder.getSapCode());//产线编号 + sapRFW.setRemark(workOrder.getRemark());//备注 + logger.info(workOrder.getWorkorderCodeSap() + "sap工单预报工请求:" + JSONObject.toJSONString(sapRFW)); + R r = remoteSapService.sapRFWOrder(sapRFW); + logger.info(workOrder.getWorkorderCodeSap() + "sap工单预报工结果:" + r.getCode() + "," + r.getData() + "," + r.getMsg()); + //上传成功,更改mes_report_work--attr1状态 + if (r.getCode() == 200) { + workOrder.setAttr1("1"); + } + mesReportWorkMapper.updatePreReportAttr1(workOrder); + return r; + } + public void dateBKFunc(String poolName, List tables) { DynamicDataSourceContextHolder.push(poolName);// 这是数据源的key diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkServiceImpl.java index b0279ef12..5493cc9f9 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkServiceImpl.java @@ -10,6 +10,7 @@ import java.util.*; import java.util.stream.Collectors; import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSONObject; import com.baomidou.dynamic.datasource.annotation.DS; import com.google.common.collect.Lists; import com.op.common.core.domain.R; @@ -256,9 +257,9 @@ public class MesReportWorkServiceImpl implements IMesReportWorkService { mesReportWork.setUpdateTime(nowTime); mesReportWork.setUpdateBy(updateBy); } - //会更新好几次//着急发布后面再说 - mesReportWorkMapper.updateReportRemark(mesReportWorks); + //会更新好几次//着急发布后面再说 + //mesReportWorkMapper.updateReportRemark(mesReportWorks); return mesReportWorkMapper.submitReportPS(mesReportWorks); } @@ -588,6 +589,14 @@ public class MesReportWorkServiceImpl implements IMesReportWorkService { return reportNum; } + @Override + @DS("#header.poolName") + public R preReportRow(MesReportWork mesReportWork) { + mesReportWork.setFactoryCode(ServletUtils.getRequest().getHeader("PoolName")); + R s = iWCSInterfaceService.prReportWork(mesReportWork); + return s; + } + @Override @DS("#header.poolName") public List> getMachineProductionList(MesMachineReport mesMachineReport) { 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 4f75e67d9..8d38de3be 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 @@ -23,7 +23,8 @@ - select id, line_code, line_name, use_man, efficiency, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time, factory_code, del_flag from mes_line + select id, line_code, line_name, use_man, efficiency, attr1, attr2, attr3, attr4, create_by, + create_time, update_by, update_time, factory_code, del_flag from mes_line + + + select top 1 upload_status from mes_report_work where report_code = #{reportCode} + + - + insert into mes_report_work id, @@ -961,7 +1041,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" work_time = #{item.workTime}, use_man = #{item.useMan}, update_by = #{item.updateBy}, - update_time = #{item.updateTime} + update_time = #{item.updateTime}, + remark = #{item.remark} where id = #{item.id} @@ -986,6 +1067,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and report_code = #{item.reportCode} + + update mes_report_work set attr1 = #{attr1} where report_code = #{reportCode} + update mes_report_work set del_flag = '1' where id = #{id} diff --git a/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderWorkorderBatchMapper.java b/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderWorkorderBatchMapper.java index e2632c189..90a0cca42 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderWorkorderBatchMapper.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderWorkorderBatchMapper.java @@ -3,6 +3,7 @@ package com.op.plan.mapper; import com.op.plan.domain.Batch; import com.op.plan.domain.ProOrderWorkorderBatch; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -79,4 +80,6 @@ public interface ProOrderWorkorderBatchMapper { List selectCodeByWorkOrderIds(String[] workorderIds); public int deleteBatch(String[] workorderIds); + + List checkBatchCodeByWorkOrderIds(@Param("workorderIds")String[] workorderIds,@Param("newbatchs") List newbatchs); } 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 5eb59c918..fc98bf43b 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 @@ -634,13 +634,13 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { // 校验批次编号是否存在(重复问题) String[] workorderIds = (String[]) ids.toArray(new String[ids.size()]); - List batchCodes = proOrderWorkorderBatchMapper.selectCodeByWorkOrderIds(workorderIds); - for (int i = 0; i < batchCodes.size(); i++) { - for (int j = 0; j < splitOrderDTO.getFormFields().size(); j++) { - if (batchCodes.get(i).equals(splitOrderDTO.getFormFields().get(j).getBatchCode())) { - checkout = false; - } - } + List newbatchs = new ArrayList<>(); + for (int j = 0; j < splitOrderDTO.getFormFields().size(); j++) { + newbatchs.add(splitOrderDTO.getFormFields().get(j).getBatchCode()); + } + List batchCodes = proOrderWorkorderBatchMapper.checkBatchCodeByWorkOrderIds(workorderIds,newbatchs); + if (!CollectionUtils.isEmpty(batchCodes)) { + checkout = false; } //校验各工序设备是否已选择 List processes = proOrderMapper.getRouteProcess(splitOrderDTO.getRouteCode()); @@ -957,13 +957,13 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { // 校验批次编号是否存在(重复问题) String[] workorderIds = (String[]) ids.toArray(new String[ids.size()]); - List batchCodes = proOrderWorkorderBatchMapper.selectCodeByWorkOrderIds(workorderIds); - for (int i = 0; i < batchCodes.size(); i++) { - for (int j = 0; j < splitOrderDTO.getFormFields().size(); j++) { - if (batchCodes.get(i).equals(splitOrderDTO.getFormFields().get(j).getBatchCode())) { - checkout = false; - } - } + List newbatchs = new ArrayList<>(); + for (int j = 0; j < splitOrderDTO.getFormFields().size(); j++) { + newbatchs.add(splitOrderDTO.getFormFields().get(j).getBatchCode()); + } + List batchCodes = proOrderWorkorderBatchMapper.checkBatchCodeByWorkOrderIds(workorderIds,newbatchs); + if (!CollectionUtils.isEmpty(batchCodes)) { + checkout = false; } //校验各工序设备是否已选择 List processes = proOrderMapper.getRouteProcess(splitOrderDTO.getRouteCode()); diff --git a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderBatchMapper.xml b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderBatchMapper.xml index 6b01fb328..239cd2c66 100644 --- a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderBatchMapper.xml +++ b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderBatchMapper.xml @@ -70,6 +70,17 @@ + insert into pro_order_workorder_batch 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 0a0c225ee..0137eb850 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 @@ -2,6 +2,8 @@ package com.op.quality.service.impl; import java.math.BigDecimal; import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import java.util.stream.Collectors; import com.alibaba.fastjson2.JSONObject; @@ -127,32 +129,6 @@ public class QcCheckTaskIncomeServiceImpl implements public List selectQcCheckTaskIncomeList(QcCheckTaskIncome qcCheckTaskIncome) { qcCheckTaskIncome.setDelFlag("0"); qcCheckTaskIncome.setTypeCode("material"); - -// //发企业微信--------------------开始(跟班组无关) -// SysNoticeGroup noticeQo = new SysNoticeGroup(); -// noticeQo.setNoticeId(6L); -// List notices = qcCheckTaskIncomeMapper.getNotices(noticeQo); -// if(!CollectionUtils.isEmpty(notices)) { -// List wecharts = new ArrayList<>(); -// -// List wxids = new ArrayList<>(); -// wxids.add("MES002"); -// for (String wxid : wxids) { -// WechartDTO wechart0 = new WechartDTO(); -// wechart0.setUserId(wxid); -// wechart0.setText("您好,有一条新的来料检验任务,需要您登陆手持进行处理。"); -// wecharts.add(wechart0); -// } -// logger.info("来料检验企业微信提醒请求:" + JSONObject.toJSONString(wecharts)); -// if (!CollectionUtils.isEmpty(wecharts)) { -// new Thread(() -> { -// AjaxResult result = remoteOpenService.sendWeChartMessage(wecharts); -// logger.info("来料检验企业微信提醒结果:" + JSONObject.toJSONString(result)); -// -// }).start(); -// } -// //发企业微信--------------------结束 -// } return qcCheckTaskIncomeMapper.selectQcCheckTaskIncomeList(qcCheckTaskIncome); } @@ -295,38 +271,43 @@ public class QcCheckTaskIncomeServiceImpl implements item.setCreateTime(nowDate); item.setCreateBy(createBy); item.setFactoryCode(factoryCode); - item.setStatus("N"); + item.setStatus("Y"); } int s = qcCheckTaskDetailMapper.addBatch(items); -// //发企业微信--------------------开始(跟班组无关) -// SysNoticeGroup noticeQo = new SysNoticeGroup(); -// noticeQo.setNoticeId(6L); -// List notices = qcCheckTaskIncomeMapper.getNotices(noticeQo); -// if(!CollectionUtils.isEmpty(notices)) { -// List wecharts = new ArrayList<>(); -// //去主库查微信id -// DynamicDataSourceContextHolder.push("master");// 这是数据源的key -// List userCodes = users.stream() -// .map(QcUserMaterialDTO::getUserCode) -// .collect(Collectors.toList()); -// List wxids = qcCheckTaskIncomeMapper.getWxId(userCodes); -// for (String wxid : wxids) { -// WechartDTO wechart0 = new WechartDTO(); -// wechart0.setUserId(wxid); -// wechart0.setText(notices.get(0).getNoticeContent()); -// wecharts.add(wechart0); -// } -// logger.info("来料检验企业微信提醒请求:" + JSONObject.toJSONString(wecharts)); -// if (!CollectionUtils.isEmpty(wecharts)) { -// new Thread(() -> { -// AjaxResult result = remoteOpenService.sendWeChartMessage(wecharts); -// logger.info("来料检验企业微信提醒结果:" + JSONObject.toJSONString(result)); -// -// }).start(); -// } -// //发企业微信--------------------结束 -// } + //发企业微信--------------------开始(跟班组无关) + SysNoticeGroup noticeQo = new SysNoticeGroup(); + noticeQo.setNoticeId(6L); + List notices = qcCheckTaskIncomeMapper.getNotices(noticeQo); + if(!CollectionUtils.isEmpty(notices)) { + Pattern p0= Pattern.compile("<[^>]+>"); + List wecharts = new ArrayList<>(); + //去主库查微信id + DynamicDataSourceContextHolder.push("master");// 这是数据源的key + List userCodes = users.stream() + .map(QcUserMaterialDTO::getUserCode) + .collect(Collectors.toList()); + List wxids = qcCheckTaskIncomeMapper.getWxId(userCodes); + for (String wxid : wxids) { + WechartDTO wechart0 = new WechartDTO(); + wechart0.setUserId(wxid); + String contentInfo = notices.get(0).getNoticeContent(); + contentInfo = contentInfo.replace("${checkNo}", qcCheckTaskIncome.getCheckNo()+"\n"); + Matcher m = p0.matcher(contentInfo); + contentInfo = m.replaceAll(""); + wechart0.setText(contentInfo); + wecharts.add(wechart0); + } + logger.info("来料检验企业微信提醒请求:" + JSONObject.toJSONString(wecharts)); + if (!CollectionUtils.isEmpty(wecharts)) { + new Thread(() -> { + AjaxResult result = remoteOpenService.sendWeChartMessage(wecharts); + logger.info("来料检验企业微信提醒结果:" + JSONObject.toJSONString(result)); + + }).start(); + } + //发企业微信--------------------结束 + } return s; } @@ -849,28 +830,21 @@ public class QcCheckTaskIncomeServiceImpl implements noticeQo.setNoticeId(9L); List notices = qcCheckTaskIncomeMapper.getNoticesGroup(noticeQo); if(!CollectionUtils.isEmpty(notices)) { + Pattern p= Pattern.compile("<[^>]+>"); List wecharts = new ArrayList<>(); -// //去主库查微信id -// DynamicDataSourceContextHolder.push("master");// 这是数据源的key -// List userCodes = notices.stream() -// .map(SysNoticeGroup::getUserCode) -// .collect(Collectors.toList()); - //Map wxidsMap = qcCheckTaskIncomeMapper.getWxIdMap(userCodes); for (SysNoticeGroup noticedto : notices) { -// SysUser sysUser = wxidsMap.get(noticedto.getUserCode()); -// if (sysUser != null) { WechartDTO wechart0 = new WechartDTO(); wechart0.setUserId(noticedto.getWxId()); String contentInfo = noticedto.getNoticeContent(); - contentInfo = contentInfo.replace("${materialCode}", qcCheckTaskIncome.getMaterialCode()) - .replace("${materialName}", qcCheckTaskIncome.getMaterialName()) - //.replace("${incomeBatchNo}", qcCheckTaskIncome.getIncomeBatchNo()) - //.replace("${orderNo}", qcCheckTaskIncome.getOrderNo()) - ; + contentInfo = contentInfo.replace("${materialCode}", qcCheckTaskIncome.getMaterialCode()+"\n") + .replace("${materialName}", qcCheckTaskIncome.getMaterialName()+"\n") + .replace("${checkNo}", qcCheckTaskIncome.getCheckNo()+"\n") + .replace("${supplierName}", qcCheckTaskIncome.getSupplierName()+"\n") + .replace("${quality}", qcCheckTaskIncome.getQuality()+"\n"); + Matcher m = p.matcher(contentInfo); + contentInfo = m.replaceAll(""); wechart0.setText(contentInfo); wecharts.add(wechart0); - //} - } logger.info("来料检验企业微信提醒请求:" + JSONObject.toJSONString(wecharts)); if (!CollectionUtils.isEmpty(wecharts)) {