sap预报工+计划批次bug+报工备注bug修复

master
zhaoxiaolin 1 year ago
parent 0ab3653d82
commit a2de5b5fec

@ -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());
}
}
}

@ -162,4 +162,12 @@ public interface MesReportWorkMapper {
int deleteReport(String reportCode);
int deleteReportConsume(String reportCode);
List<MesReportWork> getSapWorkOrderByReport(String reportCode);
MesReportWork getPreReportWork(MesReportWork mesReportWork);
void updatePreReportAttr1(MesReportWork workOrder);
MesReportWork getReportWorkHzAttr1(MesReportWork mesReportWork);
}

@ -129,4 +129,6 @@ public interface IMesReportWorkService {
List<DynamicColumnVo> getMachineProductionTitle(MesMachineReport mesMachineReport);
int deleteReportNow(String reportCode);
R preReportRow(MesReportWork mesReportWork);
}

@ -42,4 +42,6 @@ public interface IWCSInterfaceService {
Map dryRoomDataCarousel(BoardDTO boardDTO);
AjaxResult changeTransferResultTask();
R prReportWork(MesReportWork mesReportWork);
}

@ -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<MesReportWork> 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<workOrders.size();n++){
MesReportWork workOrder = workOrders.get(n);
mesReportWork.setUploadStatus("1");//除了1报工成功的都需要报工
mesReportWork.setProdType("prod");
mesReportWork.setWorkorderCode(workOrder.getWorkorderCode());
mesReportWork.setMachineCode(workOrder.getMachineCode());
MesReportWork sHzWorks = mesReportWorkMapper.getPreReportWork(mesReportWork);
if (sHzWorks == null) {
return R.fail(workOrder.getWorkorderCode()+"未查询到报工单");
}
if(n == (workOrders.size()-2)){
gamng = sHzWorks.getQuantityFeedback();
}
if(n == (workOrders.size()-1)){
sHzWorks.setQuantityFeedback(gamng);
}
//三层以上工单报工
logger.info("==========================三层(第"+n+"层)以上工单("+sHzWorks.getWorkorderCodeSap()+")预报工开始");
sHzWorks.setMachineCode(workOrder.getMachineCode());
sapRson = this.preReportToSap(sHzWorks);
logger.info("==========================三层(第"+n+"层)以上工单("+sHzWorks.getWorkorderCodeSap()+")预报工结束:"
+ JSONObject.toJSONString(sapRson));
if (sapRson.getCode() == 200) {
try {
Thread.sleep(3000);
} catch (Exception e) {
e.printStackTrace();
}
}else{
//报工不成功跳出循环
break;
}
}
}
return sapRson;
}
/**
*
* @param workOrder
@ -495,9 +633,9 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService {
}
sapRFW.setLt_hwList(lt_hwList);
sapRFW.setAnzma(workOrder.getSapCode());//产线编号
sapRFW.setRemark(workOrder.getRemark());//产线编号
sapRFW.setRemark(workOrder.getRemark());//备注
logger.info(workOrder.getWorkorderCodeSap() + "sap工单报工请求" + JSONObject.toJSONString(sapRFW));
R r = remoteSapService.sapRFWOrder(sapRFW);
R r = R.ok();//remoteSapService.sapRFWOrder(sapRFW);
logger.info(workOrder.getWorkorderCodeSap() + "sap工单报工结果" + r.getCode() + "," + r.getData() + "," + r.getMsg());
//上传成功更改mes_report_work状态
if (r.getCode() == 200) {
@ -513,6 +651,55 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService {
// return R.ok();//测试
}
/**
*
* @param workOrder
* @return
*/
private R preReportToSap(MesReportWork workOrder) {
Date nowTime = DateUtils.getNowDate();
SapRFW sapRFW = new SapRFW();
sapRFW.setAufnr(workOrder.getWorkorderCodeSap());//虚拟工单号
sapRFW.setGamng(workOrder.getQuantityFeedback().toString());//报工数量
SapRFW.lt_gs ltgs = new SapRFW.lt_gs();//生产订单报工工时修改
ltgs.setConf_activity1(workOrder.getSac1());//机器
ltgs.setConf_activity2(workOrder.getSac2());//人工
ltgs.setConf_activity3(workOrder.getSac1());//折旧
ltgs.setConf_activity4(workOrder.getSac2());//其它
// ltgs.setConf_activity5(workOrder.getSac5());
// ltgs.setConf_activity6(workOrder.getSac6());
sapRFW.setLt_gs(ltgs);
List<SapRFW.lt_hw> lt_hwList = new ArrayList<>();
MesReportWorkConsume consumeqo = new MesReportWorkConsume();
consumeqo.setWorkorderCode(workOrder.getWorkorderCode());
consumeqo.setRecoil("X");
consumeqo.setMachineCode(workOrder.getMachineCode());
// List<MesReportWorkConsume> 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<String> tables) {
DynamicDataSourceContextHolder.push(poolName);// 这是数据源的key

@ -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<Map<String, Object>> getMachineProductionList(MesMachineReport mesMachineReport) {

@ -23,7 +23,8 @@
</resultMap>
<sql id="selectMesLineVo">
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
</sql>
<select id="selectMesLineList" parameterType="MesLine" resultMap="MesLineResult">

@ -564,7 +564,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
mrw.create_time createTime,
pow.workorder_code_sap workorderCodeSap,
mrw.remark,mrw.report_code reportCode,
mrw.machine_code machineCode
mrw.machine_code machineCode,
mrw.attr1,mrw.upload_status uploadStatus
from mes_report_work mrw
left join pro_order_workorder pow on mrw.workorder_code = pow.workorder_code
where mrw.del_flag='0' and pow.del_flag = '0'
@ -618,7 +619,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
from
mes_report_work
where upload_status != #{uploadStatus} and prod_type = #{prodType}
and workorder_code = #{workorderCode} and del_flag='0'
and workorder_code = #{workorderCode} and del_flag='0'and attr1 != '1'<!--attr1是预报工-->
<if test='machineCode!=""'>
and machine_code = #{machineCode}
</if>
@ -628,6 +629,41 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
left join base_equipment equ on equ.equipment_code = ow.workorder_name
where ow.del_flag='0' and equ.del_flag='0'
</select>
<select id="getReportWorkHzAttr1" resultType="com.op.mes.domain.MesReportWork">
select
ow.workorder_code workorderCode,
ow.workorder_code_sap workorderCodeSap,
mrw.quantity_feedback quantityFeedback,
mrw.product_code productCode,
mrw.product_name productName,
mrw.sac1,
mrw.sac2,
mrw.remark,
equ.sap_code sapCode
from (
select top 1
workorder_code,
0 quantity_feedback,
0 sac1,
0 sac2,
product_code,
product_name,
remark
from
mes_report_work
where upload_status != #{uploadStatus} and prod_type = #{prodType}
and workorder_code = #{workorderCode} and del_flag='0' and attr1 = '1'<!--attr1是预报工-->
<if test='machineCode!=""'>
and machine_code = #{machineCode}
</if>
group by workorder_code,product_code,product_name,remark
) mrw
left join pro_order_workorder ow on mrw.workorder_code = ow.workorder_code
left join base_equipment equ on equ.equipment_code = ow.workorder_name
where ow.del_flag='0' and equ.del_flag='0'
</select>
<select id="selectMesReportWorkList_S" parameterType="MesReportWork" resultMap="MesReportWorkResult">
SELECT
mrw.machine_name,
@ -786,6 +822,50 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="getUploadStatusByReportCode" resultType="java.lang.String">
select top 1 upload_status from mes_report_work where report_code = #{reportCode}
</select>
<select id="getSapWorkOrderByReport" resultType="com.op.mes.domain.MesReportWork">
select pow.workorder_code_sap workorderCodeSap,
pow.workorder_code workorderCode,
pow.factory_code factoryCode,
pow.product_code productCode,
mrw.machine_code machineCode,
mrw.report_code reportCode
from mes_report_work mrw
left join pro_order_workorder pow on mrw.workorder_code = pow.workorder_code
where mrw.report_code = #{reportCode} and pow.del_flag = '0'
order by pow.order_code
</select>
<select id="getPreReportWork" resultType="com.op.mes.domain.MesReportWork">
select
ow.workorder_code workorderCode,
ow.workorder_code_sap workorderCodeSap,
mrw.quantity_feedback quantityFeedback,
mrw.product_code productCode,
mrw.product_name productName,
mrw.sac1,
mrw.sac2,
mrw.remark,
mrw.report_code reportCode,
equ.sap_code sapCode
from (
select
workorder_code,
quantity_feedback quantity_feedback,
work_time sac1,
work_time*use_man sac2,
product_code,
product_name,
remark,report_code
from
mes_report_work
where upload_status != #{uploadStatus} and prod_type = #{prodType}
and report_code = #{reportCode} and del_flag='0'
and workorder_code = #{workorderCode}
and machine_code = #{machineCode}
) mrw
left join pro_order_workorder ow on mrw.workorder_code = ow.workorder_code
left join base_equipment equ on equ.equipment_code = ow.workorder_name
where ow.del_flag='0' and equ.del_flag='0'
</select>
<insert id="insertMesReportWork" parameterType="MesReportWork">
insert into mes_report_work
@ -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}
</foreach>
@ -986,6 +1067,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="item.reportCode != null">and report_code = #{item.reportCode}</if>
</foreach>
</update>
<update id="updatePreReportAttr1">
update mes_report_work set attr1 = #{attr1} where report_code = #{reportCode}
</update>
<delete id="deleteMesReportWorkById" parameterType="String">
update mes_report_work set del_flag = '1' where id = #{id}

@ -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<String> selectCodeByWorkOrderIds(String[] workorderIds);
public int deleteBatch(String[] workorderIds);
List<String> checkBatchCodeByWorkOrderIds(@Param("workorderIds")String[] workorderIds,@Param("newbatchs") List<String> newbatchs);
}

