From b8ec2530b16d89056909ff2ececdf41340b51fff Mon Sep 17 00:00:00 2001 From: futian.liu <liufutianyoo@163.com> Date: 星期六, 02 十二月 2023 12:06:41 +0800 Subject: [PATCH] 部门分发详情,明细 --- consum-base/src/main/java/com/consum/base/pojo/query/UsingFormBackQry.java | 76 ++++++ consum-base/src/main/java/com/consum/base/controller/UsingFormBackController.java | 51 +++ consum-base/src/main/java/com/consum/base/service/UsingFormBackService.java | 9 consum-base/src/main/java/com/consum/base/pojo/dto/UsingFormBackDetailDTO.java | 33 ++ consum-base/src/main/java/com/consum/base/pojo/request/baseGoodModel.java | 9 consum-base/src/main/java/com/consum/base/pojo/response/UseInfo.java | 20 + consum-base/src/main/java/com/consum/base/pojo/response/UsingFormBackDetailVO.java | 38 +++ consum-base/src/main/java/com/consum/base/pojo/response/UsingFormBackDetailListVO.java | 27 ++ consum-base/src/main/java/com/consum/base/pojo/response/UsingFormBackGoodsTemplateInfo.java | 25 ++ consum-base/src/main/java/com/consum/base/service/impl/UsingFormBackServiceImpl.java | 298 ++++++++++++++++++++++++ consum-base/src/main/java/com/consum/base/pojo/response/UsingFormBackModelInfo.java | 22 + /dev/null | 43 --- consum-base/src/main/java/com/consum/base/pojo/response/UsingFormBackVO.java | 24 ++ consum-base/src/main/java/com/consum/base/pojo/response/BaseGoodsTemplateInfo.java | 16 + 14 files changed, 633 insertions(+), 58 deletions(-) diff --git a/consum-base/src/main/java/com/consum/base/controller/UsingFormBackController.java b/consum-base/src/main/java/com/consum/base/controller/UsingFormBackController.java index 91699f6..259a48d 100644 --- a/consum-base/src/main/java/com/consum/base/controller/UsingFormBackController.java +++ b/consum-base/src/main/java/com/consum/base/controller/UsingFormBackController.java @@ -1,13 +1,18 @@ package com.consum.base.controller; import com.consum.base.BaseController; +import com.consum.base.core.utils.PageUtil; +import com.consum.base.pojo.query.UsingFormBackQry; import com.consum.base.pojo.request.UsingFormBackParam; +import com.consum.base.pojo.response.UsingFormBackDetailVO; import com.consum.base.service.UsingFormBackService; import com.consum.model.po.FinSysTenantUser; import com.walker.web.ResponseValue; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; +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.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -28,13 +33,51 @@ @ApiOperation(value = "閮ㄩ棬鐗╁搧閫�鍥炲崟鏂板鎺ュ彛", notes = "閮ㄩ棬鐗╁搧閫�鍥炲崟鏂板鎺ュ彛") - @RequestMapping("/add") + @PostMapping("/add") public ResponseValue add(@RequestBody UsingFormBackParam usingFormBackParam) { FinSysTenantUser sysInfo = getSysInfo(); - String tenantId = sysInfo.getTenantId(); - String tenantName = sysInfo.getTenantName(); + if (sysInfo == null) { + return ResponseValue.error("璇峰厛鐧诲綍"); + } usingFormBackService.add(usingFormBackParam, sysInfo); - return null; + return ResponseValue.success(); + } + + + @ApiOperation(value = "閮ㄩ棬鐗╁搧閫�鍥炲崟鏌ヨ鎺ュ彛", notes = "閮ㄩ棬鐗╁搧閫�鍥炲崟鏌ヨ鎺ュ彛") + @GetMapping("/list") + public ResponseValue query(UsingFormBackQry usingFormBackParam) { + FinSysTenantUser sysInfo = getSysInfo(); + if (sysInfo == null) { + return ResponseValue.error("璇峰厛鐧诲綍"); + } + + PageUtil page = usingFormBackService.selectPageByList(usingFormBackParam); + return ResponseValue.success(page); + } + + + @ApiOperation(value = "閮ㄩ棬鐗╁搧閫�鍥炲崟璇︽儏鎺ュ彛", notes = "閮ㄩ棬鐗╁搧閫�鍥炲崟璇︽儏鎺ュ彛") + @GetMapping("/detail") + public ResponseValue detail(Long id) { + FinSysTenantUser sysInfo = getSysInfo(); + if (sysInfo == null) { + return ResponseValue.error("璇峰厛鐧诲綍"); + } + UsingFormBackDetailVO detail = usingFormBackService.getDetail(id); + return ResponseValue.success(detail); + } + + + @ApiOperation(value = "閮ㄩ棬鐗╁搧閫�鍥炴槑缁嗘煡璇㈡帴鍙�", notes = "閮ㄩ棬鐗╁搧閫�鍥炴槑缁嗘煡璇㈡帴鍙�") + @GetMapping("/list/detail") + public ResponseValue queryListDetail(UsingFormBackQry usingFormBackParam) { + FinSysTenantUser sysInfo = getSysInfo(); + if (sysInfo == null) { + return ResponseValue.error("璇峰厛鐧诲綍"); + } + PageUtil result = usingFormBackService.selectPageByDetail(usingFormBackParam); + return ResponseValue.success(result); } } diff --git a/consum-base/src/main/java/com/consum/base/pojo/dto/UserAndTenantInfoDTO.java b/consum-base/src/main/java/com/consum/base/pojo/dto/UserAndTenantInfoDTO.java deleted file mode 100644 index 844cc3c..0000000 --- a/consum-base/src/main/java/com/consum/base/pojo/dto/UserAndTenantInfoDTO.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.consum.base.pojo.dto; - -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - * @author asus - * @version 1.0 - * @description: TODO - * @date 2023/11/24 15:31 - */ -@NoArgsConstructor -@Data -public class UserAndTenantInfoDTO { - - private Long tenantId; - private String tenantName; - - private Long departId; - private String departName; - - private Long sysUserId; - private String userName; -} diff --git a/consum-base/src/main/java/com/consum/base/pojo/dto/UsingFormBackDetailDTO.java b/consum-base/src/main/java/com/consum/base/pojo/dto/UsingFormBackDetailDTO.java new file mode 100644 index 0000000..7f704c3 --- /dev/null +++ b/consum-base/src/main/java/com/consum/base/pojo/dto/UsingFormBackDetailDTO.java @@ -0,0 +1,33 @@ +package com.consum.base.pojo.dto; + +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author asus + * @version 1.0 + * @description: 閫�鍥炲崟璇︽儏 + * @date 2023/12/1 18:22 + */ +@NoArgsConstructor +@Data +public class UsingFormBackDetailDTO { + + private Long id; + private String departmentName; + private String procureDoc; + private String businessFormCode; + private Integer counts; + private String goodsUserName; + private String classification; + private String operatorName; + private String categoryName; + private String agencyName; + private String unit; + private Long dealTime; + private String baseGoodsTemplateName; + private String baseGoodsModelsName; + private Integer useCount; + private Long baseGoodsModelsId; + private Long baseGoodsTemplateId; +} diff --git a/consum-base/src/main/java/com/consum/base/pojo/query/UsingFormBackQry.java b/consum-base/src/main/java/com/consum/base/pojo/query/UsingFormBackQry.java new file mode 100644 index 0000000..6c4cc70 --- /dev/null +++ b/consum-base/src/main/java/com/consum/base/pojo/query/UsingFormBackQry.java @@ -0,0 +1,76 @@ +package com.consum.base.pojo.query; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author asus + * @version 1.0 + * @description: 鐗╁搧閫�鍥炴煡璇㈡潯浠� + * @date 2023/12/1 15:32 + */ +@Data +@ApiModel +public class UsingFormBackQry { + + @ApiModelProperty(value = "涓婚敭") + private Long id; + /** + * 閫�鍥炲崟鍙� + */ + @ApiModelProperty(value = "閫�鍥炲崟鍙�") + private String businessFormCode; + /** + * 鍒嗗彂閮ㄩ棬id + */ + @ApiModelProperty(value = "鍒嗗彂閮ㄩ棬id") + private Long departmentId; + /** + * 鐗╁搧妯$増鍚嶇О + */ + @ApiModelProperty(value = "鐗╁搧妯$増鍚嶇О") + private String goodsTemplateName; + /** + * 鐗╁搧妯$増id + */ + @ApiModelProperty(value = "鐗╁搧妯$増id") + private String goodsTemplateId; + /** + * 寮�濮嬫椂闂� + */ + @ApiModelProperty(value = "寮�濮嬫椂闂�") + private Long startTime; + /** + * 缁撴潫鏃堕棿 + */ + @ApiModelProperty(value = "缁撴潫鏃堕棿") + private Long endTime; + /** + * 瑙勬牸鍨嬪彿id + */ + @ApiModelProperty(value = "瑙勬牸鍨嬪彿id") + private Long baseGoodsModelsId; + /** + * 鏈烘瀯 + */ + @ApiModelProperty(value = "鏈烘瀯") + private Long agencyId; + + /** + * 鍒涘缓浜� + */ + @ApiModelProperty(value = "鍒涘缓浜�") + private String createName; + + /** + * 椤电爜 + */ + @ApiModelProperty(value = "椤电爜") + private Integer pageNum; + /** + * 椤靛ぇ灏� + */ + @ApiModelProperty(value = "椤靛ぇ灏�") + private Integer pageSize; +} diff --git a/consum-base/src/main/java/com/consum/base/pojo/request/UseInfo.java b/consum-base/src/main/java/com/consum/base/pojo/request/UseInfo.java deleted file mode 100644 index 94f4058..0000000 --- a/consum-base/src/main/java/com/consum/base/pojo/request/UseInfo.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.consum.base.pojo.request; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -/** - * @author asus - * @version 1.0 - * @description: 浣跨敤浜轰俊鎭� - * @date 2023/12/1 13:27 - */ -@Data -@ApiModel -public class UseInfo { - - @ApiModelProperty(value = "浣跨敤浜哄鍚�") - private String useName; - @ApiModelProperty(value = "鍒嗗彂鏁伴噺") - private Integer num; - @ApiModelProperty(value = "鍙��鏁伴噺") - private Integer backNum; - @ApiModelProperty(value = "閫�鍥炴暟閲�") - private Integer returnNum; - -} diff --git a/consum-base/src/main/java/com/consum/base/pojo/request/baseGoodModel.java b/consum-base/src/main/java/com/consum/base/pojo/request/baseGoodModel.java index e568826..287c4ce 100644 --- a/consum-base/src/main/java/com/consum/base/pojo/request/baseGoodModel.java +++ b/consum-base/src/main/java/com/consum/base/pojo/request/baseGoodModel.java @@ -2,7 +2,6 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; -import java.util.List; import lombok.Data; /** @@ -16,20 +15,17 @@ public class baseGoodModel { @ApiModelProperty(value = "鍟嗗搧妯″瀷id") - private String baseGoodsModelsId; - @ApiModelProperty(value = "鍟嗗搧妯″瀷鍚嶇О") - private String baseGoodsModelsName; + private Long baseGoodsModelsId; @ApiModelProperty(value = "鍗曚綅") private String unit; @ApiModelProperty(value = "鐗╁搧绫诲瀷 A,B,C") - private String goodType; + private String classification; private Long goodsTemplatesId; private String modelName; private Long modelUserId; private Long nowUserPhone; - private String classification; private String nowUserName; private Integer userUseCount; @@ -37,5 +33,4 @@ private Integer counts; - private List<UseInfo> useInfo; } diff --git a/consum-base/src/main/java/com/consum/base/pojo/response/BaseGoodsTemplateInfo.java b/consum-base/src/main/java/com/consum/base/pojo/response/BaseGoodsTemplateInfo.java new file mode 100644 index 0000000..0c3d446 --- /dev/null +++ b/consum-base/src/main/java/com/consum/base/pojo/response/BaseGoodsTemplateInfo.java @@ -0,0 +1,16 @@ +package com.consum.base.pojo.response; + +import lombok.Data; + +/** + * @author asus + * @version 1.0 + * @description: 鐗╁搧淇℃伅 + * @date 2023/12/1 17:16 + */ +@Data +public class BaseGoodsTemplateInfo { + + private String baseGoodsTemplateName; + private Integer count; +} diff --git a/consum-base/src/main/java/com/consum/base/pojo/response/DetailVO.java b/consum-base/src/main/java/com/consum/base/pojo/response/DetailVO.java deleted file mode 100644 index 2baa9e0..0000000 --- a/consum-base/src/main/java/com/consum/base/pojo/response/DetailVO.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.consum.base.pojo.response; - -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.annotations.ApiModel; -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - * @author asus - * @version 1.0 - * @description: TODO - * @date 2023/11/14 16:52 - */ -@NoArgsConstructor -@Data -@ApiModel -public class DetailVO { - - @JsonProperty("thisType") - private Integer thisType; - @JsonProperty("dealTime") - private Long dealTime; - @JsonProperty("businessFormId") - private Long businessFormId; - @JsonProperty("totalPrice") - private Object totalPrice; - @JsonProperty("businessFormCode") - private Object businessFormCode; - @JsonProperty("baseGoodsModelsName") - private String baseGoodsModelsName; - @JsonProperty("createdName") - private Object createdName; - @JsonProperty("businessType") - private Integer businessType; - @JsonProperty("thisCount") - private Integer thisCount; - @JsonProperty("goodsTemplateName") - private String goodsTemplateName; - @JsonProperty("agencyName") - private Object agencyName; -} diff --git a/consum-base/src/main/java/com/consum/base/pojo/response/FormProcureDetailVO.java b/consum-base/src/main/java/com/consum/base/pojo/response/FormProcureDetailVO.java deleted file mode 100644 index 80b462b..0000000 --- a/consum-base/src/main/java/com/consum/base/pojo/response/FormProcureDetailVO.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.consum.base.pojo.response; - -import io.swagger.annotations.ApiModel; -import lombok.Data; - -/** - * @author asus - * @version 1.0 - * @description: 閲囪喘鍒楄〃鏄庣粏淇℃伅 - * @date 2023/11/11 9:51 - */ -@ApiModel(value = "閲囪喘鍒楄〃鏄庣粏淇℃伅") -@Data -public class FormProcureDetailVO { - - - // 涓婚敭 - private Long id; - // 涓氬姟鍗曞彿 - private String businessFormCode; - //鐗╁搧妯$増缂栧彿 - private Long baseGoodsTemplateId; - //鐗╁搧妯$増鍚嶇О - private String goodsTemplateName; - //瑙勬牸鍨嬪彿缂栧彿 - private Long baseGoodsModelsId; - //瑙勬牸鍨嬪彿鍚嶇О - private String goodsModelsName; - //鍗曚环 - private Long price; - //鐗╁搧鍒嗗彂鏁伴噺 - private Integer goodsNum; - //閲戦 - private Long amount; - //鎵�灞炴満鏋� - private String agencyName; - //鍒涘缓浜� - private String createName; - //鎿嶄綔鏃堕棿 - private String procureTime; - - -} diff --git a/consum-base/src/main/java/com/consum/base/pojo/response/UseInfo.java b/consum-base/src/main/java/com/consum/base/pojo/response/UseInfo.java new file mode 100644 index 0000000..a2d353b --- /dev/null +++ b/consum-base/src/main/java/com/consum/base/pojo/response/UseInfo.java @@ -0,0 +1,20 @@ +package com.consum.base.pojo.response; + +import io.swagger.annotations.ApiModel; +import lombok.Data; + +/** + * @author asus + * @version 1.0 + * @description: 閫�鍥炵墿鍝佷娇鐢ㄤ俊鎭� + * @date 2023/12/2 9:34 + */ +@Data +@ApiModel +public class UseInfo { + + private String useName; + private Integer returnNum; + private Integer useUnm; + +} diff --git a/consum-base/src/main/java/com/consum/base/pojo/response/UsingFormBackDetailListVO.java b/consum-base/src/main/java/com/consum/base/pojo/response/UsingFormBackDetailListVO.java new file mode 100644 index 0000000..8a7f1fe --- /dev/null +++ b/consum-base/src/main/java/com/consum/base/pojo/response/UsingFormBackDetailListVO.java @@ -0,0 +1,27 @@ +package com.consum.base.pojo.response; + +import io.swagger.annotations.ApiModel; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author asus + * @version 1.0 + * @description: 閫�鍥炴槑缁� + * @date 2023/12/2 11:52 + */ +@NoArgsConstructor +@Data +@ApiModel +public class UsingFormBackDetailListVO { + + private Long id; + private String departmentName; + private Long dealTime; + private String businessFormCode; + private String operatorName; + private Integer counts; + private String baseGoodsTemplateName; + private String baseGoodsModelsName; + private String agencyName; +} diff --git a/consum-base/src/main/java/com/consum/base/pojo/response/UsingFormBackDetailVO.java b/consum-base/src/main/java/com/consum/base/pojo/response/UsingFormBackDetailVO.java new file mode 100644 index 0000000..2330f17 --- /dev/null +++ b/consum-base/src/main/java/com/consum/base/pojo/response/UsingFormBackDetailVO.java @@ -0,0 +1,38 @@ +package com.consum.base.pojo.response; + +import java.util.List; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author asus + * @version 1.0 + * @description: 閫�鍥炲崟璇︽儏 + * @date 2023/12/1 18:22 + */ +@NoArgsConstructor +@Data +public class UsingFormBackDetailVO { + + private Long id; + private String businessFormCode; + private String agencyName; + private String departmentName; + private String operatorName; + private Long dealTime; + private String procureDoc; + + private List<UsingFormBackGoodsTemplateInfo> goodsTemplateInfoList; + +// private Integer counts; +// private String goodsUserName; +// private String classification; +// +// private String categoryName; +// +// private String unit; +// +// private String baseGoodsTemplateName; +// private String baseGoodsModelsName; +// private Integer useCount; +} diff --git a/consum-base/src/main/java/com/consum/base/pojo/response/UsingFormBackGoodsTemplateInfo.java b/consum-base/src/main/java/com/consum/base/pojo/response/UsingFormBackGoodsTemplateInfo.java new file mode 100644 index 0000000..2e128a3 --- /dev/null +++ b/consum-base/src/main/java/com/consum/base/pojo/response/UsingFormBackGoodsTemplateInfo.java @@ -0,0 +1,25 @@ +package com.consum.base.pojo.response; + +import io.swagger.annotations.ApiModel; +import java.util.List; +import lombok.Data; + +/** + * @author asus + * @version 1.0 + * @description: 閫�鍥炵墿鍝佹ā鏉夸俊鎭� + * @date 2023/12/2 9:18 + */ +@Data +@ApiModel +public class UsingFormBackGoodsTemplateInfo { + + private Long id; + private String categoryName; + private String baseGoodsTemplateName; + private String type; + private String businessFormCode; + + + private List<UsingFormBackModelInfo> modelInfoList; +} diff --git a/consum-base/src/main/java/com/consum/base/pojo/response/UsingFormBackModelInfo.java b/consum-base/src/main/java/com/consum/base/pojo/response/UsingFormBackModelInfo.java new file mode 100644 index 0000000..3a5216c --- /dev/null +++ b/consum-base/src/main/java/com/consum/base/pojo/response/UsingFormBackModelInfo.java @@ -0,0 +1,22 @@ +package com.consum.base.pojo.response; + +import io.swagger.annotations.ApiModel; +import java.util.List; +import lombok.Data; + +/** + * @author asus + * @version 1.0 + * @description: 閫�鍥炵墿鍝佸瀷鍙蜂俊鎭� + * @date 2023/12/2 9:24 + */ +@Data +@ApiModel +public class UsingFormBackModelInfo { + + private Long id; + private String baseGoodsModelsName; + private String unit; + + private List<UseInfo> useInfoList; +} diff --git a/consum-base/src/main/java/com/consum/base/pojo/response/UsingFormBackVO.java b/consum-base/src/main/java/com/consum/base/pojo/response/UsingFormBackVO.java new file mode 100644 index 0000000..8e6e03e --- /dev/null +++ b/consum-base/src/main/java/com/consum/base/pojo/response/UsingFormBackVO.java @@ -0,0 +1,24 @@ +package com.consum.base.pojo.response; + +import java.util.List; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author asus + * @version 1.0 + * @description: TODO + * @date 2023/12/1 17:12 + */ +@NoArgsConstructor +@Data +public class UsingFormBackVO { + + private Long id; + private String departmentName; + private Long dealTime; + private String businessFormCode; + private String operatorName; + + private List<BaseGoodsTemplateInfo> goodsTemplateInfoList; +} diff --git a/consum-base/src/main/java/com/consum/base/service/UsingFormBackService.java b/consum-base/src/main/java/com/consum/base/service/UsingFormBackService.java index 9b56636..aa5741f 100644 --- a/consum-base/src/main/java/com/consum/base/service/UsingFormBackService.java +++ b/consum-base/src/main/java/com/consum/base/service/UsingFormBackService.java @@ -1,6 +1,9 @@ package com.consum.base.service; +import com.consum.base.core.utils.PageUtil; +import com.consum.base.pojo.query.UsingFormBackQry; import com.consum.base.pojo.request.UsingFormBackParam; +import com.consum.base.pojo.response.UsingFormBackDetailVO; import com.consum.model.po.FinSysTenantUser; import com.walker.jdbc.service.BaseService; @@ -13,4 +16,10 @@ public interface UsingFormBackService extends BaseService { void add(UsingFormBackParam usingFormBackParam, FinSysTenantUser sysInfo); + + PageUtil selectPageByList(UsingFormBackQry usingFormBackParam); + + UsingFormBackDetailVO getDetail(Long id); + + PageUtil selectPageByDetail(UsingFormBackQry usingFormBackParam); } diff --git a/consum-base/src/main/java/com/consum/base/service/impl/UsingFormBackServiceImpl.java b/consum-base/src/main/java/com/consum/base/service/impl/UsingFormBackServiceImpl.java index db6a904..d4a2747 100644 --- a/consum-base/src/main/java/com/consum/base/service/impl/UsingFormBackServiceImpl.java +++ b/consum-base/src/main/java/com/consum/base/service/impl/UsingFormBackServiceImpl.java @@ -3,20 +3,41 @@ import com.consum.base.core.CodeGeneratorEnum; import com.consum.base.core.CodeGeneratorService; import com.consum.base.core.utils.IdUtil; +import com.consum.base.core.utils.MapUtils; +import com.consum.base.core.utils.MapperUtil; +import com.consum.base.core.utils.PageUtil; +import com.consum.base.pojo.dto.UsingFormBackDetailDTO; +import com.consum.base.pojo.query.UsingFormBackQry; import com.consum.base.pojo.request.UsingFormBackGoodsInfo; import com.consum.base.pojo.request.UsingFormBackParam; import com.consum.base.pojo.request.baseGoodModel; +import com.consum.base.pojo.response.BaseGoodsTemplateInfo; +import com.consum.base.pojo.response.UseInfo; +import com.consum.base.pojo.response.UsingFormBackDetailListVO; +import com.consum.base.pojo.response.UsingFormBackDetailVO; +import com.consum.base.pojo.response.UsingFormBackGoodsTemplateInfo; +import com.consum.base.pojo.response.UsingFormBackModelInfo; +import com.consum.base.pojo.response.UsingFormBackVO; import com.consum.base.service.BaseCategoryServiceImpl; +import com.consum.base.service.UsingFormBackGoodsService; +import com.consum.base.service.UsingFormBackModelService; import com.consum.base.service.UsingFormBackService; import com.consum.model.po.BaseCategory; import com.consum.model.po.FinSysTenantUser; import com.consum.model.po.UsingFormBack; import com.consum.model.po.UsingFormBackGoods; +import com.consum.model.po.UsingFormBackModel; +import com.walker.db.page.GenericPager; +import com.walker.infrastructure.utils.CollectionUtils; import com.walker.infrastructure.utils.DateUtils; +import com.walker.infrastructure.utils.StringUtils; import com.walker.jdbc.service.BaseServiceImpl; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; +import org.apache.commons.compress.utils.Lists; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -34,6 +55,11 @@ private CodeGeneratorService codeGeneratorService; @Autowired private BaseCategoryServiceImpl baseCategoryService; + @Autowired + private UsingFormBackModelService usingFormBackModelService; + @Autowired + private UsingFormBackGoodsService usingFormBackGoodsService; + @Override public void add(UsingFormBackParam usingFormBackParam, FinSysTenantUser sysInfo) { @@ -54,9 +80,6 @@ Long transBusinessId = backingGoodsInfo.getTransBusinessId(); String businessFormCode = backingGoodsInfo.getBusinessFormCode(); - Map<String, List<baseGoodModel>> collect = backingGoodsInfo.getModels().stream() - .collect(Collectors.groupingBy(baseGoodModel::getBaseGoodsModelsId)); - UsingFormBackGoods usingFormBackGoods = new UsingFormBackGoods(); usingFormBackGoods.setId(IdUtil.generateId()); usingFormBackGoods.setUsingFormBackId(usingFormBackId); @@ -70,13 +93,280 @@ usingFormBackGoods.setClassification(classification); usingFormBackGoods.setTransBusinessId(transBusinessId); usingFormBackGoods.setBusinessFormCode(businessFormCode); - // usingFormBackGoods.setTransOutWarehouseType(); // usingFormBackGoods.setTransOutWarehouseId(); + usingFormBackModelService.insert(usingFormBackGoods); + for (baseGoodModel model : backingGoodsInfo.getModels()) { + + UsingFormBackModel usingFormBackModel = new UsingFormBackModel(); + usingFormBackModel.setId(IdUtil.generateId()); + usingFormBackModel.setUsingFormBackId(usingFormBackId); + usingFormBackModel.setUsingFormBackGoodsId(usingFormBackGoods.getId()); + usingFormBackModel.setBaseGoodsTemplateId(model.getGoodsTemplatesId()); + usingFormBackModel.setBaseGoodsTemplateName(goodsTemplateName); + usingFormBackModel.setClassification(model.getClassification()); + usingFormBackModel.setUnit(model.getUnit()); + usingFormBackModel.setBaseGoodsModelsId(model.getBaseGoodsModelsId()); + usingFormBackModel.setBaseGoodsModelsName(model.getModelName()); + usingFormBackModel.setProcureModelUserId(model.getModelUserId()); + usingFormBackModel.setInitialCount(model.getGoodsNum()); + usingFormBackModel.setUseCount(model.getUserUseCount()); + usingFormBackModel.setCounts(model.getCounts()); + usingFormBackModel.setGoodsUserName(model.getNowUserName()); + + usingFormBackGoodsService.insert(usingFormBackModel); + } + + } } + @Override + public PageUtil selectPageByList(UsingFormBackQry usingFormBackParam) { + + StringBuilder sql = new StringBuilder("SELECT\n" + + "\tDISTINCT ufb.ID,\n" + + "\tufb.BUSINESS_FORM_CODE,\n" + + "\tufb.DEPARTMENT_NAME,\n" + + "\tufb.OPERATOR_NAME,\n" + + "\tufb.DEAL_TIME\n" + + "FROM\n" + + "\tusing_form_back ufb\n" + + "\tLEFT JOIN using_form_back_goods ufbg ON ufb.ID = ufbg.USING_FORM_BACK_ID\n" + + "\tLEFT JOIN using_form_back_model ufbm ON ufbg.ID = ufbm.USING_FORM_BACK_GOODS_ID\n" + + "where 1=1 "); + + String businessFormCode = usingFormBackParam.getBusinessFormCode(); + Long departmentId = usingFormBackParam.getDepartmentId(); + String goodsTemplateName = usingFormBackParam.getGoodsTemplateName(); + String goodsTemplateId = usingFormBackParam.getGoodsTemplateId(); + Long startTime = usingFormBackParam.getStartTime(); + Long endTime = usingFormBackParam.getEndTime(); + Long baseGoodsModelsId = usingFormBackParam.getBaseGoodsModelsId(); + Long agencyId = usingFormBackParam.getAgencyId(); + String createName = usingFormBackParam.getCreateName(); + Map<String, Object> map = new HashMap<>(); + if (StringUtils.isNotEmpty(businessFormCode)) { + sql.append("AND ufb.BUSINESS_FORM_CODE = :businessFormCode "); + map.put("businessFormCode", businessFormCode); + } + if (departmentId != null) { + sql.append("AND ufb.DEPARTMENT_ID = :departmentId "); + map.put("departmentId", departmentId); + } + if (StringUtils.isNotEmpty(goodsTemplateName)) { + sql.append("AND ufbg.BASE_GOODS_TEMPLATE_NAME = :goodsTemplateName "); + map.put("goodsTemplateName", goodsTemplateName); + } + if (StringUtils.isNotEmpty(goodsTemplateId)) { + sql.append("AND ufbg.BASE_GOODS_TEMPLATE_ID = :goodsTemplateId "); + map.put("goodsTemplateId", goodsTemplateId); + } + if (startTime != null) { + sql.append("AND ufb.CREATE_TIME >= :startTime "); + map.put("startTime", startTime * 1000000); + } + if (endTime != null) { + sql.append("AND ufb.CREATE_TIME < :endTime "); + map.put("endTime", endTime * 1000000 + 240000); + } + if (baseGoodsModelsId != null) { + sql.append("AND ufbm.BASE_GOODS_MODELS_ID = :baseGoodsModelsId "); + map.put("baseGoodsModelsId", baseGoodsModelsId); + } + if (agencyId != null) { + sql.append("AND ufb.AGENCY_ID like :agencyId"); + map.put("agencyId", agencyId); + } + if (StringUtils.isNotEmpty(createName)) { + sql.append("AND ufb.CREATE_NAME = :createName "); + map.put("createName", createName); + } + sql.append("ORDER BY ufb.CREATE_TIME DESC "); + GenericPager<Map<String, Object>> mapGenericPager = this.selectSplit(sql.toString(), map, usingFormBackParam.getPageNum(), + usingFormBackParam.getPageSize(), new MapperUtil()); + PageUtil pageUtil = new PageUtil(mapGenericPager); + List<UsingFormBackVO> pageList = Lists.newArrayList(); + mapGenericPager.getDatas().forEach(item -> { + UsingFormBackVO usingFormBackVO = MapUtils.convertMapToObj(item, UsingFormBackVO.class); + + Long id = usingFormBackVO.getId(); + StringBuilder countSql = new StringBuilder("SELECT \n" + + "\tufbg.BASE_GOODS_TEMPLATE_NAME,\n" + + "\tsum(ufbm.COUNTS) count\n" + + "FROM\n" + + "\tusing_form_back_goods ufbg\n" + + "\tLEFT JOIN using_form_back_model ufbm ON ufbg.ID = ufbm.USING_FORM_BACK_GOODS_ID\n" + + "where ufbg.USING_FORM_BACK_ID = :id group by ufbg.BASE_GOODS_TEMPLATE_ID "); + Map<String, Object> countSqlMap = new HashMap<>(); + countSqlMap.put("id", id); + List<Map<String, Object>> select = this.select(countSql.toString(), countSqlMap, new MapperUtil()); + List<BaseGoodsTemplateInfo> baseGoodsTemplateInfoList = Lists.newArrayList(); + select.forEach(entity -> { + BaseGoodsTemplateInfo baseGoodsTemplateInfo = MapUtils.convertMapToObj(entity, BaseGoodsTemplateInfo.class); + baseGoodsTemplateInfoList.add(baseGoodsTemplateInfo); + }); + usingFormBackVO.setGoodsTemplateInfoList(baseGoodsTemplateInfoList); + pageList.add(usingFormBackVO); + }); + pageUtil.setDatas(pageList); + return pageUtil; + } + + @Override + public UsingFormBackDetailVO getDetail(Long id) { + StringBuilder sql = new StringBuilder("SELECT\n" + + "\tDISTINCT ufb.ID,\n" + + "\tufb.BUSINESS_FORM_CODE,\n" + + "\tufb.AGENCY_NAME,\n" + + "\tufb.DEPARTMENT_NAME,\n" + + "\tufb.OPERATOR_NAME,\n" + + "\tufb.DEAL_TIME,\n" + + "\tufb.PROCURE_DOC,\n" + + "\tufbg.CATEGORY_NAME,\n" + + "\tufbg.BASE_GOODS_TEMPLATE_NAME,\n" + + "\tufbg.CLASSIFICATION,\n" + + "\tufbg.BUSINESS_FORM_CODE,\n" + + "\tufbm.BASE_GOODS_MODELS_NAME,\n" + + "\tufbm.BASE_GOODS_TEMPLATE_ID,\n" + + "\tufbm.BASE_GOODS_MODELS_ID,\n" + + "\tufbm.UNIT,\n" + + "\tufbm.COUNTS,\n" + + "\tufbm.USE_COUNT,\n" + + "\tufbm.GOODS_USER_NAME\n" + + "FROM\n" + + "\tusing_form_back ufb\n" + + "\tLEFT JOIN using_form_back_goods ufbg ON ufb.ID = ufbg.USING_FORM_BACK_ID\n" + + "\tLEFT JOIN using_form_back_model ufbm ON ufbg.ID = ufbm.USING_FORM_BACK_GOODS_ID where ufb.id =:id"); + Map<String, Object> map = new HashMap<>(); + map.put("id", id); + List<Map<String, Object>> select = this.select(sql.toString(), map, new MapperUtil()); + if (CollectionUtils.isEmpty(select)) { + return null; + } + List<UsingFormBackDetailDTO> usingFormBackDetailDTOList = Lists.newArrayList(); + select.forEach(item -> { + UsingFormBackDetailDTO usingFormBackDetailDTO = MapUtils.convertMapToObj(item, UsingFormBackDetailDTO.class); + usingFormBackDetailDTOList.add(usingFormBackDetailDTO); + }); + + UsingFormBackDetailVO usingFormBackDetailVO = new UsingFormBackDetailVO(); + List<UsingFormBackGoodsTemplateInfo> goodsTemplateInfoList = Lists.newArrayList(); + usingFormBackDetailDTOList.stream().collect(Collectors.groupingBy(UsingFormBackDetailDTO::getBaseGoodsTemplateId)) + .forEach((templateId, templateInfo) -> { + UsingFormBackDetailDTO templateInfoDTO = templateInfo.get(0); + BeanUtils.copyProperties(templateInfoDTO, usingFormBackDetailVO); + UsingFormBackGoodsTemplateInfo usingFormBackGoodsTemplateInfo = new UsingFormBackGoodsTemplateInfo(); + usingFormBackGoodsTemplateInfo.setId(templateId); + usingFormBackGoodsTemplateInfo.setCategoryName(templateInfoDTO.getCategoryName()); + usingFormBackGoodsTemplateInfo.setBaseGoodsTemplateName(templateInfoDTO.getBaseGoodsTemplateName()); + usingFormBackGoodsTemplateInfo.setType(templateInfoDTO.getClassification()); + usingFormBackGoodsTemplateInfo.setBusinessFormCode(templateInfoDTO.getBusinessFormCode()); + goodsTemplateInfoList.add(usingFormBackGoodsTemplateInfo); + usingFormBackDetailVO.setGoodsTemplateInfoList(goodsTemplateInfoList); + List<UsingFormBackModelInfo> modelInfoList = Lists.newArrayList(); + templateInfo.stream().collect(Collectors.groupingBy(UsingFormBackDetailDTO::getBaseGoodsModelsId)).forEach((modelId, modelInfo) -> { + UsingFormBackDetailDTO modelInfoDTO = modelInfo.get(0); + UsingFormBackModelInfo usingFormBackModelInfo = new UsingFormBackModelInfo(); + usingFormBackModelInfo.setBaseGoodsModelsName(modelInfoDTO.getBaseGoodsModelsName()); + usingFormBackModelInfo.setUnit(modelInfoDTO.getUnit()); + usingFormBackModelInfo.setId(modelId); + modelInfoList.add(usingFormBackModelInfo); + usingFormBackGoodsTemplateInfo.setModelInfoList(modelInfoList); + List<UseInfo> useInfoList = Lists.newArrayList(); + for (UsingFormBackDetailDTO useInfoDTO : modelInfo) { + UseInfo useInfo = new UseInfo(); + useInfo.setUseName(useInfoDTO.getGoodsUserName()); + useInfo.setReturnNum(useInfoDTO.getCounts()); + useInfo.setUseUnm(useInfoDTO.getUseCount()); + useInfoList.add(useInfo); + usingFormBackModelInfo.setUseInfoList(useInfoList); + } + }); + }); + + return usingFormBackDetailVO; + } + + @Override + public PageUtil selectPageByDetail(UsingFormBackQry usingFormBackParam) { + StringBuilder sql = new StringBuilder("SELECT\n" + + "\tufb.ID,\n" + + "\tufb.BUSINESS_FORM_CODE,\n" + + "\tufbm.BASE_GOODS_TEMPLATE_NAME,\n" + + "\tufbm.BASE_GOODS_MODELS_NAME,\n" + + "\tufbm.counts,\n" + + "\tufb.AGENCY_NAME,\n" + + "\tufb.DEPARTMENT_NAME,\n" + + "\tufb.OPERATOR_NAME,\n" + + "\tufb.DEAL_TIME\n" + + "FROM\n" + + "\tusing_form_back ufb\n" + + "\tLEFT JOIN using_form_back_goods ufbg ON ufb.ID = ufbg.USING_FORM_BACK_ID\n" + + "\tLEFT JOIN using_form_back_model ufbm ON ufbg.ID = ufbm.USING_FORM_BACK_GOODS_ID\n" + + "where 1=1 "); + + String businessFormCode = usingFormBackParam.getBusinessFormCode(); + Long departmentId = usingFormBackParam.getDepartmentId(); + String goodsTemplateName = usingFormBackParam.getGoodsTemplateName(); + String goodsTemplateId = usingFormBackParam.getGoodsTemplateId(); + Long startTime = usingFormBackParam.getStartTime(); + Long endTime = usingFormBackParam.getEndTime(); + Long baseGoodsModelsId = usingFormBackParam.getBaseGoodsModelsId(); + Long agencyId = usingFormBackParam.getAgencyId(); + String createName = usingFormBackParam.getCreateName(); + Map<String, Object> map = new HashMap<>(); + if (StringUtils.isNotEmpty(businessFormCode)) { + sql.append("AND ufb.BUSINESS_FORM_CODE = :businessFormCode "); + map.put("businessFormCode", businessFormCode); + } + if (departmentId != null) { + sql.append("AND ufb.DEPARTMENT_ID = :departmentId "); + map.put("departmentId", departmentId); + } + if (StringUtils.isNotEmpty(goodsTemplateName)) { + sql.append("AND ufbg.BASE_GOODS_TEMPLATE_NAME = :goodsTemplateName "); + map.put("goodsTemplateName", goodsTemplateName); + } + if (StringUtils.isNotEmpty(goodsTemplateId)) { + sql.append("AND ufbg.BASE_GOODS_TEMPLATE_ID = :goodsTemplateId "); + map.put("goodsTemplateId", goodsTemplateId); + } + if (startTime != null) { + sql.append("AND ufb.CREATE_TIME >= :startTime "); + map.put("startTime", startTime * 1000000); + } + if (endTime != null) { + sql.append("AND ufb.CREATE_TIME < :endTime "); + map.put("endTime", endTime * 1000000 + 240000); + } + if (baseGoodsModelsId != null) { + sql.append("AND ufbm.BASE_GOODS_MODELS_ID = :baseGoodsModelsId "); + map.put("baseGoodsModelsId", baseGoodsModelsId); + } + if (agencyId != null) { + sql.append("AND ufb.AGENCY_ID like :agencyId "); + map.put("agencyId", agencyId); + } + if (StringUtils.isNotEmpty(createName)) { + sql.append("AND ufb.CREATE_NAME = :createName "); + map.put("createName", createName); + } + sql.append("ORDER BY ufb.CREATE_TIME DESC "); + GenericPager<Map<String, Object>> mapGenericPager = this.selectSplit(sql.toString(), map, usingFormBackParam.getPageNum(), + usingFormBackParam.getPageSize(), new MapperUtil()); + PageUtil pageUtil = new PageUtil(mapGenericPager); + List<UsingFormBackDetailListVO> pageList = Lists.newArrayList(); + mapGenericPager.getDatas().forEach(item -> { + UsingFormBackDetailListVO usingFormBackVO = MapUtils.convertMapToObj(item, UsingFormBackDetailListVO.class); + pageList.add(usingFormBackVO); + }); + pageUtil.setDatas(pageList); + return pageUtil; + } + + @Transactional public Long addUsingFormBack(FinSysTenantUser sysInfo, Long departmentId, String departmentName, Long operatorId, String operatorName, Long backTime, String procureDoc) { -- Gitblit v1.9.1