|
|
@ -475,70 +475,69 @@ public class BomManagementServiceImpl extends ServiceImpl<BomManagementMapper, B |
|
|
HashMap<String, Object> map = new HashMap<>(); |
|
|
HashMap<String, Object> map = new HashMap<>(); |
|
|
// 查出Bom替代的当前状态 |
|
|
// 查出Bom替代的当前状态 |
|
|
List<BomDetailEntity> checkList = bomManagementMapper.checkBomDetailOnlyOne(data); |
|
|
List<BomDetailEntity> checkList = bomManagementMapper.checkBomDetailOnlyOne(data); |
|
|
if (!checkList.isEmpty()) { // 判断替代是否存在 |
|
|
|
|
|
if (StringUtils.isNotBlank(data.getStatus()) && StringUtils.isNotBlank(checkList.get(0).getStatus())) { // 判断状态是否为null |
|
|
|
|
|
if (data.getStatus().equals(checkList.get(0).getStatus())) { // 判断状态是否已改变 |
|
|
|
|
|
if ("Tentative".equals(checkList.get(0).getStatus()) || "Obsolete".equals(checkList.get(0).getStatus())) { |
|
|
|
|
|
data.setStatus("Buildable"); |
|
|
|
|
|
} else if ("Buildable".equals(checkList.get(0).getStatus())) { |
|
|
|
|
|
data.setStatus("Obsolete"); |
|
|
|
|
|
} |
|
|
|
|
|
if (dataUrl) { |
|
|
|
|
|
// 判断是否为正式替代 |
|
|
|
|
|
if ("Y".equals(checkList.get(0).getOfficialFlag())) { |
|
|
|
|
|
Server srv = getIfsServer(data.getUpdateBy()); |
|
|
|
|
|
BomIfsAlternative bomIfsDetail = new BomIfsAlternative(); |
|
|
|
|
|
bomIfsDetail.setContract(checkList.get(0).getSite()); |
|
|
|
|
|
bomIfsDetail.setPartNo(checkList.get(0).getPartNo()); |
|
|
|
|
|
bomIfsDetail.setEngChgLevel(checkList.get(0).getEngChgLevel().toString()); |
|
|
|
|
|
bomIfsDetail.setBomType(checkList.get(0).getBomType()); |
|
|
|
|
|
bomIfsDetail.setAlternativeNo(checkList.get(0).getAlternativeNo()); |
|
|
|
|
|
bomIfsDetail.setAlternativeDesc(checkList.get(0).getAlternativeDescription()); |
|
|
|
|
|
if ("Buildable".equals(data.getStatus())) { // 状态修改为buildable |
|
|
|
|
|
Map<String, String> buildBomDetailResponse = bomServiceBean.buildBomAlternative(srv, bomIfsDetail); |
|
|
|
|
|
if (!"200".equals(buildBomDetailResponse.get("resultCode"))) { |
|
|
|
|
|
throw new RuntimeException("ifs BomAlternative Build异常:" + buildBomDetailResponse.get("resultMsg")); |
|
|
|
|
|
} |
|
|
|
|
|
} else if ("Obsolete".equals(data.getStatus())) { // 状态修改为Obsolete |
|
|
|
|
|
Map<String, String> retireBomDetailResponse = bomServiceBean.retireBomAlternative(srv, bomIfsDetail); |
|
|
|
|
|
if (!"200".equals(retireBomDetailResponse.get("resultCode"))) { |
|
|
|
|
|
throw new RuntimeException("ifs BomAlternative Retire异常:" + retireBomDetailResponse.get("resultMsg")); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
if (checkList.isEmpty()) { // 判断替代是否存在 |
|
|
|
|
|
throw new RuntimeException("当前替代不存在,请刷新数据!"); |
|
|
|
|
|
} |
|
|
|
|
|
// 判断状态是否为null |
|
|
|
|
|
if (StringUtils.isBlank(data.getStatus()) || StringUtils.isBlank(checkList.get(0).getStatus())) { |
|
|
|
|
|
throw new RuntimeException("当前替代状态为空!"); |
|
|
|
|
|
} |
|
|
|
|
|
// 判断状态是否已改变 |
|
|
|
|
|
if (!data.getStatus().equals(checkList.get(0).getStatus())) { |
|
|
|
|
|
throw new RuntimeException("当前替代状态已改变,请刷新数据!"); |
|
|
|
|
|
} |
|
|
|
|
|
if ("Tentative".equals(checkList.get(0).getStatus()) || "Obsolete".equals(checkList.get(0).getStatus())) { |
|
|
|
|
|
data.setStatus("Buildable"); |
|
|
|
|
|
} else if ("Buildable".equals(checkList.get(0).getStatus())) { |
|
|
|
|
|
data.setStatus("Obsolete"); |
|
|
|
|
|
} |
|
|
|
|
|
if (dataUrl) { |
|
|
|
|
|
// 判断是否为正式替代 |
|
|
|
|
|
if ("Y".equals(checkList.get(0).getOfficialFlag())) { |
|
|
|
|
|
Server srv = getIfsServer(data.getUpdateBy()); |
|
|
|
|
|
BomIfsAlternative bomIfsDetail = new BomIfsAlternative(); |
|
|
|
|
|
bomIfsDetail.setContract(checkList.get(0).getSite()); |
|
|
|
|
|
bomIfsDetail.setPartNo(checkList.get(0).getPartNo()); |
|
|
|
|
|
bomIfsDetail.setEngChgLevel(checkList.get(0).getEngChgLevel().toString()); |
|
|
|
|
|
bomIfsDetail.setBomType(checkList.get(0).getBomType()); |
|
|
|
|
|
bomIfsDetail.setAlternativeNo(checkList.get(0).getAlternativeNo()); |
|
|
|
|
|
bomIfsDetail.setAlternativeDesc(checkList.get(0).getAlternativeDescription()); |
|
|
|
|
|
if ("Buildable".equals(data.getStatus())) { // 状态修改为buildable |
|
|
|
|
|
Map<String, String> buildBomDetailResponse = bomServiceBean.buildBomAlternative(srv, bomIfsDetail); |
|
|
|
|
|
if (!"200".equals(buildBomDetailResponse.get("resultCode"))) { |
|
|
|
|
|
throw new RuntimeException("ifs BomAlternative Build异常:" + buildBomDetailResponse.get("resultMsg")); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// 修改替代状态 |
|
|
|
|
|
bomManagementMapper.updateAlternativeStatus(data); |
|
|
|
|
|
// 修改inventoryPart revision的状态 |
|
|
|
|
|
if ("Buildable".equals(data.getStatus())) { |
|
|
|
|
|
PartRevisionVo revision = bomManagementMapper.selectPartRevision(data); |
|
|
|
|
|
revision.setBomType(data.getBomType()); |
|
|
|
|
|
revision.setProductStatus("In Effect"); |
|
|
|
|
|
bomManagementMapper.updatePartRevisionProductStatus(revision); |
|
|
|
|
|
|
|
|
} else if ("Obsolete".equals(data.getStatus())) { // 状态修改为Obsolete |
|
|
|
|
|
Map<String, String> retireBomDetailResponse = bomServiceBean.retireBomAlternative(srv, bomIfsDetail); |
|
|
|
|
|
if (!"200".equals(retireBomDetailResponse.get("resultCode"))) { |
|
|
|
|
|
throw new RuntimeException("ifs BomAlternative Retire异常:" + retireBomDetailResponse.get("resultMsg")); |
|
|
} |
|
|
} |
|
|
// 查询替代列表 |
|
|
|
|
|
BomHeaderEntity header = new BomHeaderEntity(); |
|
|
|
|
|
BeanUtils.copyProperties(data,header); |
|
|
|
|
|
List<BomDetailEntity> detailDataList = bomManagementMapper.queryBomDetail(header); |
|
|
|
|
|
// 被修改的替代 |
|
|
|
|
|
BomDetailEntity detailData = bomManagementMapper.checkBomDetailOnlyOne(data).get(0); |
|
|
|
|
|
// 该替代的子明细列表 |
|
|
|
|
|
List<BomComponentVo> subDetailList = bomManagementMapper.queryBomComponent(detailData); |
|
|
|
|
|
// 返回值 |
|
|
|
|
|
map.put("detailData",detailDataList.get(0)); |
|
|
|
|
|
map.put("detailDataList",detailDataList); |
|
|
|
|
|
map.put("subDetailList",subDetailList); |
|
|
|
|
|
return map; |
|
|
|
|
|
} else { |
|
|
|
|
|
throw new RuntimeException("当前替代状态已改变,请刷新数据!"); |
|
|
|
|
|
} |
|
|
} |
|
|
} else { |
|
|
|
|
|
throw new RuntimeException("当前替代状态为空!"); |
|
|
|
|
|
} |
|
|
} |
|
|
} else { |
|
|
|
|
|
throw new RuntimeException("当前替代不存在,请刷新数据!"); |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 修改替代状态 |
|
|
|
|
|
bomManagementMapper.updateAlternativeStatus(data); |
|
|
|
|
|
// 修改inventoryPart revision的状态 |
|
|
|
|
|
if ("Buildable".equals(data.getStatus())) { |
|
|
|
|
|
PartRevisionVo revision = bomManagementMapper.selectPartRevision(data); |
|
|
|
|
|
revision.setBomType(data.getBomType()); |
|
|
|
|
|
revision.setProductStatus("In Effect"); |
|
|
|
|
|
bomManagementMapper.updatePartRevisionProductStatus(revision); |
|
|
|
|
|
} |
|
|
|
|
|
// 查询替代列表 |
|
|
|
|
|
BomHeaderEntity header = new BomHeaderEntity(); |
|
|
|
|
|
BeanUtils.copyProperties(data,header); |
|
|
|
|
|
List<BomDetailEntity> detailDataList = bomManagementMapper.queryBomDetail(header); |
|
|
|
|
|
// 被修改的替代 |
|
|
|
|
|
BomDetailEntity detailData = bomManagementMapper.checkBomDetailOnlyOne(data).get(0); |
|
|
|
|
|
// 该替代的子明细列表 |
|
|
|
|
|
List<BomComponentVo> subDetailList = bomManagementMapper.queryBomComponent(detailData); |
|
|
|
|
|
// 返回值 |
|
|
|
|
|
map.put("detailData",detailDataList.get(0)); |
|
|
|
|
|
map.put("detailDataList",detailDataList); |
|
|
|
|
|
map.put("subDetailList",subDetailList); |
|
|
|
|
|
return map; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
|