1、单据作业增加关闭原因、关闭时间、关闭操作人员

2、返修增加维修明细时维修判定枚举更改为页面维护,涉及修改查询报表:修理品票明细报表、维修记录报表;(工程不良报表影响最大,修改大,暂不修改)
dev
yxw 2 years ago
parent 2f5453ae49
commit 68956fd344

@ -39,7 +39,7 @@ public interface IMesOrderJobService {
* @param orderStatus
* @return
*/
int orderJobUpdateOrderStatus(long id, Integer orderStatus, String organizeCode, String modifyUser);
int orderJobUpdateOrderStatus(long id, Integer orderStatus, String organizeCode, String modifyUser, String closeReason);
/**
*

@ -0,0 +1,27 @@
package cn.estsh.i3plus.ext.mes.pcn.api.base.jx;
import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesRepairJudgeType;
import io.swagger.annotations.ApiOperation;
import java.util.List;
import java.util.Map;
public interface IRepairJudgeService {
/**
*
* @param organizeCode
* @return
*/
@ApiOperation(value = "获取维修判定类型信息集合", notes = "获取维修判定类型信息集合")
List<MesRepairJudgeType> queryRepairJudgeList(String organizeCode);
/**
*
* @param organizeCode
* @return
*/
@ApiOperation(value = "获取维修判定类型信息集合", notes = "获取维修判定类型信息集合")
Map<String, String> queryRepairJudgeMap(String organizeCode);
}

