金属元素缩新增分页查询,生产订单erp分页查询

This commit is contained in:
liss
2025-11-17 18:07:54 +08:00
parent 8faa14d227
commit dd9142a670
9 changed files with 118 additions and 102 deletions

View File

@@ -88,6 +88,14 @@ public class ElementController {
return success(BeanUtils.toBean(pageResult, ElementRespVO.class)); return success(BeanUtils.toBean(pageResult, ElementRespVO.class));
} }
@GetMapping("/pageByEnable")
@Operation(summary = "获得启用的金属元素分页")
@PreAuthorize("@ss.hasPermission('base:element:query')")
public CommonResult<PageResult<ElementRespVO>> getElementPageByEnable(@Valid ElementPageReqVO pageReqVO) {
PageResult<ElementDO> pageResult = elementService.getElementPageByEnable(pageReqVO);
return success(BeanUtils.toBean(pageResult, ElementRespVO.class));
}
@GetMapping("/export-excel") @GetMapping("/export-excel")
@Operation(summary = "导出金属元素 Excel") @Operation(summary = "导出金属元素 Excel")
@PreAuthorize("@ss.hasPermission('base:element:export')") @PreAuthorize("@ss.hasPermission('base:element:export')")

View File

@@ -23,6 +23,7 @@ public interface ElementMapper extends BaseMapperX<ElementDO> {
.likeIfPresent(ElementDO::getAbbreviation, reqVO.getAbbreviation()) .likeIfPresent(ElementDO::getAbbreviation, reqVO.getAbbreviation())
.likeIfPresent(ElementDO::getName, reqVO.getName()) .likeIfPresent(ElementDO::getName, reqVO.getName())
.eqIfPresent(ElementDO::getDecimalValue, reqVO.getDecimalValue()) .eqIfPresent(ElementDO::getDecimalValue, reqVO.getDecimalValue())
.eqIfPresent(ElementDO::getIsEnable, reqVO.getIsEnable())
.likeIfPresent(ElementDO::getCoding, reqVO.getCoding()) .likeIfPresent(ElementDO::getCoding, reqVO.getCoding())
.eqIfPresent(ElementDO::getGradeUnit, reqVO.getGradeUnit()) .eqIfPresent(ElementDO::getGradeUnit, reqVO.getGradeUnit())
.betweenIfPresent(ElementDO::getCreateTime, reqVO.getCreateTime()) .betweenIfPresent(ElementDO::getCreateTime, reqVO.getCreateTime())

View File

@@ -65,4 +65,6 @@ public interface ElementService {
void enableElementList(List<ElementRespVO> saveReqVOS); void enableElementList(List<ElementRespVO> saveReqVOS);
List<ElementDO> getElementNoPage(); List<ElementDO> getElementNoPage();
PageResult<ElementDO> getElementPageByEnable(ElementPageReqVO pageReqVO);
} }

View File

@@ -124,4 +124,12 @@ public class ElementServiceImpl implements ElementService {
return elementMapper.getElementNoPage(); return elementMapper.getElementNoPage();
} }
@Override
public PageResult<ElementDO> getElementPageByEnable(ElementPageReqVO pageReqVO) {
if (pageReqVO!=null&&pageReqVO.getIsEnable()==null){
pageReqVO.setIsEnable("1");
}
return elementMapper.selectPage(pageReqVO);
}
} }

View File

@@ -125,12 +125,4 @@ public class ErpCompanyController {
return success(TEST); return success(TEST);
} }
@PostMapping("/test2")
@Operation(summary = "获取base的金属元素")
@PreAuthorize("@ss.hasPermission('sply:erp-company:get')")
public CommonResult<String> test2() {
String TEST = erpCompanyService.test2();
return success(TEST);
}
} }

View File

@@ -19,7 +19,7 @@ public class ErpProductiveOrderPageReqVO extends PageParam {
private String companyNumber; private String companyNumber;
@Schema(description = "工厂编码") @Schema(description = "工厂编码")
@NotEmpty(message = "公司编号不能为空") @NotEmpty(message = "工厂编码不能为空")
private String factoryNumber; private String factoryNumber;
@Schema(description = "工厂名称", example = "赵六") @Schema(description = "工厂名称", example = "赵六")
@@ -30,12 +30,12 @@ public class ErpProductiveOrderPageReqVO extends PageParam {
@Schema(description = "基本开始日期") @Schema(description = "基本开始日期")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@NotEmpty(message = "公司编号不能为空") @NotEmpty(message = "基本开始日期不能为空")
private LocalDateTime[] startDate; private LocalDateTime[] startDate;
@Schema(description = "基本完成日期") @Schema(description = "基本完成日期")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@NotEmpty(message = "公司编号不能为空") @NotEmpty(message = "基本完成日期不能为空")
private LocalDateTime[] endDate; private LocalDateTime[] endDate;
@Schema(description = "主产品物料编号") @Schema(description = "主产品物料编号")

View File

@@ -74,6 +74,4 @@ public interface ErpCompanyService {
void test(); void test();
String test1(); String test1();
String test2();
} }

View File

@@ -286,11 +286,4 @@ public class ErpCompanyServiceImpl implements ErpCompanyService {
return url + requestEntity; return url + requestEntity;
} }
} }
@Override
public String test2() {
ElementDTO respVO = new ElementDTO();
CommonResult<List<ElementDTO>> dtos = baseApi.getElementNoPage();
return dtos.toString();
}
} }

View File

@@ -105,94 +105,108 @@ public class ErpProductiveOrderServiceImpl implements ErpProductiveOrderService
return erpProductiveOrderMapper.selectById(id); return erpProductiveOrderMapper.selectById(id);
} }
@Override
public PageResult<ErpProductiveOrderDO> getErpProductiveOrderPage(ErpProductiveOrderPageReqVO pageReqVO) {
return erpProductiveOrderMapper.selectPage(pageReqVO);
}
//直接从erp查询生产订单
// @Override // @Override
// public PageResult<ErpProductiveOrderDO> getErpProductiveOrderPage(ErpProductiveOrderPageReqVO pageReqVO) { // public PageResult<ErpProductiveOrderDO> getErpProductiveOrderPage(ErpProductiveOrderPageReqVO pageReqVO) {
// OftenEnum.FuncnrEnum funcnrEnum = OftenEnum.FuncnrEnum.生产订单; // return erpProductiveOrderMapper.selectPage(pageReqVO);
// 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());
// } // }
// 直接从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 @Override
@Transactional @Transactional
@XxlJob("getErpProductiveOrderTask") // @XxlJob("getErpProductiveOrderTask")
public void callErpRfcInterface() { public void callErpRfcInterface() {
OftenEnum.FuncnrEnum funcnrEnum = OftenEnum.FuncnrEnum.生产订单明细; OftenEnum.FuncnrEnum funcnrEnum = OftenEnum.FuncnrEnum.生产订单明细;
String funcnr = funcnrEnum.getFuncnr(); String funcnr = funcnrEnum.getFuncnr();