From e19d9742d5d14823bc414b1d1d47778b3daee227 Mon Sep 17 00:00:00 2001 From: futian.liu <liufutianyoo@163.com> Date: 星期二, 19 十二月 2023 09:24:56 +0800 Subject: [PATCH] 盘点时库存查询不分仓库类型 --- consum-base/src/main/java/com/consum/base/controller/LWhFormTransferController.java | 152 +++++++++++++++++++++++++++++++++++++------------- 1 files changed, 112 insertions(+), 40 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 7ff0ae1..e03af4f 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 @@ -1,15 +1,36 @@ package com.consum.base.controller; -import cn.afterturn.easypoi.excel.ExcelExportUtil; -import cn.afterturn.easypoi.excel.entity.TemplateExportParams; -import cn.hutool.core.util.ReflectUtil; +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +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; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + import com.consum.base.BaseController; +import com.consum.base.core.WhBusinessEnum; 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; @@ -20,31 +41,33 @@ import com.consum.base.pojo.response.GoodsTemplateCountVO; import com.consum.base.pojo.response.LWHFromTransferExtendVO; import com.consum.base.pojo.response.TransferInfoVO; -import com.consum.base.service.*; +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; import com.consum.base.service.impl.LWhFormTransferCoreService; -import com.consum.model.po.*; +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; import com.walker.db.page.GenericPager; import com.walker.infrastructure.utils.CollectionUtils; import com.walker.infrastructure.utils.DateUtils; import com.walker.web.ResponseValue; + +import cn.afterturn.easypoi.excel.ExcelExportUtil; +import cn.afterturn.easypoi.excel.entity.TemplateExportParams; +import cn.hutool.core.util.ReflectUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; -import org.apache.commons.compress.utils.Lists; -import org.apache.poi.ss.usermodel.Workbook; -import org.springframework.beans.BeanUtils; -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.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import javax.servlet.http.HttpServletResponse; -import java.lang.reflect.Field; -import java.util.*; -import java.util.stream.Collectors; /** * @Description 璋冩嫧绠$悊 @@ -67,9 +90,11 @@ @Autowired private LWhProcureModelUserRecordService lWhProcureModelUserRecordService; @Autowired - private BaseWarehouseService baseWarehouseService; - @Autowired private LGoodsUserRecordCoreService lGoodsUserRecordCoreService; + @Autowired + private LWhGoodsService lWhGoodsService; + @Autowired + private BaseWarehouseService baseWarehouseService; /** * @Description 鏂板 @@ -98,23 +123,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), null, (short)1); + 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(); @@ -234,7 +276,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(); } @@ -247,22 +289,39 @@ @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), null, (short)1); + 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(); } @@ -271,7 +330,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; @@ -305,7 +364,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); } @@ -324,9 +384,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); @@ -381,6 +445,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); } @@ -436,6 +506,7 @@ 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()); @@ -448,6 +519,7 @@ goodsUseRecordVO.setRecordSkuDtoList(useRecordSkuList); return goodsUseRecordVO; + }).sorted(Comparator.comparing(GoodsUseRecordVO::getUpdateTime, Comparator.nullsFirst(Long::compareTo)) .reversed()) .collect(Collectors.toList()); -- Gitblit v1.9.1