cy
2023-12-02 b7a353e571a503a3dfb970af069efc0a65208839
feat: 部门物品报废
1个文件已添加
12个文件已修改
650 ■■■■ 已修改文件
consum-base/src/main/java/com/consum/base/controller/DepFormScrappedController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/core/DepFormScrappedCoreServiceImpl.java 229 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/DepFormScrappedServiceImpl.java 47 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/LWhFormInventoryCoreService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/LWhFormOutputCoreService.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/LWhFormOutputServiceImpl.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/LWhFormScrappedCoreService.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/LWhFormTransferCoreService.java 103 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/LWhGoodsService.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-model-pojo/src/main/java/com/consum/model/po/DepFormScrappedModel.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-model-pojo/src/main/java/com/consum/model/po/DepFormScrappedModel_mapper.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-model-pojo/src/main/java/com/consum/model/po/UsingFormBackModel.java 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-model-pojo/src/main/java/com/consum/model/po/UsingFormBackModel_mapper.java 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/controller/DepFormScrappedController.java
@@ -57,6 +57,7 @@
        param = query;
        FinSysTenantUser sysInfo = this.getSysInfo();
        return depFormScrappedService.add(param, this.getCurrentUser(), sysInfo);
    }
consum-base/src/main/java/com/consum/base/core/DepFormScrappedCoreServiceImpl.java
New file
@@ -0,0 +1,229 @@
package com.consum.base.core;
import cn.hutool.core.convert.Convert;
import com.consum.base.core.utils.IdUtil;
import com.consum.base.core.utils.LockManage;
import com.consum.base.service.*;
import com.consum.model.po.DepFormScrapped;
import com.consum.model.po.LWarehouseFlow;
import com.consum.model.po.LWhGoodsRecord;
import com.iplatform.model.po.S_user_core;
import com.walker.infrastructure.utils.CollectionUtils;
import com.walker.web.ResponseValue;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
 * @ClassName DepFormScrappedCoreServiceImpl
 * @Author cy
 * @Date 2023/12/2
 * @Description
 * @Version 1.0
 **/
