展示组件

tags/yfai-pcn-ext-v1.0
微笑着面对明天 11 months ago
parent ea26dbc6ad
commit 1b71d890d8

@ -6,6 +6,8 @@ import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.mes.bean.MesShift;
import io.swagger.annotations.ApiOperation;
import java.util.List;
/**
* @Description: 线
* @Author: gsz
@ -18,4 +20,7 @@ public interface IMesShiftService {
@ApiOperation(value = "查询产线与班次的对应关系")
public ListPager<MesShift> queryMesShiftByPager(MesShift mesShift, Pager pager);
@ApiOperation(value = "查询产线与班次的对应关系")
public List<MesShift> queryMesShift(String organizeCode, String workCenterCode);
}

@ -37,7 +37,7 @@ public interface IMesWorkOrderService {
* @param organizeCode
* @return
*/
List<MesProduceSn> getUnReportMesProduceSn(String organizeCode);
public List<MesProductionRecord> getUnReportMesProduceSn(String organizeCode);
List<MesProductionRecord> getPreDayReportMesProductionRecord(String organizeCode , List<MesShift> mesShiftList, String workCenterCode);
@ -46,4 +46,16 @@ public interface IMesWorkOrderService {
public List<MesWorkOrder> insertMesWorkOrder(List<MesProduceSn> mesProduceSns,List<MesShift> mesShiftList,String organizeCode, String userName );
void doPcnJobProductReport(List<MesProduceSn> mesProduceSns,List<MesShift> mesShiftList,String organizeCode, String userName, MesWorkOrder mesWorkOrder);
void doProductReportByRecord(MesProductionRecord productionRecord, String organizeCode, String userName);
void doProductHasOrderReportByRecord(MesProductionRecord productionRecord, String organizeCode, String userName);
/**
*
* @param organizeCode
* @return
*/
List<MesProductionRecord> getUnReportHasOrderMesProduceSn(String organizeCode);
}

@ -23,7 +23,9 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author castle,
@ -61,31 +63,49 @@ public class MesReportNoSortJob extends BaseMesScheduleJob {
if (null == userName){
userName = "JOB";
}
List<MesProduceSn> unReportMesProduceSn = workOrderService.getUnReportMesProduceSn(organizeCode);
for (MesProduceSn mesProduceSn : unReportMesProduceSn) {
try {
workOrderService.doProductReport(Arrays.asList(mesProduceSn), organizeCode, userName);
//1.获取生产加工记录production_record表中report_status为待汇报状态的工单
updateProductionRecord(organizeCode, userName, mesProduceSn);
} catch (ImppBusiException e) {
LOGGER.error("条码:{}报工失败", mesProduceSn.getProductSn(), e.getErrorDetail());
updateProductionRecord(organizeCode, userName, mesProduceSn, e.getErrorDetail());
continue;
}
// 处理无工单
handlerNoOrder(organizeCode, userName);
// 处理有工单
handlerHasOrder(organizeCode, userName);
// }
}
private void handlerNoOrder(String organizeCode, String userName) {
List<MesProductionRecord> unReportMesProduceSn = workOrderService.getUnReportMesProduceSn(organizeCode);
try {
Map<String, Integer> map = new HashMap<>();
workOrderService.doProductReportByRecord(unReportMesProduceSn.get(0), organizeCode, userName);
} catch (ImppBusiException e) {
LOGGER.error("条码:{}报工失败", unReportMesProduceSn.get(0).getProductSn(), e.getErrorDetail());
updateProductionRecord(organizeCode, userName, unReportMesProduceSn.get(0).getProductSn(), e.getErrorDetail());
}
}
private void handlerHasOrder(String organizeCode, String userName) {
List<MesProductionRecord> unReportMesProduceSn = workOrderService.getUnReportHasOrderMesProduceSn(organizeCode);
try {
Map<String, Integer> map = new HashMap<>();
workOrderService.doProductHasOrderReportByRecord(unReportMesProduceSn.get(0), organizeCode, userName);
} catch (ImppBusiException e) {
LOGGER.error("条码:{}报工失败", unReportMesProduceSn.get(0).getProductSn(), e.getErrorDetail());
updateProductionRecord(organizeCode, userName, unReportMesProduceSn.get(0).getProductSn(), e.getErrorDetail());
}
}
private void updateProductionRecord(String organizeCode, String userName, MesProduceSn mesProduceSn) {
private void updateProductionRecord(String organizeCode, String userName, String sn) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(mesProduceSn.getProductSn(), "productSn", ddlPackBean);
DdlPreparedPack.getStringEqualPack(sn, "productSn", ddlPackBean);
productionRecordRao.updateByProperties(new String[]{"modifyUser", "modifyDatetime","reportStatus"},
new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_20.getValue() },ddlPackBean);
}
private void updateProductionRecord(String organizeCode, String userName, MesProduceSn mesProduceSn, String errorMsg) {
private void updateProductionRecord(String organizeCode, String userName, String sn, String errorMsg) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(mesProduceSn.getProductSn(), "productSn", ddlPackBean);
DdlPreparedPack.getStringEqualPack(sn, "productSn", ddlPackBean);
productionRecordRao.updateByProperties(new String[]{"modifyUser", "modifyDatetime","reportStatus", "remark"},
new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_40.getValue(), errorMsg },ddlPackBean);
}