@ -1,7 +1,6 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.controller.base;
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesOrderJobService;
import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesOrderJob;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesOrderJobModel;
import cn.estsh.i3plus.mes.pcn.api.iservice.base.IShiftService;
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
@ -10,7 +9,6 @@ import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.i3plus.pojo.mes.bean.MesShift;
import cn.estsh.impp.framework.base.controller.MesPcnBaseController;
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;
@ -55,9 +53,9 @@ public class OrderJobController extends MesPcnBaseController {
*/
@PutMapping(value = "/mes-order-job/order-status/update")
@ApiOperation(value = "修改单据作业状态")
public ResultBean orderJobUpdateOrderStatus(long id, Integer orderStatus, String organizeCode, String modifyUser) {
public ResultBean orderJobUpdateOrderStatus(long id, Integer orderStatus, String organizeCode, String modifyUser, String closeReason) {
try {
return ResultBean.success("修改成功").setResultObject(orderJobService.orderJobUpdateOrderStatus(id, orderStatus, organizeCode, modifyUser))
return ResultBean.success("修改成功").setResultObject(orderJobService.orderJobUpdateOrderStatus(id, orderStatus, organizeCode, modifyUser, closeReason))
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);

@ -261,7 +261,8 @@ public class SxRepairWorkController extends MesPcnBaseController {
.notNull(MesPcnExtConstWords.DEFECT_CODE, mesRepairRecord.getDefectCode())
.notNull(MesPcnExtConstWords.DEFECT_NAME, mesRepairRecord.getDefectName())
.notNull(MesPcnExtConstWords.REPAIR_CODE, mesRepairRecord.getRepairCode())
.notNull(MesPcnExtConstWords.REPAIR_JUDGE, mesRepairRecord.getRepairJudge())
.notNull(MesPcnExtConstWords.REPAIR_JUDGE_CODE, mesRepairRecord.getRepairJudgeCode())
.notNull(MesPcnExtConstWords.REPAIR_JUDGE_NAME, mesRepairRecord.getRepairJudgeName())
.notNull(MesPcnExtConstWords.REPAIR_NAME, mesRepairRecord.getRepairName())
.notNull(MesPcnExtConstWords.DEFECT_RECORD_ID, mesRepairRecord.getDefectRecordId())
.notNull(MesPcnExtConstWords.WORK_CELL_CODE, mesRepairRecord.getWorkCellCode())
@ -287,7 +288,8 @@ public class SxRepairWorkController extends MesPcnBaseController {
.notNull(MesPcnExtConstWords.DEFECT_CODE, mesRepairRecord.getDefectCode())
.notNull(MesPcnExtConstWords.DEFECT_NAME, mesRepairRecord.getDefectName())
.notNull(MesPcnExtConstWords.REPAIR_CODE, mesRepairRecord.getRepairCode())
.notNull(MesPcnExtConstWords.REPAIR_JUDGE, mesRepairRecord.getRepairJudge())
.notNull(MesPcnExtConstWords.REPAIR_JUDGE_CODE, mesRepairRecord.getRepairJudgeCode())
.notNull(MesPcnExtConstWords.REPAIR_JUDGE_NAME, mesRepairRecord.getRepairJudgeName())
.notNull(MesPcnExtConstWords.REPAIR_NAME, mesRepairRecord.getRepairName())
.notNull(MesPcnExtConstWords.DEFECT_RECORD_ID, mesRepairRecord.getDefectRecordId())
.notNull(MesPcnExtConstWords.WORK_CELL_CODE, mesRepairRecord.getWorkCellCode())
@ -357,7 +359,8 @@ public class SxRepairWorkController extends MesPcnBaseController {
.notNull(MesPcnExtConstWords.DEFECT_CODE, mesRepairRecord.getDefectCode())
.notNull(MesPcnExtConstWords.DEFECT_NAME, mesRepairRecord.getDefectName())
.notNull(MesPcnExtConstWords.WORK_CENTER_CODE, mesRepairRecord.getWorkCenterCode())
.notNull(MesPcnExtConstWords.REPAIR_JUDGE, mesRepairRecord.getRepairJudge())
.notNull(MesPcnExtConstWords.REPAIR_JUDGE_CODE, mesRepairRecord.getRepairJudgeCode())
.notNull(MesPcnExtConstWords.REPAIR_JUDGE_NAME, mesRepairRecord.getRepairJudgeName())
.notNull(MesPcnExtConstWords.REPAIR_CODE, mesRepairRecord.getRepairCode())
.notNull(MesPcnExtConstWords.REPAIR_NAME, mesRepairRecord.getRepairName())
.notNull(MesPcnExtConstWords.QTY, mesRepairRecord.getQty());

@ -80,7 +80,7 @@ public class EpRepairJobController {
.notNull(MesPcnExtConstWords.DEFECT_CODE, mesRepairRecord.getDefectCode())
.notNull(MesPcnExtConstWords.DEFECT_NAME, mesRepairRecord.getDefectName())
.notNull(MesPcnExtConstWords.REPAIR_CODE, mesRepairRecord.getRepairCode())
.notNull(MesPcnExtConstWords.REPAIR_JUDGE, mesRepairRecord.getRepairJudge())
.notNull(MesPcnExtConstWords.REPAIR_JUDGE_CODE, mesRepairRecord.getRepairJudgeCode())
.notNull(MesPcnExtConstWords.REPAIR_NAME, mesRepairRecord.getRepairName())
.notNull(MesPcnExtConstWords.DEFECT_RECORD_ID, mesRepairRecord.getDefectRecordId())
.notNull(MesPcnExtConstWords.WORK_CELL_CODE, mesRepairRecord.getWorkCellCode());
@ -140,7 +140,7 @@ public class EpRepairJobController {
.notNull(MesPcnExtConstWords.DEFECT_CODE, mesRepairRecord.getDefectCode())
.notNull(MesPcnExtConstWords.DEFECT_NAME, mesRepairRecord.getDefectName())
.notNull(MesPcnExtConstWords.WORK_CENTER_CODE, mesRepairRecord.getWorkCenterCode())
.notNull(MesPcnExtConstWords.REPAIR_JUDGE, mesRepairRecord.getRepairJudge())
.notNull(MesPcnExtConstWords.REPAIR_JUDGE_CODE, mesRepairRecord.getRepairJudgeCode())
.notNull(MesPcnExtConstWords.REPAIR_CODE, mesRepairRecord.getRepairCode())
.notNull(MesPcnExtConstWords.REPAIR_NAME, mesRepairRecord.getRepairName());
}

@ -42,6 +42,15 @@ public class JxShiftExtController extends MesPcnBaseController {
.setErrorDetail("入参缺失必要参数[workCenterCode]")
.build();
}
if (StringUtils.isEmpty(organizeCode)) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("入参缺失必要参数[organizeCode]")
.build();
}
return ResultBean.success("查询成功").setResultList(shiftExtService.getShiftListbyCenterCode(organizeCode, workCenterCode)).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);

@ -0,0 +1,44 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.controller.base.jx;
import cn.estsh.i3plus.ext.mes.pcn.api.base.jx.IRepairJudgeService;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.impp.framework.base.controller.MesBaseController;
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.util.ResultBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @PROJECT_NAME: i3plus-mes-panasonic-jx
* @DESCRIPTION:
* @USER: xinwang.yi
* @DATE: 2023-11-13 14:50
*/
@RestController
@RequestMapping(MesPcnExtConstWords.BASE_URL_MES_PCN_JX + "/repair-judge-type")
@Api(tags = "维修判定类型 Controller")
public class RepairJudgeController extends MesBaseController {
@Autowired
private IRepairJudgeService repairJudgeService;
@GetMapping(value = "/query")
@ApiOperation(value = "按条件分页查询业务配置信息")
public ResultBean queryRepairJudgeList(String organizeCode) {
try {
return ResultBean.success("查询成功").setResultList(repairJudgeService.queryRepairJudgeList(organizeCode))
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
}

@ -230,7 +230,7 @@ public class MesOrderJobService implements IMesOrderJobService {
}
@Override
public int orderJobUpdateOrderStatus(long id, Integer orderStatus, String organizeCode, String modifyUser) {
public int orderJobUpdateOrderStatus(long id, Integer orderStatus, String organizeCode, String modifyUser, String closeReason) {
List<MesOrderJob> jobList = mesOrderJobRDao.findByProperty(new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.ID},
new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), MesPcnExtEnumUtil.IS_VAILD.VAILD.getValue(), id});
if (CollectionUtils.isEmpty(jobList)) {
@ -240,9 +240,12 @@ public class MesOrderJobService implements IMesOrderJobService {
.setErrorDetail("该单据作业不存在")
.build();
}
String nowTime = TimeTool.getNowTime(true);
return mesOrderJobRDao.updateByProperties(new String[]{MesPcnExtConstWords.ID}, new Object[]{id},
new String[]{MesPcnExtConstWords.ORDER_STATUS, MesPcnExtConstWords.MODIFY_USER, MesPcnExtConstWords.MODIFY_DATE_TIME},
new Object[]{orderStatus, modifyUser, TimeTool.getNowTime(true)});
new String[]{MesPcnExtConstWords.ORDER_STATUS, MesPcnExtConstWords.MODIFY_USER, MesPcnExtConstWords.MODIFY_DATE_TIME, "closeReason", "closeUser", "closeTime"},
new Object[]{orderStatus, modifyUser, nowTime, closeReason, modifyUser, nowTime});
}
@Override

@ -255,24 +255,7 @@ public class SxRepairWorkService implements ISxRepairWorkService {
} else {
produceSnExt = produceSnExtService.getProduceSnExtByProductSn(organizeCode, serialNumber);
if (produceSnExt == null) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode())
.setErrorDetail("条码信息不存在,请检查")
.build();
}
if(produceSnExt.getSnStatus() > MesPcnExtEnumUtil.PRODUCE_SN_STATUS.PROCESS.getValue()){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode())
.setErrorDetail("扫描的条码的条码状态为【下线】,不可以操作")
.build();
}
produceSnExt = getMesProduceSnExt(organizeCode, serialNumber);
isFinalCheckAfterSn = true;
@ -324,24 +307,7 @@ public class SxRepairWorkService implements ISxRepairWorkService {
} else {
produceSnExt = produceSnExtService.getProduceSnExtByProductSn(organizeCode, serialNumber);
if (produceSnExt == null) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode())
.setErrorDetail("条码信息不存在,请检查")
.build();
}
if(produceSnExt.getSnStatus() > MesPcnExtEnumUtil.PRODUCE_SN_STATUS.PROCESS.getValue()){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode())
.setErrorDetail("扫描的条码的条码状态为【下线】,不可以操作")
.build();
}
produceSnExt = getMesProduceSnExt(organizeCode, serialNumber);
isFinalCheckAfterSn = true;
@ -474,24 +440,7 @@ public class SxRepairWorkService implements ISxRepairWorkService {
} else {
produceSnExt = produceSnExtService.getProduceSnExtByProductSn(mesBadCellDetail.getOrganizeCode(), mesBadCellDetail.getSerialNumber());
if (produceSnExt == null) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode())
.setErrorDetail("条码信息不存在,请检查")
.build();
}
if(produceSnExt.getSnStatus() > MesPcnExtEnumUtil.PRODUCE_SN_STATUS.PROCESS.getValue()){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode())
.setErrorDetail("扫描的条码的条码状态为【下线】,不可以操作")
.build();
}
produceSnExt = getMesProduceSnExt(mesBadCellDetail.getOrganizeCode(), mesBadCellDetail.getSerialNumber());
}
workOrderNo = StringUtils.isEmpty(produceSnExt.getLastWorkOrderNo()) ? produceSnExt.getWorkOrderNo() : produceSnExt.getLastWorkOrderNo();
@ -515,29 +464,12 @@ public class SxRepairWorkService implements ISxRepairWorkService {
mesBadCellDetail.getSerialNumber(), workCenterExt.getWorkTime(), workCenterExt.getShiftCode(), mesBadCellDetail.getWorkCellCode())
.build();
} else {
MesProcessCell processCell = qualityDecisionService.getMesProcessCell(workCenterExt.getWorkCenterCode(), mesBadCellDetail.getWorkCellCode(), mesBadCellDetail.getOrganizeCode());
if (null == processCell) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode())
.setErrorDetail("生产线代码[%s]工位代码[%s]未关联工序", workCenterExt.getWorkCenterCode(), mesBadCellDetail.getWorkCellCode())
.build();
}
badCell = new MesBadCell();
badCell.setOrganizeCode(mesBadCellDetail.getOrganizeCode());
badCell.setPartNo(mesBadCellDetail.getPartNo());
badCell.setPartNameRdd(mesBadCellDetail.getPartNameRdd());
badCell.setWorkCenterCode(workCenterExt.getWorkCenterCode());
badCell.setWorkCellCode(mesBadCellDetail.getWorkCellCode());
badCell.setProcessCode(processCell.getProcessCode());
badCell.setProcessNameRdd(processCell.getProcessName());
badCell.setQty(new Double(mesDefectList.size()));
badCell.setWorkOrderNo(workOrderNo);
badCell.setWorkTime(workCenterExt.getWorkTime());
badCell.setShiftCode(workCenterExt.getShiftCode());
ConvertBean.serviceModelInitialize(badCell, mesBadCellDetail.getModifyUser());
badCellRepository.insert(badCell);
MesProcessCell processCell = getMesProcessCell(workCenterExt.getWorkCenterCode(), mesBadCellDetail.getWorkCellCode(), mesBadCellDetail.getOrganizeCode());
insertMesBadCell(mesBadCellDetail.getPartNo(), mesBadCellDetail.getPartNameRdd(), workCenterExt.getWorkCenterCode(),
mesBadCellDetail.getWorkCellCode(), workCenterExt.getWorkTime(), workCenterExt.getShiftCode(),
processCell.getProcessCode(), processCell.getProcessName(), workOrderNo, new Double(mesDefectList.size()),
mesBadCellDetail.getOrganizeCode(), mesBadCellDetail.getModifyUser());
}
} else {
badCell.setQty(MathOperation.add(badCell.getQty(), new Double(mesDefectList.size())));
@ -627,7 +559,8 @@ public class SxRepairWorkService implements ISxRepairWorkService {
repairRecordDb.setRepairCode(repairRecord.getRepairCode());
repairRecordDb.setRepairName(repairRecord.getRepairName());
repairRecordDb.setRepairDatetime(repairRecord.getRepairDatetime());
repairRecordDb.setRepairJudge(repairRecord.getRepairJudge());
repairRecordDb.setRepairJudgeCode(repairRecord.getRepairJudgeCode());
repairRecordDb.setRepairJudgeName(repairRecord.getRepairJudgeName());
repairRecordDb.setMemo(repairRecord.getMemo());
repairRecordDb.setBadPartNo(repairRecord.getBadPartNo());
repairRecordDb.setBadPartName(repairRecord.getMemo());
@ -700,24 +633,7 @@ public class SxRepairWorkService implements ISxRepairWorkService {
} else {
produceSnExt = produceSnExtService.getProduceSnExtByProductSn(requestModel.getOrganizeCode(), mesBadCellDetail.getSerialNumber());
if (produceSnExt == null) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode())
.setErrorDetail("条码信息不存在,请检查")
.build();
}
if(produceSnExt.getSnStatus() > MesPcnExtEnumUtil.PRODUCE_SN_STATUS.PROCESS.getValue()){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode())
.setErrorDetail("扫描的条码的条码状态为【下线】,不可以操作")
.build();
}
produceSnExt = getMesProduceSnExt(requestModel.getOrganizeCode(), mesBadCellDetail.getSerialNumber());
BeanUtils.copyProperties(produceSnExt, produceSnExtModel, MesPcnExtConstWords.ID);
}
@ -741,29 +657,13 @@ public class SxRepairWorkService implements ISxRepairWorkService {
badCellDetailList.get(0).getSerialNumber(), workCenterExt.getWorkTime(), workCenterExt.getShiftCode(), requestModel.getWorkCellCode())
.build();
} else {
MesProcessCell processCell = qualityDecisionService.getMesProcessCell(workCenterExt.getWorkCenterCode(), requestModel.getWorkCellCode(), requestModel.getOrganizeCode());
if (null == processCell) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode())
.setErrorDetail("生产线代码[%s]工位代码[%s]未关联工序", workCenterExt.getWorkCenterCode(), requestModel.getWorkCellCode())
.build();
}
badCell = new MesBadCell();
badCell.setOrganizeCode(requestModel.getOrganizeCode());
badCell.setPartNo(repairRecordList.get(0).getPartNo());
badCell.setPartNameRdd(repairRecordList.get(0).getPartName());
badCell.setWorkCenterCode(workCenterExt.getWorkCenterCode());
badCell.setWorkCellCode(requestModel.getWorkCellCode());
badCell.setProcessCode(processCell.getProcessCode());
badCell.setProcessNameRdd(processCell.getProcessName());
badCell.setQty(new Double(badCellDetailList.size()));
badCell.setWorkOrderNo(workOrderNo);
badCell.setWorkTime(workCenterExt.getWorkTime());
badCell.setShiftCode(workCenterExt.getShiftCode());
ConvertBean.serviceModelInitialize(badCell, requestModel.getModifyUser());
badCellRepository.insert(badCell);
MesProcessCell processCell = getMesProcessCell(workCenterExt.getWorkCenterCode(), requestModel.getWorkCellCode(), requestModel.getOrganizeCode());
insertMesBadCell(repairRecordList.get(0).getPartNo(), repairRecordList.get(0).getPartName(), workCenterExt.getWorkCenterCode(),
requestModel.getWorkCellCode(), workCenterExt.getWorkTime(), workCenterExt.getShiftCode(),
processCell.getProcessCode(), processCell.getProcessName(), workOrderNo, new Double(badCellDetailList.size()),
requestModel.getOrganizeCode(), requestModel.getModifyUser());
}
} else {
badCell.setQty(MathOperation.add(badCell.getQty(), badCellDetailList.size()));
@ -843,6 +743,62 @@ public class SxRepairWorkService implements ISxRepairWorkService {
}
}
private MesBadCell insertMesBadCell(String partNo, String partName, String workCenterCode, String workCellCode,
String workTime, String shiftCode, String processCode, String processName,
String workOrderNo, Double qty, String organizeCode, String modifyUser) {
MesBadCell badCell = new MesBadCell();
badCell.setOrganizeCode(organizeCode);
badCell.setPartNo(partNo);
badCell.setPartNameRdd(partName);
badCell.setWorkCenterCode(workCenterCode);
badCell.setWorkCellCode(workCellCode);
badCell.setProcessCode(processCode);
badCell.setProcessNameRdd(processName);
badCell.setQty(qty);
badCell.setWorkOrderNo(workOrderNo);
badCell.setWorkTime(workTime);
badCell.setShiftCode(shiftCode);
ConvertBean.serviceModelInitialize(badCell, modifyUser);
return badCellRepository.insert(badCell);
}
private MesProcessCell getMesProcessCell(String workCenterCode, String workCellCode, String organizeCode) {
//MesProcessCell processCell = qualityDecisionService.getMesProcessCell(workCenterExt.getWorkCenterCode(), requestModel.getWorkCellCode(), requestModel.getOrganizeCode());
MesProcessCell processCell = qualityDecisionService.getMesProcessCell(workCenterCode, workCellCode, organizeCode);
if (null == processCell) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode())
.setErrorDetail("生产线代码[%s]工位代码[%s]未关联工序", workCenterCode, workCellCode)
.build();
}
return processCell;
}
private MesProduceSnExt getMesProduceSnExt(String organizeCode, String serialNumber) {
MesProduceSnExt produceSnExt = produceSnExtService.getProduceSnExtByProductSn(organizeCode, serialNumber);
if (produceSnExt == null) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode())
.setErrorDetail("条码信息不存在,请检查")
.build();
}
if (produceSnExt.getSnStatus() > MesPcnExtEnumUtil.PRODUCE_SN_STATUS.PROCESS.getValue()) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode())
.setErrorDetail("扫描的条码的条码状态为【下线】,不可以操作")
.build();
}
return produceSnExt;
}
@Override
public void updateRepairComplete(String serialNumber, String organizeCode, String modifyUser) {
@ -866,24 +822,7 @@ public class SxRepairWorkService implements ISxRepairWorkService {
} else {
produceSnExt = produceSnExtService.getProduceSnExtByProductSn(organizeCode, serialNumber);
if (produceSnExt == null) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode())
.setErrorDetail("条码信息不存在,请检查")
.build();
}
if(produceSnExt.getSnStatus() > MesPcnExtEnumUtil.PRODUCE_SN_STATUS.PROCESS.getValue()){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode())
.setErrorDetail("扫描的条码的条码状态为【下线】,不可以操作")
.build();
}
produceSnExt = getMesProduceSnExt(organizeCode, serialNumber);
isFinalCheckAfterSn = true;
@ -994,13 +933,6 @@ public class SxRepairWorkService implements ISxRepairWorkService {
}
log.info("updateRepairComplete --- 解绑关键件结果:{}" , unbindKeyResult);
// 清空条码履历
//produceSnTravelExtRepository.updateByProperties(new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.IS_DELETED,
// MesPcnExtConstWords.SERIAL_NUMBER}, new Object[]{organizeCode, CommonEnumUtil.IS_VAILD.VAILD.getValue(), CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(),
// serialNumber},
// new String[]{MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.MODIFY_USER, MesPcnExtConstWords.MODIFY_DATE_TIME},
// new Object[]{CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(), modifyUser, TimeTool.getNowTime(true)});
}
/**

@ -232,7 +232,7 @@ public class EpSxRepairWorkService implements IEpSxRepairWorkService {
repairRecordDb.setRepairCode(repairRecord.getRepairCode());
repairRecordDb.setRepairName(repairRecord.getRepairName());
repairRecordDb.setRepairDatetime(repairRecord.getRepairDatetime());
repairRecordDb.setRepairJudge(repairRecord.getRepairJudge());
repairRecordDb.setRepairJudgeCode(repairRecord.getRepairJudgeCode());
repairRecordDb.setMemo(repairRecord.getMemo());
repairRecordDb.setBadPartNo(repairRecord.getBadPartNo());
repairRecordDb.setBadPartName(repairRecord.getMemo());
@ -281,21 +281,7 @@ public class EpSxRepairWorkService implements IEpSxRepairWorkService {
}
}
MesWorkCenterExt workCenterExt = workCenterExtService.getWorkCenterExtByWorkCenterCode(requestModel.getOrganizeCode(), badCellDetailList.get(0).getWorkCenterCode());
if (null == workCenterExt) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("生产线代码[%s]无效", badCellDetailList.get(0).getWorkCenterCode())
.build();
}
if (StringUtils.isEmpty(workCenterExt.getShiftCode()) || StringUtils.isEmpty(workCenterExt.getWorkTime())) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("生产线[%s]未启动班次", badCellDetailList.get(0).getWorkCenterCode())
.build();
}
MesWorkCenterExt workCenterExt = getMesWorkCenterExt(requestModel.getOrganizeCode(), badCellDetailList.get(0).getWorkCenterCode());
List<MesBadCellDetail> badCellDetails = badCellDetailList.stream().filter(mesBadCellDetail -> mesBadCellDetail != null).collect(Collectors.toList());
@ -397,6 +383,25 @@ public class EpSxRepairWorkService implements IEpSxRepairWorkService {
}
}
private MesWorkCenterExt getMesWorkCenterExt(String organizeCode, String workCenterCode) {
MesWorkCenterExt workCenterExt = workCenterExtService.getWorkCenterExtByWorkCenterCode(organizeCode, workCenterCode);
if (null == workCenterExt) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("生产线代码[%s]无效", workCenterCode)
.build();
}
if (StringUtils.isEmpty(workCenterExt.getShiftCode()) || StringUtils.isEmpty(workCenterExt.getWorkTime())) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("生产线[%s]未启动班次", workCenterCode)
.build();
}
return workCenterExt;
}
@Override
public void updateRepairComplete(String serialNumber, String defectType, String organizeCode, String modifyUser) {
String workOrderNo;

@ -0,0 +1,46 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.base.jx;
import cn.estsh.i3plus.ext.mes.pcn.api.base.jx.IRepairJudgeService;
import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesRepairJudgeType;
import cn.estsh.i3plus.ext.mes.pcn.pojo.repository.MesRepairJudgeTypeRepository;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @PROJECT_NAME: i3plus-mes-panasonic-jx
* @DESCRIPTION:
* @USER: xinwang.yi
* @DATE: 2023-11-13 14:48
*/
@Service
public class RepairJudgeService implements IRepairJudgeService {
@Autowired
private MesRepairJudgeTypeRepository repairJudgeTypeRepository;
@Override
public List<MesRepairJudgeType> queryRepairJudgeList(String organizeCode) {
return repairJudgeTypeRepository.findByProperty(
new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID},
new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue()},
"order by seq asc");
}
@Override
public Map<String, String> queryRepairJudgeMap(String organizeCode) {
List<MesRepairJudgeType> mesRepairJudgeTypes = queryRepairJudgeList(organizeCode);
return CollectionUtils.isEmpty(mesRepairJudgeTypes) ? null :
mesRepairJudgeTypes.stream().collect(Collectors.toMap(
MesRepairJudgeType::getRepairJudgeCode, MesRepairJudgeType::getRepairJudgeName, (x,y) -> y));
}
}