@Service
@Slf4j
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
public class DepFormScrappedCoreServiceImpl {
    @Resource
    private GoodsBaseServiceImpl goodsBaseService;
    @Resource
    private LWhGoodsService lWhGoodsService;
    @Resource
    private LWhGoodsRecordDetailsService lWhGoodsRecordDetailsService;
    @Resource
    private LWhGoodsRecordService lWhGoodsRecordService;
    @Resource
    private LWarehouseFlowService lWarehouseFlowService;
    /**
     * 根据报废单报废:修改调拨单中可退回数量;仓库中物品状态设置为报废;生成一个保费流水;更新报废型号表中,物品价值
     * <p>
     * 1.找到需要报废的型号, 按同一个
     *
     * @param lWhFormScrappedId //     * @param isBack            是否退回
     */
    public ResponseValue updateScrapped(Long lWhFormScrappedId, S_user_core currentUser, Long dealTime) {
        // 查询报废单状态
        DepFormScrapped depFormScrapped = new DepFormScrapped(lWhFormScrappedId);
        depFormScrapped = goodsBaseService.get(depFormScrapped);
        //状态 1=待报废;2=已报废
        if (depFormScrapped == null || depFormScrapped.getStates() != 1) {
            return ResponseValue.error("请检查报废单");
        }
        Long userId = currentUser.getId();
        String nickName = currentUser.getNick_name();
        // 根据报废单 查询需要报废的型号数量
        List<Map<String, Object>> bfModelList = goodsBaseService.select("SELECT scrGoods.TRANS_BUSINESS_ID,scrGoods.BUSINESS_FORM_CODE,scrGoods.TRANS_OUT_WAREHOUSE_TYPE,scrGoods.TRANS_OUT_WAREHOUSE_ID,scrGoods.BASE_GOODS_TEMPLATE_ID, scrGoods.BASE_GOODS_TEMPLATE_NAME,goodsModel.id formScrappedModelId,goodsModel.BASE_GOODS_TEMPLATE_ID,goodsModel.BASE_GOODS_MODELS_ID,goodsModel.COUNTS,goodsModel.PROCURE_MODEL_USER_ID,goodsModel.GOODS_USER_NAME,goodsModel.BASE_GOODS_MODELS_NAME FROM DEP_FORM_SCRAPPED_GOODS scrGoods LEFT JOIN DEP_FORM_SCRAPPED_MODEL goodsModel ON scrgoods.id=goodsModel.DEP_FORM_SCRAPPED_GOODS_ID where scrGoods.DEP_FORM_SCRAPPED_ID = ?", new Object[]{lWhFormScrappedId});
        Map<Object, List<Map<String, Object>>> groupByModelIdMap = bfModelList.stream()
                .collect(Collectors.groupingBy(map -> map.get("BASE_GOODS_MODELS_ID")));
        Integer warehouseType = depFormScrapped.getOutWarehouseType();
        Long warehouseId = depFormScrapped.getOutWarehouseId();
        String warehouseName = depFormScrapped.getOutWarehouseName();
        // 流水记录总表ID
        long lWarehouseFlowId = IdUtil.generateId();
        // 更新 报废单物品【DEP_FORM_SCRAPPED_MODEL】中价格的list
        Map<Long, Long> modelTotalPriceMap = new HashMap<>();
        //
        ArrayList<LWhGoodsRecord> lWhGoodsRecordList = new ArrayList<>();
        //采购、调拨、出库等的物品型号【L_WH_PROCURE_MODEL】中 根据调拨单+型号 更新 在用数量
        Map<String, Integer> procureModelMap = new HashMap<>();
        for (Object key : groupByModelIdMap.keySet()) {
            Long modelTotalPrice = 0l;
            //要报废的总数量
            int modelTotalNum = 0;
            Long baseGoodsModelsId = (Long) key;
            List<Map<String, Object>> eachFfModelList = groupByModelIdMap.get(key);
            Map<String, Object> eachFfModelBase = eachFfModelList.get(0);
            Long tempGoodsId = Convert.toLong(eachFfModelBase.get("BASE_GOODS_TEMPLATE_ID"));
            String goodsName = Convert.toStr(eachFfModelBase.get("BASE_GOODS_TEMPLATE_NAME"));
            String modelName = Convert.toStr(eachFfModelBase.get("BASE_GOODS_MODELS_NAME"));
            // 插入 各规格物品的进出库记录 L_WH_GOODS_RECORD
            long whGoodsRecordId = IdUtil.generateId();
            LWhGoodsRecord whGoodsRecord = new LWhGoodsRecord();
            whGoodsRecord.setId(whGoodsRecordId);
            whGoodsRecord.setWarehouseType(warehouseType);
            whGoodsRecord.setWarehouseId(warehouseId);
            whGoodsRecord.setWarehouseFlowId(lWarehouseFlowId);
            whGoodsRecord.setBaseGoodsTemplateId(tempGoodsId);
            whGoodsRecord.setGoodsTemplateName(goodsName);
            whGoodsRecord.setBaseGoodsModelsId(baseGoodsModelsId);
            whGoodsRecord.setBaseGoodsModelsName(modelName);
            whGoodsRecord.setDealTime(dealTime);
            //本次调整类型 1=调增;2=调减
            whGoodsRecord.setThisType(2);
            //通过LockManage获得锁
            Object warehouseModelLockObj = LockManage.acquireLock(warehouseType, warehouseId, baseGoodsModelsId);
            int goodsModelNum = 0;
            synchronized (warehouseModelLockObj) {
                goodsModelNum = lWhGoodsService.queryGoodsModelNum(warehouseType, warehouseId, baseGoodsModelsId, 1, null);
                for (Map<String, Object> depFormScrappedModel : eachFfModelList) {
                    // 调拨单信息
                    Long transBusinessId = (Long) depFormScrappedModel.get("TRANS_BUSINESS_ID");
                    String nowUserName = Convert.toStr(depFormScrappedModel.get("GOODS_USER_NAME"));
                    Integer counts = Convert.toInt(depFormScrappedModel.get("COUNTS"));
                    Long formScrappedModelId = Convert.toLong(depFormScrappedModel.get("formScrappedModelId"));
                    modelTotalNum += counts;
                    // 根据分发单、型号、使用人信息查询物品信息
                    List<Map<String, Object>> scrappedGoodsList = lWhGoodsService.queryScrappedGoods(warehouseType, warehouseId, transBusinessId, nowUserName, baseGoodsModelsId, (short) 2, counts);
                    if (CollectionUtils.isEmpty(scrappedGoodsList) || scrappedGoodsList.size() < counts) {
                        log.error("要报废的物品数量不足!");
                        // 手动回滚
                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                        throw new RuntimeException("报废失败!型号数量不足");
                    }
                    Long formScrappedModelPrice = scrappedGoodsList.stream().mapToLong(map -> (long) map.get("price")).sum();
                    modelTotalPrice += formScrappedModelPrice;
                    // 更新 报废单物品【DEP_FORM_SCRAPPED_MODEL】中 价格
                    modelTotalPriceMap.put(formScrappedModelId, formScrappedModelPrice);
                    //采购、调拨、出库等的物品型号【L_WH_PROCURE_MODEL】中 在用数量
                    Integer procureModelNum = Convert.toInt(procureModelMap.get(transBusinessId + "_" + baseGoodsModelsId), 0);
                    procureModelMap.put(transBusinessId + "_" + baseGoodsModelsId, counts + procureModelNum);
                    // 汇总出需要修改状态的物品id
                    List<Long> srappedGoodsIds = scrappedGoodsList.stream().map(map -> (Long) map.get("id")).collect(Collectors.toList());
                    // 设置物品为报废状态
                    lWhGoodsService.modGoodsTransfering(srappedGoodsIds, null, null, null, 3);
                    // 批量插入 进出库流水明细[L_WH_GOODS_RECORD_DETAILS]
                    lWhGoodsRecordDetailsService.sameGoodsInsertMore(srappedGoodsIds, whGoodsRecordId, (short) 2);
                }
            }
            whGoodsRecord.setInitialCount(goodsModelNum);
            whGoodsRecord.setEndCount(goodsModelNum - modelTotalNum);
            whGoodsRecord.setThisCount(modelTotalNum);
            whGoodsRecord.setTotalPrice(modelTotalPrice);
//            lWhGoodsRecordService.insert(whGoodsRecord);
            lWhGoodsRecordList.add(whGoodsRecord);
        }
        // 插入总流水
        LWarehouseFlow warehouseFlow = new LWarehouseFlow();
        warehouseFlow.setId(lWarehouseFlowId);
        warehouseFlow.setWarehouseType(warehouseType);
        warehouseFlow.setWarehouseId(warehouseId);
        warehouseFlow.setWarehouseName(warehouseName);
        warehouseFlow.setThisType(2);
        warehouseFlow.setBusinessType(WhBusinessEnum.BAOFEI.getValue() + 0);
        warehouseFlow.setBusinessFormId(lWhFormScrappedId);
        warehouseFlow.setOperatorId(userId);
        warehouseFlow.setOperatorName(nickName);
        warehouseFlow.setDealTime(dealTime);
        // 插入流水总表
        int flowInsertFlag = lWarehouseFlowService.insert(warehouseFlow);
        if (flowInsertFlag == 0) {
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            return null;
        }
        // 批量插入 各规格物品的进出库【L_WH_GOODS_RECORD】
        lWhGoodsRecordService.insertBatch(lWhGoodsRecordList);
        // 更新报废单
        depFormScrapped = new DepFormScrapped(lWhFormScrappedId);
        depFormScrapped.setStates(2);
//        depFormScrapped.setOperatorId(userId);
//        depFormScrapped.setOperatorName(nickName);
//        depFormScrapped.setDealTime(dealTime);
        goodsBaseService.update(depFormScrapped);
        // 更新 报废单物品【DEP_FORM_SCRAPPED_MODEL】中价格的list
        List<Object[]> parameterList = new ArrayList<>();
        for (Map.Entry<Long, Long> entry : modelTotalPriceMap.entrySet()) {
            Long key = entry.getKey();
            Long value = entry.getValue();
            Object[] one = new Object[2];
            one[0] = value;
            one[1] = key;
            parameterList.add(one);
        }
        goodsBaseService.execBatchUpdate("update DEP_FORM_SCRAPPED_MODEL set TOTAL_AMOUNT=? where id=?", parameterList);
        //采购、调拨、出库等的物品型号【L_WH_PROCURE_MODEL】中 根据调拨单+型号 更新 在用数量
        List<Object[]> procureModelParameterList = new ArrayList<>();
        for (Map.Entry<String, Integer> entry : procureModelMap.entrySet()) {
            String key = entry.getKey();
            Integer modelUseingNum = entry.getValue();
            String[] strings = key.split("_");
            String transBusinessId = strings[0];
            String baseGoodsModelsId = strings[1];
            Object[] one = new Object[4];
            one[0] = modelUseingNum;
            one[1] = transBusinessId;
            one[2] = baseGoodsModelsId;
            one[3] = modelUseingNum;
            procureModelParameterList.add(one);
            StringBuilder sb = new StringBuilder("update L_WH_PROCURE_MODEL set USE_COUNT=USE_COUNT-");
            sb.append(modelUseingNum).append(" where BUSINESS_TYPE=4 and BUSINESS_ID=");
            sb.append(transBusinessId).append(" and BASE_GOODS_MODELS_ID=");
            sb.append(baseGoodsModelsId).append(" and USE_COUNT-");
            sb.append(modelUseingNum).append(" >=0");
            goodsBaseService.update(sb.toString());
        }
//        goodsBaseService.execBatchUpdate("update L_WH_PROCURE_MODEL set USE_COUNT=USE_COUNT-? where BUSINESS_TYPE=4 and BUSINESS_ID=? and BASE_GOODS_MODELS_ID=? and USE_COUNT=USE_COUNT-? >0", parameterList);
        //当库存变动时调用该方法
        //lWhWarningCoreService.updateKuCun(Convert.toShort(warehouseType,(short) 0), warehouseId, allChangModelList, null, dealTime);
        return null;
    }
}
consum-base/src/main/java/com/consum/base/service/DepFormScrappedServiceImpl.java
@@ -3,6 +3,7 @@
import cn.hutool.core.convert.Convert;
import com.consum.base.core.CodeGeneratorEnum;
import com.consum.base.core.CodeGeneratorService;
import com.consum.base.core.DepFormScrappedCoreServiceImpl;
import com.consum.base.core.utils.IdUtil;
import com.consum.base.core.utils.MapperUtil;
import com.consum.base.pojo.DepFormScrappedGoodsParam;
@@ -10,14 +11,7 @@
import com.consum.base.pojo.LDeptFormScrappedParam;
import com.consum.base.pojo.query.LDeptFormScrappedQry;
import com.consum.base.pojo.response.DepFormScrappedExtendVo;
import com.consum.model.po.BaseCategory;
import com.consum.model.po.DepFormScrapped;
import com.consum.model.po.DepFormScrappedGoods;
import com.consum.model.po.DepFormScrappedModel;
import com.consum.model.po.FinSysTenantDepartment;
import com.consum.model.po.FinSysTenantUser;
import com.consum.model.po.LWhFormTransfer;
import com.consum.model.po.SDictData;
import com.consum.model.po.*;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.iplatform.model.po.S_user_core;
import com.walker.db.page.GenericPager;
@@ -26,15 +20,16 @@
import com.walker.infrastructure.utils.StringUtils;
import com.walker.jdbc.service.BaseServiceImpl;
import com.walker.web.ResponseValue;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
 * @ClassName DepFormScrappedServiceImpl
