consum-base/src/main/java/com/consum/base/service/impl/LWhFormTransferServiceImpl.java
@@ -1,5 +1,7 @@
package com.consum.base.service.impl;
import static com.walker.db.Sorts.DESC;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -35,7 +37,7 @@
import com.consum.base.pojo.response.LWHFromTransferExtendVO;
import com.consum.base.service.BaseWarehouseManagerService;
import com.consum.base.service.BaseWarehouseService;
import com.consum.base.service.FinSysTenantServiceImpl;
import com.consum.base.service.FinSysTenantService;
import com.consum.base.service.LWhFormTransferService;
import com.consum.base.service.LWhGoodsService;
import com.consum.base.service.LWhProcureModelService;
@@ -67,7 +69,7 @@
    @Autowired
    private CodeGeneratorService codeGeneratorService;
    @Autowired
    private FinSysTenantServiceImpl finSysTenantService;
    private FinSysTenantService finSysTenantService;
    @Autowired
    private LWhGoodsService lWhGoodsService;
    @Autowired
@@ -110,7 +112,6 @@
        lWhFormTransfer.setBusinessFormCode(codeGeneratorService.createBusinessFormCode(codeGeneratorEnum));
        Long warehouseId = param.getInWarehouseId();
        // 调拨类型单据
        if (businessType == TransferBusinessType.STOCK_TRANSFER.getValue()) {
            // 入库仓库为当前用户的默认仓库
@@ -132,9 +133,9 @@
            // 从当前登录库管人从库中出库,入到所选部门的下
            // 查询库管员信息和相关仓库
            Long id = sysInfo.getId();
            Long sysUserId = sysInfo.getSysUserId();
            BaseWarehouseManager manager = new BaseWarehouseManager();
            manager.setManagerId(id);
            manager.setManagerId(sysUserId);
            List<BaseWarehouseManager> managerList = baseWarehouseManagerService.select(manager);
            if (CollectionUtils.isEmpty(managerList)) {
                log.error("该用户不是库管员");
@@ -168,7 +169,8 @@
        if (finSysTenant == null) {
            log.error("调拨机构不存在");
        }
        lWhFormTransfer.setOutAgencyId(finSysTenant.getId());
        Long outAgencyId = finSysTenant.getId();
        lWhFormTransfer.setOutAgencyId(outAgencyId);
        lWhFormTransfer.setOutAgencyName(finSysTenant.getName());
        lWhFormTransfer.setOperatorId(sysInfo.getId());
        lWhFormTransfer.setOperatorName(sysInfo.getUserName());
@@ -212,7 +214,12 @@
                if (businessType == TransferBusinessType.STOCK_TRANSFER.getValue()) {
                    lWhProcureModel.setBusinessType(2);
                    // 根据物品型号查询物品库存
                    int goodsNum = lWhGoodsService.queryGoodsModelNum(0, warehouseId, baseGoodsModelsId, 1, null);
                    // 调拨申请时没有仓库id 查询上级机构的所有仓库
                    List<BaseWarehouse> baseWareHouseList =
                        baseWarehouseService.getBaseWareHouseList(outAgencyId, null, (short)1);
                    List<Long> warehouseIdList =
                        baseWareHouseList.stream().map(BaseWarehouse::getId).collect(Collectors.toList());
                    int goodsNum = lWhGoodsService.queryGoodsModelNum(0, warehouseIdList, baseGoodsModelsId, 1, null);
                    lWhProcureModel.setWorehouseCount(goodsNum);
                }
                if (businessType == TransferBusinessType.DEPARTMENT_PROCURE.getValue()) {
@@ -293,6 +300,11 @@
            paramts.put("goodsTemplateName",
                StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT);
        }
        // 物品id
        if (param.getGoodsTemplateId() != null) {
            sql.append("AND bgt.id = :goodsTemplateId ");
            paramts.put("goodsTemplateId", param.getGoodsTemplateId());
        }
        // 调拨机构
        if (param.getOutAgencyId() != null) {
            sql.append(" and OUT_AGENCY_ID = :OUT_AGENCY_ID ");
@@ -332,9 +344,9 @@
            paramts.put("inTimeEnd", param.getEndTime() * 1000000 + 240000);
        }
        // 分发部门
        if (param.getInWarehouseId() != null) {
        if (param.getDepartmentId() != null) {
            sql.append("and ft.IN_WAREHOUSE_ID = :inWarehouseId ");
            paramts.put("inWarehouseId", param.getInWarehouseId());
            paramts.put("inWarehouseId", param.getDepartmentId());
        }
        sql.append(" ORDER BY ft.CREATE_TIME DESC");
@@ -393,8 +405,14 @@
                    && CategoryType.TYPE_A.getValue().equals(type)) {
                    Long procureModelId = goodsModelVO.getId();
                    LWhProcureModelUserRecord lWhProcureModelUserRecord = new LWhProcureModelUserRecord();
                    lWhProcureModelUserRecord.setTransBusinessId(id);
                    List<LWhProcureModelUserRecord> select = lWhProcureModelUserRecordService
                        .select(lWhProcureModelUserRecord, DESC().setField("DEAL_TIME"));
                    LWhProcureModelUserRecord record = select.stream().findFirst().orElse(null);
                    LWhProcureModelUser lWhProcureModelUser = new LWhProcureModelUser();
                    lWhProcureModelUser.setWhProcureModelId(procureModelId);
                    lWhProcureModelUser.setProcureModelUserRecordId(record.getId());
                    List<LWhProcureModelUser> procureModelUserList =
                        this.lWhProcureModelUserService.select(lWhProcureModelUser);
@@ -551,6 +569,11 @@
            paramts.put("goodsName",
                StringUtils.CHAR_PERCENT + transferQry.getGoodsTemplateName() + StringUtils.CHAR_PERCENT);
        }
        // 物品id
        if (transferQry.getGoodsTemplateId() != null) {
            sql.append("AND bgt.id =:goodsTemplateId ");
            paramts.put("goodsTemplateId", transferQry.getGoodsTemplateId());
        }
        // 规格型号
        if (transferQry.getBaseGoodsModelsId() != null) {
            sql.append("AND bgm.id =:goodsModelId ");
@@ -558,13 +581,13 @@
        }
        // 调拨机构
        if (transferQry.getOutAgencyId() != null) {
            sql.append("AND OUT_AGENCY_ID = :OUT_AGENCY_ID ");
            paramts.put("OUT_AGENCY_ID", transferQry.getOutAgencyId());
            sql.append("AND OUT_AGENCY_ID like :OUT_AGENCY_ID ");
            paramts.put("OUT_AGENCY_ID", transferQry.getOutAgencyId() + StringUtils.CHAR_PERCENT);
        }
        // 分发部门
        if (transferQry.getInWarehouseId() != null) {
        if (transferQry.getDepartmentId() != null) {
            sql.append("and ft.IN_WAREHOUSE_ID = :inWarehouseId ");
            paramts.put("inWarehouseId", transferQry.getInWarehouseId());
            paramts.put("inWarehouseId", transferQry.getDepartmentId());
        }
        // 创建人
        if (StringUtils.isNotEmpty(transferQry.getOperatorName())) {
@@ -598,7 +621,7 @@
            + "       ft.OUT_OPERATOR_NAME,\n" + "       ft.OUTPUT_TIME\n" + "FROM l_wh_form_transfer ft\n"
            + "         LEFT JOIN l_wh_procure_model pm ON ft.ID = pm.BUSINESS_ID\n"
            + "         LEFT JOIN base_goods_models bgm ON bgm.id = pm.BASE_GOODS_MODELS_ID\n"
            + "         LEFT JOIN base_goods_template bgt ON bgt.id = bgm.GOODS_TEMPLATES_ID where 1=1 ");
            + "         LEFT JOIN base_goods_template bgt ON bgt.id = bgm.GOODS_TEMPLATES_ID where ft.BUSINESS_TYPE =0 ");
        if (StringUtils.isNotEmpty(param.getBusinessFormCode())) {
            sql.append("AND ft.BUSINESS_FORM_CODE = :businessFormCode ");
            params.put("businessFormCode", param.getBusinessFormCode());
@@ -607,6 +630,10 @@
            sql.append("AND bgt.GOODS_NAME like :goodsName ");
            params.put("goodsName", StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT);
        }
        if (param.getGoodsTemplateId() != null) {
            sql.append("AND bgt.id = :goodsTemplateId ");
            params.put("goodsTemplateId", param.getGoodsTemplateId());
        }
        if (param.getBaseGoodsModelsId() != null) {
            sql.append("AND bgm.id = :goodsModelId ");
            params.put("goodsModelId", param.getBaseGoodsModelsId());