问题清单修复

tags/yfai-mes-ext-v1.0
jun 10 months ago
parent 816ca4bec6
commit 8142c2a990

@ -1,6 +1,8 @@
package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base;
import cn.estsh.i3plus.ext.mes.api.base.IMesEquipmentSpotCheckDetailService;
import cn.estsh.i3plus.ext.mes.apiservice.config.AuthUtilExt;
import cn.estsh.i3plus.ext.mes.apiservice.utils.BeanMapUtilsExt;
import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
@ -8,15 +10,21 @@ import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.base.util.StringUtil;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentSpotCheck;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentSpotCheckDetail;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentSpotCheckPart;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentVariable;
import cn.estsh.i3plus.pojo.mes.repository.MesEquipmentSpotCheckRepository;
import cn.estsh.i3plus.pojo.mes.repository.MesEquipmentVariableRepository;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.util.ValidatorBean;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
@Service
@Slf4j
@ -24,6 +32,10 @@ public class MesEquipmentSpotCheckDetailService extends BaseMesService<MesEquipm
@Autowired
private MesEquipmentSpotCheckRepository equipmentSpotCheckRepository;
@Autowired
private MesEquipmentVariableRepository mesEquipmentVariableRepository;
protected void setPackQueryBean(MesEquipmentSpotCheckDetail bean, DdlPackBean packBean) {
DdlPreparedPack.getNumEqualPack(bean.getPid(), "pid", packBean);
DdlPreparedPack.getStringLikerPack(bean.getSpotCheckItemCode(), "spotCheckItemCode", packBean);
@ -91,7 +103,9 @@ public class MesEquipmentSpotCheckDetailService extends BaseMesService<MesEquipm
}
@Override
public List<MesEquipmentSpotCheckDetail> validateReturnImport(List<MesEquipmentSpotCheckDetail> beanList) {
if (CollectionUtils.isEmpty(beanList)) return beanList;
//设备变量MAP
Map<String, MesEquipmentVariable> variableMap = getEquipmentVariableMap(beanList);
for (MesEquipmentSpotCheckDetail item : beanList) {
// 数据校验
if(StringUtil.isEmpty(item.getPid())){
@ -123,7 +137,29 @@ public class MesEquipmentSpotCheckDetailService extends BaseMesService<MesEquipm
.build();
}
}
//实际值地址id
if (!Objects.isNull(variableMap) && !StringUtil.isEmpty(item.getRealValueAddress()) && variableMap.containsKey(item.getRealValueAddress())) {
item.setRealEquipVariableId(variableMap.get(item.getRealValueAddress()).getId());
item.setRealEquipId(variableMap.get(item.getRealValueAddress()).getEquipId().longValue());
}
//设定值地址id
if (!Objects.isNull(variableMap) && !StringUtil.isEmpty(item.getSetValueAddress()) && variableMap.containsKey(item.getSetValueAddress())) {
item.setSetEquipVariableId(variableMap.get(item.getSetValueAddress()).getId());
item.setSetEquipId(variableMap.get(item.getSetValueAddress()).getEquipId().longValue());
}
}
return beanList;
}
private Map<String, MesEquipmentVariable> getEquipmentVariableMap(List<MesEquipmentSpotCheckDetail> beanList) {
String organizeCode = AuthUtilExt.getOrganizeCode();
List<String> addressList = new ArrayList<>();
//查询设备变量信息
List<String> realAddress = beanList.stream().map(MesEquipmentSpotCheckDetail::getRealValueAddress).distinct().collect(Collectors.toList());
List<String> setAddress = beanList.stream().map(MesEquipmentSpotCheckDetail::getSetValueAddress).distinct().collect(Collectors.toList());
if (!CollectionUtils.isEmpty(realAddress)) addressList.addAll(realAddress);
if (!CollectionUtils.isEmpty(setAddress)) addressList.addAll(setAddress);
if (CollectionUtils.isEmpty(addressList)) return null;
return BeanMapUtilsExt.getBeanMap(mesEquipmentVariableRepository, "tagAddress", organizeCode, addressList, "设备变量");
}
}

@ -24,6 +24,7 @@ public class MesPartSapService extends BaseMesService<MesPartSap> implements IMe
DdlPreparedPack.getNumEqualPack(bean.getIsTestPiece(), "isTestPiece", packBean);
DdlPreparedPack.getStringLikerPack(bean.getPartNo(), "partNo", packBean);
DdlPreparedPack.getStringLikeEqualPack(bean.getPartName(), "partName", packBean);
DdlPreparedPack.getStringLikeEqualPack(bean.getPartStatus(), "partStatus", packBean);
}
@Override

@ -646,7 +646,6 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
ValidatorBean.checkNotNull(item.getWorkCenterCode(), "产线不能为空");
ValidatorBean.checkNotNull(item.getPartNo(), "零件号不能为空");
ValidatorBean.checkNotNull(item.getShiftCode(), "班次不能为空");
MesWorkCenter mesWorkCenter = workCenterMap.get(item.getWorkCenterCode());
if (Objects.isNull(mesWorkCenter)) {
@ -673,6 +672,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
}
//若工单类型为排序
if (item.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.SORT.getValue()) {
ValidatorBean.checkNotNull(item.getShiftCode(), "班次不能为空");
ValidatorBean.checkNotNull(item.getOrderFlag(), "标识不能为空");
//校验产线类型和工单类型是否匹配
if (!Objects.equals(mesWorkCenter.getCenterType(), MesExtEnumUtil.ORDER_TYPE.SORT.getValue())) {
@ -705,6 +705,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
//发送wms数据
sendToWms(mesProductVersionMap, mesBomMap, mesPartProdGroupMap, mesWorkOrderToWmsList, item, mesWorkCenter);
} else if (item.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue()) {
ValidatorBean.checkNotNull(item.getShiftCode(), "班次不能为空");
ValidatorBean.checkNotNull(item.getOrderFlag(), "标识不能为空");
if (Objects.isNull(item.getQty()) || item.getQty() <= 0d) {
MesException.throwMesBusiException("生产数量不能小于等于0");
@ -867,9 +868,6 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
MesException.throwMesBusiException("请检查工单数量,工单号[%s],工单数量[%s]报工数量[%s],配置了超工单,但超过了比例[%s]!", mesWorkOrder.getWorkOrderNo(), mesWorkOrder.getQty(), mesWorkOrder.getReportedQty(), workCenter.getOrderRate());
}
mesWorkOrder.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.COMPLETE.getValue());
MesException.throwMesBusiException("工单报工数量【%s】大于工单数量【%s】,不允许报工",
mesWorkOrderDb.getReportedQty(), mesWorkOrderDb.getQty());
} else if (Objects.equals(mesWorkOrderDb.getReportedQty(), mesWorkOrderDb.getQty())) {
mesWorkOrderDb.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.COMPLETE.getValue());
} else {

Loading…
Cancel
Save