|
|
|
@ -1456,4 +1456,196 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements
|
|
|
|
|
}
|
|
|
|
|
return qcCheckTaskIncomeMapper.insertBaseFileBatch(files);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@DS("#header.poolName")
|
|
|
|
|
public List<QcCheckTaskIncome> getLineProOrder(QcCheckTaskIncome getLineProOrder) {
|
|
|
|
|
List<QcCheckTaskIncome> dtos = qcCheckTaskIncomeMapper.getLineProOrder(getLineProOrder);
|
|
|
|
|
for(QcCheckTaskIncome dto:dtos){
|
|
|
|
|
List<QcCheckTaskDefect> defects = qcCheckTaskIncomeMapper.getOrderBatch(dto.getRecordId());
|
|
|
|
|
dto.setDefects(defects);
|
|
|
|
|
}
|
|
|
|
|
return dtos;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
//@Transactional(rollbackFor = Exception.class)
|
|
|
|
|
public int commitCPCJCheck(QcCheckTaskIncome qcCheckTaskIncome) {
|
|
|
|
|
logger.info("质检提交参数:"+JSONObject.toJSONString(qcCheckTaskIncome));
|
|
|
|
|
List<QcCheckTaskDetail> details = qcCheckTaskIncome.getQcCheckTaskDetails();
|
|
|
|
|
|
|
|
|
|
Date nowTime = DateUtils.getNowDate();
|
|
|
|
|
String factoryCode = qcCheckTaskIncome.getFactoryCode();
|
|
|
|
|
String updateBy = qcCheckTaskIncome.getUpdateBy();
|
|
|
|
|
String belongId = IdUtils.fastSimpleUUID();
|
|
|
|
|
String checkType = qcCheckTaskIncome.getCheckType();
|
|
|
|
|
qcCheckTaskIncome.setFactoryCode(qcCheckTaskIncome.getFactoryCode().replace("ds_",""));
|
|
|
|
|
//默认合格
|
|
|
|
|
|
|
|
|
|
String result=null;
|
|
|
|
|
if(StringUtils.isBlank(qcCheckTaskIncome.getCheckResult())){
|
|
|
|
|
result = "Y";
|
|
|
|
|
for(QcCheckTaskDetail detail:details){
|
|
|
|
|
if("N".equals(detail.getStatus())){
|
|
|
|
|
result = "N";//不合格
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}else{
|
|
|
|
|
//有最终判定的情况
|
|
|
|
|
result = qcCheckTaskIncome.getCheckResult();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int n = 0;
|
|
|
|
|
QcCheckTaskIncome qcCheckTask = new QcCheckTaskIncome();
|
|
|
|
|
qcCheckTask.setUpdateBy(updateBy);
|
|
|
|
|
qcCheckTask.setRecordId(belongId);
|
|
|
|
|
qcCheckTask.setCheckStatus("2");//检测状态0待检测1检测中2检测完成
|
|
|
|
|
qcCheckTask.setUpdateTime(nowTime);
|
|
|
|
|
qcCheckTask.setCheckTime(nowTime);
|
|
|
|
|
qcCheckTask.setRemark(qcCheckTaskIncome.getRemark());
|
|
|
|
|
qcCheckTask.setCheckResult(result);//检验结果Y合格 N不合格
|
|
|
|
|
qcCheckTask.setIncomeBatchNo(qcCheckTaskIncome.getIncomeBatchNo());
|
|
|
|
|
BigDecimal noOkQquality = new BigDecimal("0");
|
|
|
|
|
String[] defectQualitys0 = details.get(0).getDefectQualitys().split(",");;
|
|
|
|
|
for(int m=0;m<defectQualitys0.length;m++){
|
|
|
|
|
noOkQquality = noOkQquality.add(new BigDecimal(defectQualitys0[m]));
|
|
|
|
|
}
|
|
|
|
|
qcCheckTask.setNoOkQuality(noOkQquality);
|
|
|
|
|
qcCheckTask.setSampleQuality(qcCheckTaskIncome.getSampleQuality());
|
|
|
|
|
qcCheckTask.setCheckManCode(qcCheckTaskIncome.getUpdateBy());
|
|
|
|
|
qcCheckTask.setCheckManName(qcCheckTaskIncome.getUpdateByName());
|
|
|
|
|
|
|
|
|
|
//BigDecimal sampleQuality = new BigDecimal("0");
|
|
|
|
|
for(QcCheckTaskDetail detail:details){
|
|
|
|
|
detail.setUpdateTime(nowTime);
|
|
|
|
|
//sampleQuality = sampleQuality.add(new BigDecimal(detail.getSampleQuality().equals("")?"0":detail.getSampleQuality()));
|
|
|
|
|
//上传附件
|
|
|
|
|
if (StringUtils.isNotEmpty(detail.getFileListStr())) {
|
|
|
|
|
//qmsFileMapper.clearBaseFileBatch(detail.getRecordId());//清理
|
|
|
|
|
String[] ids = detail.getFileListStr().split(",");
|
|
|
|
|
List<BaseFileData> files = new ArrayList<>();
|
|
|
|
|
BaseFileData file = null;
|
|
|
|
|
for (String id : ids) {
|
|
|
|
|
file = new BaseFileData();
|
|
|
|
|
file.setFileId(IdUtils.fastSimpleUUID());
|
|
|
|
|
file.setFileName(id.split("&fileName=")[1]);
|
|
|
|
|
file.setFileAddress(id);
|
|
|
|
|
file.setSourceId(belongId);
|
|
|
|
|
file.setCreateBy(updateBy);
|
|
|
|
|
file.setCreateTime(nowTime);
|
|
|
|
|
files.add(file);
|
|
|
|
|
}
|
|
|
|
|
/**base_file**/
|
|
|
|
|
n = qmsFileMapper.insertBaseFileBatch(files);
|
|
|
|
|
System.out.println("base_file:"+n);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**qc_check_task**/
|
|
|
|
|
String bpDD = DateUtils.parseDateToStr(DateUtils.YYYYMMDD, DateUtils.getNowDate());
|
|
|
|
|
int liushuiNum = qcCheckTaskIncomeMapper.getTodayMaxNum(qcCheckTaskIncome);
|
|
|
|
|
String liushuiStr = String.format("%04d", liushuiNum);
|
|
|
|
|
qcCheckTask.setCheckNo(bpDD+liushuiStr);
|
|
|
|
|
n = qcCheckTaskIncomeMapper.insertQcCheckTaskIncome(qcCheckTask);
|
|
|
|
|
logger.info("qc_check_task:"+n);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**qc_check_task_defect**/
|
|
|
|
|
n=qcCheckTaskIncomeMapper.deleteQcCheckTaskDefects(belongId);
|
|
|
|
|
logger.info("清理qc_check_task_defect:"+n);
|
|
|
|
|
List<QcCheckTaskDefect> defects = new ArrayList<>();
|
|
|
|
|
QcCheckTaskDefect defect = null;
|
|
|
|
|
for(QcCheckTaskDetail detail:details){
|
|
|
|
|
if(StringUtils.isNotBlank(detail.getDefectCodes())){
|
|
|
|
|
String[] defectCodes = detail.getDefectCodes().split(",");
|
|
|
|
|
String[] defectNames = detail.getDefectNames().split(",");
|
|
|
|
|
String[] defectQualitys = detail.getDefectQualitys().split(",");
|
|
|
|
|
if(StringUtils.isBlank(detail.getClassTypeCodes())){
|
|
|
|
|
detail.setClassTypeCodes(",");//为了防止前端不选缺陷描述
|
|
|
|
|
}
|
|
|
|
|
String[] classIds = detail.getClassTypeCodes().split(",");
|
|
|
|
|
for(int d=0;d<defectCodes.length;d++){
|
|
|
|
|
defect = new QcCheckTaskDefect();
|
|
|
|
|
defect.setDefectCode(defectCodes[d]);
|
|
|
|
|
defect.setDefectSubclass(defectNames[d].split(":")[0]);
|
|
|
|
|
defect.setNoOkQuality(new BigDecimal(defectQualitys[d]));
|
|
|
|
|
if(d < classIds.length){
|
|
|
|
|
defect.setClassId(classIds[d]);
|
|
|
|
|
}else{
|
|
|
|
|
defect.setClassId("");
|
|
|
|
|
}
|
|
|
|
|
defect.setRecordId(IdUtils.fastSimpleUUID());
|
|
|
|
|
defect.setCreateTime(nowTime);
|
|
|
|
|
defect.setCreateBy(updateBy);
|
|
|
|
|
defect.setFactoryCode(factoryCode);
|
|
|
|
|
defect.setBelongTo(belongId);
|
|
|
|
|
defects.add(defect);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(!CollectionUtils.isEmpty(defects)){
|
|
|
|
|
n= qcCheckTaskIncomeMapper.addQcCheckTaskDefects(defects);
|
|
|
|
|
logger.info("qc_check_task_defect:"+n);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// if("material".equals(qcCheckTaskIncome.getTypeCode())){
|
|
|
|
|
// qcCheckTaskIncome.setCheckResult(result.equals("Y")?"1":"2");
|
|
|
|
|
// qcCheckUnqualifiedMapper.updateQualityStatus(qcCheckTaskIncome);
|
|
|
|
|
// }else if("produce".equals(qcCheckTaskIncome.getTypeCode())){
|
|
|
|
|
// if("checkTypeSC".equals(qcCheckTaskIncome.getCheckType())){
|
|
|
|
|
// /**pro_order_workorder_batch-->qc_status->2**/
|
|
|
|
|
// qcCheckTaskIncome.setStatus("2");
|
|
|
|
|
// qcCheckTaskIncome.setCheckResult(result);
|
|
|
|
|
// qcCheckUnqualifiedMapper.updateWorkOrderBatchStatus(qcCheckTaskIncome);
|
|
|
|
|
// }
|
|
|
|
|
// if("checkTypeSC".equals(qcCheckTaskIncome.getCheckType())&&"N".equals(result)){
|
|
|
|
|
// QcCheckTaskIncome recheck = new QcCheckTaskIncome();
|
|
|
|
|
// recheck.setOldBelongTo(belongId);
|
|
|
|
|
//
|
|
|
|
|
// recheck.setCreateBy(updateBy);
|
|
|
|
|
// recheck.setCreateTime(nowTime);
|
|
|
|
|
// //首件不合格触发复检
|
|
|
|
|
// recheck.setRecordId(IdUtils.fastSimpleUUID());
|
|
|
|
|
// recheck.setBelongTo(recheck.getRecordId());
|
|
|
|
|
//
|
|
|
|
|
// n = qcCheckUnqualifiedMapper.repeatCheckTask(recheck);
|
|
|
|
|
// logger.info("复检表qc_check_task:" + n);
|
|
|
|
|
//
|
|
|
|
|
//// n = qcCheckUnqualifiedMapper.repeatCheckTaskDefect(recheck);
|
|
|
|
|
//// logger.info("复检表qc_check_task_defect:" + n);
|
|
|
|
|
//
|
|
|
|
|
// n = qcCheckUnqualifiedMapper.repeatCheckTaskDetail(recheck);
|
|
|
|
|
// logger.info("复检表qc_check_task_detail:" + n);
|
|
|
|
|
//
|
|
|
|
|
// n = qcCheckUnqualifiedMapper.repeatCheckTaskUser(recheck);
|
|
|
|
|
// logger.info("复检表qc_check_task_user:" + n);
|
|
|
|
|
//
|
|
|
|
|
// }
|
|
|
|
|
// }else if("product".equals(qcCheckTaskIncome.getTypeCode())){
|
|
|
|
|
// /**wms_product_put-->check_status->1**/
|
|
|
|
|
// qcCheckTaskIncome.setStatus("2");
|
|
|
|
|
// qcCheckUnqualifiedMapper.updatePutStatus(qcCheckTaskIncome);
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// //不合格处理
|
|
|
|
|
// if("N".equals(result)) {
|
|
|
|
|
// QcCheckUnqualified unqualified = new QcCheckUnqualified();
|
|
|
|
|
// unqualified.setId(IdUtils.fastSimpleUUID());
|
|
|
|
|
// unqualified.setTaskId(belongId);
|
|
|
|
|
// unqualified.setCreateTime(DateUtils.getNowDate());
|
|
|
|
|
// unqualified.setCreateBy(updateBy);
|
|
|
|
|
// unqualified.setFactoryCode(factoryCode);
|
|
|
|
|
// unqualified.setType(checkType);
|
|
|
|
|
// n = qcCheckUnqualifiedMapper.insertQcCheckUnqualified(unqualified);
|
|
|
|
|
// logger.info("qc_check_unqualified:" + n);
|
|
|
|
|
// if("1".equals(qcCheckTaskIncome.getStartOA())){
|
|
|
|
|
// this.setOaFunc(unqualified,qcCheckTaskIncome);
|
|
|
|
|
// }
|
|
|
|
|
// //发送企业微信
|
|
|
|
|
// this.sendWX(qcCheckTaskIncome);
|
|
|
|
|
// }
|
|
|
|
|
return 1 ;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|