From e571580a70e29b5a4b5e13978cadf5fe82556788 Mon Sep 17 00:00:00 2001 From: chenhc <2369838784@qq.com> Date: Thu, 12 Sep 2024 14:20:50 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../collect/IoCollectOrderController.java | 8 +- .../collect/IoCollectOriginController.java | 26 +++++- .../api/req/collect/CollectOrderRequest.java | 12 +++ .../api/req/thrsys/FilterThrOrderRequest.java | 3 + .../collect/IoCollectOrderService.java | 13 ++- .../collect/down/ThrOrderDownload.java | 2 + .../service/collect/down/YPCF002Download.java | 2 + .../task/AsyncIoCollectOrderDownloadTask.java | 79 +++++++++++++++++++ .../mapper/collect/IoCollectOrderMapper.xml | 3 + .../collect/IoCollectOrderOriginMapper.xml | 3 + 10 files changed, 147 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/glxp/api/task/AsyncIoCollectOrderDownloadTask.java diff --git a/src/main/java/com/glxp/api/controller/collect/IoCollectOrderController.java b/src/main/java/com/glxp/api/controller/collect/IoCollectOrderController.java index 32706ec74..0509ed45d 100644 --- a/src/main/java/com/glxp/api/controller/collect/IoCollectOrderController.java +++ b/src/main/java/com/glxp/api/controller/collect/IoCollectOrderController.java @@ -31,6 +31,7 @@ import com.glxp.api.service.collect.*; import com.glxp.api.util.IntUtil; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -55,6 +56,8 @@ public class IoCollectOrderController extends BaseController { @Resource IoCollectOrderBizService collectOrderBizService; + @Resource + IoCollectOrderBizBackupService collectOrderBizBackupService; @Resource private BasicCollectUserService basicCollectUserService; @@ -233,8 +236,8 @@ public class IoCollectOrderController extends BaseController { * @return */ @PostMapping("/udiwms/basic/collect/order/biz/save") - public BaseResponse saveOrderBiz(@RequestBody IoCollectOrderBiz collectOrderBiz) { - collectOrderBizService.updateById(collectOrderBiz); + public BaseResponse saveOrderBiz(@RequestBody IoCollectOrderBizBackup collectOrderBiz) { + collectOrderBizBackupService.updateById(collectOrderBiz); return ResultVOUtils.success("更新成功"); } @@ -284,6 +287,7 @@ public class IoCollectOrderController extends BaseController { * @return */ @PostMapping("/udiwms/basic/collect/order/finish") + @Transactional(rollbackFor = Exception.class) public BaseResponse saveFinishOrder(@RequestBody CollectOrderRequest collectOrderRequest) { if (!IntUtil.value(collectOrderRequest.getConfirmFinish())) { diff --git a/src/main/java/com/glxp/api/controller/collect/IoCollectOriginController.java b/src/main/java/com/glxp/api/controller/collect/IoCollectOriginController.java index 613e4b1ed..bb1ac274b 100644 --- a/src/main/java/com/glxp/api/controller/collect/IoCollectOriginController.java +++ b/src/main/java/com/glxp/api/controller/collect/IoCollectOriginController.java @@ -1,20 +1,25 @@ package com.glxp.api.controller.collect; +import cn.hutool.core.collection.CollUtil; 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.dao.basic.SysWorkplaceDocumentDao; import com.glxp.api.entity.collect.IoCollectOrder; import com.glxp.api.entity.collect.IoCollectOrderOrigin; import com.glxp.api.req.basic.BasicCollectUserRequest; +import com.glxp.api.req.basic.WorkBindBusTypeRequest; import com.glxp.api.req.collect.CollectOrderBizRequest; import com.glxp.api.req.collect.CollectOrderRequest; import com.glxp.api.res.PageSimpleResponse; +import com.glxp.api.res.basic.SysWorkplaceDocumentResponse; import com.glxp.api.res.basic.UserWorkResponse; import com.glxp.api.res.collect.CollectOrderBizResponse; import com.glxp.api.res.collect.IoCollectOrderResponse; import com.glxp.api.service.basic.BasicCollectUserService; +import com.glxp.api.service.collect.DownloadFactory; import com.glxp.api.service.collect.IoCollectOrderBizOriginService; import com.glxp.api.service.collect.IoCollectOrderOriginService; import com.glxp.api.service.collect.IoCollectOriginService; @@ -42,10 +47,29 @@ public class IoCollectOriginController extends BaseController { IoCollectOriginService collectOriginService; @Resource IoCollectOrderBizOriginService collectOrderBizOriginService; + @Resource + SysWorkplaceDocumentDao sysWorkplaceDocumentDao; + @PostMapping("/udiwms/basic/collect/origin/order/download") public BaseResponse downloadOrder(@RequestBody CollectOrderRequest collectOrderRequest) { - return collectOriginService.downloadOrderV2(collectOrderRequest); + Long workPlaceCode = collectOrderRequest.getWorkPlaceCode(); + if (workPlaceCode == null) { + WorkBindBusTypeRequest workBindBusTypeRequest = new WorkBindBusTypeRequest(); + List sysWorkplaceDocumentResponses = sysWorkplaceDocumentDao.filterList(workBindBusTypeRequest); + if (CollUtil.isNotEmpty(sysWorkplaceDocumentResponses)) { + for (SysWorkplaceDocumentResponse sysWorkplaceDocumentResponse : sysWorkplaceDocumentResponses) { + Long workplaceCode = sysWorkplaceDocumentResponse.getWorkplaceCode(); + String documentTypeCode = sysWorkplaceDocumentResponse.getDocumentTypeCode(); + collectOrderRequest.setBusType(documentTypeCode); + collectOrderRequest.setWorkPlaceCode(workplaceCode); + collectOriginService.downloadOrderV2(collectOrderRequest); + } + } + }else { + return collectOriginService.downloadOrderV2(collectOrderRequest); + } + return ResultVOUtils.success("下载成功"); } diff --git a/src/main/java/com/glxp/api/req/collect/CollectOrderRequest.java b/src/main/java/com/glxp/api/req/collect/CollectOrderRequest.java index 297630090..719fb00df 100644 --- a/src/main/java/com/glxp/api/req/collect/CollectOrderRequest.java +++ b/src/main/java/com/glxp/api/req/collect/CollectOrderRequest.java @@ -1,6 +1,8 @@ package com.glxp.api.req.collect; +import com.baomidou.mybatisplus.annotation.TableField; import com.glxp.api.util.page.ListPageRequest; +import io.swagger.annotations.ApiModelProperty; import io.swagger.models.auth.In; import lombok.Data; @@ -127,4 +129,14 @@ public class CollectOrderRequest extends ListPageRequest { */ private String updateError; + /** + * 往来信息名称 + */ + @TableField(value = "fromCorpName") + @ApiModelProperty(value = "往来信息名称") + private String fromCorpName; + + private String startTime; + private String endTime; + } diff --git a/src/main/java/com/glxp/api/req/thrsys/FilterThrOrderRequest.java b/src/main/java/com/glxp/api/req/thrsys/FilterThrOrderRequest.java index b76faf883..3c11eea79 100644 --- a/src/main/java/com/glxp/api/req/thrsys/FilterThrOrderRequest.java +++ b/src/main/java/com/glxp/api/req/thrsys/FilterThrOrderRequest.java @@ -43,4 +43,7 @@ public class FilterThrOrderRequest extends ListPageRequest { private String fromType; private String busType; private List erpOrderResponses; + + private String startTime; + private String endTime; } diff --git a/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java b/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java index d6c6001c3..4f4231521 100644 --- a/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java +++ b/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java @@ -10,6 +10,7 @@ import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.TypeReference; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.PageHelper; @@ -623,12 +624,17 @@ public class IoCollectOrderService extends ServiceImpl { //插入到码表 collectCodeService.insertCodesByBill(collectOrderRequest.getBillNo()); @@ -636,6 +642,11 @@ public class IoCollectOrderService extends ServiceImpl().eq(IoCollectOrder::getBillNo,billNo)); + collectOrderBizService.remove(new LambdaUpdateWrapper().eq(IoCollectOrderBiz::getOrderIdFk,billNo)); + } @Resource 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 991acc240..dbe4ac45d 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 @@ -49,6 +49,8 @@ public class ThrOrderDownload implements IDownload { filterThrOrderRequest.setBusType(collectOrderRequest.getBusType()); filterThrOrderRequest.setWorkPlaceCode(collectOrderRequest.getWorkPlaceCode()); filterThrOrderRequest.setFromType(collectOrderRequest.getFromType()); + filterThrOrderRequest.setStartTime(collectOrderRequest.getStartTime()); + filterThrOrderRequest.setEndTime(collectOrderRequest.getEndTime()); while (true) { filterThrOrderRequest.setPage(page); BaseResponse> baseResponse = erpBasicClient.getThrOrders(filterThrOrderRequest); diff --git a/src/main/java/com/glxp/api/service/collect/down/YPCF002Download.java b/src/main/java/com/glxp/api/service/collect/down/YPCF002Download.java index cc12d6182..ae55a042f 100644 --- a/src/main/java/com/glxp/api/service/collect/down/YPCF002Download.java +++ b/src/main/java/com/glxp/api/service/collect/down/YPCF002Download.java @@ -31,6 +31,8 @@ public class YPCF002Download implements IDownload { getSickPrescribeRequest.setThirdSys("thirdId"); getSickPrescribeRequest.setWorkPlaceCode(collectOrderRequest.getWorkPlaceCode()); getSickPrescribeRequest.setFromType(collectOrderRequest.getFromType()); + getSickPrescribeRequest.setStartTime(collectOrderRequest.getStartTime()); + getSickPrescribeRequest.setEndTime(collectOrderRequest.getEndTime()); while (true) { getSickPrescribeRequest.setPage(page); BaseResponse> baseResponse = erpBasicClient.getPrescribeV2(getSickPrescribeRequest); diff --git a/src/main/java/com/glxp/api/task/AsyncIoCollectOrderDownloadTask.java b/src/main/java/com/glxp/api/task/AsyncIoCollectOrderDownloadTask.java new file mode 100644 index 000000000..02c3da682 --- /dev/null +++ b/src/main/java/com/glxp/api/task/AsyncIoCollectOrderDownloadTask.java @@ -0,0 +1,79 @@ +package com.glxp.api.task; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.thread.ThreadUtil; +import com.glxp.api.dao.basic.SysWorkplaceDocumentDao; +import com.glxp.api.dao.schedule.ScheduledDao; +import com.glxp.api.entity.inv.InvProductRationEntity; +import com.glxp.api.entity.system.ScheduledEntity; +import com.glxp.api.req.basic.WorkBindBusTypeRequest; +import com.glxp.api.req.collect.CollectOrderRequest; +import com.glxp.api.req.system.ScheduledRequest; +import com.glxp.api.res.basic.SysWorkplaceDocumentResponse; +import com.glxp.api.service.collect.IoCollectOriginService; +import com.glxp.api.service.inv.InvProductRationService; +import com.glxp.api.util.MsDateUtil; +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.List; +import java.util.Map; +import java.util.stream.Collectors; + + +@Component +@EnableScheduling +public class AsyncIoCollectOrderDownloadTask implements SchedulingConfigurer { + + final Logger logger = LoggerFactory.getLogger(AsyncIoCollectOrderDownloadTask.class); + + @Resource + private ScheduledDao scheduledDao; + @Resource + SysWorkplaceDocumentDao sysWorkplaceDocumentDao; + @Resource + IoCollectOriginService collectOriginService; + + @Override + public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) { + scheduledTaskRegistrar.addTriggerTask(() -> process(), + triggerContext -> { + ScheduledRequest scheduledRequest = new ScheduledRequest(); + scheduledRequest.setCronName("ioCollectOrderDownloadTask"); + ScheduledEntity scheduledEntity = scheduledDao.findScheduled(scheduledRequest); + String cron = scheduledEntity != null ? scheduledEntity.getCron() : "0 */10 * * * ?"; + if (cron.isEmpty()) { + logger.error("cron is null"); + } + return new CronTrigger(cron).nextExecutionTime(triggerContext); + }); + } + + private void process() { + ThreadUtil.execAsync(() -> { + WorkBindBusTypeRequest workBindBusTypeRequest = new WorkBindBusTypeRequest(); + List sysWorkplaceDocumentResponses = sysWorkplaceDocumentDao.filterList(workBindBusTypeRequest); + if (CollUtil.isNotEmpty(sysWorkplaceDocumentResponses)) { + //包装开始和结束的日期 + CollectOrderRequest collectOrderRequest = new CollectOrderRequest(); + String date = MsDateUtil.getDate(); + collectOrderRequest.setStartTime(date); + collectOrderRequest.setEndTime(date); + for (SysWorkplaceDocumentResponse sysWorkplaceDocumentResponse : sysWorkplaceDocumentResponses) { + Long workplaceCode = sysWorkplaceDocumentResponse.getWorkplaceCode(); + String documentTypeCode = sysWorkplaceDocumentResponse.getDocumentTypeCode(); + collectOrderRequest.setBusType(documentTypeCode); + collectOrderRequest.setWorkPlaceCode(workplaceCode); + collectOriginService.downloadOrderV2(collectOrderRequest); + } + } + }); + } + +} diff --git a/src/main/resources/mybatis/mapper/collect/IoCollectOrderMapper.xml b/src/main/resources/mybatis/mapper/collect/IoCollectOrderMapper.xml index 42295d1ce..a7ccbc2ed 100644 --- a/src/main/resources/mybatis/mapper/collect/IoCollectOrderMapper.xml +++ b/src/main/resources/mybatis/mapper/collect/IoCollectOrderMapper.xml @@ -127,6 +127,9 @@ TRUNCATE io_collect_order_origin; TRUNCATE io_collect_order_biz_origin; + TRUNCATE io_collect_order_backup; + TRUNCATE io_collect_order_biz_backup; + diff --git a/src/main/resources/mybatis/mapper/collect/IoCollectOrderOriginMapper.xml b/src/main/resources/mybatis/mapper/collect/IoCollectOrderOriginMapper.xml index 762bedd05..c34bede56 100644 --- a/src/main/resources/mybatis/mapper/collect/IoCollectOrderOriginMapper.xml +++ b/src/main/resources/mybatis/mapper/collect/IoCollectOrderOriginMapper.xml @@ -101,6 +101,9 @@ and ico.uploadStatus = #{uploadStatus} + + AND date_format(ico.billTime, '%Y-%m-%d') between date_format(#{startTime}, '%Y-%m-%d') and date_format(#{endTime}, '%Y-%m-%d') + GROUP BY ico.billNo