@ -43,4 +43,10 @@ public class MesShiftServiceImpl implements IMesShiftService {
return new ListPager<>(resultList, pager);
}
@Override
public List<MesShift> queryMesShift(String organizeCode, String workCenterCode) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(workCenterCode, "workCenterCode", packBean);
return mesShiftRepository.findByHqlWhere(packBean);
}
}

@ -1,5 +1,7 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi;
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesPartService;
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesShiftService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesConfigService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesWorkOrderService;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException;
@ -20,6 +22,9 @@ import cn.estsh.i3plus.pojo.mes.repository.*;
import cn.estsh.i3plus.pojo.mes.repository.shipping.MesWorkOrderToWmsRepository;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.date.format.DateParser;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.slf4j.Logger;
@ -29,6 +34,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@ -78,6 +84,14 @@ public class MesWorkOrderService implements IMesWorkOrderService {
private MesShiftRepository mesShiftRepository;
@Autowired
private IMesConfigService configService;
@Autowired
private IMesPartService iMesPartService;
@Autowired
private IMesShiftService mesShiftService;
@Override
public MesWorkOrder queryMesWorkOrder(MesWorkOrder workOrder) {
@ -430,9 +444,276 @@ public class MesWorkOrderService implements IMesWorkOrderService {
}
return mesProductVersion;
}
private void updateProductionRecord(String organizeCode, String userName, String sn) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(sn, "productSn", ddlPackBean);
productionRecordRao.updateByProperties(new String[]{"modifyUser", "modifyDatetime","reportStatus"},
new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_50.getValue()},ddlPackBean);
}
@Override
public void doProductReportByRecord(MesProductionRecord productionRecord, String organizeCode, String userName) {
//新增初始化 todo
// 根据
//根据物料获取已发布的工单
MesWorkOrder oldMesWorkOrder = getMesWorkOrder(productionRecord, organizeCode);
if (oldMesWorkOrder == null) {
updateProductionRecord(organizeCode, userName, productionRecord.getProductSn());
}
report(productionRecord, organizeCode, userName, oldMesWorkOrder);
}
@Override
public void doProductHasOrderReportByRecord(MesProductionRecord productionRecord, String organizeCode, String userName) {
//新增初始化 todo
// 根据
//根据物料获取已发布的工单
List<MesWorkOrder> oldMesWorkOrders = getMesWorkOrders(productionRecord, organizeCode, null);
if (CollectionUtils.isEmpty(oldMesWorkOrders)) {
updateProductionRecord(organizeCode, userName, productionRecord.getProductSn());
}
report(productionRecord, organizeCode, userName, oldMesWorkOrders.get(0));
}
private void report(MesProductionRecord productionRecord, String organizeCode, String userName, MesWorkOrder oldMesWorkOrder) {
DdlPackBean ddlPackBean;
//查询工作中心
ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(oldMesWorkOrder.getWorkCenterCode(), "workCenterCode", ddlPackBean);
MesWorkCenter mesWorkCenter = mesWorkCenterRDao.getByProperty(ddlPackBean);
if (Objects.isNull(mesWorkCenter)) {
throw new ImppBusiException(String.format("产线【%s】不存在", oldMesWorkOrder.getWorkCenterCode()));
}
//获取生产版本
ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(productionRecord.getPartNo(), "partNo", ddlPackBean);
DdlPreparedPack.getStringEqualPack(mesWorkCenter.getErpWorkCenter(), "workCenterCode", ddlPackBean);
DdlPreparedPack.getStringEqualPack(oldMesWorkOrder.getProductVersion(), "productVersion", ddlPackBean);
MesProductVersion mesProductVersion = mesProductVersionRDao.getByProperty(ddlPackBean);
if (null == mesProductVersion) {
throw new ImppBusiException(String.format("物料【%s】生产版本信息不存在", productionRecord.getPartNo()));
}
//物料+生产版本获取bom信息
ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(productionRecord.getPartNo(), "partNo", ddlPackBean);
DdlPreparedPack.getStringEqualPack(mesProductVersion.getAlternativePartList(), "bomVersion", ddlPackBean);
List<MesBom> mesBoms = mesBomRDao.findByHqlWhere(ddlPackBean);
if (CollectionUtils.isEmpty(mesBoms)) {
throw new ImppBusiException(String.format("物料【%s】生产版本【%s】对应bom信息不存在",
productionRecord.getPartNo(), mesProductVersion.getProductVersion()));
}
oldMesWorkOrder.setNum(oldMesWorkOrder.getNum() == null ? 1 : oldMesWorkOrder.getNum() + 1);
oldMesWorkOrder.setReportedQty(MathOperation.add(oldMesWorkOrder.getNum(), oldMesWorkOrder.getReportedQty()));
//更新SAP计划完成数量
saveMesProductPlan(oldMesWorkOrder, false, true);
//更新工单状态
double unCompleteQty = MathOperation.sub(oldMesWorkOrder.getQty(), oldMesWorkOrder.getReportedQty());
oldMesWorkOrder.setUnCompleteQty(unCompleteQty > 0 ? unCompleteQty : 0);
if (oldMesWorkOrder.getReportedQty() > oldMesWorkOrder.getQty()) {
throw new ImppBusiException(String.format("工单报工数量【%s】大于工单数量【%s】,不允许报工",
oldMesWorkOrder.getReportedQty(), oldMesWorkOrder.getQty()));
} else if (Objects.equals(oldMesWorkOrder.getReportedQty(), oldMesWorkOrder.getQty())) {
oldMesWorkOrder.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.COMPLETE.getValue());
} else {
oldMesWorkOrder.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.PROCESS.getValue());
}
ConvertBean.serviceModelUpdate(oldMesWorkOrder, userName);
workOrderRepository.saveAndFlush(oldMesWorkOrder);
//保存数据
List<MesProductOffLine> mesProductOffLineList = new ArrayList<>();
MesProductOffLine newMesProductOffLine;
for (MesBom mesBom : mesBoms) {
newMesProductOffLine = new MesProductOffLine();
newMesProductOffLine.setReportPartNo(oldMesWorkOrder.getPartNo());
newMesProductOffLine.setReportPartNameRdd(oldMesWorkOrder.getPartName());
newMesProductOffLine.setItemPartNo(mesBom.getItemPartNo());
newMesProductOffLine.setItemPartName(mesBom.getItemPartName());
newMesProductOffLine.setItemQty(mesBom.getItemQty());
newMesProductOffLine.setAlort(mesProductVersion.getReceiveInventoryPoint());
newMesProductOffLine.setStgeLoc(mesProductVersion.getShipInventoryPoint());
newMesProductOffLine.setQty(1d);
newMesProductOffLine.setReportSn(productionRecord.getProductSn());
newMesProductOffLine.setBomVersion(oldMesWorkOrder.getProductVersion());
newMesProductOffLine.setSerialNumber(productionRecord.getProductSn());
newMesProductOffLine.setUnit(mesBom.getUnit());
newMesProductOffLine.setItemUnit(mesBom.getItemUnit());
newMesProductOffLine.setWorkOrderNo(oldMesWorkOrder.getWorkOrderNo());
newMesProductOffLine.setWorkCenterCode(oldMesWorkOrder.getWorkCenterCode());
newMesProductOffLine.setWorkCellCode(oldMesWorkOrder.getWorkCellCode());
newMesProductOffLine.setReportType(oldMesWorkOrder.getReportType());
newMesProductOffLine.setSapWorkCenter(oldMesWorkOrder.getErpWorkCenter());
newMesProductOffLine.setOrganizeCode(oldMesWorkOrder.getOrganizeCode());
ConvertBean.serviceModelInitialize(newMesProductOffLine, userName);
mesProductOffLineList.add(newMesProductOffLine);
}
mesProductOffLineRDao.saveAll(mesProductOffLineList);
// 同步工单信息给加工记录、条码信息
DdlPackBean snDdlPackBean = DdlPackBean.getDdlPackBean();
DdlPreparedPack.getStringEqualPack(productionRecord.getProductSn(), "productSn", snDdlPackBean);
DdlPreparedPack.getStringEqualPack(organizeCode, "organizeCode", snDdlPackBean);
mesProduceSnRao.updateByProperties(new String[]{"modifyUser", "modifyDatetime","workOrderNo"},
new Object[]{userName, TimeTool.getNowTime(true), oldMesWorkOrder.getWorkOrderNo()},snDdlPackBean);
productionRecordRao.updateByProperties(new String[]{"modifyUser", "modifyDatetime","workOrderNo", "reportStatus"},
new Object[]{userName, TimeTool.getNowTime(true), oldMesWorkOrder.getWorkOrderNo(), MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_20.getValue()},snDdlPackBean);
}
/**
*
* @param productionRecord
* @param organizeCode
* @return
*/
private MesWorkOrder getMesWorkOrder(MesProductionRecord productionRecord, String organizeCode) {
MesWorkOrder mesWorkOrder = new MesWorkOrder();
/**
* 线
*/
List<MesWorkOrder> oldMesWorkOrders = getMesWorkOrders(productionRecord, organizeCode, null);
// 获取当前班次
String shiftCode = productionRecord.getShiftCode();
String workCenterCode = productionRecord.getWorkCenterCode();
List<MesShift> shiftList = mesShiftService.queryMesShift(organizeCode, workCenterCode);
// 如果当前班次是早班
if (CollectionUtils.isEmpty(shiftList)) {
MesPcnException.throwFlowException(String.format("班次信息未维护,产线=%s"), workCenterCode);
}
List<MesShift> shifts = shiftList.stream().filter(mesShift -> Objects.equals(mesShift.getWorkCenterCode(), workCenterCode)).collect(Collectors.toList());
MesShift currentShift = shifts.stream().filter(mesShift -> Objects.equals(mesShift.getShiftCode(), shiftCode)).findFirst().orElse(null);
String beginTime =productionRecord.getLotNo() + " " + currentShift.getStartTime();
Date beginDate = transfer(beginTime);
/*MesWorkOrder found = null;
for (MesWorkOrder oldMesWorkOrder : oldMesWorkOrders) {
if (beginDate.getTime() >= transfer(oldMesWorkOrder.getPlanStartTime()).getTime() && beginDate.getTime() < transfer(oldMesWorkOrder.getPlanEndTime()).getTime()) {
found = oldMesWorkOrder;
break;
}
}*/
mesWorkOrder = oldMesWorkOrders.stream().filter(workOrder -> beginDate.getTime() >= transfer(workOrder.getPlanStartTime()).getTime() && beginDate.getTime() <= transfer(workOrder.getPlanEndTime()).getTime()).findFirst().orElse(null);
String date = productionRecord.getLotNo();
// 如果找不到需要找 当天的其它班次
if (mesWorkOrder == null) {
// 如果开始时间大于结束时间,说明跨天了,跨天说明是晚班,需要找, 如果是晚班, 则找早中班的工单
if (currentShift.getStartTime().compareTo(currentShift.getEndTime()) > 0) {
// 如果比0点大需要找日期前一天的班次的工单号,如果是0点前date =lotNO 如果是0点后则找lot的前一天
int hours = transfer(productionRecord.getCompleteDateTime()).getHours();
if (hours < 12) {
date = getDate(productionRecord.getLotNo(), 1);
} else {
date = getDate(productionRecord.getLotNo(), 0);
}
String endTime = date + " " +currentShift.getStartTime();
String startTime = date + " " +currentShift.getEndTime();
mesWorkOrder = oldMesWorkOrders.stream().filter(workOrder -> transfer(startTime).getTime() > transfer(workOrder.getPlanStartTime()).getTime() && transfer(endTime).getTime() < transfer(workOrder.getPlanEndTime()).getTime()).findFirst().orElse(null);
} else {
// 早班或者中班 则找当天非当前班次的最早单号
String startTime = date + " " +currentShift.getEndTime();
String endTime = getDate(date, 2) + " " +currentShift.getStartTime();
for (MesWorkOrder workOrder : oldMesWorkOrders) {
if (transfer(startTime).getTime() >= transfer(workOrder.getPlanStartTime()).getTime() && transfer(endTime).getTime() <= transfer(workOrder.getPlanEndTime()).getTime()) {
break;
}
}
mesWorkOrder = oldMesWorkOrders.stream().filter(workOrder -> transfer(startTime).getTime() >= transfer(workOrder.getPlanStartTime()).getTime() && transfer(endTime).getTime() <= transfer(workOrder.getPlanEndTime()).getTime()).findFirst().orElse(null);
}
if (mesWorkOrder == null) {
// todo 需要记录并且第二天要用job跑
return null;
}
}
return mesWorkOrder;
}
private List<MesWorkOrder> getMesWorkOrders(MesProductionRecord productionRecord, String organizeCode, String workOrderNo) {
List<Integer> list = Stream.of(MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue(), MesExtEnumUtil.ORDER_STATUS.PROCESS.getValue()).collect(Collectors.toList());
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(productionRecord.getPartNo(), "partNo", ddlPackBean);
DdlPreparedPack.getStringEqualPack(productionRecord.getWorkCenterCode(), "workCenterCode", ddlPackBean);
if (!StringUtils.isEmpty(workOrderNo)) {
DdlPreparedPack.getStringEqualPack(workOrderNo, "workOrderNo", ddlPackBean);
}
DdlPreparedPack.getInPackList(list, "workOrderStatus", ddlPackBean);
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()}, new String[]{"createDatetime"}, ddlPackBean);
// 新增班次逻辑
//DdlPreparedPack.
List<MesWorkOrder> oldMesWorkOrders = workOrderRepository.findByHqlWhere(ddlPackBean);
if(CollectionUtils.isEmpty(oldMesWorkOrders)){
throw new ImppBusiException(String.format("物料【%s】状态已发布的工单信息不存在", productionRecord.getPartNo()));
}
return oldMesWorkOrders;
}
/**
* flag = 1 1 = 2
* @param lotNo
* @param flag
* @return
*/
public String getDate(String lotNo, int flag) {
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
Date d = null;
try {
d = df.parse(lotNo);
} catch (ParseException e) {
e.printStackTrace();
}
Calendar cal=Calendar.getInstance();
cal.setTime(d);
if (flag == 1) {
cal.add(Calendar.DATE, -1); //减1天
} else if (flag == 2) {
cal.add(Calendar.DATE, 1); //加1天
}
return df.format(cal.getTime()).substring(0, 10);
}
private MesProductVersion getMesProductVersion(MesWorkOrder item, MesWorkCenter mesWorkCenter) {
DdlPackBean ddlPackBean;
ddlPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(item.getPartNo(), "partNo", ddlPackBean);
DdlPreparedPack.getStringEqualPack(mesWorkCenter.getErpWorkCenter(), "workCenterCode", ddlPackBean);
ddlPackBean.setOrderByStr(" order by createDatetime desc ");
MesProductVersion mesProductVersion = mesProductVersionRDao.getByProperty(ddlPackBean);
if (Objects.isNull(mesProductVersion)) {
MesPcnException.throwMesBusiException("物料【%s】工作中心【%s】对应的生产版本信息不存在", item.getPartNo(),
mesWorkCenter.getErpWorkCenter());
}
return mesProductVersion;
}
@Override
public List<MesProductionRecord> getUnReportMesProduceSn(String organizeCode) {
//1.获取生产加工记录production_record表中report_status为待汇报状态的工单
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
List<Integer> statusList = Stream.of(MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_10.getValue(), MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_40.getValue()).collect(Collectors.toList());
DdlPreparedPack.getInPackList( statusList,"reportStatus",ddlPackBean);
DdlPreparedPack.getIsNull("workOrderNo",ddlPackBean);
//DdlPreparedPack.getStringEqualPack("B19CK01A", "workCenterCode",ddlPackBean);
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()}, new String[]{"createDatetime"}, ddlPackBean);
List<MesProductionRecord> mesProductionRecordList = productionRecordRao.findByHqlTopWhere(ddlPackBean, 1);
return mesProductionRecordList;
}
@Override
public List<MesProduceSn> getUnReportMesProduceSn(String organizeCode) {
List<MesProduceSn> mesProduceSnList = new ArrayList<>();
public List<MesProductionRecord> getUnReportHasOrderMesProduceSn(String organizeCode) {
//1.获取生产加工记录production_record表中report_status为待汇报状态的工单
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
List<Integer> statusList = Stream.of(MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_10.getValue(), MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_40.getValue()).collect(Collectors.toList());
@ -440,17 +721,12 @@ public class MesWorkOrderService implements IMesWorkOrderService {
DdlPreparedPack.getIsNotNull("workOrderNo",ddlPackBean);
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()}, new String[]{"createDatetime"}, ddlPackBean);
List<MesProductionRecord> mesProductionRecordList = productionRecordRao.findByHqlTopWhere(ddlPackBean, 5);
if (mesProductionRecordList.isEmpty()){
return mesProduceSnList;
}
//2.根据工单查询工单下的mesProduceSn
List<String> workOrderNoList = mesProductionRecordList.stream().map(MesProductionRecord::getWorkOrderNo).collect(Collectors.toList());
//工单号
DdlPackBean snPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getInPackList(workOrderNoList,"workOrderNo",snPackBean);
return mesProduceSnRao.findByHqlWhere(snPackBean);
List<MesProductionRecord> mesProductionRecordList = productionRecordRao.findByHqlTopWhere(ddlPackBean, 1);
return mesProductionRecordList;
}
@Override
public List<MesProductionRecord> getPreDayReportMesProductionRecord(String organizeCode,List<MesShift> mesShiftList, String workCenterCode ) {
@ -663,4 +939,8 @@ public class MesWorkOrderService implements IMesWorkOrderService {
}
return mesProductVersion;
}
private Date transfer(String dateStr){
return DateUtil.parse(dateStr, (DateParser) DatePattern.NORM_DATETIME_FORMAT);
}
}