@@ -58,6 +53,9 @@
    private SDictDataServiceImpl sDictDataService;
    @Resource
    private BaseGoodsModelsServiceImpl baseGoodsModelsService;
    @Resource
    private DepFormScrappedCoreServiceImpl depFormScrappedCoreService;
    @Transactional
    public ResponseValue add(LDeptFormScrappedParam param, S_user_core currentUser, FinSysTenantUser sysInfo) {
@@ -188,6 +186,7 @@
        }
        int i = insertBatch(scrappedGoodsArrayList);
        int i2 = insertBatch(modelArrayList);
        depFormScrappedCoreService.updateScrapped(lWhFormScrappedId,currentUser,dealTime);
        return ResponseValue.success();
    }
@@ -272,7 +271,7 @@
        return scrappedExtend;
    }
    private static String EXPORT_SQL = "SELECT scrap.id,scrap.BUSINESS_FORM_CODE,model.BASE_GOODS_TEMPLATE_NAME,model.BASE_GOODS_MODELS_NAME,model.COUNTS,scrap.AGENCY_NAME,scrap.DEPARTMENT_NAME,scrap.OPERATOR_NAME,scrap.DEAL_TIME,scrap.OUT_WAREHOUSE_NAME,2 AS TOTAL_PRICE,model.SCRAPPED_NAME,NULL AS bz FROM DEP_FORM_SCRAPPED scrap LEFT JOIN DEP_FORM_SCRAPPED_MODEL model ON scrap.id=model.DEP_FORM_SCRAPPED_ID WHERE 1=1 ";
    private static String EXPORT_SQL = "SELECT scrap.id,scrap.BUSINESS_FORM_CODE,model.BASE_GOODS_TEMPLATE_NAME,model.BASE_GOODS_MODELS_NAME,model.COUNTS,scrap.AGENCY_NAME,scrap.DEPARTMENT_NAME,scrap.OPERATOR_NAME,scrap.DEAL_TIME,scrap.OUT_WAREHOUSE_NAME,ROUND( IFNULL( TOTAL_AMOUNT, 0 )/ 100, 2 ) AS TOTAL_PRICE,model.SCRAPPED_NAME,NULL AS bz FROM DEP_FORM_SCRAPPED scrap LEFT JOIN DEP_FORM_SCRAPPED_MODEL model ON scrap.id=model.DEP_FORM_SCRAPPED_ID WHERE 1=1 ";
    private static String EXPORT_SQL_END = "order by scrap.DEAL_TIME DESC";
    public List<Map<String, Object>> export(Long id, String agencyId) {
@@ -341,4 +340,26 @@
        }
        return select(sql.append(EXPORT_SQL_END).toString(), paramts, new MapperUtil());
    }
    private static String GET_BF_MODEL_LIST = "SELECT\n" +
            "\tscrGoods.TRANS_BUSINESS_ID,\n" +
            "\tscrGoods.BUSINESS_FORM_CODE,\n" +
            "\tscrGoods.TRANS_OUT_WAREHOUSE_TYPE,\n" +
            "\tscrGoods.TRANS_OUT_WAREHOUSE_ID,\n" +
            "\tgoodsModel.BASE_GOODS_TEMPLATE_ID,\n" +
            "\tgoodsModel.COUNTS,\n" +
            "\tgoodsModel.PROCURE_MODEL_USER_ID,\n" +
            "\tgoodsModel.GOODS_USER_NAME \n" +
            "FROM\n" +
            "\tDEP_FORM_SCRAPPED_GOODS scrGoods\n" +
            "\tLEFT JOIN DEP_FORM_SCRAPPED_MODEL goodsModel ON scrgoods.id = goodsModel.DEP_FORM_SCRAPPED_GOODS_ID";
    public List<Map<String, Object>> getBfModelList(Long lWhFormScrappedId) {
        HashMap<String, Object> paramts = new HashMap<>();
        StringBuilder sql = new StringBuilder(GET_BF_MODEL_LIST);
        //报废单id
        sql.append(" and scrGoods.DEP_FORM_SCRAPPED_ID = :lWhFormScrappedId");
        paramts.put("lWhFormScrappedId", lWhFormScrappedId);
        return select(sql.toString(), paramts, new MapperUtil());
    }
}
consum-base/src/main/java/com/consum/base/service/LWhFormInventoryCoreService.java
@@ -152,7 +152,7 @@
                inOutMap.putAll(ckMap);
                Long lWhFormOutputId = (Long) inOutMap.get("outId");
                //2.根据出库单出库
                Long lWarehouseFlowId = lWhFormOutputCoreService.outFormByTransId(lWhFormOutputId, WhBusinessEnum.PANDIAN, currentUser, stopTime);
                Long lWarehouseFlowId = lWhFormOutputCoreService.outFormByTransId(lWhFormOutputId, WhBusinessEnum.PANDIAN, currentUser, stopTime,null);
                if (lWarehouseFlowId == null) {
                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
//                    throw new RuntimeException("创建出库单失败");
consum-base/src/main/java/com/consum/base/service/LWhFormOutputCoreService.java
@@ -155,7 +155,7 @@
     * @return 流水记录总表ID
     */
    @Transactional(rollbackFor = Exception.class)
    public Long outFormByTransId(Long outWarehouseFormId, WhBusinessEnum businessType, S_user_core currentUser, Long dealTime) {
    public Long outFormByTransId(Long outWarehouseFormId, WhBusinessEnum businessType, S_user_core currentUser, Long dealTime, Long whFormTransferId) {
        if (outWarehouseFormId == null) {
            return null;
        }
@@ -295,7 +295,7 @@
        warehouseFlow.setThisType(2);
        warehouseFlow.setBusinessType(businessType.getValue() + 0);
        warehouseFlow.setBusinessFormId(lWarehouseFlowBusinessId);
        warehouseFlow.setBusinessFormId(whFormTransferId == null ? lWarehouseFlowBusinessId : whFormTransferId);
        warehouseFlow.setOperatorId(userId);
        warehouseFlow.setOperatorName(nickName);
        warehouseFlow.setDealTime(dealTime);
@@ -311,7 +311,7 @@
        lWhFormOutputService.update(lWhFormOutput);
        //当库存变动时调用该方法
        if (outWarehouseType == 0){
        if (outWarehouseType == 0) {
            lWhWarningCoreService.updateKuCun(Convert.toShort(outWarehouseType, (short) 0), outWarehouseId, allChangModelList, null, dealTime);
        }
        return lWarehouseFlowId;
consum-base/src/main/java/com/consum/base/service/LWhFormOutputServiceImpl.java
@@ -12,25 +12,22 @@
import com.consum.base.pojo.LWhFormOutputParam;
import com.consum.base.pojo.excel.OutputExcelTemplate;
import com.consum.base.pojo.query.LWhFormOutputQry;
import com.consum.model.po.BaseGoodsModels;
import com.consum.model.po.BaseWarehouse;
import com.consum.model.po.FinSysTenantUser;
import com.consum.model.po.LWhFormOutput;
import com.consum.model.po.LWhProcureModel;
import com.consum.model.po.*;
import com.iplatform.model.po.S_user_core;
import com.walker.db.page.GenericPager;
import com.walker.infrastructure.utils.CollectionUtils;
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 lombok.extern.slf4j.Slf4j;
import org.apache.commons.compress.utils.Lists;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * @Description 出库单
@@ -123,7 +120,7 @@
        }
        //3.根据出库单出库
        Long lWarehouseFlowId = this.lWhFormOutputCoreService.outFormByTransId(lWhFormOutputId, WhBusinessEnum.CHUKU, currentUser, param.getDealTime());
        Long lWarehouseFlowId = this.lWhFormOutputCoreService.outFormByTransId(lWhFormOutputId, WhBusinessEnum.CHUKU, currentUser, param.getDealTime(),null);
        if (lWarehouseFlowId == null) {
            log.error("根据出库单出库失败");
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
consum-base/src/main/java/com/consum/base/service/LWhFormScrappedCoreService.java
@@ -3,6 +3,7 @@
import cn.hutool.core.convert.Convert;
import com.consum.base.core.WhBusinessEnum;
import com.consum.base.core.service.LWhWarningCoreServiceImpl;
import com.consum.base.core.utils.IdUtil;
import com.consum.base.core.utils.LockManage;
import com.consum.model.po.LWarehouseFlow;
import com.consum.model.po.LWhFormScrapped;
@@ -10,7 +11,6 @@
import com.consum.model.po.LWhGoodsRecord;
import com.iplatform.model.po.S_user_core;
import com.walker.infrastructure.utils.CollectionUtils;
import com.walker.infrastructure.utils.NumberGenerator;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -89,7 +89,7 @@
        Long warehouseId = lWhFormScrapped.getWarehouseId();
        String warehouseName = lWhFormScrapped.getWarehouseName();
        // 流水记录总表ID
        long lWarehouseFlowId = NumberGenerator.getLongSequenceNumberNano();
        long lWarehouseFlowId = IdUtil.generateId();
        //要报废的物品
        LWhFormScrappedGoods goods = new LWhFormScrappedGoods();
@@ -119,7 +119,7 @@
            String goodsName = (String) tempGoodsInfo.get("goodsname");
            String modelName = (String) tempGoodsInfo.get("modelname");
            // 插入 各规格物品的进出库记录 L_WH_GOODS_RECORD
            long whGoodsRecordId = NumberGenerator.getLongSequenceNumberNano();
            long whGoodsRecordId = IdUtil.generateId();
            LWhGoodsRecord whGoodsRecord = new LWhGoodsRecord();
            whGoodsRecord.setId(whGoodsRecordId);
            whGoodsRecord.setWarehouseType(warehouseType);
@@ -192,11 +192,6 @@
        }
        // 更新报废单
        lWhFormScrapped = new LWhFormScrapped(formScrappedId);
        lWhFormScrapped = goodsBaseService.get(lWhFormScrapped);
        if (lWhFormScrapped != null && lWhFormScrapped.getStates() != 0) {
            log.error("报废失败!请检查报废单状态");
            return null;
        }
        lWhFormScrapped.setLWarehouseFlowId(lWarehouseFlowId);
        lWhFormScrapped.setStates(1);
        lWhFormScrapped.setOperatorId(userId);
consum-base/src/main/java/com/consum/base/service/LWhFormTransferCoreService.java
@@ -5,27 +5,23 @@
import com.consum.base.core.service.LWhWarningCoreServiceImpl;
import com.consum.base.core.utils.IdUtil;
import com.consum.base.core.utils.LockManage;
import com.consum.model.po.LGoodsUserRecord;
import com.consum.model.po.LWarehouseFlow;
import com.consum.model.po.LWhFormTransfer;
import com.consum.model.po.LWhGoodsRecord;
import com.consum.model.po.LWhGoodsRecordDetails;
import com.consum.model.po.LWhProcureModelUser;
import com.consum.model.po.*;
import com.iplatform.model.po.S_user_core;
import com.walker.infrastructure.utils.CollectionUtils;
import com.walker.infrastructure.utils.DateUtils;
import com.walker.infrastructure.utils.NumberGenerator;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
 * @ClassName LWhFormTransferCoreService
@@ -98,7 +94,7 @@
            return;
        }
        // 出库单 出库,返回 出库单流水Id
        Long lWarehouseFlowId = lWhFormOutputCoreService.outFormByTransId(outWarehouseFormId, businessEnum, currentUser, dealTime);
        Long lWarehouseFlowId = lWhFormOutputCoreService.outFormByTransId(outWarehouseFormId, businessEnum, currentUser, dealTime, whFormTransferId);
        // 更新调拨单
        lWhFormTransfer = new LWhFormTransfer(whFormTransferId);
@@ -183,6 +179,7 @@
            Long baseGoodsModelsId = whGoodsRecord.getBaseGoodsModelsId();
            allChangModelList.add(baseGoodsModelsId);
            whGoodsRecord.setId(IdUtil.generateId());
            whGoodsRecord.setWarehouseFlowId(inWarehouseFlowId);
            whGoodsRecord.setWarehouseType(inWarehouseType);
            whGoodsRecord.setWarehouseId(inWarehouseId);
            whGoodsRecord.setDealTime(dealTime);
@@ -208,56 +205,56 @@
            }
            if (businessType == 1) {
//                List<Map<String, Object>> modelInfo = baseGoodsModelsService.queryGoodsModelInfo(baseGoodsModelsId);
                // 1部门分发 此时要往 物品使用记录【L_GOODS_USER_RECORD】添加数据
                //查询部门分发使用人
                LWhProcureModelUser lWhProcureModelUser = new LWhProcureModelUser();
                lWhProcureModelUser.setTransBusinessId(whFormTransferId);
                lWhProcureModelUser.setBaseGoodsModelsId(baseGoodsModelsId);
                List<LWhProcureModelUser> goodsUserInfo = goodsBaseService.select(lWhProcureModelUser);
                if (CollectionUtils.isEmpty(goodsUserInfo)) {
                    continue;
                }
                int totalGoodsNum = goodsUserInfo.stream().filter(item -> item.getGoodsNum() != null).mapToInt(LWhProcureModelUser::getGoodsNum).sum();
                if (totalGoodsNum != outGoodsIds.size()) {
                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                    throw new RuntimeException("入库单失败,使用人使用数量与物品数量不一致");
//                        log.error("创建入库单失败");
                }
                //将物品型号以前的使用记录设置为非最新
                lGoodsUserRecordService.updSetNotLast(outGoodsIds);
                ArrayList<LGoodsUserRecord> goodsUserRecordList = new ArrayList<>();
                int startIndex = 0;
                for (LWhProcureModelUser whProcureModelUser : goodsUserInfo) {
                    Integer goodsNum = whProcureModelUser.getGoodsNum();
                    String nowUserName = whProcureModelUser.getNowUserName();
                    Long nowUserPhone = whProcureModelUser.getNowUserPhone();
                    Long procureModelUserRecordId = whProcureModelUser.getProcureModelUserRecordId();
                    List<Long> goodsIds = outGoodsIds.subList(startIndex, startIndex + goodsNum);
                    for (Long goodsId : goodsIds) {
                        LGoodsUserRecord tmp = new LGoodsUserRecord();
                        tmp.setWhGoodsId(goodsId);
                        tmp.setRecordType(recordType);
                        tmp.setTransBusinessId(whFormTransferId);
                        if (businessType == 1) {
                            tmp.setNowUserName(nowUserName);
                            tmp.setNowUserPhone(nowUserPhone);
                        } else if (businessType == 2) {
                            tmp.setNowUserName(null);
                            tmp.setNowUserPhone(null);
                        }
                        tmp.setProcureModelUserRecordId(procureModelUserRecordId);
                        tmp.setOperatorId(userId);
                        tmp.setOperatorName(nickName);
                        tmp.setDealTime(dealTime);
                        tmp.setLastRecord(1);
                        goodsUserRecordList.add(tmp);
                if (!CollectionUtils.isEmpty(goodsUserInfo)) {
                    //认为是A类物品
                    int totalGoodsNum = goodsUserInfo.stream().filter(item -> item.getGoodsNum() != null).mapToInt(LWhProcureModelUser::getGoodsNum).sum();
                    if (totalGoodsNum != outGoodsIds.size()) {
                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                        throw new RuntimeException("入库单失败,使用人使用数量与物品数量不一致");
//                        log.error("创建入库单失败");
                    }
                    // 更新下标位置
                    startIndex += goodsNum;
                    ArrayList<LGoodsUserRecord> goodsUserRecordList = new ArrayList<>();
                    int startIndex = 0;
                    for (LWhProcureModelUser whProcureModelUser : goodsUserInfo) {
                        Integer goodsNum = whProcureModelUser.getGoodsNum();
                        String nowUserName = whProcureModelUser.getNowUserName();
                        Long nowUserPhone = whProcureModelUser.getNowUserPhone();
                        Long procureModelUserRecordId = whProcureModelUser.getProcureModelUserRecordId();
                        List<Long> goodsIds = outGoodsIds.subList(startIndex, startIndex + goodsNum);
                        for (Long goodsId : goodsIds) {
                            LGoodsUserRecord tmp = new LGoodsUserRecord();
                            tmp.setWhGoodsId(goodsId);
                            tmp.setRecordType(recordType);
                            tmp.setTransBusinessId(whFormTransferId);
                            if (businessType == 1) {
                                tmp.setNowUserName(nowUserName);
                                tmp.setNowUserPhone(nowUserPhone);
                            } else if (businessType == 2) {
                                tmp.setNowUserName(null);
                                tmp.setNowUserPhone(null);
                            }
                            tmp.setProcureModelUserRecordId(procureModelUserRecordId);
                            tmp.setOperatorId(userId);
                            tmp.setOperatorName(nickName);
                            tmp.setDealTime(dealTime);
                            tmp.setLastRecord(1);
                            goodsUserRecordList.add(tmp);
                        }
                        // 更新下标位置
                        startIndex += goodsNum;
                    }
                    //批量插入使用人记录
                    lGoodsUserRecordService.insertBatch(goodsUserRecordList);
                }
                //批量插入使用人记录
                lGoodsUserRecordService.insertBatch(goodsUserRecordList);
            }
            //将保管仓库信息更新到 物品仓库保管记录【L_GOODS_WH_RECORD】
            lGoodsWhRecordService.insertNewRecord(outGoodsIds, inWarehouseFlowId, dealTime);
consum-base/src/main/java/com/consum/base/service/LWhGoodsService.java
@@ -151,8 +151,9 @@
     * @return
     */
    private static String QUERY_SCRAPPED_GOODS_PREFIX_1 = "SELECT goods.id FROM L_WH_GOODS goods LEFT JOIN L_GOODS_USER_RECORD useRecord ON goods.id=useRecord.WH_GOODS_ID AND useRecord.LAST_RECORD=1 WHERE 1=1 ";
    private static String QUERY_SCRAPPED_GOODS_PREFIX_2 = " AND goods.id IN (SELECT lwgrd.WH_GOODS_ID FROM L_WAREHOUSE_FLOW flow LEFT JOIN L_WH_GOODS_RECORD lwgr ON lwgr.WAREHOUSE_FLOW_ID=flow.id LEFT JOIN L_WH_GOODS_RECORD_DETAILS lwgrd ON lwgrd.WH_GOODS_RECORD_ID=lwgr.id WHERE flow.THIS_TYPE=4 AND flow.BUSINESS_FORM_ID=:transBusinessId)";
    private static String QUERY_SCRAPPED_GOODS_PREFIX_1 = "SELECT goods.id, goods.PRICE FROM L_WH_GOODS goods LEFT JOIN L_GOODS_USER_RECORD useRecord ON goods.id=useRecord.WH_GOODS_ID AND useRecord.LAST_RECORD=1 WHERE 1=1 ";
    private static String QUERY_SCRAPPED_GOODS_PREFIX_2 = " AND goods.id IN (SELECT lwgrd.WH_GOODS_ID FROM L_WAREHOUSE_FLOW flow LEFT JOIN L_WH_GOODS_RECORD lwgr ON lwgr.WAREHOUSE_FLOW_ID=flow.id LEFT JOIN L_WH_GOODS_RECORD_DETAILS lwgrd ON lwgrd.WH_GOODS_RECORD_ID=lwgr.id WHERE flow.THIS_TYPE=1 AND flow.BUSINESS_FORM_ID=:transBusinessId)";
    private static String QUERY_SCRAPPED_GOODS_PREFIX_2_MODEL_NOT_NULL = " AND goods.id IN (SELECT lwgrd.WH_GOODS_ID FROM L_WAREHOUSE_FLOW flow LEFT JOIN L_WH_GOODS_RECORD lwgr ON lwgr.WAREHOUSE_FLOW_ID=flow.id LEFT JOIN L_WH_GOODS_RECORD_DETAILS lwgrd ON lwgrd.WH_GOODS_RECORD_ID=lwgr.id WHERE flow.THIS_TYPE=1 AND flow.BUSINESS_FORM_ID=:transBusinessId AND lwgr.BASE_GOODS_MODELS_ID = :lwgrGoodsModelId)";
    private static String QUERY_SCRAPPED_GOODS_END = " ORDER BY goods.PRICE DESC,goods.PROCURE_DATE ASC,goods.id";
    public List<Map<String, Object>> queryScrappedGoods(Integer warehouseType,
@@ -188,8 +189,14 @@
            paramts.put("states", states);
        }
        if (transBusinessId != null) {
            sql.append(QUERY_SCRAPPED_GOODS_PREFIX_2);
            paramts.put("transBusinessId", transBusinessId);
            if (baseGoodsModelsId != null) {
                sql.append(QUERY_SCRAPPED_GOODS_PREFIX_2_MODEL_NOT_NULL);
                paramts.put("transBusinessId", transBusinessId);
                paramts.put("lwgrGoodsModelId", baseGoodsModelsId);
            } else {
                sql.append(QUERY_SCRAPPED_GOODS_PREFIX_2);
                paramts.put("transBusinessId", transBusinessId);
            }
        }
        sql.append(QUERY_SCRAPPED_GOODS_END);
        if (goodsModelNum != null) {
consum-model-pojo/src/main/java/com/consum/model/po/DepFormScrappedModel.java
@@ -85,6 +85,10 @@
    @JsonIgnore
    protected boolean isset_beiz = false;
    private Integer totalAmount = null;
    @JsonIgnore
    protected boolean isset_totalAmount = false;
    /**
     * 默认构造函数
     */
@@ -344,6 +348,20 @@
        return this.beiz == null || this.beiz.length() == 0;
    }
    public Integer getTotalAmount() {
        return this.totalAmount;
    }
    public void setTotalAmount(Integer totalAmount) {
        this.totalAmount = totalAmount;
        this.isset_totalAmount = true;
    }
    @JsonIgnore
    public boolean isEmptyTotalAmount() {
        return this.totalAmount == null;
    }
    /**
     * 重写 toString() 方法
     */
@@ -367,6 +385,7 @@
                .append("counts=").append(this.counts)
                .append("goodsUserName=").append(this.goodsUserName)
                .append("beiz=").append(this.beiz)
                .append("totalAmount=").append(this.totalAmount)
                .toString();
    }
@@ -432,6 +451,9 @@
        if (this.isset_beiz) {
dep_form_scrapped_model.setBeiz(this.getBeiz());
        }
        if (this.isset_totalAmount) {
dep_form_scrapped_model.setTotalAmount(this.getTotalAmount());
        }
        return dep_form_scrapped_model;
    }
}
consum-model-pojo/src/main/java/com/consum/model/po/DepFormScrappedModel_mapper.java
@@ -45,6 +45,7 @@
    public static final String Counts = "counts";
    public static final String GoodsUserName = "goods_user_name";
    public static final String Beiz = "beiz";
    public static final String TotalAmount = "total_amount";
    /**
     * 默认构造函数
@@ -106,6 +107,9 @@
        if (depFormScrappedModel.isset_beiz) {
            this.setBeiz(depFormScrappedModel.getBeiz());
        }
        if (depFormScrappedModel.isset_totalAmount) {
            this.setTotalAmount(depFormScrappedModel.getTotalAmount());
        }
        // 去掉,2022-09-07
        // this.setDatabaseName_(dep_form_scrapped_model.getDatabaseName_());
    }
@@ -165,6 +169,7 @@
        ib.set(Counts, this.getCounts(), this.isset_counts);
        ib.set(GoodsUserName, this.getGoodsUserName(), this.isset_goodsUserName);
        ib.set(Beiz, this.getBeiz(), this.isset_beiz);
        ib.set(TotalAmount, this.getTotalAmount(), this.isset_totalAmount);
        return ib.genMapSql();
    }
@@ -190,6 +195,7 @@
        ub.set(Counts, this.getCounts(), this.isset_counts);
        ub.set(GoodsUserName, this.getGoodsUserName(), this.isset_goodsUserName);
        ub.set(Beiz, this.getBeiz(), this.isset_beiz);
        ub.set(TotalAmount, this.getTotalAmount(), this.isset_totalAmount);
        ub.where(this.getPkName_(), this.getPkValue_());
        return ub.genMapSql();
    }
@@ -216,6 +222,7 @@
        ub.set(Counts, this.getCounts(), this.isset_counts);
        ub.set(GoodsUserName, this.getGoodsUserName(), this.isset_goodsUserName);
        ub.set(Beiz, this.getBeiz(), this.isset_beiz);
        ub.set(TotalAmount, this.getTotalAmount(), this.isset_totalAmount);
        return ub.genMapSql(where, parameters);
    }
@@ -241,6 +248,7 @@
        ub.set(Counts, this.getCounts(), this.isset_counts);
        ub.set(GoodsUserName, this.getGoodsUserName(), this.isset_goodsUserName);
        ub.set(Beiz, this.getBeiz(), this.isset_beiz);
        ub.set(TotalAmount, this.getTotalAmount(), this.isset_totalAmount);
        return ub.genArraySql(where, parameters);
    }
@@ -288,7 +296,7 @@
     */
    @Override
    public SqlAndParameters<Map<String, Object>> getSelectSql_(String where, Map<String, Object> parameters) {
        return new SqlAndParameters<>("select id, dep_form_scrapped_id, dep_form_scrapped_goods_id, scrapped_code, scrapped_name, base_goods_template_id, base_goods_template_name, classification, unit, base_goods_models_id, base_goods_models_name, procure_model_user_id, initial_count, use_count, counts, goods_user_name, beiz from " + this.getTableName_() + " " + where, parameters);
        return new SqlAndParameters<>("select id, dep_form_scrapped_id, dep_form_scrapped_goods_id, scrapped_code, scrapped_name, base_goods_template_id, base_goods_template_name, classification, unit, base_goods_models_id, base_goods_models_name, procure_model_user_id, initial_count, use_count, counts, goods_user_name, beiz, total_amount from " + this.getTableName_() + " " + where, parameters);
    }
    /**
@@ -296,7 +304,7 @@
     */
    @Override
    public SqlAndParameters<Object[]> getSelectSql_(String where, Object[] parameters) {
        return new SqlAndParameters<>("select id, dep_form_scrapped_id, dep_form_scrapped_goods_id, scrapped_code, scrapped_name, base_goods_template_id, base_goods_template_name, classification, unit, base_goods_models_id, base_goods_models_name, procure_model_user_id, initial_count, use_count, counts, goods_user_name, beiz from " + this.getTableName_() + " " + where, parameters);
        return new SqlAndParameters<>("select id, dep_form_scrapped_id, dep_form_scrapped_goods_id, scrapped_code, scrapped_name, base_goods_template_id, base_goods_template_name, classification, unit, base_goods_models_id, base_goods_models_name, procure_model_user_id, initial_count, use_count, counts, goods_user_name, beiz, total_amount from " + this.getTableName_() + " " + where, parameters);
    }
    /**
@@ -433,6 +441,14 @@
        if (columnIndex > 0) {
dep_form_scrapped_model.setBeiz(rs.getString(columnIndex));
        }
        columnIndex = resultSetUtils.findColumn(rs, DepFormScrappedModel_mapper.TotalAmount);
        if (columnIndex > 0) {
            if (rs.getBigDecimal(columnIndex) == null) {
dep_form_scrapped_model.setTotalAmount(null);
            } else {
dep_form_scrapped_model.setTotalAmount(rs.getInt(columnIndex));
            }
        }
        return dep_form_scrapped_model;
    }
}
consum-model-pojo/src/main/java/com/consum/model/po/UsingFormBackModel.java
@@ -12,7 +12,6 @@
 */
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY)
public class UsingFormBackModel extends BasePo<UsingFormBackModel> {
    // 序列化版本号
    private static final long serialVersionUID = 1L;
@@ -77,6 +76,10 @@
    private String beiz = null;
    @JsonIgnore
    protected boolean isset_beiz = false;
    private Integer totalAmount = null;
    @JsonIgnore
    protected boolean isset_totalAmount = false;
    /**
     * 默认构造函数
@@ -309,85 +312,103 @@
        return this.beiz == null || this.beiz.length() == 0;
    }
    public Integer getTotalAmount() {
        return this.totalAmount;
    }
    public void setTotalAmount(Integer totalAmount) {
        this.totalAmount = totalAmount;
        this.isset_totalAmount = true;
    }
    @JsonIgnore
    public boolean isEmptyTotalAmount() {
        return this.totalAmount == null;
    }
    /**
     * 重写 toString() 方法
     */
    @Override
    public String toString() {
        return new StringBuilder()
            .append("id=").append(this.id)
            .append("usingFormBackId=").append(this.usingFormBackId)
            .append("usingFormBackGoodsId=").append(this.usingFormBackGoodsId)
            .append("baseGoodsTemplateId=").append(this.baseGoodsTemplateId)
            .append("baseGoodsTemplateName=").append(this.baseGoodsTemplateName)
            .append("classification=").append(this.classification)
            .append("unit=").append(this.unit)
            .append("baseGoodsModelsId=").append(this.baseGoodsModelsId)
            .append("baseGoodsModelsName=").append(this.baseGoodsModelsName)
            .append("procureModelUserId=").append(this.procureModelUserId)
            .append("initialCount=").append(this.initialCount)
            .append("useCount=").append(this.useCount)
            .append("counts=").append(this.counts)
            .append("goodsUserName=").append(this.goodsUserName)
            .append("beiz=").append(this.beiz)
            .toString();
                .append("id=").append(this.id)
                .append("usingFormBackId=").append(this.usingFormBackId)
                .append("usingFormBackGoodsId=").append(this.usingFormBackGoodsId)
                .append("baseGoodsTemplateId=").append(this.baseGoodsTemplateId)
                .append("baseGoodsTemplateName=").append(this.baseGoodsTemplateName)
                .append("classification=").append(this.classification)
                .append("unit=").append(this.unit)
                .append("baseGoodsModelsId=").append(this.baseGoodsModelsId)
                .append("baseGoodsModelsName=").append(this.baseGoodsModelsName)
                .append("procureModelUserId=").append(this.procureModelUserId)
                .append("initialCount=").append(this.initialCount)
                .append("useCount=").append(this.useCount)
                .append("counts=").append(this.counts)
                .append("goodsUserName=").append(this.goodsUserName)
                .append("beiz=").append(this.beiz)
                .append("totalAmount=").append(this.totalAmount)
                .toString();
    }
    /**
     * 克隆
     */
    public UsingFormBackModel $clone() {
        UsingFormBackModel using_form_back_model = new UsingFormBackModel();
UsingFormBackModel using_form_back_model = new UsingFormBackModel();
        // 数据库名称
        //using_form_back_model.setDatabaseName_(this.getDatabaseName_());
        // 主键
        if (this.isset_id) {
            using_form_back_model.setId(this.getId());
using_form_back_model.setId(this.getId());
        }
        // 普通属性
        if (this.isset_usingFormBackId) {
            using_form_back_model.setUsingFormBackId(this.getUsingFormBackId());
using_form_back_model.setUsingFormBackId(this.getUsingFormBackId());
        }
        if (this.isset_usingFormBackGoodsId) {
            using_form_back_model.setUsingFormBackGoodsId(this.getUsingFormBackGoodsId());
using_form_back_model.setUsingFormBackGoodsId(this.getUsingFormBackGoodsId());
        }
        if (this.isset_baseGoodsTemplateId) {
            using_form_back_model.setBaseGoodsTemplateId(this.getBaseGoodsTemplateId());
using_form_back_model.setBaseGoodsTemplateId(this.getBaseGoodsTemplateId());
        }
        if (this.isset_baseGoodsTemplateName) {
            using_form_back_model.setBaseGoodsTemplateName(this.getBaseGoodsTemplateName());
using_form_back_model.setBaseGoodsTemplateName(this.getBaseGoodsTemplateName());
        }
        if (this.isset_classification) {
            using_form_back_model.setClassification(this.getClassification());
using_form_back_model.setClassification(this.getClassification());
        }
        if (this.isset_unit) {
            using_form_back_model.setUnit(this.getUnit());
using_form_back_model.setUnit(this.getUnit());
        }
        if (this.isset_baseGoodsModelsId) {
            using_form_back_model.setBaseGoodsModelsId(this.getBaseGoodsModelsId());
using_form_back_model.setBaseGoodsModelsId(this.getBaseGoodsModelsId());
        }
        if (this.isset_baseGoodsModelsName) {
            using_form_back_model.setBaseGoodsModelsName(this.getBaseGoodsModelsName());
using_form_back_model.setBaseGoodsModelsName(this.getBaseGoodsModelsName());
        }
        if (this.isset_procureModelUserId) {
            using_form_back_model.setProcureModelUserId(this.getProcureModelUserId());
using_form_back_model.setProcureModelUserId(this.getProcureModelUserId());
        }
        if (this.isset_initialCount) {
            using_form_back_model.setInitialCount(this.getInitialCount());
using_form_back_model.setInitialCount(this.getInitialCount());
        }
        if (this.isset_useCount) {
            using_form_back_model.setUseCount(this.getUseCount());
using_form_back_model.setUseCount(this.getUseCount());
        }
        if (this.isset_counts) {
            using_form_back_model.setCounts(this.getCounts());
using_form_back_model.setCounts(this.getCounts());
        }
        if (this.isset_goodsUserName) {
            using_form_back_model.setGoodsUserName(this.getGoodsUserName());
using_form_back_model.setGoodsUserName(this.getGoodsUserName());
        }
        if (this.isset_beiz) {
            using_form_back_model.setBeiz(this.getBeiz());
using_form_back_model.setBeiz(this.getBeiz());
        }
        if (this.isset_totalAmount) {
using_form_back_model.setTotalAmount(this.getTotalAmount());
        }
        return using_form_back_model;
    }
consum-model-pojo/src/main/java/com/consum/model/po/UsingFormBackModel_mapper.java
@@ -7,10 +7,13 @@
import com.walker.jdbc.sqlgen.InsertBuilder;
import com.walker.jdbc.sqlgen.SelectBuilder;
import com.walker.jdbc.sqlgen.UpdateBuilder;
import com.walker.jdbc.util.StringUtils;
import org.springframework.jdbc.core.RowMapper;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Map;
import org.springframework.jdbc.core.RowMapper;
/**
 * 表名:USING_FORM_BACK_MODEL
@@ -18,7 +21,6 @@
 * @author genrator
 */
public class UsingFormBackModel_mapper extends UsingFormBackModel implements BaseMapper<UsingFormBackModel> {
    // 序列化版本号
    private static final long serialVersionUID = 1L;
@@ -41,6 +43,7 @@
    public static final String Counts = "counts";
    public static final String GoodsUserName = "goods_user_name";
    public static final String Beiz = "beiz";
    public static final String TotalAmount = "total_amount";
    /**
     * 默认构造函数
@@ -96,6 +99,9 @@
        if (usingFormBackModel.isset_beiz) {
            this.setBeiz(usingFormBackModel.getBeiz());
        }
        if (usingFormBackModel.isset_totalAmount) {
            this.setTotalAmount(usingFormBackModel.getTotalAmount());
        }
        // 去掉,2022-09-07
        // this.setDatabaseName_(using_form_back_model.getDatabaseName_());
    }
@@ -107,12 +113,12 @@
    public String getTableName_() {
        String tableName = "using_form_back_model";
        /**
         if (StringUtils.isNotEmpty(this.getDatabaseName_())) {
         return this.getDatabaseName_() + "." + tableName;
         } else {
         return tableName;
         }
         */
        if (StringUtils.isNotEmpty(this.getDatabaseName_())) {
            return this.getDatabaseName_() + "." + tableName;
        } else {
            return tableName;
        }
        */
        return tableName;
    }
@@ -153,6 +159,7 @@
        ib.set(Counts, this.getCounts(), this.isset_counts);
        ib.set(GoodsUserName, this.getGoodsUserName(), this.isset_goodsUserName);
        ib.set(Beiz, this.getBeiz(), this.isset_beiz);
        ib.set(TotalAmount, this.getTotalAmount(), this.isset_totalAmount);
        return ib.genMapSql();
    }
