From e2d97f3c90a6baa36b9edefe927225da907a27c6 Mon Sep 17 00:00:00 2001 From: futian.liu <liufutianyoo@163.com> Date: 星期二, 19 十二月 2023 10:02:15 +0800 Subject: [PATCH] 去除默认机构默认仓库逻辑 --- consum-base/src/main/java/com/consum/base/controller/LWhFormTransferController.java | 185 ++++++++++++++++++++++++++++++---------------- 1 files changed, 120 insertions(+), 65 deletions(-) diff --git a/consum-base/src/main/java/com/consum/base/controller/LWhFormTransferController.java b/consum-base/src/main/java/com/consum/base/controller/LWhFormTransferController.java index 160179e..bc750e4 100644 --- a/consum-base/src/main/java/com/consum/base/controller/LWhFormTransferController.java +++ b/consum-base/src/main/java/com/consum/base/controller/LWhFormTransferController.java @@ -6,13 +6,14 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Map.Entry; import java.util.Optional; +import java.util.Set; import java.util.stream.Collectors; import javax.servlet.http.HttpServletResponse; import org.apache.commons.compress.utils.Lists; +import org.apache.commons.lang3.ObjectUtils; import org.apache.poi.ss.usermodel.Workbook; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -22,12 +23,15 @@ import org.springframework.web.bind.annotation.RestController; import com.consum.base.BaseController; +import com.consum.base.core.WhBusinessEnum; +import com.consum.base.core.type.StatesType; import com.consum.base.core.utils.CommonUtil; import com.consum.base.core.utils.IdUtil; import com.consum.base.pojo.GoodsUseRecordVO; import com.consum.base.pojo.LWhFormTransferGoodsInfoParam; import com.consum.base.pojo.RecordUserInfoVO; import com.consum.base.pojo.UseRecordSkuVO; +import com.consum.base.pojo.dto.GoodsInfoDTO; import com.consum.base.pojo.dto.UseRecordDTO; import com.consum.base.pojo.excel.TransferExcelTemplate; import com.consum.base.pojo.query.TransferQry; @@ -41,6 +45,7 @@ import com.consum.base.service.BaseWarehouseService; import com.consum.base.service.LGoodsUserRecordCoreService; import com.consum.base.service.LWhFormTransferService; +import com.consum.base.service.LWhGoodsService; import com.consum.base.service.LWhProcureModelService; import com.consum.base.service.LWhProcureModelUserRecordService; import com.consum.base.service.LWhProcureModelUserService; @@ -48,6 +53,7 @@ import com.consum.model.po.BaseWarehouse; import com.consum.model.po.FinSysTenantUser; import com.consum.model.po.LWhFormTransfer; +import com.consum.model.po.LWhProcureModel; import com.consum.model.po.LWhProcureModelUser; import com.consum.model.po.LWhProcureModelUserRecord; import com.iplatform.model.po.S_user_core; @@ -85,9 +91,11 @@ @Autowired private LWhProcureModelUserRecordService lWhProcureModelUserRecordService; @Autowired - private BaseWarehouseService baseWarehouseService; - @Autowired private LGoodsUserRecordCoreService lGoodsUserRecordCoreService; + @Autowired + private LWhGoodsService lWhGoodsService; + @Autowired + private BaseWarehouseService baseWarehouseService; /** * @Description 鏂板 @@ -116,23 +124,40 @@ if (transferBusinessType == 1) { // 鍏堝嚭搴擄紝鍐嶅叆搴� // 鍑哄簱鍓� 璁剧疆鍑哄簱浠撳簱 + List<LWhProcureModel> modelByForm = lWhProcureModelService.getModelByForm(WhBusinessEnum.DIAOBO, id); + Set<Long> baseModelIds = + modelByForm.stream().map(LWhProcureModel::getBaseGoodsModelsId).collect(Collectors.toSet()); + + // TODO 涓嶅悓搴撳鐞� FinSysTenantUser sysTenantUser = this.getSysInfo(); String agencyId = sysTenantUser.getTenantId(); List<BaseWarehouse> baseWarehouseList = - baseWarehouseService.getByAgencyId(Long.valueOf(agencyId), (short)1, (short)1); - if (CollectionUtils.isEmpty(baseWarehouseList)) { - return ResponseValue.error("鏈烘瀯鏃犻粯璁や粨搴擄紒"); + baseWarehouseService.getBaseWareHouseList(Long.valueOf(agencyId), StatesType.NORMAL.getValue()); + Set<Long> wareHouseIds = baseWarehouseList.stream().map(BaseWarehouse::getId).collect(Collectors.toSet()); + // 閫氳繃璋冩嫧鍗曚腑鐨勫瀷鍙穒d鏌ヨ鍑鸿鍨嬪彿鐗╁搧鎵�鍦ㄧ殑浠撳簱浣嶇疆 + List<GoodsInfoDTO> goodsInfoDTOS = lWhGoodsService.queryGoodsInfo(baseModelIds, wareHouseIds); + GoodsInfoDTO goodsInfoDTO = goodsInfoDTOS.stream().findFirst().orElse(null); + if (ObjectUtils.isEmpty(goodsInfoDTO)) { + return ResponseValue.error("璇ュ瀷鍙锋病鏈夊簱瀛樺彲浣跨敤"); } - BaseWarehouse baseWarehouse = baseWarehouseList.get(0); - Long wareHouseId = baseWarehouse.getId(); - String warehouseName = baseWarehouse.getWarehouseName(); + // FinSysTenantUser sysTenantUser = this.getSysInfo(); + // String agencyId = sysTenantUser.getTenantId(); + // List<BaseWarehouse> baseWarehouseList = + // baseWarehouseService.getBaseWareHouseList(Long.valueOf(agencyId), (short)1, (short)1); + // if (CollectionUtils.isEmpty(baseWarehouseList)) { + // return ResponseValue.error("鏈烘瀯鏃犻粯璁や粨搴擄紒"); + // } + // BaseWarehouse baseWarehouse = baseWarehouseList.get(0); + + Long wareHouseId = goodsInfoDTO.getWarehouseId(); + String warehouseName = goodsInfoDTO.getWarehouseName(); LWhFormTransfer lWhFormTransfer = new LWhFormTransfer(id); lWhFormTransfer.setOutWarehouseId(wareHouseId); lWhFormTransfer.setOutWarehouseName(warehouseName); lWhFormTransferService.update(lWhFormTransfer); lWhFormTransferCoreService.doTransferOutPut(id, getCurrentUser()); - lWhFormTransferCoreService.doTransferInPut(id, getCurrentUser()); + lWhFormTransferCoreService.doTransferInPut(id, getCurrentUser(), param.getOperatorName()); } return ResponseValue.success(); @@ -252,7 +277,7 @@ @ApiImplicitParams({@ApiImplicitParam(name = "id", value = "璋冩嫧鍗昳d", required = true, dataType = "Long"),}) @PostMapping("/income") public ResponseValue income(Long id) { - lWhFormTransferCoreService.doTransferInPut(id, getCurrentUser()); + lWhFormTransferCoreService.doTransferInPut(id, getCurrentUser(), null); return ResponseValue.success(); } @@ -265,22 +290,40 @@ @ApiImplicitParams({@ApiImplicitParam(name = "id", value = "璋冩嫧鍗昳d", required = true, dataType = "Long"),}) @PostMapping("/output") public ResponseValue output(Long id) { - // 鍑哄簱鍓� 璁剧疆鍑哄簱浠撳簱 + + List<LWhProcureModel> modelByForm = lWhProcureModelService.getModelByForm(WhBusinessEnum.DIAOBO, id); + Set<Long> baseModelIds = + modelByForm.stream().map(LWhProcureModel::getBaseGoodsModelsId).collect(Collectors.toSet()); + + // TODO 涓嶅悓搴撳鐞嗕笖涓烘湰鏈烘瀯鐨勪粨搴撶墿鍝� FinSysTenantUser sysTenantUser = this.getSysInfo(); String agencyId = sysTenantUser.getTenantId(); List<BaseWarehouse> baseWarehouseList = - baseWarehouseService.getByAgencyId(Long.valueOf(agencyId), (short)1, (short)1); - if (CollectionUtils.isEmpty(baseWarehouseList)) { - return ResponseValue.error("鏈烘瀯鏃犻粯璁や粨搴擄紒"); + baseWarehouseService.getBaseWareHouseList(Long.valueOf(agencyId), StatesType.NORMAL.getValue()); + Set<Long> wareHouseIds = baseWarehouseList.stream().map(BaseWarehouse::getId).collect(Collectors.toSet()); + + // 閫氳繃璋冩嫧鍗曚腑鐨勫瀷鍙穒d鏌ヨ鍑鸿鍨嬪彿鐗╁搧鎵�鍦ㄧ殑浠撳簱浣嶇疆 + List<GoodsInfoDTO> goodsInfoDTOS = lWhGoodsService.queryGoodsInfo(baseModelIds, wareHouseIds); + GoodsInfoDTO goodsInfoDTO = goodsInfoDTOS.stream().findFirst().orElse(null); + // 鍑哄簱鍓� 璁剧疆鍑哄簱浠撳簱 + // FinSysTenantUser sysTenantUser = this.getSysInfo(); + // String agencyId = sysTenantUser.getTenantId(); + // List<BaseWarehouse> baseWarehouseList = + // baseWarehouseService.getBaseWareHouseList(Long.valueOf(agencyId), (short)1, (short)1); + // if (CollectionUtils.isEmpty(baseWarehouseList)) { + // return ResponseValue.error("鏈烘瀯鏃犻粯璁や粨搴擄紒"); + // } + if (ObjectUtils.isEmpty(goodsInfoDTO)) { + return ResponseValue.error("璇ュ瀷鍙锋病鏈夊簱瀛樺彲浣跨敤"); } - BaseWarehouse baseWarehouse = baseWarehouseList.get(0); - Long wareHouseId = baseWarehouse.getId(); - String warehouseName = baseWarehouse.getWarehouseName(); + Long wareHouseId = goodsInfoDTO.getWarehouseId(); + String warehouseName = goodsInfoDTO.getWarehouseName(); LWhFormTransfer lWhFormTransfer = new LWhFormTransfer(id); lWhFormTransfer.setOutWarehouseId(wareHouseId); lWhFormTransfer.setOutWarehouseName(warehouseName); lWhFormTransferService.update(lWhFormTransfer); - lWhFormTransferCoreService.doTransferOutPut(id, getCurrentUser()); + // lWhFormTransferCoreService.doTransferOutPut(id, getCurrentUser()); + lWhFormTransferCoreService.doTransferOutPutNew(id, getCurrentUser()); return ResponseValue.success(); } @@ -288,7 +331,7 @@ @ApiImplicitParams({@ApiImplicitParam(name = "id", value = "璋冩嫧鍗昳d", required = true, dataType = "Long"), @ApiImplicitParam(name = "type", value = "瀵煎嚭绫诲瀷 1 鍏ュ簱 2 鍑哄簱", required = true, dataType = "Integer"),}) @GetMapping("/list/export") - public void export(Long id, Integer type, HttpServletResponse response) throws Exception { + public ResponseValue<String> export(Long id, Integer type, HttpServletResponse response) throws Exception { TemplateExportParams params; String fileName; @@ -322,7 +365,8 @@ map.put("totalAmount", totalAmount); Workbook workbook = ExcelExportUtil.exportExcel(params, TransferExcelTemplate.class, export, map); - downLoadExcel(fileName, response, workbook); + String filePath = downLoadExcel(fileName, response, workbook); + return ResponseValue.success("瀵煎嚭鎴愬姛", filePath); } @@ -341,9 +385,13 @@ CommonUtil.copyProperties(param, param2); param = param2; - S_user_core currentUser = this.getCurrentUser(); - if (currentUser == null) { + FinSysTenantUser sysInfo = this.getSysInfo(); + if (sysInfo == null) { return ResponseValue.error("鐧诲綍鐢ㄦ埛淇℃伅涓嶅瓨鍦�"); + } + String tenantId = sysInfo.getTenantId(); + if (param.getOutAgencyId() == null) { + param.setOutAgencyId(Long.valueOf(tenantId)); } GenericPager<Map<String, Object>> transferInfoDetailsVoGenericPager = this.lWhFormTransferService.queryTransferInfo(param); @@ -398,6 +446,12 @@ lWhProcureModelUser.setNowUserPhone(item.getPhone()); lWhProcureModelUser.setNowUserName(item.getUserName()); lWhProcureModelUser.setGoodsNum(item.getCount()); + + // 璁剧疆涓�涓嬪湪鐢ㄦ暟閲� + Long oldProcureModelId = item.getOldProcureModelId(); + LWhProcureModelUser oldInfo = + lWhProcureModelUserService.get(new LWhProcureModelUser(oldProcureModelId)); + lWhProcureModelUser.setUseCount(oldInfo.getUseCount()); procureModelUserList.add(lWhProcureModelUser); } @@ -420,57 +474,58 @@ @ApiImplicitParams({@ApiImplicitParam(name = "transferOrderId", value = "璋冩嫧鍗昳d", required = true)}) @GetMapping("/use/record") public ResponseValue useRecord(Long transferOrderId) { - S_user_core currentUser = this.getCurrentUser(); if (currentUser == null) { return ResponseValue.error("鐧诲綍鐢ㄦ埛淇℃伅涓嶅瓨鍦�"); } + List<UseRecordDTO> useRecordDTOList = lWhProcureModelUserService.selectUseRecord(transferOrderId); if (CollectionUtils.isEmpty(useRecordDTOList)) { return ResponseValue.error("鏈煡璇㈠埌浣跨敤璁板綍"); } - List<GoodsUseRecordVO> goodsUseRecordList = Lists.newArrayList(); - // 鍒嗙粍 - Map<Long, List<UseRecordDTO>> groupedRecords = - useRecordDTOList.stream().collect(Collectors.groupingBy(UseRecordDTO::getId)); - for (Entry<Long, List<UseRecordDTO>> entry : groupedRecords.entrySet()) { - Long id = entry.getKey(); - List<UseRecordDTO> useRecordList = entry.getValue(); - UseRecordDTO useRecordDto = useRecordList.get(0); - // 寮�濮嬪惊鐜痸alue - GoodsUseRecordVO goodsUseRecordVO = new GoodsUseRecordVO(); - goodsUseRecordVO.setId(id); - goodsUseRecordVO.setUpdateUserName(useRecordDto.getUpdateUserName()); - goodsUseRecordVO.setUpdateTime(useRecordDto.getUpdateTime()); - List<UseRecordSkuVO> useRecordSkuList = Lists.newArrayList(); - useRecordList.stream().collect(Collectors.groupingBy(UseRecordDTO::getProcureModelId)) - .forEach((key, recordList) -> { - UseRecordDTO useRecordDTO = recordList.get(0); - UseRecordSkuVO useRecordSkuVO = new UseRecordSkuVO(); - useRecordSkuVO.setBaseGoodModelId(useRecordDTO.getBaseGoodsModelsId()); - useRecordSkuVO.setBaseGoodModelName(useRecordDTO.getBaseGoodsModelsName()); - useRecordSkuVO.setUnit(useRecordDTO.getUnit()); - useRecordSkuVO.setProcureModelId(useRecordDTO.getProcureModelId()); - List<RecordUserInfoVO> recordUserInfoList = Lists.newArrayList(); - for (UseRecordDTO userInfo : recordList) { - RecordUserInfoVO recordUserInfoVO = new RecordUserInfoVO(); - recordUserInfoVO.setUseName(userInfo.getUseName()); - recordUserInfoVO.setPhone(userInfo.getPhone()); - recordUserInfoVO.setNum(userInfo.getNum()); - recordUserInfoList.add(recordUserInfoVO); - } - useRecordSkuVO.setRecordUserInfos(recordUserInfoList); - useRecordSkuList.add(useRecordSkuVO); - }); - goodsUseRecordVO.setRecordSkuDtoList(useRecordSkuList); - goodsUseRecordList.add(goodsUseRecordVO); - } - // 鍒嗙粍涔嬪悗閲嶆柊鎺掑簭 - List<GoodsUseRecordVO> result = goodsUseRecordList - .stream().sorted(Comparator - .comparing(GoodsUseRecordVO::getUpdateTime, Comparator.nullsFirst(Long::compareTo)).reversed()) + + List<GoodsUseRecordVO> goodsUseRecordList = useRecordDTOList.stream() + .collect(Collectors.groupingBy(UseRecordDTO::getId)).entrySet().stream().map(entry -> { + Long id = entry.getKey(); + List<UseRecordDTO> useRecordList = entry.getValue(); + UseRecordDTO useRecordDto = useRecordList.get(0); + + GoodsUseRecordVO goodsUseRecordVO = new GoodsUseRecordVO(); + goodsUseRecordVO.setId(id); + goodsUseRecordVO.setUpdateUserName(useRecordDto.getUpdateUserName()); + goodsUseRecordVO.setUpdateTime(useRecordDto.getUpdateTime()); + + List<UseRecordSkuVO> useRecordSkuList = + useRecordList.stream().collect(Collectors.groupingBy(UseRecordDTO::getProcureModelId)).values() + .stream().map(recordList -> { + UseRecordDTO useRecordDTO = recordList.get(0); + UseRecordSkuVO useRecordSkuVO = new UseRecordSkuVO(); + useRecordSkuVO.setBaseGoodModelId(useRecordDTO.getBaseGoodsModelsId()); + useRecordSkuVO.setBaseGoodModelName(useRecordDTO.getBaseGoodsModelsName()); + useRecordSkuVO.setUnit(useRecordDTO.getUnit()); + useRecordSkuVO.setProcureModelId(useRecordDTO.getProcureModelId()); + + List<RecordUserInfoVO> recordUserInfoList = recordList.stream().map(userInfo -> { + RecordUserInfoVO recordUserInfoVO = new RecordUserInfoVO(); + recordUserInfoVO.setOldProcureModelId(userInfo.getOldProcureModelId()); + recordUserInfoVO.setUseName(userInfo.getUseName()); + recordUserInfoVO.setPhone(userInfo.getPhone()); + recordUserInfoVO.setNum(userInfo.getNum()); + return recordUserInfoVO; + }).collect(Collectors.toList()); + + useRecordSkuVO.setRecordUserInfos(recordUserInfoList); + return useRecordSkuVO; + }).collect(Collectors.toList()); + + goodsUseRecordVO.setRecordSkuDtoList(useRecordSkuList); + return goodsUseRecordVO; + + }).sorted(Comparator.comparing(GoodsUseRecordVO::getUpdateTime, Comparator.nullsFirst(Long::compareTo)) + .reversed()) .collect(Collectors.toList()); - return ResponseValue.success(result); + + return ResponseValue.success(goodsUseRecordList); } @ApiOperation(value = "鏌ヨ閮ㄩ棬涓嬬殑鍒嗗彂鍗�", notes = "鏌ヨ閮ㄩ棬涓嬬殑鍒嗗彂鍗�") -- Gitblit v1.9.1