|
|
|
@ -28,7 +28,6 @@ import cn.estsh.i3plus.pojo.mes.bean.rework.MesReworkTaskDetail;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.repository.*;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
|
|
|
|
|
import cn.estsh.impp.framework.boot.auth.AuthUtil;
|
|
|
|
|
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
|
|
|
|
|
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
|
|
|
|
|
import cn.estsh.impp.framework.boot.util.ResultBean;
|
|
|
|
@ -43,7 +42,6 @@ import org.springframework.util.StringUtils;
|
|
|
|
|
|
|
|
|
|
import java.util.*;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
import java.util.stream.Stream;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @Description :
|
|
|
|
@ -131,54 +129,54 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
|
|
|
|
|
private MesPartProdGroupRepository mesPartProdGroupRao;
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public MesPartInspectionViewModel queryPartInspection(MesPartInspectionInputModel inputModel, String org) {
|
|
|
|
|
public MesPartInspectionViewModel queryPartInspection(MesPartInspectionInputModel model) {
|
|
|
|
|
|
|
|
|
|
//检查物料
|
|
|
|
|
MesPart part;
|
|
|
|
|
//获取NC-零件检测-单据
|
|
|
|
|
MesPartInspection partInspection = null;
|
|
|
|
|
Integer sourceType = null;
|
|
|
|
|
if (!StringUtils.isEmpty(inputModel.getSn())) {
|
|
|
|
|
Integer sourceType;
|
|
|
|
|
if (!StringUtils.isEmpty(model.getSn())) {
|
|
|
|
|
// 数据校验
|
|
|
|
|
ValidatorBean.checkNotNull(inputModel.getFrontBack(), "正反面不能为空");
|
|
|
|
|
ValidatorBean.checkNotNull(model.getFrontBack(), "正反面不能为空");
|
|
|
|
|
//检查条码
|
|
|
|
|
MesProduceSn produceSn = checkProduceSn(inputModel.getSn(), org);
|
|
|
|
|
MesProduceSn produceSn = checkProduceSn(model.getSn(), model.getOrganizeCode());
|
|
|
|
|
|
|
|
|
|
//获取NC-零件检测-单据
|
|
|
|
|
partInspection = getPartInspection(produceSn,inputModel, org);
|
|
|
|
|
partInspection = getPartInspection(produceSn, model, model.getOrganizeCode());
|
|
|
|
|
|
|
|
|
|
//检查物料
|
|
|
|
|
part = checkPart(produceSn, org);
|
|
|
|
|
part = checkPart(produceSn, model.getOrganizeCode());
|
|
|
|
|
|
|
|
|
|
sourceType = MesExtEnumUtil.PART_INSPECTION_SOURCE_TYPE.SINGLE.getValue();
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
// 数据校验
|
|
|
|
|
ValidatorBean.checkNotNull(inputModel.getPartNo(), "物料不能为空");
|
|
|
|
|
ValidatorBean.checkNotNull(inputModel.getLotNo(), "批次不能为空");
|
|
|
|
|
ValidatorBean.checkNotNull(inputModel.getFrontBack(), "正反面不能为空");
|
|
|
|
|
ValidatorBean.checkNotNull(inputModel.getQty(), "数量不能为空");
|
|
|
|
|
ValidatorBean.checkNotNull(model.getPartNo(), "物料不能为空");
|
|
|
|
|
ValidatorBean.checkNotNull(model.getLotNo(), "批次不能为空");
|
|
|
|
|
ValidatorBean.checkNotNull(model.getFrontBack(), "正反面不能为空");
|
|
|
|
|
ValidatorBean.checkNotNull(model.getQty(), "数量不能为空");
|
|
|
|
|
|
|
|
|
|
//检查物料
|
|
|
|
|
part = checkPartByPartNo(inputModel.getPartNo(), org);
|
|
|
|
|
part = checkPartByPartNo(model.getPartNo(), model.getOrganizeCode());
|
|
|
|
|
|
|
|
|
|
//获取NC-零件检测-单据
|
|
|
|
|
if(!Objects.isNull(inputModel.getId())){
|
|
|
|
|
partInspection = getPartInspectionByPartAndLot(inputModel, org);
|
|
|
|
|
if(!Objects.isNull(model.getId())){
|
|
|
|
|
partInspection = getPartInspectionByPartAndLot(model, model.getOrganizeCode());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
sourceType = MesExtEnumUtil.PART_INSPECTION_SOURCE_TYPE.LOT.getValue();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//检查零件类型与图片对应关系
|
|
|
|
|
MesPartTypePicture partTypePicture = checkPartTypePicture(part, org);
|
|
|
|
|
MesPartTypePicture partTypePicture = checkPartTypePicture(part, model.getOrganizeCode());
|
|
|
|
|
|
|
|
|
|
//构造返回信息
|
|
|
|
|
MesPartInspectionViewModel model = getModel(partInspection, part, partTypePicture, inputModel, sourceType, org);
|
|
|
|
|
model.setSourceType(sourceType);
|
|
|
|
|
model.setTransferFlg(inputModel.isTransferFlg());
|
|
|
|
|
MesPartInspectionViewModel result = getModel(partInspection, part, partTypePicture, model, sourceType);
|
|
|
|
|
result.setSourceType(sourceType);
|
|
|
|
|
result.setTransferFlg(model.isTransferFlg());
|
|
|
|
|
|
|
|
|
|
return model;
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -235,12 +233,11 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
|
|
|
|
|
* 完成质检-保存不良记录
|
|
|
|
|
*
|
|
|
|
|
* @param model
|
|
|
|
|
* @param org
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public void savePartInspection(MesPartInspectionInputModel model, String org) {
|
|
|
|
|
public void savePartInspection(MesPartInspectionInputModel model) {
|
|
|
|
|
|
|
|
|
|
MesProduceSn produceSn = getProduceSn(model.getSn(), org);
|
|
|
|
|
MesProduceSn produceSn = getProduceSn(model.getSn(), model.getOrganizeCode());
|
|
|
|
|
if (null != produceSn && StringUtils.isEmpty(model.getPartNo())) model.setPartNo(produceSn.getPartNo());
|
|
|
|
|
//武汉 会输入客户条码
|
|
|
|
|
boolean isWorkOrderQcStatus=false;
|
|
|
|
@ -248,7 +245,7 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
|
|
|
|
|
model.setCustSn(produceSn.getCustSn());
|
|
|
|
|
model.setSn(produceSn.getProductSn());
|
|
|
|
|
//排序产线 更新工单的 qcStatus
|
|
|
|
|
MesWorkCenter centerDb = prodOrgExtService.getWorkCenterDb(org, produceSn.getWorkCenterCode());
|
|
|
|
|
MesWorkCenter centerDb = prodOrgExtService.getWorkCenterDb(model.getOrganizeCode(), produceSn.getWorkCenterCode());
|
|
|
|
|
if (!StringUtil.isEmpty(centerDb)){
|
|
|
|
|
isWorkOrderQcStatus= centerDb.getCenterType() == MesExtEnumUtil.WORK_CENTER_TYPE.SORT.getValue();
|
|
|
|
|
}
|
|
|
|
@ -258,14 +255,14 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
|
|
|
|
|
model.getPartInspection().setQmsSync(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
|
|
|
|
|
}
|
|
|
|
|
if(!Objects.isNull(model.getPart())){
|
|
|
|
|
model.setPart(mesPartService.getMesPartSapByPartNo(model.getPart().getPartNo(), org));
|
|
|
|
|
model.setPart(mesPartService.getMesPartSapByPartNo(model.getPart().getPartNo(), model.getOrganizeCode()));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 是否头零件模式
|
|
|
|
|
boolean headModel = true;
|
|
|
|
|
if (!StringUtil.isEmpty(model.getSn())) {
|
|
|
|
|
// 判断是头零件还是散件 查询加工记录
|
|
|
|
|
DdlPackBean productionPackBean = DdlPackBean.getDdlPackBean(org);
|
|
|
|
|
DdlPackBean productionPackBean = DdlPackBean.getDdlPackBean(model.getOrganizeCode());
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(model.getSn(), "productSn", productionPackBean);
|
|
|
|
|
DdlPreparedPack.getNumNOEqualPack(MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_30.getValue(), "reportStatus", productionPackBean);
|
|
|
|
|
DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.MES_REPORT_TYPE.CUSTOMER_SUPPLY_MOVE.getValue(), "reportType", productionPackBean);
|
|
|
|
@ -277,19 +274,19 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
|
|
|
|
|
// 如果是散件模式,需要查询出对应明细
|
|
|
|
|
List<MesPartModel> mesPartModels = new ArrayList<>();
|
|
|
|
|
if (!headModel) {
|
|
|
|
|
DdlPackBean partPackBean = DdlPackBean.getDdlPackBean(org);
|
|
|
|
|
DdlPackBean partPackBean = DdlPackBean.getDdlPackBean(model.getOrganizeCode());
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(model.getSn(), "workOrderNo", partPackBean);
|
|
|
|
|
List<MesWorkOrderPart> workOrderParts = workOrderPartRepository.findByHqlWhere(partPackBean);
|
|
|
|
|
if (!CollectionUtils.isEmpty(workOrderParts)) {
|
|
|
|
|
DdlPackBean partProdBean = DdlPackBean.getDdlPackBean(org);
|
|
|
|
|
DdlPackBean partProdBean = DdlPackBean.getDdlPackBean(model.getOrganizeCode());
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(produceSn.getWorkCenterCode(), "workCenterCode", partProdBean);
|
|
|
|
|
List<MesPartProdGroup> mesPartProdGroupList = mesPartProdGroupRao.findByHqlTopWhere(partProdBean, 1);
|
|
|
|
|
for (MesWorkOrderPart workOrderPart : workOrderParts) {
|
|
|
|
|
MesPart partInfo = mesPartService.getMesPartByPartNo(workOrderPart.getPartNo(), org);
|
|
|
|
|
MesPart partInfo = mesPartService.getMesPartByPartNo(workOrderPart.getPartNo(), model.getOrganizeCode());
|
|
|
|
|
String esd = partInfo.getEsd();
|
|
|
|
|
|
|
|
|
|
// 查询移库规则
|
|
|
|
|
DdlPackBean movePackBean = DdlPackBean.getDdlPackBean(org);
|
|
|
|
|
DdlPackBean movePackBean = DdlPackBean.getDdlPackBean(model.getOrganizeCode());
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(esd, "srcType", movePackBean);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(mesPartProdGroupList.get(0).getPartProdGroupCode(), "code", movePackBean);
|
|
|
|
|
List<MesMoveRule> moveRules = mesMoveRuleRepository.findByHqlWhere(movePackBean);
|
|
|
|
@ -314,7 +311,7 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
|
|
|
|
|
//若检验单为空,则生成新的单据并合格
|
|
|
|
|
if (StringUtils.isEmpty(model.getPartInspection())) {
|
|
|
|
|
|
|
|
|
|
partInspection = createPartInspection(model, MesExtEnumUtil.PART_INSPECTION_STATUS.QUALIFIED.getValue(), org);
|
|
|
|
|
partInspection = createPartInspection(model, MesExtEnumUtil.PART_INSPECTION_STATUS.QUALIFIED.getValue(), model.getOrganizeCode());
|
|
|
|
|
if (model.getOptType() != null && model.getOptType() == 2) {
|
|
|
|
|
partInspection.setRefundFlag(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
|
|
|
|
|
}
|
|
|
|
@ -323,14 +320,14 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
|
|
|
|
|
if (model.getSourceType() == MesExtEnumUtil.PART_INSPECTION_SOURCE_TYPE.SINGLE.getValue()) {
|
|
|
|
|
checkProduceSn(produceSn, model.getSn());
|
|
|
|
|
produceSn.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue());
|
|
|
|
|
ConvertBean.serviceModelInitialize(produceSn, AuthUtil.getSessionUser().getUserName());
|
|
|
|
|
ConvertBean.serviceModelInitialize(produceSn, model.getUserInfo());
|
|
|
|
|
produceSnExtService.update(produceSn);
|
|
|
|
|
//更新工单对应qcStatus
|
|
|
|
|
if(isWorkOrderQcStatus){
|
|
|
|
|
MesWorkOrder workOrder = getWorkOrder(org,produceSn.getWorkOrderNo());
|
|
|
|
|
MesWorkOrder workOrder = getWorkOrder(model.getOrganizeCode(), produceSn.getWorkOrderNo());
|
|
|
|
|
if (!StringUtil.isEmpty(workOrder)){
|
|
|
|
|
workOrder.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue());
|
|
|
|
|
ConvertBean.serviceModelUpdate(workOrder, AuthUtil.getSessionUser().getUserName());
|
|
|
|
|
ConvertBean.serviceModelUpdate(workOrder, model.getUserInfo());
|
|
|
|
|
workOrderRepository.update(workOrder);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -341,7 +338,7 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
|
|
|
|
|
//原单据不合格 现合格
|
|
|
|
|
if (model.getPartInspection().getInspectionStatus() == MesExtEnumUtil.PART_INSPECTION_STATUS.FAIL.getValue()) {
|
|
|
|
|
model.getPartInspection().setInspectionStatus(MesExtEnumUtil.PART_INSPECTION_STATUS.QUALIFIED.getValue());
|
|
|
|
|
ConvertBean.serviceModelUpdate(model.getPartInspection(), AuthUtil.getSessionUser().getUserName());
|
|
|
|
|
ConvertBean.serviceModelUpdate(model.getPartInspection(), model.getUserInfo());
|
|
|
|
|
|
|
|
|
|
if (model.getOptType() != null && model.getOptType() == 2) {
|
|
|
|
|
model.getPartInspection().setRefundFlag(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
|
|
|
|
@ -349,13 +346,13 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
|
|
|
|
|
partInspectionRepository.save(model.getPartInspection());
|
|
|
|
|
|
|
|
|
|
//查询当前单据明细
|
|
|
|
|
List<MesPartInspectionDetail> resultDetailList = queryResultDetailList(model, org);
|
|
|
|
|
List<MesPartInspectionDetail> resultDetailList = queryResultDetailList(model, model.getOrganizeCode());
|
|
|
|
|
|
|
|
|
|
List<String> defectTypeNoExitList = new ArrayList<>();
|
|
|
|
|
for (MesPartInspectionDetail detail : model.getPartInspectionDetailList()) {
|
|
|
|
|
|
|
|
|
|
//根据页面上选择的位置 查询位置,若不存在则提示 位置不存在,请检查数据
|
|
|
|
|
DdlPackBean packBean = DdlPackBean.getDdlPackBean(org);
|
|
|
|
|
DdlPackBean packBean = DdlPackBean.getDdlPackBean(model.getOrganizeCode());
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(detail.getDefectLocation(), "defectTypeCode", packBean);
|
|
|
|
|
DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.DEFECT_CATEGORY.POSITION.getValue(), "defectType", packBean);
|
|
|
|
|
MesDefectType defectType = defectTypeRepository.getByProperty(packBean);
|
|
|
|
@ -367,10 +364,10 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
|
|
|
|
|
|
|
|
|
|
detail.setDefectTypeId(defectType.getId());
|
|
|
|
|
detail.setId(null);
|
|
|
|
|
detail.setOrganizeCode(org);
|
|
|
|
|
detail.setOrganizeCode(model.getOrganizeCode());
|
|
|
|
|
detail.setPid(model.getPartInspection().getId());
|
|
|
|
|
setSystemSyncStatus(detail);
|
|
|
|
|
ConvertBean.serviceModelInitialize(detail, AuthUtil.getSessionUser().getUserName());
|
|
|
|
|
ConvertBean.serviceModelInitialize(detail, model.getUserInfo());
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
if (!CollectionUtils.isEmpty(defectTypeNoExitList)) {
|
|
|
|
@ -383,37 +380,37 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
|
|
|
|
|
if (model.getSourceType() == MesExtEnumUtil.PART_INSPECTION_SOURCE_TYPE.SINGLE.getValue()) {
|
|
|
|
|
checkProduceSn(produceSn, model.getSn());
|
|
|
|
|
produceSn.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue());
|
|
|
|
|
ConvertBean.serviceModelInitialize(produceSn, AuthUtil.getSessionUser().getUserName());
|
|
|
|
|
ConvertBean.serviceModelInitialize(produceSn, model.getUserInfo());
|
|
|
|
|
produceSnExtService.update(produceSn);
|
|
|
|
|
//更新工单对应qcStatus
|
|
|
|
|
if(isWorkOrderQcStatus){
|
|
|
|
|
MesWorkOrder workOrder = getWorkOrder(org,produceSn.getWorkOrderNo());
|
|
|
|
|
MesWorkOrder workOrder = getWorkOrder(model.getOrganizeCode(), produceSn.getWorkOrderNo());
|
|
|
|
|
if (!StringUtil.isEmpty(workOrder)){
|
|
|
|
|
workOrder.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue());
|
|
|
|
|
ConvertBean.serviceModelUpdate(workOrder, AuthUtil.getSessionUser().getUserName());
|
|
|
|
|
ConvertBean.serviceModelUpdate(workOrder, model.getUserInfo());
|
|
|
|
|
workOrderRepository.update(workOrder);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//移库
|
|
|
|
|
String srcLocate;
|
|
|
|
|
MesMove mesMove = getMesMove(model, org);
|
|
|
|
|
MesMove mesMove = getMesMove(model, model.getOrganizeCode());
|
|
|
|
|
if(!Objects.isNull(mesMove)){
|
|
|
|
|
srcLocate = mesMove.getUmlgo();
|
|
|
|
|
}else{
|
|
|
|
|
srcLocate= configService.getCfgValue(org, "UMLGO");
|
|
|
|
|
srcLocate= configService.getCfgValue(model.getOrganizeCode(), "UMLGO");
|
|
|
|
|
}
|
|
|
|
|
if (model.getOptType() != 2) {
|
|
|
|
|
|
|
|
|
|
if (!headModel && !CollectionUtils.isEmpty(mesPartModels) && mesPartModels.size() > 0) {
|
|
|
|
|
for (MesPartModel mesPartModel : mesPartModels) {
|
|
|
|
|
//移库
|
|
|
|
|
MesMove move = createMove(model, srcLocate, mesPartModel.getLocateNo(), org, null == produceSn ? model.getWorkCenterCode() : produceSn.getWorkCenterCode(),mesPartModel.getPartNo());
|
|
|
|
|
MesMove move = createMove(model, srcLocate, mesPartModel.getLocateNo(), model.getOrganizeCode(), null == produceSn ? model.getWorkCenterCode() : produceSn.getWorkCenterCode(),mesPartModel.getPartNo());
|
|
|
|
|
moveRepository.save(move);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
//移库
|
|
|
|
|
MesMove move = createMove(model, srcLocate, configService.getCfgValue(org, "LGORT"), org, null == produceSn ? model.getWorkCenterCode() : produceSn.getWorkCenterCode());
|
|
|
|
|
MesMove move = createMove(model, srcLocate, configService.getCfgValue(model.getOrganizeCode(), "LGORT"), model.getOrganizeCode(), null == produceSn ? model.getWorkCenterCode() : produceSn.getWorkCenterCode());
|
|
|
|
|
moveRepository.save(move);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -422,9 +419,9 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
|
|
|
|
|
}
|
|
|
|
|
if (model.isTransferFlg() && model.getSourceType() == MesExtEnumUtil.PART_INSPECTION_SOURCE_TYPE.SINGLE.getValue()) {
|
|
|
|
|
//电子化检验
|
|
|
|
|
String target = configService.getCfgValue(org, "LGORT");
|
|
|
|
|
String target = configService.getCfgValue(model.getOrganizeCode(), "LGORT");
|
|
|
|
|
|
|
|
|
|
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(org);
|
|
|
|
|
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(model.getOrganizeCode());
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(model.getPartNo(), "partNo", ddlPackBean);
|
|
|
|
|
|
|
|
|
|
MesProductVersion version = productVersionRepository.getByProperty(ddlPackBean);
|
|
|
|
@ -436,13 +433,13 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
|
|
|
|
|
model.setPartInspection(partInspection);
|
|
|
|
|
}
|
|
|
|
|
if (!headModel && !CollectionUtils.isEmpty(mesPartModels) && mesPartModels.size() > 0) {
|
|
|
|
|
String locateNo = getDestLocateNo(model, org);
|
|
|
|
|
String locateNo = getDestLocateNo(model, model.getOrganizeCode());
|
|
|
|
|
for (MesPartModel mesPartModel : mesPartModels) {
|
|
|
|
|
MesMove move = createMove(model,locateNo , mesPartModel.getLocateNo(), org, null == produceSn ? model.getWorkCenterCode() : produceSn.getWorkCenterCode(), mesPartModel.getPartNo());
|
|
|
|
|
MesMove move = createMove(model,locateNo , mesPartModel.getLocateNo(), model.getOrganizeCode(), null == produceSn ? model.getWorkCenterCode() : produceSn.getWorkCenterCode(), mesPartModel.getPartNo());
|
|
|
|
|
moveRepository.save(move);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
MesMove move = createMove(model, getDestLocateNo(model, org), target, org, null == produceSn ? model.getWorkCenterCode() : produceSn.getWorkCenterCode());
|
|
|
|
|
MesMove move = createMove(model, getDestLocateNo(model, model.getOrganizeCode()), target, model.getOrganizeCode(), null == produceSn ? model.getWorkCenterCode() : produceSn.getWorkCenterCode());
|
|
|
|
|
moveRepository.save(move);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -454,7 +451,7 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
|
|
|
|
|
if (StringUtils.isEmpty(model.getPartInspection())) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
partInspection = createPartInspection(model, MesExtEnumUtil.PART_INSPECTION_STATUS.FAIL.getValue(), org);
|
|
|
|
|
partInspection = createPartInspection(model, MesExtEnumUtil.PART_INSPECTION_STATUS.FAIL.getValue(), model.getOrganizeCode());
|
|
|
|
|
|
|
|
|
|
if (model.getOptType() != null && model.getOptType() == 2) {
|
|
|
|
|
partInspection.setRefundFlag(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
|
|
|
|
@ -466,7 +463,7 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
|
|
|
|
|
for (MesPartInspectionDetail detail : model.getPartInspectionDetailList()) {
|
|
|
|
|
|
|
|
|
|
//根据页面上选择的位置 查询位置,若不存在则提示 位置不存在,请检查数据
|
|
|
|
|
DdlPackBean packBean = DdlPackBean.getDdlPackBean(org);
|
|
|
|
|
DdlPackBean packBean = DdlPackBean.getDdlPackBean(model.getOrganizeCode());
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(detail.getDefectLocation(), "defectTypeCode", packBean);
|
|
|
|
|
DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.DEFECT_CATEGORY.POSITION.getValue(), "defectType", packBean);
|
|
|
|
|
MesDefectType defectType = defectTypeRepository.getByProperty(packBean);
|
|
|
|
@ -478,10 +475,10 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
|
|
|
|
|
|
|
|
|
|
detail.setDefectTypeId(defectType.getId());
|
|
|
|
|
detail.setId(null);
|
|
|
|
|
detail.setOrganizeCode(org);
|
|
|
|
|
detail.setOrganizeCode(model.getOrganizeCode());
|
|
|
|
|
detail.setPid(partInspection.getId());
|
|
|
|
|
setSystemSyncStatus(detail);
|
|
|
|
|
ConvertBean.serviceModelInitialize(detail, AuthUtil.getSessionUser().getUserName());
|
|
|
|
|
ConvertBean.serviceModelInitialize(detail, model.getUserInfo());
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
if (!CollectionUtils.isEmpty(defectTypeNoExitList)) {
|
|
|
|
@ -494,7 +491,7 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
|
|
|
|
|
//若是扫描条码 则判定条码可疑
|
|
|
|
|
if (model.getSourceType() == MesExtEnumUtil.PART_INSPECTION_SOURCE_TYPE.SINGLE.getValue()) {
|
|
|
|
|
//已创建返修单
|
|
|
|
|
DdlPackBean reworkPackBean = DdlPackBean.getDdlPackBean(org);
|
|
|
|
|
DdlPackBean reworkPackBean = DdlPackBean.getDdlPackBean(model.getOrganizeCode());
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(model.getSn(), "sn", reworkPackBean);
|
|
|
|
|
DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.REWORK_TASK_STATUS.FINISH.getValue(), "status", reworkPackBean);
|
|
|
|
|
|
|
|
|
@ -502,14 +499,14 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
|
|
|
|
|
int count = reworkTaskRepository.findByHqlWhereCount(reworkPackBean);
|
|
|
|
|
if (count > 0) {
|
|
|
|
|
// 如果是批次还需要移库
|
|
|
|
|
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(org);
|
|
|
|
|
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(model.getOrganizeCode());
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(model.getPartNo(), "partNo", ddlPackBean);
|
|
|
|
|
MesProductVersion version = productVersionRepository.getByProperty(ddlPackBean);
|
|
|
|
|
String srcNo = configService.getCfgValue(org, "LGORT");
|
|
|
|
|
String srcNo = configService.getCfgValue(model.getOrganizeCode(), "LGORT");
|
|
|
|
|
if (version != null) {
|
|
|
|
|
srcNo = version.getReceiveInventoryPoint();
|
|
|
|
|
}
|
|
|
|
|
String destLocateNo = getDestLocateNo(model, org);
|
|
|
|
|
String destLocateNo = getDestLocateNo(model, model.getOrganizeCode());
|
|
|
|
|
if(!Objects.equals(srcNo, destLocateNo)) {
|
|
|
|
|
throw new ImppBusiException(String.format("【%s】该条码需要完成质检,再重新录入电子化检验", model.getSn()));
|
|
|
|
|
}
|
|
|
|
@ -517,14 +514,14 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
|
|
|
|
|
|
|
|
|
|
checkProduceSn(produceSn, model.getSn());
|
|
|
|
|
produceSn.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.SUSPICIOUS.getValue());
|
|
|
|
|
ConvertBean.serviceModelInitialize(produceSn, AuthUtil.getSessionUser().getUserName());
|
|
|
|
|
ConvertBean.serviceModelInitialize(produceSn, model.getUserInfo());
|
|
|
|
|
produceSnExtService.update(produceSn);
|
|
|
|
|
//更新工单对应qcStatus
|
|
|
|
|
if(isWorkOrderQcStatus){
|
|
|
|
|
MesWorkOrder workOrder = getWorkOrder(org,produceSn.getWorkOrderNo());
|
|
|
|
|
MesWorkOrder workOrder = getWorkOrder(model.getOrganizeCode(), produceSn.getWorkOrderNo());
|
|
|
|
|
if (!StringUtil.isEmpty(workOrder)){
|
|
|
|
|
workOrder.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.SUSPICIOUS.getValue());
|
|
|
|
|
ConvertBean.serviceModelUpdate(workOrder, AuthUtil.getSessionUser().getUserName());
|
|
|
|
|
ConvertBean.serviceModelUpdate(workOrder, model.getUserInfo());
|
|
|
|
|
workOrderRepository.update(workOrder);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -533,9 +530,9 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
|
|
|
|
|
// srcLocateNo = getDestLocateNo(model, org);
|
|
|
|
|
}
|
|
|
|
|
if (Objects.isNull(srcLocateNo)) {
|
|
|
|
|
srcLocateNo = configService.getCfgValue(org, "LGORT");
|
|
|
|
|
srcLocateNo = configService.getCfgValue(model.getOrganizeCode(), "LGORT");
|
|
|
|
|
|
|
|
|
|
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(org);
|
|
|
|
|
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(model.getOrganizeCode());
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(model.getPartNo(), "partNo", ddlPackBean);
|
|
|
|
|
|
|
|
|
|
MesProductVersion version = productVersionRepository.getByProperty(ddlPackBean);
|
|
|
|
@ -546,7 +543,7 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
|
|
|
|
|
String workCenterCode;
|
|
|
|
|
if (model.getSourceType() == MesExtEnumUtil.PART_INSPECTION_SOURCE_TYPE.SINGLE.getValue()) {
|
|
|
|
|
if (null == produceSn || StringUtils.isEmpty(produceSn.getProcessCode())) {
|
|
|
|
|
List<MesWorkCenterPartRelation> workCenterPartRelationList = getWorkCenterPartRelation(org, model.getPartNo());
|
|
|
|
|
List<MesWorkCenterPartRelation> workCenterPartRelationList = getWorkCenterPartRelation(model.getOrganizeCode(), model.getPartNo());
|
|
|
|
|
if (CollectionUtils.isEmpty(workCenterPartRelationList) || workCenterPartRelationList.size() > 1 || StringUtils.isEmpty(workCenterPartRelationList.get(0).getWorkCenterCode())) {
|
|
|
|
|
throw new ImppBusiException(String.format("条码[%s]未查询到有效的来源库位!", model.getSn()));
|
|
|
|
|
}
|
|
|
|
@ -558,7 +555,7 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
|
|
|
|
|
workCenterCode = model.getWorkCenterCode();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
MesWorkCenter workCenter = prodOrgExtService.getWorkCenterDb(org, workCenterCode);
|
|
|
|
|
MesWorkCenter workCenter = prodOrgExtService.getWorkCenterDb(model.getOrganizeCode(), workCenterCode);
|
|
|
|
|
if (null == workCenter) throw new ImppBusiException(String.format("条码[%s]查询来源库位时获取的生产线代码[%s]信息不存在!", model.getSn(), workCenterCode));
|
|
|
|
|
if (StringUtils.isEmpty(workCenter.getRawLocate())) throw new ImppBusiException(String.format("条码[%s]查询来源库位时获取的生产线代码[%s]信息未维护[材料库位]!", model.getSn(), workCenterCode));
|
|
|
|
|
srcLocateNo = workCenter.getRawLocate();
|
|
|
|
@ -568,20 +565,20 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
|
|
|
|
|
if (model.getOptType() != 2) {
|
|
|
|
|
//移库
|
|
|
|
|
//移库
|
|
|
|
|
String dest = configService.getCfgValue(org, "UMLGO");
|
|
|
|
|
String dest = configService.getCfgValue(model.getOrganizeCode(), "UMLGO");
|
|
|
|
|
if (model.getSourceType() == MesExtEnumUtil.PART_INSPECTION_SOURCE_TYPE.SINGLE.getValue()){
|
|
|
|
|
String destLocateNo = getDestLocateNo(model, org);
|
|
|
|
|
String destLocateNo = getDestLocateNo(model, model.getOrganizeCode());
|
|
|
|
|
if (!StringUtils.isEmpty(destLocateNo) && Objects.equals(dest, destLocateNo)) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (!headModel && !CollectionUtils.isEmpty(mesPartModels) && mesPartModels.size() > 0) {
|
|
|
|
|
for (MesPartModel mesPartModel : mesPartModels) {
|
|
|
|
|
MesMove move = createMove(model, mesPartModel.getLocateNo(), dest, org, null == produceSn ? model.getWorkCenterCode() : produceSn.getWorkCenterCode(),mesPartModel.getPartNo());
|
|
|
|
|
MesMove move = createMove(model, mesPartModel.getLocateNo(), dest, model.getOrganizeCode(), null == produceSn ? model.getWorkCenterCode() : produceSn.getWorkCenterCode(), mesPartModel.getPartNo());
|
|
|
|
|
moveRepository.save(move);
|
|
|
|
|
}
|
|
|
|
|
} else{
|
|
|
|
|
MesMove move = createMove(model, srcLocateNo, dest, org, null == produceSn ? model.getWorkCenterCode() : produceSn.getWorkCenterCode());
|
|
|
|
|
MesMove move = createMove(model, srcLocateNo, dest, model.getOrganizeCode(), null == produceSn ? model.getWorkCenterCode() : produceSn.getWorkCenterCode());
|
|
|
|
|
moveRepository.save(move);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -590,19 +587,19 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
|
|
model.getPartInspection().setInspectionStatus(MesExtEnumUtil.PART_INSPECTION_STATUS.FAIL.getValue());
|
|
|
|
|
ConvertBean.serviceModelUpdate(model.getPartInspection(), AuthUtil.getSessionUser().getUserName());
|
|
|
|
|
ConvertBean.serviceModelUpdate(model.getPartInspection(), model.getUserInfo());
|
|
|
|
|
if (model.getOptType() != null && model.getOptType() == 2) {
|
|
|
|
|
model.getPartInspection().setRefundFlag(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
|
|
|
|
|
}
|
|
|
|
|
partInspectionRepository.save(model.getPartInspection());
|
|
|
|
|
//查询当前单据明细
|
|
|
|
|
List<MesPartInspectionDetail> resultDetailList = queryResultDetailList(model, org);
|
|
|
|
|
List<MesPartInspectionDetail> resultDetailList = queryResultDetailList(model, model.getOrganizeCode());
|
|
|
|
|
|
|
|
|
|
List<String> defectTypeNoExitList = new ArrayList<>();
|
|
|
|
|
for (MesPartInspectionDetail detail : model.getPartInspectionDetailList()) {
|
|
|
|
|
|
|
|
|
|
//根据页面上选择的位置 查询位置,若不存在则提示 位置不存在,请检查数据
|
|
|
|
|
DdlPackBean packBean = DdlPackBean.getDdlPackBean(org);
|
|
|
|
|
DdlPackBean packBean = DdlPackBean.getDdlPackBean(model.getOrganizeCode());
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(detail.getDefectLocation(), "defectTypeCode", packBean);
|
|
|
|
|
DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.DEFECT_CATEGORY.POSITION.getValue(), "defectType", packBean);
|
|
|
|
|
MesDefectType defectType = defectTypeRepository.getByProperty(packBean);
|
|
|
|
@ -614,10 +611,10 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
|
|
|
|
|
|
|
|
|
|
detail.setDefectTypeId(defectType.getId());
|
|
|
|
|
detail.setId(null);
|
|
|
|
|
detail.setOrganizeCode(org);
|
|
|
|
|
detail.setOrganizeCode(model.getOrganizeCode());
|
|
|
|
|
detail.setPid(model.getPartInspection().getId());
|
|
|
|
|
setSystemSyncStatus(detail);
|
|
|
|
|
ConvertBean.serviceModelInitialize(detail, AuthUtil.getSessionUser().getUserName());
|
|
|
|
|
ConvertBean.serviceModelInitialize(detail, model.getUserInfo());
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
if (!CollectionUtils.isEmpty(defectTypeNoExitList)) {
|
|
|
|
@ -628,7 +625,7 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
|
|
|
|
|
if (model.getSourceType() == MesExtEnumUtil.PART_INSPECTION_SOURCE_TYPE.SINGLE.getValue()) {
|
|
|
|
|
|
|
|
|
|
//已创建返修单
|
|
|
|
|
DdlPackBean reworkPackBean = DdlPackBean.getDdlPackBean(org);
|
|
|
|
|
DdlPackBean reworkPackBean = DdlPackBean.getDdlPackBean(model.getOrganizeCode());
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(model.getSn(), "sn", reworkPackBean);
|
|
|
|
|
DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.REWORK_TASK_STATUS.FINISH.getValue(), "status", reworkPackBean);
|
|
|
|
|
|
|
|
|
@ -636,14 +633,14 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
|
|
|
|
|
int count = reworkTaskRepository.findByHqlWhereCount(reworkPackBean);
|
|
|
|
|
if (count > 0) {
|
|
|
|
|
// 如果是批次还需要移库
|
|
|
|
|
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(org);
|
|
|
|
|
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(model.getOrganizeCode());
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(model.getPartNo(), "partNo", ddlPackBean);
|
|
|
|
|
MesProductVersion version = productVersionRepository.getByProperty(ddlPackBean);
|
|
|
|
|
String srcNo = configService.getCfgValue(org, "LGORT");
|
|
|
|
|
String srcNo = configService.getCfgValue(model.getOrganizeCode(), "LGORT");
|
|
|
|
|
if (version != null) {
|
|
|
|
|
srcNo = version.getReceiveInventoryPoint();
|
|
|
|
|
}
|
|
|
|
|
String destLocateNo = getDestLocateNo(model, org);
|
|
|
|
|
String destLocateNo = getDestLocateNo(model, model.getOrganizeCode());
|
|
|
|
|
if (!Objects.equals(srcNo, destLocateNo)) {
|
|
|
|
|
throw new ImppBusiException(String.format("【%s】该条码需要完成质检,再重新录入电子化检验", model.getSn()));
|
|
|
|
|
}
|
|
|
|
@ -651,14 +648,14 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
|
|
|
|
|
|
|
|
|
|
checkProduceSn(produceSn, model.getSn());
|
|
|
|
|
produceSn.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.SUSPICIOUS.getValue());
|
|
|
|
|
ConvertBean.serviceModelInitialize(produceSn, AuthUtil.getSessionUser().getUserName());
|
|
|
|
|
ConvertBean.serviceModelInitialize(produceSn, model.getUserInfo());
|
|
|
|
|
produceSnExtService.update(produceSn);
|
|
|
|
|
//更新工单对应qcStatus
|
|
|
|
|
if(isWorkOrderQcStatus){
|
|
|
|
|
MesWorkOrder workOrder = getWorkOrder(org,produceSn.getWorkOrderNo());
|
|
|
|
|
MesWorkOrder workOrder = getWorkOrder(model.getOrganizeCode(), produceSn.getWorkOrderNo());
|
|
|
|
|
if (!StringUtil.isEmpty(workOrder)){
|
|
|
|
|
workOrder.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.SUSPICIOUS.getValue());
|
|
|
|
|
ConvertBean.serviceModelUpdate(workOrder, AuthUtil.getSessionUser().getUserName());
|
|
|
|
|
ConvertBean.serviceModelUpdate(workOrder, model.getUserInfo());
|
|
|
|
|
workOrderRepository.update(workOrder);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -668,9 +665,9 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
|
|
|
|
|
|
|
|
|
|
//移库
|
|
|
|
|
if (model.getOptType() != 2) {
|
|
|
|
|
String srcLocateNo = configService.getCfgValue(org, "LGORT");
|
|
|
|
|
String srcLocateNo = configService.getCfgValue(model.getOrganizeCode(), "LGORT");
|
|
|
|
|
|
|
|
|
|
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(org);
|
|
|
|
|
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(model.getOrganizeCode());
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(model.getPartNo(), "partNo", ddlPackBean);
|
|
|
|
|
|
|
|
|
|
MesProductVersion version = productVersionRepository.getByProperty(ddlPackBean);
|
|
|
|
@ -678,9 +675,9 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
|
|
|
|
|
srcLocateNo = version.getReceiveInventoryPoint();
|
|
|
|
|
}
|
|
|
|
|
//移库
|
|
|
|
|
String dest = configService.getCfgValue(org, "UMLGO");
|
|
|
|
|
String dest = configService.getCfgValue(model.getOrganizeCode(), "UMLGO");
|
|
|
|
|
if (model.getSourceType() == MesExtEnumUtil.PART_INSPECTION_SOURCE_TYPE.SINGLE.getValue()){
|
|
|
|
|
String destLocateNo = getDestLocateNo(model, org);
|
|
|
|
|
String destLocateNo = getDestLocateNo(model, model.getOrganizeCode());
|
|
|
|
|
if (!StringUtils.isEmpty(destLocateNo) && Objects.equals(dest, destLocateNo)) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
@ -688,11 +685,11 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
|
|
|
|
|
if (!headModel && !CollectionUtils.isEmpty(mesPartModels) && mesPartModels.size() > 0) {
|
|
|
|
|
for (MesPartModel mesPartModel : mesPartModels) {
|
|
|
|
|
//移库
|
|
|
|
|
MesMove move = createMove(model, mesPartModel.getLocateNo(), dest, org, null == produceSn ? model.getWorkCenterCode() : produceSn.getWorkCenterCode(),mesPartModel.getPartNo());
|
|
|
|
|
MesMove move = createMove(model, mesPartModel.getLocateNo(), dest, model.getOrganizeCode(), null == produceSn ? model.getWorkCenterCode() : produceSn.getWorkCenterCode(),mesPartModel.getPartNo());
|
|
|
|
|
moveRepository.save(move);
|
|
|
|
|
}
|
|
|
|
|
} else{
|
|
|
|
|
MesMove move = createMove(model, srcLocateNo, dest, org, null == produceSn ? model.getWorkCenterCode() : produceSn.getWorkCenterCode());
|
|
|
|
|
MesMove move = createMove(model, srcLocateNo, dest, model.getOrganizeCode(), null == produceSn ? model.getWorkCenterCode() : produceSn.getWorkCenterCode());
|
|
|
|
|
moveRepository.save(move);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -797,7 +794,7 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
|
|
|
|
|
resultDetailList.forEach(k -> {
|
|
|
|
|
k.setIsDeleted(MesCommonConstant.TRUE_INTEGER);
|
|
|
|
|
setSystemSyncStatus(k);
|
|
|
|
|
ConvertBean.serviceModelUpdate(model.getPartInspection(), AuthUtil.getSessionUser().getUserName());
|
|
|
|
|
ConvertBean.serviceModelUpdate(model.getPartInspection(), model.getUserInfo());
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
return resultDetailList;
|
|
|
|
@ -944,10 +941,9 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
|
|
|
|
|
partInspection.setWorkCenterCode(model.getWorkCenterCode());
|
|
|
|
|
partInspection.setShiftCode(model.getShiftCode());
|
|
|
|
|
partInspection.setSourceType(model.getSourceType());
|
|
|
|
|
// ConvertBean.serviceModelInitialize(partInspection, AuthUtil.getSessionUser().getUserName());
|
|
|
|
|
//42984 初检创建时修改人和修改时间不能赋值
|
|
|
|
|
partInspection.setCreateDatetime(TimeTool.getNowTime(true));
|
|
|
|
|
partInspection.setCreateUser(AuthUtil.getSessionUser().getUserName());
|
|
|
|
|
partInspection.setCreateUser(model.getUserInfo());
|
|
|
|
|
partInspection.setIsValid(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
|
|
|
|
|
partInspection.setIsDeleted(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
|
|
|
|
|
return partInspection;
|
|
|
|
@ -1123,29 +1119,28 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
|
|
|
|
|
return alarmConfigList;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private MesPartInspectionViewModel getModel(MesPartInspection partInspection, MesPart part,MesPartTypePicture partTypePicture, MesPartInspectionInputModel inputModel ,
|
|
|
|
|
Integer sourceType, String org) {
|
|
|
|
|
private MesPartInspectionViewModel getModel(MesPartInspection partInspection, MesPart part, MesPartTypePicture partTypePicture, MesPartInspectionInputModel model, Integer sourceType) {
|
|
|
|
|
|
|
|
|
|
Integer frontBack = inputModel.getFrontBack();
|
|
|
|
|
Integer frontBack = model.getFrontBack();
|
|
|
|
|
List<MesPartInspectionDetail> detailList = new ArrayList<>();
|
|
|
|
|
if (!StringUtils.isEmpty(partInspection) && partInspection.getInspectionStatus() != MesExtEnumUtil.PART_INSPECTION_STATUS.QUALIFIED.getValue()) {
|
|
|
|
|
|
|
|
|
|
detailList = checkPartInspectionDetail(partInspection, org);
|
|
|
|
|
detailList = checkPartInspectionDetail(partInspection, model.getOrganizeCode());
|
|
|
|
|
if(!CollectionUtils.isEmpty(detailList)){
|
|
|
|
|
//判断是否返工完成
|
|
|
|
|
checkReworkFinished(org, detailList);
|
|
|
|
|
checkReworkFinished(model.getOrganizeCode(), detailList);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//位置
|
|
|
|
|
List<MesLocationConfig> locationConfigList = checkLocationConfig(org);
|
|
|
|
|
List<MesLocationConfig> locationConfigList = checkLocationConfig(model.getOrganizeCode());
|
|
|
|
|
List<String> locationCodeList = locationConfigList.stream().map(k -> k.getDefectLocation()).collect(Collectors.toList());
|
|
|
|
|
|
|
|
|
|
//查询零件类型缺陷类型对应关系
|
|
|
|
|
List<MesPartTypeDefect> partTypeDefectList = checkPartTypeDefect(part, org);
|
|
|
|
|
List<MesPartTypeDefect> partTypeDefectList = checkPartTypeDefect(part, model.getOrganizeCode());
|
|
|
|
|
List<String> partTypeDefectCodeList = partTypeDefectList.stream().map(k -> k.getDefectTypeCode()).collect(Collectors.toList());
|
|
|
|
|
|
|
|
|
|
//查询预警数量
|
|
|
|
|
List<MesDefectWarnConfig> alarmConfigList = queryDefectAlarmConfigByLocationCodeList(part, frontBack, locationCodeList, partTypeDefectCodeList, org);
|
|
|
|
|
List<MesDefectWarnConfig> alarmConfigList = queryDefectAlarmConfigByLocationCodeList(part, frontBack, locationCodeList, partTypeDefectCodeList, model.getOrganizeCode());
|
|
|
|
|
|
|
|
|
|
//根据不良类型+位置 若有数据,则表示需要标黄
|
|
|
|
|
Map<String, List<MesDefectWarnConfig>> alarmConfigMap = alarmConfigList.stream().collect(Collectors.groupingBy(MesDefectWarnConfig::getDefectLocation));
|
|
|
|
@ -1167,17 +1162,17 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
MesPartInspectionViewModel model = new MesPartInspectionViewModel();
|
|
|
|
|
model.setPart(part);
|
|
|
|
|
MesPartInspectionViewModel result = new MesPartInspectionViewModel();
|
|
|
|
|
result.setPart(part);
|
|
|
|
|
if (!StringUtils.isEmpty(partInspection) && partInspection.getInspectionStatus() == MesExtEnumUtil.PART_INSPECTION_STATUS.FAIL.getValue()
|
|
|
|
|
&& partInspection.getNcStatus() == MesExtEnumUtil.PART_INSPECTION_NC_STATUS.CREATE.getValue()) {
|
|
|
|
|
model.setPartInspectionDetailList(detailList);
|
|
|
|
|
model.setPartInspection(partInspection);
|
|
|
|
|
result.setPartInspectionDetailList(detailList);
|
|
|
|
|
result.setPartInspection(partInspection);
|
|
|
|
|
}
|
|
|
|
|
model.setPartTypePicture(partTypePicture);
|
|
|
|
|
model.setLocationConfigList(locationConfigList);
|
|
|
|
|
model.setMesDefectWarnConfigList(alarmConfigList);
|
|
|
|
|
return model;
|
|
|
|
|
result.setPartTypePicture(partTypePicture);
|
|
|
|
|
result.setLocationConfigList(locationConfigList);
|
|
|
|
|
result.setMesDefectWarnConfigList(alarmConfigList);
|
|
|
|
|
return result;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|