Merge remote-tracking branch 'origin/dev' into test

This commit is contained in:
qianshijiang
2025-11-19 17:58:18 +08:00
5 changed files with 104 additions and 39 deletions

View File

@@ -25,7 +25,7 @@ public interface ErrorCodeConstants {
ErrorCode BUSINESS_RULE_NOT_EXISTS = new ErrorCode(1_027_100_001, "规则模型不存在"); ErrorCode BUSINESS_RULE_NOT_EXISTS = new ErrorCode(1_027_100_001, "规则模型不存在");
ErrorCode BUSINESS_ALGORITHM_NOT_EXISTS = new ErrorCode(1_027_100_002, "算法模型不存在"); ErrorCode BUSINESS_ALGORITHM_NOT_EXISTS = new ErrorCode(1_027_100_002, "算法模型不存在");
ErrorCode BUSINESS_DIMENSION_NOT_EXISTS = new ErrorCode(1_027_200_001, "经营指标维度不存在"); ErrorCode BUSINESS_DIMENSION_NOT_EXISTS = new ErrorCode(1_027_200_001, "经营指标维度不存在");
ErrorCode BUSINESS_INDICATOR_NOT_EXISTS = new ErrorCode(1_027_200_002, "经营指标不存在"); ErrorCode BUSINESS_INDICATOR_NOT_EXISTS = new ErrorCode(1_027_200_002, "经营指标不存在");
ErrorCode BUSINESS_DICTIONARY_TYPE_NOT_EXISTS = new ErrorCode(1_027_200_003, "业务字典类型不存在"); ErrorCode BUSINESS_DICTIONARY_TYPE_NOT_EXISTS = new ErrorCode(1_027_200_003, "业务字典类型不存在");

View File

@@ -26,7 +26,9 @@ import org.springframework.web.bind.annotation.*;
import java.util.List; import java.util.List;
import static com.zt.plat.framework.common.pojo.CommonResult.error;
import static com.zt.plat.framework.common.pojo.CommonResult.success; import static com.zt.plat.framework.common.pojo.CommonResult.success;
import static com.zt.plat.module.contractorder.enums.ErrorCodeConstants.CONTRACT_SUBMIT_ERP_FAIL;
@Slf4j @Slf4j
@Tag(name = "管理后台 - 合同管理") @Tag(name = "管理后台 - 合同管理")
@@ -153,10 +155,8 @@ public class ContractController implements BusinessControllerMarker {
@Operation(summary = "提交ERP") @Operation(summary = "提交ERP")
@PreAuthorize("@ss.hasPermission('base:contract:erp')") @PreAuthorize("@ss.hasPermission('base:contract:erp')")
public CommonResult<JSONObject> submitErp(@RequestParam("id") Long id) { public CommonResult<JSONObject> submitErp(@RequestParam("id") Long id) {
// JSONObject res = contractService.submitErp(id); JSONObject res = contractService.submitErp(id);
// return res.getBool("success") ? success(res) : error(CONTRACT_SUBMIT_ERP_FAIL.getCode(), res.getStr("data")); return res.getBool("success") ? success(res) : error(CONTRACT_SUBMIT_ERP_FAIL.getCode(), res.getStr("data"));
// TODO ERP默认返回成功处理 SZHGYL-251
return success(new JSONObject().putOnce("success", true));
} }
@GetMapping("/list/up-not-relation") @GetMapping("/list/up-not-relation")

View File

@@ -1193,6 +1193,11 @@ public class ContractServiceImpl implements ContractService {
contractIds = getContractIds(queryReqVO.getContractName(), queryReqVO.getContractPaperNumber()); contractIds = getContractIds(queryReqVO.getContractName(), queryReqVO.getContractPaperNumber());
} }
// 未查询到相关合同
if (CollectionUtils.isEmpty(contractIds)) {
return new PageResult<>();
}
// 分页查询 // 分页查询
IPage<NotRespVO> ipage = contractNotMapper.selectNots( IPage<NotRespVO> ipage = contractNotMapper.selectNots(
new Page<NotRespVO>().setCurrent(queryReqVO.getPageNo()).setSize(queryReqVO.getPageSize()), new Page<NotRespVO>().setCurrent(queryReqVO.getPageNo()).setSize(queryReqVO.getPageSize()),
@@ -1215,6 +1220,11 @@ public class ContractServiceImpl implements ContractService {
contractIds = getContractIds(queryReqVO.getContractName(), queryReqVO.getContractPaperNumber()); contractIds = getContractIds(queryReqVO.getContractName(), queryReqVO.getContractPaperNumber());
} }
// 未查询到相关合同
if (CollectionUtils.isEmpty(contractIds)) {
return new PageResult<>();
}
// 分页查询 // 分页查询
IPage<DemoteRespVO> ipage = contractDemoteMapper.selectDemotes( IPage<DemoteRespVO> ipage = contractDemoteMapper.selectDemotes(
new Page<>().setCurrent(queryReqVO.getPageNo()).setSize(queryReqVO.getPageSize()), new Page<>().setCurrent(queryReqVO.getPageNo()).setSize(queryReqVO.getPageSize()),
@@ -1237,6 +1247,11 @@ public class ContractServiceImpl implements ContractService {
contractIds = getContractIds(queryReqVO.getContractName(), queryReqVO.getContractPaperNumber()); contractIds = getContractIds(queryReqVO.getContractName(), queryReqVO.getContractPaperNumber());
} }
// 未查询到相关合同
if (CollectionUtils.isEmpty(contractIds)) {
return new PageResult<>();
}
// 分页查询 // 分页查询
IPage<FormulaRespVO> ipage = contractFormulaMapper.selectFormulas( IPage<FormulaRespVO> ipage = contractFormulaMapper.selectFormulas(
new Page<>().setCurrent(queryReqVO.getPageNo()).setSize(queryReqVO.getPageSize()), new Page<>().setCurrent(queryReqVO.getPageNo()).setSize(queryReqVO.getPageSize()),
@@ -1628,6 +1643,7 @@ public class ContractServiceImpl implements ContractService {
// TODO 暂时返回成功 // TODO 暂时返回成功
erpResult.putOnce("success", true); erpResult.putOnce("success", true);
erpResult.putOnce("data", "success");
/*HashMap<String, String> result = erpContractService.submitErp(erpContractVO); /*HashMap<String, String> result = erpContractService.submitErp(erpContractVO);
if ("E".equals(result.get("flag"))) { if ("E".equals(result.get("flag"))) {
erpResult.putOnce("success", false); erpResult.putOnce("success", false);
@@ -1836,7 +1852,7 @@ public class ContractServiceImpl implements ContractService {
infoRespVO.setCompanyBankAccount(contractMainDO.getSalesBankAccount()); infoRespVO.setCompanyBankAccount(contractMainDO.getSalesBankAccount());
infoRespVO.setCompanyAccountNumber(contractMainDO.getSalesAccountNumber()); infoRespVO.setCompanyAccountNumber(contractMainDO.getSalesAccountNumber());
infoRespVO.setCompanyTaxNumber(contractMainDO.getSalesTaxNumber()); infoRespVO.setCompanyTaxNumber(contractMainDO.getSalesTaxNumber());
infoRespVO.setSupplierName(contractMainDO.getPurchaseCompanyNumber()); infoRespVO.setSupplierNumber(contractMainDO.getPurchaseCompanyNumber());
infoRespVO.setSupplierName(contractMainDO.getPurchaseCompanyName()); infoRespVO.setSupplierName(contractMainDO.getPurchaseCompanyName());
infoRespVO.setSupplierAccountName(contractMainDO.getPurchaseAccountName()); infoRespVO.setSupplierAccountName(contractMainDO.getPurchaseAccountName());
infoRespVO.setSupplierBankAccount(contractMainDO.getPurchaseBankAccount()); infoRespVO.setSupplierBankAccount(contractMainDO.getPurchaseBankAccount());
@@ -1850,7 +1866,7 @@ public class ContractServiceImpl implements ContractService {
infoRespVO.setCompanyBankAccount(contractMainDO.getPurchaseBankAccount()); infoRespVO.setCompanyBankAccount(contractMainDO.getPurchaseBankAccount());
infoRespVO.setCompanyAccountNumber(contractMainDO.getPurchaseAccountNumber()); infoRespVO.setCompanyAccountNumber(contractMainDO.getPurchaseAccountNumber());
infoRespVO.setCompanyTaxNumber(contractMainDO.getPurchaseTaxNumber()); infoRespVO.setCompanyTaxNumber(contractMainDO.getPurchaseTaxNumber());
infoRespVO.setSupplierName(contractMainDO.getSalesCompanyNumber()); infoRespVO.setSupplierNumber(contractMainDO.getSalesCompanyNumber());
infoRespVO.setSupplierName(contractMainDO.getSalesCompanyName()); infoRespVO.setSupplierName(contractMainDO.getSalesCompanyName());
infoRespVO.setSupplierAccountName(contractMainDO.getSalesAccountName()); infoRespVO.setSupplierAccountName(contractMainDO.getSalesAccountName());
infoRespVO.setSupplierBankAccount(contractMainDO.getSalesBankAccount()); infoRespVO.setSupplierBankAccount(contractMainDO.getSalesBankAccount());

View File

@@ -119,44 +119,93 @@ public class ErpCustomerServiceImpl implements ErpCustomerService {
initialize(key); initialize(key);
} }
//循环近五年日期, //循环近五年日期,
JSONArray dataArrayALL = new JSONArray(); // JSONArray dataArrayALL = new JSONArray();
LocalDate endDate = LocalDate.now(); // LocalDate endDate = LocalDate.now();
LocalDate startDate = endDate.minusYears(5); // LocalDate startDate = endDate.minusYears(5);
for (LocalDate date = startDate; !date.isAfter(endDate); date = date.plusDays(1)) { // for (LocalDate date = startDate; !date.isAfter(endDate); date = date.plusDays(1)) {
// 构建req参数 // 构建req参数
Map<String, Object> req = new HashMap<>(); Map<String, Object> req = new HashMap<>();
List<Map<String, String>> datumList = new ArrayList<>(); List<Map<String, String>> datumList = new ArrayList<>();
Map<String, String> datumEntry = new HashMap<>(); Map<String, String> datumEntry = new HashMap<>();
// 构建datum参数数组 // 构建datum参数数组
datumEntry.put("sign", "I"); datumEntry.put("sign", "I");
datumEntry.put("option", "EQ"); datumEntry.put("option", "EQ");
// 把每次循环的日期,放在这里 // 把每次循环的日期,放在这里
datumEntry.put("low", date.toString()); datumEntry.put("low", LocalDate.now().toString());
datumList.add(datumEntry); datumList.add(datumEntry);
req.put(funcnrEnum.getDatekey(), datumList); req.put(funcnrEnum.getDatekey(), datumList);
// 1. 调用ERP接口获取数据 // 1. 调用ERP接口获取数据
for (OftenEnum.ModeTypeEnum type : OftenEnum.ModeTypeEnum.values()) { HashMap<String, Object> dataFromERP = erpConfig.fetchDataFromERP(funcnr, req);
req.put("MODE", type.modetype); JSONArray dataArray = (JSONArray) dataFromERP.get("E_RESP");
HashMap<String, Object> dataFromERP = erpConfig.fetchDataFromERP(funcnr, req); // if (dataArray == null || dataArray.isEmpty()) {
JSONArray dataArray = (JSONArray) dataFromERP.get(funcnrEnum.getDatakey()); // continue;
if (dataArray == null || dataArray.isEmpty()) { // }
continue; // dataArrayALL.addAll(dataArray);
} // }
dataArrayALL.addAll(dataArray); if (dataArray.isEmpty()) {
}
}
if (dataArrayALL.isEmpty()) {
return; return;
} }
// 2. 处理数据,区分新增和更新 // 2. 处理数据,区分新增和更新
ProcessingResult result = processData(dataArrayALL, funcnrEnum); ProcessingResult result = processData(dataArray, funcnrEnum);
// 3. 批量保存数据 // 3. 批量保存数据
saveData(result); saveData(result);
} }
// @Override
// @Transactional
// @XxlJob("getErpCustomerTask")
// public void callErpRfcInterface() {
// OftenEnum.FuncnrEnum funcnrEnum = OftenEnum.FuncnrEnum.客商信息;
// String funcnr = funcnrEnum.getFuncnr();
//
// String key = "erp" + funcnrEnum.getFuncnr();
// List<String> allnumbers = myRedisConfig.getRedisCache(key);
// List<String> numbers = null;
// if (allnumbers != null) {
// //取前100的数据
// numbers = allnumbers.stream().limit(100).collect(Collectors.toList());
// JSONArray dataArrayALL = new JSONArray();
// //循环近五年日期,
// for (String number : numbers) {
// // 构建req参数
// Map<String, Object> req = new HashMap<>();
// List<Map<String, String>> datumList = new ArrayList<>();
// Map<String, String> datumEntry = new HashMap<>();
// // 构建datum参数数组
// datumEntry.put("sign", "I");
// datumEntry.put("option", "EQ");
// // 把每次循环的日期,放在这里
// datumEntry.put("low", number);
// datumList.add(datumEntry);
// req.put("PARTNER", datumList);
//
// // 1. 调用ERP接口获取数据
// for (OftenEnum.ModeTypeEnum type : OftenEnum.ModeTypeEnum.values()) {
// req.put("MODE", type.modetype);
// HashMap<String, Object> dataFromERP = erpConfig.fetchDataFromERP(funcnr, req);
// JSONArray dataArray = (JSONArray) dataFromERP.get("E_RESP");
// if (dataArray == null || dataArray.isEmpty()) {
// continue;
// }
// dataArrayALL.addAll(dataArray);
// }
// }
// if (dataArrayALL.isEmpty()) {
// return;
// }
//
// // 2. 处理数据,区分新增和更新
// ProcessingResult result = processData(dataArrayALL, funcnrEnum);
//
// // 3. 批量保存数据
// saveData(result);
// }
// }
/** /**
* 处理数据,区分新增和更新 * 处理数据,区分新增和更新
*/ */
@@ -171,7 +220,7 @@ public class ErpCustomerServiceImpl implements ErpCustomerService {
for (int i = 0; i < dataArray.size(); i++) { for (int i = 0; i < dataArray.size(); i++) {
JSONObject dataJson = dataArray.getJSONObject(i); JSONObject dataJson = dataArray.getJSONObject(i);
if (dataJson != null) { if (dataJson != null) {
String number = dataJson.getString(funcnr.getDatakey()); String number = dataJson.getString("PARTNER");
if (number != null) { if (number != null) {
number = number.trim(); number = number.trim();
} }
@@ -191,7 +240,7 @@ public class ErpCustomerServiceImpl implements ErpCustomerService {
} }
DO.setIsGiveback(dataJson.getString("XDELE")); DO.setIsGiveback(dataJson.getString("XDELE"));
DO.setIsProvisional(dataJson.getString("XBLCK")); DO.setIsProvisional(dataJson.getString("XBLCK"));
DO.setTaxNumber(dataJson.getString("TAXNO")); DO.setTaxNumber(dataJson.getString("TAXNUM"));
if (comnumbers.contains(number)) { if (comnumbers.contains(number)) {
// 更新 // 更新
@@ -217,7 +266,7 @@ public class ErpCustomerServiceImpl implements ErpCustomerService {
if (!result.toUpdate.isEmpty()) { if (!result.toUpdate.isEmpty()) {
erpCustomerMapper.updateBatchByNumber(result.toUpdate); erpCustomerMapper.updateBatchByNumber(result.toUpdate);
} }
myRedisConfig.updateRedisCache(result.key, result.allnumbers); // myRedisConfig.updateRedisCache(result.key, result.allnumbers);
} }
/** /**

View File

@@ -23,7 +23,7 @@
<if test="item.isProvisional != null">IS_PRVS = #{item.isProvisional},</if> <if test="item.isProvisional != null">IS_PRVS = #{item.isProvisional},</if>
<if test="item.taxNumber != null">TAX_NUM = #{item.taxNumber},</if> <if test="item.taxNumber != null">TAX_NUM = #{item.taxNumber},</if>
</set> </set>
WHERE NUM = #{item.downCenterNumber} WHERE NUM = #{item.number}
</foreach> </foreach>
</update> </update>
</mapper> </mapper>