consum-base/src/main/java/com/consum/base/controller/LWhFormOutputController.java
@@ -25,15 +25,16 @@ import com.consum.base.BaseController; import com.consum.base.core.utils.CommonUtil; import com.consum.base.core.utils.CurrencyUtil; import com.consum.base.core.utils.PageUtil; import com.consum.base.pojo.LWhFormOutputParam; import com.consum.base.pojo.dto.GoodModelInfoDTO; import com.consum.base.pojo.excel.OutputExcelTemplate; import com.consum.base.pojo.query.LWhFormOutputQry; import com.consum.base.pojo.response.FormOutputGoodsVO; import com.consum.base.pojo.response.FormOutputVO; import com.consum.base.pojo.response.GoodsModelVO; import com.consum.base.pojo.response.GoodsTemplateCountVO; import com.consum.base.pojo.response.GoodsTemplateInfoVO; import com.consum.base.pojo.response.LWhFormOutputExtendVO; import com.consum.base.service.LWarehouseFlowService; import com.consum.base.service.LWhFormOutputService; @@ -156,32 +157,31 @@ lWhFormOutputExtendVO.setDoc(lWhFormOutput.getOutputDoc()); List<GoodModelInfoDTO> goodsModelList = lWhProcureModelService.getGoodsModelListByBusinessId(lWhFormOutputExtendVO.getId()); lWhProcureModelService.getGoodsModelListByBusinessId(lWhFormOutputExtendVO.getId(), null); if (CollectionUtils.isEmpty(goodsModelList)) { return ResponseValue.success(lWhFormOutputExtendVO); } Map<Long, List<GoodModelInfoDTO>> collect = goodsModelList.stream().collect(Collectors.groupingBy(GoodModelInfoDTO::getBaseGoodsTemplateId)); List<FormOutputGoodsVO> fromOutputGoods = Lists.newArrayList(); List<GoodsTemplateInfoVO> goodsTemplateInfoList = Lists.newArrayList(); for (Map.Entry<Long, List<GoodModelInfoDTO>> entry : collect.entrySet()) { FormOutputGoodsVO formOutputGoodsVO = getFormOutputGoodsVO(entry); fromOutputGoods.add(formOutputGoodsVO); GoodsTemplateInfoVO goodsTemplateInfoVO = getFormOutputGoodsVO(entry); goodsTemplateInfoList.add(goodsTemplateInfoVO); } lWhFormOutputExtendVO.setFromOutputGoods(fromOutputGoods); lWhFormOutputExtendVO.setFromOutputGoods(goodsTemplateInfoList); return ResponseValue.success("查询成功!", lWhFormOutputExtendVO); } private static FormOutputGoodsVO getFormOutputGoodsVO(Entry<Long, List<GoodModelInfoDTO>> entry) { private GoodsTemplateInfoVO getFormOutputGoodsVO(Entry<Long, List<GoodModelInfoDTO>> entry) { Long baseGoodsTemplateId = entry.getKey(); List<GoodModelInfoDTO> goodModelInfoDTOS = entry.getValue(); GoodModelInfoDTO goodModelInfoDTO = goodModelInfoDTOS.stream().findFirst().orElse(null); FormOutputGoodsVO formOutputGoodsVO = new FormOutputGoodsVO(); GoodsTemplateInfoVO goodsTemplateInfoVO = new GoodsTemplateInfoVO(); if (goodModelInfoDTO != null) { formOutputGoodsVO.setId(baseGoodsTemplateId); formOutputGoodsVO.setCategoryId(goodModelInfoDTO.getCategoryId()); formOutputGoodsVO.setCategoryName(goodModelInfoDTO.getCategoryName()); formOutputGoodsVO.setGoodsName(goodModelInfoDTO.getBaseGoodsModelsName()); goodsTemplateInfoVO.setId(baseGoodsTemplateId); goodsTemplateInfoVO.setCategoryName(goodModelInfoDTO.getCategoryName()); goodsTemplateInfoVO.setGoodsName(goodModelInfoDTO.getBaseGoodsModelsName()); } List<GoodsModelVO> goodsModelList = Lists.newArrayList(); for (GoodModelInfoDTO goodModelInfo : goodModelInfoDTOS) { @@ -190,11 +190,11 @@ goodsModelVO.setBaseGoodsModelsName(goodModelInfo.getBaseGoodsModelsName()); goodsModelVO.setUnit(goodModelInfo.getUnit()); goodsModelVO.setCounts(goodModelInfo.getCounts()); goodsModelVO.setTotalAmount(goodModelInfo.getTotalAmount()); goodsModelVO.setTotalAmount(CurrencyUtil.convertFenToYuan(goodModelInfo.getTotalAmount())); goodsModelList.add(goodsModelVO); } formOutputGoodsVO.setModels(goodsModelList); return formOutputGoodsVO; goodsTemplateInfoVO.setModels(goodsModelList); return goodsTemplateInfoVO; } @ApiOperation(value = "查询出库单详情明细", notes = "查询出库单详情明细") consum-base/src/main/java/com/consum/base/controller/LWhFormProcureController.java
@@ -21,24 +21,22 @@ import com.consum.base.BaseController; import com.consum.base.core.utils.CommonUtil; 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.LWhFormProcureGoodsInfoParam; import com.consum.base.pojo.LWhFormProcureParam; import com.consum.base.pojo.dto.GoodModelInfoDTO; import com.consum.base.pojo.excel.ProcureExcelTemplate; import com.consum.base.pojo.query.FormProcureQry; import com.consum.base.pojo.response.FormProcureVO; import com.consum.base.pojo.response.GoodsModelVO; import com.consum.base.pojo.response.GoodsTemplateCountVO; import com.consum.base.pojo.response.GoodsTemplateInfoVO; import com.consum.base.pojo.response.LWhFormProcureExtendVO; import com.consum.base.pojo.response.LWhFormProcureGoodsVO; import com.consum.base.service.BaseGoodsTemplateService; import com.consum.base.service.impl.LWhFormProcureCoreService; import com.consum.base.service.LWhFormProcureGoodsService; import com.consum.base.service.LWhFormProcureService; import com.consum.base.service.LWhProcureModelService; import com.consum.model.po.BaseGoodsTemplate; import com.consum.base.service.impl.LWhFormProcureCoreService; import com.consum.model.po.FinSysTenantUser; import com.consum.model.po.LWhFormProcure; import com.consum.model.po.LWhFormProcureGoods; @@ -228,45 +226,49 @@ lWhFormProcureGoods.setWhFormProcureId(id); List<LWhFormProcureGoods> formProcureGoods = lWhFormProcureGoodsServiceImpl.select(lWhFormProcureGoods); // Field fieldModels = null; // try { // fieldModels = LWhFormProcureGoodsVO.class.getDeclaredField("models"); // } catch (NoSuchFieldException e) { // e.printStackTrace(); // } // fieldModels.setAccessible(true); ArrayList<LWhFormProcureGoodsVO> procureGoodsVOList = new ArrayList<>(); List<GoodsTemplateInfoVO> goodsTemplateInfoList = new ArrayList<>(); for (LWhFormProcureGoods formProcureGood : formProcureGoods) { LWhFormProcureGoodsVO lWhFormProcureGoodsVO = new LWhFormProcureGoodsVO(); BeanUtils.copyProperties(formProcureGood, lWhFormProcureGoodsVO); GoodsTemplateInfoVO goodsTemplateInfoVO = new GoodsTemplateInfoVO(); BeanUtils.copyProperties(formProcureGood, goodsTemplateInfoVO); Long baseGoodsTemplateId = formProcureGood.getBaseGoodsTemplateId(); BaseGoodsTemplate queryEntity = new BaseGoodsTemplate(); queryEntity.setId(baseGoodsTemplateId); BaseGoodsTemplate baseGoodsTemplate = baseGoodsTemplateService.get(queryEntity); lWhFormProcureGoodsVO.setBaseCategoryName(baseGoodsTemplate.getCategoryName()); // 查询型号数量 Map<String, Object> paramMap = new HashMap<>(); paramMap.put("formProcureGoodId", formProcureGood.getId()); String sql = "SELECT\n" + "pm.BASE_GOODS_MODELS_ID,pm.BASE_GOODS_MODELS_NAME,pm.PRICE,pm.COUNTS,pm.WOREHOUSE_COUNT,bgm.unit " + "FROM\n" + "\tl_wh_procure_model pm\n" + "\tLEFT JOIN base_goods_models bgm on pm.BASE_GOODS_MODELS_ID = bgm.id where pm.FROM_PROCURE_GOODS_ID =:formProcureGoodId"; List<Map<String, Object>> procureModelList = lWhProcureModelService.select(sql, paramMap, new MapperUtil()); List<GoodsModelVO> goodsModelVOList = Lists.newArrayList(); procureModelList.forEach(item -> { GoodsModelVO goodsModelVO = MapUtils.convertMapToObj(item, GoodsModelVO.class); goodsModelVOList.add(goodsModelVO); }); // fieldModels.set(lWhFormProcureGoodsVO, goodsModelVOList); ReflectUtil.setFieldValue(lWhFormProcureGoodsVO, "models", goodsModelVOList); List<GoodModelInfoDTO> goodsModelInfoList = lWhProcureModelService.getGoodsModelListByBusinessId(null, formProcureGood.getId()); if (CollectionUtils.isEmpty(goodsModelInfoList)) { continue; } GoodModelInfoDTO goodModelInfoDTO = goodsModelInfoList.stream().findFirst().orElse(null); if (goodModelInfoDTO != null) { goodsTemplateInfoVO.setBaseCategoryName(goodModelInfoDTO.getCategoryName()); } List<GoodsModelVO> goodsModelList = Lists.newArrayList(); for (GoodModelInfoDTO goodModelInfo : goodsModelInfoList) { GoodsModelVO goodsModelVO = getGoodsModelVO(goodModelInfo); goodsModelList.add(goodsModelVO); } procureGoodsVOList.add(lWhFormProcureGoodsVO); ReflectUtil.setFieldValue(goodsTemplateInfoVO, "models", goodsModelList); goodsTemplateInfoList.add(goodsTemplateInfoVO); } lWhFormProcureExtendVO.setProcureGoods(procureGoodsVOList); lWhFormProcureExtendVO.setProcureGoods(goodsTemplateInfoList); return ResponseValue.success("查询成功!", lWhFormProcureExtendVO); } private GoodsModelVO getGoodsModelVO(GoodModelInfoDTO goodModelInfo) { GoodsModelVO goodsModelVO = new GoodsModelVO(); goodsModelVO.setId(goodModelInfo.getId()); goodsModelVO.setBaseGoodsModelsName(goodModelInfo.getBaseGoodsModelsName()); goodsModelVO.setUnit(goodModelInfo.getUnit()); goodsModelVO.setCounts(goodModelInfo.getCounts()); goodsModelVO.setTotalAmount( goodModelInfo.getTotalAmount() != null ? goodModelInfo.getTotalAmount().doubleValue() : null); goodsModelVO.setWorehouseCount(goodModelInfo.getWorehouseCount()); goodsModelVO.setPrice(goodModelInfo.getPrice()); goodsModelVO.setBaseGoodsModelsId(goodModelInfo.getBaseGoodsModelsId()); return goodsModelVO; } @ApiOperation(value = "采购单明细查询", notes = "采购单明细查询") @ApiImplicitParams({@ApiImplicitParam(name = "param", value = "采购单明细查询", required = true, dataType = "FormProcureQryDto", paramType = "query")}) consum-base/src/main/java/com/consum/base/core/type/CategoryType.java
New file @@ -0,0 +1,48 @@ package com.consum.base.core.type; /** * 分类类型 * * @author asus * @version 2023/12/06 17:27 **/ public enum CategoryType { /** * A类 */ TYPE_A("A", "A类"), /** * B类 */ TYPE_B("B", "B类"), /** * C类 */ TYPE_C("C", "C类"); private String value; private String desc; CategoryType(String value, String desc) { this.value = value; this.desc = desc; } public String getValue() { return value; } public void setValue(String value) { this.value = value; } public String getDesc() { return desc; } public void setDesc(String desc) { this.desc = desc; } } consum-base/src/main/java/com/consum/base/core/type/MixType.java
File was renamed from consum-base/src/main/java/com/consum/base/core/utils/MixType.java @@ -1,4 +1,4 @@ package com.consum.base.core.utils; package com.consum.base.core.type; import java.util.HashMap; import java.util.Map; consum-base/src/main/java/com/consum/base/pojo/dto/GoodModelInfoDTO.java
@@ -20,4 +20,10 @@ private String unit; private Integer counts; private Integer totalAmount; private Long baseGoodsModelsId; private Long price; private Integer worehouseCount; private String type; private String scrappedName; } consum-base/src/main/java/com/consum/base/pojo/response/BaseGoodsTemplateInfo.java
File was deleted consum-base/src/main/java/com/consum/base/pojo/response/FormOutputGoodsVO.java
File was deleted consum-base/src/main/java/com/consum/base/pojo/response/FormScrappedGoodsVO.java
File was deleted consum-base/src/main/java/com/consum/base/pojo/response/FormTransferGoodsVO.java
File was deleted consum-base/src/main/java/com/consum/base/pojo/response/GoodsModelVO.java
@@ -20,17 +20,23 @@ private String baseGoodsModelsName; @ApiModelProperty(value = "单位信息") private String unit; @ApiModelProperty(value = "单价") private Long price; @ApiModelProperty(value = "数量") private Integer counts; private Integer worehouseCount; private Long baseGoodsModelsId; @ApiModelProperty(value = "总金额") private Integer totalAmount; private Double totalAmount; /*采购信息*/ @ApiModelProperty(value = "库存数量") private Integer worehouseCount; @ApiModelProperty(value = "单价") private Long price; private Long baseGoodsModelsId; /*报废信息*/ private String scrappedName; @ApiModelProperty(value = "部门分发使用人信息") private List<DepartGoodsUseInfo> useInfo; } consum-base/src/main/java/com/consum/base/pojo/response/GoodsTemplateInfoVO.java
New file @@ -0,0 +1,39 @@ package com.consum.base.pojo.response; import java.util.List; import io.swagger.annotations.ApiModel; import lombok.Data; /** * @author asus * @version 1.0 * @description: 输出物品信息 * @date 2023/11/14 13:13 */ @Data @ApiModel(description = "输出物品信息") public class GoodsTemplateInfoVO { // 主键 private Long id; // 分类名称 private String categoryName; // 物品名称 private String goodsName; /*采购信息*/ // 分类名称 private String baseCategoryName; // 供应商 private String supplier; // 物品名称 private String goodsTemplateName; /*调拨信息*/ // 分类类型 private String type; private List<GoodsModelVO> models; } consum-base/src/main/java/com/consum/base/pojo/response/LWHFromTransferExtendVO.java
@@ -1,8 +1,9 @@ package com.consum.base.pojo.response; import java.util.List; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import java.util.List; import lombok.Data; /** @@ -14,7 +15,6 @@ @Data @ApiModel(value = "调拨单扩展详细信息") public class LWHFromTransferExtendVO { // 主键 private Long id; @@ -106,5 +106,5 @@ @ApiModelProperty(value = "电话") private Long tel; private List<FormTransferGoodsVO> formTransferGoods; private List<GoodsTemplateInfoVO> formTransferGoods; } consum-base/src/main/java/com/consum/base/pojo/response/LWhFormOutputExtendVO.java
@@ -46,5 +46,5 @@ // 出库手续 private String doc; private List<FormOutputGoodsVO> fromOutputGoods; private List<GoodsTemplateInfoVO> fromOutputGoods; } consum-base/src/main/java/com/consum/base/pojo/response/LWhFormProcureExtendVO.java
@@ -1,69 +1,49 @@ package com.consum.base.pojo.response; import java.util.List; import lombok.Data; /** * @author asus * @version 1.0 * @description: TODO * @description: 采购详情信息 * @date 2023/11/11 18:00 */ @Data public class LWhFormProcureExtendVO { // 主键 private Long id; // 属性列表 private String businessFormCode; private Long warehouseId; private String warehouseName; private Long buyerId; private String buyerName; private Long procureTime; private String procureDoc; private Integer buyType; private Integer states; private Long agencyId; private String agencyName; private Long incomeId; private String incomeName; private Long incomeTime; private String beiz; private Long lWarehouseFlowId; private List<LWhFormProcureGoodsVO> procureGoods; private List<GoodsTemplateInfoVO> procureGoods; } consum-base/src/main/java/com/consum/base/pojo/response/LWhFormProcureGoodsVO.java
File was deleted consum-base/src/main/java/com/consum/base/pojo/response/LWhFormScrappedExtendVO.java
@@ -47,7 +47,7 @@ private Integer states; private List<FormScrappedGoodsVO> scrappedGoods; private List<GoodsTemplateInfoVO> scrappedGoods; } consum-base/src/main/java/com/consum/base/pojo/response/UsingFormBackDetailVO.java
@@ -1,6 +1,7 @@ package com.consum.base.pojo.response; import java.util.List; import lombok.Data; import lombok.NoArgsConstructor; @@ -24,15 +25,4 @@ 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; } consum-base/src/main/java/com/consum/base/service/LWarehouseFlowService.java
@@ -1,6 +1,7 @@ package com.consum.base.service; import com.consum.base.core.WhBusinessEnum; import com.consum.base.core.type.MixType; import com.consum.base.core.utils.*; import com.consum.base.pojo.LWarehouseFlowParam; import com.consum.base.pojo.query.LWhFormOutputQry; consum-base/src/main/java/com/consum/base/service/LWhFormInventoryGoodsServiceImpl.java
@@ -1,15 +1,18 @@ package com.consum.base.service; import java.util.ArrayList; import java.util.List; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import com.consum.base.core.utils.IdUtil; import com.consum.base.pojo.response.FormInventoryGoodsVO; import com.consum.model.po.LWhFormInventoryGoods; import com.walker.jdbc.service.BaseServiceImpl; import java.util.ArrayList; import java.util.List; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; /** * @Description 盘点单物品 @@ -33,7 +36,6 @@ return this.select(inventoryGoods); } public List<FormInventoryGoodsVO> add(List<FormInventoryGoodsVO> inventoryGoodsList, Long inventoryId) { List<LWhFormInventoryGoods> goodsList = new ArrayList<>(); for (FormInventoryGoodsVO inventoryGoods : inventoryGoodsList) { @@ -46,7 +48,7 @@ lWhFormInventoryGoods.setBaseGoodsModelsId(inventoryGoods.getId()); lWhFormInventoryGoods.setBaseGoodsModelsName(inventoryGoods.getBaseGoodsModelsName()); lWhFormInventoryGoods.setInitCounts(inventoryGoods.getInventoryCount()); //保存成功后返回id,用来进行记录的更新 // 保存成功后返回id,用来进行记录的更新 inventoryGoods.setId(lWhFormInventoryGoods.getId()); goodsList.add(lWhFormInventoryGoods); } @@ -65,25 +67,15 @@ int errorCount = realNum - inventoryCount; lWhFormInventoryGoods.setInventoryCounts(realNum); lWhFormInventoryGoods.setErrorCounts(Math.abs(errorCount)); //盘点结果(1=正常;2=盘盈;3=盘亏) // 盘点结果(1=正常;2=盘盈;3=盘亏) lWhFormInventoryGoods.setInventoryResult((errorCount > 0) ? 2 : (errorCount < 0) ? 3 : 1); // TODO 批量更新 this.update(lWhFormInventoryGoods); // goodsList.add(lWhFormInventoryGoods); // goodsList.add(lWhFormInventoryGoods); } } return 1; } /** * @Description 根据盘点单id删除盘点单物品 * @Author 卢庆阳 * @Date 2023/10/31 */ public void delByFormInventoryId(Long id) { } } consum-base/src/main/java/com/consum/base/service/LWhFormScrappedGoodsService.java
@@ -1,5 +1,9 @@ package com.consum.base.service; import java.util.List; import com.consum.base.pojo.dto.GoodModelInfoDTO; import com.consum.model.po.LWhFormScrappedGoods; import com.walker.jdbc.service.BaseService; /** @@ -10,4 +14,13 @@ **/ public interface LWhFormScrappedGoodsService extends BaseService { List<LWhFormScrappedGoods> getByFormScrappedId(Long id); /** * 根据报废单id获取报废商品信息 * * @param scrappedId * @return */ List<GoodModelInfoDTO> getScrappedGoodsByScrappedId(Long scrappedId); } consum-base/src/main/java/com/consum/base/service/LWhProcureModelService.java
@@ -1,10 +1,10 @@ package com.consum.base.service; import com.consum.base.pojo.dto.GoodModelInfoDTO; import java.util.List; import java.util.Map; import com.consum.base.core.WhBusinessEnum; import com.consum.base.pojo.dto.GoodModelInfoDTO; import com.consum.base.pojo.response.GoodsTemplateCountVO; import com.consum.model.po.LWhProcureModel; import com.walker.jdbc.service.BaseService; @@ -37,7 +37,8 @@ * 根据业务id查询型号信息列表 * * @param businessId * @param procureGoodId * @return */ List<GoodModelInfoDTO> getGoodsModelListByBusinessId(Long businessId); List<GoodModelInfoDTO> getGoodsModelListByBusinessId(Long businessId, Long procureGoodId); } consum-base/src/main/java/com/consum/base/service/impl/LWhFormScrappedGoodsServiceImpl.java
@@ -1,9 +1,16 @@ package com.consum.base.service.impl; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Objects; import org.apache.commons.compress.utils.Lists; import org.springframework.stereotype.Service; import com.consum.base.core.utils.MapUtils; import com.consum.base.core.utils.MapperUtil; import com.consum.base.pojo.dto.GoodModelInfoDTO; import com.consum.base.service.LWhFormScrappedGoodsService; import com.consum.model.po.LWhFormScrappedGoods; import com.walker.jdbc.service.BaseServiceImpl; @@ -23,9 +30,29 @@ * @Author 卢庆阳 * @Date 2023/11/2 */ @Override public List<LWhFormScrappedGoods> getByFormScrappedId(Long id) { LWhFormScrappedGoods scrappedGoods = new LWhFormScrappedGoods(); scrappedGoods.setFormScrappedId(id); return this.select(scrappedGoods); } @Override public List<GoodModelInfoDTO> getScrappedGoodsByScrappedId(Long scrappedId) { String sql = "select fsg.id,CATEGORY_NAME,fsg.GOODS_TEMPLATE_NAME baseGoodsName,fsg.BASE_GOODS_MODELS_NAME,fsg.BASE_GOODS_TEMPLATE_ID," + "fsg.UNIT,fsg.COUNTS,SCRAPPED_NAME from l_wh_form_scrapped_goods fsg left join base_goods_template bgt on " + "fsg.BASE_GOODS_TEMPLATE_ID = bgt.id where form_scrapped_id =:scrappedId "; Map<String, Object> param = new HashMap<>(); param.put("scrappedId", scrappedId); List<Map<String, Object>> select = this.select(sql, param, new MapperUtil()); List<GoodModelInfoDTO> goodModelInfoList = Lists.newArrayList(); select.forEach(item -> { GoodModelInfoDTO goodModelInfoDTO = MapUtils.convertMapToObj(item, GoodModelInfoDTO.class); if (Objects.nonNull(goodModelInfoDTO)) { goodModelInfoList.add(goodModelInfoDTO); } }); return goodModelInfoList; } } consum-base/src/main/java/com/consum/base/service/impl/LWhFormScrappedServiceImpl.java
@@ -4,7 +4,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Optional; import java.util.stream.Collectors; import org.apache.commons.compress.utils.Lists; @@ -24,17 +23,19 @@ import com.consum.base.pojo.LWhFormScrappedGoodsInfoParam; import com.consum.base.pojo.LWhFormScrappedGoodsModelParams; import com.consum.base.pojo.LWhFormScrappedParam; import com.consum.base.pojo.dto.GoodModelInfoDTO; import com.consum.base.pojo.excel.ScrappedInfoExcelTemplate; import com.consum.base.pojo.query.LWhFormScrappedQry; import com.consum.base.pojo.response.FormScrappedGoodsDetailVO; import com.consum.base.pojo.response.FormScrappedGoodsVO; import com.consum.base.pojo.response.GoodsModelVO; import com.consum.base.pojo.response.GoodsTemplateCountVO; import com.consum.base.pojo.response.GoodsTemplateInfoVO; import com.consum.base.pojo.response.LWhFormScrappedExtendVO; import com.consum.base.service.BaseGoodsModelsService; import com.consum.base.service.BaseGoodsTemplateService; import com.consum.base.service.BaseWarehouseService; import com.consum.base.service.FinSysTenantDepartmentService; import com.consum.base.service.LWhFormScrappedGoodsService; import com.consum.base.service.LWhFormScrappedService; import com.consum.base.service.LWhGoodsService; import com.consum.base.service.SDictDataServiceImpl; @@ -68,7 +69,7 @@ @Autowired private LWhGoodsService lWhGoodsService; @Autowired private LWhFormScrappedGoodsServiceImpl scrappedGoodsService; private LWhFormScrappedGoodsService scrappedGoodsService; @Autowired private SDictDataServiceImpl sDictDataService; @Autowired @@ -272,31 +273,23 @@ if (lWhFormScrapped != null) { BeanUtils.copyProperties(lWhFormScrapped, scrappedExtend); } // 2.查询报废单 List<LWhFormScrappedGoods> scrappedGoodsList = this.scrappedGoodsService.getByFormScrappedId(id); // 2.查询报废单商品信息 List<GoodModelInfoDTO> scrappedGoodsInfoList = scrappedGoodsService.getScrappedGoodsByScrappedId(id); // 通过baseGoodsTemplateId 进行分组 Map<Long, List<LWhFormScrappedGoods>> map = scrappedGoodsList.stream().collect(Collectors.groupingBy(LWhFormScrappedGoods::getBaseGoodsTemplateId)); Map<Long, List<GoodModelInfoDTO>> map = scrappedGoodsInfoList.stream().collect(Collectors.groupingBy(GoodModelInfoDTO::getBaseGoodsTemplateId)); // 循环map的key和value List<FormScrappedGoodsVO> scrappedGoodsVO = Lists.newArrayList(); for (Map.Entry<Long, List<LWhFormScrappedGoods>> entry : map.entrySet()) { Long baseGoodsTemplateId = entry.getKey(); List<LWhFormScrappedGoods> goodsList = entry.getValue(); LWhFormScrappedGoods lWhFormScrappedGoods = goodsList.stream().findFirst().get(); FormScrappedGoodsVO formScrappedGoodsVO = new FormScrappedGoodsVO(); formScrappedGoodsVO.setBaseGoodsTemplateId(baseGoodsTemplateId); formScrappedGoodsVO.setGoodsName(lWhFormScrappedGoods.getGoodsTemplateName()); String sql = "select CATEGORY_NAME from base_goods_template where id = :id"; Map<String, Object> param = new HashMap<>(); param.put("id", baseGoodsTemplateId); List<Map<String, Object>> goodTemplate = this.select(sql, param, new MapperUtil()); if (!CollectionUtils.isEmpty(goodTemplate)) { Optional<Map<String, Object>> first = goodTemplate.stream().findFirst(); Map<String, Object> objectMap = first.get(); formScrappedGoodsVO.setCategoryName(objectMap.get("categoryName").toString()); List<GoodsTemplateInfoVO> scrappedGoodsVO = Lists.newArrayList(); for (Map.Entry<Long, List<GoodModelInfoDTO>> entry : map.entrySet()) { List<GoodModelInfoDTO> goodsList = entry.getValue(); GoodModelInfoDTO goodModelInfoDTO = goodsList.stream().findFirst().orElse(null); GoodsTemplateInfoVO goodsTemplateInfoVO = new GoodsTemplateInfoVO(); if (goodModelInfoDTO != null) { goodsTemplateInfoVO.setId(goodModelInfoDTO.getId()); goodsTemplateInfoVO.setGoodsName(goodModelInfoDTO.getBaseGoodsName()); goodsTemplateInfoVO.setCategoryName(goodModelInfoDTO.getCategoryName()); goodsTemplateInfoVO.setId(goodModelInfoDTO.getId()); } List<GoodsModelVO> goodsModelList = Lists.newArrayList(); goodsList.forEach(item -> { GoodsModelVO goodsModelVO = new GoodsModelVO(); @@ -308,8 +301,8 @@ goodsModelVO.setScrappedName(item.getScrappedName()); goodsModelList.add(goodsModelVO); }); formScrappedGoodsVO.setModels(goodsModelList); scrappedGoodsVO.add(formScrappedGoodsVO); goodsTemplateInfoVO.setModels(goodsModelList); scrappedGoodsVO.add(goodsTemplateInfoVO); } scrappedExtend.setScrappedGoods(scrappedGoodsVO); consum-base/src/main/java/com/consum/base/service/impl/LWhFormTransferServiceImpl.java
@@ -1,10 +1,13 @@ package com.consum.base.service.impl; import com.consum.base.pojo.response.GoodsTemplateInfoVO; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.Optional; import java.util.stream.Collectors; import org.apache.commons.compress.utils.Lists; import org.springframework.beans.BeanUtils; @@ -15,6 +18,7 @@ import com.consum.base.core.CodeGeneratorEnum; import com.consum.base.core.CodeGeneratorService; import com.consum.base.core.type.CategoryType; import com.consum.base.core.utils.CurrencyUtil; import com.consum.base.core.utils.IdUtil; import com.consum.base.core.utils.MapUtils; @@ -22,11 +26,11 @@ import com.consum.base.pojo.LWhFormTransferGoodsInfoParam; import com.consum.base.pojo.LWhProcureModelUserParam; import com.consum.base.pojo.LWhTransferModelParam; import com.consum.base.pojo.dto.GoodModelInfoDTO; import com.consum.base.pojo.excel.TransferExcelTemplate; import com.consum.base.pojo.query.TransferQry; import com.consum.base.pojo.request.LWhFormTransferParam; import com.consum.base.pojo.response.DepartGoodsUseInfo; import com.consum.base.pojo.response.FormTransferGoodsVO; import com.consum.base.pojo.response.GoodsModelVO; import com.consum.base.pojo.response.LWHFromTransferExtendVO; import com.consum.base.service.BaseWarehouseManagerService; @@ -76,7 +80,7 @@ @Autowired private BaseWarehouseManagerService baseWarehouseManagerService; private static String QUERY_FORM_TRANSFER_LIST = private static final String QUERY_FORM_TRANSFER_LIST = "SELECT ft.* FROM l_wh_form_transfer ft " + "left join L_WH_PROCURE_MODEL pm on pm.BUSINESS_ID = ft.id " + "LEFT JOIN BASE_GOODS_MODELS bgm ON pm.BASE_GOODS_MODELS_ID=bgm.ID " + "LEFT JOIN BASE_GOODS_TEMPLATE bgt ON bgm.GOODS_TEMPLATES_ID=bgt.id WHERE 1 = 1 "; @@ -347,41 +351,50 @@ result.setDepartmentName(lWhFormTransfer.getInWarehouseName()); } String sql = "SELECT bgt.id, CATEGORY_ID, CATEGORY_NAME, GOODS_NAME,bgt.CLASSIFICATION type " + "FROM l_wh_procure_model pm LEFT JOIN base_goods_models bgm ON bgm.id = pm.BASE_GOODS_MODELS_ID " + "LEFT JOIN base_goods_template bgt ON bgt.id = bgm.GOODS_TEMPLATES_ID " + "WHERE pm.BUSINESS_ID =:id GROUP BY bgt.id "; List<GoodModelInfoDTO> goodsModelInfo = lWhProcureModelService.getGoodsModelListByBusinessId(result.getId(), null); if (CollectionUtils.isEmpty(goodsModelInfo)) { return result; } // 查询部门物品使用信息 Map<String, Object> paramMap = new HashMap<>(); paramMap.put("id", result.getId()); List<Map<String, Object>> procureModelList = this.select(sql, paramMap, new MapperUtil()); String queryRecord = "SELECT * FROM l_wh_procure_model_user_record where TRANS_BUSINESS_ID = :id order by DEAL_TIME desc limit 1"; LWhProcureModelUserRecord lWhProcureModelUserRecord = lWhProcureModelUserRecordService.get(queryRecord, paramMap, new LWhProcureModelUserRecord()); List<FormTransferGoodsVO> formTransferGoods = Lists.newArrayList(); for (Map<String, Object> map : procureModelList) { FormTransferGoodsVO procureTemplateInfoVO = MapUtils.convertMapToObj(map, FormTransferGoodsVO.class); Long baseGoodsTemplateId = procureTemplateInfoVO.getId(); // 查询型号数量 List<GoodsModelVO> goodsModelVOList = Lists.newArrayList(); String sql2 = "SELECT pm.id,pm.BASE_GOODS_MODELS_NAME,bgm.UNIT,COUNTS,total_amount " + "FROM l_wh_procure_model pm LEFT JOIN base_goods_models bgm ON bgm.id = pm.BASE_GOODS_MODELS_ID " + "LEFT JOIN base_goods_template bgt ON bgt.id = bgm.GOODS_TEMPLATES_ID " + "WHERE pm.BUSINESS_ID =:id and bgt.id =:baseGoodsTemplateId"; Map<String, Object> goodsModelParamMap = new HashMap<>(); goodsModelParamMap.put("id", result.getId()); goodsModelParamMap.put("baseGoodsTemplateId", baseGoodsTemplateId); List<Map<String, Object>> modelList = this.select(sql2, goodsModelParamMap, new MapperUtil()); modelList.forEach(item -> { GoodsModelVO goodsModelVO = MapUtils.convertMapToObj(item, GoodsModelVO.class); Integer businessType = result.getBusinessType(); String type = procureTemplateInfoVO.getType(); Map<Long, List<GoodModelInfoDTO>> collect = goodsModelInfo.stream().filter(Objects::nonNull).filter(dto -> dto.getBaseGoodsTemplateId() != null) .collect(Collectors.groupingBy(GoodModelInfoDTO::getBaseGoodsTemplateId)); List<GoodsTemplateInfoVO> goodsTemplateInfoList = Lists.newArrayList(); for (Map.Entry<Long, List<GoodModelInfoDTO>> entry : collect.entrySet()) { List<GoodModelInfoDTO> value = entry.getValue(); GoodModelInfoDTO goodModelInfoDTO = value.stream().findFirst().orElse(null); GoodsTemplateInfoVO goodsTemplateInfoVO = new GoodsTemplateInfoVO(); if (goodModelInfoDTO != null) { goodsTemplateInfoVO.setId(goodModelInfoDTO.getId()); goodsTemplateInfoVO.setCategoryName(goodModelInfoDTO.getCategoryName()); goodsTemplateInfoVO.setGoodsName(goodModelInfoDTO.getBaseGoodsName()); goodsTemplateInfoVO.setType(goodModelInfoDTO.getType()); } List<GoodsModelVO> goodsModelList = Lists.newArrayList(); for (GoodModelInfoDTO goodModelInfo : value) { GoodsModelVO goodsModelVO = new GoodsModelVO(); goodsModelVO.setId(goodModelInfo.getId()); goodsModelVO.setBaseGoodsModelsName(goodModelInfo.getBaseGoodsModelsName()); goodsModelVO.setUnit(goodModelInfo.getUnit()); goodsModelVO.setCounts(goodModelInfo.getCounts()); goodsModelVO.setTotalAmount(CurrencyUtil.convertFenToYuan(goodModelInfo.getTotalAmount())); // 部门分发需要查询使用信息 if (businessType == 1 && "A".equals(type)) { Integer businessType = result.getBusinessType(); String type = goodsTemplateInfoVO.getType(); if (businessType == 1 && CategoryType.TYPE_A.getValue().equals(type)) { Long procureModelId = goodsModelVO.getId(); LWhProcureModelUser lWhProcureModelUser = new LWhProcureModelUser(); lWhProcureModelUser.setWhProcureModelId(procureModelId); lWhProcureModelUser.setProcureModelUserRecordId(lWhProcureModelUserRecord.getId()); List<LWhProcureModelUser> procureModelUserList = this.lWhProcureModelUserService.select(lWhProcureModelUser); @@ -399,14 +412,74 @@ }); goodsModelVO.setUseInfo(departGoodsUseInfoList); } } goodsModelVOList.add(goodsModelVO); procureTemplateInfoVO.setModels(goodsModelVOList); }); formTransferGoods.add(procureTemplateInfoVO); goodsModelList.add(goodsModelVO); } goodsTemplateInfoVO.setModels(goodsModelList); goodsTemplateInfoList.add(goodsTemplateInfoVO); } result.setFormTransferGoods(formTransferGoods); result.setFormTransferGoods(goodsTemplateInfoList); // String sql = "SELECT bgt.id, CATEGORY_ID, CATEGORY_NAME, GOODS_NAME,bgt.CLASSIFICATION type " // + "FROM l_wh_procure_model pm LEFT JOIN base_goods_models bgm ON bgm.id = pm.BASE_GOODS_MODELS_ID " // + "LEFT JOIN base_goods_template bgt ON bgt.id = bgm.GOODS_TEMPLATES_ID " // + "WHERE pm.BUSINESS_ID =:id GROUP BY bgt.id "; // Map<String, Object> paramMap = new HashMap<>(); // paramMap.put("id", result.getId()); // List<Map<String, Object>> procureModelList = this.select(sql, paramMap, new MapperUtil()); // // String queryRecord = // "SELECT * FROM l_wh_procure_model_user_record where TRANS_BUSINESS_ID = :id order by DEAL_TIME desc limit 1"; // LWhProcureModelUserRecord lWhProcureModelUserRecord = // lWhProcureModelUserRecordService.get(queryRecord, paramMap, new LWhProcureModelUserRecord()); // List<FormTransferGoodsVO> formTransferGoods = Lists.newArrayList(); // for (Map<String, Object> map : procureModelList) { // FormTransferGoodsVO procureTemplateInfoVO = MapUtils.convertMapToObj(map, FormTransferGoodsVO.class); // Long baseGoodsTemplateId = procureTemplateInfoVO.getId(); // // 查询型号数量 // List<GoodsModelVO> goodsModelVOList = Lists.newArrayList(); // String sql2 = "SELECT pm.id,pm.BASE_GOODS_MODELS_NAME,bgm.UNIT,COUNTS,total_amount " // + "FROM l_wh_procure_model pm LEFT JOIN base_goods_models bgm ON bgm.id = pm.BASE_GOODS_MODELS_ID " // + "LEFT JOIN base_goods_template bgt ON bgt.id = bgm.GOODS_TEMPLATES_ID " // + "WHERE pm.BUSINESS_ID =:id and bgt.id =:baseGoodsTemplateId"; // Map<String, Object> goodsModelParamMap = new HashMap<>(); // goodsModelParamMap.put("id", result.getId()); // goodsModelParamMap.put("baseGoodsTemplateId", baseGoodsTemplateId); // List<Map<String, Object>> modelList = this.select(sql2, goodsModelParamMap, new MapperUtil()); // modelList.forEach(item -> { // GoodsModelVO goodsModelVO = MapUtils.convertMapToObj(item, GoodsModelVO.class); // Integer businessType = result.getBusinessType(); // String type = procureTemplateInfoVO.getType(); // // 部门分发需要查询使用信息 // if (businessType == 1 && "A".equals(type)) { // Long procureModelId = goodsModelVO.getId(); // LWhProcureModelUser lWhProcureModelUser = new LWhProcureModelUser(); // lWhProcureModelUser.setWhProcureModelId(procureModelId); // lWhProcureModelUser.setProcureModelUserRecordId(lWhProcureModelUserRecord.getId()); // List<LWhProcureModelUser> procureModelUserList = // this.lWhProcureModelUserService.select(lWhProcureModelUser); // if (!CollectionUtils.isEmpty(procureModelUserList)) { // List<DepartGoodsUseInfo> departGoodsUseInfoList = Lists.newArrayList(); // procureModelUserList.forEach(useInfo -> { // Integer goodsNum = useInfo.getGoodsNum(); // Long nowUserPhone = useInfo.getNowUserPhone(); // String nowUserName = useInfo.getNowUserName(); // DepartGoodsUseInfo departGoodsUseInfo = new DepartGoodsUseInfo(); // departGoodsUseInfo.setName(nowUserName); // departGoodsUseInfo.setNum(goodsNum); // departGoodsUseInfo.setTel(nowUserPhone); // departGoodsUseInfoList.add(departGoodsUseInfo); // }); // goodsModelVO.setUseInfo(departGoodsUseInfoList); // } // // } // goodsModelVOList.add(goodsModelVO); // procureTemplateInfoVO.setModels(goodsModelVOList); // }); // formTransferGoods.add(procureTemplateInfoVO); // } // result.setFormTransferGoods(formTransferGoods); return result; } consum-base/src/main/java/com/consum/base/service/impl/LWhProcureModelServiceImpl.java
@@ -3,6 +3,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Objects; import org.apache.commons.compress.utils.Lists; import org.springframework.stereotype.Service; @@ -116,7 +117,9 @@ List<Map<String, Object>> select = this.select(sql, param, new MapperUtil()); select.forEach(item -> { GoodsTemplateCountVO goodsModelVO = MapUtils.convertMapToObj(item, GoodsTemplateCountVO.class); goodsTemplateCount.add(goodsModelVO); if (Objects.nonNull(goodsModelVO)) { goodsTemplateCount.add(goodsModelVO); } }); return goodsTemplateCount; @@ -134,26 +137,35 @@ List<Map<String, Object>> procureModelList = this.select(sql, paramMap, new MapperUtil()); for (Map<String, Object> map : procureModelList) { GoodsTemplateCountVO goodsTemplateCountVO = MapUtils.convertMapToObj(map, GoodsTemplateCountVO.class); goodsTemplateCount.add(goodsTemplateCountVO); if (Objects.nonNull(goodsTemplateCountVO)) { goodsTemplateCount.add(goodsTemplateCountVO); } } return goodsTemplateCount; } @Override public List<GoodModelInfoDTO> getGoodsModelListByBusinessId(Long businessId) { public List<GoodModelInfoDTO> getGoodsModelListByBusinessId(Long businessId, Long procureGoodId) { // 查询型号列表信息 List<GoodModelInfoDTO> goodsModelList = Lists.newArrayList(); String sql = "SELECT bgt.id baseGoodsTemplateId,pm.id,CATEGORY_ID,CATEGORY_NAME,GOODS_NAME baseGoodsName,pm.BASE_GOODS_MODELS_NAME,bgm.UNIT,COUNTS,total_amount " + "FROM l_wh_procure_model pm LEFT JOIN base_goods_models bgm ON bgm.id = pm.BASE_GOODS_MODELS_ID " + "LEFT JOIN base_goods_template bgt ON bgt.id = bgm.GOODS_TEMPLATES_ID " + "WHERE pm.BUSINESS_ID = :businessId"; "SELECT bgt.id baseGoodsTemplateId,pm.id,CATEGORY_ID,CATEGORY_NAME,GOODS_NAME baseGoodsName,pm.BASE_GOODS_MODELS_NAME,bgm.UNIT,COUNTS,total_amount, " + "pm.BASE_GOODS_MODELS_ID,PRICE,WOREHOUSE_COUNT,bgt.CLASSIFICATION type FROM l_wh_procure_model pm LEFT JOIN base_goods_models bgm ON bgm.id = pm.BASE_GOODS_MODELS_ID " + "LEFT JOIN base_goods_template bgt ON bgt.id = bgm.GOODS_TEMPLATES_ID WHERE "; Map<String, Object> paramMap = new HashMap<>(); paramMap.put("businessId", businessId); if (businessId != null) { sql += "pm.BUSINESS_ID = :businessId "; paramMap.put("businessId", businessId); } else { sql += "pm.FROM_PROCURE_GOODS_ID =:procureGoodId "; paramMap.put("procureGoodId", procureGoodId); } List<Map<String, Object>> modelList = select(sql, paramMap, new MapperUtil()); modelList.forEach(item -> { GoodModelInfoDTO goodsModelVO = MapUtils.convertMapToObj(item, GoodModelInfoDTO.class); goodsModelList.add(goodsModelVO); if (Objects.nonNull(goodsModelVO)) { goodsModelList.add(goodsModelVO); } }); return goodsModelList; } consum-base/src/main/java/com/consum/base/service/impl/UsingFormBackServiceImpl.java
@@ -273,11 +273,13 @@ List<UsingFormBackModelInfo> modelInfoList = Lists.newArrayList(); templateInfo.stream().collect(Collectors.groupingBy(UsingFormBackDetailDTO::getBaseGoodsModelsId)) .forEach((modelId, modelInfo) -> { UsingFormBackDetailDTO modelInfoDTO = modelInfo.get(0); UsingFormBackDetailDTO modelInfoDTO = modelInfo.stream().findFirst().orElse(null); UsingFormBackModelInfo usingFormBackModelInfo = new UsingFormBackModelInfo(); usingFormBackModelInfo.setBaseGoodsModelsName(modelInfoDTO.getBaseGoodsModelsName()); usingFormBackModelInfo.setUnit(modelInfoDTO.getUnit()); usingFormBackModelInfo.setId(modelId); if (modelInfoDTO != null) { usingFormBackModelInfo.setBaseGoodsModelsName(modelInfoDTO.getBaseGoodsModelsName()); usingFormBackModelInfo.setUnit(modelInfoDTO.getUnit()); usingFormBackModelInfo.setId(modelId); } modelInfoList.add(usingFormBackModelInfo); usingFormBackGoodsTemplateInfo.setModelInfoList(modelInfoList); List<UseInfo> useInfoList = Lists.newArrayList();