@ -77,7 +77,7 @@ public class MesSaveProcessResultStepService extends BaseStepService {
/**
*
*/
// mesProductResultErrorHandleStepService.execute(reqBean);
mesProductResultErrorHandleStepService.execute(reqBean);
/**
*
*/

@ -150,8 +150,8 @@ public class MesProductionCustomContextStepService extends BaseStepService imple
StationKvBean shiftGroupKvBean = stationKvBeans.stream().filter(stationKvBean -> Objects.equal(stationKvBean.getKey(), "shiftGroup")).findFirst().orElse(null);
StationKvBean shiftCodeKvBean = stationKvBeans.stream().filter(stationKvBean -> Objects.equal(stationKvBean.getKey(), "shiftCode")).findFirst().orElse(null);
mesProdShiftContext.setShiftCode(shiftGroupKvBean == null ? null : shiftGroupKvBean.getValue());
mesProdShiftContext.setShiftGroup(shiftCodeKvBean == null ? null : shiftCodeKvBean.getValue());
mesProdShiftContext.setShiftCode(shiftGroupKvBean == null ? null : shiftCodeKvBean.getValue());
mesProdShiftContext.setShiftGroup(shiftCodeKvBean == null ? null : shiftGroupKvBean.getValue());
return mesProdShiftContext;
}

@ -29,9 +29,9 @@
<log4j2.level>INFO</log4j2.level>
<skipTests>true</skipTests>
<app.charset>UTF-8</app.charset>
<!--<impp.framework.version>1.0.0.4-patch</impp.framework.version>-->
<impp.framework.version>1.0.0.4-patch</impp.framework.version>
<impp.framework.version>1.0.1-YZ</impp.framework.version>
<!-- <impp.framework.version>1.0.1-YZ</impp.framework.version>-->
<i3plus.pojo.version>1.0.0-yfai</i3plus.pojo.version>
<i3plus.platform.version>1.0.0.1-patch</i3plus.platform.version>
<i3plus.mes.pcn.version>1.0.0-yfai</i3plus.mes.pcn.version>

Loading…
Cancel
Save