From 883084f4c5da991d0f7a5a933e787ffda5d2dfed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E6=98=8E=E6=A2=81?= <2429105222@qq.com> Date: Wed, 5 Jul 2023 14:33:32 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9A=E6=95=B0=E5=8C=85=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basic/BasicDestinyRelController.java | 1 + .../inout/IoDestinyProcessController.java | 139 ++++++++++++ .../dao/inout/IoDestinyProcessCodeMapper.java | 6 + .../inout/IoDestinyProcessDetailMapper.java | 16 +- .../inout/IoDestinyProcessCodeEntity.java | 11 + .../inout/IoDestinyProcessDetailEntity.java | 11 + .../entity/inout/IoDestinyProcessEntity.java | 4 +- .../api/req/basic/FilterUdiRelRequest.java | 10 + .../req/inout/IodestinyProcessRequest.java | 15 ++ .../api/res/basic/UdiRelevanceResponse.java | 2 + .../res/inout/IodestinyProcessResponse.java | 101 +++++++++ .../inout/IoDestinyProcessCodeService.java | 7 + .../inout/IoDestinyProcessDetailService.java | 16 ++ .../inout/IoDestinyProcessService.java | 8 + .../impl/IoDestinyProcessCodeServiceImpl.java | 20 ++ .../IoDestinyProcessDetailServiceImpl.java | 212 +++++++++++++++++- .../impl/IoDestinyProcessServiceImpl.java | 45 ++++ .../mapper/basic/BasicDestinyRelMapper.xml | 4 + .../inout/IoDestinyProcessCodeMapper.xml | 25 +++ .../inout/IoDestinyProcessDetailMapper.xml | 76 +++++++ 20 files changed, 725 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/glxp/api/controller/inout/IoDestinyProcessController.java create mode 100644 src/main/java/com/glxp/api/req/inout/IodestinyProcessRequest.java create mode 100644 src/main/java/com/glxp/api/res/inout/IodestinyProcessResponse.java diff --git a/src/main/java/com/glxp/api/controller/basic/BasicDestinyRelController.java b/src/main/java/com/glxp/api/controller/basic/BasicDestinyRelController.java index c14fef462..ee5ca7b8b 100644 --- a/src/main/java/com/glxp/api/controller/basic/BasicDestinyRelController.java +++ b/src/main/java/com/glxp/api/controller/basic/BasicDestinyRelController.java @@ -234,6 +234,7 @@ public class BasicDestinyRelController { //查询详情id过滤 List idList = basicDestinyRelService.filterDestinyRelIds(Long.valueOf(filterUdiRelRequest.getId())); if (idList != null && idList.size() > 0) { + filterUdiRelRequest.setDestinyId(filterUdiRelRequest.getId()+""); filterUdiRelRequest.setIds(idList); filterUdiRelRequest.setDiType(1); thrProductsEntities = basicDestinyRelService.filterDestinyProducts(filterUdiRelRequest); diff --git a/src/main/java/com/glxp/api/controller/inout/IoDestinyProcessController.java b/src/main/java/com/glxp/api/controller/inout/IoDestinyProcessController.java new file mode 100644 index 000000000..495b85e5d --- /dev/null +++ b/src/main/java/com/glxp/api/controller/inout/IoDestinyProcessController.java @@ -0,0 +1,139 @@ +package com.glxp.api.controller.inout; + +import com.github.pagehelper.PageInfo; +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.entity.inout.IoDestinyProcessDetailEntity; +import com.glxp.api.req.basic.FilterUdiRelRequest; +import com.glxp.api.req.inout.IodestinyProcessRequest; +import com.glxp.api.res.PageSimpleResponse; +import com.glxp.api.res.basic.UdiRelevanceResponse; +import com.glxp.api.res.inout.IoCodeRelResponse; +import com.glxp.api.res.inout.IodestinyProcessResponse; +import com.glxp.api.service.basic.BasicDestinyRelService; +import com.glxp.api.service.inout.IoDestinyProcessCodeService; +import com.glxp.api.service.inout.IoDestinyProcessDetailService; +import com.glxp.api.service.inout.IoDestinyProcessService; +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; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; + +@RestController +public class IoDestinyProcessController { + + @Resource + private BasicDestinyRelService basicDestinyRelService; + @Resource + private IoDestinyProcessDetailService ioDestinyProcessDetailService; + @Resource + private IoDestinyProcessCodeService ioDestinyProcessCodeService; + @Resource + private IoDestinyProcessService ioDestinyProcessService; + + + @PostMapping("/udiwms/basic/destiny/model/addDestinyDelect") + public BaseResponse addDestinyDelect(@RequestBody FilterUdiRelRequest filterUdiRelRequest, BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + ioDestinyProcessDetailService.insertProcessDetail(filterUdiRelRequest); + + return ResultVOUtils.success(); + } + + @GetMapping("/udiwms/basic/destiny/model/filterDestinyProcessDelect") + public BaseResponse filterDestinyProcessDelect(FilterUdiRelRequest filterUdiRelRequest, BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + List udiRelevanceResponseList = ioDestinyProcessDetailService.filterProcessDetail(filterUdiRelRequest); + + return ResultVOUtils.success(udiRelevanceResponseList); + } + + @GetMapping("/udiwms/basic/destiny/model/filterDestinyProcess") + public BaseResponse filterDestinyProcess(IodestinyProcessRequest iodestinyProcessRequest, BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + List iodestinyProcessResponseList = ioDestinyProcessDetailService.filterDestinyProcess(iodestinyProcessRequest); + PageInfo pageInfo; + pageInfo = new PageInfo<>(iodestinyProcessResponseList); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(iodestinyProcessResponseList); + + return ResultVOUtils.success(pageSimpleResponse); + } + + @GetMapping("/udiwms/basic/destiny/model/checkDestinyProcess") + public BaseResponse checkDestinyProcess(IodestinyProcessRequest iodestinyProcessRequest, BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + BaseResponse baseResponse = ioDestinyProcessDetailService.checkDestinyProcess(iodestinyProcessRequest); + + + return baseResponse; + } + + @GetMapping("/udiwms/basic/destiny/model/filterDestinyProcessCode") + public BaseResponse filterDestinyProcessCode(IodestinyProcessRequest iodestinyProcessRequest, BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + List iodestinyProcessResponseList = ioDestinyProcessCodeService.filterDestinyProcessCode(iodestinyProcessRequest); + PageInfo pageInfo; + pageInfo = new PageInfo<>(iodestinyProcessResponseList); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(iodestinyProcessResponseList); + + return ResultVOUtils.success(pageSimpleResponse); + } + + @GetMapping("/udiwms/basic/destiny/model/addDestinyProcess") + public BaseResponse addDestinyProcess(IodestinyProcessRequest iodestinyProcessRequest, BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + List ioDestinyProcessDetailEntityList= ioDestinyProcessDetailService.addDestinyProcess(iodestinyProcessRequest); + + for (IoDestinyProcessDetailEntity ioDestinyProcessDetailEntity : ioDestinyProcessDetailEntityList) { + if(ioDestinyProcessDetailEntity.getCount()-ioDestinyProcessDetailEntity.getReCount()>0){ + return ResultVOUtils.error(999,"该单还未完全扫码校验!"); + } + } + //更新状态 + ioDestinyProcessService.uploadDestinyProcess(iodestinyProcessRequest); + + return ResultVOUtils.success(); + } + + @GetMapping("/udiwms/basic/destiny/model/delectDestinyProcess") + public BaseResponse delectDestinyProcess(IodestinyProcessRequest iodestinyProcessRequest, BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + + //更新状态 + ioDestinyProcessService.delectDestinyProcess(iodestinyProcessRequest); + + return ResultVOUtils.success(); + } + +} diff --git a/src/main/java/com/glxp/api/dao/inout/IoDestinyProcessCodeMapper.java b/src/main/java/com/glxp/api/dao/inout/IoDestinyProcessCodeMapper.java index 01a97f2b2..f52bd6d16 100644 --- a/src/main/java/com/glxp/api/dao/inout/IoDestinyProcessCodeMapper.java +++ b/src/main/java/com/glxp/api/dao/inout/IoDestinyProcessCodeMapper.java @@ -2,8 +2,14 @@ package com.glxp.api.dao.inout; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.glxp.api.entity.inout.IoDestinyProcessCodeEntity; +import com.glxp.api.req.inout.IodestinyProcessRequest; +import com.glxp.api.res.inout.IodestinyProcessResponse; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + @Mapper public interface IoDestinyProcessCodeMapper extends BaseMapper { + + List filterDestinyProcessCode(IodestinyProcessRequest iodestinyProcessRequest); } \ No newline at end of file diff --git a/src/main/java/com/glxp/api/dao/inout/IoDestinyProcessDetailMapper.java b/src/main/java/com/glxp/api/dao/inout/IoDestinyProcessDetailMapper.java index 6c9c05b32..3c59f7e55 100644 --- a/src/main/java/com/glxp/api/dao/inout/IoDestinyProcessDetailMapper.java +++ b/src/main/java/com/glxp/api/dao/inout/IoDestinyProcessDetailMapper.java @@ -1,9 +1,23 @@ package com.glxp.api.dao.inout; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.glxp.api.dao.BaseMapperPlus; +import com.glxp.api.entity.inout.IoCodeTempEntity; import com.glxp.api.entity.inout.IoDestinyProcessDetailEntity; +import com.glxp.api.req.basic.FilterUdiRelRequest; +import com.glxp.api.req.inout.IodestinyProcessRequest; +import com.glxp.api.res.basic.UdiRelevanceResponse; +import com.glxp.api.res.inout.IodestinyProcessResponse; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + @Mapper -public interface IoDestinyProcessDetailMapper extends BaseMapper { +public interface IoDestinyProcessDetailMapper extends BaseMapperPlus { + + List filterDestinyProducts(FilterUdiRelRequest filterUdiRelRequest); + + List filterDestinyProcess(IodestinyProcessRequest iodestinyProcessRequest); + + } \ No newline at end of file diff --git a/src/main/java/com/glxp/api/entity/inout/IoDestinyProcessCodeEntity.java b/src/main/java/com/glxp/api/entity/inout/IoDestinyProcessCodeEntity.java index 0a1b789e3..ab955ed8d 100644 --- a/src/main/java/com/glxp/api/entity/inout/IoDestinyProcessCodeEntity.java +++ b/src/main/java/com/glxp/api/entity/inout/IoDestinyProcessCodeEntity.java @@ -79,4 +79,15 @@ public class IoDestinyProcessCodeEntity { @TableField(value = "updateTime") private Date updateTime; + + @TableField(value = "code") + private String code; + + + @TableField(value = "serialNo") + private String serialNo; + + @TableField(value = "reCount") + private int reCount; + } \ No newline at end of file diff --git a/src/main/java/com/glxp/api/entity/inout/IoDestinyProcessDetailEntity.java b/src/main/java/com/glxp/api/entity/inout/IoDestinyProcessDetailEntity.java index 864eb342a..70970557c 100644 --- a/src/main/java/com/glxp/api/entity/inout/IoDestinyProcessDetailEntity.java +++ b/src/main/java/com/glxp/api/entity/inout/IoDestinyProcessDetailEntity.java @@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; +import java.util.Date; + /** * 定数包产品关联表 */ @@ -32,4 +34,13 @@ public class IoDestinyProcessDetailEntity { */ @TableField(value = "reCount") private Integer reCount; + + @TableField(value = "updateTime") + private Date updateTime; + + /** + * 订单号外键 + */ + @TableField(value = "orderIdFk") + private String orderIdFk; } \ No newline at end of file diff --git a/src/main/java/com/glxp/api/entity/inout/IoDestinyProcessEntity.java b/src/main/java/com/glxp/api/entity/inout/IoDestinyProcessEntity.java index 4f502b5b2..96da4722a 100644 --- a/src/main/java/com/glxp/api/entity/inout/IoDestinyProcessEntity.java +++ b/src/main/java/com/glxp/api/entity/inout/IoDestinyProcessEntity.java @@ -20,13 +20,13 @@ public class IoDestinyProcessEntity { * 定数包模板id */ @TableField(value = "destinyId") - private Long destinyId; + private String destinyId; /** * 唯一编码 */ @TableField(value = "destinyNo") - private Long destinyNo; + private String destinyNo; /** * 单据号 diff --git a/src/main/java/com/glxp/api/req/basic/FilterUdiRelRequest.java b/src/main/java/com/glxp/api/req/basic/FilterUdiRelRequest.java index 9d4ac2525..e793b3db6 100644 --- a/src/main/java/com/glxp/api/req/basic/FilterUdiRelRequest.java +++ b/src/main/java/com/glxp/api/req/basic/FilterUdiRelRequest.java @@ -3,6 +3,7 @@ package com.glxp.api.req.basic; import com.glxp.api.util.page.ListPageRequest; import lombok.Data; +import java.util.Date; import java.util.List; @Data @@ -89,4 +90,13 @@ public class FilterUdiRelRequest extends ListPageRequest { private String basicPrductRemak7; private String basicPrductRemak8; + //定数包参数 + private String destinyId; + private String destinyNo; + private String billNo; + private Date billDate; + private String invCode; + private String remark; + + } diff --git a/src/main/java/com/glxp/api/req/inout/IodestinyProcessRequest.java b/src/main/java/com/glxp/api/req/inout/IodestinyProcessRequest.java new file mode 100644 index 000000000..5ef885472 --- /dev/null +++ b/src/main/java/com/glxp/api/req/inout/IodestinyProcessRequest.java @@ -0,0 +1,15 @@ +package com.glxp.api.req.inout; + +import com.glxp.api.util.page.ListPageRequest; +import lombok.Data; + +@Data +public class IodestinyProcessRequest extends ListPageRequest { + + private String billNo; + + private String invCode; + + private String code; + +} diff --git a/src/main/java/com/glxp/api/res/basic/UdiRelevanceResponse.java b/src/main/java/com/glxp/api/res/basic/UdiRelevanceResponse.java index dde051c2d..4d588f774 100644 --- a/src/main/java/com/glxp/api/res/basic/UdiRelevanceResponse.java +++ b/src/main/java/com/glxp/api/res/basic/UdiRelevanceResponse.java @@ -100,6 +100,8 @@ public class UdiRelevanceResponse { private String relCode; private int index; + private int reCount; + //关联查询字典 private String unitFk; //供应商ID private String companyName; //供应商名称 diff --git a/src/main/java/com/glxp/api/res/inout/IodestinyProcessResponse.java b/src/main/java/com/glxp/api/res/inout/IodestinyProcessResponse.java new file mode 100644 index 000000000..0701fa134 --- /dev/null +++ b/src/main/java/com/glxp/api/res/inout/IodestinyProcessResponse.java @@ -0,0 +1,101 @@ +package com.glxp.api.res.inout; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.glxp.api.util.page.ListPageRequest; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +@Data +public class IodestinyProcessResponse { + + + private Long id; + + private String destinyId; + + private String destinyNo; + + private String billNo; + + private Date billDate; + + private String invCode; + + private String remark; + + private Date createTime; + + private Date updateTime; + + private String createUser; + + private String updateUser; + + private Integer status; + + private String invName; + + private String updateName; + private String createName; + private String code; + + private String serialNo; + private String productDate; + private String expireDate; + private BigDecimal price; + private String batchNo; + private int count; + private int reCount; + + + + + //产品 + private String originUuid; + private String nameCode; + private String deviceRecordKey; + private String packRatio; + private String packLevel; + private String packUnit; + private Integer bhxjsl; + private Integer bhzxxsbzsl; + private Integer zxxsbzbhsydysl; + private String bhxjcpbm; + private String bzcj; + private String cpmctymc; + private String cplb; + private String flbm; + private String ggxh; + private String qxlb; + private String tyshxydm; + private String ylqxzcrbarmc; + private String zczbhhzbapzbh; + private String ylqxzcrbarywmc; + private String sydycpbs; + private String sjcpbm; + private Integer versionNumber; + private Integer diType; + private String ybbm; + private String sptm; + private String manufactory; + private String measname; + private Integer productType; + private String scbssfbhph; + private String scbssfbhxlh; + private String scbssfbhscrq; + private String scbssfbhsxrq; + private String cpms; + private Boolean allowNoBatch; + private Boolean allowNoExpire; + private Boolean allowNoProduct; + private Boolean allowNoSerial; + private String spmc; + private String cplx; + private String hchzsb; + private String cpdls; + +} diff --git a/src/main/java/com/glxp/api/service/inout/IoDestinyProcessCodeService.java b/src/main/java/com/glxp/api/service/inout/IoDestinyProcessCodeService.java index 76a0e54fb..c7abffd21 100644 --- a/src/main/java/com/glxp/api/service/inout/IoDestinyProcessCodeService.java +++ b/src/main/java/com/glxp/api/service/inout/IoDestinyProcessCodeService.java @@ -2,7 +2,14 @@ package com.glxp.api.service.inout; import com.glxp.api.entity.inout.IoDestinyProcessCodeEntity; import com.baomidou.mybatisplus.extension.service.IService; +import com.glxp.api.req.inout.IodestinyProcessRequest; +import com.glxp.api.res.inout.IodestinyProcessResponse; + +import java.util.List; + public interface IoDestinyProcessCodeService{ + List filterDestinyProcessCode(IodestinyProcessRequest iodestinyProcessRequest); + } diff --git a/src/main/java/com/glxp/api/service/inout/IoDestinyProcessDetailService.java b/src/main/java/com/glxp/api/service/inout/IoDestinyProcessDetailService.java index b51861a54..d6d1c6bad 100644 --- a/src/main/java/com/glxp/api/service/inout/IoDestinyProcessDetailService.java +++ b/src/main/java/com/glxp/api/service/inout/IoDestinyProcessDetailService.java @@ -1,8 +1,24 @@ package com.glxp.api.service.inout; +import com.glxp.api.common.res.BaseResponse; import com.glxp.api.entity.inout.IoDestinyProcessDetailEntity; import com.baomidou.mybatisplus.extension.service.IService; +import com.glxp.api.req.basic.FilterUdiRelRequest; +import com.glxp.api.req.inout.IodestinyProcessRequest; +import com.glxp.api.res.basic.UdiRelevanceResponse; +import com.glxp.api.res.inout.IodestinyProcessResponse; + +import java.util.List; + public interface IoDestinyProcessDetailService{ + Boolean insertProcessDetail(FilterUdiRelRequest filterUdiRelRequest); + + List addDestinyProcess(IodestinyProcessRequest iodestinyProcessRequest); + + List filterProcessDetail(FilterUdiRelRequest filterUdiRelRequest); + + List filterDestinyProcess(IodestinyProcessRequest iodestinyProcessRequest); + BaseResponse checkDestinyProcess(IodestinyProcessRequest iodestinyProcessRequest); } diff --git a/src/main/java/com/glxp/api/service/inout/IoDestinyProcessService.java b/src/main/java/com/glxp/api/service/inout/IoDestinyProcessService.java index 24633790e..bdf36276a 100644 --- a/src/main/java/com/glxp/api/service/inout/IoDestinyProcessService.java +++ b/src/main/java/com/glxp/api/service/inout/IoDestinyProcessService.java @@ -1,6 +1,14 @@ package com.glxp.api.service.inout; +import com.glxp.api.req.basic.FilterUdiRelRequest; +import com.glxp.api.req.inout.IodestinyProcessRequest; + public interface IoDestinyProcessService{ + Boolean uploadDestinyProcess(IodestinyProcessRequest iodestinyProcessRequest); + + Boolean delectDestinyProcess(IodestinyProcessRequest iodestinyProcessRequest); + + } diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoDestinyProcessCodeServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoDestinyProcessCodeServiceImpl.java index e98d51ac2..621fd43b2 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoDestinyProcessCodeServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoDestinyProcessCodeServiceImpl.java @@ -1,8 +1,28 @@ package com.glxp.api.service.inout.impl; +import com.github.pagehelper.PageHelper; +import com.glxp.api.dao.inout.IoDestinyProcessCodeMapper; +import com.glxp.api.req.inout.IodestinyProcessRequest; +import com.glxp.api.res.inout.IodestinyProcessResponse; import org.springframework.stereotype.Service; import com.glxp.api.service.inout.IoDestinyProcessCodeService; + +import javax.annotation.Resource; +import java.util.List; + @Service public class IoDestinyProcessCodeServiceImpl implements IoDestinyProcessCodeService { + @Resource + IoDestinyProcessCodeMapper ioDestinyProcessCodeMapper; + + @Override + public List filterDestinyProcessCode(IodestinyProcessRequest iodestinyProcessRequest) { + + if (iodestinyProcessRequest.getPage() != null) { + int offset = (iodestinyProcessRequest.getPage() - 1) * iodestinyProcessRequest.getLimit(); + PageHelper.offsetPage(offset, iodestinyProcessRequest.getLimit()); + } + return ioDestinyProcessCodeMapper.filterDestinyProcessCode(iodestinyProcessRequest); + } } diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoDestinyProcessDetailServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoDestinyProcessDetailServiceImpl.java index 5812f8875..b89b3c989 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoDestinyProcessDetailServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoDestinyProcessDetailServiceImpl.java @@ -1,11 +1,221 @@ package com.glxp.api.service.inout.impl; +import cn.hutool.core.util.IdUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.github.pagehelper.PageHelper; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.dao.inout.IoDestinyProcessCodeMapper; +import com.glxp.api.dao.inout.IoDestinyProcessMapper; +import com.glxp.api.entity.auth.AuthAdmin; +import com.glxp.api.entity.basic.UdiEntity; +import com.glxp.api.entity.inout.IoDestinyProcessCodeEntity; +import com.glxp.api.entity.inout.IoDestinyProcessEntity; +import com.glxp.api.req.basic.FilterUdiRelRequest; +import com.glxp.api.req.inout.IodestinyProcessRequest; +import com.glxp.api.res.basic.UdiRelevanceResponse; +import com.glxp.api.res.inout.IodestinyProcessResponse; +import com.glxp.api.service.auth.CustomerService; +import com.glxp.api.service.basic.BasicDestinyRelService; +import com.glxp.api.service.basic.UdiRelevanceService; +import com.glxp.api.service.inout.IoDestinyProcessService; +import com.glxp.api.util.udi.FilterUdiUtils; +import com.glxp.api.util.udi.UdiCalCountUtil; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.glxp.api.dao.inout.IoDestinyProcessDetailMapper; import com.glxp.api.entity.inout.IoDestinyProcessDetailEntity; import com.glxp.api.service.inout.IoDestinyProcessDetailService; + +import javax.annotation.Resource; +import java.awt.geom.QuadCurve2D; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Date; +import java.util.List; + @Service -public class IoDestinyProcessDetailServiceImpl implements IoDestinyProcessDetailService{ +public class IoDestinyProcessDetailServiceImpl implements IoDestinyProcessDetailService { + + + @Resource + private BasicDestinyRelService basicDestinyRelService; + @Resource + private IoDestinyProcessDetailMapper ioDestinyProcessDetailMapper; + @Resource + private IoDestinyProcessCodeMapper ioDestinyProcessCodeMapper; + + @Resource + CustomerService customerService; + @Resource + IoDestinyProcessMapper ioDestinyProcessMapper; + @Resource + UdiRelevanceService udiRelevanceService; + @Resource + UdiCalCountUtil udiCalCountUtil; + + + @Override + public Boolean insertProcessDetail(FilterUdiRelRequest filterUdiRelRequest) { + //删除原数据 + QueryWrapper ew=new QueryWrapper<>(); + ew.eq("orderIdFk",filterUdiRelRequest.getBillNo()); + long count= ioDestinyProcessDetailMapper.delete(ew); + + QueryWrapper ew1=new QueryWrapper<>(); + ew1.eq("orderIdFk",filterUdiRelRequest.getBillNo()); + ioDestinyProcessCodeMapper.delete(ew1); + filterUdiRelRequest.setDestinyId(filterUdiRelRequest.getDestinyId()); + filterUdiRelRequest.setDiType(1); + List thrProductsEntities = basicDestinyRelService.filterDestinyProducts(filterUdiRelRequest); + + AuthAdmin authAdmin= customerService.getUserBean(); + IoDestinyProcessEntity ioDestinyProcessEntity=new IoDestinyProcessEntity(); + // 插入主表 + if(count>0){ + QueryWrapper ew2=new QueryWrapper<>(); + ew2.eq("billNo",filterUdiRelRequest.getBillNo()); + ioDestinyProcessEntity=ioDestinyProcessMapper.selectOne(ew2); + ioDestinyProcessEntity.setCreateTime(new Date()); + ioDestinyProcessEntity.setUpdateTime(new Date()); + ioDestinyProcessEntity.setCreateUser(authAdmin.getId() + ""); + ioDestinyProcessEntity.setUpdateUser(authAdmin.getId() + ""); + ioDestinyProcessEntity.setInvCode(filterUdiRelRequest.getInvCode()); + ioDestinyProcessEntity.setRemark(filterUdiRelRequest.getRemark()); + ioDestinyProcessMapper.updateById(ioDestinyProcessEntity); + }else{ + ioDestinyProcessEntity.setId(IdUtil.getSnowflakeNextId()); + ioDestinyProcessEntity.setDestinyNo(filterUdiRelRequest.getDestinyNo()); + ioDestinyProcessEntity.setDestinyId(filterUdiRelRequest.getDestinyId()); + ioDestinyProcessEntity.setBillNo(filterUdiRelRequest.getBillNo()); + ioDestinyProcessEntity.setBillDate(filterUdiRelRequest.getBillDate()); + ioDestinyProcessEntity.setRemark(filterUdiRelRequest.getRemark()); + ioDestinyProcessEntity.setInvCode(filterUdiRelRequest.getInvCode()); + ioDestinyProcessEntity.setCreateTime(new Date()); + ioDestinyProcessEntity.setUpdateTime(new Date()); + ioDestinyProcessEntity.setCreateUser(authAdmin.getId() + ""); + ioDestinyProcessEntity.setUpdateUser(authAdmin.getId() + ""); + ioDestinyProcessEntity.setStatus(0); + ioDestinyProcessMapper.insert(ioDestinyProcessEntity); + } + + // 插入详情表 + List ioDestinyProcessDetailEntityList=new ArrayList<>(); + for (UdiRelevanceResponse thrProductsEntity : thrProductsEntities) { + IoDestinyProcessDetailEntity ioDestinyProcessDetailEntity=new IoDestinyProcessDetailEntity(); + ioDestinyProcessDetailEntity.setId(IdUtil.getSnowflakeNextId()); + ioDestinyProcessDetailEntity.setCount(thrProductsEntity.getCount()); + ioDestinyProcessDetailEntity.setRelId(thrProductsEntity.getId()); + ioDestinyProcessDetailEntity.setReCount(0); + ioDestinyProcessDetailEntity.setUpdateTime(new Date()); + ioDestinyProcessDetailEntity.setOrderIdFk(ioDestinyProcessEntity.getBillNo()); + ioDestinyProcessDetailEntityList.add(ioDestinyProcessDetailEntity); + thrProductsEntity.setReCount(0); + } + ioDestinyProcessDetailMapper.insertBatch(ioDestinyProcessDetailEntityList); + + return true; + } + + @Override + public List addDestinyProcess(IodestinyProcessRequest iodestinyProcessRequest) { + + QueryWrapper ew=new QueryWrapper<>(); + ew.eq("orderIdFk",iodestinyProcessRequest.getBillNo()); + List ioDestinyProcessDetailEntity=ioDestinyProcessDetailMapper.selectList(ew); + return ioDestinyProcessDetailEntity; + } + + @Override + public List filterProcessDetail(FilterUdiRelRequest filterUdiRelRequest) { + //查询详情 + List thrProductsEntities = ioDestinyProcessDetailMapper.filterDestinyProducts(filterUdiRelRequest); + return thrProductsEntities; + } + + @Override + public List filterDestinyProcess(IodestinyProcessRequest iodestinyProcessRequest) { + + if (iodestinyProcessRequest.getPage() != null) { + int offset = (iodestinyProcessRequest.getPage() - 1) * iodestinyProcessRequest.getLimit(); + PageHelper.offsetPage(offset, iodestinyProcessRequest.getLimit()); + } + return ioDestinyProcessDetailMapper.filterDestinyProcess(iodestinyProcessRequest); + } + + @Override + public BaseResponse checkDestinyProcess(IodestinyProcessRequest iodestinyProcessRequest) { + + UdiEntity udiEntity = FilterUdiUtils.getUdi(iodestinyProcessRequest.getCode()); + UdiRelevanceResponse checkUdi = udiRelevanceService.selectByNameCode(udiEntity.getUdi()); + if (checkUdi ==null){ + return ResultVOUtils.error(500, "耗材字典不存在此产品!"); + } + QueryWrapper ew=new QueryWrapper<>(); + ew.eq("orderIdFk",iodestinyProcessRequest.getBillNo()); + ew.eq("relId",checkUdi.getRelId()); + IoDestinyProcessDetailEntity ioDestinyProcessDetailEntity=ioDestinyProcessDetailMapper.selectOne(ew); + if(ioDestinyProcessDetailEntity == null){ + return ResultVOUtils.error(500, "定数包不存在此产品!"); + } + if(ioDestinyProcessDetailEntity.getCount()-ioDestinyProcessDetailEntity.getReCount()<=0){ + return ResultVOUtils.error(500, "该产品已足够!"); + } + int count = udiCalCountUtil.getActCount(udiEntity.getUdi()); + ioDestinyProcessDetailEntity.setReCount(ioDestinyProcessDetailEntity.getReCount()+count); + ioDestinyProcessDetailMapper.updateById(ioDestinyProcessDetailEntity); + //判断有没有序列号 + //有 + if (udiEntity.getSerialNo()!=null){ + //插入详细表 + IoDestinyProcessCodeEntity ioDestinyProcessCodeEntity=new IoDestinyProcessCodeEntity(); + ioDestinyProcessCodeEntity.setCode(iodestinyProcessRequest.getCode()); + ioDestinyProcessCodeEntity.setId(IdUtil.getSnowflakeNextId()); + ioDestinyProcessCodeEntity.setOrderIdFk(iodestinyProcessRequest.getBillNo()); + ioDestinyProcessCodeEntity.setBindRlFk(checkUdi.getRelId() + ""); + ioDestinyProcessCodeEntity.setUuidFk(checkUdi.getUuid()); + ioDestinyProcessCodeEntity.setNameCode(checkUdi.getNameCode()); + ioDestinyProcessCodeEntity.setCount(1); + ioDestinyProcessCodeEntity.setReCount(count); + ioDestinyProcessCodeEntity.setProductDate(udiEntity.getProduceDate()); + ioDestinyProcessCodeEntity.setExpireDate(udiEntity.getExpireDate()); + ioDestinyProcessCodeEntity.setBatchNo(udiEntity.getBatchNo()); + ioDestinyProcessCodeEntity.setPrice(checkUdi.getPrice()); + ioDestinyProcessCodeEntity.setSerialNo(udiEntity.getSerialNo()); + ioDestinyProcessCodeEntity.setUpdateTime(new Date()); + ioDestinyProcessCodeMapper.insert(ioDestinyProcessCodeEntity); + }else{ + //无批次号的时候判断是不是第一次是第一次就插入不是第一此就更新 + QueryWrapper ew1=new QueryWrapper<>(); + ew1.eq("code",iodestinyProcessRequest.getCode()); + ew1.eq("orderIdFk",iodestinyProcessRequest.getBillNo()); + ew1.last("limit 1"); + IoDestinyProcessCodeEntity ioDestinyProcessCodeEntity=ioDestinyProcessCodeMapper.selectOne(ew1); + if(ioDestinyProcessCodeEntity==null){ + //插入详细表 + ioDestinyProcessCodeEntity=new IoDestinyProcessCodeEntity(); + ioDestinyProcessCodeEntity.setCode(iodestinyProcessRequest.getCode()); + ioDestinyProcessCodeEntity.setId(IdUtil.getSnowflakeNextId()); + ioDestinyProcessCodeEntity.setOrderIdFk(iodestinyProcessRequest.getBillNo()); + ioDestinyProcessCodeEntity.setBindRlFk(checkUdi.getRelId() + ""); + ioDestinyProcessCodeEntity.setUuidFk(checkUdi.getUuid()); + ioDestinyProcessCodeEntity.setNameCode(checkUdi.getNameCode()); + ioDestinyProcessCodeEntity.setCount(1); + ioDestinyProcessCodeEntity.setReCount(count); + ioDestinyProcessCodeEntity.setProductDate(udiEntity.getProduceDate()); + ioDestinyProcessCodeEntity.setExpireDate(udiEntity.getExpireDate()); + ioDestinyProcessCodeEntity.setBatchNo(udiEntity.getBatchNo()); + ioDestinyProcessCodeEntity.setPrice(checkUdi.getPrice()); + ioDestinyProcessCodeEntity.setSerialNo(udiEntity.getSerialNo()); + ioDestinyProcessCodeEntity.setUpdateTime(new Date()); + ioDestinyProcessCodeMapper.insert(ioDestinyProcessCodeEntity); + return ResultVOUtils.success(); + } + ioDestinyProcessCodeEntity.setCount(ioDestinyProcessCodeEntity.getReCount()+1); + ioDestinyProcessCodeEntity.setReCount(ioDestinyProcessCodeEntity.getReCount()+count); + ioDestinyProcessCodeMapper.updateById(ioDestinyProcessCodeEntity); + } + return ResultVOUtils.success(); + } } diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoDestinyProcessServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoDestinyProcessServiceImpl.java index fa72cff7c..ced10c56e 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoDestinyProcessServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoDestinyProcessServiceImpl.java @@ -1,10 +1,55 @@ package com.glxp.api.service.inout.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.glxp.api.dao.inout.IoDestinyProcessCodeMapper; +import com.glxp.api.dao.inout.IoDestinyProcessDetailMapper; +import com.glxp.api.dao.inout.IoDestinyProcessMapper; +import com.glxp.api.entity.inout.IoDestinyProcessCodeEntity; +import com.glxp.api.entity.inout.IoDestinyProcessDetailEntity; +import com.glxp.api.entity.inout.IoDestinyProcessEntity; +import com.glxp.api.req.inout.IodestinyProcessRequest; import com.glxp.api.service.inout.IoDestinyProcessService; import org.springframework.stereotype.Service; +import javax.annotation.Resource; + @Service public class IoDestinyProcessServiceImpl implements IoDestinyProcessService { + @Resource + IoDestinyProcessMapper ioDestinyProcessMapper; + @Resource + private IoDestinyProcessDetailMapper ioDestinyProcessDetailMapper; + @Resource + private IoDestinyProcessCodeMapper ioDestinyProcessCodeMapper; + + @Override + public Boolean uploadDestinyProcess(IodestinyProcessRequest iodestinyProcessRequest) { + + QueryWrapper ew = new QueryWrapper<>(); + ew.eq("billNo", iodestinyProcessRequest.getBillNo()); + IoDestinyProcessEntity ioDestinyProcessEntity = ioDestinyProcessMapper.selectOne(ew); + ioDestinyProcessEntity.setStatus(2); + ioDestinyProcessMapper.updateById(ioDestinyProcessEntity); + return null; + } + + @Override + public Boolean delectDestinyProcess(IodestinyProcessRequest iodestinyProcessRequest) { + + + QueryWrapper ew=new QueryWrapper<>(); + ew.eq("orderIdFk",iodestinyProcessRequest.getBillNo()); + long count= ioDestinyProcessDetailMapper.delete(ew); + + QueryWrapper ew1=new QueryWrapper<>(); + ew1.eq("orderIdFk",iodestinyProcessRequest.getBillNo()); + ioDestinyProcessCodeMapper.delete(ew1); + + QueryWrapper ew3 = new QueryWrapper<>(); + ew3.eq("billNo", iodestinyProcessRequest.getBillNo()); + ioDestinyProcessMapper.delete(ew3); + return null; + } } diff --git a/src/main/resources/mybatis/mapper/basic/BasicDestinyRelMapper.xml b/src/main/resources/mybatis/mapper/basic/BasicDestinyRelMapper.xml index 4eb4ee9c4..3013cca15 100644 --- a/src/main/resources/mybatis/mapper/basic/BasicDestinyRelMapper.xml +++ b/src/main/resources/mybatis/mapper/basic/BasicDestinyRelMapper.xml @@ -292,7 +292,11 @@ AND basic_products.cpmctymc like concat('%', #{cpmctymc}, '%') + + AND basic_destiny_rel.pId = #{destinyId} + + group by basic_products.uuid diff --git a/src/main/resources/mybatis/mapper/inout/IoDestinyProcessCodeMapper.xml b/src/main/resources/mybatis/mapper/inout/IoDestinyProcessCodeMapper.xml index cb71a6f81..aa8ec5b29 100644 --- a/src/main/resources/mybatis/mapper/inout/IoDestinyProcessCodeMapper.xml +++ b/src/main/resources/mybatis/mapper/inout/IoDestinyProcessCodeMapper.xml @@ -22,4 +22,29 @@ id, orderIdFk, bindRlFk, uuidFk, nameCode, batchNo, productDate, expireDate, price, supId, `count`, updateTime + + + + \ No newline at end of file diff --git a/src/main/resources/mybatis/mapper/inout/IoDestinyProcessDetailMapper.xml b/src/main/resources/mybatis/mapper/inout/IoDestinyProcessDetailMapper.xml index 9357cd2dc..7f483b0a2 100644 --- a/src/main/resources/mybatis/mapper/inout/IoDestinyProcessDetailMapper.xml +++ b/src/main/resources/mybatis/mapper/inout/IoDestinyProcessDetailMapper.xml @@ -13,4 +13,80 @@ id, relId, `count`, reCount + + + + + + \ No newline at end of file