From 8b889ce0c1b59b9beabb6268e1c0ebe44abb80f5 Mon Sep 17 00:00:00 2001 From: chenhc <2369838784@qq.com> Date: Fri, 14 Mar 2025 11:20:42 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E7=8E=B0=E5=9C=BA=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E8=AE=BE=E7=BD=AE=E5=8C=BA=E5=88=86=E5=8D=95=E6=8D=AE?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../collect/IoCollectSetController.java | 90 +++++++++++++++++++ .../collect/IoCollectSetBustypeMapper.java | 11 +++ .../glxp/api/entity/collect/IoCollectSet.java | 10 +++ .../entity/collect/IoCollectSetBustype.java | 39 ++++++++ .../task/AsyncIoCollectOrderDownloadTask.java | 13 ++- .../task/AsyncIoCollectOrderFinishTask.java | 16 +++- .../task/AsyncIoCollectOrderUploadTask.java | 35 +++++--- .../collect/IoCollectOrderBackupMapper.xml | 6 ++ .../collect/IoCollectSetBustypeMapper.xml | 5 ++ 9 files changed, 208 insertions(+), 17 deletions(-) create mode 100644 src/main/java/com/glxp/api/dao/collect/IoCollectSetBustypeMapper.java create mode 100644 src/main/java/com/glxp/api/entity/collect/IoCollectSetBustype.java create mode 100644 src/main/resources/mybatis/mapper/collect/IoCollectSetBustypeMapper.xml diff --git a/src/main/java/com/glxp/api/controller/collect/IoCollectSetController.java b/src/main/java/com/glxp/api/controller/collect/IoCollectSetController.java index 2678b767a..f31c3b95e 100644 --- a/src/main/java/com/glxp/api/controller/collect/IoCollectSetController.java +++ b/src/main/java/com/glxp/api/controller/collect/IoCollectSetController.java @@ -1,9 +1,14 @@ package com.glxp.api.controller.collect; +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 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.collect.IoCollectSetBustypeMapper; import com.glxp.api.entity.collect.IoCollectSet; +import com.glxp.api.entity.collect.IoCollectSetBustype; import com.glxp.api.service.collect.IoCollectSetService; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; @@ -13,6 +18,9 @@ import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.validation.Valid; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; @Slf4j @RestController @@ -20,11 +28,45 @@ public class IoCollectSetController extends BaseController { @Resource IoCollectSetService collectSetService; + @Resource + IoCollectSetBustypeMapper ioCollectSetBustypeMapper; @GetMapping("/udiwms/ioSplit/collect/getSet") public BaseResponse getSet() { IoCollectSet collectSet = collectSetService.getSet(); + List ioCollectSetBustypes = ioCollectSetBustypeMapper.selectVoList(new QueryWrapper().in("setCode", "autoDownload", "autoFinishOrder", "autoUploadOrder")); + + if (CollUtil.isNotEmpty(ioCollectSetBustypes)){ + + List autoDownloadKeys = new ArrayList<>(); + List autoFinishOrderKeys = new ArrayList<>(); + List autoUploadOrderKeys = new ArrayList<>(); + for (IoCollectSetBustype ioCollectSetBustype : ioCollectSetBustypes) { + + String setCode = ioCollectSetBustype.getSetCode(); + String busType = ioCollectSetBustype.getBusType(); + + switch (setCode) { + case "autoDownload": + autoDownloadKeys.add(busType); + break; + case "autoFinishOrder": + autoFinishOrderKeys.add(busType); + break; + case "autoUploadOrder": + autoUploadOrderKeys.add(busType); + break; + } + + } + + collectSet.setAutoDownloadKey(autoDownloadKeys); + collectSet.setAutoFinishOrderKey(autoFinishOrderKeys); + collectSet.setAutoUploadOrderKey(autoUploadOrderKeys); + } + + return ResultVOUtils.success(collectSet); } @@ -32,6 +74,54 @@ public class IoCollectSetController extends BaseController { @PostMapping("/udiwms/ioSplit/collect/updateSet") public BaseResponse updateSet(@RequestBody @Valid IoCollectSet collectSet) { collectSetService.updateById(collectSet); + + //处理自动化设置列表 + List autoDownloadKey = collectSet.getAutoDownloadKey(); + List autoFinishOrderKey = collectSet.getAutoFinishOrderKey(); + List autoUploadOrderKey = collectSet.getAutoUploadOrderKey(); + + List ioCollectSetBustypes = new ArrayList<>(); + if (CollUtil.isNotEmpty(autoDownloadKey)){ + autoDownloadKey.forEach( busType ->{ + IoCollectSetBustype ioCollectSetBustype = new IoCollectSetBustype(); + ioCollectSetBustype.setSetCode("autoDownload"); + ioCollectSetBustype.setBusType(busType); + ioCollectSetBustype.setUpdateTime(new Date()); + + ioCollectSetBustypes.add(ioCollectSetBustype); + }); + } + + + if (CollUtil.isNotEmpty(autoFinishOrderKey)){ + autoFinishOrderKey.forEach( busType ->{ + IoCollectSetBustype ioCollectSetBustype = new IoCollectSetBustype(); + ioCollectSetBustype.setSetCode("autoFinishOrder"); + ioCollectSetBustype.setBusType(busType); + ioCollectSetBustype.setUpdateTime(new Date()); + + ioCollectSetBustypes.add(ioCollectSetBustype); + }); + } + + + if (CollUtil.isNotEmpty(autoUploadOrderKey)){ + autoUploadOrderKey.forEach( busType ->{ + IoCollectSetBustype ioCollectSetBustype = new IoCollectSetBustype(); + ioCollectSetBustype.setSetCode("autoUploadOrder"); + ioCollectSetBustype.setBusType(busType); + ioCollectSetBustype.setUpdateTime(new Date()); + + ioCollectSetBustypes.add(ioCollectSetBustype); + }); + } + + ioCollectSetBustypeMapper.delete(new QueryWrapper().in("setCode","autoDownload","autoFinishOrder","autoUploadOrder")); + + if (CollUtil.isNotEmpty(ioCollectSetBustypes)){ + ioCollectSetBustypeMapper.insertBatch(ioCollectSetBustypes); + } + return ResultVOUtils.success("修改成功!"); } } diff --git a/src/main/java/com/glxp/api/dao/collect/IoCollectSetBustypeMapper.java b/src/main/java/com/glxp/api/dao/collect/IoCollectSetBustypeMapper.java new file mode 100644 index 000000000..9f32d5a93 --- /dev/null +++ b/src/main/java/com/glxp/api/dao/collect/IoCollectSetBustypeMapper.java @@ -0,0 +1,11 @@ +package com.glxp.api.dao.collect; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.glxp.api.dao.BaseMapperPlus; +import com.glxp.api.entity.collect.IoCollectSet; +import com.glxp.api.entity.collect.IoCollectSetBustype; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface IoCollectSetBustypeMapper extends BaseMapperPlus { +} \ No newline at end of file diff --git a/src/main/java/com/glxp/api/entity/collect/IoCollectSet.java b/src/main/java/com/glxp/api/entity/collect/IoCollectSet.java index 28e1ad214..05c8556d3 100644 --- a/src/main/java/com/glxp/api/entity/collect/IoCollectSet.java +++ b/src/main/java/com/glxp/api/entity/collect/IoCollectSet.java @@ -10,6 +10,7 @@ import lombok.Data; import java.io.Serializable; import java.util.Date; +import java.util.List; @ApiModel(value = "io_collect_set") @Data @@ -126,4 +127,13 @@ public class IoCollectSet implements Serializable { private Boolean drugDealConfirm; private static final long serialVersionUID = 1L; + + @TableField(exist = false) + private List autoDownloadKey;//是否开启自动下载 + + @TableField(exist = false) + private List autoFinishOrderKey;//是否自动完成单据 + + @TableField(exist = false) + private List autoUploadOrderKey;//是否自动上传已完成单据 } diff --git a/src/main/java/com/glxp/api/entity/collect/IoCollectSetBustype.java b/src/main/java/com/glxp/api/entity/collect/IoCollectSetBustype.java new file mode 100644 index 000000000..bfc0801ce --- /dev/null +++ b/src/main/java/com/glxp/api/entity/collect/IoCollectSetBustype.java @@ -0,0 +1,39 @@ +package com.glxp.api.entity.collect; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +@ApiModel(value = "io_collect_set_bustype") +@Data +@TableName(value = "io_collect_set_bustype") +public class IoCollectSetBustype implements Serializable { + + @TableId(value = "id", type = IdType.INPUT) + @ApiModelProperty(value = "") + private Integer id; + + /** + * 参数key + */ + @TableField(value = "setCode") + private String setCode; + + /** + * 参数value + */ + @TableField(value = "busType") + private String busType; + + @TableField(value = "updateTime") + private Date updateTime; + + +} diff --git a/src/main/java/com/glxp/api/task/AsyncIoCollectOrderDownloadTask.java b/src/main/java/com/glxp/api/task/AsyncIoCollectOrderDownloadTask.java index 13190e552..f44e9e746 100644 --- a/src/main/java/com/glxp/api/task/AsyncIoCollectOrderDownloadTask.java +++ b/src/main/java/com/glxp/api/task/AsyncIoCollectOrderDownloadTask.java @@ -2,10 +2,13 @@ package com.glxp.api.task; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.dao.basic.SysWorkplaceDocumentDao; +import com.glxp.api.dao.collect.IoCollectSetBustypeMapper; import com.glxp.api.dao.schedule.ScheduledDao; import com.glxp.api.entity.collect.IoCollectSet; +import com.glxp.api.entity.collect.IoCollectSetBustype; import com.glxp.api.entity.system.ScheduledEntity; import com.glxp.api.req.basic.WorkBindBusTypeRequest; import com.glxp.api.req.collect.CollectOrderRequest; @@ -45,6 +48,9 @@ public class AsyncIoCollectOrderDownloadTask implements SchedulingConfigurer { IoCollectOriginService collectOriginService; @Resource IoCollectSetService collectSetService; + @Resource + IoCollectSetBustypeMapper ioCollectSetBustypeMapper; + private static final String LOCK_KEY = "IO_COLLECT_ORDER_DOWNLOAD_LOCK"; private static final long LOCK_TIMEOUT = 30 * 60 * 1000; // 30分钟超时时间 @@ -101,11 +107,10 @@ public class AsyncIoCollectOrderDownloadTask implements SchedulingConfigurer { collectOrderRequest.setStartTime(paramValue); collectOrderRequest.setEndTime(nowTime); - WorkBindBusTypeRequest workBindBusTypeRequest = new WorkBindBusTypeRequest(); - List sysWorkplaceDocumentResponses = sysWorkplaceDocumentDao.filterList(workBindBusTypeRequest); + List sysWorkplaceDocumentResponses = ioCollectSetBustypeMapper.selectList(new LambdaQueryWrapper().eq(IoCollectSetBustype::getSetCode, "autoDownload")); if (CollUtil.isNotEmpty(sysWorkplaceDocumentResponses)) { - for (SysWorkplaceDocumentResponse sysWorkplaceDocumentResponse : sysWorkplaceDocumentResponses) { - String documentTypeCode = sysWorkplaceDocumentResponse.getDocumentTypeCode(); + for (IoCollectSetBustype item : sysWorkplaceDocumentResponses) { + String documentTypeCode = item.getBusType(); collectOrderRequest.setBusType(documentTypeCode); try { BaseResponse baseResponse = collectOriginService.downloadOrderV2(collectOrderRequest); diff --git a/src/main/java/com/glxp/api/task/AsyncIoCollectOrderFinishTask.java b/src/main/java/com/glxp/api/task/AsyncIoCollectOrderFinishTask.java index 13b885546..c91eb5c32 100644 --- a/src/main/java/com/glxp/api/task/AsyncIoCollectOrderFinishTask.java +++ b/src/main/java/com/glxp/api/task/AsyncIoCollectOrderFinishTask.java @@ -2,12 +2,14 @@ package com.glxp.api.task; import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.glxp.api.dao.collect.IoCollectSetBustypeMapper; import com.glxp.api.dao.schedule.ScheduledDao; import com.glxp.api.entity.auth.AuthAdmin; import com.glxp.api.entity.basic.SysWorkplaceBus; import com.glxp.api.entity.basic.SysWorkplaceDocumentEntity; import com.glxp.api.entity.collect.IoCollectOrder; import com.glxp.api.entity.collect.IoCollectSet; +import com.glxp.api.entity.collect.IoCollectSetBustype; import com.glxp.api.entity.system.ScheduledEntity; import com.glxp.api.req.collect.CollectOrderRequest; import com.glxp.api.req.system.ScheduledRequest; @@ -44,6 +46,8 @@ public class AsyncIoCollectOrderFinishTask implements SchedulingConfigurer { IoCollectOrderService collectOrderService; @Resource SysWorkplaceBusService sysWorkplaceBusService; + @Resource + IoCollectSetBustypeMapper ioCollectSetBustypeMapper; @Override public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) { @@ -73,9 +77,15 @@ public class AsyncIoCollectOrderFinishTask implements SchedulingConfigurer { CollectOrderRequest collectOrderRequest = new CollectOrderRequest(); BeanUtils.copyProperties(collectOrder, collectOrderRequest); //获取当前业务类型对应的采集工位 - SysWorkplaceBus sysWorkplaceBus = sysWorkplaceBusService.getOne(new LambdaQueryWrapper().eq(SysWorkplaceBus::getBusTypeCode, sysWorkplaceDocumentEntity.getDocumentTypeCode()).last("limit 1")); - if (sysWorkplaceBus == null) - break; + List ioCollectSetBustypes = ioCollectSetBustypeMapper.selectList( + new LambdaQueryWrapper() + .eq(IoCollectSetBustype::getSetCode, "autoFinishOrder") + .eq(IoCollectSetBustype::getBusType, sysWorkplaceDocumentEntity.getDocumentTypeCode())); + SysWorkplaceBus sysWorkplaceBus = null; + if (CollUtil.isNotEmpty(ioCollectSetBustypes)) { + sysWorkplaceBus = sysWorkplaceBusService.getOne(new LambdaQueryWrapper().eq(SysWorkplaceBus::getBusTypeCode, sysWorkplaceDocumentEntity.getDocumentTypeCode()).last("limit 1")); + } + if (sysWorkplaceBus == null) break; collectOrderRequest.setWorkPlaceCode(sysWorkplaceBus.getWorkplaceCode()); collectOrderRequest.setBusType(sysWorkplaceBus.getBusTypeCode()); collectOrderRequest.setBillNo(collectOrder.getBillNo()); diff --git a/src/main/java/com/glxp/api/task/AsyncIoCollectOrderUploadTask.java b/src/main/java/com/glxp/api/task/AsyncIoCollectOrderUploadTask.java index 51fd5eb0c..fc8f31678 100644 --- a/src/main/java/com/glxp/api/task/AsyncIoCollectOrderUploadTask.java +++ b/src/main/java/com/glxp/api/task/AsyncIoCollectOrderUploadTask.java @@ -2,9 +2,12 @@ package com.glxp.api.task; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.glxp.api.dao.collect.IoCollectSetBustypeMapper; import com.glxp.api.dao.schedule.ScheduledDao; import com.glxp.api.entity.auth.AuthAdmin; import com.glxp.api.entity.collect.IoCollectSet; +import com.glxp.api.entity.collect.IoCollectSetBustype; import com.glxp.api.req.collect.CollectOrderRequest; import com.glxp.api.req.system.ScheduledRequest; import com.glxp.api.res.collect.IoCollectOrderResponse; @@ -40,6 +43,8 @@ public class AsyncIoCollectOrderUploadTask implements SchedulingConfigurer { IoCollectCodeService collectCodeService; @Resource IoCollectOrderBackupService ioCollectOrderBackupService; + @Resource + IoCollectSetBustypeMapper ioCollectSetBustypeMapper; @Override @@ -92,17 +97,27 @@ public class AsyncIoCollectOrderUploadTask implements SchedulingConfigurer { list.add(3); collectOrderRequest.setUploadStatusList(list); - //调用上传单据 - List orderResponses = ioCollectOrderBackupService.filterList(collectOrderRequest); - if (CollUtil.isNotEmpty(orderResponses)) { - orderResponses.forEach(item -> { - AuthAdmin authAdmin = new AuthAdmin(); - ioCollectOrderBackupService.orderUpload(item.getBillNo(), authAdmin); - }); + List ioCollectSetBustypes = ioCollectSetBustypeMapper.selectList(new LambdaQueryWrapper().eq(IoCollectSetBustype::getSetCode, "autoUploadOrder")); + + if (CollUtil.isNotEmpty(ioCollectSetBustypes)) { + List autoUploadOrderKeys = new ArrayList<>(); + for (IoCollectSetBustype ioCollectSetBustype : ioCollectSetBustypes) { + autoUploadOrderKeys.add(ioCollectSetBustype.getBusType()); + } + + collectOrderRequest.setDocumentTypeCodes(autoUploadOrderKeys); + + //调用上传单据 + List orderResponses = ioCollectOrderBackupService.filterList(collectOrderRequest); + if (CollUtil.isNotEmpty(orderResponses)) { + orderResponses.forEach(item -> { + AuthAdmin authAdmin = new AuthAdmin(); + ioCollectOrderBackupService.orderUpload(item.getBillNo(), authAdmin); + }); + } + } - // 无限循环去上传单据不做限制了 -// ioCollectSet.setStartUploadTime(MsDateUtil.parseDate(nowTime)); -// collectSetService.updateById(ioCollectSet); + } } diff --git a/src/main/resources/mybatis/mapper/collect/IoCollectOrderBackupMapper.xml b/src/main/resources/mybatis/mapper/collect/IoCollectOrderBackupMapper.xml index 40b54f2a4..76d8565c4 100644 --- a/src/main/resources/mybatis/mapper/collect/IoCollectOrderBackupMapper.xml +++ b/src/main/resources/mybatis/mapper/collect/IoCollectOrderBackupMapper.xml @@ -85,6 +85,12 @@ #{item} + + and busType in + + #{item} + + and icob.workPlaceCode in diff --git a/src/main/resources/mybatis/mapper/collect/IoCollectSetBustypeMapper.xml b/src/main/resources/mybatis/mapper/collect/IoCollectSetBustypeMapper.xml new file mode 100644 index 000000000..dd6ba34db --- /dev/null +++ b/src/main/resources/mybatis/mapper/collect/IoCollectSetBustypeMapper.xml @@ -0,0 +1,5 @@ + + + + +