From 483a136e341ddf872f3380a3bcbaad7932a2ed3c Mon Sep 17 00:00:00 2001 From: chenhc <2369838784@qq.com> Date: Thu, 12 Sep 2024 17:54:40 +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 --- .../basic/SysWorkplaceDocumentController.java | 74 ++++++++++++++++--- .../api/dao/basic/SysWorkplaceBusMapper.java | 9 +++ .../dao/basic/SysWorkplaceDocumentDao.java | 1 + .../api/entity/basic/SysWorkplaceBus.java | 35 +++++++++ .../basic/SysWorkplaceDocumentEntity.java | 8 +- .../api/req/basic/WorkBindBusTypeRequest.java | 2 +- .../service/basic/SysWorkplaceBusService.java | 10 +++ .../basic/SysWorkplaceDocumentService.java | 46 +++++++++++- .../mapper/basic/SysWorkplaceBusMapper.xml | 14 ++++ .../mapper/basic/SysWorkplaceDocumentDao.xml | 34 +++++++-- 10 files changed, 207 insertions(+), 26 deletions(-) create mode 100644 src/main/java/com/glxp/api/dao/basic/SysWorkplaceBusMapper.java create mode 100644 src/main/java/com/glxp/api/entity/basic/SysWorkplaceBus.java create mode 100644 src/main/java/com/glxp/api/service/basic/SysWorkplaceBusService.java create mode 100644 src/main/resources/mybatis/mapper/basic/SysWorkplaceBusMapper.xml diff --git a/src/main/java/com/glxp/api/controller/basic/SysWorkplaceDocumentController.java b/src/main/java/com/glxp/api/controller/basic/SysWorkplaceDocumentController.java index ebc8807d5..ef44c3125 100644 --- a/src/main/java/com/glxp/api/controller/basic/SysWorkplaceDocumentController.java +++ b/src/main/java/com/glxp/api/controller/basic/SysWorkplaceDocumentController.java @@ -3,23 +3,27 @@ package com.glxp.api.controller.basic; import cn.hutool.core.util.IdUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.github.pagehelper.PageInfo; import com.glxp.api.annotation.CusRedissonAnnotation; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.constant.RedissonCacheKey; import com.glxp.api.controller.BaseController; +import com.glxp.api.entity.basic.SysWorkplaceBus; import com.glxp.api.entity.basic.SysWorkplaceDocumentEntity; import com.glxp.api.req.basic.WorkBindBusTypeRequest; 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.basic.WorkBindWorkResponse; +import com.glxp.api.service.basic.SysWorkplaceBusService; import com.glxp.api.service.basic.SysWorkplaceDocumentService; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.List; /** @@ -36,6 +40,8 @@ public class SysWorkplaceDocumentController extends BaseController { */ @Resource private SysWorkplaceDocumentService sysWorkplaceDocumentService; + @Resource + private SysWorkplaceBusService sysWorkplaceBusService; @GetMapping("/udiwms/sysWorkplace/getWorkBindBusTypes") @@ -48,6 +54,16 @@ public class SysWorkplaceDocumentController extends BaseController { return ResultVOUtils.success(pageSimpleResponse); } + @GetMapping("/udiwms/sysWorkplace/filterListByWorkplace") + public BaseResponse filterListByWorkplace(WorkBindBusTypeRequest request) { + List page = sysWorkplaceDocumentService.filterListByWorkplace(request); + PageInfo pageInfo = new PageInfo<>(page); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(page); + return ResultVOUtils.success(pageSimpleResponse); + } + @PostMapping("/udiwms/sysWorkplace/workBindBusType") public BaseResponse workBindBusType(@RequestBody WorkBindBusTypeRequest request) { Long userId = this.getUserId(); @@ -58,21 +74,47 @@ public class SysWorkplaceDocumentController extends BaseController { return ResultVOUtils.success("绑定成功"); } - @PostMapping("/udiwms/sysWorkplace/addBusType") - public BaseResponse addBusType(@RequestBody SysWorkplaceDocumentEntity entity) { - Long userId = this.getUserId(); - SysWorkplaceDocumentEntity one = sysWorkplaceDocumentService.getOne(new LambdaQueryWrapper().eq(SysWorkplaceDocumentEntity::getDocumentTypeCode, entity.getDocumentTypeCode()) - .eq(SysWorkplaceDocumentEntity::getWorkplaceCode, entity.getWorkplaceCode())); - if (one != null) { - return ResultVOUtils.error("该工位已经有当前类型单据"); + @PostMapping("/udiwms/sysWorkplace/workplaceBindBusType") + public BaseResponse workplaceBindBusType(@RequestBody WorkBindBusTypeRequest request) { + Long workplaceCode = request.getWorkplaceCode(); + List documentTypeCodes = request.getDocumentTypeCodes(); + if (documentTypeCodes.size() == 0){ + return ResultVOUtils.error("请选择绑定的业务类型"); } - boolean save = sysWorkplaceDocumentService.addBusType(entity, userId); - if (!save) { - return ResultVOUtils.error("新增失败"); + List adds = new ArrayList<>(); + for (String documentTypeCode : documentTypeCodes) { + SysWorkplaceBus one = sysWorkplaceBusService.getOne(new LambdaQueryWrapper().eq(SysWorkplaceBus::getBusTypeCode, documentTypeCode).eq(SysWorkplaceBus::getWorkplaceCode, workplaceCode)); + if (one!= null) { + return ResultVOUtils.error("该工位已经绑定该单据类型"); + } + SysWorkplaceBus sysWorkplaceBus = new SysWorkplaceBus(); + sysWorkplaceBus.setWorkplaceCode(workplaceCode); + sysWorkplaceBus.setBusTypeCode(documentTypeCode); + adds.add(sysWorkplaceBus); } - return ResultVOUtils.success("新增成功"); + + boolean save = sysWorkplaceBusService.saveBatch(adds); + if (!save){ + return ResultVOUtils.success("绑定失败"); + } + return ResultVOUtils.success("绑定成功"); } +// @PostMapping("/udiwms/sysWorkplace/addBusType") +// public BaseResponse addBusType(@RequestBody SysWorkplaceDocumentEntity entity) { +// Long userId = this.getUserId(); +// SysWorkplaceDocumentEntity one = sysWorkplaceDocumentService.getOne(new LambdaQueryWrapper().eq(SysWorkplaceDocumentEntity::getDocumentTypeCode, entity.getDocumentTypeCode()) +// .eq(SysWorkplaceDocumentEntity::getWorkplaceCode, entity.getWorkplaceCode())); +// if (one != null) { +// return ResultVOUtils.error("该工位已经有当前类型单据"); +// } +// boolean save = sysWorkplaceDocumentService.addBusType(entity, userId); +// if (!save) { +// return ResultVOUtils.error("新增失败"); +// } +// return ResultVOUtils.success("新增成功"); +// } + @PostMapping("/udiwms/sysWorkplace/updateType") public BaseResponse updateType(@RequestBody SysWorkplaceDocumentEntity entity) { @@ -100,6 +142,16 @@ public class SysWorkplaceDocumentController extends BaseController { return ResultVOUtils.success("移除成功"); } + @CusRedissonAnnotation(cacheName = RedissonCacheKey.RM_WORK_BUS_TYPE, key = {"#entity.documentTypeCode"}, waitTime = 3, timeOutMsg = "请勿重复提交") + @PostMapping("/udiwms/sysWorkplace/removeBusTypeByBusTypeAndWorkplace") + public BaseResponse removeBusTypeByBusTypeAndWorkplace(@RequestBody SysWorkplaceDocumentEntity entity) { + Boolean save = sysWorkplaceDocumentService.removeBusTypeByBusTypeAndWorkplace(entity.getWorkplaceCode(),entity.getDocumentTypeCode()); + if (!save) { + return ResultVOUtils.error("移除失败"); + } + return ResultVOUtils.success("移除成功"); + } + } diff --git a/src/main/java/com/glxp/api/dao/basic/SysWorkplaceBusMapper.java b/src/main/java/com/glxp/api/dao/basic/SysWorkplaceBusMapper.java new file mode 100644 index 000000000..5b47d4c40 --- /dev/null +++ b/src/main/java/com/glxp/api/dao/basic/SysWorkplaceBusMapper.java @@ -0,0 +1,9 @@ +package com.glxp.api.dao.basic; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.glxp.api.entity.basic.SysWorkplaceBus; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface SysWorkplaceBusMapper extends BaseMapper { +} \ No newline at end of file diff --git a/src/main/java/com/glxp/api/dao/basic/SysWorkplaceDocumentDao.java b/src/main/java/com/glxp/api/dao/basic/SysWorkplaceDocumentDao.java index 97876baeb..527391829 100644 --- a/src/main/java/com/glxp/api/dao/basic/SysWorkplaceDocumentDao.java +++ b/src/main/java/com/glxp/api/dao/basic/SysWorkplaceDocumentDao.java @@ -20,6 +20,7 @@ import java.util.List; public interface SysWorkplaceDocumentDao extends BaseMapperPlus{ List filterList(WorkBindBusTypeRequest request); + List filterListByWorkplace(WorkBindBusTypeRequest request); Integer findMaxNumberByWorkplaceCode(Long workplaceCode); } diff --git a/src/main/java/com/glxp/api/entity/basic/SysWorkplaceBus.java b/src/main/java/com/glxp/api/entity/basic/SysWorkplaceBus.java new file mode 100644 index 000000000..c557cfb59 --- /dev/null +++ b/src/main/java/com/glxp/api/entity/basic/SysWorkplaceBus.java @@ -0,0 +1,35 @@ +package com.glxp.api.entity.basic; + +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 java.io.Serializable; +import lombok.Data; + +/** + * 工位单据类型表 + */ +@ApiModel(value="com-glxp-api-entity-collect-SysWorkplaceBus") +@Data +@TableName(value = "sys_workplace_bus") +public class SysWorkplaceBus implements Serializable { + /** + * 工位编码code + */ + @TableField(value = "workplaceCode") + @ApiModelProperty(value="工位编码code") + private Long workplaceCode; + + /** + * 单据类型表code + */ + @TableField(value = "busTypeCode") + @ApiModelProperty(value="单据类型表code") + private String busTypeCode; + + private static final long serialVersionUID = 1L; + +} \ No newline at end of file diff --git a/src/main/java/com/glxp/api/entity/basic/SysWorkplaceDocumentEntity.java b/src/main/java/com/glxp/api/entity/basic/SysWorkplaceDocumentEntity.java index 865534810..0d4f99dfa 100644 --- a/src/main/java/com/glxp/api/entity/basic/SysWorkplaceDocumentEntity.java +++ b/src/main/java/com/glxp/api/entity/basic/SysWorkplaceDocumentEntity.java @@ -21,11 +21,6 @@ public class SysWorkplaceDocumentEntity { private Long id; - //工位编码 - @TableField(value = "workplaceCode") - private Long workplaceCode; - - //单据编码 @TableField(value = "documentTypeCode") private String documentTypeCode; @@ -178,5 +173,8 @@ public class SysWorkplaceDocumentEntity { private Integer checkBatchInsert; + //工位编码 + @TableField(exist = false) + private Long workplaceCode; } diff --git a/src/main/java/com/glxp/api/req/basic/WorkBindBusTypeRequest.java b/src/main/java/com/glxp/api/req/basic/WorkBindBusTypeRequest.java index d35980d69..bd66ca04a 100644 --- a/src/main/java/com/glxp/api/req/basic/WorkBindBusTypeRequest.java +++ b/src/main/java/com/glxp/api/req/basic/WorkBindBusTypeRequest.java @@ -13,7 +13,7 @@ import java.util.List; @Data public class WorkBindBusTypeRequest extends ListPageRequest { - // private List documentTypeCode; + private List documentTypeCodes; private Long workplaceCode; private String code; private String busKey; diff --git a/src/main/java/com/glxp/api/service/basic/SysWorkplaceBusService.java b/src/main/java/com/glxp/api/service/basic/SysWorkplaceBusService.java new file mode 100644 index 000000000..8e04774f0 --- /dev/null +++ b/src/main/java/com/glxp/api/service/basic/SysWorkplaceBusService.java @@ -0,0 +1,10 @@ +package com.glxp.api.service.basic; + +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.glxp.api.entity.basic.SysWorkplaceBus; +import com.glxp.api.dao.basic.SysWorkplaceBusMapper; +@Service +public class SysWorkplaceBusService extends ServiceImpl { + +} diff --git a/src/main/java/com/glxp/api/service/basic/SysWorkplaceDocumentService.java b/src/main/java/com/glxp/api/service/basic/SysWorkplaceDocumentService.java index d6e981a2a..3a08f6890 100644 --- a/src/main/java/com/glxp/api/service/basic/SysWorkplaceDocumentService.java +++ b/src/main/java/com/glxp/api/service/basic/SysWorkplaceDocumentService.java @@ -1,18 +1,24 @@ package com.glxp.api.service.basic; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.IdUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.pagehelper.PageHelper; import com.glxp.api.dao.basic.SysWorkplaceDocumentDao; import com.glxp.api.entity.basic.BasicCollectUserEntity; +import com.glxp.api.entity.basic.SysWorkplaceBus; import com.glxp.api.entity.basic.SysWorkplaceDocumentEntity; import com.glxp.api.req.basic.WorkBindBusTypeRequest; import com.glxp.api.res.basic.SysWorkplaceDocumentResponse; import com.glxp.api.res.basic.WorkBindWorkResponse; import com.glxp.api.util.IntUtil; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.Collections; import java.util.Date; import java.util.List; @@ -28,21 +34,51 @@ public class SysWorkplaceDocumentService extends ServiceImpl filterList(WorkBindBusTypeRequest request) { + if (request == null) { + return Collections.emptyList(); + } + if (request.getPage() != null) { + int offset = (request.getPage() - 1) * request.getLimit(); + PageHelper.offsetPage(offset, request.getLimit()); + } List list = sysWorkplaceDocumentDao.filterList(request); return list; } + public List filterListByWorkplace(WorkBindBusTypeRequest request) { + if (request == null) { + return Collections.emptyList(); + } + if (request.getPage() != null) { + int offset = (request.getPage() - 1) * request.getLimit(); + PageHelper.offsetPage(offset, request.getLimit()); + } + List list = sysWorkplaceDocumentDao.filterListByWorkplace(request); + return list; + } + public SysWorkplaceDocumentEntity findByBusType(String busType) { return sysWorkplaceDocumentDao.selectOne(new LambdaQueryWrapper().eq(SysWorkplaceDocumentEntity::getDocumentTypeCode, busType).last("limit 1")); } public SysWorkplaceDocumentEntity findByWorkplaceCode(Long workplaceCode, String busType) { - return sysWorkplaceDocumentDao.selectOne(new LambdaQueryWrapper() - .eq(SysWorkplaceDocumentEntity::getWorkplaceCode, workplaceCode) - .eq(SysWorkplaceDocumentEntity::getDocumentTypeCode, busType).last("limit 1")); + WorkBindBusTypeRequest request = new WorkBindBusTypeRequest(); + request.setWorkplaceCode(workplaceCode); + request.setDocumentTypeCode(busType); + + List sysWorkplaceDocumentResponses = sysWorkplaceDocumentDao.filterList(request); + if (CollUtil.isNotEmpty(sysWorkplaceDocumentResponses)){ + SysWorkplaceDocumentResponse sysWorkplaceDocumentResponse = sysWorkplaceDocumentResponses.get(0); + SysWorkplaceDocumentEntity sysWorkplaceDocumentEntity = new SysWorkplaceDocumentEntity(); + BeanUtils.copyProperties(sysWorkplaceDocumentResponse,sysWorkplaceDocumentEntity); + return sysWorkplaceDocumentEntity; + }else + return null; } @@ -111,5 +147,9 @@ public class SysWorkplaceDocumentService extends ServiceImpl().eq(SysWorkplaceBus::getWorkplaceCode,workplaceCode).eq(SysWorkplaceBus::getBusTypeCode,documentTypeCode)); + } } diff --git a/src/main/resources/mybatis/mapper/basic/SysWorkplaceBusMapper.xml b/src/main/resources/mybatis/mapper/basic/SysWorkplaceBusMapper.xml new file mode 100644 index 000000000..2ebce595d --- /dev/null +++ b/src/main/resources/mybatis/mapper/basic/SysWorkplaceBusMapper.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + workplaceCode, busTypeCode + + \ No newline at end of file diff --git a/src/main/resources/mybatis/mapper/basic/SysWorkplaceDocumentDao.xml b/src/main/resources/mybatis/mapper/basic/SysWorkplaceDocumentDao.xml index 43b0d388b..e475213e7 100644 --- a/src/main/resources/mybatis/mapper/basic/SysWorkplaceDocumentDao.xml +++ b/src/main/resources/mybatis/mapper/basic/SysWorkplaceDocumentDao.xml @@ -27,12 +27,34 @@ ) - ORDER BY - CASE - WHEN sys_workplace_document.number IS NOT NULL THEN 1 - ELSE 2 - END, - sys_workplace_document.number + ORDER BY sys_workplace_document.number + + +