From 9dd987af01431ecafa5264fe9ceac618ed360c86 Mon Sep 17 00:00:00 2001 From: wangwei <1610949092@qq.com> Date: Wed, 19 Apr 2023 17:49:38 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../req/auth/FilterInvWarehouseRequest.java | 2 +- .../glxp/api/service/auth/DeptService.java | 2 +- .../service/auth/impl/DeptServiceImpl.java | 2 +- .../mybatis/mapper/inout/IoOrderDao.xml | 27 +++++++++++++++++-- 4 files changed, 28 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/glxp/api/req/auth/FilterInvWarehouseRequest.java b/src/main/java/com/glxp/api/req/auth/FilterInvWarehouseRequest.java index 2e87d47c..85cbbd11 100644 --- a/src/main/java/com/glxp/api/req/auth/FilterInvWarehouseRequest.java +++ b/src/main/java/com/glxp/api/req/auth/FilterInvWarehouseRequest.java @@ -14,7 +14,7 @@ public class FilterInvWarehouseRequest extends ListPageRequest { private String code; private String name; private String deptCode; - private Boolean advanceType; + private Integer advanceType; private Boolean isDefault; private Date updateTime; private Integer level; diff --git a/src/main/java/com/glxp/api/service/auth/DeptService.java b/src/main/java/com/glxp/api/service/auth/DeptService.java index 66e0d853..fa89c528 100644 --- a/src/main/java/com/glxp/api/service/auth/DeptService.java +++ b/src/main/java/com/glxp/api/service/auth/DeptService.java @@ -11,7 +11,7 @@ import java.util.List; public interface DeptService { List selectByIdCode(List list); - DeptEntity findDefault(Boolean advaceType, Boolean isDefault); + DeptEntity findDefault(Integer advaceType, Boolean isDefault); DeptEntity selectMaxCode(FilterInvWarehouseRequest filterInvWarehouseRequest); diff --git a/src/main/java/com/glxp/api/service/auth/impl/DeptServiceImpl.java b/src/main/java/com/glxp/api/service/auth/impl/DeptServiceImpl.java index 7a19c44d..f67f0c63 100644 --- a/src/main/java/com/glxp/api/service/auth/impl/DeptServiceImpl.java +++ b/src/main/java/com/glxp/api/service/auth/impl/DeptServiceImpl.java @@ -28,7 +28,7 @@ public class DeptServiceImpl implements DeptService { } @Override - public DeptEntity findDefault(Boolean advaceType, Boolean isDefault) { + public DeptEntity findDefault(Integer advaceType, Boolean isDefault) { FilterInvWarehouseRequest filterInvWarehouseRequest = new FilterInvWarehouseRequest(); filterInvWarehouseRequest.setIsDefault(isDefault); filterInvWarehouseRequest.setAdvanceType(advaceType); diff --git a/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml b/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml index ba90426c..ff416d5d 100644 --- a/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml +++ b/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml @@ -92,7 +92,7 @@ - AND (`action` in + AND ((`action` in #{item} @@ -105,9 +105,32 @@ #{item} and status = 7 - ) + )) + + + + + + + and ( + `action` in + + #{item} + + and status = 7 + ) + + + AND (`action` in + + #{item} + + and status = 10) + + + order by createTime desc From 156d3fe3bc01c6fa7ce8cbb110b4745345885f30 Mon Sep 17 00:00:00 2001 From: anthonywj Date: Wed, 19 Apr 2023 18:21:45 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E5=8D=95=E6=8D=AE=E7=9B=B8=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/inout/IoOrderController.java | 9 ++++++ .../inout/impl/IoOrderServiceImpl.java | 8 ++++-- .../mybatis/mapper/inout/IoOrderDao.xml | 28 +++++++++++++++++-- 3 files changed, 40 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/glxp/api/controller/inout/IoOrderController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java index 7f1e8621..97e1f15f 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java @@ -82,6 +82,15 @@ public class IoOrderController extends BaseController { if (StrUtil.isNotEmpty(filterOrderRequest.getSupInoivceSearch())) { orderService.setInvoiceFiltes(filterOrderRequest); } + + if (filterOrderRequest.getSourceLocalType() != null) { + if (filterOrderRequest.getSourceLocalType() == 1) { + filterOrderRequest.setSourceTypes(Arrays.asList(1, 2, 3, 4, 5)); + } else { + filterOrderRequest.setSourceTypes(Arrays.asList(6,7, 8, 9, 10, 11, 12, 13, 14, 15, 17)); + } + } + String customerId = getCustomerId(); if (!customerId.equals("110")) { filterOrderRequest.setFromCorp(customerId); diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoOrderServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoOrderServiceImpl.java index b78f8d0c..9d01dce8 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoOrderServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoOrderServiceImpl.java @@ -411,7 +411,7 @@ public class IoOrderServiceImpl implements IoOrderService { } - orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST); + orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_REW); orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK_REW); orderEntity.setUpdateTime(new Date()); update(orderEntity); @@ -580,7 +580,8 @@ public class IoOrderServiceImpl implements IoOrderService { .gt("spUse", 1).eq("actionType", 1).eq("enable", true)); List actions1 = null; actions1 = bussinessTypeEntities.stream().map(BasicBussinessTypeEntity::getAction).collect(Collectors.toList()); - filterOrderRequest.setInvoiceActions1(actions1); + if (CollUtil.isNotEmpty(actions1)) + filterOrderRequest.setInvoiceActions1(actions1); List bussinessTypeEntities2 = basicBussinessTypeDao.selectList(new QueryWrapper() .eq("mainAction", ConstantType.TYPE_PUT).eq("corpType", ConstantStatus.CORP_TYPE_OUT) @@ -588,7 +589,8 @@ public class IoOrderServiceImpl implements IoOrderService { .gt("spUse", 0).eq("actionType", 1).eq("enable", true)); List actions2 = null; actions2 = bussinessTypeEntities2.stream().map(BasicBussinessTypeEntity::getAction).collect(Collectors.toList()); - filterOrderRequest.setInvoiceActions2(actions2); + if (CollUtil.isNotEmpty(actions2)) + filterOrderRequest.setInvoiceActions2(actions2); } @Override diff --git a/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml b/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml index ff416d5d..9ea0f9f9 100644 --- a/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml +++ b/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml @@ -65,6 +65,14 @@ #{item} + + + AND fromType in + + #{item} + + + AND status in @@ -98,7 +106,8 @@ and status = 10) - + + or ( `action` in @@ -107,6 +116,21 @@ and status = 7 )) + + + AND ((`action` in + + #{item} + + and status = 10) + or ( + `action` in + + #{item} + + and status = 7) + ) + @@ -122,7 +146,7 @@ - + AND (`action` in #{item} From 3a0bf62f22c93b25b849bae01d9f8e08ac970faf Mon Sep 17 00:00:00 2001 From: anthonywj Date: Wed, 19 Apr 2023 18:23:29 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=A4=87=E4=BB=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../glxp/api/constant/AsyncDiDlHelper.java | 2 - .../auth/InvWarehouseController.java | 23 ++++--- .../basic/BasicBussinessTypeController.java | 2 +- .../controller/basic/UdiSyncController.java | 23 ++++++- .../inv/InvPreProductController.java | 9 ++- .../inv/InvPreinProductController.java | 10 ++- .../api/entity/auth/InvWarehouseEntity.java | 2 +- .../api/req/inout/FilterOrderRequest.java | 5 ++ .../service/auth/impl/DeptServiceImpl.java | 1 - .../glxp/api/task/AsyncCompanyDlHelper.java | 49 +++++++++++++++ .../com/glxp/api/task/AsyncCompanyDlTask.java | 60 ++++++++++++++++++ .../com/glxp/api/task/AsyncDiDlService.java | 52 +++++++++++++++ .../java/com/glxp/api/task/AsyncDiDlTask.java | 63 +++++++++++++++++++ .../com/glxp/api/task/AsyncHeartTask.java | 2 - src/main/java/com/glxp/api/util/DateUtil.java | 13 +++- .../glxp/api/util/udi/UdiCalCountUtil.java | 2 +- src/main/resources/schemas/schema_v2.1.sql | 7 +++ 17 files changed, 300 insertions(+), 25 deletions(-) create mode 100644 src/main/java/com/glxp/api/task/AsyncCompanyDlHelper.java create mode 100644 src/main/java/com/glxp/api/task/AsyncCompanyDlTask.java create mode 100644 src/main/java/com/glxp/api/task/AsyncDiDlService.java create mode 100644 src/main/java/com/glxp/api/task/AsyncDiDlTask.java diff --git a/src/main/java/com/glxp/api/constant/AsyncDiDlHelper.java b/src/main/java/com/glxp/api/constant/AsyncDiDlHelper.java index f59ee3b8..411714e8 100644 --- a/src/main/java/com/glxp/api/constant/AsyncDiDlHelper.java +++ b/src/main/java/com/glxp/api/constant/AsyncDiDlHelper.java @@ -35,8 +35,6 @@ public class AsyncDiDlHelper { BaseResponse> udiDlDeviceResponse = JSONObject.parseObject(response, new TypeReference>>() { }); - - List udiInfoEntities = udiDlDeviceResponse.getData(); return udiInfoEntities; } catch (Exception e) { diff --git a/src/main/java/com/glxp/api/controller/auth/InvWarehouseController.java b/src/main/java/com/glxp/api/controller/auth/InvWarehouseController.java index aa5ee0b4..e8a5614d 100644 --- a/src/main/java/com/glxp/api/controller/auth/InvWarehouseController.java +++ b/src/main/java/com/glxp/api/controller/auth/InvWarehouseController.java @@ -84,7 +84,7 @@ public class InvWarehouseController extends BaseController { if (authAdmin.getCustomerId().equals("110")) { filterInvWarehouseRequest.setUserId(authAdmin.getId()); } else { - if(filterInvWarehouseRequest.getType()==1){ + if (filterInvWarehouseRequest.getType() == 1) { filterInvWarehouseRequest.setSpUse(true); } filterInvWarehouseRequest.setUserId(null); @@ -123,6 +123,7 @@ public class InvWarehouseController extends BaseController { * * @return */ + @AuthRuleAnnotation("") @GetMapping("spms/inv/warehouse/findInvListByUser") public BaseResponse findInvListByUser(FilterInvWarehouseRequest filterInvWarehouseRequest) { Long userId = getUserId(); @@ -186,7 +187,7 @@ public class InvWarehouseController extends BaseController { @AuthRuleAnnotation("") @PostMapping("/spms/sub/inv/warehouse/save") @Log(title = "用户管理", businessType = BusinessType.INSERT) - public BaseResponse save(@RequestBody InvWarehouseEntity invWarehouseEntity, + public BaseResponse save(@RequestBody InvWarehouseEntity invWarehouseEntity, BindingResult bindingResult) { if (bindingResult.hasErrors()) { @@ -246,17 +247,16 @@ public class InvWarehouseController extends BaseController { boolean b = invWarehouseService.updateInvSubWarehouse(invWarehouseEntity); //如果要是一级仓库就吧全部子集都刷成一样的寄售仓库 - if(StrUtil.isBlank(invWarehouseEntity.getParentCode())){ - List invWarehouseEntityList=invWarehouseService.selectLowWarehouseAll(invWarehouseEntity.getCode()); + if (StrUtil.isBlank(invWarehouseEntity.getParentCode())) { + List invWarehouseEntityList = invWarehouseService.selectLowWarehouseAll(invWarehouseEntity.getCode()); for (InvWarehouseEntity obj : invWarehouseEntityList) { - obj.setAdvanceType(invWarehouseEntity.getAdvanceType()); - obj.setUpdateTime(new Date()); - invWarehouseService.updateInvSubWarehouse(obj); + obj.setAdvanceType(invWarehouseEntity.getAdvanceType()); + obj.setUpdateTime(new Date()); + invWarehouseService.updateInvSubWarehouse(obj); } } - //更新部门信息 DeptEntity pEntity = deptService.selectByCode(invWarehouseEntity.getParentId()); pEntity.setUpdateTime(new Date()); @@ -317,7 +317,7 @@ public class InvWarehouseController extends BaseController { // 判断此分库中是否还有库存 InvWarehouseEntity byWareId = invWarehouseService.getByWareId(deleteRequest.getId()); List byWarePcode = invWarehouseService.getByWarePcode(byWareId.getCode()); - if( byWarePcode.size()>0){ + if (byWarePcode.size() > 0) { return ResultVOUtils.error(500, "此仓库下存在仓库无法删除!"); } @@ -445,9 +445,7 @@ public class InvWarehouseController extends BaseController { //1.获取所有单据类型 FilterBussinessTypeRequest filterBussinessTypeRequest = new FilterBussinessTypeRequest(); filterBussinessTypeRequest.setEnable(true); - if (invWarehouseEntity.getAdvanceType() == 2) { - filterBussinessTypeRequest.setAdvanceType(2); - } + filterBussinessTypeRequest.setActionType(invWarehouseEntity.getAdvanceType()); List basicBussinessTypeEntities = basicBussinessTypeService.findList(filterBussinessTypeRequest); //获取仓库关联单据类型 @@ -456,6 +454,7 @@ public class InvWarehouseController extends BaseController { List warehouseBussniessTypeList = warehouseBussinessTypeService.getWarehouseBussniessTypeList(filterInvLinkDataRequest); basicBussinessTypeEntities.forEach(basicBussinessTypeEntity -> + { for (WarehouseBussinessTypeEntity warehouseBussinessTypeEntity : warehouseBussniessTypeList) { if (warehouseBussinessTypeEntity.getAction().equals(basicBussinessTypeEntity.getAction())) { diff --git a/src/main/java/com/glxp/api/controller/basic/BasicBussinessTypeController.java b/src/main/java/com/glxp/api/controller/basic/BasicBussinessTypeController.java index 280f96b5..5f4978ad 100644 --- a/src/main/java/com/glxp/api/controller/basic/BasicBussinessTypeController.java +++ b/src/main/java/com/glxp/api/controller/basic/BasicBussinessTypeController.java @@ -448,7 +448,7 @@ public class BasicBussinessTypeController extends BaseController { public BaseResponse selectList() { FilterBussinessTypeRequest bussinessTypeFilterRequest = new FilterBussinessTypeRequest(); - bussinessTypeFilterRequest.setAction("2"); + bussinessTypeFilterRequest.setActionType(2); bussinessTypeFilterRequest.setMainAction("WareHouseOut"); bussinessTypeFilterRequest.setCorpType(2); List bussinessTypeEntities = basicBussinessTypeService.findList(bussinessTypeFilterRequest); diff --git a/src/main/java/com/glxp/api/controller/basic/UdiSyncController.java b/src/main/java/com/glxp/api/controller/basic/UdiSyncController.java index 1e71ba03..6bca61bb 100644 --- a/src/main/java/com/glxp/api/controller/basic/UdiSyncController.java +++ b/src/main/java/com/glxp/api/controller/basic/UdiSyncController.java @@ -38,6 +38,9 @@ public class UdiSyncController { AsyncDiDlHelper asyncDiDlHelper; @Resource ProductInfoService productInfoService; + @Resource + UdiCompanyService udiCompanyService; + //获取同步库UDI信息 @AuthRuleAnnotation("") @@ -207,4 +210,22 @@ public class UdiSyncController { } -} \ No newline at end of file + //出入库同步下载 + @GetMapping("udidl/udiwms/syncUdi") + public BaseResponse syncUdi(ProductInfoFilterRequest productInfoFilterRequest) { + + List productInfoEntityList = productInfoService.syncDlUdi(productInfoFilterRequest); + return ResultVOUtils.success(productInfoEntityList); + + } + + + //出入库同步下载 + @GetMapping("udidl/udiwms/syncCompany") + public BaseResponse syncCompany(UdiCompanyRequest udiCompanyRequest) { + + List udiCompanyEntities = udiCompanyService.syncDlCompany(udiCompanyRequest); + return ResultVOUtils.success(udiCompanyEntities); + + } +} diff --git a/src/main/java/com/glxp/api/controller/inv/InvPreProductController.java b/src/main/java/com/glxp/api/controller/inv/InvPreProductController.java index 25e449e4..034bfa12 100644 --- a/src/main/java/com/glxp/api/controller/inv/InvPreProductController.java +++ b/src/main/java/com/glxp/api/controller/inv/InvPreProductController.java @@ -9,6 +9,7 @@ import com.glxp.api.common.enums.ResultEnum; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.constant.BusinessType; +import com.glxp.api.controller.BaseController; import com.glxp.api.entity.inv.InvPreProductDetailEntity; import com.glxp.api.entity.inv.InvPreProductEntity; import com.glxp.api.req.inv.FilterInvPreProductDetailRequest; @@ -40,7 +41,7 @@ import java.util.List; */ @Slf4j @RestController -public class InvPreProductController { +public class InvPreProductController extends BaseController { @Resource private InvPreProductService invPreProductService; @@ -70,6 +71,12 @@ public class InvPreProductController { filterInvPreProductRequest.setInvCodes(invCodes); } } + if (isHosUser()) { + + } else { + filterInvPreProductRequest.setSupId(getCustomerId()); + } + List list = invPreProductService.filterList(filterInvPreProductRequest); PageInfo pageInfo = new PageInfo<>(list); InvPreProductPageResponse pageResponse = new InvPreProductPageResponse<>(); diff --git a/src/main/java/com/glxp/api/controller/inv/InvPreinProductController.java b/src/main/java/com/glxp/api/controller/inv/InvPreinProductController.java index a27de1ac..e0b713c4 100644 --- a/src/main/java/com/glxp/api/controller/inv/InvPreinProductController.java +++ b/src/main/java/com/glxp/api/controller/inv/InvPreinProductController.java @@ -6,6 +6,7 @@ import cn.hutool.core.util.StrUtil; import com.github.pagehelper.PageInfo; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.controller.BaseController; import com.glxp.api.entity.inv.InvPreInProductDetailEntity; import com.glxp.api.entity.inv.InvPreProductDetailEntity; import com.glxp.api.req.inv.FilterInvPreProductDetailRequest; @@ -35,7 +36,7 @@ import java.util.List; */ @Slf4j @RestController -public class InvPreinProductController { +public class InvPreinProductController extends BaseController { @Resource private InvPreinProductDetailService invPreinProductDetailService; @Resource @@ -64,6 +65,13 @@ public class InvPreinProductController { filterInvPreinProductRequest.setInvCodes(invCodes); } } + if (isHosUser()) { + + } else { + filterInvPreinProductRequest.setSupId(getCustomerId()); + } + + List list = invPreinProductService.filterList(filterInvPreinProductRequest); PageInfo pageInfo = new PageInfo<>(list); InvPreProductPageResponse pageResponse = new InvPreProductPageResponse<>(); diff --git a/src/main/java/com/glxp/api/entity/auth/InvWarehouseEntity.java b/src/main/java/com/glxp/api/entity/auth/InvWarehouseEntity.java index 8a774c50..fef81eb9 100644 --- a/src/main/java/com/glxp/api/entity/auth/InvWarehouseEntity.java +++ b/src/main/java/com/glxp/api/entity/auth/InvWarehouseEntity.java @@ -83,7 +83,7 @@ public class InvWarehouseEntity { private String parentCode; /** - * 是否寄售 + * 是否寄售 1:入账库,2:预验收库,3:寄售库 */ @TableField(value = "advanceType") private Integer advanceType; diff --git a/src/main/java/com/glxp/api/req/inout/FilterOrderRequest.java b/src/main/java/com/glxp/api/req/inout/FilterOrderRequest.java index 802f138d..8a40a0d6 100644 --- a/src/main/java/com/glxp/api/req/inout/FilterOrderRequest.java +++ b/src/main/java/com/glxp/api/req/inout/FilterOrderRequest.java @@ -154,6 +154,9 @@ public class FilterOrderRequest extends ListPageRequest { private Integer orderType; private Integer syncStatus; + //单据来源: 1:手工单;2:自动单 + private Integer sourceLocalType; + /** * 单据类型集合 */ @@ -169,6 +172,8 @@ public class FilterOrderRequest extends ListPageRequest { */ private List dealStatuses; + private List sourceTypes; + private List orderIds; diff --git a/src/main/java/com/glxp/api/service/auth/impl/DeptServiceImpl.java b/src/main/java/com/glxp/api/service/auth/impl/DeptServiceImpl.java index f67f0c63..c148fa96 100644 --- a/src/main/java/com/glxp/api/service/auth/impl/DeptServiceImpl.java +++ b/src/main/java/com/glxp/api/service/auth/impl/DeptServiceImpl.java @@ -31,7 +31,6 @@ public class DeptServiceImpl implements DeptService { public DeptEntity findDefault(Integer advaceType, Boolean isDefault) { FilterInvWarehouseRequest filterInvWarehouseRequest = new FilterInvWarehouseRequest(); filterInvWarehouseRequest.setIsDefault(isDefault); - filterInvWarehouseRequest.setAdvanceType(advaceType); List invWarehouseEntities = deptDao.filterInvWarehouse(filterInvWarehouseRequest); if (invWarehouseEntities != null && invWarehouseEntities.size() > 0) return invWarehouseEntities.get(0); diff --git a/src/main/java/com/glxp/api/task/AsyncCompanyDlHelper.java b/src/main/java/com/glxp/api/task/AsyncCompanyDlHelper.java new file mode 100644 index 00000000..20c7d499 --- /dev/null +++ b/src/main/java/com/glxp/api/task/AsyncCompanyDlHelper.java @@ -0,0 +1,49 @@ +package com.glxp.api.task; + +import com.glxp.api.constant.AsyncDiDlHelper; +import com.glxp.api.entity.basic.UdiCompanyEntity; +import com.glxp.api.service.basic.UdiCompanyService; +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 AsyncCompanyDlHelper { + @Resource + UdiCompanyService udiCompanyService; + @Resource + AsyncDiDlHelper asyncDiDlHelper; + @Value("${UDI_SERVER_URL}") + private String udiUrl; + + private static final Logger logger = LoggerFactory.getLogger(AsyncCompanyDlHelper.class); + + + @Async + public void asyncDiByTime(String updateTime) { + int page = 1; + int limit = 300; + while (true) { + logger.info("更新时间:" + updateTime + "----" + page + "----" + limit); + List udiCompanyEntities = asyncDiDlHelper.dlCompanyByTime(udiUrl, page, limit, updateTime); + if (udiCompanyEntities != null && udiCompanyEntities.size() > 0) { + udiCompanyService.insertUdiCompanys(udiCompanyEntities); + if (udiCompanyEntities.size() < limit) { + break; + } else { + page++; + } + } else { + break; + } + } + logger.info("更新时间:" + updateTime + "----" + "下载结束"); + } + + +} diff --git a/src/main/java/com/glxp/api/task/AsyncCompanyDlTask.java b/src/main/java/com/glxp/api/task/AsyncCompanyDlTask.java new file mode 100644 index 00000000..93d217a6 --- /dev/null +++ b/src/main/java/com/glxp/api/task/AsyncCompanyDlTask.java @@ -0,0 +1,60 @@ +package com.glxp.api.task; + +import com.glxp.api.dao.schedule.ScheduledDao; +import com.glxp.api.entity.system.ScheduledEntity; +import com.glxp.api.req.system.ScheduledRequest; +import com.glxp.api.util.DateUtil; +import com.glxp.api.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 AsyncCompanyDlTask implements SchedulingConfigurer { + + final Logger logger = LoggerFactory.getLogger(AsyncDiDlTask.class); + @Resource + AsyncCompanyDlHelper udiCompanyTask; + @Resource + RedisUtil redisUtil; + + @Resource + private ScheduledDao scheduledDao; + + @Override + public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) { + scheduledTaskRegistrar.addTriggerTask(() -> process(), + triggerContext -> { + ScheduledRequest scheduledRequest = new ScheduledRequest(); + scheduledRequest.setCronName("syncCompany"); + ScheduledEntity scheduledEntity = scheduledDao.findScheduled(scheduledRequest); + if (scheduledEntity == null) { + return null; + } + String cron = scheduledEntity.getCron(); + if (cron.isEmpty()) { + logger.error("cron is null"); + } + return new CronTrigger(cron).nextExecutionTime(triggerContext); + }); + } + + private void process() { + + String lastUpDiTime = (String) redisUtil.get("lastUpCompanyTime"); + if (lastUpDiTime == null) { + lastUpDiTime = DateUtil.getLastDayFormat(-10); + } + udiCompanyTask.asyncDiByTime(lastUpDiTime); + redisUtil.set("lastUpCompanyTime", DateUtil.formatDate(new Date())); + } + +} diff --git a/src/main/java/com/glxp/api/task/AsyncDiDlService.java b/src/main/java/com/glxp/api/task/AsyncDiDlService.java new file mode 100644 index 00000000..cf917322 --- /dev/null +++ b/src/main/java/com/glxp/api/task/AsyncDiDlService.java @@ -0,0 +1,52 @@ +package com.glxp.api.task; + +import com.alibaba.fastjson.JSONArray; +import com.glxp.api.constant.AsyncDiDlHelper; +import com.glxp.api.entity.basic.ProductInfoEntity; +import com.glxp.api.service.basic.ProductInfoService; +import com.glxp.api.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 + 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 + "----" + "下载结束"); + } + + +} diff --git a/src/main/java/com/glxp/api/task/AsyncDiDlTask.java b/src/main/java/com/glxp/api/task/AsyncDiDlTask.java new file mode 100644 index 00000000..ba427987 --- /dev/null +++ b/src/main/java/com/glxp/api/task/AsyncDiDlTask.java @@ -0,0 +1,63 @@ +package com.glxp.api.task; + +import com.glxp.api.dao.schedule.ScheduledDao; +import com.glxp.api.entity.system.ScheduledEntity; +import com.glxp.api.req.system.ScheduledRequest; +import com.glxp.api.util.DateUtil; +import com.glxp.api.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/src/main/java/com/glxp/api/task/AsyncHeartTask.java b/src/main/java/com/glxp/api/task/AsyncHeartTask.java index e5efb909..a8a87613 100644 --- a/src/main/java/com/glxp/api/task/AsyncHeartTask.java +++ b/src/main/java/com/glxp/api/task/AsyncHeartTask.java @@ -54,8 +54,6 @@ public class AsyncHeartTask implements SchedulingConfigurer { SyncDataSetResponse syncDataSetEntity = syncDataSetService.selectSet(); if (syncDataSetEntity.isDownstreamEnable()) { - - if (syncDataSetEntity.getSyncTime() != null) { long timeInterval = syncDataSetEntity.getSyncTime() * 60 * 1000; long curTime = System.currentTimeMillis(); diff --git a/src/main/java/com/glxp/api/util/DateUtil.java b/src/main/java/com/glxp/api/util/DateUtil.java index 3fbc116b..18233bb0 100644 --- a/src/main/java/com/glxp/api/util/DateUtil.java +++ b/src/main/java/com/glxp/api/util/DateUtil.java @@ -624,7 +624,7 @@ public class DateUtil extends DateUtils { /** * 向后推迟时间 * - * @param time 时间 + * @param date 时间 * @param hour 小时 * @return */ @@ -639,4 +639,13 @@ public class DateUtil extends DateUtils { } return null; } -} \ No newline at end of file + + 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; + } +} diff --git a/src/main/java/com/glxp/api/util/udi/UdiCalCountUtil.java b/src/main/java/com/glxp/api/util/udi/UdiCalCountUtil.java index dc9c7b81..6af1ec10 100644 --- a/src/main/java/com/glxp/api/util/udi/UdiCalCountUtil.java +++ b/src/main/java/com/glxp/api/util/udi/UdiCalCountUtil.java @@ -21,7 +21,7 @@ public class UdiCalCountUtil { public int getActCount(UdiRelevanceResponse udiRelevanceResponse) { int actCount; - if (!udiRelevanceResponse.getUseDy() && udiRelevanceResponse.getDiType() != 2) { + if (!udiRelevanceResponse.getUseDy() && (udiRelevanceResponse.getDiType() == null || udiRelevanceResponse.getDiType() != 2)) { if (udiRelevanceResponse.getBhzxxsbzsl() == 0) { actCount = udiRelevanceResponse.getZxxsbzbhsydysl(); } else { diff --git a/src/main/resources/schemas/schema_v2.1.sql b/src/main/resources/schemas/schema_v2.1.sql index 224bae97..89f6faa3 100644 --- a/src/main/resources/schemas/schema_v2.1.sql +++ b/src/main/resources/schemas/schema_v2.1.sql @@ -195,6 +195,13 @@ CALL Pro_Temp_ColumnWork('sys_pdf_template_relevance_statemen', 'updateTime', 'd CALL Pro_Temp_ColumnWork('basic_bussiness_type', 'advancePreIn', 'tinyint', 1); +INSERT ignore INTO `sys_scheduled`(`id`, `cronName`, `cron`, `customerId`, `remark`) +VALUES (211, 'syncDi', '0 24 3 * * ?', NULL, NULL); +INSERT ignore INTO `sys_scheduled`(`id`, `cronName`, `cron`, `customerId`, `remark`) +VALUES (212, 'syncCompany', '0 0 3 * * 1', NULL, NULL); + + + # CALL Pro_Temp_ColumnWork('sup_cert_set', 'foreign', 'tinyint', 3); # CALL Pro_Temp_ColumnWork('sup_cert_set', 'needForeign', 'tinyint', 1); From 1eea12e8a78806e2a4e032d19fdbdb8ee67a171f Mon Sep 17 00:00:00 2001 From: anthonywj Date: Wed, 19 Apr 2023 18:32:18 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=A4=87=E4=BB=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/sync/SpsSyncDownloadController.java | 1 + .../resources/mybatis/mapper/inout/IoOrderDao.xml | 12 +++++------- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/glxp/api/controller/sync/SpsSyncDownloadController.java b/src/main/java/com/glxp/api/controller/sync/SpsSyncDownloadController.java index a52bf1e7..bd8f0bd5 100644 --- a/src/main/java/com/glxp/api/controller/sync/SpsSyncDownloadController.java +++ b/src/main/java/com/glxp/api/controller/sync/SpsSyncDownloadController.java @@ -351,6 +351,7 @@ public class SpsSyncDownloadController { spsSyncOtherDataResponse.setTaskId(one.getId()); spsSyncOtherDataResponse.setIoCodeLostList((List) map.get(IoCodeLostEntity.class.getSimpleName())); spsSyncOtherDataResponse.setIoCodeRelList((List) map.get(IoCodeRelEntity.class.getSimpleName())); + } catch (FileNotFoundException e) { throw new RuntimeException("系统异常,未找到对应数据文件"); } catch (IOException e) { diff --git a/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml b/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml index 9ea0f9f9..e5e7f347 100644 --- a/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml +++ b/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml @@ -99,7 +99,7 @@ - + AND ((`action` in #{item} @@ -133,19 +133,18 @@ - - + and ( - `action` in + `action` in #{item} and status = 7 - ) + ) - + AND (`action` in @@ -154,7 +153,6 @@ and status = 10) - order by createTime desc