From adb7d0ed2c7a2ba7fcd37c2cc583de0d6a38b77d Mon Sep 17 00:00:00 2001 From: zane Date: Fri, 27 Sep 2024 18:09:04 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E5=85=B3=E8=81=942.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../collect/RelCodeBatchController.java | 24 +++- .../collect/RelCodeDetailController.java | 34 ++++++ .../api/dao/collect/RelCodeDetailMapper.java | 8 +- .../glxp/api/entity/collect/RelCodeBatch.java | 16 +++ .../api/req/collect/RelCodeBatchRequest.java | 15 ++- .../api/req/collect/RelCodeDetailRequest.java | 103 ++++++++++++++++++ .../res/collect/RelCodeDetailResponse.java | 95 ++++++++++++++++ .../service/collect/RelCodeBatchService.java | 46 +++++++- .../service/collect/RelCodeDetailService.java | 54 +++++++++ .../mapper/collect/RelCodeDetailMapper.xml | 49 ++++++++- 10 files changed, 435 insertions(+), 9 deletions(-) create mode 100644 src/main/java/com/glxp/api/req/collect/RelCodeDetailRequest.java create mode 100644 src/main/java/com/glxp/api/res/collect/RelCodeDetailResponse.java diff --git a/src/main/java/com/glxp/api/controller/collect/RelCodeBatchController.java b/src/main/java/com/glxp/api/controller/collect/RelCodeBatchController.java index 7a6d8b3ce..0bcb3c278 100644 --- a/src/main/java/com/glxp/api/controller/collect/RelCodeBatchController.java +++ b/src/main/java/com/glxp/api/controller/collect/RelCodeBatchController.java @@ -1,20 +1,15 @@ package com.glxp.api.controller.collect; -import cn.hutool.core.util.StrUtil; import com.github.pagehelper.PageInfo; import com.glxp.api.annotation.CusRedissonAnnotation; import com.glxp.api.annotation.RepeatSubmit; -import com.glxp.api.common.enums.ResultEnum; 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.collect.IoCollectOrder; import com.glxp.api.entity.collect.RelCodeBatch; -import com.glxp.api.req.collect.IoCollectCodeRequest; import com.glxp.api.req.collect.RelCodeBatchRequest; import com.glxp.api.res.PageSimpleResponse; -import com.glxp.api.res.collect.IoCollectCodeResponse; import com.glxp.api.res.collect.RelCodeBatchResponse; import com.glxp.api.service.collect.RelCodeBatchService; import lombok.extern.slf4j.Slf4j; @@ -33,6 +28,12 @@ public class RelCodeBatchController extends BaseController { @Resource private RelCodeBatchService relCodeBatchService; + /** + * 上传文件保存 + * @param uuid + * @param file + * @return + */ @RepeatSubmit() @CusRedissonAnnotation(cacheName = RedissonCacheKey.XML_UPLOAD, key = {"#uuid"}, timeOutMsg = "系统正在处理,请勿重复上传") @PostMapping("/udiwms/relCode/batch/xmlUpload") @@ -41,6 +42,19 @@ public class RelCodeBatchController extends BaseController { return ResultVOUtils.successMsg("上传成功!"); } + /** + * 手动添加 + * @param relCodeBatchRequest + * @return + */ + @RepeatSubmit() + @CusRedissonAnnotation(cacheName = RedissonCacheKey.XML_UPLOAD, key = {"#relCodeBatchRequest.productCode", "#relCodeBatchRequest.subTypeNo"}, timeOutMsg = "系统正在处理,请勿重复上传") + @PostMapping("/udiwms/relCode/batch/add") + public BaseResponse add(@RequestBody @Valid RelCodeBatchRequest relCodeBatchRequest,BindingResult bindingResult) { + relCodeBatchService.add(relCodeBatchRequest); + return ResultVOUtils.successMsg("添加成功!"); + } + @GetMapping("/udiwms/relCode/batch/filter") public BaseResponse list(RelCodeBatchRequest relCodeBatchRequest, BindingResult bindingResult) { List relCodeBatchResponses = relCodeBatchService.filterList(relCodeBatchRequest); diff --git a/src/main/java/com/glxp/api/controller/collect/RelCodeDetailController.java b/src/main/java/com/glxp/api/controller/collect/RelCodeDetailController.java index cb1564cea..ad15a1f58 100644 --- a/src/main/java/com/glxp/api/controller/collect/RelCodeDetailController.java +++ b/src/main/java/com/glxp/api/controller/collect/RelCodeDetailController.java @@ -1,13 +1,21 @@ package com.glxp.api.controller.collect; +import com.github.pagehelper.PageInfo; +import com.glxp.api.annotation.RepeatSubmit; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.controller.BaseController; import com.glxp.api.entity.collect.IoCollectSet; import com.glxp.api.entity.collect.RelCodeDetail; +import com.glxp.api.req.collect.RelCodeBatchRequest; +import com.glxp.api.req.collect.RelCodeDetailRequest; +import com.glxp.api.res.PageSimpleResponse; +import com.glxp.api.res.collect.RelCodeBatchResponse; +import com.glxp.api.res.collect.RelCodeDetailResponse; import com.glxp.api.service.collect.RelCodeDetailService; import lombok.extern.slf4j.Slf4j; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -24,6 +32,32 @@ public class RelCodeDetailController extends BaseController { @Resource private RelCodeDetailService relCodeDetailService; + + + /** + * 扫码 + * @param relCodeDetailRequest + * @return + */ + @RepeatSubmit() + @PostMapping("/udiwms/relCode/detail/scanCode") + public BaseResponse scanCode(@RequestBody @Valid RelCodeDetailRequest relCodeDetailRequest, BindingResult bindingResult) { + RelCodeDetailResponse relCodeDetailResponse = relCodeDetailService.scanCode(relCodeDetailRequest); + return ResultVOUtils.success(relCodeDetailResponse); + } + + + @GetMapping("/udiwms/relCode/detail/filter") + public BaseResponse list(RelCodeDetailRequest relCodeDetailRequest, BindingResult bindingResult) { + List relCodeDetailResponses = relCodeDetailService.filterList(relCodeDetailRequest); + PageInfo pageInfo = new PageInfo<>(relCodeDetailResponses); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(relCodeDetailResponses); + return ResultVOUtils.success(pageSimpleResponse); + } + + @GetMapping("/udiwms/relCode/detail/get") public BaseResponse get(Long id) { RelCodeDetail relCodeDetail = relCodeDetailService.getById(id); diff --git a/src/main/java/com/glxp/api/dao/collect/RelCodeDetailMapper.java b/src/main/java/com/glxp/api/dao/collect/RelCodeDetailMapper.java index 0fa24042e..e5b5feabb 100644 --- a/src/main/java/com/glxp/api/dao/collect/RelCodeDetailMapper.java +++ b/src/main/java/com/glxp/api/dao/collect/RelCodeDetailMapper.java @@ -2,8 +2,14 @@ package com.glxp.api.dao.collect; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.glxp.api.entity.collect.RelCodeDetail; +import com.glxp.api.req.collect.RelCodeDetailRequest; +import com.glxp.api.res.collect.RelCodeDetailResponse; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + @Mapper public interface RelCodeDetailMapper extends BaseMapper { -} \ No newline at end of file + List filterList(RelCodeDetailRequest relCodeDetailRequest); + +} diff --git a/src/main/java/com/glxp/api/entity/collect/RelCodeBatch.java b/src/main/java/com/glxp/api/entity/collect/RelCodeBatch.java index aa307c3a2..6b21f11bb 100644 --- a/src/main/java/com/glxp/api/entity/collect/RelCodeBatch.java +++ b/src/main/java/com/glxp/api/entity/collect/RelCodeBatch.java @@ -95,4 +95,20 @@ public class RelCodeBatch implements Serializable { @ApiModelProperty(value="负责人") private String lineManager; + @TableField(value = "createTime") + @ApiModelProperty(value = "") + private Date createTime; + + @TableField(value = "`createUser`") + @ApiModelProperty(value = "") + private String createUser; + + @TableField(value = "updateTime") + @ApiModelProperty(value = "") + private Date updateTime; + + @TableField(value = "updateUser") + @ApiModelProperty(value = "") + private String updateUser; + } diff --git a/src/main/java/com/glxp/api/req/collect/RelCodeBatchRequest.java b/src/main/java/com/glxp/api/req/collect/RelCodeBatchRequest.java index a10ebf118..51c239487 100644 --- a/src/main/java/com/glxp/api/req/collect/RelCodeBatchRequest.java +++ b/src/main/java/com/glxp/api/req/collect/RelCodeBatchRequest.java @@ -1,9 +1,12 @@ 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 lombok.Data; import java.util.Date; +import java.util.List; @Data public class RelCodeBatchRequest extends ListPageRequest { @@ -65,5 +68,15 @@ public class RelCodeBatchRequest extends ListPageRequest { */ private String lineManager; - String keyWords; + private Date createTime; + + private String createUser; + + private Date updateTime; + + private String updateUser; + + private String keyWords; + + private List detailList; } diff --git a/src/main/java/com/glxp/api/req/collect/RelCodeDetailRequest.java b/src/main/java/com/glxp/api/req/collect/RelCodeDetailRequest.java new file mode 100644 index 000000000..3e26b05ac --- /dev/null +++ b/src/main/java/com/glxp/api/req/collect/RelCodeDetailRequest.java @@ -0,0 +1,103 @@ +package com.glxp.api.req.collect; + +import com.glxp.api.util.page.ListPageRequest; +import lombok.Data; + +import java.util.Date; + +@Data +public class RelCodeDetailRequest extends ListPageRequest { + + private Integer id; + + /** + * 当前条码 + */ + private String curCode; + + /** + * 包装级别 + */ + private Integer packLayer; + + /** + * 父级码 + */ + private String parentCode; + + /** + * 状态 + */ + private Integer flag; + + /** + * 产品批次ID外键 + */ + private Integer batchIdFk; + + /** + * 产品编码 + */ + private String productCode; + + /** + * 类型编码 + */ + private String subTypeNo; + + /** + * 包装比例 + */ + private String cascadeRatio; + + /** + * 包装规格 + */ + private String packageSpec; + + /** + * 备注 + */ + private String comment; + + /** + * 批次号 + */ + private String batchNo; + + /** + * 生产日期 + */ + private Date madeDate; + + /** + * 有效期至 + */ + private Date validateDate; + + /** + * 生产车间 + */ + private String workShop; + + /** + * 生产线 + */ + private String lineName; + + /** + * 负责人 + */ + private String lineManager; + + private Date createTime; + + private String createUser; + + private Date updateTime; + + private String updateUser; + + private String keyWords; + +} diff --git a/src/main/java/com/glxp/api/res/collect/RelCodeDetailResponse.java b/src/main/java/com/glxp/api/res/collect/RelCodeDetailResponse.java new file mode 100644 index 000000000..8a8fd4424 --- /dev/null +++ b/src/main/java/com/glxp/api/res/collect/RelCodeDetailResponse.java @@ -0,0 +1,95 @@ +package com.glxp.api.res.collect; + +import com.glxp.api.entity.basic.BasicProductsEntity; +import lombok.Data; + +import java.util.Date; + +@Data +public class RelCodeDetailResponse { + + private Integer id; + + /** + * 当前条码 + */ + private String curCode; + + /** + * 包装级别 + */ + private Integer packLayer; + + /** + * 父级码 + */ + private String parentCode; + + /** + * 状态 + */ + private Integer flag; + + /** + * 产品批次ID外键 + */ + private Integer batchIdFk; + + //=======================具体详情======================== + + /** + * 产品编码 + */ + private String productCode; + + /** + * 类型编码 + */ + private String subTypeNo; + + /** + * 包装比例 + */ + private String cascadeRatio; + + /** + * 包装规格 + */ + private String packageSpec; + + /** + * 备注 + */ + private String comment; + + /** + * 批次号 + */ + private String batchNo; + + /** + * 生产日期 + */ + private Date madeDate; + + /** + * 有效期至 + */ + private Date validateDate; + + /** + * 生产车间 + */ + private String workShop; + + /** + * 生产线 + */ + private String lineName; + + /** + * 负责人 + */ + private String lineManager; + +} diff --git a/src/main/java/com/glxp/api/service/collect/RelCodeBatchService.java b/src/main/java/com/glxp/api/service/collect/RelCodeBatchService.java index 494604f6a..055af38e3 100644 --- a/src/main/java/com/glxp/api/service/collect/RelCodeBatchService.java +++ b/src/main/java/com/glxp/api/service/collect/RelCodeBatchService.java @@ -1,15 +1,21 @@ package com.glxp.api.service.collect; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.io.FileUtil; +import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.XmlUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.github.pagehelper.PageHelper; +import com.glxp.api.entity.auth.AuthAdmin; import com.glxp.api.entity.collect.RelCodeDetail; import com.glxp.api.exception.JsonException; import com.glxp.api.req.collect.RelCodeBatchRequest; +import com.glxp.api.req.collect.RelCodeDetailRequest; import com.glxp.api.res.collect.RelCodeBatchResponse; +import com.glxp.api.service.auth.CustomerService; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.glxp.api.dao.collect.RelCodeBatchMapper; @@ -24,6 +30,7 @@ import org.w3c.dom.NodeList; import javax.annotation.Resource; import java.util.ArrayList; import java.util.Collections; +import java.util.Date; import java.util.List; @Service @@ -33,6 +40,8 @@ public class RelCodeBatchService extends ServiceImpl detailList = relCodeBatchRequest.getDetailList(); + if(CollUtil.isEmpty(detailList)){ + throw new JsonException("关联明细不能为空!"); + } + AuthAdmin user = customerService.getUserBean(); + RelCodeBatch relCodeBatch = new RelCodeBatch(); + relCodeBatch.setCreateTime(new Date()); + relCodeBatch.setCreateUser(user.getUserName()); + relCodeBatch.setUpdateTime(new Date()); + relCodeBatch.setUpdateUser(user.getUserName()); + BeanUtils.copyProperties(relCodeBatchRequest,relCodeBatch); + this.save(relCodeBatch); + List relCodeDetails = new ArrayList<>(); + for(RelCodeDetailRequest request : detailList){ + RelCodeDetail relCodeDetail = new RelCodeDetail(); + String parentCode = request.getParentCode(); + request.setParentCode(StrUtil.isNotBlank(parentCode)?parentCode:"0"); + BeanUtils.copyProperties(request,relCodeDetail); + relCodeDetail.setBatchIdFk(relCodeBatch.getId()); + relCodeDetails.add(relCodeDetail); + } + relCodeDetailService.saveBatch(relCodeDetails); + } + public List filterList(RelCodeBatchRequest relCodeBatchRequest) { if (relCodeBatchRequest == null) { return Collections.emptyList(); diff --git a/src/main/java/com/glxp/api/service/collect/RelCodeDetailService.java b/src/main/java/com/glxp/api/service/collect/RelCodeDetailService.java index 2ee1758ae..05e4b5b21 100644 --- a/src/main/java/com/glxp/api/service/collect/RelCodeDetailService.java +++ b/src/main/java/com/glxp/api/service/collect/RelCodeDetailService.java @@ -1,7 +1,16 @@ package com.glxp.api.service.collect; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.github.pagehelper.PageHelper; +import com.glxp.api.dao.basic.BasicProductsDao; +import com.glxp.api.entity.basic.BasicProductsEntity; +import com.glxp.api.exception.JsonException; +import com.glxp.api.req.collect.RelCodeDetailRequest; +import com.glxp.api.res.collect.RelCodeDetailResponse; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.Collections; import java.util.List; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.glxp.api.dao.collect.RelCodeDetailMapper; @@ -9,4 +18,49 @@ import com.glxp.api.entity.collect.RelCodeDetail; @Service public class RelCodeDetailService extends ServiceImpl { + @Resource + private BasicProductsDao basicProductsDao; + + /** + * 扫码获取子集 + * @param relCodeDetailRequest + * @return + */ + public RelCodeDetailResponse scanCode(RelCodeDetailRequest relCodeDetailRequest) { + //todo 查询子集 + String parentCode = relCodeDetailRequest.getParentCode(); + if(StrUtil.isBlank(parentCode)){ + throw new JsonException("父级码不能为空"); + } + RelCodeDetailResponse relCodeDetailResponse = new RelCodeDetailResponse(); + LambdaQueryWrapper qw = new LambdaQueryWrapper() + .eq(BasicProductsEntity::getNameCode, relCodeDetailRequest.getParentCode()) + .last("limit 1"); + BasicProductsEntity basicProductsEntity = basicProductsDao.selectOne(qw); + if(basicProductsEntity == null){ + throw new JsonException(""); + } + relCodeDetailResponse.setCurCode(basicProductsEntity.getNameCode()); + relCodeDetailResponse.setPackLayer(Integer.valueOf(basicProductsEntity.getPackLevel())); + relCodeDetailResponse.setParentCode(parentCode); + relCodeDetailResponse.setFlag(Integer.valueOf(basicProductsEntity.getMajorStatus())); + return relCodeDetailResponse; + } + + /** + * 明细列表 + * @param relCodeDetailRequest + * @return + */ + public List filterList(RelCodeDetailRequest relCodeDetailRequest) { + if (relCodeDetailRequest == null) { + return Collections.emptyList(); + } + if (relCodeDetailRequest.getPage() != null) { + int offset = (relCodeDetailRequest.getPage() - 1) * relCodeDetailRequest.getLimit(); + PageHelper.offsetPage(offset, relCodeDetailRequest.getLimit()); + } + return this.baseMapper.filterList(relCodeDetailRequest); + } + } diff --git a/src/main/resources/mybatis/mapper/collect/RelCodeDetailMapper.xml b/src/main/resources/mybatis/mapper/collect/RelCodeDetailMapper.xml index ebe95c308..df48c153a 100644 --- a/src/main/resources/mybatis/mapper/collect/RelCodeDetailMapper.xml +++ b/src/main/resources/mybatis/mapper/collect/RelCodeDetailMapper.xml @@ -15,4 +15,51 @@ id, curCode, packLayer, parentCode, flag, batchIdFk - \ No newline at end of file + + +