@ -108,10 +108,22 @@ public class MesOrderJob extends BaseBean implements Serializable {
@ApiParam("过程条码")
private String serialNumber;
@Lob
@Column(name = "CELL_COLLECT")
@ApiParam("工位集合")
private String cellCollect;
@Lob
@Column(name = "CLOSE_REASON")
@ApiParam("关闭原因")
private String closeReason;
@Column(name = "CLOSE_TIME")
@ApiParam("关闭时间")
private String closeTime;
@Column(name = "CLOSE_USER")
@ApiParam("关闭人")
private String closeUser;
}

@ -0,0 +1,54 @@
package cn.estsh.i3plus.ext.mes.pcn.pojo.bean;
import cn.estsh.i3plus.pojo.base.bean.BaseBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.annotations.ColumnDefault;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Index;
import javax.persistence.Table;
import java.io.Serializable;
/**
* @PROJECT_NAME: i3plus-mes-panasonic-jx
* @DESCRIPTION:
* @USER: xinwang.yi
* @DATE: 2023-11-13 11:45
*/
@Data
@Entity
@DynamicInsert
@DynamicUpdate
@EqualsAndHashCode(callSuper = true)
@Table(name = "MES_REPAIR_JUDGE_TYPE", indexes = {
@Index(columnList = "REPAIR_JUDGE")
})
@Api("维修判定类型")
public class MesRepairJudgeType extends BaseBean implements Serializable {
private static final long serialVersionUID = 2795798399799053490L;
@Column(name = "REPAIR_JUDGE_CODE")
@ApiParam("维修判定代码")
private String repairJudgeCode;
@Column(name = "REPAIR_JUDGE_NAME")
@ApiParam("维修判定名称")
private String repairJudgeName;
@Column(name = "SEQ")
@ApiParam("排序")
private String seq;
@Column(name = "SYSTEM_SYNC_STATUS")
@ColumnDefault("2")
@ApiParam(value = "系统同步标志")
public Integer systemSyncStatus = 2;
}

