cy
2023-10-27 8ec414eb3a5173c1f53bd33b73519c78ca79938a
Merge remote-tracking branch 'origin/master'
3个文件已添加
3个文件已修改
416 ■■■■■ 已修改文件
consum-base/src/main/java/com/consum/base/controller/BaseWarehouseController.java 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/controller/LWhFormOutputController.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/LWhFormOutputParam.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/BaseCategoryServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/BaseWarehouseServiceImpl.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/LWhFormOutputServiceImpl.java 204 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/controller/BaseWarehouseController.java
@@ -13,6 +13,8 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
 * @Description 仓库管理
 * @Author 卢庆阳
@@ -49,11 +51,11 @@
     */
    @GetMapping("/list")
    public ResponseValue queryList(BaseWarehouseParam param) {
        FinSysTenantUser sysInfo = this.getSysInfo();
        if (sysInfo == null) {
            return ResponseValue.error("登录用户信息不存在");
        }
        GenericPager<BaseWarehouse> pager = this.baseWarehouseService.queryList(param,sysInfo);
//        FinSysTenantUser sysInfo = this.getSysInfo();
//        if (sysInfo == null) {
//            return ResponseValue.error("登录用户信息不存在");
//        }
        GenericPager<BaseWarehouse> pager = this.baseWarehouseService.queryList(param);
        return ResponseValue.success(pager);
    }
@@ -77,7 +79,7 @@
    }
    /**
     * 根据id查询仓库详情
     * 根据仓库id查询仓库详情
     * @author 卢庆阳
     * @Date 2023/10/26
     */
@@ -120,5 +122,21 @@
        return ResponseValue.success();
    }
    /**
     * @Description  根据机构id查询机构仓库
     * @Author 卢庆阳
     * @Date 2023/10/27
     */
    @GetMapping("/select/tenant_warehouse")
    public ResponseValue getByAgencyId(Long agencyId) {
        if (agencyId == null) {
            return ResponseValue.error("机构id为空");
        }
        List<BaseWarehouse> list = this.baseWarehouseService.getByAgencyId(agencyId);
        if (list == null) return ResponseValue.error("查询失败!");
        return ResponseValue.success("查询成功!", list);
    }
}
consum-base/src/main/java/com/consum/base/controller/LWhFormOutputController.java
New file
@@ -0,0 +1,54 @@
package com.consum.base.controller;
import com.consum.base.BaseController;
import com.consum.base.pojo.BaseGoodsTemplateParam;
import com.consum.base.pojo.LWhFormOutputParam;
import com.consum.base.service.BaseCategoryServiceImpl;
import com.consum.base.service.LWhFormOutputServiceImpl;
import com.consum.model.po.BaseGoodsTemplate;
import com.consum.model.po.FinSysTenantUser;
import com.iplatform.model.po.S_user_core;
import com.walker.infrastructure.utils.StringUtils;
import com.walker.web.ResponseValue;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * @Description 出库单
 * @Author 卢庆阳
 * @Date 2023/10/27
 */
@RestController
@RequestMapping("/pc/l/wh/form/output")
public class LWhFormOutputController extends BaseController {
    @Autowired
    private LWhFormOutputServiceImpl lWhFormOutputService;
    /**
     * @Description 新增出库单
     * @Author 卢庆阳
     * @Date 2023/10/27
     */
    @PostMapping("/add")
    public ResponseValue add(@RequestBody LWhFormOutputParam param) {
        S_user_core currentUser = this.getCurrentUser();
        if (currentUser == null) {
            return ResponseValue.error("登录用户信息不存在");
        }
        int result = this.lWhFormOutputService.add(param, currentUser,this.getSysInfo());
        if (result > 0) return ResponseValue.success(1);
        return ResponseValue.error("新增失败!");
    }
}
consum-base/src/main/java/com/consum/base/pojo/LWhFormOutputParam.java
New file
@@ -0,0 +1,78 @@
package com.consum.base.pojo;
import com.consum.model.po.LWhGoodsRecord;
import com.walker.web.param.ParamRequest;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDate;
import java.util.List;
/**
 * @Description  出库单参数
 * @Author 卢庆阳
 * @Date 2023/10/27
 */
