|
|
|
@ -10,6 +10,7 @@ import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionAssemblyContext;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionAssemblyNosortContext;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionAssemblySortContext;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesPartModel;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesProduceSnPrintModel;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesReworkTaskModel;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesReworkTaskRequestModel;
|
|
|
|
@ -142,6 +143,18 @@ public class MesReworkTaskServiceImpl implements IMesReworkTaskService {
|
|
|
|
|
@Autowired
|
|
|
|
|
private MesProductVersionRepository productVersionRepository;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private MesProductionRecordRepository productionRecordRepository;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private IMesMoveRuleRepository mesMoveRuleRepository;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private MesWorkOrderPartRepository workOrderPartRepository;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private MesPartProdGroupRepository mesPartProdGroupRao;
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public ListPager<MesReworkTask> queryReworkTask(MesReworkTask mesReworkTask, Pager pager) {
|
|
|
|
|
String organizeCode = !StringUtils.isEmpty(mesReworkTask.getOrganizeCode())?mesReworkTask.getOrganizeCode():AuthUtil.getOrganizeCode();
|
|
|
|
@ -297,6 +310,62 @@ public class MesReworkTaskServiceImpl implements IMesReworkTaskService {
|
|
|
|
|
// ConvertBean.serviceModelUpdate(mesPartInspection, requestModel.getUserName());
|
|
|
|
|
mesPartInspectionRepository.update(mesPartInspection);
|
|
|
|
|
}
|
|
|
|
|
// 是否头零件模式
|
|
|
|
|
boolean headModel = true;
|
|
|
|
|
if (!StringUtil.isEmpty(requestModel.getSn())) {
|
|
|
|
|
// 判断是头零件还是散件 查询加工记录
|
|
|
|
|
DdlPackBean productionPackBean = DdlPackBean.getDdlPackBean(mesReworkTask.getOrganizeCode());
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(requestModel.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);
|
|
|
|
|
MesProductionRecord record = productionRecordRepository.getByProperty(productionPackBean);
|
|
|
|
|
if (record != null) {
|
|
|
|
|
headModel = false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// 如果是散件模式,需要查询出对应明细
|
|
|
|
|
List<MesPartModel> mesPartModels = new ArrayList<>();
|
|
|
|
|
if (!headModel) {
|
|
|
|
|
DdlPackBean partPackBean = DdlPackBean.getDdlPackBean(mesReworkTask.getOrganizeCode());
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(requestModel.getSn(), "workOrderNo", partPackBean);
|
|
|
|
|
List<MesWorkOrderPart> workOrderParts = workOrderPartRepository.findByHqlWhere(partPackBean);
|
|
|
|
|
if (!CollectionUtils.isEmpty(workOrderParts)) {
|
|
|
|
|
DdlPackBean partProdBean = DdlPackBean.getDdlPackBean(mesReworkTask.getOrganizeCode());
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(mesPartInspection.getWorkCenterCode(), "workCenterCode", partProdBean);
|
|
|
|
|
List<MesPartProdGroup> mesPartProdGroupList = mesPartProdGroupRao.findByHqlTopWhere(partProdBean, 1);
|
|
|
|
|
for (MesWorkOrderPart workOrderPart : workOrderParts) {
|
|
|
|
|
MesPart partInfo = mesPartService.getMesPartByPartNo(workOrderPart.getPartNo(), mesReworkTask.getOrganizeCode());
|
|
|
|
|
String esd = partInfo.getEsd();
|
|
|
|
|
|
|
|
|
|
// 查询移库规则
|
|
|
|
|
DdlPackBean movePackBean = DdlPackBean.getDdlPackBean(mesReworkTask.getOrganizeCode());
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(esd, "srcType", movePackBean);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(mesPartProdGroupList.get(0).getPartProdGroupCode(), "code", movePackBean);
|
|
|
|
|
List<MesMoveRule> moveRules = mesMoveRuleRepository.findByHqlWhere(movePackBean);
|
|
|
|
|
if (!CollectionUtils.isEmpty(moveRules)) {
|
|
|
|
|
MesPartModel mesPartModel = new MesPartModel();
|
|
|
|
|
mesPartModel.setPartNo(workOrderPart.getPartNo());
|
|
|
|
|
mesPartModel.setLocateNo(moveRules.get(0).getErpDestLocateNo());
|
|
|
|
|
mesPartModels.add(mesPartModel);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String target = mesConfigService.getCfgValue(requestModel.getOrganizeCode(), "UMLGO");
|
|
|
|
|
String workCenterCode = "";
|
|
|
|
|
if (mesPartInspection != null) {
|
|
|
|
|
workCenterCode = mesPartInspection.getWorkCenterCode();
|
|
|
|
|
}
|
|
|
|
|
if (!headModel && !CollectionUtils.isEmpty(mesPartModels) && mesPartModels.size() > 0) {
|
|
|
|
|
for (MesPartModel mesPartModel : mesPartModels) {
|
|
|
|
|
doCreateReworkMove(requestModel,getDestLocateNo(requestModel.getOrganizeCode(), mesPartInspection.getId()),target,workCenterCode,mesPartModel.getPartNo(), mesPartInspection.getId());
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
doCreateReworkMove(requestModel,getDestLocateNo(requestModel.getOrganizeCode(), mesPartInspection.getId()),target,workCenterCode,mesReworkTask.getPartNo(), mesPartInspection.getId());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (MesExtEnumUtil.PART_INSPECTION_SOURCE_TYPE.LOT.getValue() == mesReworkTask.getType()) {
|
|
|
|
|
mesReworkTask.setReworkedQty(requestModel.getReworkedQty());
|
|
|
|
|