@@ -176,6 +183,7 @@
        ub.set(Counts, this.getCounts(), this.isset_counts);
        ub.set(GoodsUserName, this.getGoodsUserName(), this.isset_goodsUserName);
        ub.set(Beiz, this.getBeiz(), this.isset_beiz);
        ub.set(TotalAmount, this.getTotalAmount(), this.isset_totalAmount);
        ub.where(this.getPkName_(), this.getPkValue_());
        return ub.genMapSql();
    }
@@ -200,6 +208,7 @@
        ub.set(Counts, this.getCounts(), this.isset_counts);
        ub.set(GoodsUserName, this.getGoodsUserName(), this.isset_goodsUserName);
        ub.set(Beiz, this.getBeiz(), this.isset_beiz);
        ub.set(TotalAmount, this.getTotalAmount(), this.isset_totalAmount);
        return ub.genMapSql(where, parameters);
    }
@@ -223,6 +232,7 @@
        ub.set(Counts, this.getCounts(), this.isset_counts);
        ub.set(GoodsUserName, this.getGoodsUserName(), this.isset_goodsUserName);
        ub.set(Beiz, this.getBeiz(), this.isset_beiz);
        ub.set(TotalAmount, this.getTotalAmount(), this.isset_totalAmount);
        return ub.genArraySql(where, parameters);
    }