public class LWhFormOutputParam extends ParamRequest {
    /**
     * 仓库id
     */
    private Long warehouseId;
    /**
     * 出库时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate dealTime;
    /**
     * 记录物品信息和规格型号
     */
    private List<LWhGoodsRecord> list;
    /**
     * 物品id
     */
    private Long baseGoodsTemplateId;
    /**
     * 物品名称
     */
    private String goodsTemplateName;
    public Long getWarehouseId() {
        return warehouseId;
    }
    public void setWarehouseId(Long warehouseId) {
        this.warehouseId = warehouseId;
    }
    public LocalDate getDealTime() {
        return dealTime;
    }
    public void setDealTime(LocalDate dealTime) {
        this.dealTime = dealTime;
    }
    public List<LWhGoodsRecord> getList() {
        return list;
    }
    public void setList(List<LWhGoodsRecord> list) {
        this.list = list;
    }
    public Long getBaseGoodsTemplateId() {
        return baseGoodsTemplateId;
    }
    public void setBaseGoodsTemplateId(Long baseGoodsTemplateId) {
        this.baseGoodsTemplateId = baseGoodsTemplateId;
    }
    public String getGoodsTemplateName() {
        return goodsTemplateName;
    }
    public void setGoodsTemplateName(String goodsTemplateName) {
        this.goodsTemplateName = goodsTemplateName;
    }
}
consum-base/src/main/java/com/consum/base/service/BaseCategoryServiceImpl.java
@@ -94,8 +94,8 @@
        }
        //状态
        if (param.getStates() != null) {
            sql.append(" and status =:status ");
            paramts.put("status", param.getStates());
            sql.append(" and states =:states ");
            paramts.put("states", param.getStates());
        } else {
            sql.append(" and states !=3 ");
        }
consum-base/src/main/java/com/consum/base/service/BaseWarehouseServiceImpl.java
@@ -9,7 +9,6 @@
import com.consum.model.po.FinSysTenantDepartment;
import com.consum.model.po.FinSysTenantUser;
import com.walker.db.page.GenericPager;
import com.walker.infrastructure.utils.DateUtils;
import com.walker.infrastructure.utils.StringUtils;
import com.walker.jdbc.service.BaseServiceImpl;
import org.springframework.beans.BeanUtils;
@@ -49,12 +48,12 @@
        baseWarehouse.setId(IdUtil.generateId());
        baseWarehouse.setWarehouseType(Constants.WAREHOUSE_TYPE_TENANT);
        baseWarehouse.setWarehouseCode(codeGeneratorService.createWarehouseCode());
        //根据机构id查询机构
        FinSysTenant finSysTenant = finSysTenantService.get(new FinSysTenant(baseWarehouse.getAgencyId()));
        if (finSysTenant != null) {
            baseWarehouse.setParentAgencyId(finSysTenant.getParentId());
            baseWarehouse.setAgencyName(finSysTenant.getName());
        }
//        //根据机构id查询机构
//        FinSysTenant finSysTenant = finSysTenantService.get(new FinSysTenant(baseWarehouse.getAgencyId()));
//        if (finSysTenant != null) {
//            baseWarehouse.setParentAgencyId(finSysTenant.getParentId());
//            baseWarehouse.setAgencyName(finSysTenant.getName());
//        }
        baseWarehouse.setIsDefault(Constants.IS_DEFAULT_YES);
        return this.insert(baseWarehouse);
@@ -65,7 +64,8 @@
     * @Author 卢庆阳
     * @Date 2023/10/26
     */
    public GenericPager<BaseWarehouse> queryList(BaseWarehouseParam param, FinSysTenantUser sysInfo) {
//    public GenericPager<BaseWarehouse> queryList(BaseWarehouseParam param, FinSysTenantUser sysInfo) {
    public GenericPager<BaseWarehouse> queryList(BaseWarehouseParam param) {
        StringBuilder sql = new StringBuilder("SELECT * FROM base_warehouse WHERE 1 = 1 ");
        HashMap<String, Object> paramts = new HashMap<>();
@@ -80,12 +80,12 @@
            paramts.put("CLASSIFICATION_CODE", param.getClassificationCode());
        }
        //机构id
        sql.append(" and AGENCY_ID =:AGENCY_ID ");
        if (param.getAgencyId() != null) {
            paramts.put("AGENCY_ID", param.getAgencyId());
        } else {
            paramts.put("AGENCY_ID", Long.valueOf(sysInfo.getTenantId()));
        }
//        sql.append(" and AGENCY_ID =:AGENCY_ID ");
//        if (param.getAgencyId() != null) {
//            paramts.put("AGENCY_ID", param.getAgencyId());
//        } else {
//            paramts.put("AGENCY_ID", Long.valueOf(sysInfo.getTenantId()));
//        }
        //状态
        if (param.getStates() != null) {
            sql.append(" and states =:states ");
@@ -148,4 +148,22 @@
    }
    /**
     * @Description  根据机构id查询机构仓库
     * @Author 卢庆阳
     * @Date 2023/10/27
     * @return
     */
    public List<BaseWarehouse> getByAgencyId(Long agencyId) {
        StringBuilder sql = new StringBuilder("SELECT * FROM base_warehouse WHERE 1 = 1 ");
        HashMap<String, Object> paramts = new HashMap<>();
        //机构id
        if (agencyId != null) {
            sql.append(" and AGENCY_ID =:AGENCY_ID ");
            paramts.put("AGENCY_ID", agencyId);
        }
        return select(sql.toString(), paramts, new BaseWarehouse());
    }
}
consum-base/src/main/java/com/consum/base/service/LWhFormOutputServiceImpl.java
New file
@@ -0,0 +1,204 @@
package com.consum.base.service;
import com.consum.base.Constants;
import com.consum.base.core.param.BaseWarehouseParam1;
import com.consum.base.pojo.LWhFormOutputParam;
import com.consum.base.util.IdUtil;
import com.consum.model.po.*;
import com.iplatform.model.po.S_user_core;
import com.walker.infrastructure.utils.DateUtils;
import com.walker.jdbc.service.BaseServiceImpl;
import lombok.extern.slf4j.Slf4j;
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.List;
/**
 * @Description 出库单
 * @Author 卢庆阳
 * @Date 2023/10/27
 */
