fix:现场管理设置区分单据类型

dev_2.5_ocean
chenhc 4 months ago
parent df438503c3
commit 8b889ce0c1

@ -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<IoCollectSetBustype> ioCollectSetBustypes = ioCollectSetBustypeMapper.selectVoList(new QueryWrapper<IoCollectSetBustype>().in("setCode", "autoDownload", "autoFinishOrder", "autoUploadOrder"));
if (CollUtil.isNotEmpty(ioCollectSetBustypes)){
List<String> autoDownloadKeys = new ArrayList<>();
List<String> autoFinishOrderKeys = new ArrayList<>();
List<String> 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<String> autoDownloadKey = collectSet.getAutoDownloadKey();
List<String> autoFinishOrderKey = collectSet.getAutoFinishOrderKey();
List<String> autoUploadOrderKey = collectSet.getAutoUploadOrderKey();
List<IoCollectSetBustype> 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<IoCollectSetBustype>().in("setCode","autoDownload","autoFinishOrder","autoUploadOrder"));
if (CollUtil.isNotEmpty(ioCollectSetBustypes)){
ioCollectSetBustypeMapper.insertBatch(ioCollectSetBustypes);
}
return ResultVOUtils.success("修改成功!");
}
}

@ -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<IoCollectSetBustypeMapper, IoCollectSetBustype,IoCollectSetBustype> {
}

@ -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<String> autoDownloadKey;//是否开启自动下载
@TableField(exist = false)
private List<String> autoFinishOrderKey;//是否自动完成单据
@TableField(exist = false)
private List<String> autoUploadOrderKey;//是否自动上传已完成单据
}

@ -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;
}

@ -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<SysWorkplaceDocumentResponse> sysWorkplaceDocumentResponses = sysWorkplaceDocumentDao.filterList(workBindBusTypeRequest);
List<IoCollectSetBustype> sysWorkplaceDocumentResponses = ioCollectSetBustypeMapper.selectList(new LambdaQueryWrapper<IoCollectSetBustype>().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);

@ -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<SysWorkplaceBus>().eq(SysWorkplaceBus::getBusTypeCode, sysWorkplaceDocumentEntity.getDocumentTypeCode()).last("limit 1"));
if (sysWorkplaceBus == null)
break;
List<IoCollectSetBustype> ioCollectSetBustypes = ioCollectSetBustypeMapper.selectList(
new LambdaQueryWrapper<IoCollectSetBustype>()
.eq(IoCollectSetBustype::getSetCode, "autoFinishOrder")
.eq(IoCollectSetBustype::getBusType, sysWorkplaceDocumentEntity.getDocumentTypeCode()));
SysWorkplaceBus sysWorkplaceBus = null;
if (CollUtil.isNotEmpty(ioCollectSetBustypes)) {
sysWorkplaceBus = sysWorkplaceBusService.getOne(new LambdaQueryWrapper<SysWorkplaceBus>().eq(SysWorkplaceBus::getBusTypeCode, sysWorkplaceDocumentEntity.getDocumentTypeCode()).last("limit 1"));
}
if (sysWorkplaceBus == null) break;
collectOrderRequest.setWorkPlaceCode(sysWorkplaceBus.getWorkplaceCode());
collectOrderRequest.setBusType(sysWorkplaceBus.getBusTypeCode());
collectOrderRequest.setBillNo(collectOrder.getBillNo());

@ -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<IoCollectOrderResponse> orderResponses = ioCollectOrderBackupService.filterList(collectOrderRequest);
if (CollUtil.isNotEmpty(orderResponses)) {
orderResponses.forEach(item -> {
AuthAdmin authAdmin = new AuthAdmin();
ioCollectOrderBackupService.orderUpload(item.getBillNo(), authAdmin);
});
List<IoCollectSetBustype> ioCollectSetBustypes = ioCollectSetBustypeMapper.selectList(new LambdaQueryWrapper<IoCollectSetBustype>().eq(IoCollectSetBustype::getSetCode, "autoUploadOrder"));
if (CollUtil.isNotEmpty(ioCollectSetBustypes)) {
List<String> autoUploadOrderKeys = new ArrayList<>();
for (IoCollectSetBustype ioCollectSetBustype : ioCollectSetBustypes) {
autoUploadOrderKeys.add(ioCollectSetBustype.getBusType());
}
collectOrderRequest.setDocumentTypeCodes(autoUploadOrderKeys);
//调用上传单据
List<IoCollectOrderResponse> 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);
}
}

@ -85,6 +85,12 @@
#{item}
</foreach>
</if>
<if test="documentTypeCodes != null and documentTypeCodes.size() > 0">
and busType in
<foreach collection="documentTypeCodes" item="item" index="index" separator="," open="(" close=")">
#{item}
</foreach>
</if>
<if test="workPlaceCodes != null and workPlaceCodes.size() > 0">
and icob.workPlaceCode in
<foreach collection="workPlaceCodes" item="item" index="index" separator="," open="(" close=")">

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.glxp.api.dao.collect.IoCollectSetMapper">
</mapper>
Loading…
Cancel
Save