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

# Conflicts:
#	zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/ContractApi.java
#	zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/ContractApiImpl.java
This commit is contained in:
潘荣晟
2025-10-13 16:43:37 +08:00
23 changed files with 590 additions and 85 deletions

View File

@@ -109,6 +109,12 @@ public class ErpCompanyController {
return success(true);
}
@PostMapping("/test")
@Operation(summary = "定时获得erp更新公司")
@PreAuthorize("@ss.hasPermission('sply:erp-company:create')")
public CommonResult<Boolean> test() {
erpCompanyService.test();
return success(true);
}
}

View File

@@ -70,4 +70,6 @@ public interface ErpCompanyService {
* @return ERP公司
*/
ErpCompanyDO getErpCompanyByNumber(String number);
void test();
}

View File

@@ -131,8 +131,9 @@ public class ErpCompanyServiceImpl implements ErpCompanyService {
saveData(result);
} catch (Exception e) {
log.error("调用ERP RFC接口失败: {}", e);
throw new RuntimeException("调用ERP RFC接口失败: " + e.getMessage(), e);
// log.error("调用ERP RFC接口失败: {}", e);
throw e;
// throw new RuntimeException("调用ERP RFC接口失败: " + e.getMessage(), e);
}
}
@@ -235,4 +236,18 @@ public class ErpCompanyServiceImpl implements ErpCompanyService {
myRedisConfig.addRedisCacheMap(key, existingNumbers);
}
@Override
public void test() {
OftenEnum.FuncnrEnum funcnrEnum = OftenEnum.FuncnrEnum.公司代码;
String funcnr = funcnrEnum.getFuncnr();
//防止缓存数据丢失
String key = "erpMap" + funcnrEnum.getFuncnr();
myRedisConfig.getRedisCacheMap(key);
// 1. 调用ERP接口获取数据
HashMap<String, Object> dataFromERP = erpConfig.fetchDataFromERP(funcnr, null);
JSONArray dataArray = (JSONArray) dataFromERP.get("E_RESP");
if (CollUtil.isEmpty(dataArray)) {
throw exception(ERP_COMPANY_NOT_EXISTS);
}
}
}

View File

@@ -53,6 +53,14 @@ public interface ErpContractService {
*/
ErpContractDO getErpContract(Long id);
/**
* 获得ERP合同映射通过合同主信息主键
*
* @param contractMainId 合同主信息主键
* @return ERP合同映射
*/
ErpContractDO getErpContractByMainId(Long contractMainId);
/**
* 获得ERP合同映射分页
*

View File

@@ -6,30 +6,26 @@ import com.alibaba.fastjson.JSONObject;
import com.xxl.job.core.handler.annotation.XxlJob;
import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.framework.common.util.object.BeanUtils;
import com.zt.plat.module.erp.dal.dataobject.erp.ErpProductiveOrderDO;
import com.zt.plat.module.erp.utils.ErpConfig;
import com.zt.plat.module.erp.utils.MyRedisConfig;
import com.zt.plat.module.erp.enums.OftenEnum;
import com.zt.plat.module.erp.controller.admin.erp.vo.ErpContractPageReqVO;
import com.zt.plat.module.erp.controller.admin.erp.vo.ErpContractRespVO;
import com.zt.plat.module.erp.controller.admin.erp.vo.ErpContractSaveReqVO;
import com.zt.plat.module.erp.dal.dataobject.erp.ErpContractDO;
import com.zt.plat.module.erp.dal.mysql.erp.ErpContractMapper;
import com.zt.plat.module.erp.enums.OftenEnum;
import com.zt.plat.module.erp.utils.ErpConfig;
import com.zt.plat.module.erp.utils.MyRedisConfig;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
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;
import java.util.Map;
import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.zt.plat.module.erp.enums.ErrorCodeConstants.ERP_COMPANY_NOT_EXISTS;
import static com.zt.plat.module.erp.enums.ErrorCodeConstants.ERP_CONTRACT_NOT_EXISTS;
import static dm.jdbc.util.DriverUtil.log;
@@ -102,6 +98,11 @@ public class ErpContractServiceImpl implements ErpContractService {
return erpContractMapper.selectById(id);
}
@Override
public ErpContractDO getErpContractByMainId(Long contractMainId) {
return erpContractMapper.selectOne("CTRT_MAIN_ID", contractMainId);
}
@Override
public PageResult<ErpContractDO> getErpContractPage(ErpContractPageReqVO pageReqVO) {
OftenEnum.FuncnrEnum funcnrEnum = OftenEnum.FuncnrEnum.合同信息;

View File

@@ -87,7 +87,7 @@ public class ErpConfig {
}
} catch (Exception e) {
log.error("调用ERP RFC接口失败: {}", e);
throw exception(ERP_ERROR_EXISTS);
throw exception(ERP_ERROR_EXISTS, e);
}
}

View File

@@ -20,6 +20,8 @@ import org.springframework.data.redis.serializer.StringRedisSerializer;
import java.util.*;
import java.util.stream.Collectors;
import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.zt.plat.module.erp.enums.ErrorCodeConstants.*;
import static dm.jdbc.util.DriverUtil.log;
@@ -72,8 +74,6 @@ public class MyRedisConfig {
}
//list
public Map<String, List<String>> numbers(JSONArray dataArray, String key, String dataKey) {
// 使用 Redis 获取缓存数据
@@ -152,9 +152,13 @@ public class MyRedisConfig {
//map
public Map<String, Long> getRedisCacheMap(String key) {
// 使用 Redis 获取缓存数据
Map<String, Long> result = (Map<String, Long>) redisTemplate.opsForHash().entries(key);
return result;
try {
// 使用 Redis 获取缓存数据
Map<String, Long> result = (Map<String, Long>) redisTemplate.opsForHash().entries(key);
return result;
} catch (Exception e) {
throw exception(ERP_REDIS_EXISTS);
}
}
public void addRedisCacheMap(String key, Map<String, Long> allnumbers) {
@@ -179,13 +183,4 @@ public class MyRedisConfig {
}
}