测试系统升级

master
zhaoxiaolin 9 months ago
parent 746f963f3c
commit 355d8e6d6d

@ -162,13 +162,13 @@ public class HttpUtils {
conn.setRequestProperty("user-agent" , "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); conn.setRequestProperty("user-agent" , "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
conn.setRequestProperty("Accept-Charset" , "utf-8"); conn.setRequestProperty("Accept-Charset" , "utf-8");
// conn.setRequestProperty("contentType" , "utf-8"); // conn.setRequestProperty("contentType" , "utf-8");
conn.setRequestProperty("content-Type", "application/json; charset=utf-8"); conn.setRequestProperty("content-Type", "application/json; charset=GBK");
conn.setDoOutput(true); conn.setDoOutput(true);
conn.setDoInput(true); conn.setDoInput(true);
out = new PrintWriter(conn.getOutputStream()); out = new PrintWriter(conn.getOutputStream());
out.print(param); out.print(param);
out.flush(); out.flush();
in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "utf-8")); in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "GBK"));
String line; String line;
while ((line = in.readLine()) != null) { while ((line = in.readLine()) != null) {
result.append(line); result.append(line);

@ -72,7 +72,7 @@ public interface MesLineMapper {
MesLine selectInfoByLineProduct(MesLine mesLine); MesLine selectInfoByLineProduct(MesLine mesLine);
void insertLineProduct(MesLine mesLine); int insertLineProduct(MesLine mesLine);
void updateLineProduct(MesLine mesLine); void updateLineProduct(MesLine mesLine);
} }

@ -1,6 +1,7 @@
package com.op.mes.service.impl; package com.op.mes.service.impl;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -14,6 +15,7 @@ import com.op.common.core.web.domain.AjaxResult;
import com.op.common.security.utils.SecurityUtils; import com.op.common.security.utils.SecurityUtils;
import com.op.mes.domain.MesLineProcess; import com.op.mes.domain.MesLineProcess;
import com.op.mes.domain.MesLineProduct; import com.op.mes.domain.MesLineProduct;
import com.op.mes.mapper.MesLineProductMapper;
import com.op.mes.service.IMesLineProcessService; import com.op.mes.service.IMesLineProcessService;
import com.op.mes.service.IMesLineProductService; import com.op.mes.service.IMesLineProductService;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
@ -43,6 +45,9 @@ public class MesLineServiceImpl implements IMesLineService {
@Autowired @Autowired
private MesLineMapper mesLineMapper; private MesLineMapper mesLineMapper;
@Autowired
private MesLineProductMapper mesLineProductMapper;
@Autowired @Autowired
private IMesLineProcessService mesLineProcessService; private IMesLineProcessService mesLineProcessService;
@Autowired @Autowired
@ -97,49 +102,20 @@ public class MesLineServiceImpl implements IMesLineService {
*/ */
@Override @Override
@DS("#header.poolName") @DS("#header.poolName")
@Transactional(propagation = Propagation.REQUIRED) // @Transactional(propagation = Propagation.REQUIRED)
public int insertMesLine(MesLine mesLine) { public int insertMesLine(MesLine mesLine) {
mesLine.setCreateTime(DateUtils.getNowDate());
mesLine.setCreateBy(SecurityUtils.getUsername());
mesLine.setId(IdUtils.fastSimpleUUID());
String belongTo = mesLine.getId();
// 获取工厂编码 // 获取工厂编码
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String key = "#header.poolName"; String key = "#header.poolName";
String factoryCode = request.getHeader(key.substring(8)).replace("ds_", ""); String factoryCode = request.getHeader(key.substring(8)).replace("ds_", "");
mesLine.setFactoryCode(factoryCode);
// 绑定工艺
List<String> processList = mesLine.getProcessList();
List<BigDecimal> qualityList = mesLine.getQualityList();
if (!CollectionUtils.isEmpty(processList)) {
String lineCode = mesLine.getLineCode();
String lineName = mesLine.getLineName();
for (int i = 0; i < processList.size(); i++) {
MesLineProcess mesLineProcess = new MesLineProcess();
mesLineProcess.setBelongTo(belongTo);
mesLineProcess.setProcessName(processList.get(i));
mesLineProcess.setQuality(qualityList.get(i));
mesLineProcess.setLineCode(lineCode);
mesLineProcess.setLineName(lineName);
mesLineProcess.setFactoryCode(factoryCode);
mesLineProcessService.insertMesLineProcess(mesLineProcess);
}
}
// 绑定产品 // 绑定产品
List<MesLineProduct> productList = mesLine.getProductList(); mesLine.setId(IdUtils.fastSimpleUUID());
if (CollectionUtils.isNotEmpty(productList)) { mesLine.setFactoryCode(factoryCode);
for (MesLineProduct item : productList) { mesLine.setCreateBy(SecurityUtils.getUsername());
item.setId(IdUtils.fastSimpleUUID()); mesLine.setCreateTime(DateUtils.getNowDate());
item.setBelongTo(belongTo); int m = mesLineMapper.insertLineProduct(mesLine);
item.setFactoryCode(factoryCode);
item.setCreateBy(SecurityUtils.getUsername());
item.setCreateTime(DateUtils.getNowDate());
}
mesLineProductService.batchInsertMesLineProduct(productList);
}
return mesLineMapper.insertMesLine(mesLine); return m;
} }
/** /**

@ -204,7 +204,7 @@
select id, line_code, use_man, efficiency select id, line_code, use_man, efficiency
from mes_line_product from mes_line_product
where del_flag = '0' and line_code = #{lineCode} where del_flag = '0' and line_code = #{lineCode}
and use_man = #{useMan} and efficiency = #{efficiency} and product_code = #{productCode}
</select> </select>
<select id="getProductListBom" resultType="com.op.mes.domain.MesLineProduct"> <select id="getProductListBom" resultType="com.op.mes.domain.MesLineProduct">

@ -386,6 +386,7 @@ public class OpenServiceImpl implements OpenService {
return success(); return success();
} }
/**首检 批次成品**/
@Override @Override
public int insertQcCheckTaskProduce(QcCheckTaskProduceDTO qcCheckTaskProduce) { public int insertQcCheckTaskProduce(QcCheckTaskProduceDTO qcCheckTaskProduce) {
DynamicDataSourceContextHolder.push("ds_" + qcCheckTaskProduce.getFactoryCode()); DynamicDataSourceContextHolder.push("ds_" + qcCheckTaskProduce.getFactoryCode());

@ -8,6 +8,15 @@ public class ProLine {
private String lineName; private String lineName;
private Long efficiency; private Long efficiency;
private String dh; private String dh;
private String factoryDh;
public String getFactoryDh() {
return factoryDh;
}
public void setFactoryDh(String factoryDh) {
this.factoryDh = factoryDh;
}
public Long getEfficiency() { public Long getEfficiency() {
return efficiency; return efficiency;

@ -76,6 +76,15 @@ public class ProOrder extends TreeEntity {
private Integer endFlag; private Integer endFlag;
private String belongWorkOrder; private String belongWorkOrder;
private String shiftId; private String shiftId;
private String factoryDh;
public String getFactoryDh() {
return factoryDh;
}
public void setFactoryDh(String factoryDh) {
this.factoryDh = factoryDh;
}
public String getShiftId() { public String getShiftId() {
return shiftId; return shiftId;

@ -1357,8 +1357,8 @@ public class ProOrderServiceImpl implements IProOrderService {
proOrder.setLineCode(proOrder.getLineCodes()[i]); proOrder.setLineCode(proOrder.getLineCodes()[i]);
ProLine plineInfo = proOrderWorkorderMapper.getLineProductInfo(proOrder);//线体母单产品产能和线体代码 ProLine plineInfo = proOrderWorkorderMapper.getLineProductInfo(proOrder);//线体母单产品产能和线体代码
if(plineInfo==null){ if(plineInfo==null){
logger.error("线体"+proOrder.getLineCodes()[i]+"无法生产"); logger.error("线体"+proOrder.getLineCodes()[i]+"无法生产,请到【线体产品管理界面进行维护】");
return AjaxResult.error(642,"线体"+proOrder.getLineCodes()[i]+"无法生产"); return AjaxResult.error(642,"线体"+proOrder.getLineCodes()[i]+"无法生产,请到【线体产品管理界面进行维护】");
} }
Long efficiency = plineInfo.getEfficiency(); Long efficiency = plineInfo.getEfficiency();
if(efficiency < orderQua){ if(efficiency < orderQua){
@ -1424,10 +1424,15 @@ public class ProOrderServiceImpl implements IProOrderService {
/**拆批次**/ /**拆批次**/
proOrder.setProdSpc(plineInfo.getDh());//借用字段 proOrder.setProdSpc(plineInfo.getDh());//借用字段
/**批次中的工厂代码**/
proOrder.setFactoryDh(plineInfo.getFactoryDh());
AjaxResult aResult = getBatchList(proOrder);//Done;
if(!aResult.isSuccess()){
return aResult;
}
List<ProOrderWorkorderBatch> workorderBatches0 = (List<ProOrderWorkorderBatch>)aResult.get("data");
List<ProOrderWorkorderBatch> workorderBatches0 = getBatchList(proOrder);//TODO;
if(CollectionUtils.isEmpty(workorderBatches0)){ if(CollectionUtils.isEmpty(workorderBatches0)){
logger.error("批次太多,请检查【产品批次数量】、【产线产能】、【批次号夜班开始字母】是否设置正常。"); logger.error("批次太多,请检查【产品批次数量】、【产线产能】、【批次号夜班开始字母】是否设置正常。");
@ -1491,7 +1496,7 @@ public class ProOrderServiceImpl implements IProOrderService {
String[][] lineCodeArray = {{gxCode,pOrder.getLineCode()}}; String[][] lineCodeArray = {{gxCode,pOrder.getLineCode()}};
workOrder.setProdLineCode(JSONArray.toJSONString(lineCodeArray)); workOrder.setProdLineCode(JSONArray.toJSONString(lineCodeArray));
workOrder.setProductDate(DateUtils.dateTime("yyyy-MM-dd",pOrder.getProductDate())); workOrder.setProductDate(DateUtils.dateTime("yyyy-MM-dd",pOrder.getProductDate()));
//workOrder.setShiftId(); workOrder.setShiftId(pOrder.getShiftId());
workOrder.setParentOrder(proOrder.getParentOrder()); workOrder.setParentOrder(proOrder.getParentOrder());
workOrder.setStatus("w0"); workOrder.setStatus("w0");
workOrder.setCreateBy(SecurityUtils.getUsername()); workOrder.setCreateBy(SecurityUtils.getUsername());
@ -1504,10 +1509,16 @@ public class ProOrderServiceImpl implements IProOrderService {
} }
//靠母单先生成批次模板 //靠母单先生成批次模板
protected List<ProOrderWorkorderBatch> getBatchList(ProOrder proOrder){ protected AjaxResult getBatchList(ProOrder proOrder){
List<ProOrderWorkorderBatch> workorderBatches = new ArrayList<>(); List<ProOrderWorkorderBatch> workorderBatches = new ArrayList<>();
Long pworkOrderQua = proOrder.getQuantitySplit();//母工单数量 Long pworkOrderQua = proOrder.getQuantitySplit();//母工单数量
BaseProduct batchQua0 = proOrderWorkorderMapper.getProductInfo(proOrder);//母单标准批次产能和几合一 BaseProduct batchQua0 = proOrderWorkorderMapper.getProductInfo(proOrder);//母单标准批次产能和几合一
if(batchQua0 == null || batchQua0.getBatchQuaStandar()==null){
logger.error("未设置最大批次数,请到【产品管理】界面进行产品的最大批次设置");
return AjaxResult.error("未设置最大批次数,请到【产品管理】界面进行产品的最大批次设置");
}
ProOrderWorkorderBatch workBatch = null; ProOrderWorkorderBatch workBatch = null;
while(pworkOrderQua>0){ while(pworkOrderQua>0){
workBatch = new ProOrderWorkorderBatch(); workBatch = new ProOrderWorkorderBatch();
@ -1525,8 +1536,6 @@ public class ProOrderServiceImpl implements IProOrderService {
List<String> batches = proOrderWorkorderMapper.getBatchDict("batch_flag"); List<String> batches = proOrderWorkorderMapper.getBatchDict("batch_flag");
char dayWorkBatchStart = batches.get(0).charAt(0); char dayWorkBatchStart = batches.get(0).charAt(0);
char nightWorkBatchStart = batches.get(1).charAt(0); char nightWorkBatchStart = batches.get(1).charAt(0);
int dayBatches = nightWorkBatchStart - dayWorkBatchStart;
int nigthBatches = 'Z' - nightWorkBatchStart;
int maxBatchNum = 0; int maxBatchNum = 0;
char startZM = 'A'; char startZM = 'A';
@ -1540,11 +1549,12 @@ public class ProOrderServiceImpl implements IProOrderService {
if(workorderBatches.size()>maxBatchNum){ if(workorderBatches.size()>maxBatchNum){
logger.error("大于工厂字典【batch_flag】推理的的批次数"); logger.error("大于工厂字典【batch_flag】推理的的批次数");
return null; return AjaxResult.error("大于工厂字典【batch_flag】推理的的批次数");
} }
//获取批次号集合 //获取批次号集合
List<String> batchCodes = StringUtils.batchAutoCreate(proOrder.getFactoryCode(), List<String> batchCodes = StringUtils.batchAutoCreate(proOrder.getFactoryDh(),
proOrder.getProdSpc(), proOrder.getProdSpc(),
DateUtils.dateTime("yyyy-MM-dd",proOrder.getProductDate()), DateUtils.dateTime("yyyy-MM-dd",proOrder.getProductDate()),
proOrder.getAtrr2().substring(proOrder.getAtrr2().length()-1), proOrder.getAtrr2().substring(proOrder.getAtrr2().length()-1),
@ -1554,7 +1564,7 @@ public class ProOrderServiceImpl implements IProOrderService {
workorderBatches.get(n).setBatchCode(batchCodes.get(n)); workorderBatches.get(n).setBatchCode(batchCodes.get(n));
} }
return workorderBatches; return AjaxResult.success(workorderBatches);
} }
/** /**

@ -649,9 +649,10 @@
</select> </select>
<select id="getLineProductInfo" resultType="com.op.plan.domain.ProLine"> <select id="getLineProductInfo" resultType="com.op.plan.domain.ProLine">
select mlp.efficiency efficiency, select mlp.efficiency efficiency,
bp.dh bp.dh,sf.ancestors factoryDh
from mes_line_product mlp from mes_line_product mlp
left join base_equipment bp on mlp.line_code = bp.equipment_code left join base_equipment bp on mlp.line_code = bp.equipment_code
left join sys_factory sf on sf.factory_code = mlp.factory_code and sf.del_flag = '0'
where mlp.del_flag = '0' and product_code = #{prodCode} where mlp.del_flag = '0' and product_code = #{prodCode}
and mlp.line_code = #{lineCode} and bp.del_flag = '0' and mlp.line_code = #{lineCode} and bp.del_flag = '0'
</select> </select>

@ -23,7 +23,7 @@ public interface IQcMaterialGroupService {
public QcMaterialGroup selectQcMaterialGroupById(String id); public QcMaterialGroup selectQcMaterialGroupById(String id);
/** /**
* *
* @param qcMaterialGroup * @param qcMaterialGroup
* @return * @return
*/ */

@ -140,7 +140,7 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements
/** /**
* *
* *
* @param qcCheckTaskIncome * @param qcCheckTaskIncome
* @return * @return
*/ */
@ -640,7 +640,7 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements
} }
@Override @Override
@Transactional(rollbackFor = Exception.class) //@Transactional(rollbackFor = Exception.class)
public int commitCheckResults(QcCheckTaskIncome qcCheckTaskIncome) { public int commitCheckResults(QcCheckTaskIncome qcCheckTaskIncome) {
logger.info("质检提交参数:"+JSONObject.toJSONString(qcCheckTaskIncome)); logger.info("质检提交参数:"+JSONObject.toJSONString(qcCheckTaskIncome));
List<QcCheckTaskDetail> details = qcCheckTaskIncome.getQcCheckTaskDetails(); List<QcCheckTaskDetail> details = qcCheckTaskIncome.getQcCheckTaskDetails();
@ -815,7 +815,7 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements
if("produce".equals(qcCheckTaskIncome.getTypeCode())){ if("produce".equals(qcCheckTaskIncome.getTypeCode())){
unqualified.setTypeCode(qcCheckTaskIncome.getTypeCode()); unqualified.setTypeCode(qcCheckTaskIncome.getTypeCode());
unqualified.setSfgyswt(qcCheckTaskIncome.getSfgyswt()); unqualified.setSfgyswt(qcCheckTaskIncome.getSfgyswt());
unqualified.setUser(qcCheckTaskIncome.getUpdateBy());
//申请人- //申请人-
unqualified.setSqr(qcCheckTaskIncome.getSqr()); unqualified.setSqr(qcCheckTaskIncome.getSqr());
//申请部门 //申请部门

@ -145,6 +145,7 @@ public class QcCheckTaskProduceServiceImpl implements IQcCheckTaskProduceService
* *
* *
* @param qcCheckTaskProduce * @param qcCheckTaskProduce
*
* @return * @return
*/ */
@Override @Override

@ -247,7 +247,7 @@ public class QcCheckTypeProjectServiceImpl implements IQcCheckTypeProjectService
return failOrder; return failOrder;
} }
@Transactional(rollbackFor = Exception.class) //@Transactional(rollbackFor = Exception.class)
public String syncFunc(QcMaterialGroupDetail materialGroupDetail){ public String syncFunc(QcMaterialGroupDetail materialGroupDetail){
String failOrder = ""; String failOrder = "";
Date nowDate = DateUtils.getNowDate(); Date nowDate = DateUtils.getNowDate();

@ -184,7 +184,7 @@ public class QcCheckUnqualifiedServiceImpl implements IQcCheckUnqualifiedService
//QcCheckTaskIncome detailInfo = qcCheckTaskIncomeMapper.getTaskInfo(task.getTaskId()); //QcCheckTaskIncome detailInfo = qcCheckTaskIncomeMapper.getTaskInfo(task.getTaskId());
//发起来料检验OA流程 //发起来料检验OA流程
Map<String, Object> paramMap = new HashMap<>(); Map<String, Object> paramMap = new HashMap<>();
paramMap.put("user",task.getSqr());//提交人工号 paramMap.put("user",task.getUser());//提交人工号
paramMap.put("requestLevel",0);//流程紧急度 paramMap.put("requestLevel",0);//流程紧急度
paramMap.put("requestName","ZL0010-来料检验不合格控制流程");//流程名称 paramMap.put("requestName","ZL0010-来料检验不合格控制流程");//流程名称
paramMap.put("workflowId",113454);//该流程对应的唯- workFlowld paramMap.put("workflowId",113454);//该流程对应的唯- workFlowld
@ -195,7 +195,7 @@ public class QcCheckUnqualifiedServiceImpl implements IQcCheckUnqualifiedService
StringBuffer mainObject = new StringBuffer(); StringBuffer mainObject = new StringBuffer();
mainObject.append("{"); mainObject.append("{");
mainObject.append("\"SQR\":"+"\""+task.getSqr()+"");//申请人-- mainObject.append("\"SQR\":"+"\""+task.getSqr()+"\"");//申请人--
mainObject.append(",\"CQ\":"+task.getOaFactory());//厂区-- mainObject.append(",\"CQ\":"+task.getOaFactory());//厂区--
mainObject.append(",\"LLLB\":"+task.getMaterialType());//来料类别【0、1】 mainObject.append(",\"LLLB\":"+task.getMaterialType());//来料类别【0、1】
mainObject.append(",\"MATNR\":"+"\""+task.getMaterialCode()+"\"");//物料编码 mainObject.append(",\"MATNR\":"+"\""+task.getMaterialCode()+"\"");//物料编码
@ -314,31 +314,31 @@ public class QcCheckUnqualifiedServiceImpl implements IQcCheckUnqualifiedService
QcCheckTaskIncome detailInfo = qcCheckTaskIncomeMapper.getTaskInfo(task.getTaskId()); QcCheckTaskIncome detailInfo = qcCheckTaskIncomeMapper.getTaskInfo(task.getTaskId());
//发起来料检验OA流程 //发起来料检验OA流程
Map<String, Object> paramMap = new HashMap<>(); Map<String, Object> paramMap = new HashMap<>();
paramMap.put("user",task.getSqr());//提交人工号 paramMap.put("user",task.getUser());//提交人工号
paramMap.put("requestLevel",0);//流程紧急度 paramMap.put("requestLevel",0);//流程紧急度
paramMap.put("requestName","ZL0030-品质异常流程-智能制造-"+DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss",detailInfo.getIncomeTime())+"(产品名称:"+detailInfo.getMaterialName()+"");//流程名称 paramMap.put("requestName","ZL0030-品质异常流程-智能制造-"+DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss",detailInfo.getIncomeTime())+"(产品名称:"+detailInfo.getMaterialName()+"");//流程名称
paramMap.put("workflowId",113455);//该流程对应的唯- workFlowld paramMap.put("workflowId",113455);//该流程对应的唯- workFlowld
StringBuffer mainObject = new StringBuffer(); StringBuffer mainObject = new StringBuffer();
mainObject.append("{"); mainObject.append("{");
mainObject.append("\"CPMC\":"+detailInfo.getMaterialName());//产品名称 mainObject.append("\"CPMC\":"+"\""+detailInfo.getMaterialName()+"\"");//产品名称
mainObject.append(",\"CPBM\":"+detailInfo.getMaterialCode());//产品编码 mainObject.append(",\"CPBM\":"+"\""+detailInfo.getMaterialCode()+"\"");//产品编码
mainObject.append(",\"SQBM\":"+task.getSqbm());//0品质保障部 mainObject.append(",\"SQBM\":"+"\""+task.getSqbm()+"\"");//0品质保障部
mainObject.append(",\"SQR\":"+"\""+task.getSqr()+"\"");//申请人:默认当前用户 mainObject.append(",\"SQR\":"+"\""+task.getSqr()+"\"");//申请人:默认当前用户
mainObject.append(",\"SQSJ\":"+"\""+DateUtils.parseDateToStr("yyyy-MM-dd",detailInfo.getCheckTime())+"\"");//申请时间 mainObject.append(",\"SQSJ\":"+"\""+DateUtils.parseDateToStr("yyyy-MM-dd",detailInfo.getCheckTime())+"\"");//申请时间
mainObject.append(",\"SCCJ\":"+"\"162\"");//所属车间 mainObject.append(",\"SCCJ\":"+"\"162\"");//所属车间
mainObject.append(",\"SCPH\":"+"\""+detailInfo.getIncomeBatchNo()+"\"");//生产批号 mainObject.append(",\"SCPH\":"+"\""+detailInfo.getIncomeBatchNo()+"\"");//生产批号
mainObject.append(",\"SCSL\":"+"\""+task.getQuality()+"\"");//生产数量 mainObject.append(",\"SCSL\":"+task.getQuality());//生产数量
mainObject.append(",\"FXDD\":"+"\""+task.getCheckLoc()+"\"");//发现地点 mainObject.append(",\"FXDD\":"+"\""+task.getCheckLoc()+"\"");//发现地点
mainObject.append(",\"FXRQ\":"+"\""+DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss",detailInfo.getCheckTime())+"\"");//发现日期 mainObject.append(",\"FXRQ\":"+"\""+DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss",detailInfo.getCheckTime())+"\"");//发现日期
mainObject.append(",\"BH\":"+"\""+detailInfo.getCheckNo()+"\"");//编号:流水号 年月日+四位流水号 mainObject.append(",\"BH\":"+"\""+detailInfo.getCheckNo()+"\"");//编号:流水号 年月日+四位流水号
mainObject.append(",\"YCFW\":"+task.getOaFactoryF()+"\"");//*异常范围:下拉框榄菊所有工厂 1代表小榄工厂 mainObject.append(",\"YCFW\":"+"\""+task.getOaFactoryF()+"\"");//*异常范围:下拉框榄菊所有工厂 1代表小榄工厂
mainObject.append(",\"PZYCMS\":"+"\""+detailInfo.getRemark()+"\"");//品质异常描述 mainObject.append(",\"PZYCMS\":"+"\""+detailInfo.getRemark()+"\"");//品质异常描述
mainObject.append(",\"Notes\":"+"\"\"");//测试备注 mainObject.append(",\"Notes\":"+"\"\"");//测试备注
mainObject.append(",\"SFXYZG\":"+"\""+task.getSfxyzg()+"\"");//*是否需要主管审核 1否 0是 mainObject.append(",\"SFXYZG\":"+"\""+task.getSfxyzg()+"\"");//*是否需要主管审核 1否 0是
mainObject.append(",\"PGZG\":"+"\""+task.getPgzg()+"\"");//QC主管SFXYZG字段为"是",则此项选择QC主管信息 mainObject.append(",\"PGZG\":"+"\""+task.getPgzg()+"\"");//QC主管SFXYZG字段为"是",则此项选择QC主管信息
mainObject.append(",\"PGZR\":"+"\""+task.getPgzr()+"\"");//质量主管 660朱继新 mainObject.append(",\"PGZR\":"+"\""+task.getPgzr()+"\"");//质量主管 660朱继新
mainObject.append(",\"SFGYSWT\":"+task.getSfgyswt()+"\"");//*是否供应商问题 1非供应商问题 0是供应商问题 mainObject.append(",\"SFGYSWT\":"+"\""+task.getSfgyswt()+"\"");//*是否供应商问题 1非供应商问题 0是供应商问题
mainObject.append("}"); mainObject.append("}");

@ -1,22 +1,34 @@
package com.op.quality.service.impl; package com.op.quality.service.impl;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.util.*;
import java.util.Date; import java.util.regex.Matcher;
import java.util.Iterator; import java.util.regex.Pattern;
import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.dynamic.datasource.annotation.DS;
import com.op.common.core.utils.DateUtils; 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.common.security.utils.SecurityUtils;
import com.op.quality.domain.QcCheckUnqualified;
import com.op.quality.domain.vo.TreeSelect; 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 com.sun.xml.bind.v2.TODO;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.op.quality.mapper.QcGoalMapper; import com.op.quality.mapper.QcGoalMapper;
import com.op.quality.domain.QcGoal; import com.op.quality.domain.QcGoal;
import com.op.quality.service.IQcGoalService; import com.op.quality.service.IQcGoalService;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes; import org.springframework.web.context.request.ServletRequestAttributes;
@ -31,8 +43,21 @@ import javax.servlet.http.HttpServletRequest;
*/ */
@Service @Service
public class QcGoalServiceImpl implements IQcGoalService { public class QcGoalServiceImpl implements IQcGoalService {
protected Logger logger = LoggerFactory.getLogger(getClass());
@Autowired @Autowired
private QcGoalMapper qcGoalMapper; 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;
/** /**
* *
@ -59,9 +84,92 @@ public class QcGoalServiceImpl implements IQcGoalService {
for (QcGoal item : qcGoals) { for (QcGoal item : qcGoals) {
item.setHasChildren(true); 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);
return qcGoals; 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;
}
@Override @Override
@DS("#header.poolName") @DS("#header.poolName")
public List<QcGoal> selectChildrenByParent(QcGoal goal) { public List<QcGoal> selectChildrenByParent(QcGoal goal) {

@ -54,7 +54,7 @@ public class QcMaterialGroupServiceImpl implements IQcMaterialGroupService {
} }
/** /**
* *
* @param qcMaterialGroup * @param qcMaterialGroup
* @return * @return
*/ */

@ -307,13 +307,20 @@
where del_flag = '0' where del_flag = '0'
</select> </select>
<select id="getProductGroup" resultType="com.op.quality.domain.QcProjectType"> <select id="getProductGroup" resultType="com.op.quality.domain.QcProjectType">
select bp.product_group productGroup, <!--select bp.product_group productGroup,
bp.product_group_name productGroupName, bp.product_group_name productGroupName,
qmg.id groupId qmg.id groupId
from base_product bp from base_product bp
left join qc_material_group qmg on qmg.group_code = bp.product_group left join qc_material_group qmg on qmg.group_code = bp.product_group
where bp.product_code like concat('%',#{materialCode},'%')
and bp.del_flag = '0'-->
select top 1 qmg.id groupId
from base_product bp
left join qc_material_group qmg on qmg.group_code = bp.mvgr5
where bp.product_code like concat('%',#{materialCode},'%') where bp.product_code like concat('%',#{materialCode},'%')
and bp.del_flag = '0' and bp.del_flag = '0'
order by qmg.create_time desc
</select> </select>
<select id="selectExist" resultType="com.op.quality.domain.QcMaterialGroupDetail"> <select id="selectExist" resultType="com.op.quality.domain.QcMaterialGroupDetail">
select material_name from qc_material_group_detail select material_name from qc_material_group_detail

@ -14,10 +14,14 @@
<result property="updateTime" column="update_time"/> <result property="updateTime" column="update_time"/>
<result property="factoryCode" column="factory_code"/> <result property="factoryCode" column="factory_code"/>
<result property="delFlag" column="del_flag"/> <result property="delFlag" column="del_flag"/>
<result property="groupCode" column="group_code"/>
</resultMap> </resultMap>
<sql id="selectQcMaterialGroupVo"> <sql id="selectQcMaterialGroupVo">
select id, group_name, attr1, create_by, create_time, update_by, update_time, factory_code, del_flag from qc_material_group select id, group_name, attr1, create_by, create_time,
update_by, update_time, factory_code, del_flag
from qc_material_group
</sql> </sql>
<select id="selectQcMaterialGroupList" parameterType="QcMaterialGroup" resultMap="QcMaterialGroupResult"> <select id="selectQcMaterialGroupList" parameterType="QcMaterialGroup" resultMap="QcMaterialGroupResult">
@ -40,10 +44,10 @@
<select id="getOriginalGroupList" parameterType="QcMaterialGroup" resultType="QcMaterialGroup"> <select id="getOriginalGroupList" parameterType="QcMaterialGroup" resultType="QcMaterialGroup">
SELECT DISTINCT SELECT DISTINCT
product_group groupCode, mvgr5 groupCode,
concat(product_group_name,'(',product_group,')') groupName mvgr5 groupName
FROM base_product FROM base_product
WHERE del_flag = '0' AND product_group_name IS NOT NULL WHERE del_flag = '0' AND mvgr5 IS NOT NULL
</select> </select>
<select id="getMaterialChildrenList" parameterType="QcMaterialGroup" resultMap="QcMaterialGroupResult"> <select id="getMaterialChildrenList" parameterType="QcMaterialGroup" resultMap="QcMaterialGroupResult">
@ -61,7 +65,10 @@
<select id="selectQcMaterialGroupById" parameterType="String" resultMap="QcMaterialGroupResult"> <select id="selectQcMaterialGroupById" parameterType="String" resultMap="QcMaterialGroupResult">
<include refid="selectQcMaterialGroupVo"/> select id, group_name, attr1, create_by, create_time,
update_by, update_time, factory_code, del_flag,
group_code
from qc_material_group
where id = #{id} where id = #{id}
</select> </select>

Loading…
Cancel
Save