|
|
@ -130,6 +130,9 @@ public class MesReworkTaskServiceImpl implements IMesReworkTaskService {
|
|
|
|
@Autowired
|
|
|
|
@Autowired
|
|
|
|
private IMesProductVersionService mesProductVersionService;
|
|
|
|
private IMesProductVersionService mesProductVersionService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
|
|
private MesQmsScrapRepository mesQmsScrapRepository;
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public ListPager<MesReworkTask> queryReworkTask(MesReworkTask mesReworkTask, Pager pager) {
|
|
|
|
public ListPager<MesReworkTask> queryReworkTask(MesReworkTask mesReworkTask, Pager pager) {
|
|
|
|
String organizeCode = !StringUtils.isEmpty(mesReworkTask.getOrganizeCode())?mesReworkTask.getOrganizeCode():AuthUtil.getOrganizeCode();
|
|
|
|
String organizeCode = !StringUtils.isEmpty(mesReworkTask.getOrganizeCode())?mesReworkTask.getOrganizeCode():AuthUtil.getOrganizeCode();
|
|
|
@ -262,13 +265,27 @@ public class MesReworkTaskServiceImpl implements IMesReworkTaskService {
|
|
|
|
if (!CollectionUtils.isEmpty(reworkTaskDetails)) {
|
|
|
|
if (!CollectionUtils.isEmpty(reworkTaskDetails)) {
|
|
|
|
MesPcnException.throwFlowException("还有位置未返工完成,请检查");
|
|
|
|
MesPcnException.throwFlowException("还有位置未返工完成,请检查");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
MesPartInspection mesPartInspection = null;
|
|
|
|
|
|
|
|
if (!StringUtils.isEmpty(mesReworkTask.getId())){
|
|
|
|
|
|
|
|
DdlPackBean packBean = DdlPackBean.getDdlPackBean(mesReworkTask.getOrganizeCode());
|
|
|
|
|
|
|
|
DdlPreparedPack.getNumEqualPack(mesReworkTask.getId(), "reworkTaskId", packBean);
|
|
|
|
|
|
|
|
mesPartInspection = mesPartInspectionRepository.getByProperty(packBean);
|
|
|
|
|
|
|
|
if (!StringUtils.isEmpty(mesReworkTask.getId())){
|
|
|
|
|
|
|
|
if(!CollectionUtils.isEmpty(requestModel.getAssemblyModelList())){
|
|
|
|
|
|
|
|
mesPartInspection.setNcStatus(MesExtEnumUtil.PART_INSPECTION_NC_STATUS.DISASSEMBLY.getValue());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
mesPartInspection.setQmsSync(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
|
|
|
|
|
|
|
|
ConvertBean.serviceModelUpdate(mesPartInspection, requestModel.getUserName());
|
|
|
|
|
|
|
|
mesPartInspectionRepository.update(mesPartInspection);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
if (MesExtEnumUtil.PART_INSPECTION_SOURCE_TYPE.LOT.getValue() == mesReworkTask.getType()) {
|
|
|
|
if (MesExtEnumUtil.PART_INSPECTION_SOURCE_TYPE.LOT.getValue() == mesReworkTask.getType()) {
|
|
|
|
mesReworkTask.setReworkedQty(requestModel.getReworkedQty());
|
|
|
|
mesReworkTask.setReworkedQty(requestModel.getReworkedQty());
|
|
|
|
mesReworkTask.setScrapQty(requestModel.getScrapQty());
|
|
|
|
mesReworkTask.setScrapQty(requestModel.getScrapQty());
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
//拆解
|
|
|
|
//拆解
|
|
|
|
if(!CollectionUtils.isEmpty(requestModel.getAssemblyModelList())){
|
|
|
|
if(!CollectionUtils.isEmpty(requestModel.getAssemblyModelList())){
|
|
|
|
doAssemblyDisassembly(requestModel, mesReworkTask.getSn());
|
|
|
|
doAssemblyDisassembly(requestModel, mesReworkTask.getSn(),Objects.isNull(mesPartInspection)?"":mesPartInspection.getResponsibleParty());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (MesExtEnumUtil.NC_TYPE.REWORK.getValue() == requestModel.getType()) {
|
|
|
|
if (MesExtEnumUtil.NC_TYPE.REWORK.getValue() == requestModel.getType()) {
|
|
|
@ -284,19 +301,6 @@ public class MesReworkTaskServiceImpl implements IMesReworkTaskService {
|
|
|
|
mesReworkTask.setStatus(MesExtEnumUtil.REWORK_TASK_STATUS.FINISH.getValue());
|
|
|
|
mesReworkTask.setStatus(MesExtEnumUtil.REWORK_TASK_STATUS.FINISH.getValue());
|
|
|
|
ConvertBean.serviceModelUpdate(mesReworkTask,requestModel.getUserName());
|
|
|
|
ConvertBean.serviceModelUpdate(mesReworkTask,requestModel.getUserName());
|
|
|
|
mesReworkTaskRepository.save(mesReworkTask);
|
|
|
|
mesReworkTaskRepository.save(mesReworkTask);
|
|
|
|
if (!StringUtils.isEmpty(mesReworkTask.getId())){
|
|
|
|
|
|
|
|
DdlPackBean packBean = DdlPackBean.getDdlPackBean(mesReworkTask.getOrganizeCode());
|
|
|
|
|
|
|
|
DdlPreparedPack.getNumEqualPack(mesReworkTask.getId(), "reworkTaskId", packBean);
|
|
|
|
|
|
|
|
MesPartInspection mesPartInspection = mesPartInspectionRepository.getByProperty(packBean);
|
|
|
|
|
|
|
|
if (!StringUtils.isEmpty(mesReworkTask.getId())){
|
|
|
|
|
|
|
|
if(!CollectionUtils.isEmpty(requestModel.getAssemblyModelList())){
|
|
|
|
|
|
|
|
mesPartInspection.setNcStatus(MesExtEnumUtil.PART_INSPECTION_NC_STATUS.DISASSEMBLY.getValue());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
mesPartInspection.setQmsSync(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
|
|
|
|
|
|
|
|
ConvertBean.serviceModelUpdate(mesPartInspection, requestModel.getUserName());
|
|
|
|
|
|
|
|
mesPartInspectionRepository.update(mesPartInspection);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
@ -608,14 +612,16 @@ public class MesReworkTaskServiceImpl implements IMesReworkTaskService {
|
|
|
|
mesProduceSnRepository.update(oldProduceSn);
|
|
|
|
mesProduceSnRepository.update(oldProduceSn);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void doAssemblyDisassembly(MesReworkTaskRequestModel requestModel, String productSn) {
|
|
|
|
private void doAssemblyDisassembly(MesReworkTaskRequestModel requestModel, String productSn,String responsibleParty) {
|
|
|
|
|
|
|
|
//报废目标库位
|
|
|
|
|
|
|
|
String destLocateNo = getDestLocateNo(requestModel.getOrganizeCode(), productSn);
|
|
|
|
//总成拆解
|
|
|
|
//总成拆解
|
|
|
|
doProductReportReversal(requestModel,productSn);
|
|
|
|
doProductReportReversal(requestModel,productSn,destLocateNo);
|
|
|
|
//装配件数据处理
|
|
|
|
//装配件数据处理
|
|
|
|
doRecursionCheck(requestModel.getAssemblyModelList(), requestModel.getOrganizeCode(), requestModel.getUserName(),mesConfigService.getCfgValue(requestModel.getOrganizeCode(), MesPcnExtConstWords.DISASSEMBLY_DEST_LOCATE));
|
|
|
|
doRecursionCheck(requestModel.getAssemblyModelList(), requestModel.getOrganizeCode(), requestModel.getUserName(),destLocateNo,responsibleParty);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void doProductReportReversal(MesReworkTaskRequestModel requestModel, String productSn) {
|
|
|
|
private void doProductReportReversal(MesReworkTaskRequestModel requestModel, String productSn,String locateNo) {
|
|
|
|
//更新条码状态为总成拆解
|
|
|
|
//更新条码状态为总成拆解
|
|
|
|
MesProduceSn produceSnDb = getMesProduceSn(requestModel.getOrganizeCode(), productSn);
|
|
|
|
MesProduceSn produceSnDb = getMesProduceSn(requestModel.getOrganizeCode(), productSn);
|
|
|
|
produceSnDb.setSnStatus(MesExtEnumUtil.PRODUCE_SN_STATUS.ASSEMBLY_DISASSEMBLY.getValue());
|
|
|
|
produceSnDb.setSnStatus(MesExtEnumUtil.PRODUCE_SN_STATUS.ASSEMBLY_DISASSEMBLY.getValue());
|
|
|
@ -637,7 +643,7 @@ public class MesReworkTaskServiceImpl implements IMesReworkTaskService {
|
|
|
|
mesWorkOrderService.doProductReportReversal(mesWorkOrderDb,productVersion, requestModel.getUserName());
|
|
|
|
mesWorkOrderService.doProductReportReversal(mesWorkOrderDb,productVersion, requestModel.getUserName());
|
|
|
|
//移库
|
|
|
|
//移库
|
|
|
|
requestModel.setSn(produceSnDb.getProductSn());
|
|
|
|
requestModel.setSn(produceSnDb.getProductSn());
|
|
|
|
doCreateMove(requestModel,getDestLocateNo(requestModel.getOrganizeCode(), produceSnDb.getProductSn()),productVersion.getReceiveInventoryPoint(),mesWorkOrderDb.getErpWorkCenter(),mesWorkOrderDb.getPartNo());
|
|
|
|
doCreateMove(requestModel,locateNo,productVersion.getReceiveInventoryPoint(),mesWorkOrderDb.getErpWorkCenter(),mesWorkOrderDb.getPartNo());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private MesProductVersion getProductVersion(MesWorkOrder mesWorkOrderDb) {
|
|
|
|
private MesProductVersion getProductVersion(MesWorkOrder mesWorkOrderDb) {
|
|
|
@ -648,7 +654,7 @@ public class MesReworkTaskServiceImpl implements IMesReworkTaskService {
|
|
|
|
return mesProductVersion;
|
|
|
|
return mesProductVersion;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void doRecursionCheck(List<MesProductionAssemblyModel> assemblyModelList,String organizeCode,String userName,String destLocate){
|
|
|
|
public void doRecursionCheck(List<MesProductionAssemblyModel> assemblyModelList,String organizeCode,String userName,String destLocate,String responsibleParty){
|
|
|
|
for (MesProductionAssemblyModel assemblyModel : assemblyModelList) {
|
|
|
|
for (MesProductionAssemblyModel assemblyModel : assemblyModelList) {
|
|
|
|
//勾选
|
|
|
|
//勾选
|
|
|
|
if (assemblyModel.getFlag() == CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) {
|
|
|
|
if (assemblyModel.getFlag() == CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) {
|
|
|
@ -657,10 +663,16 @@ public class MesReworkTaskServiceImpl implements IMesReworkTaskService {
|
|
|
|
updateOldSn(organizeCode,assemblyModel.getAssemblySn(), userName, MesExtEnumUtil.PRODUCE_QC_STATUS.SCRAP.getValue());
|
|
|
|
updateOldSn(organizeCode,assemblyModel.getAssemblySn(), userName, MesExtEnumUtil.PRODUCE_QC_STATUS.SCRAP.getValue());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//对于已勾选报废的子件,对于有零件号的项,产生移库(产线的材料库位->报废库(系统参数配置))。移库数量为报废时的明细数量;
|
|
|
|
//对于已勾选报废的子件,对于有零件号的项,产生移库(产线的材料库位->报废库(系统参数配置))。移库数量为报废时的明细数量;
|
|
|
|
|
|
|
|
if(!StringUtils.isEmpty(assemblyModel.getAssemblyPartNo())){
|
|
|
|
|
|
|
|
//移库
|
|
|
|
doCreateMove(getMesWorkCenter(organizeCode, assemblyModel.getWorkCenterCode()),destLocate, assemblyModel,userName);
|
|
|
|
doCreateMove(getMesWorkCenter(organizeCode, assemblyModel.getWorkCenterCode()),destLocate, assemblyModel,userName);
|
|
|
|
|
|
|
|
//报废
|
|
|
|
|
|
|
|
doCreateScrap(assemblyModel,userName,responsibleParty,organizeCode);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//循环处理数据
|
|
|
|
//循环处理数据
|
|
|
|
if(!CollectionUtils.isEmpty(assemblyModel.getChildren())){
|
|
|
|
if(!CollectionUtils.isEmpty(assemblyModel.getChildren())){
|
|
|
|
doRecursionCheck(assemblyModel.getChildren(),organizeCode,userName,destLocate);
|
|
|
|
doRecursionCheck(assemblyModel.getChildren(),organizeCode,userName,destLocate,responsibleParty);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else if (assemblyModel.getFlag() == CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) {
|
|
|
|
} else if (assemblyModel.getFlag() == CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) {
|
|
|
|
//装配解绑
|
|
|
|
//装配解绑
|
|
|
@ -853,6 +865,22 @@ public class MesReworkTaskServiceImpl implements IMesReworkTaskService {
|
|
|
|
return moveRepository.insert(move);
|
|
|
|
return moveRepository.insert(move);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void doCreateScrap(MesProductionAssemblyModel assemblyModel,String userName,String responsibleParty,String organizeCode) {
|
|
|
|
|
|
|
|
//新增一条数据到报废表中
|
|
|
|
|
|
|
|
MesQmsScrap mesQmsScrap = new MesQmsScrap();
|
|
|
|
|
|
|
|
mesQmsScrap.setOrganizeCode(organizeCode);
|
|
|
|
|
|
|
|
mesQmsScrap.setAsnNo("");
|
|
|
|
|
|
|
|
mesQmsScrap.setSource("MES");
|
|
|
|
|
|
|
|
mesQmsScrap.setRejectQty(assemblyModel.getScrapQty().intValue());
|
|
|
|
|
|
|
|
mesQmsScrap.setPartNo(assemblyModel.getAssemblyPartNo());
|
|
|
|
|
|
|
|
mesQmsScrap.setPartName(assemblyModel.getAssemblyPartName());
|
|
|
|
|
|
|
|
mesQmsScrap.setDefectTypeName("拆解报废");
|
|
|
|
|
|
|
|
mesQmsScrap.setReponsibilityId(responsibleParty);
|
|
|
|
|
|
|
|
mesQmsScrap.setNcJudger(userName);
|
|
|
|
|
|
|
|
ConvertBean.serviceModelInitialize(mesQmsScrap, userName);
|
|
|
|
|
|
|
|
mesQmsScrapRepository.insert(mesQmsScrap);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void doCreateMove(MesWorkCenter mesWorkCenter, String destLocate, MesProductionAssemblyModel assemblyModel,String userName) {
|
|
|
|
private void doCreateMove(MesWorkCenter mesWorkCenter, String destLocate, MesProductionAssemblyModel assemblyModel,String userName) {
|
|
|
|
MesMove move = new MesMove();
|
|
|
|
MesMove move = new MesMove();
|
|
|
|
move.setMatnr(assemblyModel.getAssemblyPartNo());
|
|
|
|
move.setMatnr(assemblyModel.getAssemblyPartNo());
|
|
|
|