|
|
|
@ -10,10 +10,13 @@ import java.util.concurrent.ExecutorService;
|
|
|
|
|
import java.util.concurrent.LinkedBlockingQueue;
|
|
|
|
|
import java.util.concurrent.ThreadPoolExecutor;
|
|
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
|
import java.util.regex.Matcher;
|
|
|
|
|
import java.util.regex.Pattern;
|
|
|
|
|
|
|
|
|
|
import ch.qos.logback.core.net.SyslogOutputStream;
|
|
|
|
|
import cn.hutool.core.date.DateUnit;
|
|
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
|
|
import com.alibaba.fastjson2.JSONObject;
|
|
|
|
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
|
|
|
|
import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
|
|
|
|
|
import com.op.common.core.domain.R;
|
|
|
|
@ -27,8 +30,11 @@ import com.op.quality.domain.*;
|
|
|
|
|
import com.op.quality.mapper.*;
|
|
|
|
|
import com.op.quality.service.IQcCheckTaskDefectService;
|
|
|
|
|
import com.op.quality.service.IQcCheckTaskUserService;
|
|
|
|
|
import com.op.system.api.RemoteOpenService;
|
|
|
|
|
import com.op.system.api.RemoteUserService;
|
|
|
|
|
import com.op.system.api.domain.SysNoticeGroup;
|
|
|
|
|
import com.op.system.api.domain.SysUser;
|
|
|
|
|
import com.op.system.api.domain.dto.WechartDTO;
|
|
|
|
|
import com.op.system.api.domain.mes.ProOrderWorkorderDTO;
|
|
|
|
|
import com.op.system.api.domain.quality.QcUserMaterialDTO;
|
|
|
|
|
import org.slf4j.Logger;
|
|
|
|
@ -79,6 +85,10 @@ public class QcCheckTaskWarehousingServiceImpl implements IQcCheckTaskWarehousin
|
|
|
|
|
private RemoteUserService remoteUserService;
|
|
|
|
|
@Autowired
|
|
|
|
|
private QcCheckTaskProduceMapper qcCheckTaskProduceMapper;
|
|
|
|
|
@Autowired
|
|
|
|
|
private RemoteOpenService remoteOpenService;
|
|
|
|
|
|
|
|
|
|
private static Pattern p2= Pattern.compile("<[^>]+>");
|
|
|
|
|
/**
|
|
|
|
|
* 查询成品入库检验任务
|
|
|
|
|
*
|
|
|
|
@ -241,6 +251,7 @@ public class QcCheckTaskWarehousingServiceImpl implements IQcCheckTaskWarehousin
|
|
|
|
|
qcCheckTaskWarehousing.setSampleQuality(new BigDecimal(sampNum));
|
|
|
|
|
}
|
|
|
|
|
/**qc_check_task**/
|
|
|
|
|
qcCheckTaskWarehousing.setIncomeTime(DateUtils.getNowDate());//检验任务日期
|
|
|
|
|
int n = qcCheckTaskWarehousingMapper.insertQcCheckTaskWarehousing(qcCheckTaskWarehousing);
|
|
|
|
|
logger.info("qc_check_task:"+n+"成功");
|
|
|
|
|
|
|
|
|
@ -255,9 +266,36 @@ public class QcCheckTaskWarehousingServiceImpl implements IQcCheckTaskWarehousin
|
|
|
|
|
}
|
|
|
|
|
int s = qcCheckTaskDetailMapper.addBatch(items);
|
|
|
|
|
|
|
|
|
|
// /**pro_order_workorder**/
|
|
|
|
|
// qcCheckTaskWarehousing.setStatus("w6");
|
|
|
|
|
// qcCheckTaskWarehousingMapper.updateWorkOrderStauts(qcCheckTaskWarehousing);
|
|
|
|
|
//发企业微信--------------------开始(跟班组有关)
|
|
|
|
|
SysNoticeGroup noticeQo = new SysNoticeGroup();
|
|
|
|
|
if(qcCheckTaskWarehousing.getCheckType().equals("checkTypeCP")){
|
|
|
|
|
noticeQo.setNoticeId(7L);//成品检验
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
List<SysNoticeGroup> notices = qcCheckTaskIncomeMapper.getNoticesGroup(noticeQo);
|
|
|
|
|
if(!CollectionUtils.isEmpty(notices)) {
|
|
|
|
|
|
|
|
|
|
List<WechartDTO> wecharts = new ArrayList<>();
|
|
|
|
|
for (SysNoticeGroup noticedto : notices) {
|
|
|
|
|
WechartDTO wechart0 = new WechartDTO();
|
|
|
|
|
wechart0.setUserId(noticedto.getWxId());
|
|
|
|
|
String contentInfo = noticedto.getNoticeContent();
|
|
|
|
|
contentInfo = contentInfo.replace("${checkNo}", qcCheckTaskWarehousing.getCheckNo() + "\n");
|
|
|
|
|
Matcher matcher = p2.matcher(contentInfo);
|
|
|
|
|
contentInfo = matcher.replaceAll("");
|
|
|
|
|
wechart0.setText(contentInfo);
|
|
|
|
|
wecharts.add(wechart0);
|
|
|
|
|
}
|
|
|
|
|
logger.info("来料检验企业微信提醒请求:" + JSONObject.toJSONString(wecharts));
|
|
|
|
|
if (!CollectionUtils.isEmpty(wecharts)) {
|
|
|
|
|
new Thread(() -> {
|
|
|
|
|
AjaxResult wxresult = remoteOpenService.sendWeChartMessage(wecharts);
|
|
|
|
|
logger.info("来料检验企业微信提醒结果:" + JSONObject.toJSONString(wxresult));
|
|
|
|
|
|
|
|
|
|
}).start();
|
|
|
|
|
}
|
|
|
|
|
//发企业微信--------------------结束
|
|
|
|
|
}
|
|
|
|
|
logger.info("qc_check_task_detail:"+s+"成功");
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
@ -373,21 +411,15 @@ public class QcCheckTaskWarehousingServiceImpl implements IQcCheckTaskWarehousin
|
|
|
|
|
ProOrderWorkorderDTO qoWork = new ProOrderWorkorderDTO();
|
|
|
|
|
qoWork.setStatus("w3");
|
|
|
|
|
//报工的
|
|
|
|
|
List<QcCheckTaskProduce> w3works = qcCheckTaskProduceMapper.getOrderWorksW2(qoWork);
|
|
|
|
|
List<QcCheckTaskProduce> w3works = qcCheckTaskProduceMapper.getOrderWorksW3(qoWork);
|
|
|
|
|
for(QcCheckTaskProduce productTask:w3works){
|
|
|
|
|
QcCheckTaskWarehousing cpTask = new QcCheckTaskWarehousing();
|
|
|
|
|
productTask.setCheckType("checkTypeCP");//入库检验
|
|
|
|
|
productTask.setOrderNo(productTask.getWorkorderCode());
|
|
|
|
|
BeanUtils.copyProperties(productTask,cpTask);
|
|
|
|
|
|
|
|
|
|
//是否已经存在入库检验
|
|
|
|
|
QcCheckTaskProduce cpTask0 = qcCheckTaskProduceMapper.getLastXJTask(productTask);
|
|
|
|
|
if(cpTask0 != null){
|
|
|
|
|
logger.info("++++++++++++入库检验任务生成:已经存在++++++++++++++");
|
|
|
|
|
}else{
|
|
|
|
|
int m = insertQcCheckTaskWarehousing(cpTask);
|
|
|
|
|
logger.info("++++++++++++入库检验任务生成" + m + "++++++++++++++");
|
|
|
|
|
}
|
|
|
|
|
int m = insertQcCheckTaskWarehousing(cpTask);
|
|
|
|
|
logger.info("++++++++++++入库检验任务生成" + m + "++++++++++++++");
|
|
|
|
|
}
|
|
|
|
|
logger.info("++++++++++++" + poolName + "++++入库检验巡检结束++++++++++");
|
|
|
|
|
}
|
|
|
|
|