|
|
|
@ -1,22 +1,35 @@
|
|
|
|
|
package com.op.quality.service.impl;
|
|
|
|
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.Date;
|
|
|
|
|
import java.util.Iterator;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.*;
|
|
|
|
|
import java.util.regex.Matcher;
|
|
|
|
|
import java.util.regex.Pattern;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
import com.alibaba.fastjson2.JSONObject;
|
|
|
|
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
|
|
|
|
import com.op.common.core.utils.DateUtils;
|
|
|
|
|
import com.op.common.core.utils.StringUtils;
|
|
|
|
|
import com.op.common.core.web.domain.AjaxResult;
|
|
|
|
|
import com.op.common.security.utils.SecurityUtils;
|
|
|
|
|
import com.op.quality.domain.QcCheckTaskIncome;
|
|
|
|
|
import com.op.quality.domain.QcCheckUnqualified;
|
|
|
|
|
import com.op.quality.domain.vo.TreeSelect;
|
|
|
|
|
import com.op.quality.mapper.QcCheckTaskIncomeMapper;
|
|
|
|
|
import com.op.system.api.RemoteOpenService;
|
|
|
|
|
import com.op.system.api.RemoteQualityService;
|
|
|
|
|
import com.op.system.api.domain.SysNoticeGroup;
|
|
|
|
|
import com.op.system.api.domain.dto.WechartDTO;
|
|
|
|
|
import com.op.system.api.domain.quality.QcCheckTaskIncomeDTO;
|
|
|
|
|
import com.sun.xml.bind.v2.TODO;
|
|
|
|
|
import org.slf4j.Logger;
|
|
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
import com.op.quality.mapper.QcGoalMapper;
|
|
|
|
|
import com.op.quality.domain.QcGoal;
|
|
|
|
|
import com.op.quality.service.IQcGoalService;
|
|
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
|
import org.springframework.util.ObjectUtils;
|
|
|
|
|
import org.springframework.web.context.request.RequestContextHolder;
|
|
|
|
|
import org.springframework.web.context.request.ServletRequestAttributes;
|
|
|
|
@ -31,8 +44,24 @@ import javax.servlet.http.HttpServletRequest;
|
|
|
|
|
*/
|
|
|
|
|
@Service
|
|
|
|
|
public class QcGoalServiceImpl implements IQcGoalService {
|
|
|
|
|
protected Logger logger = LoggerFactory.getLogger(getClass());
|
|
|
|
|
@Autowired
|
|
|
|
|
private QcGoalMapper qcGoalMapper;
|
|
|
|
|
// @Autowired
|
|
|
|
|
// private QcCheckTaskIncomeMapper qcCheckTaskIncomeMapper;
|
|
|
|
|
// @Autowired
|
|
|
|
|
// private RemoteOpenService remoteOpenService;
|
|
|
|
|
//
|
|
|
|
|
// private static Pattern p2= Pattern.compile("<[^>]+>");
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private RemoteOpenService remoteOpenService;
|
|
|
|
|
@Autowired
|
|
|
|
|
private RemoteQualityService remoteQualityService;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private QcCheckTaskIncomeMapper qcCheckTaskIncomeMapper;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 查询质量目标
|
|
|
|
@ -59,9 +88,147 @@ public class QcGoalServiceImpl implements IQcGoalService {
|
|
|
|
|
for (QcGoal item : qcGoals) {
|
|
|
|
|
item.setHasChildren(true);
|
|
|
|
|
}
|
|
|
|
|
// QcCheckUnqualified task = new QcCheckUnqualified();
|
|
|
|
|
// task.setUser("002007");//9999999
|
|
|
|
|
// task.setSqr("660");
|
|
|
|
|
// task.setOaFactory("0");
|
|
|
|
|
// task.setMaterialType("0");
|
|
|
|
|
// task.setMaterialCode("000000040000015128");
|
|
|
|
|
// task.setMaterialName("榄菊蚊香加大盘Ф137.5mm×H100mm36圈内增高塑料筒(有字盖)2201");
|
|
|
|
|
// task.setSupplierCode("0000100330");
|
|
|
|
|
// task.setSupplierName("中山市荣星塑料包装有限公司");
|
|
|
|
|
// task.setQuality("15296");
|
|
|
|
|
// task.setUnit("ST");
|
|
|
|
|
// task.setCheckNo("202407130047");
|
|
|
|
|
// task.setCzbjr("284");
|
|
|
|
|
// task.setMaterialFrom("2");
|
|
|
|
|
// task.setZcf("0");
|
|
|
|
|
// task.setZcoemcm("转出工厂");
|
|
|
|
|
// task.setRemark("zxl测试不合格发起oa");
|
|
|
|
|
// task.setQczg("660");
|
|
|
|
|
// this.createLLOA(task);
|
|
|
|
|
|
|
|
|
|
// //手持来料质检触发
|
|
|
|
|
// QcCheckTaskIncomeDTO qcCheckTaskIncomeDTO = new QcCheckTaskIncomeDTO();
|
|
|
|
|
// qcCheckTaskIncomeDTO.setPoolName("ds_1000" );
|
|
|
|
|
// qcCheckTaskIncomeDTO.setCheckLoc("mjtest");
|
|
|
|
|
// qcCheckTaskIncomeDTO.setCheckType("checkTypeLL");
|
|
|
|
|
//// qcCheckTaskIncomeDTO.setCheckManCode("mobile");
|
|
|
|
|
//// qcCheckTaskIncomeDTO.setCheckManName("手持测试用户");
|
|
|
|
|
// qcCheckTaskIncomeDTO.setSupplierCode("0000102272");
|
|
|
|
|
// qcCheckTaskIncomeDTO.setFactoryCode("1000");
|
|
|
|
|
// qcCheckTaskIncomeDTO.setSupplierName("广州市彩晴包装印刷有限公司");
|
|
|
|
|
// qcCheckTaskIncomeDTO.setOrderType("8040");//包材固定码
|
|
|
|
|
// qcCheckTaskIncomeDTO.setUnit("KG");
|
|
|
|
|
// qcCheckTaskIncomeDTO.setQuality(new BigDecimal("10"));
|
|
|
|
|
// qcCheckTaskIncomeDTO.setMaterialCode("000000040000011094");
|
|
|
|
|
// qcCheckTaskIncomeDTO.setMaterialName("LANJU 出口封口胶(1000米/卷)(1901)");
|
|
|
|
|
// qcCheckTaskIncomeDTO.setIncomeBatchNo("202312250001");
|
|
|
|
|
// qcCheckTaskIncomeDTO.setOrderNo("4500297568");
|
|
|
|
|
// qcCheckTaskIncomeDTO.setIncomeTime(new Date());
|
|
|
|
|
// remoteQualityService.createIncomeTask(qcCheckTaskIncomeDTO);
|
|
|
|
|
|
|
|
|
|
// 品质检验
|
|
|
|
|
// QcCheckUnqualified task = new QcCheckUnqualified();
|
|
|
|
|
// task.setTaskId("3ffb199037ba46a48e39cb148d7ad9e0");
|
|
|
|
|
// task.setUser("002007");
|
|
|
|
|
// task.setSqbm("0");
|
|
|
|
|
// task.setSqr("MSL#002007");
|
|
|
|
|
// task.setSccj("MSD#10000152");
|
|
|
|
|
// task.setQuality("100");
|
|
|
|
|
// task.setCheckLoc("测试发现地点");
|
|
|
|
|
// task.setOaFactoryF("0");
|
|
|
|
|
// task.setSfxyzg("0");
|
|
|
|
|
// task.setPgzg("MSL#019184");
|
|
|
|
|
// task.setPgzr("MSL#019184");
|
|
|
|
|
// task.setSfgyswt("0");
|
|
|
|
|
// this.createProduceOA(task);
|
|
|
|
|
return qcGoals;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private AjaxResult createLLOA(QcCheckUnqualified task){
|
|
|
|
|
|
|
|
|
|
//QcCheckTaskIncome detailInfo = qcCheckTaskIncomeMapper.getTaskInfo(task.getTaskId());
|
|
|
|
|
//发起来料检验OA流程
|
|
|
|
|
Map<String, Object> paramMap = new HashMap<>();
|
|
|
|
|
paramMap.put("user",task.getUser());//提交人工号
|
|
|
|
|
paramMap.put("requestLevel",0);//流程紧急度
|
|
|
|
|
paramMap.put("requestName","ZL0010-来料检验不合格控制流程");//流程名称
|
|
|
|
|
paramMap.put("workflowId",113454);//该流程对应的唯- workFlowld
|
|
|
|
|
|
|
|
|
|
if(StringUtils.isEmpty(task.getIncomeBatchNo())){
|
|
|
|
|
task.setIncomeBatchNo(DateUtils.parseDateToStr("yyyyMMdd",new Date()));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
StringBuffer mainObject = new StringBuffer();
|
|
|
|
|
mainObject.append("{");
|
|
|
|
|
mainObject.append("\"SQR\":"+"\""+task.getSqr()+"\"");//申请人--
|
|
|
|
|
mainObject.append(",\"CQ\":"+task.getOaFactory());//厂区--
|
|
|
|
|
mainObject.append(",\"LLLB\":"+task.getMaterialType());//来料类别【0、1】
|
|
|
|
|
mainObject.append(",\"MATNR\":"+"\""+task.getMaterialCode()+"\"");//物料编码
|
|
|
|
|
mainObject.append(",\"MAKTX\":"+"\""+task.getMaterialName()+"\"");//物料名称
|
|
|
|
|
mainObject.append(",\"suppliernum\":"+"\""+task.getSupplierCode()+"\"");//供应商编码
|
|
|
|
|
mainObject.append(",\"supplier\":"+"\""+task.getSupplierName()+"\"");//供应商名称
|
|
|
|
|
mainObject.append(",\"CHARG\":"+"\""+task.getIncomeBatchNo()+"\"");//生产批号
|
|
|
|
|
mainObject.append(",\"comeQty\":"+"\""+task.getQuality()+"\"");//来料数量
|
|
|
|
|
mainObject.append(",\"DW\":"+"\""+task.getUnit()+"\"");//来料单位
|
|
|
|
|
mainObject.append(",\"testDate\":"+"\""+DateUtils.parseDateToStr("yyyy-MM-dd",new Date())+"\"");//检验日期
|
|
|
|
|
mainObject.append(",\"JYBH\":"+"\""+task.getCheckNo()+"\"");//检验编码
|
|
|
|
|
mainObject.append(",\"BJY\":"+"\""+task.getCzbjr()+"\"");//仓储报检人--
|
|
|
|
|
mainObject.append(",\"WLLY\":"+"\""+task.getMaterialFrom()+"\"");//物料来源
|
|
|
|
|
mainObject.append(",\"ZCF\":"+"\""+task.getZcf()+"\"");//转出方
|
|
|
|
|
mainObject.append(",\"ZCOEMCM\":"+"\""+task.getZcoemcm()+"\"");//转出OEM厂名
|
|
|
|
|
mainObject.append(",\"memo\":"+"\""+task.getRemark()+"\"");//不合格描述
|
|
|
|
|
mainObject.append(",\"PZGLBZG\":"+"\""+task.getQczg()+"\"");//qc主管--
|
|
|
|
|
mainObject.append("}");
|
|
|
|
|
|
|
|
|
|
paramMap.put("mainObject",mainObject.toString());
|
|
|
|
|
logger.info("流程Id 113454:"+ JSONObject.toJSONString(paramMap));
|
|
|
|
|
AjaxResult oaR = remoteOpenService.OAInspection(paramMap);
|
|
|
|
|
logger.info("流程Id 113454:"+ JSONObject.toJSONString(oaR));
|
|
|
|
|
return oaR;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private AjaxResult createProduceOA(QcCheckUnqualified task){
|
|
|
|
|
|
|
|
|
|
QcCheckTaskIncome detailInfo = qcCheckTaskIncomeMapper.getTaskInfo(task.getTaskId());
|
|
|
|
|
//发起来料检验OA流程
|
|
|
|
|
Map<String, Object> paramMap = new HashMap<>();
|
|
|
|
|
paramMap.put("user",task.getUser());//提交人工号
|
|
|
|
|
paramMap.put("requestLevel",0);//流程紧急度
|
|
|
|
|
paramMap.put("requestName","ZL0030-品质异常流程-智能制造-"+DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss",detailInfo.getIncomeTime())+"(产品名称:"+detailInfo.getMaterialName()+")");//流程名称
|
|
|
|
|
paramMap.put("workflowId",113455);//该流程对应的唯- workFlowld
|
|
|
|
|
|
|
|
|
|
StringBuffer mainObject = new StringBuffer();
|
|
|
|
|
mainObject.append("{");
|
|
|
|
|
mainObject.append("\"CPMC\":"+"\""+detailInfo.getMaterialName()+"\"");//产品名称
|
|
|
|
|
mainObject.append(",\"CPBM\":"+"\""+detailInfo.getMaterialCode()+"\"");//产品编码
|
|
|
|
|
mainObject.append(",\"SQBM\":"+"\""+task.getSqbm()+"\"");//0品质保障部
|
|
|
|
|
mainObject.append(",\"SQR\":"+"\""+task.getSqr()+"\"");//申请人:默认当前用户
|
|
|
|
|
mainObject.append(",\"SQSJ\":"+"\""+DateUtils.parseDateToStr("yyyy-MM-dd",detailInfo.getCheckTime())+"\"");//申请时间
|
|
|
|
|
mainObject.append(",\"SCCJ\":"+"\""+task.getSccj()+"\"");//所属车间
|
|
|
|
|
mainObject.append(",\"SCPH\":"+"\""+detailInfo.getIncomeBatchNo()+"\"");//生产批号
|
|
|
|
|
mainObject.append(",\"SCSL\":"+task.getQuality());//生产数量
|
|
|
|
|
mainObject.append(",\"FXDD\":"+"\""+task.getCheckLoc()+"\"");//发现地点
|
|
|
|
|
mainObject.append(",\"FXRQ\":"+"\""+DateUtils.parseDateToStr("yyyy-MM-dd",detailInfo.getCheckTime())+"\"");//发现日期
|
|
|
|
|
mainObject.append(",\"BH\":"+"\""+detailInfo.getCheckNo()+"\"");//编号:流水号 年月日+四位流水号
|
|
|
|
|
mainObject.append(",\"YCFW\":"+"\""+task.getOaFactoryF()+"\"");//*异常范围:下拉框榄菊所有工厂 1代表小榄工厂
|
|
|
|
|
mainObject.append(",\"PZYCMS\":"+"\""+detailInfo.getRemark()+"\"");//品质异常描述
|
|
|
|
|
mainObject.append(",\"Notes\":"+"\"\"");//测试备注
|
|
|
|
|
mainObject.append(",\"SFXYZG\":"+"\""+task.getSfxyzg()+"\"");//*是否需要主管审核 1否 0是
|
|
|
|
|
mainObject.append(",\"PGZG\":"+"\""+task.getPgzg()+"\"");//QC主管:SFXYZG字段为"是",则此项选择QC主管信息
|
|
|
|
|
mainObject.append(",\"PGZR\":"+"\""+task.getPgzr()+"\"");//质量主管 660:朱继新
|
|
|
|
|
mainObject.append(",\"SFGYSWT\":"+"\""+task.getSfgyswt()+"\"");//*是否供应商问题 1非供应商问题 0是供应商问题
|
|
|
|
|
|
|
|
|
|
mainObject.append("}");
|
|
|
|
|
|
|
|
|
|
paramMap.put("mainObject",mainObject.toString());
|
|
|
|
|
logger.info("流程Id 113455:"+ JSONObject.toJSONString(paramMap));
|
|
|
|
|
AjaxResult oaR = remoteOpenService.OAInspection(paramMap);
|
|
|
|
|
logger.info("流程Id 113455:"+ JSONObject.toJSONString(oaR));
|
|
|
|
|
return oaR;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@DS("#header.poolName")
|
|
|
|
|
public List<QcGoal> selectChildrenByParent(QcGoal goal) {
|
|
|
|
|