From 02e524b56fdbf3c009806976fea77c9e7a49316a Mon Sep 17 00:00:00 2001 From: zane Date: Mon, 9 Sep 2024 16:14:23 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=95=E6=8D=AE=E4=B8=8B=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../auth/SysWorkplaceController.java | 2 +- .../collect/down/ThrOrderDownload.java | 70 ++++++++++++------- 2 files changed, 45 insertions(+), 27 deletions(-) diff --git a/src/main/java/com/glxp/api/controller/auth/SysWorkplaceController.java b/src/main/java/com/glxp/api/controller/auth/SysWorkplaceController.java index 1003e9f28..84a6024b0 100644 --- a/src/main/java/com/glxp/api/controller/auth/SysWorkplaceController.java +++ b/src/main/java/com/glxp/api/controller/auth/SysWorkplaceController.java @@ -155,7 +155,7 @@ public class SysWorkplaceController extends BaseController { return ResultVOUtils.error("当前工位已有员工绑定,请解绑之后在删除"); } WorkBindBusTypeRequest workBindBusTypeRequest = new WorkBindBusTypeRequest(); - workBindBusTypeRequest.setWorkplaceCode(String.valueOf(sysWorkplace.getWorkplaceId())); + workBindBusTypeRequest.setWorkplaceCode(sysWorkplace.getWorkplaceId()); List sysWorkplaceDocumentResponses = sysWorkplaceDocumentService.filterList(workBindBusTypeRequest); if (sysWorkplaceDocumentResponses.size() > 0) { return ResultVOUtils.error("当前工位已绑定单据,请解绑之后在删除"); diff --git a/src/main/java/com/glxp/api/service/collect/down/ThrOrderDownload.java b/src/main/java/com/glxp/api/service/collect/down/ThrOrderDownload.java index 2ec727114..ac0442aa5 100644 --- a/src/main/java/com/glxp/api/service/collect/down/ThrOrderDownload.java +++ b/src/main/java/com/glxp/api/service/collect/down/ThrOrderDownload.java @@ -19,6 +19,7 @@ import com.glxp.api.req.thrsys.FilterThrOrderRequest; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.thrsys.ThrOrderResponse; import com.glxp.api.service.collect.IoCollectOrderService; +import com.glxp.api.util.IntUtil; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -50,42 +51,59 @@ public class ThrOrderDownload implements IDownload { if (CollUtil.isNotEmpty(thrOrderEntities)) { return this.importThrOrder(thrOrderEntities, collectOrderRequest); } else { - //三方拉取 + int page = 1; + int limit = 100; FilterThrOrderRequest filterThrOrderRequest = new FilterThrOrderRequest(); - filterThrOrderRequest.setPage(1); - filterThrOrderRequest.setLimit(100); + filterThrOrderRequest.setLimit(limit); filterThrOrderRequest.setBillNo(collectOrderRequest.getBillNo()); filterThrOrderRequest.setThirdSys("thirdId"); filterThrOrderRequest.setBusType(collectOrderRequest.getBusType()); filterThrOrderRequest.setWorkPlaceCode(collectOrderRequest.getWorkPlaceCode()); filterThrOrderRequest.setFromType(collectOrderRequest.getFromType()); - BaseResponse> baseResponse = erpBasicClient.getThrOrders(filterThrOrderRequest); - if (baseResponse.getCode() == 20000) { - List list = baseResponse.getData().getList(); - if (CollUtil.isNotEmpty(list)) { - list.forEach(item -> { - ThrOrderEntity thrOrderEntity = new ThrOrderEntity(); - BeanUtil.copyProperties(item, thrOrderEntity); - thrOrderEntity.setCreateTime(new Date()); - thrOrderEntity.setUpdateTime(new Date()); - List detailList = item.getDetailList(); - if (CollUtil.isNotEmpty(detailList)) { - thrOrderDetailDao.delete(new LambdaQueryWrapper().eq(ThrOrderDetailEntity::getOrderIdFk, item.getBillNo())); - for (ThrOrderDetailEntity detail : detailList) { - detail.setCreateTime(thrOrderEntity.getCreateTime()); - detail.setUpdateTime(thrOrderEntity.getUpdateTime()); - thrOrderDetailDao.insert(detail); + while (true){ + filterThrOrderRequest.setPage(page); + BaseResponse> baseResponse = erpBasicClient.getThrOrders(filterThrOrderRequest); + if (baseResponse.getCode() == 20000) { + List list = baseResponse.getData().getList(); + if (CollUtil.isNotEmpty(list)) { + list.forEach(item -> { + ThrOrderEntity thrOrderEntity = new ThrOrderEntity(); + ThrOrderEntity old = thrOrderDao.selectOne(new LambdaQueryWrapper().eq(ThrOrderEntity::getBillNo, item.getBillNo()).last("limit 1")); + BeanUtil.copyProperties(item, thrOrderEntity); + if(old == null){ + //新增 + thrOrderEntity.setCreateTime(new Date()); + thrOrderEntity.setUpdateTime(new Date()); + }else{ + //更新 + thrOrderEntity.setId(old.getId()); + thrOrderEntity.setUpdateTime(new Date()); } - } - thrOrderDao.insertOrUpdate(thrOrderEntity); - }); - //再次获取 - thrOrderEntities = thrOrderDao.selectList(w); - return this.importThrOrder(thrOrderEntities, collectOrderRequest); + List detailList = item.getDetailList(); + if (CollUtil.isNotEmpty(detailList)) { + thrOrderDetailDao.delete(new LambdaQueryWrapper().eq(ThrOrderDetailEntity::getOrderIdFk, item.getBillNo())); + for (ThrOrderDetailEntity detail : detailList) { + detail.setCreateTime(thrOrderEntity.getCreateTime()); + detail.setUpdateTime(thrOrderEntity.getUpdateTime()); + thrOrderDetailDao.insert(detail); + } + } + thrOrderDao.insertOrUpdate(thrOrderEntity); + }); + } + if ((list.size() >= limit && !baseResponse.getData().getTotal().equals(-666)) || IntUtil.value(baseResponse.getData().getTotal()) == -555) { + page++; + } else { + break; + } + }else { + return ResultVOUtils.error(500, "下载第三方系统产品信息异常"); } } + //再次获取 + thrOrderEntities = thrOrderDao.selectList(w); + return this.importThrOrder(thrOrderEntities, collectOrderRequest); } - return ResultVOUtils.error("下载失败"); }