@@ -270,9 +280,7 @@
     */
    @Override
    public SqlAndParameters<Map<String, Object>> getSelectSql_(String where, Map<String, Object> parameters) {
        return new SqlAndParameters<>(
            "select id, using_form_back_id, using_form_back_goods_id, base_goods_template_id, base_goods_template_name, classification, unit, base_goods_models_id, base_goods_models_name, procure_model_user_id, initial_count, use_count, counts, goods_user_name, beiz from "
                + this.getTableName_() + " " + where, parameters);
        return new SqlAndParameters<>("select id, using_form_back_id, using_form_back_goods_id, base_goods_template_id, base_goods_template_name, classification, unit, base_goods_models_id, base_goods_models_name, procure_model_user_id, initial_count, use_count, counts, goods_user_name, beiz, total_amount from " + this.getTableName_() + " " + where, parameters);
    }
    /**
@@ -280,9 +288,7 @@
     */
    @Override
    public SqlAndParameters<Object[]> getSelectSql_(String where, Object[] parameters) {
        return new SqlAndParameters<>(
            "select id, using_form_back_id, using_form_back_goods_id, base_goods_template_id, base_goods_template_name, classification, unit, base_goods_models_id, base_goods_models_name, procure_model_user_id, initial_count, use_count, counts, goods_user_name, beiz from "
                + this.getTableName_() + " " + where, parameters);
        return new SqlAndParameters<>("select id, using_form_back_id, using_form_back_goods_id, base_goods_template_id, base_goods_template_name, classification, unit, base_goods_models_id, base_goods_models_name, procure_model_user_id, initial_count, use_count, counts, goods_user_name, beiz, total_amount from " + this.getTableName_() + " " + where, parameters);
    }
    /**
@@ -311,101 +317,109 @@
    @Override
    public UsingFormBackModel mapRow(ResultSet rs, int i) throws SQLException {
        ResultSetUtils resultSetUtils = new ResultSetUtils();
        UsingFormBackModel using_form_back_model = new UsingFormBackModel();
UsingFormBackModel using_form_back_model = new UsingFormBackModel();
        Integer columnIndex;
        //主键
        columnIndex = resultSetUtils.findColumn(rs, UsingFormBackModel_mapper.Id);
        if (columnIndex > 0) {
            using_form_back_model.setId(rs.getLong(columnIndex));
using_form_back_model.setId(rs.getLong(columnIndex));
        }
        //普通属性
        columnIndex = resultSetUtils.findColumn(rs, UsingFormBackModel_mapper.UsingFormBackId);
        if (columnIndex > 0) {
            if (rs.getBigDecimal(columnIndex) == null) {
                using_form_back_model.setUsingFormBackId(null);
using_form_back_model.setUsingFormBackId(null);
            } else {
                using_form_back_model.setUsingFormBackId(rs.getLong(columnIndex));
using_form_back_model.setUsingFormBackId(rs.getLong(columnIndex));
            }
        }
        columnIndex = resultSetUtils.findColumn(rs, UsingFormBackModel_mapper.UsingFormBackGoodsId);
        if (columnIndex > 0) {
            if (rs.getBigDecimal(columnIndex) == null) {
                using_form_back_model.setUsingFormBackGoodsId(null);
using_form_back_model.setUsingFormBackGoodsId(null);
            } else {
                using_form_back_model.setUsingFormBackGoodsId(rs.getLong(columnIndex));
using_form_back_model.setUsingFormBackGoodsId(rs.getLong(columnIndex));
            }
        }
        columnIndex = resultSetUtils.findColumn(rs, UsingFormBackModel_mapper.BaseGoodsTemplateId);
        if (columnIndex > 0) {
            if (rs.getBigDecimal(columnIndex) == null) {
                using_form_back_model.setBaseGoodsTemplateId(null);
using_form_back_model.setBaseGoodsTemplateId(null);
            } else {
                using_form_back_model.setBaseGoodsTemplateId(rs.getLong(columnIndex));
using_form_back_model.setBaseGoodsTemplateId(rs.getLong(columnIndex));
            }
        }
        columnIndex = resultSetUtils.findColumn(rs, UsingFormBackModel_mapper.BaseGoodsTemplateName);
        if (columnIndex > 0) {
            using_form_back_model.setBaseGoodsTemplateName(rs.getString(columnIndex));
using_form_back_model.setBaseGoodsTemplateName(rs.getString(columnIndex));
        }
        columnIndex = resultSetUtils.findColumn(rs, UsingFormBackModel_mapper.Classification);
        if (columnIndex > 0) {
            using_form_back_model.setClassification(rs.getString(columnIndex));
using_form_back_model.setClassification(rs.getString(columnIndex));
        }
        columnIndex = resultSetUtils.findColumn(rs, UsingFormBackModel_mapper.Unit);
        if (columnIndex > 0) {
            using_form_back_model.setUnit(rs.getString(columnIndex));
using_form_back_model.setUnit(rs.getString(columnIndex));
        }
        columnIndex = resultSetUtils.findColumn(rs, UsingFormBackModel_mapper.BaseGoodsModelsId);
        if (columnIndex > 0) {
            if (rs.getBigDecimal(columnIndex) == null) {
                using_form_back_model.setBaseGoodsModelsId(null);
using_form_back_model.setBaseGoodsModelsId(null);
            } else {
                using_form_back_model.setBaseGoodsModelsId(rs.getLong(columnIndex));
using_form_back_model.setBaseGoodsModelsId(rs.getLong(columnIndex));
            }
        }
        columnIndex = resultSetUtils.findColumn(rs, UsingFormBackModel_mapper.BaseGoodsModelsName);
        if (columnIndex > 0) {
            using_form_back_model.setBaseGoodsModelsName(rs.getString(columnIndex));
using_form_back_model.setBaseGoodsModelsName(rs.getString(columnIndex));
        }
        columnIndex = resultSetUtils.findColumn(rs, UsingFormBackModel_mapper.ProcureModelUserId);
        if (columnIndex > 0) {
            if (rs.getBigDecimal(columnIndex) == null) {
                using_form_back_model.setProcureModelUserId(null);
using_form_back_model.setProcureModelUserId(null);
            } else {
                using_form_back_model.setProcureModelUserId(rs.getLong(columnIndex));
using_form_back_model.setProcureModelUserId(rs.getLong(columnIndex));
            }
        }
        columnIndex = resultSetUtils.findColumn(rs, UsingFormBackModel_mapper.InitialCount);
        if (columnIndex > 0) {
            if (rs.getBigDecimal(columnIndex) == null) {
                using_form_back_model.setInitialCount(null);
using_form_back_model.setInitialCount(null);
            } else {
                using_form_back_model.setInitialCount(rs.getInt(columnIndex));
using_form_back_model.setInitialCount(rs.getInt(columnIndex));
            }
        }
        columnIndex = resultSetUtils.findColumn(rs, UsingFormBackModel_mapper.UseCount);
        if (columnIndex > 0) {
            if (rs.getBigDecimal(columnIndex) == null) {
                using_form_back_model.setUseCount(null);
using_form_back_model.setUseCount(null);
            } else {
                using_form_back_model.setUseCount(rs.getInt(columnIndex));
using_form_back_model.setUseCount(rs.getInt(columnIndex));
            }
        }
        columnIndex = resultSetUtils.findColumn(rs, UsingFormBackModel_mapper.Counts);
        if (columnIndex > 0) {
            if (rs.getBigDecimal(columnIndex) == null) {
                using_form_back_model.setCounts(null);
using_form_back_model.setCounts(null);
            } else {
                using_form_back_model.setCounts(rs.getInt(columnIndex));
using_form_back_model.setCounts(rs.getInt(columnIndex));
            }
        }
        columnIndex = resultSetUtils.findColumn(rs, UsingFormBackModel_mapper.GoodsUserName);
        if (columnIndex > 0) {
            using_form_back_model.setGoodsUserName(rs.getString(columnIndex));
using_form_back_model.setGoodsUserName(rs.getString(columnIndex));
        }
        columnIndex = resultSetUtils.findColumn(rs, UsingFormBackModel_mapper.Beiz);
        if (columnIndex > 0) {
            using_form_back_model.setBeiz(rs.getString(columnIndex));
using_form_back_model.setBeiz(rs.getString(columnIndex));
        }
        columnIndex = resultSetUtils.findColumn(rs, UsingFormBackModel_mapper.TotalAmount);
        if (columnIndex > 0) {
            if (rs.getBigDecimal(columnIndex) == null) {
using_form_back_model.setTotalAmount(null);
            } else {
using_form_back_model.setTotalAmount(rs.getInt(columnIndex));
            }
        }
        return using_form_back_model;
    }