futian.liu
2023-11-29 abc5baf903a2bd229fb7f2decd35b26536d86e13
部门分发增加出库和入库
6个文件已修改
213 ■■■■■ 已修改文件
consum-base/src/main/java/com/consum/base/controller/LWhFormInventoryController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/controller/LWhFormTransferController.java 97 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/query/TransferQry.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/LWhFormInventoryGoodsServiceImpl.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/LWhFormInventoryServiceImpl.java 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/LWhFormTransferServiceImpl.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/controller/LWhFormInventoryController.java
@@ -121,10 +121,12 @@
        if (id == null) {
            return ResponseValue.error("参数不能为空");
        }
        //通过机构查询相关的模板信息
        FormInventoryVO formInventoryVO = this.lWhFormInventoryService.queryInventBaseGoodTemplate(id);
        this.lWhFormInventoryService.saveInventory(formInventoryVO, id);
        return ResponseValue.success(formInventoryVO);
        // 保存后返回记录信息
        List<FormInventoryGoodsVO> result = this.lWhFormInventoryService.saveInventory(formInventoryVO, id);
        return ResponseValue.success(result);
    }
    /**
consum-base/src/main/java/com/consum/base/controller/LWhFormTransferController.java
@@ -2,6 +2,7 @@
import cn.hutool.core.util.ReflectUtil;
import com.consum.base.BaseController;
import com.consum.base.core.utils.CommonUtil;
import com.consum.base.core.utils.IdUtil;
import com.consum.base.core.utils.MapUtils;
import com.consum.base.core.utils.MapperUtil;
@@ -17,8 +18,18 @@
import com.consum.base.pojo.response.FromTransferTemplateInfoVO;
import com.consum.base.pojo.response.LWHFromTransferExtendVO;
import com.consum.base.pojo.response.TransferInfoVO;
import com.consum.base.service.*;
import com.consum.model.po.*;
import com.consum.base.service.BaseGoodsModelsServiceImpl;
import com.consum.base.service.BaseWarehouseServiceImpl;
import com.consum.base.service.LWhFormTransferCoreService;
import com.consum.base.service.LWhFormTransferServiceImpl;
import com.consum.base.service.LWhProcureModelService;
import com.consum.base.service.LWhProcureModelUserRecordServiceImpl;
import com.consum.base.service.LWhProcureModelUserServiceImpl;
import com.consum.model.po.BaseWarehouse;
import com.consum.model.po.FinSysTenantUser;
import com.consum.model.po.LWhFormTransfer;
import com.consum.model.po.LWhProcureModelUser;
import com.consum.model.po.LWhProcureModelUserRecord;
import com.consum.model.vo.LWhFormOutputVo;
import com.iplatform.model.po.S_user_core;
import com.walker.db.page.GenericPager;
@@ -29,14 +40,20 @@
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import java.lang.reflect.Field;
import java.util.ArrayList;
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;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.lang.reflect.Field;
import java.util.*;
import java.util.stream.Collectors;
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;
/**
 * @Description 调拨管理
@@ -69,7 +86,12 @@
    @ApiOperation(value = "单据新增", notes = "单据新增")
    @ApiImplicitParam(name = "param", value = "单据新增", required = true, dataType = "LWhFormTransferParam")
    @PostMapping("/add")
    public ResponseValue add(@RequestBody LWhFormTransferParam param) throws Exception {
    public ResponseValue add() throws Exception {
        LWhFormTransferParam param = CommonUtil.getObjFromReqBody(LWhFormTransferParam.class);
        LWhFormTransferParam param2 = new LWhFormTransferParam();
        CommonUtil.copyProperties(param, param2);
        param = param2;
        S_user_core currentUser = this.getCurrentUser();
        if (currentUser == null) {
            return ResponseValue.error("登录用户信息不存在");
@@ -78,11 +100,32 @@
        if (CollectionUtils.isEmpty(transferGoods)) {
            return ResponseValue.error("调拨单不能为空");
        }
        int result = this.lWhFormTransferService.add(param, this.getSysInfo());
        if (result > 0) {
            return ResponseValue.success();
        long id = this.lWhFormTransferService.add(param, this.getSysInfo());
        Integer transferBusinessType = param.getTransferBusinessType();
        //部门分发业务需要处理
        if (transferBusinessType == 1) {
            // 先出库,再入库
            // 出库前 设置出库仓库
            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("机构无默认仓库!");
            }
            BaseWarehouse baseWarehouse = baseWarehouseList.get(0);
            Long wareHouseId = baseWarehouse.getId();
            String warehouseName = baseWarehouse.getWarehouseName();
            LWhFormTransfer lWhFormTransfer = new LWhFormTransfer(id);
            lWhFormTransfer.setOutWarehouseId(wareHouseId);
            lWhFormTransfer.setOutWarehouseName(warehouseName);
            lWhFormTransferService.update(lWhFormTransfer);
            lWhFormTransferCoreService.doTransferOutPut(id, getCurrentUser());
            lWhFormTransferCoreService.doTransferInPut(id, getCurrentUser());
        }
        return ResponseValue.error("新增失败!");
        return ResponseValue.success();
    }
    /**
@@ -101,7 +144,12 @@
        @ApiImplicitParam(name = "param", value = "条件参数", required = true, dataType = "TransferQry"),
    })
    @GetMapping("/list")
    public ResponseValue queryFormTransferList(TransferQry param) {
    public ResponseValue queryFormTransferList() {
        TransferQry param = CommonUtil.getObjFromReq(TransferQry.class);
        TransferQry param2 = new TransferQry();
        CommonUtil.copyProperties(param, param2);
        param = param2;
        S_user_core currentUser = this.getCurrentUser();
        if (currentUser == null) {
            return ResponseValue.error("登录用户信息不存在");
@@ -169,7 +217,12 @@
        @ApiImplicitParam(name = "param", value = "条件", required = true, dataType = "TransferQry"),
    })
    @GetMapping("/detail/list")
    public ResponseValue queryFormTransferDetailList(TransferQry param) {
    public ResponseValue queryFormTransferDetailList() {
        TransferQry param = CommonUtil.getObjFromReq(TransferQry.class);
        TransferQry param2 = new TransferQry();
        CommonUtil.copyProperties(param, param2);
        param = param2;
        FinSysTenantUser sysInfo = this.getSysInfo();
        if (sysInfo == null) {
            return ResponseValue.error("登录用户信息不存在");
@@ -261,7 +314,7 @@
    /**
     * 部门物品分发列表明细
     *
     * @param transferQry
     * @param
     * @return
     */
    @ApiOperation(value = "部门物品分发列表明细", notes = "部门物品分发列表明细")
