futian.liu
2023-12-18 3884e330379c96e7576ada6b7a988a84e8757886
consum-base/src/main/java/com/consum/base/controller/LWhFormTransferController.java
@@ -7,11 +7,13 @@
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;
@@ -21,12 +23,14 @@
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;
@@ -40,6 +44,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;
@@ -47,6 +52,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;
@@ -84,9 +90,11 @@
    @Autowired
    private LWhProcureModelUserRecordService lWhProcureModelUserRecordService;
    @Autowired
    private BaseWarehouseService baseWarehouseService;
    @Autowired
    private LGoodsUserRecordCoreService lGoodsUserRecordCoreService;
    @Autowired
    private LWhGoodsService lWhGoodsService;
    @Autowired
    private BaseWarehouseService baseWarehouseService;
    /**
     * @Description 新增
@@ -115,16 +123,33 @@
        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());
            // 通过调拨单中的型号id查询出该型号物品所在的仓库位置
            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);
@@ -264,17 +289,34 @@
    @ApiImplicitParams({@ApiImplicitParam(name = "id", value = "调拨单id", 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());
        // 通过调拨单中的型号id查询出该型号物品所在的仓库位置
        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);
@@ -322,7 +364,8 @@
        map.put("totalAmount", totalAmount);
        Workbook workbook = ExcelExportUtil.exportExcel(params, TransferExcelTemplate.class, export, map);
        return ResponseValue.success(downLoadExcel(fileName, response, workbook));
        String filePath = downLoadExcel(fileName, response, workbook);
        return ResponseValue.success("导出成功", filePath);
    }
@@ -476,6 +519,7 @@
                goodsUseRecordVO.setRecordSkuDtoList(useRecordSkuList);
                return goodsUseRecordVO;
            }).sorted(Comparator.comparing(GoodsUseRecordVO::getUpdateTime, Comparator.nullsFirst(Long::compareTo))
                .reversed())
            .collect(Collectors.toList());