38753 23032—PCN端【返修作业】点击”维修完成“,重复扫描条码,点击维修完成后,会重复生成mes_repair_task的数据。

tags/yfai-pcn-ext-v1.0
yxw 1 year ago
parent 425719ad36
commit ce464505d4

@ -169,7 +169,7 @@ public interface ISxRepairWorkService {
* @param modifyUser
*/
@ApiOperation(value = "本体返修-维修完成", notes = "本体返修-维修完成")
void updateRepairComplete(String serialNumber, String organizeCode, String modifyUser);
String updateRepairComplete(String serialNumber, String organizeCode, String modifyUser);
/**

@ -379,8 +379,7 @@ public class SxRepairWorkController extends MesPcnBaseController {
@ApiOperation(value = "本体返修-维修完成", notes = "本体返修-维修完成")
public ResultBean updateRepairComplete(String serialNumber, String organizeCode, String modifyUser) {
try {
sxRepairWorkService.updateRepairComplete(serialNumber, organizeCode, modifyUser);
return ResultBean.success(LocaleUtils.getLocaleRes("操作成功")).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
return ResultBean.success(LocaleUtils.getLocaleRes(sxRepairWorkService.updateRepairComplete(serialNumber, organizeCode, modifyUser))).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {

@ -29,7 +29,7 @@ public class RepairJudgeController extends MesPcnBaseController {
private IRepairJudgeService repairJudgeService;
@GetMapping(value = "/query")
@ApiOperation(value = "按条件分页查询业务配置信息")
@ApiOperation(value = "按条件分页查询维修判定类型信息")
public ResultBean queryRepairJudgeList(String organizeCode) {
try {
return ResultBean.success("查询成功").setResultList(repairJudgeService.queryRepairJudgeList(organizeCode))

@ -127,6 +127,9 @@ public class SxRepairWorkService implements ISxRepairWorkService {
@Override
public ProduceSnExtModel getProduceSnFrozenBySn(String serialNumber, String organizeCode) {
// 是否为已过终检条码
boolean isFinalCheckAfterSn = false;
MesProduceSnMcRecord produceSnMcRecordDb = produceSnMcRecordService.getProduceSnMcRecordDb(organizeCode, serialNumber);
MesProduceSnExt produceSnExt = null;
@ -155,6 +158,8 @@ public class SxRepairWorkService implements ISxRepairWorkService {
produceSnExt = produceSnExtService.getProduceSnExtByProductSn(organizeCode, serialNumber);
isFinalCheckAfterSn = true;
if (produceSnExt == null) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode())
@ -230,6 +235,14 @@ public class SxRepairWorkService implements ISxRepairWorkService {
produceSnExtModel.setSerialNumber(produceSnExtModel.getProductSn());
}
// lastWorkOrderNo 为空 代表为试制上线管理码
List<MesBadCellDetail> badCellDetailList = getMesBadCellDetails(organizeCode, isFinalCheckAfterSn, produceSnMcRecordDb, produceSnExt, produceSnExt.getLastWorkOrderNo());
badCellDetailList = CollectionUtils.isEmpty(badCellDetailList) ? null :
badCellDetailList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getRepairStatus()) && MesPcnExtEnumUtil.MES_REPAIR_STATUS.NO_REPAIR.getValue() == o.getRepairStatus())).collect(Collectors.toList());
if (CollectionUtils.isEmpty(badCellDetailList) && produceSnExt.getOperateType() == MesPcnExtEnumUtil.SN_OPERATE_TYPE.REPAIR.getValue()) produceSnExtModel.setIsRepairComplete(true);
else produceSnExtModel.setIsRepairComplete(false);
return produceSnExtModel;
}
@ -800,7 +813,7 @@ public class SxRepairWorkService implements ISxRepairWorkService {
}
@Override
public void updateRepairComplete(String serialNumber, String organizeCode, String modifyUser) {
public String updateRepairComplete(String serialNumber, String organizeCode, String modifyUser) {
// 是否为已过终检条码
boolean isFinalCheckAfterSn = false;
@ -839,28 +852,7 @@ public class SxRepairWorkService implements ISxRepairWorkService {
.build();
}
List<MesBadCellDetail> badCellDetailList;
// lastWorkOrderNo 为空 代表为试制上线管理码
if (StringUtils.isEmpty(produceSnExt.getLastWorkOrderNo())) {
badCellDetailList = badCellDetailRepository.findByProperty(
new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.WORK_ORDER_NO, MesPcnExtConstWords.THIRD_PARTY_PID},
new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), workOrderNo, StringUtils.isEmpty(produceSnMcRecordDb.getId())});
} else if (produceSnExt.getLastWorkOrderNo().equals(produceSnExt.getWorkOrderNo())){
if (isFinalCheckAfterSn) {
badCellDetailList = badCellDetailRepository.findByProperty(
new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.WORK_ORDER_NO, MesPcnExtConstWords.PRODUCT_SN},
new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), workOrderNo, produceSnExt.getProductSn()});
} else {
badCellDetailList = badCellDetailRepository.findByProperty(
new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.WORK_ORDER_NO, MesPcnExtConstWords.SERIAL_NUMBER},
new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), workOrderNo, produceSnExt.getSerialNumber()});
}
} else {
badCellDetailList = badCellDetailRepository.findByProperty(
new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.WORK_ORDER_NO, MesPcnExtConstWords.PRODUCT_SN},
new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), workOrderNo, produceSnExt.getProductSn()});
}
List<MesBadCellDetail> badCellDetailList = getMesBadCellDetails(organizeCode, isFinalCheckAfterSn, produceSnMcRecordDb, produceSnExt, workOrderNo);
badCellDetailList = CollectionUtils.isEmpty(badCellDetailList) ? null :
badCellDetailList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getRepairStatus()) && MesPcnExtEnumUtil.MES_REPAIR_STATUS.NO_REPAIR.getValue() == o.getRepairStatus())).collect(Collectors.toList());
@ -872,6 +864,8 @@ public class SxRepairWorkService implements ISxRepairWorkService {
.build();
}
if ((produceSnExt.getOperateType() == MesPcnExtEnumUtil.SN_OPERATE_TYPE.QUALIFIED.getValue()) || (produceSnMcRecordDb != null && produceSnMcRecordDb.getOperateType() == MesPcnExtEnumUtil.SN_OPERATE_TYPE.QUALIFIED.getValue())) return "该条码已完成返修,可上线";
MesWorkCenterExt workCenterExt = getMesWorkCenterExt(organizeCode, produceSnExt.getWorkCenterCode());
if (produceSnMcRecordDb != null) {
@ -933,6 +927,32 @@ public class SxRepairWorkService implements ISxRepairWorkService {
}
log.info("updateRepairComplete --- 解绑关键件结果:{}" , unbindKeyResult);
return "操作成功";
}
private List<MesBadCellDetail> getMesBadCellDetails(String organizeCode, boolean isFinalCheckAfterSn, MesProduceSnMcRecord produceSnMcRecordDb, MesProduceSnExt produceSnExt, String workOrderNo) {
List<MesBadCellDetail> badCellDetailList;
if (StringUtils.isEmpty(produceSnExt.getLastWorkOrderNo())) {
badCellDetailList = badCellDetailRepository.findByProperty(
new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.WORK_ORDER_NO, MesPcnExtConstWords.THIRD_PARTY_PID},
new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), workOrderNo, StringUtils.isEmpty(produceSnMcRecordDb.getId())});
} else if (produceSnExt.getLastWorkOrderNo().equals(produceSnExt.getWorkOrderNo())){
if (isFinalCheckAfterSn) {
badCellDetailList = badCellDetailRepository.findByProperty(
new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.WORK_ORDER_NO, MesPcnExtConstWords.PRODUCT_SN},
new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), workOrderNo, produceSnExt.getProductSn()});
} else {
badCellDetailList = badCellDetailRepository.findByProperty(
new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.WORK_ORDER_NO, MesPcnExtConstWords.SERIAL_NUMBER},
new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), workOrderNo, produceSnExt.getSerialNumber()});
}
} else {
badCellDetailList = badCellDetailRepository.findByProperty(
new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.WORK_ORDER_NO, MesPcnExtConstWords.PRODUCT_SN},
new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), workOrderNo, produceSnExt.getProductSn()});
}
return badCellDetailList;
}
/**

@ -141,6 +141,9 @@ public class ProduceSnExtModel implements Serializable {
@ApiParam("质保书码")
private String qualityAssureCode;
@ApiParam("是否维修完成")
private Boolean isRepairComplete;
public ProduceSnExtModel() {}
public ProduceSnExtModel(Long id, String serialNumber, String partNo, String partNameRdd, Double qty, Integer qcStatus,

Loading…
Cancel
Save