演示功能修复

tags/yfai-mes-ext-v1.0
jun 12 months ago
parent 306ddf5fe7
commit 838aeed985

@ -20,6 +20,7 @@ import org.springframework.stereotype.Service;
@Slf4j
public class MesCavityGroupCfgServiceImpl extends BaseMesService<MesCavityGroupCfg> implements IMesCavityGroupCfgService {
@Override
protected void setPackQueryBean(MesCavityGroupCfg bean, DdlPackBean packBean) {
DdlPreparedPack.getStringLikerPack(bean.getCavityCode(), "cavityCode", packBean);
DdlPreparedPack.getStringLikerPack(bean.getCavityName(), "cavityName", packBean);
@ -28,6 +29,7 @@ public class MesCavityGroupCfgServiceImpl extends BaseMesService<MesCavityGroupC
packBean.setOrderByStr(" order by createDatetime desc ");
}
@Override
protected void onInsertBean(MesCavityGroupCfg item) {
// 数据校验
ValidatorBean.checkNotNull(item.getCavityCode(), "腔组代码不能为空");
@ -40,6 +42,7 @@ public class MesCavityGroupCfgServiceImpl extends BaseMesService<MesCavityGroupC
}
}
@Override
protected void onUpdateBean(MesCavityGroupCfg item) {
// 数据校验
DdlPackBean packBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());

@ -19,16 +19,19 @@ import org.springframework.stereotype.Service;
@Slf4j
public class MesCavityGroupDetailCfgServiceImpl extends BaseMesService<MesCavityGroupDetailCfg> implements IMesCavityGroupDetailCfgService {
@Override
protected void setPackQueryBean(MesCavityGroupDetailCfg bean, DdlPackBean packBean) {
DdlPreparedPack.getStringEqualPack(bean.getCavityCode(),"cavityCode",packBean);
DdlPreparedPack.getStringEqualPack(bean.getEquipmentCode(),"equipmentCode",packBean);
}
@Override
protected void onInsertBean(MesCavityGroupDetailCfg item) {
}
@Override
protected void onUpdateBean(MesCavityGroupDetailCfg item) {
}
}

@ -45,6 +45,7 @@ public class MesCraftRouteDetailServiceImpl extends BaseMesService<MesCraftRoute
private IMesCraftService mesCraftService;
@Override
protected void setPackQueryBean(MesCraftRouteDetail bean, DdlPackBean packBean) {
DdlPreparedPack.getStringEqualPack(bean.getCraftRouteCode(), "craftRouteCode", packBean);
DdlPreparedPack.getStringEqualPack(bean.getCraftCode(), "craftCode", packBean);
@ -52,6 +53,7 @@ public class MesCraftRouteDetailServiceImpl extends BaseMesService<MesCraftRoute
packBean.setOrderByStr(" order by seq asc ");
}
@Override
protected void setPackQueryBean(DdlPackBean packBean) {
packBean.setOrderByStr(" order by seq asc ");
}

