|
|
|
@ -52,7 +52,7 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
|
|
|
|
|
@Autowired
|
|
|
|
|
private MesLocationConfigRepository locationConfigRepository;
|
|
|
|
|
@Autowired
|
|
|
|
|
private MesDefectAlarmConfigRepository defectAlarmConfigRepository;
|
|
|
|
|
private MesDefectWarnConfigRepository defectWarnConfigRepository;
|
|
|
|
|
@Autowired
|
|
|
|
|
private MesPartTypeDefectRepository partTypeDefectRepository;
|
|
|
|
|
@Autowired
|
|
|
|
@ -71,7 +71,7 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
|
|
|
|
|
private ISyncFuncService syncFuncService;
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public MesInputDefectRecordModel queryProduceSn(String serialNumber, Integer sides, String org) {
|
|
|
|
|
public MesInputDefectRecordModel queryProduceSn(String serialNumber, Integer frontBack, String org) {
|
|
|
|
|
|
|
|
|
|
//检查条码
|
|
|
|
|
MesProduceSn produceSn = checkProduceSn(serialNumber, org);
|
|
|
|
@ -83,13 +83,13 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
|
|
|
|
|
MesPartTypePicture partTypePicture = checkPartTypePicture(part, org);
|
|
|
|
|
|
|
|
|
|
//构造返回信息
|
|
|
|
|
MesInputDefectRecordModel model = getModel(part, partTypePicture, sides, org);
|
|
|
|
|
MesInputDefectRecordModel model = getModel(part, partTypePicture, frontBack, org);
|
|
|
|
|
|
|
|
|
|
return model;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public MesInputDefectRecordModel queryPartAndLot(String partNo, String lot, Integer sides, String org) {
|
|
|
|
|
public MesInputDefectRecordModel queryPartAndLot(String partNo, String lot, Integer frontBack, String org) {
|
|
|
|
|
|
|
|
|
|
//检查物料
|
|
|
|
|
MesPart part = checkPartByPartNo(partNo, org);
|
|
|
|
@ -98,13 +98,13 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
|
|
|
|
|
MesPartTypePicture partTypePicture = checkPartTypePicture(part, org);
|
|
|
|
|
|
|
|
|
|
//构造返回信息
|
|
|
|
|
MesInputDefectRecordModel model = getModel(part, partTypePicture, sides, org);
|
|
|
|
|
MesInputDefectRecordModel model = getModel(part, partTypePicture, frontBack, org);
|
|
|
|
|
|
|
|
|
|
return model;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public List<MesPartTypeDefect> queryPartTypeDefect(String partNo, String defectLocationCode, boolean flg, Integer sides, String org) {
|
|
|
|
|
public List<MesPartTypeDefect> queryPartTypeDefect(String partNo, String defectLocation, boolean flg, Integer frontBack, String org) {
|
|
|
|
|
|
|
|
|
|
//检查物料
|
|
|
|
|
MesPart part = checkPartByPartNo(partNo, org);
|
|
|
|
@ -115,13 +115,13 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
|
|
|
|
|
//flg==true 则是标黄的位置,需要查询位置下具体需要标黄的缺陷类型
|
|
|
|
|
if (!StringUtils.isEmpty(flg) && flg) {
|
|
|
|
|
|
|
|
|
|
List<String> partTypeDefectCodeList = partTypeDefectList.stream().map(k -> k.getDefectCode()).collect(Collectors.toList());
|
|
|
|
|
List<String> partTypeDefectCodeList = partTypeDefectList.stream().map(k -> k.getDefectTypeCode()).collect(Collectors.toList());
|
|
|
|
|
|
|
|
|
|
//查询预警数量
|
|
|
|
|
List<MesDefectAlarmConfig> alarmConfigList = queryDefectAlarmConfig(part, sides, defectLocationCode, partTypeDefectCodeList, org);
|
|
|
|
|
List<MesDefectWarnConfig> alarmConfigList = queryDefectAlarmConfig(part, frontBack, defectLocation, partTypeDefectCodeList, org);
|
|
|
|
|
|
|
|
|
|
//根据不良类型 合计预警数量
|
|
|
|
|
Map<String, MesDefectAlarmConfig> alarmConfigMap = alarmConfigList.stream().collect(Collectors.toMap(k -> k.getDefectCode(), k -> k));
|
|
|
|
|
Map<String, MesDefectWarnConfig> alarmConfigMap = alarmConfigList.stream().collect(Collectors.toMap(k -> k.getDefectTypeCode(), k -> k));
|
|
|
|
|
|
|
|
|
|
//位置是否标黄Map,key:不良类型,value:标黄标识
|
|
|
|
|
Map<String, Boolean> map = new HashMap<>();
|
|
|
|
@ -134,7 +134,7 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
|
|
|
|
|
|
|
|
|
|
//找到标黄的缺陷类型 标识置为true
|
|
|
|
|
partTypeDefectList.forEach(k -> {
|
|
|
|
|
if (map.containsKey(k.getDefectCode())) {
|
|
|
|
|
if (map.containsKey(k.getDefectTypeCode())) {
|
|
|
|
|
k.setFlg(true);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
@ -289,51 +289,51 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService
|
|
|
|
|
return partTypeDefectList;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private List<MesDefectAlarmConfig> queryDefectAlarmConfigByLocationCodeList(MesPart part, Integer sides, List<String> locationCodeList, List<String> partTypeDefectCodeList,
|
|
|
|
|
private List<MesDefectWarnConfig> queryDefectAlarmConfigByLocationCodeList(MesPart part, Integer frontBack, List<String> locationCodeList, List<String> partTypeDefectCodeList,
|
|
|
|
|
String org) {
|
|
|
|
|
|
|
|
|
|
DdlPackBean packBean = DdlPackBean.getDdlPackBean(org);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(part.getPartNo(), "partNo", packBean);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(part.getPartTypeCode(), "partTypeCode", packBean);
|
|
|
|
|
DdlPreparedPack.getNumEqualPack(sides, "sides", packBean);
|
|
|
|
|
DdlPreparedPack.getInPackList(locationCodeList, "defectLocationCode", packBean);
|
|
|
|
|
DdlPreparedPack.getInPackList(partTypeDefectCodeList, "defectCode", packBean);
|
|
|
|
|
List<MesDefectAlarmConfig> alarmConfigList = defectAlarmConfigRepository.findByHqlWhere(packBean);
|
|
|
|
|
DdlPreparedPack.getNumEqualPack(frontBack, "frontBack", packBean);
|
|
|
|
|
DdlPreparedPack.getInPackList(locationCodeList, "defectLocation", packBean);
|
|
|
|
|
DdlPreparedPack.getInPackList(partTypeDefectCodeList, "defectTypeCode", packBean);
|
|
|
|
|
List<MesDefectWarnConfig> alarmConfigList = defectWarnConfigRepository.findByHqlWhere(packBean);
|
|
|
|
|
|
|
|
|
|
return alarmConfigList;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private List<MesDefectAlarmConfig> queryDefectAlarmConfig(MesPart part, Integer sides, String locationCode, List<String> partTypeDefectCodeList, String org) {
|
|
|
|
|
private List<MesDefectWarnConfig> queryDefectAlarmConfig(MesPart part, Integer frontBack, String locationCode, List<String> partTypeDefectCodeList, String org) {
|
|
|
|
|
|
|
|
|
|
DdlPackBean packBean = DdlPackBean.getDdlPackBean(org);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(part.getPartNo(), "partNo", packBean);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(part.getPartTypeCode(), "partTypeCode", packBean);
|
|
|
|
|
DdlPreparedPack.getNumEqualPack(sides, "sides", packBean);
|
|
|
|
|
DdlPreparedPack.getNumEqualPack(frontBack, "frontBack", packBean);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(locationCode, "defectLocation", packBean);
|
|
|
|
|
DdlPreparedPack.getInPackList(partTypeDefectCodeList, "defectCode", packBean);
|
|
|
|
|
List<MesDefectAlarmConfig> alarmConfigList = defectAlarmConfigRepository.findByHqlWhere(packBean);
|
|
|
|
|
List<MesDefectWarnConfig> alarmConfigList = defectWarnConfigRepository.findByHqlWhere(packBean);
|
|
|
|
|
|
|
|
|
|
return alarmConfigList;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private MesInputDefectRecordModel getModel(MesPart part, MesPartTypePicture partTypePicture, Integer sides, String org) {
|
|
|
|
|
private MesInputDefectRecordModel getModel(MesPart part, MesPartTypePicture partTypePicture, Integer frontBack, String org) {
|
|
|
|
|
|
|
|
|
|
//位置
|
|
|
|
|
List<MesLocationConfig> locationConfigList = checkLocationConfig(org);
|
|
|
|
|
List<String> locationCodeList = locationConfigList.stream().map(k -> k.getDefectLocationCode()).collect(Collectors.toList());
|
|
|
|
|
List<String> locationCodeList = locationConfigList.stream().map(k -> k.getDefectLocation()).collect(Collectors.toList());
|
|
|
|
|
|
|
|
|
|
//查询零件类型缺陷类型对应关系
|
|
|
|
|
List<MesPartTypeDefect> partTypeDefectList = checkPartTypeDefect(part, org);
|
|
|
|
|
List<String> partTypeDefectCodeList = partTypeDefectList.stream().map(k -> k.getDefectCode()).collect(Collectors.toList());
|
|
|
|
|
List<String> partTypeDefectCodeList = partTypeDefectList.stream().map(k -> k.getDefectTypeCode()).collect(Collectors.toList());
|
|
|
|
|
|
|
|
|
|
//查询预警数量
|
|
|
|
|
List<MesDefectAlarmConfig> alarmConfigList = queryDefectAlarmConfigByLocationCodeList(part, sides, locationCodeList, partTypeDefectCodeList, org);
|
|
|
|
|
List<MesDefectWarnConfig> alarmConfigList = queryDefectAlarmConfigByLocationCodeList(part, frontBack, locationCodeList, partTypeDefectCodeList, org);
|
|
|
|
|
|
|
|
|
|
//根据不良类型+位置 若有数据,则表示需要标黄
|
|
|
|
|
Map<String, MesDefectAlarmConfig> alarmConfigMap = alarmConfigList.stream().collect(Collectors.toMap(k -> k.getDefectLocationCode(), k -> k));
|
|
|
|
|
Map<String, MesDefectWarnConfig> alarmConfigMap = alarmConfigList.stream().collect(Collectors.toMap(k -> k.getDefectLocation(), k -> k));
|
|
|
|
|
|
|
|
|
|
locationConfigList.forEach(k -> {
|
|
|
|
|
if (alarmConfigMap.containsKey(k.getDefectLocationCode())) {
|
|
|
|
|
if (alarmConfigMap.containsKey(k.getDefectLocation())) {
|
|
|
|
|
k.setIsflg(true);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|