生产订单查询直接调用ASP
This commit is contained in:
@@ -8,6 +8,7 @@ import com.zt.plat.module.erp.common.enums.OftenEnum;
|
||||
import com.zt.plat.module.erp.controller.admin.erp.vo.ErpProductiveOrderPageReqVO;
|
||||
import com.zt.plat.module.erp.controller.admin.erp.vo.ErpProductiveOrderRespVO;
|
||||
import com.zt.plat.module.erp.controller.admin.erp.vo.ErpProductiveOrderSaveReqVO;
|
||||
import com.zt.plat.module.erp.dal.dataobject.erp.ErpContractDO;
|
||||
import com.zt.plat.module.erp.dal.dataobject.erp.ErpProductiveOrderDO;
|
||||
import com.zt.plat.module.erp.dal.dataobject.erp.ErpProductiveOrderDO;
|
||||
import com.zt.plat.module.erp.dal.mysql.erp.ErpProductiveOrderMapper;
|
||||
@@ -20,6 +21,8 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
@@ -98,7 +101,80 @@ public class ErpProductiveOrderServiceImpl implements ErpProductiveOrderService
|
||||
|
||||
@Override
|
||||
public PageResult<ErpProductiveOrderDO> getErpProductiveOrderPage(ErpProductiveOrderPageReqVO pageReqVO) {
|
||||
return erpProductiveOrderMapper.selectPage(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接口获取数据
|
||||
JSONArray dataArray = erpConfig.fetchDataFromERP(funcnr, req);
|
||||
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());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user