public synchronized Result transferMaterialFromSAP(String data){
//模拟登录
simulatedLoginService.login(fiConfigure.getUserName(), Long.valueOf(fiConfigure.getCompanyId()));
Staff staff = (Staff) getCurrentStaff();
String companyCode = getCurrentCompany().getCode();
String username = getCurrentUser().getUsername();
String staffCode = staff.getCode();
String departMentCode = getCurrentDepartment().getCode();
//301、302、201、202、551接口无论账务如何,全部返回SAP处理成功,MES自己记录失败信息
//请求前记录日志
Long logId = interfaceLog.recordRequestLog("transferMaterialFromSAP", "SAP物料转移", "SAP", "MES", "produce", null, data, null, null);
//记录失败日志
interfaceLog.recordResponseLog(logId, Result.success("处理成功!"), false);
//查询数据库现存量视图
String cropsViewSql = "select \n" +
"\tWLBM 'materialCode', \n" +
"\tWLPH 'batch', \n" +
"\tXCL 'cropsNum', \n" +
"\tCKBM 'wareCode', \n" +
"\tHZLC 'soilNum', \n" +
"\tHZRQ 'vesselNum', \n" +
"\tHZBL 'fillMaterialNum', \n" +
"\tHZPL 'bmsetNum', \n" +
"\tKYL 'canUseNum' \n" +
"from ST_KYL";
List<Object[]> list = interfaceTableDao.createNativeQuery(cropsViewSql)
.addScalar("materialCode", StandardBasicTypes.STRING)
.addScalar("batch", StandardBasicTypes.STRING)
.addScalar("cropsNum", StandardBasicTypes.BIG_DECIMAL)
.addScalar("wareCode", StandardBasicTypes.STRING)
.addScalar("soilNum", StandardBasicTypes.BIG_DECIMAL)
.addScalar("vesselNum", StandardBasicTypes.BIG_DECIMAL)
.addScalar("fillMaterialNum", StandardBasicTypes.BIG_DECIMAL)
.addScalar("bmsetNum", StandardBasicTypes.BIG_DECIMAL)
.addScalar("canUseNum", StandardBasicTypes.BIG_DECIMAL)
.list();
List<FICrops> fiCropsList = list.stream().map(e -> {
FICrops fiCrops = new FICrops();
fiCrops.setMaterialCode((String) e[0]);
fiCrops.setBatch((String) e[1]);
fiCrops.setCropsNum((BigDecimal) e[2]);
fiCrops.setWareCode((String) e[3]);
fiCrops.setSoilNum((BigDecimal) e[4]);
fiCrops.setVesselNum((BigDecimal) e[5]);
fiCrops.setFillMaterialNum((BigDecimal) e[6]);
fiCrops.setBmsetNum((BigDecimal) e[7]);
fiCrops.setCanUseNum((BigDecimal) e[8]);
return fiCrops;
}).collect(Collectors.toList());
ObjectMapper objectMapper = new ObjectMapper();
//忽略未知字段
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
//忽略大小写
objectMapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true);
List<TransferMaterialData> transferMaterialDataList = null;
try {
transferMaterialDataList = objectMapper.readValue(data, new TypeReference<List<TransferMaterialData>>() {
});
} catch (IOException e) {
log.info("301、302、201、202、551物料转移数据格式转换失败:" + e.getMessage());
e.printStackTrace();
}
for (TransferMaterialData materialData : transferMaterialDataList){
Result result = dealDataUtil.dealTransMaterialData(materialData, companyCode, username, staffCode, departMentCode, fiCropsList);
}
return Result.success("处理成功!");
}
最新发布