liuguocan
2023-11-28 581b26f9ecf44b43723969c0e8cac7a335d64db0
consum-base/src/main/java/com/consum/base/core/WarehouseCoreService.java
@@ -1,14 +1,16 @@
package com.consum.base.core;
import com.consum.base.core.tools.SqlParameter;
import com.consum.base.core.util.DateUtil;
import com.consum.base.core.param.BaseWarehouseParam;
import com.consum.base.core.utils.DateUtil;
import com.consum.base.core.utils.SqlParameter;
import com.consum.model.po.*;
import com.walker.infrastructure.utils.NumberGenerator;
import com.walker.jdbc.service.BaseServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.security.core.parameters.P;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;
import java.util.ArrayList;
@@ -20,6 +22,7 @@
 */
@Service
@Slf4j
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
public class WarehouseCoreService extends BaseServiceImpl {
    public static void main(String[] args) {
@@ -45,7 +48,7 @@
            List<CheckUsingResult> results;
            String key = param.getLending_id();
            String key = param.getLending_id().toString();
            /**
             * 此处将同一个仓库下的同一个型号上锁,不同仓库、不同型号不受影响。
@@ -68,7 +71,7 @@
    /**
     * 统一出入库
     */
    public List<CheckWarehouseResult> unifyCheck(CheckWarehouseParam param) {
    public List<CheckWarehouseResult> unifyCheck(BaseWarehouseParam param) {
        // TODO: 10/10/2023 此处加了唯一锁,会影响性能,思考是否有更合适的办法
        try {
            Assert.notNull(param, "wareHouse param can not null !");
@@ -125,6 +128,12 @@
            CheckUsingResult result = new CheckUsingResult();
            DepFormLendingGoods goods = get(new DepFormLendingGoods(),"id=?",new Object[]{model.getDepFormLendingGoodsId()});
            //如果是A类物品,则需要与持有人等同
            if (goods.getClassification() == "A" && (goods.getGoodsUserName().equals(param.getUser_name()))) {
                continue;
            }
            //如果当前持有人持有物品数量大于出库数量,则直接减掉数量即可。
            if (model.getUsingCount() > shengyu){
                result.setInitial_count(model.getUsingCount());
@@ -214,7 +223,7 @@
    /**
     * 出库
     */
    private List<CheckWarehouseResult> checkout(CheckWarehouseParam param) {
    private List<CheckWarehouseResult> checkout(BaseWarehouseParam param) {
        //查询出指定仓库、指定型号,状态为正常的的库存物品,按照采购时间倒叙、价格倒叙排列
       String sql = "SELECT\n" +
                "   * \n" +
@@ -303,7 +312,7 @@
    /**
     * 入库
     */
    private CheckWarehouseResult checkin(CheckWarehouseParam param) throws RuntimeException {
    private CheckWarehouseResult checkin(BaseWarehouseParam param) throws RuntimeException {
        //如果是采购入库
        if (param.getFirst_input_type() ==1){