@ -39,10 +39,14 @@ public class MesRepairRecordExt extends MesRepairRecord implements Serializable
)
private String workOrderNo;
//枚举:10=误判/20=部品不良/30=工程不良
@Column(name = "REPAIR_JUDGE")
@ApiParam("维修判定")
private Integer repairJudge;
//枚举:由维修判定类型页面维护
@Column(name = "REPAIR_JUDGE_CODE")
@ApiParam("维修判定代码")
private String repairJudgeCode;
@Column(name = "REPAIR_JUDGE_NAME")
@ApiParam("维修判定名称")
private String repairJudgeName;
@Column(name = "REPAIR_DATE_TIME")
@ApiParam("维修时间")

@ -0,0 +1,15 @@
package cn.estsh.i3plus.ext.mes.pcn.pojo.repository;
import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesRepairJudgeType;
import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository;
import org.springframework.stereotype.Repository;
/**
* @author xinwang.yi
* @version 1.0
* @date 2023/11/13 9:17
**/
@Repository
public interface MesRepairJudgeTypeRepository extends BaseRepository<MesRepairJudgeType, Long> {
}

@ -998,6 +998,11 @@ public class MesPcnExtConstWords {
public static final String EP_OQC_STOP_LOCK = "EP_OQC_STOP_LOCK";
/*BU 出货检验 END*/
//维修判定代码
public static final String REPAIR_JUDGE_CODE = "repairJudgeCode";
//维修判定名称
public static final String REPAIR_JUDGE_NAME = "repairJudgeName";
}

Loading…
Cancel
Save