@@ -269,13 +322,17 @@
        @ApiImplicitParam(name = "transferQryDto", value = "调拨单查询条件", required = true)
    })
    @GetMapping("/department/list")
    public ResponseValue departmentTransferList(TransferQry transferQry) {
    public ResponseValue departmentTransferList() {
        TransferQry param = CommonUtil.getObjFromReq(TransferQry.class);
        TransferQry param2 = new TransferQry();
        CommonUtil.copyProperties(param, param2);
        param = param2;
        S_user_core currentUser = this.getCurrentUser();
        if (currentUser == null) {
            return ResponseValue.error("登录用户信息不存在");
        }
        GenericPager<Map<String, Object>> transferInfoDetailsVoGenericPager = this.lWhFormTransferService.queryTransferInfo(transferQry);
        GenericPager<Map<String, Object>> transferInfoDetailsVoGenericPager = this.lWhFormTransferService.queryTransferInfo(param);
        return ResponseValue.success(transferInfoDetailsVoGenericPager);
    }
@@ -285,7 +342,11 @@
        @ApiImplicitParam(name = "procureModelInfoDto", value = "使用信息", required = true)
    })
    @PostMapping("/useInfo/update")
    public ResponseValue infoUpdate(@RequestBody List<ProcureModelInfoParam> procureModelInfoParam) {
    public ResponseValue infoUpdate() {
        List<ProcureModelInfoParam> param = CommonUtil.getObjFromReqBody(List.class);
        List<ProcureModelInfoParam> procureModelInfoParam = Lists.newArrayList();
        procureModelInfoParam.addAll(param);
        S_user_core currentUser = this.getCurrentUser();
        if (currentUser == null) {
consum-base/src/main/java/com/consum/base/pojo/query/TransferQry.java
@@ -86,31 +86,8 @@
    @ApiModelProperty(value = "查询类型")
    private Integer qryType;
//    /**
//     * 入库仓库编号
//     */
//    private Long inWarehouseId;
//
//    /**
//     * 调拨时间
//     */
//    private Long createTime;
//    /**
//     * 调拨手续
//     */
//    private String procureDoc;
//    /**
//     * 调拨单型号
//     */
//    private List<LWhProcureModelParams> models;
//    /**
//     * 物品id
//     */
//    private Long baseGoodsTemplateId;
//    /**
//     * 单据类型。0仓库调拨;1部门分发;2部门物品回退
//     */
//    private Integer transferBusinessType;
    @ApiModelProperty(value = "分发部门,部门分发时仓库id就是分发部门")
    private Long inWarehouseId;
}
consum-base/src/main/java/com/consum/base/service/LWhFormInventoryGoodsServiceImpl.java
@@ -34,7 +34,7 @@
    }
    public int add(List<FormInventoryGoodsVO> inventoryGoodsList, Long inventoryId) {
    public List<FormInventoryGoodsVO> add(List<FormInventoryGoodsVO> inventoryGoodsList, Long inventoryId) {
        List<LWhFormInventoryGoods> goodsList = new ArrayList<>();
        for (FormInventoryGoodsVO inventoryGoods : inventoryGoodsList) {
            LWhFormInventoryGoods lWhFormInventoryGoods = new LWhFormInventoryGoods();
@@ -46,9 +46,12 @@
            lWhFormInventoryGoods.setBaseGoodsModelsId(inventoryGoods.getId());
            lWhFormInventoryGoods.setBaseGoodsModelsName(inventoryGoods.getBaseGoodsModelsName());
            lWhFormInventoryGoods.setInitCounts(inventoryGoods.getInventoryCount());
            //保存成功后返回id,用来进行记录的更新
            inventoryGoods.setId(lWhFormInventoryGoods.getId());
            goodsList.add(lWhFormInventoryGoods);
        }
        return this.insert(goodsList);
        this.insert(goodsList);
        return inventoryGoodsList;
    }
    public int updateInventoryGoods(List<FormInventoryGoodsVO> inventoryGoodsList) {
consum-base/src/main/java/com/consum/base/service/LWhFormInventoryServiceImpl.java
@@ -21,17 +21,17 @@
import com.walker.infrastructure.utils.DateUtils;
import com.walker.infrastructure.utils.StringUtils;
import com.walker.jdbc.service.BaseServiceImpl;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.compress.utils.Lists;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * @Description 盘点
@@ -157,7 +157,7 @@
    }
    public void saveInventory(FormInventoryVO dto, Long id) {
    public List<FormInventoryGoodsVO> saveInventory(FormInventoryVO dto, Long id) {
        //1.根据盘点单id查询盘点单
        LWhFormInventory lWhFormInventory = this.get(new LWhFormInventory(id));
        if (lWhFormInventory == null) {
@@ -175,11 +175,9 @@
        if (CollectionUtils.isEmpty(formInventoryGoodsList)) {
            log.error("盘点单物品为空");
        }
        int num = inventoryGoodsService.add(formInventoryGoodsList, id);
        if (num != formInventoryGoodsList.size()) {
            log.error("更新盘点单物品失败");
        }
        List<FormInventoryGoodsVO> result = inventoryGoodsService.add(formInventoryGoodsList, id);
        return result;
    }
@@ -189,6 +187,7 @@
     * @author 卢庆阳
     * @date 2023/10/31
     */
    @Transactional(rollbackFor = Exception.class)
    public int updateInventoryInfo(LWhFormInventoryParam dto, Integer state, S_user_core currentUser, FinSysTenantUser sysInfo) {
        //1.根据盘点单id查询盘点单
        LWhFormInventory lWhFormInventory = this.get(new LWhFormInventory(dto.getId()));
@@ -338,9 +337,9 @@
        mapGenericPager.getDatas().forEach(item -> {
            FormInventoryDetailVO formInventoryDetailVO = MapUtils.convertMapToObj(item, FormInventoryDetailVO.class);
            formInventoryDetailVO.setInventoryResultType(
                    formInventoryDetailVO.getInventoryResult() == null ? null : (formInventoryDetailVO.getInventoryResult() == 2 ? "盘盈" : "盘亏"));
                formInventoryDetailVO.getInventoryResult() == null ? null : (formInventoryDetailVO.getInventoryResult() == 2 ? "盘盈" : "盘亏"));
            formInventoryDetailVO.setInventoryType(
                    formInventoryDetailVO.getInventoryResult() == null ? null : (formInventoryDetailVO.getInventoryResult() == 2 ? "盘盈入库" : "盘亏出库"));
                formInventoryDetailVO.getInventoryResult() == null ? null : (formInventoryDetailVO.getInventoryResult() == 2 ? "盘盈入库" : "盘亏出库"));
            formInventoryDetailVO.setWarehouseFormCode(formInventoryDetailVO.getWarehouseFormCode());
            result.add(formInventoryDetailVO);
        });
@@ -351,8 +350,8 @@
    public List<FormInventoryGoodsVO> selectDetailById(Long id) {
        String sql = "select fig.id, fig.BASE_GOODS_TEMPLATE_ID,fig.GOODS_TEMPLATE_NAME,fig.BASE_GOODS_MODELS_NAME,"
                + "fig.INIT_COUNTS inventoryCount,fig.INVENTORY_COUNTS realNum,fig.INVENTORY_RESULT status,fig.unit,bgt.CLASSIFICATION type from "
                + "l_wh_form_inventory_goods fig left join base_goods_template bgt on bgt.id =fig.BASE_GOODS_TEMPLATE_ID  where fig.WH_FORM_INVENTORY_ID = :id";
            + "fig.INIT_COUNTS inventoryCount,fig.INVENTORY_COUNTS realNum,fig.INVENTORY_RESULT status,fig.unit,bgt.CLASSIFICATION type from "
            + "l_wh_form_inventory_goods fig left join base_goods_template bgt on bgt.id =fig.BASE_GOODS_TEMPLATE_ID  where fig.WH_FORM_INVENTORY_ID = :id";
        HashMap<String, Object> param = new HashMap<>();
        param.put("id", id);
        List<Map<String, Object>> select = select(sql, param, new MapperUtil());
@@ -382,9 +381,9 @@
        formInventoryVO.setWarehouseName(inventory.getWarehouseName());
        String sql =
                "select bgm.id,bgt.id baseGoodsTemplateId,bgt.GOODS_NAME goodsTemplateName,bgm.MODEL_NAME baseGoodsModelsName,bgt.CLASSIFICATION type,bgm.UNIT "
                        + "from base_goods_models bgm left join base_goods_template bgt on bgm.GOODS_TEMPLATES_ID = bgt.id "
                        + "where bgt.AGENCY_ID = :agencyId";
            "select bgt.id baseGoodsTemplateId,bgt.GOODS_NAME goodsTemplateName,bgm.MODEL_NAME baseGoodsModelsName,bgt.CLASSIFICATION type,bgm.UNIT "
                + "from base_goods_models bgm left join base_goods_template bgt on bgm.GOODS_TEMPLATES_ID = bgt.id "
                + "where bgt.AGENCY_ID = :agencyId";
        HashMap<String, Object> param = new HashMap<>();
        param.put("agencyId", inventory.getAgencyId());
        List<Map<String, Object>> result = this.select(sql, param, new MapperUtil());
consum-base/src/main/java/com/consum/base/service/LWhFormTransferServiceImpl.java
@@ -14,7 +14,17 @@
import com.consum.base.pojo.response.FormTransferGoodsVO;
import com.consum.base.pojo.response.GoodsModelVO;
import com.consum.base.pojo.response.LWHFromTransferExtendVO;
import com.consum.model.po.*;
import com.consum.model.po.BaseGoodsModels;
import com.consum.model.po.BaseWarehouse;
import com.consum.model.po.BaseWarehouseManager;
import com.consum.model.po.FinSysTenant;
import com.consum.model.po.FinSysTenantUser;
import com.consum.model.po.LWhFormOutput;
import com.consum.model.po.LWhFormTransfer;
import com.consum.model.po.LWhGoodsRecord;
import com.consum.model.po.LWhProcureModel;
import com.consum.model.po.LWhProcureModelUser;
import com.consum.model.po.LWhProcureModelUserRecord;
import com.consum.model.vo.LWhFormOutputVo;
import com.consum.model.vo.LWhGoodsRecordVo;
import com.iplatform.model.po.S_user_core;
@@ -22,14 +32,17 @@
import com.walker.infrastructure.utils.DateUtils;
import com.walker.infrastructure.utils.StringUtils;
import com.walker.jdbc.service.BaseServiceImpl;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import org.apache.commons.compress.utils.Lists;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.util.CollectionUtils;
import java.util.*;
/**
 * @Description 调拨管理
@@ -75,7 +88,7 @@
     * @Author 卢庆阳
     * @Date 2023/10/30
     */
    public int add(LWhFormTransferParam param, FinSysTenantUser sysInfo) throws Exception {
    public long add(LWhFormTransferParam param, FinSysTenantUser sysInfo) throws Exception {
        //1.新增调拨单记录
        LWhFormTransfer lWhFormTransfer = new LWhFormTransfer();
        //调拨单id
@@ -87,11 +100,11 @@
        // TODO 枚举字典
        lWhFormTransfer.setBusinessType(businessType);
        CodeGeneratorEnum codeGeneratorEnum = null;
        if (businessType == 0){
        if (businessType == 0) {
            codeGeneratorEnum = CodeGeneratorEnum.Transfer;
        } else if (businessType == 1){
        } else if (businessType == 1) {
            codeGeneratorEnum = CodeGeneratorEnum.Distribute;
        } else if (businessType == 2){
        } else if (businessType == 2) {
            codeGeneratorEnum = CodeGeneratorEnum.GOBACK;
        }
@@ -156,7 +169,6 @@
        FinSysTenant finSysTenant = finSysTenantService.get(new FinSysTenant(param.getOutAgencyId()));
        if (finSysTenant == null) {
            log.error("调拨机构不存在");
            return 0;
        }
        lWhFormTransfer.setOutAgencyId(finSysTenant.getId());
        lWhFormTransfer.setOutAgencyName(finSysTenant.getName());
@@ -170,7 +182,6 @@
        int flag1 = this.insert(lWhFormTransfer);
        if (flag1 == 0) {
            log.error("新增调拨单失败");
            return 0;
        }
        //2.新增物品型号记录
@@ -228,7 +239,6 @@
                    if (procureInsertNum != procureModelUserList.size()) {
                        log.error("新增物品使用信息失败");
                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                        return 0;
                    }
                }
@@ -241,10 +251,8 @@
        if (flag2 != modelList.size()) {
            log.error("新增物品型号失败");
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            return 0;
        }
        return 1;
        return lWhFormTransferId;
    }
@@ -307,6 +315,11 @@
        if (param.getEndTime() != null) {
            sql.append(" and IN_TIME <:inTimeEnd ");
            paramts.put("inTimeEnd", param.getEndTime() * 1000000 + 240000);
        }
        //分发部门
        if (param.getInWarehouseId() != null) {
            sql.append("and ft.IN_WAREHOUSE_ID = :inWarehouseId ");
            paramts.put("inWarehouseId", param.getInWarehouseId());
        }
        sql.append(" ORDER BY ft.CREATE_TIME DESC");
@@ -467,7 +480,11 @@
            sql.append("AND OUT_AGENCY_ID = :OUT_AGENCY_ID ");
            paramts.put("OUT_AGENCY_ID", transferQry.getOutAgencyId());
        }
        //分发部门
        if (transferQry.getInWarehouseId() != null) {
            sql.append("and ft.IN_WAREHOUSE_ID = :inWarehouseId ");
            paramts.put("inWarehouseId", transferQry.getInWarehouseId());
        }
        //创建人
        if (StringUtils.isNotEmpty(transferQry.getOperatorName())) {
            sql.append("AND ft.OPERATOR_NAME =:OPERATOR_NAME ");