Merge remote-tracking branch 'origin/dev-wuhan' into dev-wuhan

tags/yfai-mes-ext-v2.3
臧学普 8 months ago
commit e9bc105f43

@ -16,6 +16,6 @@ public interface IMesWorkOrderCutService extends IBaseMesService<MesWorkOrderCut
void doGenerateCutWorkOrder(List<Long> workOrderIds, String cutCode, String remark, String organizeCode, String userName);
@ApiOperation("发布裁片工单")
void doReleaseCutWorkOrder(String cutWorkOrderNo, String organizeCode, String userName);
void doReleaseCutWorkOrder(List<String> cutWorkOrderNos, String organizeCode, String userName);
}

@ -125,6 +125,6 @@ public class MesRepositoryAspect {
private void updateBeanSync(BaseBean bean) {
bean.setSystemSyncStatus(CommonEnumUtil.FALSE);
bean.setModifyDatetime(TimeTool.getNowTime(true));
bean.setSystemSyncDatetime("");
}
}

@ -16,8 +16,7 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Arrays;
/**
*
*/
@ -31,13 +30,13 @@ public class MesWorkOrderCutController extends BaseMesController<MesWorkOrderCut
@PostMapping(value = "/generate")
@ApiOperation(value = "裁片工单生成", notes = "裁片工单生成")
public ResultBean doGenerateCutWorkOrder(List<Long> workOrderIds, String cutCode, String remark) {
public ResultBean doGenerateCutWorkOrder(Long[] workOrderIds, String cutCode, String remark) {
try {
ValidatorBean.checkNotNull(workOrderIds, "工单不存在");
ValidatorBean.checkNotNull(cutCode, "裁片方案不存在");
workOrderCutService.doGenerateCutWorkOrder(workOrderIds, cutCode, remark, AuthUtil.getOrganize().getOrganizeCode(), AuthUtil.getSessionUser().getUserName());
workOrderCutService.doGenerateCutWorkOrder(Arrays.asList(workOrderIds), cutCode, remark, AuthUtil.getOrganize().getOrganizeCode(), AuthUtil.getSessionUser().getUserName());
return ResultBean.success("生成成功")
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) {
@ -49,12 +48,12 @@ public class MesWorkOrderCutController extends BaseMesController<MesWorkOrderCut
@PostMapping(value = "/release")
@ApiOperation(value = "裁片工单发布", notes = "裁片工单发布")
public ResultBean doReleaseCutWorkOrder(String cutWorkOrderNo) {
public ResultBean doReleaseCutWorkOrder(String[] cutWorkOrderNos) {
try {
ValidatorBean.checkNotNull(cutWorkOrderNo, "裁片工单不存在");
ValidatorBean.checkNotNull(cutWorkOrderNos, "裁片工单不存在");
workOrderCutService.doReleaseCutWorkOrder(cutWorkOrderNo, AuthUtil.getOrganize().getOrganizeCode(), AuthUtil.getSessionUser().getUserName());
workOrderCutService.doReleaseCutWorkOrder(Arrays.asList(cutWorkOrderNos), AuthUtil.getOrganize().getOrganizeCode(), AuthUtil.getSessionUser().getUserName());
return ResultBean.success("发布成功")
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) {

@ -34,15 +34,20 @@ public class MesWorkOrderDaoImpl implements IMesWorkOrderDao {
@Override
public List<MesWorkOrderModel> sumMesWorkOrderQtyToSap(String organizeCode) {
StringBuffer hql = new StringBuffer("select organize_code as organizeCode,part_no as partNo, date_format(plan_start_time, '%Y-%m-%d' ) as planStartTime, product_version as productVersion, " +
" sum(case when work_order_status = 40 then reported_qty else qty end ) as qty " +
" from mes_work_order where is_deleted=:isDeleted and is_valid = :isValid and organize_code = :organizeCode " +
" and work_order_type = :workOrderType and order_flag != :orderFlag and work_order_status in (20,30,40,50) and plan_start_time >= :today" +
" group by organize_code,part_no, date_format(plan_start_time, '%Y-%m-%d' ), product_version ");
StringBuffer hql = new StringBuffer("select workOrder.organize_code as organizeCode,workOrder.part_no as partNo, " +
" date_format(workOrder.plan_start_time, '%Y-%m-%d' ) as planStartTime, workOrder.product_version as productVersion, " +
" sum(case when workOrder.work_order_status = 40 then workOrder.reported_qty else workOrder.qty end ) as qty " +
" from mes_work_order as workOrder left join mes_part_sap as partSap on workOrder.part_no = partSap.part_no" +
" where workOrder.is_deleted=:isDeleted and workOrder.is_valid = :isValid and workOrder.organize_code = :organizeCode " +
" and partSap.is_deleted=:isDeleted and partSap.is_valid = :isValid and partSap.organize_code = :organizeCode " +
" and partSap.is_test_piece = :isTestPiece and workOrder.work_order_type = :workOrderType and workOrder.order_flag != :orderFlag " +
" and workOrder.work_order_status in (20,30,40,50) and workOrder.plan_start_time >= :today" +
" group by workOrder.organize_code,workOrder.part_no, date_format(workOrder.plan_start_time, '%Y-%m-%d' ), workOrder.product_version ");
Query query = entityManager.createNativeQuery(hql.toString());
query.setParameter("organizeCode", organizeCode);
query.setParameter("isValid", CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
query.setParameter("isDeleted", CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
query.setParameter("isTestPiece", CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
query.setParameter("today", TimeTool.getToday());
query.setParameter("workOrderType", MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue());
query.setParameter("orderFlag", MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue());

@ -85,7 +85,7 @@ public class MesQmsScrapJob extends BaseMesScheduleJob {
for (MesPartInspection mesPartInspection : mesPartInspectionList) {
mesPartInspection.setSystemSyncStatus(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
ConvertBean.serviceModelUpdate(mesPartInspection, MesExtConstWords.JOB);
// ConvertBean.serviceModelUpdate(mesPartInspection, MesExtConstWords.JOB);
}
partInspectionRepository.saveAll(mesPartInspectionList);
}

@ -80,13 +80,13 @@ public class MesQmsSuspiciousJob extends BaseMesScheduleJob {
// new SimpleDateFormat("yyyy-MM-dd").format(TimeTool.getDateBefore(new Date(), 1)) + " 00:00:00",
// TimeTool.getToday() + " 00:00:00", "createDatetime", packBean, true);
// 获取当前时间前1小时的时间
LocalDateTime now = LocalDateTime.now();
LocalDateTime oneHourAgo = now.minusHours(1);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String formattedNow = now.format(formatter);
String formattedOneHourAgo = oneHourAgo.format(formatter);
// LocalDateTime now = LocalDateTime.now();
// LocalDateTime oneHourAgo = now.minusHours(1);
// DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
// String formattedNow = now.format(formatter);
// String formattedOneHourAgo = oneHourAgo.format(formatter);
// DdlPreparedPack.timeBuilder(formattedOneHourAgo, formattedNow, "createDatetime", packBean, true);
DdlPreparedPack.getNumEqualPack(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), "qmsSync", packBean);
DdlPreparedPack.timeBuilder(formattedOneHourAgo, formattedNow, "createDatetime", packBean, true);
List<MesPartInspection> mesPartInspectionList = partInspectionRepository.findByHqlWhere(packBean);
if (!CollectionUtils.isEmpty(mesPartInspectionList)) {
@ -113,8 +113,9 @@ public class MesQmsSuspiciousJob extends BaseMesScheduleJob {
qmsSuspiciousService.doQmsSuspiciousByPartInspection(partInspectionList, organizeCode);
for (MesPartInspection mesPartInspection : mesPartInspectionList) {
mesPartInspection.setQmsSync(1);
ConvertBean.serviceModelUpdate(mesPartInspection, MesExtConstWords.JOB);
mesPartInspection.setQmsSync(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
//42959 QMS可疑品汇总job 会把电子化检验终检人和终检时间覆盖掉
// ConvertBean.serviceModelUpdate(mesPartInspection, MesExtConstWords.JOB);
}
partInspectionRepository.saveAll(mesPartInspectionList);
}

@ -155,7 +155,7 @@ public class MesProductionRecordServiceImpl extends BaseMesService<MesProduction
}
if (!StringUtil.isEmpty(mesProductionRecord.getWorkCenterCode())) {
sql += " and mpr.work_center_code ='" + mesProductionRecord.getWorkCenterCode() + "' ";
sql += " and mpr.work_center_code like '%" + mesProductionRecord.getWorkCenterCode() + "%' ";
}
if (!StringUtil.isEmpty(mesProductionRecord.getShiftCode())) {
@ -163,7 +163,7 @@ public class MesProductionRecordServiceImpl extends BaseMesService<MesProduction
}
if (!StringUtil.isEmpty(mesProductionRecord.getWorkCellCode())) {
sql += " and mpr.work_cell_code ='" + mesProductionRecord.getWorkCellCode() + "' ";
sql += " and mpr.work_cell_code like '%" + mesProductionRecord.getWorkCellCode() + "%' ";
}
if (!StringUtil.isEmpty(mesProductionRecord.getEquipmentName())) {

@ -83,7 +83,7 @@ public class MesPullingOrderInfoService extends BaseMesService<MesPullingOrderIn
DdlPreparedPack.getStringEqualPack(pullingGroupCode, "pullCode", partPackBean);
partPackBean.setWhereAppend(partPackBean.getWhereAppend() + " order by modifyDatetime desc");
List<MesPullingOrderInfo> byHqlWhere = mesPullingOrderPartInfoRepository.findByHqlWhere(partPackBean);
//List<MesPullingOrderInfo> byHqlWhere = mesPullingOrderPartInfoRepository.findByHqlWhere(partPackBean);
resultMap.put("",mesPullingOrder);
resultMap.put("success", true);

@ -73,8 +73,10 @@ public class MesWorkOrderCutService extends BaseMesService<MesWorkOrderCut> impl
MesException.throwMesBusiException("工单信息不存在");
}
List<Long> workOrderIdDbList = workOrderList.stream().map(MesWorkOrder::getId).collect(Collectors.toList());
for (Long workOrderId : workOrderIds) {
if (!workOrderList.contains(workOrderId)) {
if (!workOrderIdDbList.contains(workOrderId)) {
MesException.throwMesBusiException("工单信息ID【%s】不存在", workOrderId);
}
}
@ -100,7 +102,7 @@ public class MesWorkOrderCutService extends BaseMesService<MesWorkOrderCut> impl
partNoList.removeAll(fgPartNoList);
if (CollectionUtils.isEmpty(partNoList)) MesException.throwMesBusiException("物料【%s】未在裁片方案成品中维护", partNoList);
if (!CollectionUtils.isEmpty(partNoList)) MesException.throwMesBusiException("零件号【%s】未在裁片方案成品中维护", partNoList);
Map<String, Double> workOrderUnCompleteMap = new HashMap<>();
List<MesWorkOrderCutDetail> workOrderCutDetailtList = new ArrayList<>();
@ -114,8 +116,8 @@ public class MesWorkOrderCutService extends BaseMesService<MesWorkOrderCut> impl
MesWorkOrder workOrder = workOrders.get(0);
if (cutSchemeFg.getQty().compareTo(workOrder.getUnCompleteQty()) < 0) {
MesException.throwMesBusiException("零件号【%s】工单未完成数量不满足产成总数", cutSchemeFg.getPartNo());
if (cutSchemeFg.getQty().compareTo(workOrder.getUnCompleteQty()) > 0) {
MesException.throwMesBusiException("零件号【%s】工单未完成数量【%s】不满足产成总数【%s】", cutSchemeFg.getPartNo(), workOrder.getUnCompleteQty(), cutSchemeFg.getQty());
}
Double unCompleteQty = workOrder.getUnCompleteQty();
@ -142,14 +144,16 @@ public class MesWorkOrderCutService extends BaseMesService<MesWorkOrderCut> impl
workOrderCut.setCutName(cutScheme.getCutName());
workOrderCut.setWorkOrderStatus(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue() == cutScheme.getIsAutoRelease() ? MesExtEnumUtil.CUT_ORDER_STATUS.RELEASED.getValue() : MesExtEnumUtil.CUT_ORDER_STATUS.CREATE.getValue());
workOrderCut.setRemark(remark);
workOrderCut.setCutWorkOrderNo(doGererateSerialNo(cutScheme.getCutCode(), organizeCode, userName));
workOrderCut.setCutWorkOrderNo(doGenerateSerialNo(cutScheme.getCutCode(), organizeCode, userName));
workOrderCut.setOrganizeCode(organizeCode);
workOrderCutDetailtList.forEach(o-> o.setCutWorkOrderNo(workOrderCut.getCutWorkOrderNo()));
List<MesWorkOrderCutMaterial> workOrderCutMaterialList = new ArrayList<>();
for (MesCutSchemeMaterial cutSchemeMaterial : cutSchemeMaterialList) {
MesWorkOrderCutMaterial workOrderCutMaterial = new MesWorkOrderCutMaterial();
BeanUtils.copyProperties(cutSchemeMaterial, workOrderCutMaterial, MesExtConstWords.ID);
ConvertBean.serviceModelInitialize(workOrderCut, userName);
ConvertBean.serviceModelInitialize(workOrderCutMaterial, userName);
workOrderCutMaterial.setOrganizeCode(organizeCode);
workOrderCutMaterial.setCutWorkOrderNo(workOrderCut.getCutWorkOrderNo());
workOrderCutMaterial.setSystemSyncStatus(CommonEnumUtil.FALSE);
@ -169,9 +173,15 @@ public class MesWorkOrderCutService extends BaseMesService<MesWorkOrderCut> impl
}
@Override
public void doReleaseCutWorkOrder(String cutWorkOrderNo, String organizeCode, String userName) {
public void doReleaseCutWorkOrder(List<String> cutWorkOrderNos, String organizeCode, String userName) {
if (CollectionUtils.isEmpty(cutWorkOrderNos)) MesException.throwMesBusiException("裁片工单为空");
if (StringUtils.isEmpty(cutWorkOrderNo)) MesException.throwMesBusiException("裁片工单为空");
List<MesWorkOrderCut> workOrderCuts = new ArrayList<>();
for (String cutWorkOrderNo : cutWorkOrderNos) {
if (StringUtils.isEmpty(cutWorkOrderNos)) MesException.throwMesBusiException("裁片工单为空");
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(cutWorkOrderNo, MesExtConstWords.CUT_WORK_ORDER_NO, packBean);
@ -181,14 +191,17 @@ public class MesWorkOrderCutService extends BaseMesService<MesWorkOrderCut> impl
if (workOrderCutDb.getWorkOrderStatus() != MesExtEnumUtil.CUT_ORDER_STATUS.CREATE.getValue()) MesException.throwMesBusiException("裁片工单【%】状态不为【%s】,当前状态为【%s】", cutWorkOrderNo, MesExtEnumUtil.CUT_ORDER_STATUS.RELEASED.getValue(), MesExtEnumUtil.CUT_ORDER_STATUS.valueOfDescription(workOrderCutDb.getWorkOrderStatus()));
workOrderCutDb.setWorkOrderStatus(MesExtEnumUtil.CUT_ORDER_STATUS.RELEASED.getValue());
}
ConvertBean.serviceModelUpdate(workOrderCutDb, userName);
for (MesWorkOrderCut workOrderCut : workOrderCuts) {
workOrderCut.setWorkOrderStatus(MesExtEnumUtil.CUT_ORDER_STATUS.RELEASED.getValue());
ConvertBean.serviceModelUpdate(workOrderCut, userName);
}
workOrderCutRepository.save(workOrderCutDb);
workOrderCutRepository.saveAll(workOrderCuts);
}
private String doGererateSerialNo(String cutCode, String organizeCode, String userName) {
private String doGenerateSerialNo(String cutCode, String organizeCode, String userName) {
return syncFuncService.syncSerialNo(
new GenSerialNoModel(MesExtConstWords.CUT_WORK_ORDER_NO_FUL).dynamicRule(cutCode).year(TimeTool.pareDateToString(MesExtConstWords.DATE_FORMAT_YY, new Date())).organizeCode(organizeCode),
userName, organizeCode, 1).getResultList().get(0).toString();

@ -483,7 +483,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
} catch (ImppBusiException busExcep) {
MesException.throwMesBusiException(busExcep.getErrorDetail());
} catch (Exception e) {
MesException.throwMesBusiException("计划日期格式异常");
MesException.throwMesBusiException("计划日期格式异常,日期格式应为:%s",DateUtil.SHORT_FORMAT);
}
//查询班次信息
List<MesShift> mesShifts = mesShiftMap.get(item.getWorkCenterCode() + item.getShiftCode());
@ -847,12 +847,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
//查询物料信息
MesPart mesPart = iMesPartService.getPartByPartNo(mesWorkOrderDb.getPartNo(), mesWorkOrderDb.getOrganizeCode());
//查询产线信息
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mesWorkOrderDb.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(mesWorkOrderDb.getWorkCenterCode(), "workCenterCode", ddlPackBean);
MesWorkCenter mesWorkCenter = mesWorkCenterRDao.getByProperty(ddlPackBean);
if (Objects.isNull(mesWorkCenter)) {
MesException.throwMesBusiException("产线【%s】不存在", mesWorkOrderDb.getWorkCenterCode());
}
MesWorkCenter mesWorkCenter = getMesWorkCenter(mesWorkOrderDb.getOrganizeCode(),mesWorkOrderDb.getWorkCenterCode());
//获取生产版本
MesProductVersion mesProductVersion = getMesProductVersion(mesWorkOrderDb);
//物料+生产版本获取bom信息
@ -864,25 +859,22 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
double unCompleteQty = MathOperation.sub(mesWorkOrderDb.getQty(), mesWorkOrderDb.getReportedQty());
mesWorkOrderDb.setUnCompleteQty(unCompleteQty > 0 ? unCompleteQty : 0);
if (mesWorkOrderDb.getReportedQty() > mesWorkOrderDb.getQty()) {
//查询产线信息
DdlPackBean packBean = DdlPackBean.getDdlPackBean(mesWorkOrder.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(mesWorkOrder.getWorkCenterCode(), "workCenterCode", packBean);
MesWorkCenter workCenter = mesWorkCenterRDao.getByProperty(packBean);
// 以下则是超工单逻辑
// 如果产线中没有配置超工单,则直接阻断
if (!Objects.equals(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(), workCenter.getIsCheckOrderQty())) {
if (!Objects.equals(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(), mesWorkCenter.getIsCheckOrderQty())) {
MesException.throwMesBusiException("请检查工单数量,工单号[%s],工单数量[%s]报工数量[%s],且未配置超工单!", mesWorkOrder.getWorkOrderNo(), mesWorkOrder.getQty(), mesWorkOrder.getReportedQty());
}
// 如果配置了超工单,且比例已经超过了配置的超工单比例,也需要阻断
double rate = MathOperation.div((mesWorkOrderDb.getReportedQty() - mesWorkOrderDb.getQty()),mesWorkOrderDb.getQty());
if (rate > MathOperation.div(workCenter.getOrderRate(),100)) {
MesException.throwMesBusiException("请检查工单数量,工单号[%s],工单数量[%s]报工数量[%s],配置了超工单,但超过了比例[%s]!", mesWorkOrder.getWorkOrderNo(), mesWorkOrder.getQty(), mesWorkOrder.getReportedQty(), workCenter.getOrderRate());
if (rate > MathOperation.div(mesWorkCenter.getOrderRate(),100)) {
MesException.throwMesBusiException("请检查工单数量,工单号[%s],工单数量[%s]报工数量[%s],配置了超工单,但超过了比例[%s]!", mesWorkOrder.getWorkOrderNo(), mesWorkOrder.getQty(), mesWorkOrder.getReportedQty(), mesWorkCenter.getOrderRate());
}
mesWorkOrder.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.COMPLETE.getValue());
} else if (Objects.equals(mesWorkOrderDb.getReportedQty(), mesWorkOrderDb.getQty())) {
mesWorkOrderDb.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.COMPLETE.getValue());
} else {
mesWorkOrderDb.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.PROCESS.getValue());
mesWorkOrderDb.setWorkOrderStatus(mesWorkOrder.getWorkOrderStatus()==MesExtEnumUtil.ORDER_STATUS.CLOSE.getValue()?
MesExtEnumUtil.ORDER_STATUS.CLOSE.getValue():MesExtEnumUtil.ORDER_STATUS.PROCESS.getValue());
}
mesWorkOrderDb.setCompleteQty(mesWorkOrderDb.getReportedQty());
} else {
@ -902,7 +894,8 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
String sn = getStringList(mesWorkOrder);
//保存数据
List<MesProductOffLine> mesProductOffLineList = new ArrayList<>();
String nowTime = TimeTool.getNowTime(true);
String nowTime = StringUtil.isEmpty(mesWorkOrder.getDescription())?TimeTool.getNowTime(true):mesWorkOrder.getDescription();
for (MesBom mesBom : mesBoms) {
mesProductOffLineList.add(creatMesProductOffLine(mesWorkOrder, mesProductVersion, sn, mesBom, false,nowTime));
}
@ -921,6 +914,8 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
if (mesWorkOrderNew.getNum() <= 0) {
MesException.throwMesBusiException("工单报工数量不能为0,不允许报工");
}
//查询产线信息
MesWorkCenter workCenter = getMesWorkCenter(mesWorkOrder.getOrganizeCode(),mesWorkOrder.getWorkCenterCode());
//报工类型
//报工
if (MesExtEnumUtil.REPORT_TYPE.REPORT.getValue() == mesWorkOrderNew.getReportType()) {
@ -929,10 +924,6 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
double unCompleteQty = MathOperation.sub(mesWorkOrder.getQty(), mesWorkOrder.getReportedQty());
mesWorkOrder.setUnCompleteQty(unCompleteQty > 0 ? unCompleteQty : 0);
if (mesWorkOrder.getReportedQty() > mesWorkOrder.getQty()) {
//查询产线信息
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mesWorkOrder.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(mesWorkOrder.getWorkCenterCode(), "workCenterCode", ddlPackBean);
MesWorkCenter workCenter = mesWorkCenterRDao.getByProperty(ddlPackBean);
// 以下则是超工单逻辑
// 如果产线中没有配置超工单,则直接阻断
if (!Objects.equals(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(), workCenter.getIsCheckOrderQty())) {
@ -1285,6 +1276,15 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
return newMesProductOffLine;
}
private MesWorkCenter getMesWorkCenter(String organizeCode,String workCenterCode) {
MesWorkCenter mesWorkCenter = workCenterService.getWorkCenterDb(organizeCode, workCenterCode);
if (Objects.isNull(mesWorkCenter)) {
MesException.throwMesBusiException("产线【%s】不存在", workCenterCode);
}
return mesWorkCenter;
}
@Override
public List<MesWorkOrderModel> sumMesWorkOrderQtyToSap(String organizeCode) {
//查询汇总工单数量

@ -139,6 +139,8 @@ public class MesSpotCheckOrderService extends BaseMesService<MesSpotCheckOrder>
BeanUtils.copyProperties(equipmentSpotCheck, bean, "id");
bean.setSpotCheckOrderNo(orderNo);
bean.setSystemSyncStatus(CommonEnumUtil.FALSE);
bean.setSystemSyncDatetime("");
ConvertBean.serviceModelInitialize(bean, AuthUtil.getSessionUser().getUserName());
bean = baseRDao.insert(bean);
@ -155,6 +157,8 @@ public class MesSpotCheckOrderService extends BaseMesService<MesSpotCheckOrder>
result.setSpotCheckItemId(k.getId());
result.setTaskItemName(k.getSpotCheckItemName());
result.setSpotCheckStandardValue(k.getStandardValue());
result.setSystemSyncStatus(CommonEnumUtil.FALSE);
result.setSystemSyncDatetime("");
ConvertBean.serviceModelInitialize(result, AuthUtil.getSessionUser().getUserName());
// ConvertBean.serviceModelInitialize(result, "LML");
spotCheckOrderResults.add(result);
@ -168,6 +172,8 @@ public class MesSpotCheckOrderService extends BaseMesService<MesSpotCheckOrder>
MesSpotCheckOrderPart spotCheckOrderPart = new MesSpotCheckOrderPart();
spotCheckOrderPart.setSpotCheckOrderId(finalBean.getId());
BeanUtils.copyProperties(k, spotCheckOrderPart, "id");
spotCheckOrderPart.setSystemSyncStatus(CommonEnumUtil.FALSE);
spotCheckOrderPart.setSystemSyncDatetime("");
ConvertBean.serviceModelInitialize(spotCheckOrderPart, AuthUtil.getSessionUser().getUserName());
// ConvertBean.serviceModelInitialize(spotCheckOrderPart, "LML");
spotCheckOrderPartList.add(spotCheckOrderPart);
@ -209,6 +215,8 @@ public class MesSpotCheckOrderService extends BaseMesService<MesSpotCheckOrder>
//软删点检单明细
oldOrderResultList.forEach(k -> {
k.setSystemSyncStatus(CommonEnumUtil.FALSE);
k.setSystemSyncDatetime("");
k.setIsDeleted(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
ConvertBean.serviceModelUpdate(k, AuthUtil.getSessionUser().getUserName());
});
@ -222,6 +230,8 @@ public class MesSpotCheckOrderService extends BaseMesService<MesSpotCheckOrder>
//软删点检单零件号及条码
oldOrderPartList.forEach(k -> {
k.setIsDeleted(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
k.setSystemSyncStatus(CommonEnumUtil.FALSE);
k.setSystemSyncDatetime("");
ConvertBean.serviceModelUpdate(k, AuthUtil.getSessionUser().getUserName());
});
spotCheckOrderPartRepository.saveAll(oldOrderPartList);
@ -276,6 +286,8 @@ public class MesSpotCheckOrderService extends BaseMesService<MesSpotCheckOrder>
MesSpotCheckOrderResult result = new MesSpotCheckOrderResult();
BeanUtils.copyProperties(k, result, "id");
result.setPid(finalBean.getId());
result.setSystemSyncStatus(CommonEnumUtil.FALSE);
result.setSystemSyncDatetime("");
ConvertBean.serviceModelInitialize(result, AuthUtil.getSessionUser().getUserName());
spotCheckOrderResults.add(result);
});
@ -287,6 +299,8 @@ public class MesSpotCheckOrderService extends BaseMesService<MesSpotCheckOrder>
MesSpotCheckOrderPart spotCheckOrderPart = new MesSpotCheckOrderPart();
spotCheckOrderPart.setSpotCheckOrderId(finalBean.getId());
BeanUtils.copyProperties(k, spotCheckOrderPart, "id");
spotCheckOrderPart.setSystemSyncStatus(CommonEnumUtil.FALSE);
spotCheckOrderPart.setSystemSyncDatetime("");
ConvertBean.serviceModelInitialize(spotCheckOrderPart, AuthUtil.getSessionUser().getUserName());
spotCheckOrderPartList.add(spotCheckOrderPart);
});
@ -295,6 +309,8 @@ public class MesSpotCheckOrderService extends BaseMesService<MesSpotCheckOrder>
spotCheckOrderResultService.insertBatch(spotCheckOrderResults);
bean.setSystemSyncStatus(CommonEnumUtil.FALSE);
bean.setSystemSyncDatetime("");
ConvertBean.serviceModelUpdate(bean, AuthUtil.getSessionUser().getUserName());
baseRDao.update(bean);
return originBean;
@ -323,6 +339,8 @@ public class MesSpotCheckOrderService extends BaseMesService<MesSpotCheckOrder>
List<MesSpotCheckOrderResult> detailList = spotCheckOrderResultRepository.findByHqlWhere(packBean);
detailList.forEach(k -> {
k.setIsDeleted(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
k.setSystemSyncStatus(CommonEnumUtil.FALSE);
k.setSystemSyncDatetime("");
ConvertBean.serviceModelUpdate(k, AuthUtil.getSessionUser().getUserName());
});
spotCheckOrderResultRepository.saveAll(detailList);
@ -336,6 +354,8 @@ public class MesSpotCheckOrderService extends BaseMesService<MesSpotCheckOrder>
if (CollectionUtils.isEmpty(oldOrderPartList)) {
oldOrderPartList.forEach(k -> {
k.setIsDeleted(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
k.setSystemSyncStatus(CommonEnumUtil.FALSE);
k.setSystemSyncDatetime("");
ConvertBean.serviceModelUpdate(k, AuthUtil.getSessionUser().getUserName());
});
spotCheckOrderPartRepository.saveAll(oldOrderPartList);
@ -439,12 +459,16 @@ public class MesSpotCheckOrderService extends BaseMesService<MesSpotCheckOrder>
mesSpotCheckOrder.setStatus(MesExtEnumUtil.SPOT_CHECK_ORDER_STATUS.CREATE.getValue());
mesSpotCheckOrder.setSpotCheckId(spotCheck.getId());
mesSpotCheckOrder.setSpotCheckOrderNo(orderNo);
mesSpotCheckOrder.setSystemSyncStatus(CommonEnumUtil.FALSE);
mesSpotCheckOrder.setSystemSyncDatetime("");
ConvertBean.serviceModelInitialize(mesSpotCheckOrder, userName);
mesSpotCheckOrder = baseRDao.insert(mesSpotCheckOrder);
//保存单据明细
saveMesSpotCheckOrderDetails(userName, detailMap, spotCheck.getId(), mesSpotCheckOrder);
//保存单据零件
saveMesEquipmentSpotCheckPartList(userName, checkPartListMap, spotCheck.getId(), mesSpotCheckOrder.getId());
spotCheck.setSystemSyncStatus(CommonEnumUtil.FALSE);
spotCheck.setSystemSyncDatetime("");
ConvertBean.serviceModelUpdate(spotCheck, userName);
baseRDao.update(spotCheck);
count++;
@ -523,6 +547,7 @@ public class MesSpotCheckOrderService extends BaseMesService<MesSpotCheckOrder>
spotCheckOrderPart.setSpotCheckOrderId(spotCheckOrderId);
BeanUtils.copyProperties(k, spotCheckOrderPart, "id");
spotCheckOrderPart.setSystemSyncStatus(CommonEnumUtil.FALSE);
spotCheckOrderPart.setSystemSyncDatetime("");
ConvertBean.serviceModelInitialize(spotCheckOrderPart, userName);
spotCheckOrderPartList.add(spotCheckOrderPart);
});
@ -543,6 +568,7 @@ public class MesSpotCheckOrderService extends BaseMesService<MesSpotCheckOrder>
result.setTaskItemName(k.getSpotCheckItemName());
result.setSpotCheckStandardValue(k.getStandardValue());
result.setSystemSyncStatus(CommonEnumUtil.FALSE);
result.setSystemSyncDatetime("");
ConvertBean.serviceModelInitialize(result, userName);
spotCheckOrderResults.add(result);
});

@ -16,6 +16,7 @@ import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.StringJoiner;
@Service
@ -29,9 +30,17 @@ public class MesEquipmentLogDetailService extends BaseMesService<MesEquipmentLog
DdlPreparedPack.getStringEqualPack(new StringJoiner(MesExtConstWords.E_UNDERLINE).add(bean.getOrganizeCode()).add(bean.getEquipId().toString()).toString(), MesExtConstWords.ORG_EQUIP_ID, packBean);
// DdlPreparedPack.getNumEqualPack(bean.getEquipId(), MesExtConstWords.EQUIP_ID, packBean);
DdlPreparedPack.getNumEqualPack(bean.getVariableType(), MesExtConstWords.VARIABLE_TYPE, packBean);
if(!StringUtils.isEmpty(bean.getEquipVariableId().toString().contains(","))){
DdlPreparedPack.getInPackList(Arrays.asList(bean.getEquipVariableId().toString().split(",")), MesExtConstWords.EQUIP_VARIABLE_ID, packBean);
}else {
DdlPreparedPack.getNumEqualPack(bean.getEquipVariableId(), MesExtConstWords.EQUIP_VARIABLE_ID, packBean);
// DdlPreparedPack.getStringEqualPack(bean.getEquipmentCode(), MesExtConstWords.EQUIPMENT_CODE, packBean);
}
if(!StringUtils.isEmpty(bean.getEquipVariableName().contains(","))){
DdlPreparedPack.getInPackList(Arrays.asList(bean.getEquipVariableName().split(",")), MesExtConstWords.EQUIP_VARIABLE_NAME, packBean);
}else {
DdlPreparedPack.getStringLikerPack(bean.getEquipVariableName(), MesExtConstWords.EQUIP_VARIABLE_NAME, packBean);
}
// DdlPreparedPack.getStringEqualPack(bean.getEquipmentCode(), MesExtConstWords.EQUIPMENT_CODE, packBean);
DdlPreparedPack.timeBuilder(bean.getCreateDateTimeStart(), bean.getCreateDateTimeEnd(), MesExtConstWords.CREATE_DATE_TIME, packBean, true);
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{MesExtConstWords.CREATE_DATE_TIME}, packBean);
}

@ -250,7 +250,11 @@ public class MesExtConstWords {
public static final String CUT_CODE = "cutCode";
// 裁片名称
public static final String CUT_NAME = "cutName";
//拆解目标库位
public static final String DISASSEMBLY_DEST_LOCATE = "DISASSEMBLY_DEST_LOCATE";
// 裁片工单号
public static final String CUT_WORK_ORDER_NO_FUL = "CUT_WORK_ORDER_NO";
// 条码
public static final String SN = "sn";
}

Loading…
Cancel
Save