@ -23,12 +23,14 @@ import org.springframework.stereotype.Service;
@Slf4j
public class MesCraftRouteServiceImpl extends BaseMesService<MesCraftRoute> implements IMesCraftRouteService {
@Override
protected void setPackQueryBean(MesCraftRoute bean, DdlPackBean packBean) {
DdlPreparedPack.getStringEqualPack(bean.getCraftRouteCode(), "craftRouteCode", packBean);
DdlPreparedPack.getStringLikerPack(bean.getCraftRouteName(), "craftRouteName", packBean);
DdlPreparedPack.getNumEqualPack(bean.getCraftRouteType(), "craftRouteType", packBean);
}
@Override
protected void onInsertBean(MesCraftRoute item) {
// 数据校验
ValidatorBean.checkNotNull(item.getCraftRouteCode(), "工艺路线代码不能为空");
@ -46,6 +48,7 @@ public class MesCraftRouteServiceImpl extends BaseMesService<MesCraftRoute> impl
}
}
@Override
protected void onUpdateBean(MesCraftRoute item) {
// 数据校验
ValidatorBean.checkNotNull(item.getCraftRouteCode(), "工艺路线代码不能为空");

@ -29,11 +29,13 @@ public class MesCraftServiceImpl extends BaseMesService<MesCraft> implements IMe
@Autowired
private IMesCraftDao mesCraftDao;
@Override
protected void setPackQueryBean(MesCraft bean, DdlPackBean packBean) {
DdlPreparedPack.getStringEqualPack(bean.getCraftCode(), "craftCode", packBean);
DdlPreparedPack.getStringLikerPack(bean.getCraftName(), "craftName", packBean);
}
@Override
protected void onInsertBean(MesCraft item) {
// 数据校验
ValidatorBean.checkNotNull(item.getCraftCode(), "工艺代码不能为空");
@ -52,6 +54,7 @@ public class MesCraftServiceImpl extends BaseMesService<MesCraft> implements IMe
}
@Override
protected void onUpdateBean(MesCraft item) {
// 数据校验
ValidatorBean.checkNotNull(item.getCraftCode(), "工艺代码不能为空");

@ -19,16 +19,18 @@ import org.springframework.stereotype.Service;
@Slf4j
public class MesEquipmentProdParamCfgServiceImpl extends BaseMesService<MesEquipmentProdParamCfg> implements IMesEquipmentProdParamCfgService {
@Override
protected void setPackQueryBean(MesEquipmentProdParamCfg bean, DdlPackBean packBean) {
DdlPreparedPack.getStringEqualPack(bean.getCavityCode(),"cavityCode",packBean);
DdlPreparedPack.getNumEqualPack(bean.getSeq(),"seq",packBean);
}
@Override
protected void onInsertBean(MesEquipmentProdParamCfg item) {
item.setDataSource(MesExtEnumUtil.DATA_SOURCE.DATA_SOURCE30.getValue());
}
@Override
protected void onUpdateBean(MesEquipmentProdParamCfg item) {
}

@ -18,17 +18,18 @@ import org.springframework.stereotype.Service;
@Service
@Slf4j
public class MesModelMultiCavityServiceImpl extends BaseMesService<MesModelMultiCavity> implements IMesModelMultiCavityService {
@Override
protected void setPackQueryBean(MesModelMultiCavity bean, DdlPackBean packBean) {
DdlPreparedPack.getStringEqualPack(bean.getModuleCode(),"moduleCode",packBean);
DdlPreparedPack.getStringEqualPack(bean.getPartNo(),"partNo",packBean);
DdlPreparedPack.getStringEqualPack(bean.getEquipmentCode(),"equipmentCode",packBean);
}
@Override
protected void onInsertBean(MesModelMultiCavity item) {
}
@Override
protected void onUpdateBean(MesModelMultiCavity item) {
}
}

@ -22,6 +22,7 @@ import org.springframework.stereotype.Service;
@Slf4j
public class MesProcessCraftCfgServiceImpl extends BaseMesService<MesProcessCraftCfg> implements IMesProcessCraftCfgService {
@Override
protected void setPackQueryBean(MesProcessCraftCfg bean, DdlPackBean packBean) {
DdlPreparedPack.getStringEqualPack(bean.getCraftCode(), "craftCode", packBean);
DdlPreparedPack.getStringEqualPack(bean.getProcessCode(), "processCode", packBean);
@ -29,6 +30,7 @@ public class MesProcessCraftCfgServiceImpl extends BaseMesService<MesProcessCraf
DdlPreparedPack.getStringLikerPack(bean.getProcessName(), "processName", packBean);
}
@Override
protected void onInsertBean(MesProcessCraftCfg item) {
// 数据校验
ValidatorBean.checkNotNull(item.getCraftCode(), "工艺代码不能为空");
@ -47,6 +49,7 @@ public class MesProcessCraftCfgServiceImpl extends BaseMesService<MesProcessCraf
}
}
@Override
protected void onUpdateBean(MesProcessCraftCfg item) {
// 数据校验
ValidatorBean.checkNotNull(item.getCraftCode(), "工艺代码不能为空");

@ -25,6 +25,7 @@ public class MesProductPlanServiceImpl extends BaseMesService<MesProductPlan> im
@Autowired
private IMesProductPlanDao iMesProductPlanDao;
@Override
protected void setPackQueryBean(MesProductPlan bean, DdlPackBean packBean) {
DdlPreparedPack.getStringEqualPack(bean.getPlanOrderNo(), "planOrderNo", packBean);
DdlPreparedPack.getStringEqualPack(bean.getPlanPartNo(), "planPartNo", packBean);

@ -11,6 +11,7 @@ import org.springframework.stereotype.Service;
@Slf4j
public class MesProductVersionService extends BaseMesService<MesProductVersion> implements IMesProductVersionService {
@Override
protected void setPackQueryBean(MesProductVersion bean, DdlPackBean packBean) {
DdlPreparedPack.getStringEqualPack(bean.getPartNo(),"partNo",packBean);
DdlPreparedPack.getStringEqualPack(bean.getWorkCenterCode(),"workCenterCode",packBean);

@ -21,12 +21,14 @@ import org.springframework.stereotype.Service;
@Slf4j
public class MesWindowServiceImpl extends BaseMesService<MesWindow> implements IMesWindowService {
@Override
protected void setPackQueryBean(MesWindow bean, DdlPackBean packBean) {
DdlPreparedPack.getStringEqualPack(bean.getWindowNo(),"windowNo",packBean);
DdlPreparedPack.getStringLikerPack(bean.getWindowName(),"windowName",packBean);
DdlPreparedPack.getNumEqualPack(bean.getWindowType(),"windowType",packBean);
}
@Override
protected void onInsertBean(MesWindow item) {
// 数据校验
ValidatorBean.checkNotNull(item.getWindowNo(), "界面编号不能为空");
@ -47,6 +49,7 @@ public class MesWindowServiceImpl extends BaseMesService<MesWindow> implements I
}
@Override
protected void onUpdateBean(MesWindow item) {
// 数据校验

@ -3,9 +3,9 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base;
import cn.estsh.i3plus.ext.mes.api.base.IMesPartService;
import cn.estsh.i3plus.ext.mes.api.base.IMesProductOffLineService;
import cn.estsh.i3plus.ext.mes.api.base.IMesWorkOrderService;
import cn.estsh.i3plus.ext.mes.api.base.IMesWorkOrderToSapService;
import cn.estsh.i3plus.ext.mes.apiservice.dao.IMesWorkOrderDao;
import cn.estsh.i3plus.ext.mes.apiservice.unit.exception.MesException;
import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant;
import cn.estsh.i3plus.mes.api.iservice.busi.ISyncFuncService;
import cn.estsh.i3plus.mes.apiservice.util.DateUtil;
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
@ -19,9 +19,12 @@ import cn.estsh.i3plus.pojo.base.util.StringUtil;
import cn.estsh.i3plus.pojo.mes.bean.*;
import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel;
import cn.estsh.i3plus.pojo.mes.repository.*;
import cn.estsh.i3plus.pojo.mes.util.DateUtilExt;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
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;
import cn.estsh.impp.framework.boot.util.ValidatorBean;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
@ -29,9 +32,7 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
@ -43,8 +44,6 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
@Autowired
private ISyncFuncService syncFuncService;
@Autowired
private IMesWorkOrderToSapService iMesWorkOrderToSapService;
@Autowired
private IMesPartService iMesPartService;
@Autowired
private MesProductVersionRepository mesProductVersionRDao;
@ -83,7 +82,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
}
//生成工单号
genSerialNoModel = new GenSerialNoModel("ORDER_NO_JIS_SORT");
genSerialNoModel = new GenSerialNoModel(MesCommonConstant.ORDER_NO_JIS_SORT);
genSerialNoModel.setPartNo(bean.getPartNo());
List<String> resultList = syncFuncService.syncSerialNo(genSerialNoModel, bean.getCreateUser(), bean.getOrganizeCode(), 1).getResultList();
@ -100,22 +99,20 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
baseRDao.insert(copyMesWorkOrder);
workOrderLogService.insert(workOrderLog);
//写入SAP下发计划表
saveMesProductPlan(bean);
//写入接口表
//iMesWorkOrderToSapService.insert(bean);
saveMesProductPlan(bean, true, false);
return bean;
} else if (bean.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue()) {
//生成工单号
genSerialNoModel = new GenSerialNoModel("ORDER_NO_JIS_UN_SORT");
genSerialNoModel = new GenSerialNoModel(MesCommonConstant.ORDER_NO_JIS_UN_SORT);
} else {
//生成工单号
genSerialNoModel = new GenSerialNoModel("ORDER_NO_BTO");
genSerialNoModel = new GenSerialNoModel(MesCommonConstant.ORDER_NO_BTO);
Integer produceSeq = 0;
if (null != result && result.getProduceSeq() != null) {
produceSeq = result.getProduceSeq();
}
bean.setProduceSeq(produceSeq + 1);
GenSerialNoModel orderSeqSerialNoModel = new GenSerialNoModel("ORDER_NO_BTO_SEQ");
GenSerialNoModel orderSeqSerialNoModel = new GenSerialNoModel(MesCommonConstant.ORDER_NO_BTO_SEQ);
orderSeqSerialNoModel.setPartNo(bean.getPartNo());
List<String> resultList = syncFuncService.syncSerialNo(orderSeqSerialNoModel, bean.getCreateUser(), bean.getOrganizeCode(), 1).getResultList();
bean.setWorkOrderSeq(resultList.get(0));
@ -133,11 +130,11 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
workOrderLogService.insert(workOrderLog);
bean = baseRDao.insert(bean);
//写入SAP下发计划表
saveMesProductPlan(bean);
saveMesProductPlan(bean, true, false);
return bean;
}
private void saveMesProductPlan(MesWorkOrder bean) {
private void saveMesProductPlan(MesWorkOrder bean, boolean isInsert, boolean isReport) {
if (StringUtil.isEmpty(bean.getPlanOrderNo())) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(bean.getPartNo(), "planPartNo", ddlPackBean);
@ -149,19 +146,29 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
mesPlanOrder.setPlanOrderNo("");
mesPlanOrder.setPlanQty(bean.getQty());
mesPlanOrder.setPlanPartNo(bean.getPartNo());
mesPlanOrder.setCompleteQty(bean.getQty());
mesPlanOrder.setUncompleteQty(0d);
mesPlanOrder.setCompleteQty(0d);
mesPlanOrder.setUncompleteQty(bean.getQty());
mesPlanOrder.setUnit(bean.getUnit());
mesPlanOrder.setPlanStartDate(bean.getPlanStartTime());
mesPlanOrder.setPlanEndDate(bean.getPlanEndTime());
mesPlanOrder.setPartMappingWorkCenterCode(bean.getWorkCenterCode());
mesPlanOrder.setPartMappingWorkCenterCode(bean.getErpWorkCenter());
mesPlanOrder.setPlanOrganizeCode(bean.getOrganizeCode());
mesPlanOrder.setOrganizeCode(bean.getOrganizeCode());
ConvertBean.serviceModelInitialize(mesPlanOrder, bean.getCreateUser());
mesProductPlanRDao.insert(mesPlanOrder);
} else {
mesProductPlan.setCompleteQty(MathOperation.add(mesProductPlan.getCompleteQty(), bean.getQty()));
mesProductPlan.setPlanQty(mesProductPlan.getCompleteQty());
if (isInsert) {
mesProductPlan.setPlanQty(MathOperation.add(mesProductPlan.getPlanQty(), bean.getQty()));
} else {
//报工
if (isReport) {
mesProductPlan.setCompleteQty(MathOperation.add(mesProductPlan.getCompleteQty(), bean.getNum()));
//报工调整
} else {
mesProductPlan.setCompleteQty(MathOperation.sub(mesProductPlan.getCompleteQty(), bean.getNum()));
}
}
mesProductPlan.setUncompleteQty(MathOperation.sub(mesProductPlan.getPlanQty(), mesProductPlan.getCompleteQty()));
ConvertBean.serviceModelUpdate(mesProductPlan, bean.getCreateUser());
mesProductPlanRDao.update(mesProductPlan);
}
@ -173,21 +180,26 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
if (null == mesProductPlan) {
MesException.throwMesBusiException("SAP计划单号【%s】物料【%s】,不存在", bean.getPlanOrderNo(), bean.getPartNo());
}
if (!isInsert) {
if (Objects.isNull(mesProductPlan.getCompleteQty())) {
mesProductPlan.setCompleteQty(0d);
}
mesProductPlan.setCompleteQty(MathOperation.add(mesProductPlan.getCompleteQty(), bean.getQty()));
//报工
if (isReport) {
mesProductPlan.setCompleteQty(MathOperation.add(mesProductPlan.getCompleteQty(), bean.getNum()));
//报工调整
} else {
mesProductPlan.setCompleteQty(MathOperation.sub(mesProductPlan.getCompleteQty(), bean.getNum()));
}
mesProductPlan.setUncompleteQty(MathOperation.sub(mesProductPlan.getPlanQty(), mesProductPlan.getCompleteQty()));
ConvertBean.serviceModelUpdate(mesProductPlan, bean.getCreateUser());
mesProductPlanRDao.update(mesProductPlan);
}
}
}
@Override
public MesWorkOrder update(MesWorkOrder bean) {
//回传sap
boolean sendToSap = false;
MesWorkOrder result = baseRDao.getById(bean.getId());
//若工单类型为排序 则根据排序插入工单数量插入多行 工单数量为1
if (result.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.SORT.getValue()) {
@ -201,14 +213,6 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
MesException.throwMesBusiException(String.format("工单数量不能小于工单源数量【%s】",
result.getQty()));
}
//修改状态或者指令下发需要传给SAP
if (!Objects.equals(bean.getQty(), result.getQty())) {
sendToSap = true;
}
}
if (MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue() == bean.getWorkOrderStatus() ||
MesExtEnumUtil.ORDER_STATUS.COMPLETE.getValue() == bean.getWorkOrderStatus()) {
sendToSap = true;
}
//在加工的工单不能修改物料信息
if (result.getWorkOrderStatus() >= MesExtEnumUtil.ORDER_STATUS.process.getValue()) {
@ -244,21 +248,13 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
MesWorkOrderLog workOrderLog = new MesWorkOrderLog();
BeanUtils.copyProperties(result, workOrderLog, "id");
workOrderLogService.insert(workOrderLog);
//关闭工单
if (MesExtEnumUtil.ORDER_STATUS.CLOSE.getValue() == bean.getWorkOrderStatus()) {
bean.setQty(0d);
sendToSap = true;
}
//发送给SAP
if (sendToSap) {
//iMesWorkOrderToSapService.insert(bean);
}
baseRDao.update(result);
return bean;
}
@Override
protected void setPackQueryBean(MesWorkOrder bean, DdlPackBean packBean) {
DdlPreparedPack.getStringLikerPack(bean.getWorkOrderNo(), "workOrderNo", packBean);
DdlPreparedPack.getStringLikerPack(bean.getPartNameRdd(), "partNameRdd", packBean);
@ -274,9 +270,10 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
DdlPreparedPack.getStringSmallerPack(bean.getStartTimeEnd(), "planStartTime", packBean);
DdlPreparedPack.getStringBiggerPack(bean.getEndTimeStart(), "planEndTime", packBean);
DdlPreparedPack.getStringSmallerPack(bean.getEndTimeEnd(), "planEndTime", packBean);
packBean.setOrderByStr(" order by createDatetime desc ");
packBean.setOrderByStr(" order by createDatetime desc,workOrderSeq desc ");
}
@Override
protected void onInsertBean(MesWorkOrder item) {
// 数据校验
@ -291,6 +288,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
if (Objects.isNull(mesWorkCenter)) {
MesException.throwMesBusiException("产线【%s】不存在", item.getWorkCenterCode());
}
item.setErpWorkCenter(mesWorkCenter.getErpWorkCenter());
//校验标识
//若工单类型为排序
if (item.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.SORT.getValue()) {
@ -314,7 +312,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
packPlanTime(item);
}
//生产版本为空
if(Objects.isNull(item.getProductVersion())){
if (StringUtil.isEmpty(item.getProductVersion())) {
MesProductVersion mesProductVersion = getMesProductVersion(item, mesWorkCenter);
item.setProductVersion(mesProductVersion.getProductVersion());
}
@ -352,7 +350,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
ValidatorBean.checkNotNull(item.getPlanStartTime(), "计划开始时间不能为空");
ValidatorBean.checkNotNull(item.getPlanEndTime(), "计划结束时间不能为空");
//生产版本为空
if(Objects.isNull(item.getProductVersion())){
if (StringUtil.isEmpty(item.getProductVersion())) {
MesProductVersion mesProductVersion = getMesProductVersion(item, mesWorkCenter);
item.setProductVersion(mesProductVersion.getProductVersion());
}
@ -397,6 +395,16 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
DdlPackBean ddlPackBean;
ValidatorBean.checkNotNull(item.getPlanDate(), "计划日期不能为空");
ValidatorBean.checkNotNull(item.getShiftCode(), "班次不能为空");
//工单导入:计划时间不能为当天之前日期
try {
if (DateUtilExt.compareDateTime(DateUtil.SHORT_FORMAT, item.getPlanDate(), TimeTool.getToday()) < 0) {
MesException.throwMesBusiException("导入工单计划日期不能小于今天");
}
}catch (ImppBusiException busExcep) {
MesException.throwMesBusiException(busExcep.getErrorDetail());
}catch (Exception e) {
MesException.throwMesBusiException("计划日期格式异常");
}
//查询班次信息
ddlPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(item.getWorkCenterCode(), "workCenterCode", ddlPackBean);
@ -410,7 +418,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
item.setPlanStartTime(item.getPlanDate() + " " + mesShift.getStartTime());
item.setPlanEndTime(item.getPlanDate() + " " + mesShift.getEndTime());
try {
int windowStartEndTimeCompare = this.compareDateTime(DateUtil.BASE_FORMAT, item.getPlanStartTime(), item.getPlanEndTime());
int windowStartEndTimeCompare = DateUtilExt.compareDateTime(DateUtil.BASE_FORMAT, item.getPlanStartTime(), item.getPlanEndTime());
if (windowStartEndTimeCompare > 0) {
item.setPlanEndTime(TimeTool.pareDateToString(DateUtil.addDays(item.getPlanEndTime(), 1)));
}
@ -419,17 +427,11 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
}
}
@Override
protected void onUpdateBean(MesWorkOrder item) {
}
public int compareDateTime(String formatStr, String startTimeStr, String endTimeStr) throws Exception {
SimpleDateFormat sdf = new SimpleDateFormat(formatStr);
Date startTime = sdf.parse(startTimeStr);
Date endTime = sdf.parse(endTimeStr);
return startTime.compareTo(endTime);
}
@Override
public void doProductReport(MesWorkOrder mesWorkOrder) {
//查询物料信息
@ -462,6 +464,8 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
//报工类型
if (MesExtEnumUtil.REPORT_TYPE.REPORT.getValue() == mesWorkOrder.getReportType()) {
mesWorkOrder.setReportedQty(MathOperation.add(mesWorkOrder.getNum(), mesWorkOrder.getReportedQty()));
//更新SAP计划完成数量
saveMesProductPlan(mesWorkOrder, false, true);
} else {
//冲销数量大于工单完成数量报错
if (mesWorkOrder.getNum() > mesWorkOrder.getReportedQty()) {
@ -472,6 +476,8 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
mesWorkOrder.setAdjustQty((MathOperation.add(mesWorkOrder.getNum(), mesWorkOrder.getAdjustQty())));
//已汇报数量减一
mesWorkOrder.setReportedQty(MathOperation.sub(mesWorkOrder.getReportedQty(), mesWorkOrder.getNum()));
//更新SAP计划完成数量
saveMesProductPlan(mesWorkOrder, false, false);
}
//更新工单状态
double unCompleteQty = MathOperation.sub(mesWorkOrder.getQty(), mesWorkOrder.getReportedQty());
@ -487,7 +493,8 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
update(mesWorkOrder);
//生成条码
GenSerialNoModel genSerialNoModel = new GenSerialNoModel("REPORT_SN");
// todo
GenSerialNoModel genSerialNoModel = new GenSerialNoModel(MesCommonConstant.REPORT_SN);
genSerialNoModel.setPartNo(mesWorkOrder.getPartNo());
List<String> resultList = syncFuncService.syncSerialNo(genSerialNoModel, mesWorkOrder.getCreateUser(), mesWorkOrder.getOrganizeCode(), mesWorkOrder.getNum()).getResultList();

@ -17,6 +17,19 @@ public class MesCommonConstant {
public static final String SPOT_CHECK_ORDER_TASK_RESOURCE = "MES";
public static final String SPOT_CHECK_ORDER_NO_RULE = "SPOT_CHECK_ORDER_NO_RULE";
/***
*
*/
//BTO工单顺序号
public static final String ORDER_NO_BTO_SEQ = "ORDER_NO_BTO_SEQ";
//BTO单号规则
public static final String ORDER_NO_BTO = "ORDER_NO_BTO";
//非排序单号规则
public static final String ORDER_NO_JIS_UN_SORT = "ORDER_NO_JIS_UN_SORT";
//排序单号规则
public static final String ORDER_NO_JIS_SORT = "ORDER_NO_JIS_SORT";
//报工条码规则
public static final String REPORT_SN = "REPORT_SN";
}

Loading…
Cancel
Save