diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquRepairOrderMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquRepairOrderMapper.xml index 83287198..40c7bc48 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquRepairOrderMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquRepairOrderMapper.xml @@ -352,7 +352,7 @@ from sys_notice_group sng left join sys_notice sn on sng.notice_id = sn.notice_id left join base_team_user btu on sng.group_code = btu.team_code - where sng.notice_id = #{noticeId} + where sng.notice_id = #{noticeId} and sng.del_flag = '0' diff --git a/op-modules/op-open/src/main/java/com/op/open/controller/OpenController.java b/op-modules/op-open/src/main/java/com/op/open/controller/OpenController.java index bab4d908..d413ab74 100644 --- a/op-modules/op-open/src/main/java/com/op/open/controller/OpenController.java +++ b/op-modules/op-open/src/main/java/com/op/open/controller/OpenController.java @@ -92,7 +92,7 @@ public class OpenController extends BaseController { } /** - * 创建生产过程(烘房 首检)检验 + * 创建生产过程(首检)检验 */ @PostMapping(value = "/createCheckProduceTask") public AjaxResult createCheckProduceTask(@RequestBody QcCheckTaskProduceDTO qcCheckTaskProduce) { @@ -116,6 +116,34 @@ public class OpenController extends BaseController { return toAjax(openService.insertQcCheckTaskProduce(qcCheckTaskProduce)); } + /** + * 创建批次成品检验 + */ + @PostMapping(value = "/createCheckProductTask") + public AjaxResult createCheckProductTask(@RequestBody QcCheckTaskProduceDTO qcCheckTaskProduce) { + + if (StringUtils.isBlank(qcCheckTaskProduce.getOrderNo())) { + return error("[orderNo]不能为空"); + } + if (StringUtils.isBlank(qcCheckTaskProduce.getIncomeBatchNo())) { + return error("[incomeBatchNo]不能为空"); + } + if (StringUtils.isBlank(qcCheckTaskProduce.getMaterialName())) { + return error("[materialName]不能为空"); + } + if (StringUtils.isBlank(qcCheckTaskProduce.getMaterialCode())) { + return error("[materialCode]不能为空"); + } + if (StringUtils.isBlank(qcCheckTaskProduce.getCheckType())) { + return error("[checkType]不能为空"); + } + if (StringUtils.isBlank(qcCheckTaskProduce.getFactoryCode())) { + return error("[factoryCode]不能为空"); + } + //添加检测任务 + return toAjax(openService.insertQcCheckTaskProduce(qcCheckTaskProduce)); + } + /** * ===============ZL0010-来料检验不合格控制流程提交 :"workflowId": 26235============= *

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 fa441c9a..d73b7a56 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 @@ -91,5 +91,7 @@ public interface OpenMapper { List getNoticesGroup(SysNoticeGroup noticeQo); EquEquipmentDTO selectEquipmentDetailByEquipmentCode(String equipmentCode); + + List getNotices(SysNoticeGroup noticeQo); } 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 cd0fdf20..4d49b5cc 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 @@ -75,8 +75,7 @@ public class OpenServiceImpl implements OpenService { @Autowired private OpenMapper openMapper; - @Autowired - private RemoteOpenService remoteOpenService; + private static Pattern p2= Pattern.compile("<[^>]+>"); /** * 下一工序机台集合获取 @@ -373,7 +372,7 @@ public class OpenServiceImpl implements OpenService { logger.info("上位机报修企业微信提醒请求:" + JSONObject.toJSONString(wecharts)); if (!CollectionUtils.isEmpty(wecharts)) { new Thread(() -> { - AjaxResult wxresult = remoteOpenService.sendWeChartMessage(wecharts); + AjaxResult wxresult = this.sendWeChartMessage(wecharts); logger.info("上位机报修企业微信提醒结果:" + JSONObject.toJSONString(wxresult)); }).start(); @@ -391,7 +390,7 @@ public class OpenServiceImpl implements OpenService { // 1分钟不允许存在两条 Date lastData = openMapper.getLastTask(qcCheckTaskProduce); if(this.oneMinHas(lastData)){ - logger.info("【重复创建首检任务】orderNo:"+qcCheckTaskProduce.getOrderNo()+";"+"incomeBatchNo:"+qcCheckTaskProduce.getIncomeBatchNo()); + logger.info("【重复创建任务】orderNo:"+qcCheckTaskProduce.getOrderNo()+";"+"incomeBatchNo:"+qcCheckTaskProduce.getIncomeBatchNo()); return 0; } @@ -491,6 +490,37 @@ public class OpenServiceImpl implements OpenService { } int n = openMapper.addBatch(items); logger.info(qcCheckTaskProduce.getOrderNo()+":qc_check_task_detail新增" + n + "成功"); + + //发企业微信--------------------开始(跟班组有关) + SysNoticeGroup noticeQo = new SysNoticeGroup(); + if(qcCheckTaskProduce.getCheckType().equals("checkTypeCPPC")){ + noticeQo.setNoticeId(12L);//批次成品检验 + } + + List notices = openMapper.getNoticesGroup(noticeQo); + if(!CollectionUtils.isEmpty(notices)) { + + List wecharts = new ArrayList<>(); + for (SysNoticeGroup noticedto : notices) { + WechartDTO wechart0 = new WechartDTO(); + wechart0.setUserId(noticedto.getWxId()); + String contentInfo = noticedto.getNoticeContent(); + contentInfo = contentInfo.replace("${checkNo}", qcCheckTaskProduce.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 = this.sendWeChartMessage(wecharts); + logger.info("来料检验企业微信提醒结果:" + JSONObject.toJSONString(wxresult)); + + }).start(); + } + //发企业微信--------------------结束 + } return n; } 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 97d1f036..c6e8efcb 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 @@ -396,7 +396,7 @@ from sys_notice_group sng left join sys_notice sn on sng.notice_id = sn.notice_id left join base_team_user btu on sng.group_code = btu.team_code - where sng.notice_id = #{noticeId} + where sng.notice_id = #{noticeId} and sng.del_flag = '0' + diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskWarehousingController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskWarehousingController.java index 25462d04..213ea450 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskWarehousingController.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskWarehousingController.java @@ -157,7 +157,7 @@ public class QcCheckTaskWarehousingController extends BaseController { } /** - * 生产过程检验:巡检任务生产 + * 成品检验:成品检验任务 **/ @PostMapping("/createCPBatchTask") public R createCPBatchTask() { diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTypeProjectController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTypeProjectController.java index 0d9cd041..fbbf3fdc 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTypeProjectController.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTypeProjectController.java @@ -121,10 +121,9 @@ public class QcCheckTypeProjectController extends BaseController { return toAjax(qcCheckTypeProjectService.submitProjects(typeProjects)); } - //获取方案下拉 + //获取方案分页 @GetMapping("/getProjectOptions") public List getProjectOptions(QcCheckProject qcCheckProject) { - startPage(); List list = qcCheckTypeProjectService.getProjectOptions(qcCheckProject); return list; } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskWarehousing.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskWarehousing.java index d1497c14..04c3d0a1 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskWarehousing.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskWarehousing.java @@ -177,6 +177,23 @@ public class QcCheckTaskWarehousing extends BaseEntity { private BigDecimal bNoOkquality; private BigDecimal cNoOkquality; private String workorderCode; + private String checkName; + + public String getWorkorderCode() { + return workorderCode; + } + + public void setWorkorderCode(String workorderCode) { + this.workorderCode = workorderCode; + } + + public String getCheckName() { + return checkName; + } + + public void setCheckName(String checkName) { + this.checkName = checkName; + } public BigDecimal getaNoOkquality() { return aNoOkquality; diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskProduceMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskProduceMapper.java index 0fd8942b..fa317379 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskProduceMapper.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskProduceMapper.java @@ -86,4 +86,6 @@ public interface QcCheckTaskProduceMapper { public List getOrderWorksW2(ProOrderWorkorderDTO qoWork); public QcCheckTaskProduce getLastXJTask(QcCheckTaskProduce productTask); + + public List getOrderWorksW3(ProOrderWorkorderDTO qoWork); } 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 c6ec10d6..f5b66fd4 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 @@ -96,6 +96,8 @@ public class QcCheckTaskIncomeServiceImpl implements @Autowired private QcCheckTaskUserMapper qcCheckTaskUserMapper; + private static Pattern p2= Pattern.compile("<[^>]+>"); + /** * 查询来料检验 * @@ -284,7 +286,7 @@ public class QcCheckTaskIncomeServiceImpl implements 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 @@ -297,7 +299,7 @@ public class QcCheckTaskIncomeServiceImpl implements wechart0.setUserId(wxid); String contentInfo = notices.get(0).getNoticeContent(); contentInfo = contentInfo.replace("${checkNo}", qcCheckTaskIncome.getCheckNo()+"\n"); - Matcher m = p0.matcher(contentInfo); + Matcher m = p2.matcher(contentInfo); contentInfo = m.replaceAll(""); wechart0.setText(contentInfo); wecharts.add(wechart0); @@ -840,7 +842,6 @@ public class QcCheckTaskIncomeServiceImpl implements noticeQo.setNoticeId(9L); List notices = qcCheckTaskIncomeMapper.getNoticesGroup(noticeQo); if(!CollectionUtils.isEmpty(notices)) { - Pattern p= Pattern.compile("<[^>]+>"); List wecharts = new ArrayList<>(); for (SysNoticeGroup noticedto : notices) { WechartDTO wechart0 = new WechartDTO(); @@ -851,7 +852,7 @@ public class QcCheckTaskIncomeServiceImpl implements .replace("${checkNo}", qcCheckTaskIncome.getCheckNo()+"\n") .replace("${supplierName}", qcCheckTaskIncome.getSupplierName()+"\n") .replace("${quality}", qcCheckTaskIncome.getQuality()+"\n"); - Matcher m = p.matcher(contentInfo); + Matcher m = p2.matcher(contentInfo); contentInfo = m.replaceAll(""); wechart0.setText(contentInfo); wecharts.add(wechart0); diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskWarehousingServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskWarehousingServiceImpl.java index 1ed7bd5e..bbd458c1 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskWarehousingServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskWarehousingServiceImpl.java @@ -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 notices = qcCheckTaskIncomeMapper.getNoticesGroup(noticeQo); + if(!CollectionUtils.isEmpty(notices)) { + + List 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 w3works = qcCheckTaskProduceMapper.getOrderWorksW2(qoWork); + List 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 + "++++入库检验巡检结束++++++++++"); } 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 8f6f3aeb..23021603 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 @@ -496,7 +496,7 @@ from sys_notice_group sng left join sys_notice sn on sng.notice_id = sn.notice_id left join base_team_user btu on sng.group_code = btu.team_code - where sng.notice_id = #{noticeId} + where sng.notice_id = #{noticeId} and sng.del_flag = '0' + @@ -135,7 +137,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from wms_product_put wpp left join mes_report_work mrw on wpp.work_order = mrw.report_code where 1=1 - and wpp.work_order like concat like ('%',#{orderNo}) + and wpp.work_order like concat ('%',#{orderNo}) order by wpp.create_time desc