@Slf4j
@Service
public class LWhFormOutputServiceImpl extends BaseServiceImpl {
    @Autowired
    private BaseWarehouseServiceImpl baseWarehouseService;
    @Autowired
    private LWhGoodsService lWhGoodsService;
    @Autowired
    private LWhProcureModelService lWhProcureModelService;
    @Autowired
    private LWhFormOutputCoreService lWhFormOutputCoreService;
//    /**
//     * @Description 新增出库单
//     * @Author 卢庆阳
//     * @Date 2023/10/27
//     */
//    public int add(LWhFormOutputParam param, S_user_core currentUser, FinSysTenantUser sysInfo) {
//        //1.新增出库单记录
//        LWhFormOutput lWhFormOutput = new LWhFormOutput();
//        //出入库id
//        long lWhFormOutputId = IdUtil.generateId();
//        lWhFormOutput.setId(lWhFormOutputId);
//        Long warehouseId = param.getWarehouseId();
//        lWhFormOutput.setWarehouseId(warehouseId);
//        //根据仓库id查询仓库
//        BaseWarehouse warehouse = this.baseWarehouseService.getById(warehouseId);
//        if (warehouse == null) {
//            log.error("仓库id不存在");
//            return 0;
//        }
//        lWhFormOutput.setWarehouseName(warehouse.getWarehouseName());
//        lWhFormOutput.setOutputCode(BaseWarehouseParam1.In_OutPutTypeEnum.Fragmentary_Output.getValue()+"");
//        lWhFormOutput.setOutputName("零星出库");
//        lWhFormOutput.setAgencyId(Long.valueOf(sysInfo.getTenantId()));
//        lWhFormOutput.setAgencyName(sysInfo.getTenantName());
//        lWhFormOutput.setOperatorId(sysInfo.getId());
//        lWhFormOutput.setOperatorName(sysInfo.getUserName());
//        long dateTimeNumber = DateUtils.getDateTimeNumber(System.currentTimeMillis());
//        lWhFormOutput.setDealTime(dateTimeNumber);
//        lWhFormOutput.setStates(1);
//        int flag1 = this.insert(lWhFormOutput);
//
//        //2.根据出库单出库
//        Long lWarehouseFlowId = this.lWhFormOutputCoreService.outFormByTransId(lWhFormOutput.getId(), currentUser, dateTimeNumber);
//        //3.向出库单 插入 进出库流水总表ID
//        int flag3 = 0;
//        if (flag1 > 0) {
//            LWhFormOutput lWhFormOutput1 = new LWhFormOutput(lWhFormOutputId);
//            lWhFormOutput1.setWarehouseFlowId(lWarehouseFlowId);
//            flag3 = this.update(lWhFormOutput1);
//        }
//
//        //4.新增l_wh_goods_record记录
//        List<LWhGoodsRecord> recordList = param.getList();
//        if (CollectionUtils.isEmpty(recordList)) {
//            log.error("规格型号为空");
//            return 0;
//        }
//        int flag5 = 0;
//        int number = -1;  //出库后,物品剩余数量
//        for (LWhGoodsRecord record : recordList) {
//            //物品id和物品名称
//            record.setBaseGoodsTemplateId(param.getBaseGoodsTemplateId());
//            record.setGoodsTemplateName(param.getGoodsTemplateName());
//
//            record.setId(IdUtil.generateId());
//            record.setWarehouseId(warehouseId);
//            //根据物品型号查询物品库存
//            int goodsNum = this.lWhGoodsService.queryGoodsModelNum(warehouseId, record.getBaseGoodsModelsId(), (short) 1, null);
//            record.setInitialCount(goodsNum);
//            record.setThisType(2);
//
//            //判断出库数量是否小于库存
//            number = goodsNum - record.getThisCount();
//            if (number < 0) {
//                log.error("库存不足");
//                break;
//            }
//            record.setEndCount(number);
//            record.setDealTime(dateTimeNumber);
//            record.setWarehouseFlowId(lWarehouseFlowId);
//
//            //5.新增L_WH_PROCURE_MODEL记录
//            LWhProcureModel lWhProcureModel = new LWhProcureModel();
//            lWhProcureModel.setId(IdUtil.generateId());
//            lWhProcureModel.setBusinessType(3);
//            lWhProcureModel.setBaseGoodsModelsId(record.getBaseGoodsModelsId());
//            lWhProcureModel.setCounts(record.getThisCount());
//            lWhProcureModel.setWorehouseCount(goodsNum);
//            int res = this.lWhProcureModelService.insert(lWhProcureModel);
//            flag5 += res;
//        }
//        //如果出库后,剩余库存大于0,新增l_wh_goods_record记录
//        int flag4 = 0;
//        if (number >= 0){
//            flag4 = this.lWhGoodsService.insert(recordList);
//        }
//
//        //如果有一条记录新增失败,则回滚
//        if (flag1 == 0 || flag3 == 0 || flag4 != recordList.size() || flag5 != recordList.size() || number < 0) {
//            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
//            return 0;
//        }
//
//        return 1;
//    }
    /**
     * @Description 新增出库单
     * @Author 卢庆阳
     * @Date 2023/10/27
     */
    public int add(LWhFormOutputParam param, S_user_core currentUser, FinSysTenantUser sysInfo) {
        //1.新增出库单记录
        LWhFormOutput lWhFormOutput = new LWhFormOutput();
        //出入库id
        long lWhFormOutputId = IdUtil.generateId();
        lWhFormOutput.setId(lWhFormOutputId);
        Long warehouseId = param.getWarehouseId();
        lWhFormOutput.setWarehouseId(warehouseId);
        //根据仓库id查询仓库
        BaseWarehouse warehouse = this.baseWarehouseService.getById(warehouseId);
        if (warehouse == null) {
            log.error("仓库id不存在");
            return 0;
        }
        lWhFormOutput.setWarehouseName(warehouse.getWarehouseName());
        lWhFormOutput.setOutputCode(BaseWarehouseParam1.In_OutPutTypeEnum.Fragmentary_Output.getValue() + "");
        lWhFormOutput.setOutputName("零星出库");
        lWhFormOutput.setAgencyId(Long.valueOf(sysInfo.getTenantId()));
        lWhFormOutput.setAgencyName(sysInfo.getTenantName());
        lWhFormOutput.setOperatorId(sysInfo.getId());
        lWhFormOutput.setOperatorName(sysInfo.getUserName());
        long dateTimeNumber = DateUtils.getDateTimeNumber(System.currentTimeMillis());
        lWhFormOutput.setDealTime(dateTimeNumber);
        lWhFormOutput.setStates(1);
        int flag1 = this.insert(lWhFormOutput);
        //4.新增l_wh_goods_record记录
        List<LWhGoodsRecord> recordList = param.getList();
        if (CollectionUtils.isEmpty(recordList)) {
            log.error("规格型号为空");
            return 0;
        }
        int flag5 = 0;
        for (LWhGoodsRecord record : recordList) {
            //根据物品型号查询物品库存
            int goodsNum = this.lWhGoodsService.queryGoodsModelNum(warehouseId, record.getBaseGoodsModelsId(), (short) 1, null);
            //5.新增L_WH_PROCURE_MODEL记录
            LWhProcureModel lWhProcureModel = new LWhProcureModel();
            lWhProcureModel.setId(IdUtil.generateId());
            lWhProcureModel.setBusinessType(3);
            lWhProcureModel.setBaseGoodsModelsId(record.getBaseGoodsModelsId());
            lWhProcureModel.setCounts(record.getThisCount());
            lWhProcureModel.setWorehouseCount(goodsNum);
            int res = this.lWhProcureModelService.insert(lWhProcureModel);
            flag5 += res;
        }
        //2.根据出库单出库
        Long lWarehouseFlowId = this.lWhFormOutputCoreService.outFormByTransId(lWhFormOutput.getId(), currentUser, dateTimeNumber);
        //3.向出库单 插入 进出库流水总表ID
        int flag3 = 0;
        if (flag1 > 0) {
            LWhFormOutput lWhFormOutput1 = new LWhFormOutput(lWhFormOutputId);
            lWhFormOutput1.setWarehouseFlowId(lWarehouseFlowId);
            flag3 = this.update(lWhFormOutput1);
        }
        //如果有一条记录新增失败,则回滚
        if (flag1 == 0 || flag3 == 0 || flag5 != recordList.size()) {
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            return 0;
        }
        return 1;
    }
}