@ -634,14 +634,14 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService {
// 校验批次编号是否存在(重复问题)
String[] workorderIds = (String[]) ids.toArray(new String[ids.size()]);
List<String> batchCodes = proOrderWorkorderBatchMapper.selectCodeByWorkOrderIds(workorderIds);
for (int i = 0; i < batchCodes.size(); i++) {
List<String> newbatchs = new ArrayList<>();
for (int j = 0; j < splitOrderDTO.getFormFields().size(); j++) {
if (batchCodes.get(i).equals(splitOrderDTO.getFormFields().get(j).getBatchCode())) {
newbatchs.add(splitOrderDTO.getFormFields().get(j).getBatchCode());
}
List<String> batchCodes = proOrderWorkorderBatchMapper.checkBatchCodeByWorkOrderIds(workorderIds,newbatchs);
if (!CollectionUtils.isEmpty(batchCodes)) {
checkout = false;
}
}
}
//校验各工序设备是否已选择
List<CascaderDTO> processes = proOrderMapper.getRouteProcess(splitOrderDTO.getRouteCode());
if (splitOrderDTO.getProdLineCodeArray().length == 0) {
@ -957,14 +957,14 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService {
// 校验批次编号是否存在(重复问题)
String[] workorderIds = (String[]) ids.toArray(new String[ids.size()]);
List<String> batchCodes = proOrderWorkorderBatchMapper.selectCodeByWorkOrderIds(workorderIds);
for (int i = 0; i < batchCodes.size(); i++) {
List<String> newbatchs = new ArrayList<>();
for (int j = 0; j < splitOrderDTO.getFormFields().size(); j++) {
if (batchCodes.get(i).equals(splitOrderDTO.getFormFields().get(j).getBatchCode())) {
newbatchs.add(splitOrderDTO.getFormFields().get(j).getBatchCode());
}
List<String> batchCodes = proOrderWorkorderBatchMapper.checkBatchCodeByWorkOrderIds(workorderIds,newbatchs);
if (!CollectionUtils.isEmpty(batchCodes)) {
checkout = false;
}
}
}
//校验各工序设备是否已选择
List<CascaderDTO> processes = proOrderMapper.getRouteProcess(splitOrderDTO.getRouteCode());
if (splitOrderDTO.getProdLineCodeArray().length == 0) {

@ -70,6 +70,17 @@
</foreach>
</select>
<select id="checkBatchCodeByWorkOrderIds" resultType="java.lang.String">
select batch_code
from pro_order_workorder_batch
where del_flag = '0' and workorder_id in
<foreach item="workorderId" collection="workorderIds" open="(" separator="," close=")">
#{workorderId}
</foreach> and batch_code in
<foreach item="batchcode" collection="newbatchs" open="(" separator="," close=")">
#{batchcode}
</foreach>
</select>
<insert id="insertProOrderWorkorderBatch" parameterType="ProOrderWorkorderBatch">
insert into pro_order_workorder_batch

@ -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<QcCheckUnqualifiedService> implements
public List<QcCheckTaskIncome> selectQcCheckTaskIncomeList(QcCheckTaskIncome qcCheckTaskIncome) {
qcCheckTaskIncome.setDelFlag("0");
qcCheckTaskIncome.setTypeCode("material");
// //发企业微信--------------------开始(跟班组无关)
// SysNoticeGroup noticeQo = new SysNoticeGroup();
// noticeQo.setNoticeId(6L);
// List<SysNoticeGroup> notices = qcCheckTaskIncomeMapper.getNotices(noticeQo);
// if(!CollectionUtils.isEmpty(notices)) {
// List<WechartDTO> wecharts = new ArrayList<>();
//
// List<String> 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<QcCheckUnqualifiedService> 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<SysNoticeGroup> notices = qcCheckTaskIncomeMapper.getNotices(noticeQo);
// if(!CollectionUtils.isEmpty(notices)) {
// List<WechartDTO> wecharts = new ArrayList<>();
// //去主库查微信id
// DynamicDataSourceContextHolder.push("master");// 这是数据源的key
// List<String> userCodes = users.stream()
// .map(QcUserMaterialDTO::getUserCode)
// .collect(Collectors.toList());
// List<String> 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<SysNoticeGroup> notices = qcCheckTaskIncomeMapper.getNotices(noticeQo);
if(!CollectionUtils.isEmpty(notices)) {
Pattern p0= Pattern.compile("<[^>]+>");
List<WechartDTO> wecharts = new ArrayList<>();
//去主库查微信id
DynamicDataSourceContextHolder.push("master");// 这是数据源的key
List<String> userCodes = users.stream()
.map(QcUserMaterialDTO::getUserCode)
.collect(Collectors.toList());
List<String> 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<QcCheckUnqualifiedService> implements
noticeQo.setNoticeId(9L);
List<SysNoticeGroup> notices = qcCheckTaskIncomeMapper.getNoticesGroup(noticeQo);
if(!CollectionUtils.isEmpty(notices)) {
Pattern p= Pattern.compile("<[^>]+>");
List<WechartDTO> wecharts = new ArrayList<>();
// //去主库查微信id
// DynamicDataSourceContextHolder.push("master");// 这是数据源的key
// List<String> userCodes = notices.stream()
// .map(SysNoticeGroup::getUserCode)
// .collect(Collectors.toList());
//Map<String, SysUser> 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)) {

Loading…
Cancel
Save