diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/basic/UdiContrastController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/basic/UdiContrastController.java index 9cace8a5..354269c6 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/controller/basic/UdiContrastController.java +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/basic/UdiContrastController.java @@ -13,11 +13,13 @@ import com.glxp.api.admin.entity.thrsys.ThrProductsEntity; import com.glxp.api.admin.httpclient.UdiDlHttpClient; import com.glxp.api.admin.req.basic.CombineRequest; import com.glxp.api.admin.req.basic.RemoveRelRequest; +import com.glxp.api.admin.req.basic.UdiInfoExportRequest; import com.glxp.api.admin.req.receipt.ProductInfoFilterRequest; import com.glxp.api.admin.req.thrsys.FilterThrProductsRequest; import com.glxp.api.admin.res.PageSimpleResponse; import com.glxp.api.admin.service.basic.*; import com.glxp.api.admin.service.thrsys.ThrProductsService; +import com.glxp.api.admin.thread.CompanyProductsRelService; import com.glxp.api.admin.util.CustomUtil; import com.glxp.api.admin.util.DateUtil; import com.glxp.api.admin.util.GennerOrderUtils; @@ -25,6 +27,7 @@ import com.glxp.api.admin.util.UdiInfoUtil; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -46,6 +49,8 @@ public class UdiContrastController { UdiInfoService udiInfoService; @Resource private BasicThirdSysService basicThirdSysService; + @Resource + private CompanyProductsRelService companyProductsRelService; @Resource UdiContrastService udiContrastService; @@ -53,6 +58,8 @@ public class UdiContrastController { ThrProductsService thrProductsService; @Resource GennerOrderUtils gennerOrderUtils; + @Value("${SYSTEM_TYPE}") + private String systemType; //添加产品 @AuthRuleAnnotation("") @@ -268,6 +275,15 @@ public class UdiContrastController { udiRelevanceEntity.setPrice(combineRequest.getPrice()); udiRelevanceEntity.setId(gennerOrderUtils.getRelId() + ""); udiRelevanceService.insertUdiRelevance(udiRelevanceEntity); + //片仔癀诊断专用;//没有配送商,默认统一一个配送企业 + if (StrUtil.isNotEmpty(systemType) && systemType.equals("supplier")) { + List rlIds = new ArrayList<>(); + rlIds.add(udiRelevanceEntity.getId()); + UdiInfoExportRequest udiInfoExportRequest = new UdiInfoExportRequest(); + udiInfoExportRequest.setRlIds(rlIds); + udiInfoExportRequest.setUnitFk("110"); + companyProductsRelService.insertCompanyProducts(udiInfoExportRequest); + } insertUdiInfos(udiInfoEntities); } @@ -284,6 +300,15 @@ public class UdiContrastController { udiRelevanceEntity.setPrice(combineRequest.getPrice()); udiRelevanceEntity.setId(gennerOrderUtils.getRelId() + ""); udiRelevanceService.insertUdiRelevance(udiRelevanceEntity); + //片仔癀诊断专用;//没有配送商,默认统一一个配送企业 + if (StrUtil.isNotEmpty(systemType) && systemType.equals("supplier")) { + List rlIds = new ArrayList<>(); + rlIds.add(udiRelevanceEntity.getId()); + UdiInfoExportRequest udiInfoExportRequest = new UdiInfoExportRequest(); + udiInfoExportRequest.setRlIds(rlIds); + udiInfoExportRequest.setUnitFk("110"); + companyProductsRelService.insertCompanyProducts(udiInfoExportRequest); + } insertUdiInfos(udiInfoEntities); } @@ -306,6 +331,15 @@ public class UdiContrastController { udiRelevanceEntity.setSupName(combineRequest.getSupName()); udiRelevanceEntity.setPrice(thrProductsEntity.getPrice()); udiRelevanceEntity.setId(gennerOrderUtils.getRelId() + ""); + //片仔癀诊断专用;//没有配送商,默认统一一个配送企业 + if (StrUtil.isNotEmpty(systemType) && systemType.equals("supplier")) { + List rlIds = new ArrayList<>(); + rlIds.add(udiRelevanceEntity.getId()); + UdiInfoExportRequest udiInfoExportRequest = new UdiInfoExportRequest(); + udiInfoExportRequest.setRlIds(rlIds); + udiInfoExportRequest.setUnitFk("110"); + companyProductsRelService.insertCompanyProducts(udiInfoExportRequest); + } udiRelevanceService.insertUdiRelevance(udiRelevanceEntity); UdiInfoEntity udiInfoEntity = new UdiInfoEntity(); BeanUtils.copyProperties(thrProductsEntity, udiInfoEntity); diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/basic/UdiInfoController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/basic/UdiInfoController.java index d3b3b5e8..fe38ff2f 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/controller/basic/UdiInfoController.java +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/basic/UdiInfoController.java @@ -16,6 +16,7 @@ import com.glxp.api.admin.res.PageSimpleResponse; import com.glxp.api.admin.res.basic.ErpProductsResponse; import com.glxp.api.admin.service.basic.*; import com.glxp.api.admin.service.thrsys.ThrProductsService; +import com.glxp.api.admin.thread.AsyncDiDlHelper; import com.glxp.api.admin.util.FilterUdiUtils; import com.glxp.api.common.enums.ResultEnum; import com.glxp.api.common.res.BaseResponse; @@ -48,6 +49,10 @@ public class UdiInfoController { private ErpBasicClient erpBasicClient; @Resource SyncUdiService syncUdiService; + @Resource + AsyncDiDlHelper asyncDiDlHelper; + @Resource + ProductInfoService productInfoService; //获取同步库UDI信息 @AuthRuleAnnotation("") @@ -110,6 +115,80 @@ public class UdiInfoController { } + @AuthRuleAnnotation("") + @GetMapping("udiwms/udiinfo/superSearch") + public BaseResponse superSearch(FilterUdiInfoRequest filterUdiInfoRequest) { + + if (StrUtil.isEmpty(filterUdiInfoRequest.getNameCode()) && StrUtil.isEmpty(filterUdiInfoRequest.getUdiCode())) { + return ResultVOUtils.error(500, "DI不能为空!"); + } + + if (StrUtil.isNotEmpty(filterUdiInfoRequest.getUdiCode())) { + UdiEntity udiEntity = FilterUdiUtils.getUdi(filterUdiInfoRequest.getUdiCode()); + if (udiEntity == null) + return ResultVOUtils.error(500, "UDI码格式错误!"); + filterUdiInfoRequest.setNameCode(udiEntity.getUdi()); + } + + ProductInfoFilterRequest productInfoFilterRequest = new ProductInfoFilterRequest(); + productInfoFilterRequest.setNameCode(filterUdiInfoRequest.getNameCode()); + productInfoFilterRequest.setPage(filterUdiInfoRequest.getPage()); + productInfoFilterRequest.setLimit(filterUdiInfoRequest.getLimit()); + try { + BaseResponse> udiDlDeviceResponse = syncUdiService.filterUdi(productInfoFilterRequest); + if (udiDlDeviceResponse.getCode() != 20000) { + return udiDlDeviceResponse; + } + if (CollUtil.isEmpty(udiDlDeviceResponse.getData().getList())) { + BaseResponse> listBaseResponse = asyncDiDlHelper.dlByDiRes(filterUdiInfoRequest.getNameCode()); + + if (listBaseResponse.getCode() == 20000) { + List productInfoEntityList = listBaseResponse.getData(); + if (CollUtil.isNotEmpty(productInfoEntityList)) { + productInfoService.insertProductInfos(productInfoEntityList); + udiDlDeviceResponse = syncUdiService.filterUdi(productInfoFilterRequest); + } else { + ResultVOUtils.error(500, "未查询到该产品DI"); + } + } else { + return listBaseResponse; + } + } + if (filterUdiInfoRequest.getIsCheck() != null && filterUdiInfoRequest.getIsCheck()) { + List productInfoEntities = udiDlDeviceResponse.getData().getList(); + List udiInfoEntities = new ArrayList<>(); + if (productInfoEntities != null && productInfoEntities.size() > 0) { + for (ProductInfoEntity productInfoEntity : productInfoEntities) { + UdiInfoEntity udiInfoEntity = new UdiInfoEntity(); + List udiRelevanceEntities = udiRelevanceService.selectByUuid(productInfoEntity.getUuid()); + if (udiRelevanceEntities != null && udiRelevanceEntities.size() > 0) { + BeanUtils.copyProperties(productInfoEntity, udiInfoEntity); + for (UdiRelevanceEntity udiRelevanceEntity : udiRelevanceEntities) { + if (udiRelevanceEntity.getThirdId() == null && + udiRelevanceEntity.getThirdId2() == null && udiRelevanceEntity.getThirdId1() == null && + udiRelevanceEntity.getThirdId3() == null && udiRelevanceEntity.getThirdId4() == null) { + //不能添加 + udiInfoEntity.setCheck(true); + break; + } else + udiInfoEntity.setCheck(false); + } + + } else { + udiInfoEntity.setCheck(false); + } + udiInfoEntities.add(udiInfoEntity); + } + } + } + return udiDlDeviceResponse; + } catch (Exception e) { + e.printStackTrace(); + return ResultVOUtils.error(500, "连接UDI数据下载服务出错!"); + } + } + + //获取同步库医疗器械注册人信息 @AuthRuleAnnotation("") @GetMapping("udiwms/udiinfo/filterCompany") @@ -252,7 +331,6 @@ public class UdiInfoController { thrProductsEntity.setUpdateTime(new Date()); thrProductsService.insertThrProducts(thrProductsEntity); - //新增主系统产品信息直接加到耗材字典里 BasicThirdSysEntity basicThirdSysEntity = basicThirdSysService.selectMainThrSys(); if (basicThirdSysEntity.getThirdId().equals(thrProductsEntity.getThirdSysFk())) diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/inout/OrderDetailController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/inout/OrderDetailController.java index 8561ba64..8dbb80d6 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/controller/inout/OrderDetailController.java +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/inout/OrderDetailController.java @@ -382,10 +382,10 @@ public class OrderDetailController { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } // -// if (filterErpOrderRequest.getIsDownThrSys()) { -// BaseResponse> responseBaseResponse = erpOrderClient.getErpOrderResponse(filterErpOrderRequest); -// return responseBaseResponse; -// } + if (filterErpOrderRequest.getIsDownThrSys() != null && filterErpOrderRequest.getIsDownThrSys()) { + BaseResponse> responseBaseResponse = erpOrderClient.getErpOrderResponse(filterErpOrderRequest); + return responseBaseResponse; + } BasicThirdSysDetailEntity basicThirdSysDetailEntity = bussinessOriginTypeService.findSysByAction(filterErpOrderRequest.getBillAction(), "orderQueryUrl"); diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvErpOnhandController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvErpOnhandController.java index e41d67c4..615dc45a 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvErpOnhandController.java +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvErpOnhandController.java @@ -119,7 +119,6 @@ public class InvErpOnhandController { public BaseResponse getInvProducts(ErpOnhandRequest udiwmsOnhandRequest) { BasicThirdSysEntity basicThirdSysEntity = basicThirdSysService.selectByThirdId(udiwmsOnhandRequest.getThirdSys()); String url = basicThirdSysEntity.getThridUrl() + "/udiwms/erp/inv/getEnvProduct"; - try { String response = httpOkClient.uCloudPost(url, udiwmsOnhandRequest, basicThirdSysEntity); BaseResponse> udiDlDeviceResponse = diff --git a/api-admin/src/main/java/com/glxp/api/admin/entity/thrsys/ThrOrderEntity.java b/api-admin/src/main/java/com/glxp/api/admin/entity/thrsys/ThrOrderEntity.java index 9706752c..1a0e023f 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/entity/thrsys/ThrOrderEntity.java +++ b/api-admin/src/main/java/com/glxp/api/admin/entity/thrsys/ThrOrderEntity.java @@ -41,5 +41,6 @@ public class ThrOrderEntity { private String unitIdFk; private int allocateStatus; //1:已配货;0:未配货 + private Integer thirdPartyDate; } diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/basic/impl/UdiInfoServiceImpl.java b/api-admin/src/main/java/com/glxp/api/admin/service/basic/impl/UdiInfoServiceImpl.java index e613a15a..105e7829 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/service/basic/impl/UdiInfoServiceImpl.java +++ b/api-admin/src/main/java/com/glxp/api/admin/service/basic/impl/UdiInfoServiceImpl.java @@ -1,6 +1,7 @@ package com.glxp.api.admin.service.basic.impl; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; import com.github.pagehelper.PageHelper; import com.glxp.api.admin.dao.basic.UdiInfoDao; import com.glxp.api.admin.entity.basic.UdiInfoEntity; @@ -8,6 +9,7 @@ import com.glxp.api.admin.req.basic.FilterUdiInfoRequest; import com.glxp.api.admin.res.basic.UdiRelevanceResponse; import com.glxp.api.admin.service.basic.UdiInfoService; import com.glxp.api.admin.util.FilterUdiUtils; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -20,12 +22,13 @@ public class UdiInfoServiceImpl implements UdiInfoService { @Resource UdiInfoDao udiInfoDao; + @Override public List filterUdiInfo(FilterUdiInfoRequest filterUdiInfoRequest) { if (filterUdiInfoRequest == null) { return Collections.emptyList(); } - if(filterUdiInfoRequest.getPage()!=null){ + if (filterUdiInfoRequest.getPage() != null) { int offset = (filterUdiInfoRequest.getPage() - 1) * filterUdiInfoRequest.getLimit(); PageHelper.offsetPage(offset, filterUdiInfoRequest.getLimit()); } diff --git a/api-admin/src/main/java/com/glxp/api/admin/thread/AsyncDiDlHelper.java b/api-admin/src/main/java/com/glxp/api/admin/thread/AsyncDiDlHelper.java new file mode 100644 index 00000000..4353925e --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/thread/AsyncDiDlHelper.java @@ -0,0 +1,153 @@ +package com.glxp.api.admin.thread; + +import cn.hutool.core.collection.CollUtil; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.TypeReference; +import com.glxp.api.admin.entity.basic.ProductInfoEntity; +import com.glxp.api.admin.entity.basic.UdiCompanyEntity; +import com.glxp.api.admin.service.basic.ProductInfoService; +import com.glxp.api.admin.util.HttpClient; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Slf4j +@Service +public class AsyncDiDlHelper { + @Value("${UDI_SERVER_URL}") + private String udiUrl; + + public List dlByTime(String udiUrl, int page, int limit, String updateTime) { + Map paramMap = new HashMap<>(16); + paramMap.put("page", page); + paramMap.put("limit", limit); + paramMap.put("updateTime", updateTime); + String response = HttpClient.mipsGet(udiUrl + "/udidl/udiwms/syncUdi", paramMap); + try { + BaseResponse> udiDlDeviceResponse = + JSONObject.parseObject(response, new TypeReference>>() { + }); + + + List udiInfoEntities = udiDlDeviceResponse.getData(); + return udiInfoEntities; + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + + public List dlCompanyByTime(String udiUrl, int page, int limit, String updateTime) { + Map paramMap = new HashMap<>(16); + paramMap.put("page", page); + paramMap.put("limit", limit); + paramMap.put("updateTime", updateTime); + String response = HttpClient.mipsGet(udiUrl + "/udidl/udiwms/syncCompany", paramMap); + try { + BaseResponse> baseResponse = + JSONObject.parseObject(response, new TypeReference>>() { + }); + + + List udiCompanyEntities = baseResponse.getData(); + return udiCompanyEntities; + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + + public List dlByDi(String deviceId) { + Map paramMap = new HashMap<>(16); + paramMap.put("deviceId", deviceId); + String response = HttpClient.mipsGet(udiUrl + "/udidl/device/serchDlByDi", paramMap); + try { + BaseResponse> baseResponse = + JSONObject.parseObject(response, new TypeReference>>() { + }); + if (baseResponse.getCode() == 200000) { + List productInfoEntityList = baseResponse.getData(); + return productInfoEntityList; + } else { + return null; + } + + + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + public BaseResponse> dlByDiRes(String deviceId) { + Map paramMap = new HashMap<>(16); + paramMap.put("deviceId", deviceId); + String response = HttpClient.mipsGet(udiUrl + "/udidl/device/serchDlByDi", paramMap); + try { + BaseResponse> baseResponse = + JSONObject.parseObject(response, new TypeReference>>() { + }); + return baseResponse; + + } catch (Exception e) { + e.printStackTrace(); + return ResultVOUtils.error(500, "连接UDI国家数据库下载出错!"); + } + } + + public BaseResponse> dlLastVersionByDi(String deviceId) { + Map paramMap = new HashMap<>(16); + paramMap.put("deviceId", deviceId); + String response = HttpClient.mipsGet(udiUrl + "/udidl/device/dlLastVersionByDi", paramMap); + try { + BaseResponse> baseResponse = + JSONObject.parseObject(response, new TypeReference>>() { + }); + return baseResponse; + + } catch (Exception e) { + e.printStackTrace(); + return ResultVOUtils.error(500, "连接UDI国家数据库下载出错!"); + } + } + + + @Resource + ProductInfoService productInfoService; + + @Async + public void dlByUuid(String uuid) { + + + Map paramMap = new HashMap<>(16); + paramMap.put("uuid", uuid); + String response = HttpClient.mipsGet(udiUrl + "/udidl/device/searchDlByUuid", paramMap); + try { + BaseResponse> baseResponse = + JSONObject.parseObject(response, new TypeReference>>() { + }); + if (baseResponse != null && baseResponse.getCode() == 20000) { + List productInfoEntityList = baseResponse.getData(); + if (CollUtil.isNotEmpty(productInfoEntityList)) { + productInfoService.insertProductInfos(productInfoEntityList); + } + + } else { + log.error("下载出错"); + } + } catch (Exception e) { + e.printStackTrace(); + } + + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/thread/AsyncDiDlService.java b/api-admin/src/main/java/com/glxp/api/admin/thread/AsyncDiDlService.java new file mode 100644 index 00000000..52c6426f --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/thread/AsyncDiDlService.java @@ -0,0 +1,71 @@ +package com.glxp.api.admin.thread; + +import com.alibaba.fastjson.JSONArray; +import com.glxp.api.admin.entity.basic.ProductInfoEntity; +import com.glxp.api.admin.entity.thrsys.ThrImportLogEntity; +import com.glxp.api.admin.service.basic.ProductInfoService; +import com.glxp.api.admin.service.thrsys.ThrImportLogService; +import com.glxp.api.admin.util.CustomUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +@Service +public class AsyncDiDlService { + + + @Value("${UDI_SERVER_URL}") + private String udiUrl; + + @Resource + ProductInfoService productInfoService; + @Resource + ThrImportLogService udiInfoImportLogService; + @Resource + AsyncDiDlHelper asyncDiDlHelper; + private static final Logger logger = LoggerFactory.getLogger(AsyncDiDlService.class); + + @Async + public void asyncDiByTime(String updateTime) { + int page = 1; + int limit = 200; + while (true) { + logger.info("更新时间:" + updateTime + "----" + page + "----" + limit); + List productInfoEntityList = asyncDiDlHelper.dlByTime(udiUrl, page, limit, updateTime); + if (productInfoEntityList != null && productInfoEntityList.size() > 0) { + productInfoService.insertProductInfos(productInfoEntityList); + if (productInfoEntityList.size() < limit) { + break; + } else { + page++; + } + } else { + break; + } + } + logger.info("更新时间:" + updateTime + "----" + "下载结束"); + } + + @Async + public void importJsonData(String genKey, String laststr) { + ThrImportLogEntity udiInfoImportLogEntity = udiInfoImportLogService.selectByGenKey(genKey); + udiInfoImportLogEntity.setStatus(1); + udiInfoImportLogEntity.setFromType("2"); + udiInfoImportLogService.updateImportLog(udiInfoImportLogEntity); + List productInfoEntities = JSONArray.parseArray(laststr, ProductInfoEntity.class); + List> splitList = CustomUtil.splitList(productInfoEntities, 500); + for (List data : splitList) { + productInfoService.insertProductInfos(data); + } + udiInfoImportLogEntity.setStatus(3);//处理成功 + udiInfoImportLogService.updateImportLog(udiInfoImportLogEntity); + + } + + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/thread/AsyncDiDlTask.java b/api-admin/src/main/java/com/glxp/api/admin/thread/AsyncDiDlTask.java new file mode 100644 index 00000000..f377e1a5 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/thread/AsyncDiDlTask.java @@ -0,0 +1,62 @@ +package com.glxp.api.admin.thread; + +import com.glxp.api.admin.dao.schedule.ScheduledDao; +import com.glxp.api.admin.entity.info.ScheduledEntity; +import com.glxp.api.admin.req.info.ScheduledRequest; +import com.glxp.api.admin.util.DateUtil; +import com.glxp.api.admin.util.RedisUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.SchedulingConfigurer; +import org.springframework.scheduling.config.ScheduledTaskRegistrar; +import org.springframework.scheduling.support.CronTrigger; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.Date; + +@Component +@EnableScheduling +public class AsyncDiDlTask implements SchedulingConfigurer { + + final Logger logger = LoggerFactory.getLogger(AsyncDiDlTask.class); + @Resource + RedisUtil redisUtil; + @Resource + private ScheduledDao scheduledDao; + @Resource + AsyncDiDlService asyncDiDlService; + + @Override + public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) { + scheduledTaskRegistrar.addTriggerTask(() -> process(), + triggerContext -> { + ScheduledRequest scheduledRequest = new ScheduledRequest(); + scheduledRequest.setCronName("syncDi"); + ScheduledEntity scheduledEntity = scheduledDao.findScheduled(scheduledRequest); + if (scheduledEntity == null) + return null; + String cron = scheduledEntity.getCron();//"0 55 5 * * ?"; + if (cron.isEmpty()) { + logger.error("cron is null"); + } + return new CronTrigger(cron).nextExecutionTime(triggerContext); + }); + } + + private void process() { + String day = DateUtil.getLastDayFormat(-1); + asyncDiDlService.asyncDiByTime(day); + + + String lastUpDiTime = (String) redisUtil.get("lastDiUpTime"); + if (lastUpDiTime == null) { + lastUpDiTime = DateUtil.getLastDayFormat(-10); + } + asyncDiDlService.asyncDiByTime(lastUpDiTime); + redisUtil.set("lastDiUpTime", DateUtil.formatDate(new Date())); + } + + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/thread/ThrProductsDlService.java b/api-admin/src/main/java/com/glxp/api/admin/thread/ThrProductsDlService.java index 078332ac..5e06d4f3 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/thread/ThrProductsDlService.java +++ b/api-admin/src/main/java/com/glxp/api/admin/thread/ThrProductsDlService.java @@ -133,10 +133,16 @@ public class ThrProductsDlService { int page = 1; int limit = 50; + int error = 1; while (page != -1) { FilterErpGoodsRequest filterErpGoodsRequest = new FilterErpGoodsRequest(); BeanUtils.copyProperties(filterThrProductsRequest, filterErpGoodsRequest); - page = getInvmandoc(thrProductsImportLogEntity, page, limit, piDetailEntity.getValue(), filterErpGoodsRequest.getThirdSys(), filterErpGoodsRequest); + int nextPage = getInvmandoc(thrProductsImportLogEntity, page, limit, piDetailEntity.getValue(), filterErpGoodsRequest.getThirdSys(), filterErpGoodsRequest); + if (error <= 2 && nextPage == -1) { //2次容错机会 + error++; + page++; + } else + page = nextPage; } FilterUdiIpLogRequest filterUdiIpLogRequest = new FilterUdiIpLogRequest(); filterUdiIpLogRequest.setGenKey(genKey); diff --git a/api-admin/src/main/java/com/glxp/api/admin/util/DateUtil.java b/api-admin/src/main/java/com/glxp/api/admin/util/DateUtil.java index 30866f5f..ab0bcc5d 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/util/DateUtil.java +++ b/api-admin/src/main/java/com/glxp/api/admin/util/DateUtil.java @@ -543,4 +543,14 @@ public class DateUtil extends org.apache.commons.lang3.time.DateUtils { } return null; } + + public static String getLastDayFormat(int amount) { + SimpleDateFormat smdate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Calendar calendar = new GregorianCalendar(); + calendar.setTime(new Date()); + calendar.add(calendar.DATE, amount); + String formatDate = smdate.format(calendar.getTime()); + return formatDate; + } + } \ No newline at end of file diff --git a/api-admin/src/main/resources/application-dev.properties b/api-admin/src/main/resources/application-dev.properties index cca5459b..e5b6af55 100644 --- a/api-admin/src/main/resources/application-dev.properties +++ b/api-admin/src/main/resources/application-dev.properties @@ -13,6 +13,7 @@ file_path=D:/udi/udiwms/udiwmsfile/ UDI_KEY=6b137c66-6286-46c6-8efa-c2f5dd9237df UDI_SERVER_URL=https://www.udims.com/UDI_DL_Server_test SPMS_KEY=lCOdWCBKS6Kw45wdnnqUTELXyuSKnXEs +SYSTEM_TYPE=supplier spring.redis.database=8 spring.redis.host=127.0.0.1 spring.redis.port=6379 diff --git a/api-admin/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml b/api-admin/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml index d9a2ae78..bbf9020c 100644 --- a/api-admin/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml +++ b/api-admin/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml @@ -437,7 +437,7 @@ - + replace INTO basic_udirel (id,