|
|
|
|
@@ -105,94 +105,108 @@ public class ErpProductiveOrderServiceImpl implements ErpProductiveOrderService
|
|
|
|
|
return erpProductiveOrderMapper.selectById(id);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public PageResult<ErpProductiveOrderDO> getErpProductiveOrderPage(ErpProductiveOrderPageReqVO pageReqVO) {
|
|
|
|
|
return erpProductiveOrderMapper.selectPage(pageReqVO);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//直接从erp查询生产订单
|
|
|
|
|
// @Override
|
|
|
|
|
// public PageResult<ErpProductiveOrderDO> getErpProductiveOrderPage(ErpProductiveOrderPageReqVO pageReqVO) {
|
|
|
|
|
// OftenEnum.FuncnrEnum funcnrEnum = OftenEnum.FuncnrEnum.生产订单;
|
|
|
|
|
// String funcnr = funcnrEnum.getFuncnr();
|
|
|
|
|
// Map<String, Object> req = new HashMap<>();
|
|
|
|
|
//
|
|
|
|
|
// // 构建查询参数
|
|
|
|
|
// req.put("BUKRS", pageReqVO.getCompanyNumber());
|
|
|
|
|
// req.put("WERKS", pageReqVO.getFactoryNumber());
|
|
|
|
|
//
|
|
|
|
|
// // 处理日期参数
|
|
|
|
|
// if (pageReqVO.getStartDate() != null) {
|
|
|
|
|
// req.put("BEGDA", pageReqVO.getStartDate()[0].format(DateTimeFormatter.ofPattern("yyyyMMdd")));
|
|
|
|
|
// }
|
|
|
|
|
// if (pageReqVO.getEndDate() != null) {
|
|
|
|
|
// req.put("ENDDA", pageReqVO.getEndDate()[0].format(DateTimeFormatter.ofPattern("yyyyMMdd")));
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// // 调用ERP接口获取数据
|
|
|
|
|
// HashMap<String, Object> dataFromERP = erpConfig.fetchDataFromERP(funcnr, req);
|
|
|
|
|
// JSONArray dataArray = (JSONArray) dataFromERP.get("E_RESP");
|
|
|
|
|
// if (dataArray == null || dataArray.isEmpty()) {
|
|
|
|
|
// // 返回空结果而不是抛出异常
|
|
|
|
|
// return new PageResult<>(new ArrayList<>(), 0L);
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// List<ErpProductiveOrderDO> list = new ArrayList<>();
|
|
|
|
|
// for (int i = 0; i < dataArray.size(); i++) {
|
|
|
|
|
// JSONObject dataJson = dataArray.getJSONObject(i);
|
|
|
|
|
// if (dataJson != null) {
|
|
|
|
|
// ErpProductiveOrderDO orderDO = new ErpProductiveOrderDO();
|
|
|
|
|
//
|
|
|
|
|
// // 基本信息
|
|
|
|
|
// orderDO.setCompanyNumber(dataJson.getString("BUKRS"));
|
|
|
|
|
// orderDO.setFactoryNumber(dataJson.getString("WERKS").trim());
|
|
|
|
|
// orderDO.setFactoryName(dataJson.getString("NAME1"));
|
|
|
|
|
// orderDO.setOrderNumber(dataJson.getString("AUFNR"));
|
|
|
|
|
//
|
|
|
|
|
// // 日期处理
|
|
|
|
|
// String plannedStartDate = dataJson.getString("GLTRP");
|
|
|
|
|
// String actualStartDate = dataJson.getString("GSTRP");
|
|
|
|
|
//
|
|
|
|
|
// if (plannedStartDate != null && !plannedStartDate.equals("0000-00-00")) {
|
|
|
|
|
// try {
|
|
|
|
|
// orderDO.setStartDate(LocalDateTime.parse(plannedStartDate));
|
|
|
|
|
// } catch (Exception e) {
|
|
|
|
|
// // 忽略日期解析错误
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// if (actualStartDate != null && !actualStartDate.equals("0000-00-00")) {
|
|
|
|
|
// try {
|
|
|
|
|
// orderDO.setEndDate(LocalDateTime.parse(actualStartDate));
|
|
|
|
|
// } catch (Exception e) {
|
|
|
|
|
// // 忽略日期解析错误
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// // 物料和工艺信息
|
|
|
|
|
// orderDO.setMainMaterialNumber(dataJson.getString("STLBEZ"));
|
|
|
|
|
// orderDO.setUnit(dataJson.getString("GMEIN"));
|
|
|
|
|
// orderDO.setMaterialDescription(dataJson.getString("MAKTX"));
|
|
|
|
|
// orderDO.setProcessingList(dataJson.getString("L_AFVC"));
|
|
|
|
|
// orderDO.setProcessingNumber(dataJson.getString("VORNR"));
|
|
|
|
|
// orderDO.setProcessingDescription(dataJson.getString("LTXA1"));
|
|
|
|
|
// orderDO.setObjectNumber(dataJson.getString("OBJID"));
|
|
|
|
|
// orderDO.setWorkCenterNumber(dataJson.getString("ARBPL"));
|
|
|
|
|
// orderDO.setWorkCenterDescription(dataJson.getString("KTEXT"));
|
|
|
|
|
// orderDO.setCostcenterNumber(dataJson.getString("KOSTL"));
|
|
|
|
|
// orderDO.setCostcenterName(dataJson.getString("TEXT_C"));
|
|
|
|
|
//
|
|
|
|
|
// list.add(orderDO);
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// // 返回分页结果
|
|
|
|
|
// return new PageResult<>(list, (long) list.size());
|
|
|
|
|
// return erpProductiveOrderMapper.selectPage(pageReqVO);
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// 直接从erp查询生产订单
|
|
|
|
|
@Override
|
|
|
|
|
public PageResult<ErpProductiveOrderDO> getErpProductiveOrderPage(ErpProductiveOrderPageReqVO pageReqVO) {
|
|
|
|
|
OftenEnum.FuncnrEnum funcnrEnum = OftenEnum.FuncnrEnum.生产订单明细;
|
|
|
|
|
String funcnr = funcnrEnum.getFuncnr();
|
|
|
|
|
Map<String, Object> req = new HashMap<>();
|
|
|
|
|
|
|
|
|
|
// 构建查询参数
|
|
|
|
|
req.put("BUKRS", pageReqVO.getCompanyNumber());
|
|
|
|
|
req.put("WERKS", pageReqVO.getFactoryNumber());
|
|
|
|
|
|
|
|
|
|
// 处理日期参数
|
|
|
|
|
if (pageReqVO.getStartDate() != null) {
|
|
|
|
|
req.put("BEGDA", pageReqVO.getStartDate()[0].format(DateTimeFormatter.ofPattern("yyyyMMdd")));
|
|
|
|
|
}
|
|
|
|
|
if (pageReqVO.getEndDate() != null) {
|
|
|
|
|
req.put("ENDDA", pageReqVO.getEndDate()[0].format(DateTimeFormatter.ofPattern("yyyyMMdd")));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 调用ERP接口获取数据
|
|
|
|
|
HashMap<String, Object> dataFromERP = erpConfig.fetchDataFromERP(funcnr, req);
|
|
|
|
|
JSONArray dataArray = (JSONArray) dataFromERP.get("E_RESP");
|
|
|
|
|
if (dataArray == null || dataArray.isEmpty()) {
|
|
|
|
|
// 返回空结果而不是抛出异常
|
|
|
|
|
return new PageResult<>(new ArrayList<>(), 0L);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
List<ErpProductiveOrderDO> list = new ArrayList<>();
|
|
|
|
|
for (int i = 0; i < dataArray.size(); i++) {
|
|
|
|
|
JSONObject dataJson = dataArray.getJSONObject(i);
|
|
|
|
|
if (dataJson != null) {
|
|
|
|
|
ErpProductiveOrderDO orderDO = new ErpProductiveOrderDO();
|
|
|
|
|
|
|
|
|
|
// 基本信息
|
|
|
|
|
orderDO.setCompanyNumber(dataJson.getString("BUKRS"));
|
|
|
|
|
orderDO.setFactoryNumber(dataJson.getString("WERKS").trim());
|
|
|
|
|
orderDO.setFactoryName(dataJson.getString("NAME1"));
|
|
|
|
|
orderDO.setOrderNumber(dataJson.getString("AUFNR"));
|
|
|
|
|
|
|
|
|
|
// 日期处理
|
|
|
|
|
String plannedStartDate = dataJson.getString("GLTRP");
|
|
|
|
|
String actualStartDate = dataJson.getString("GSTRP");
|
|
|
|
|
|
|
|
|
|
if (plannedStartDate != null && !plannedStartDate.equals("0000-00-00")) {
|
|
|
|
|
try {
|
|
|
|
|
orderDO.setStartDate(LocalDateTime.parse(plannedStartDate));
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
// 忽略日期解析错误
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (actualStartDate != null && !actualStartDate.equals("0000-00-00")) {
|
|
|
|
|
try {
|
|
|
|
|
orderDO.setEndDate(LocalDateTime.parse(actualStartDate));
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
// 忽略日期解析错误
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 物料和工艺信息
|
|
|
|
|
orderDO.setMainMaterialNumber(dataJson.getString("STLBEZ"));
|
|
|
|
|
orderDO.setUnit(dataJson.getString("GMEIN"));
|
|
|
|
|
orderDO.setMaterialDescription(dataJson.getString("MAKTX"));
|
|
|
|
|
orderDO.setProcessingList(dataJson.getString("L_AFVC"));
|
|
|
|
|
orderDO.setProcessingNumber(dataJson.getString("VORNR"));
|
|
|
|
|
orderDO.setProcessingDescription(dataJson.getString("LTXA1"));
|
|
|
|
|
orderDO.setObjectNumber(dataJson.getString("OBJID"));
|
|
|
|
|
orderDO.setWorkCenterNumber(dataJson.getString("ARBPL"));
|
|
|
|
|
orderDO.setWorkCenterDescription(dataJson.getString("KTEXT"));
|
|
|
|
|
orderDO.setCostcenterNumber(dataJson.getString("KOSTL"));
|
|
|
|
|
orderDO.setCostcenterName(dataJson.getString("TEXT_C"));
|
|
|
|
|
|
|
|
|
|
list.add(orderDO);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
List<ErpProductiveOrderDO> listLast = list.stream()
|
|
|
|
|
.filter(orderDO -> pageReqVO.getFactoryName() == null || pageReqVO.getFactoryName().equals(orderDO.getFactoryName()))
|
|
|
|
|
.filter(orderDO -> pageReqVO.getOrderNumber() == null || pageReqVO.getOrderNumber().equals(orderDO.getOrderNumber()))
|
|
|
|
|
.filter(orderDO -> pageReqVO.getMainMaterialNumber() == null || pageReqVO.getMainMaterialNumber().equals(orderDO.getMainMaterialNumber()))
|
|
|
|
|
.filter(orderDO -> pageReqVO.getProcessingList() == null || pageReqVO.getProcessingList().equals(orderDO.getProcessingList()))
|
|
|
|
|
.filter(orderDO -> pageReqVO.getProcessingNumber() == null || pageReqVO.getProcessingNumber().equals(orderDO.getProcessingNumber()))
|
|
|
|
|
.filter(orderDO -> pageReqVO.getProcessingDescription() == null || pageReqVO.getProcessingDescription().equals(orderDO.getProcessingDescription()))
|
|
|
|
|
.filter(orderDO -> pageReqVO.getObjectNumber() == null || pageReqVO.getObjectNumber().equals(orderDO.getObjectNumber()))
|
|
|
|
|
.filter(orderDO -> pageReqVO.getWorkCenterNumber() == null || pageReqVO.getWorkCenterNumber().equals(orderDO.getWorkCenterNumber()))
|
|
|
|
|
.filter(orderDO -> pageReqVO.getWorkCenterDescription() == null || pageReqVO.getWorkCenterDescription().equals(orderDO.getWorkCenterDescription()))
|
|
|
|
|
.filter(orderDO -> pageReqVO.getCostcenterNumber() == null || pageReqVO.getCostcenterNumber().equals(orderDO.getCostcenterNumber()))
|
|
|
|
|
.filter(orderDO -> pageReqVO.getCostcenterName() == null || pageReqVO.getCostcenterName().equals(orderDO.getCostcenterName()))
|
|
|
|
|
.toList();
|
|
|
|
|
|
|
|
|
|
// 返回分页结果
|
|
|
|
|
return new PageResult<>(listLast, (long) listLast.size());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional
|
|
|
|
|
@XxlJob("getErpProductiveOrderTask")
|
|
|
|
|
// @XxlJob("getErpProductiveOrderTask")
|
|
|
|
|
public void callErpRfcInterface() {
|
|
|
|
|
OftenEnum.FuncnrEnum funcnrEnum = OftenEnum.FuncnrEnum.生产订单明细;
|
|
|
|
|
String funcnr = funcnrEnum.getFuncnr();
|
|
|
|
|
|