futian.liu
2023-12-22 3e9a4b3480e6508f3c6f7ac8723509d8b1120d20
代码整理
13 文件已重命名
8个文件已添加
5个文件已删除
16个文件已修改
2081 ■■■■■ 已修改文件
consum-base/src/main/java/com/consum/base/controller/DepFormScrappedController.java 196 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/controller/LWarehouseFlowController.java 41 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/controller/LWhFormOutputController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/controller/LWhFormProcureController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/controller/LWhFormTransferController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/controller/LWhGoodsStatisticsController.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/controller/LWhWarningConfigController.java 52 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/controller/LWhWarningController.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/core/CheckUsingParam.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/core/CheckUsingResult.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/core/CheckWarehouseResult.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/DepFormScrappedService.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/GoodsBaseService.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/GoodsBaseServiceImpl.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/LGoodsUserRecordCoreService.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/LOrgSupplierServiceImpl.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/LWarehouseFlowService.java 469 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/LWhGoodsStatisticsService.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/LWhGoodsStatisticsServiceImpl.java 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/LWhWarningConfigService.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/LWhWarningService.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/SDictDataService.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/core/DepFormScrappedCoreService.java 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/core/DepUsingFormBackCoreService.java 159 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/core/LWarehouseFlowCoreService.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/core/LWhFormInventoryCoreService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/core/LWhFormOutputCoreService.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/core/LWhFormProcureCoreService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/core/LWhFormScrappedCoreService.java 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/core/LWhFormTransferCoreService.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/core/LWhWarningCoreService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/impl/BaseWarehouseServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/impl/DepFormScrappedServiceImpl.java 201 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/impl/GoodsBaseServiceImpl.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/impl/LWhFormInventoryServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/impl/LWhFormOutputServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/impl/LWhFormScrappedServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/impl/LWhGoodsStatisticsServiceImpl.java 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/impl/LWhWarningConfigServiceImpl.java 59 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/impl/LWhWarningServiceImpl.java 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/impl/SDictDataServiceImpl.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/impl/UsingFormBackServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/controller/DepFormScrappedController.java
@@ -1,38 +1,41 @@
package com.consum.base.controller;
import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.entity.TemplateExportParams;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ReflectUtil;
import com.consum.base.BaseController;
import com.consum.base.core.utils.CommonUtil;
import com.consum.base.pojo.LDeptFormScrappedParam;
import com.consum.base.pojo.query.LDeptFormScrappedQry;
import com.consum.base.service.DepFormScrappedServiceImpl;
import com.consum.model.po.FinSysTenantUser;
import com.walker.db.page.GenericPager;
import com.walker.infrastructure.utils.CollectionUtils;
import com.walker.infrastructure.utils.DateUtils;
import com.walker.infrastructure.utils.StringUtils;
import com.walker.web.ResponseValue;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.apache.poi.ss.usermodel.Workbook;
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;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import org.apache.poi.ss.usermodel.Workbook;
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;
import com.consum.base.BaseController;
import com.consum.base.core.utils.CommonUtil;
import com.consum.base.pojo.LDeptFormScrappedParam;
import com.consum.base.pojo.query.LDeptFormScrappedQry;
import com.consum.base.service.DepFormScrappedService;
import com.consum.model.po.FinSysTenantUser;
import com.walker.db.page.GenericPager;
import com.walker.infrastructure.utils.CollectionUtils;
import com.walker.infrastructure.utils.DateUtils;
import com.walker.infrastructure.utils.StringUtils;
import com.walker.web.ResponseValue;
import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.entity.TemplateExportParams;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ReflectUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
/**
 * @ClassName DepFormScrappedController
@@ -46,11 +49,11 @@
@RequestMapping("/pc/l/wh/form/scrapped")
public class DepFormScrappedController extends BaseController {
    @Resource
    private DepFormScrappedServiceImpl depFormScrappedService;
    private DepFormScrappedService depFormScrappedService;
    @ApiOperation(value = "新增报废单", notes = "新增报废单")
    @PostMapping("/deptAdd")
    public ResponseValue deptAdd() {
    public ResponseValue deptAdd() throws Exception {
        LDeptFormScrappedParam param = CommonUtil.getObjFromReqBody(LDeptFormScrappedParam.class);
        LDeptFormScrappedParam query = new LDeptFormScrappedParam();
        CommonUtil.copyProperties(param, query);
@@ -58,18 +61,17 @@
        FinSysTenantUser sysInfo = this.getSysInfo();
        return depFormScrappedService.add(param, this.getCurrentUser(), sysInfo);
        depFormScrappedService.add(param, this.getCurrentUser(), sysInfo);
        return ResponseValue.success();
    }
    /**
     * @Description 列表查询
     * 1.查询报废单 2.查询报废单物品
     * @Description 列表查询 1.查询报废单 2.查询报废单物品
     * @Date
     */
    @ApiOperation(value = "列表查询", notes = "列表查询")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "param", value = "查询条件", dataType = "LWhFormScrappedQry", paramType = "query")
    })
        @ApiImplicitParam(name = "param", value = "查询条件", dataType = "LWhFormScrappedQry", paramType = "query")})
    @GetMapping("/deptList")
    public ResponseValue queryList() {
        LDeptFormScrappedQry param = CommonUtil.getObjFromReq(LDeptFormScrappedQry.class);
@@ -120,7 +122,7 @@
            } else {
                // 如果id在合并数据中已存在,则将k3追加到已存在记录的k3列表中
                Map<String, Object> mergedMap = mergedDataMap.get(id);
                ArrayList<HashMap> goodsList = (ArrayList<HashMap>) mergedMap.get("goods");
                ArrayList<HashMap> goodsList = (ArrayList<HashMap>)mergedMap.get("goods");
                goodsList.add(hashMap);
            }
        }
@@ -132,9 +134,7 @@
     * @Description 根据id查询详情
     */
    @ApiOperation(value = "根据id查询详情", notes = "根据id查询详情")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "id", value = "报废单id", dataType = "Long", paramType = "query")
    })
    @ApiImplicitParams({@ApiImplicitParam(name = "id", value = "报废单id", dataType = "Long", paramType = "query")})
    @GetMapping("/deptDetail")
    public ResponseValue getById(Long id) {
        if (id == null) {
@@ -144,9 +144,7 @@
    }
    @ApiOperation(value = "导出报废单", notes = "导出报废单")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "id", value = "报废单id", dataType = "Long", paramType = "query")
    })
    @ApiImplicitParams({@ApiImplicitParam(name = "id", value = "报废单id", dataType = "Long", paramType = "query")})
    @GetMapping("/deptList/export")
    public void export(Long id, HttpServletResponse response) throws Exception {
        if (id == null) {
@@ -226,62 +224,62 @@
        return ResponseValue.success(depFormScrappedService.listByModel2(param));
    }
//    public static void main(String[] args) {
//        TemplateExportParams exportParams = new TemplateExportParams("D:\\MyProjects\\jmy\\低值易耗品\\low-consum-manage\\deploy-jar-single\\src\\main\\resources\\import\\deptScrapped.xlsx");
//        exportParams.setHeadingStartRow(2);
//
//        List<Map<String, Object>> export = new ArrayList<>();
//
//        // 创建第一条数据
//        Map<String, Object> data1 = new HashMap<>();
//        data1.put("agencyName", 1);
//        data1.put("baseGoodsTemplateName", "Bob");
//        data1.put("scrappedName", "Bob");
//        data1.put("bz", "Bob");
//        data1.put("baseGoodsModelsName", 30);
//        data1.put("counts", 30);
//        data1.put("totalPrice", 30);
//        export.add(data1);
//
//        // 创建第二条数据
//        Map<String, Object> data2 = new HashMap<>();
//        data2.put("agencyName", 2);
//        data2.put("baseGoodsTemplateName", "Bob");
//        data2.put("scrappedName", "Bob");
//        data2.put("bz", "Bob");
//        data2.put("baseGoodsModelsName", 30);
//        data2.put("counts", 30);
//        data2.put("totalPrice", 30);
//        export.add(data2);
//
//
//        Map<String, Object> map = new HashMap<>();
//        map.put("code", "2023");
//        map.put("date", "2023");
//        map.put("name", "operatorName");
//        map.put("countNum", 0);
//        map.put("totalAmount", 0);
//        map.put("maplist", export);
//
//        Workbook workbook = ExcelExportUtil.exportExcel(exportParams, map);
//
//        File file = new File("C:\\Users\\cy\\Desktop\\新建文件夹");
//        OutputStream stream = null;
//        try {
//            SimpleDateFormat sdf = new SimpleDateFormat("yyyy_MM_dd");
//            stream = new FileOutputStream(new File(file, "机构客户信息表.xls"));
//            //document.write(stream);
//            workbook.write(stream);
//        } catch (Exception e) {
//            e.printStackTrace();
//        } finally {
//            if (stream != null) ;
//            try {
//                stream.close();
//            } catch (IOException e) {
//                e.printStackTrace();
//            }
//        }
//    }
    // public static void main(String[] args) {
    // TemplateExportParams exportParams = new
    // TemplateExportParams("D:\\MyProjects\\jmy\\低值易耗品\\low-consum-manage\\deploy-jar-single\\src\\main\\resources\\import\\deptScrapped.xlsx");
    // exportParams.setHeadingStartRow(2);
    //
    // List<Map<String, Object>> export = new ArrayList<>();
    //
    // // 创建第一条数据
    // Map<String, Object> data1 = new HashMap<>();
    // data1.put("agencyName", 1);
    // data1.put("baseGoodsTemplateName", "Bob");
    // data1.put("scrappedName", "Bob");
    // data1.put("bz", "Bob");
    // data1.put("baseGoodsModelsName", 30);
    // data1.put("counts", 30);
    // data1.put("totalPrice", 30);
    // export.add(data1);
    //
    // // 创建第二条数据
    // Map<String, Object> data2 = new HashMap<>();
    // data2.put("agencyName", 2);
    // data2.put("baseGoodsTemplateName", "Bob");
    // data2.put("scrappedName", "Bob");
    // data2.put("bz", "Bob");
    // data2.put("baseGoodsModelsName", 30);
    // data2.put("counts", 30);
    // data2.put("totalPrice", 30);
    // export.add(data2);
    //
    //
    // Map<String, Object> map = new HashMap<>();
    // map.put("code", "2023");
    // map.put("date", "2023");
    // map.put("name", "operatorName");
    // map.put("countNum", 0);
    // map.put("totalAmount", 0);
    // map.put("maplist", export);
    //
    // Workbook workbook = ExcelExportUtil.exportExcel(exportParams, map);
    //
    // File file = new File("C:\\Users\\cy\\Desktop\\新建文件夹");
    // OutputStream stream = null;
    // try {
    // SimpleDateFormat sdf = new SimpleDateFormat("yyyy_MM_dd");
    // stream = new FileOutputStream(new File(file, "机构客户信息表.xls"));
    // //document.write(stream);
    // workbook.write(stream);
    // } catch (Exception e) {
    // e.printStackTrace();
    // } finally {
    // if (stream != null) ;
    // try {
    // stream.close();
    // } catch (IOException e) {
    // e.printStackTrace();
    // }
    // }
    // }
}
consum-base/src/main/java/com/consum/base/controller/LWarehouseFlowController.java
@@ -1,6 +1,16 @@
package com.consum.base.controller;
import cn.hutool.core.util.ReflectUtil;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Map;
import javax.annotation.Resource;
import org.apache.commons.compress.utils.Lists;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.consum.base.BaseController;
import com.consum.base.core.utils.CommonUtil;
import com.consum.base.core.utils.MapUtils;
@@ -11,16 +21,9 @@
import com.iplatform.model.po.S_user_core;
import com.walker.db.page.GenericPager;
import com.walker.web.ResponseValue;
import io.swagger.annotations.Api;
import org.apache.commons.compress.utils.Lists;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Map;
import cn.hutool.core.util.ReflectUtil;
import io.swagger.annotations.Api;
/**
 * @ClassName lWarehouseFlowController
@@ -34,7 +37,7 @@
public class LWarehouseFlowController extends BaseController {
    @Resource
    private LWarehouseFlowService lWarehouseFlowService;
    private LWarehouseFlowService lWarehouseFlowServiceImpl;
    @GetMapping("/list")
    public ResponseValue queryFormProcureList() {
@@ -47,16 +50,17 @@
        if (currentUser == null) {
            return ResponseValue.error("登录用户信息不存在");
        }
        GenericPager<Map<String, Object>> genericPager = lWarehouseFlowService.queryBusinessFlow(param);
        GenericPager<Map<String, Object>> genericPager = lWarehouseFlowServiceImpl.queryBusinessFlow(param);
        ArrayList<WarehouseFlowVO> result = Lists.newArrayList();
        genericPager.getDatas().forEach(map -> {
            WarehouseFlowVO warehouseFlowVO = MapUtils.convertMapToObj(MapUtils.toReplaceKeyLow(map), WarehouseFlowVO.class);
            WarehouseFlowVO warehouseFlowVO =
                MapUtils.convertMapToObj(MapUtils.toReplaceKeyLow(map), WarehouseFlowVO.class);
            result.add(warehouseFlowVO);
        });
        try {
            Field fieldDatas = GenericPager.class.getDeclaredField("datas");
//            fieldDatas.setAccessible(true);
//            fieldDatas.set(genericPager, result);
            // fieldDatas.setAccessible(true);
            // fieldDatas.set(genericPager, result);
            ReflectUtil.setFieldValue(genericPager, fieldDatas, result);
        } catch (Exception e) {
            logger.error(e.getMessage(), e);
@@ -64,7 +68,6 @@
        return ResponseValue.success(genericPager);
    }
    @GetMapping("/detail/list")
    public ResponseValue queryFormProcureList1() {
@@ -76,7 +79,7 @@
        if (currentUser == null) {
            return ResponseValue.error("登录用户信息不存在");
        }
        GenericPager<Map<String, Object>> genericPager = lWarehouseFlowService.queryBusinessFlow(param);
        GenericPager<Map<String, Object>> genericPager = lWarehouseFlowServiceImpl.queryBusinessFlow(param);
        return ResponseValue.success(genericPager);
    }
@@ -97,7 +100,7 @@
        if (paramAgencyId == null || !paramAgencyId.toString().startsWith(tenantId)) {
            param.setAgencyId(Long.valueOf(tenantId));
        }
        GenericPager<Map<String, Object>> genericPager = lWarehouseFlowService.queryTaiZhangList(param);
        GenericPager<Map<String, Object>> genericPager = lWarehouseFlowServiceImpl.queryTaiZhangList(param);
        return ResponseValue.success(genericPager);
    }
@@ -123,7 +126,7 @@
        if (paramAgencyId == null || !paramAgencyId.toString().startsWith(tenantId)) {
            param.setAgencyId(Long.valueOf(tenantId));
        }
        GenericPager<Map<String, Object>> genericPager = lWarehouseFlowService.queryDeptTaiZhangList(param);
        GenericPager<Map<String, Object>> genericPager = lWarehouseFlowServiceImpl.queryDeptTaiZhangList(param);
        return ResponseValue.success(genericPager);
    }
consum-base/src/main/java/com/consum/base/controller/LWhFormOutputController.java
@@ -70,7 +70,7 @@
    @Autowired
    private LWhProcureModelService lWhProcureModelService;
    @Resource
    private LWarehouseFlowService lWarehouseFlowService;
    private LWarehouseFlowService lWarehouseFlowServiceImpl;
    /**
     * @Description 新增出库单
@@ -208,7 +208,7 @@
            return ResponseValue.error("登录用户信息不存在");
        }
        formOutputQry.setAgencyId(Long.valueOf(currentUser.getTenantId()));
        PageUtil genericPager = lWarehouseFlowService.queryAllBusinessFlow(formOutputQry);
        PageUtil genericPager = lWarehouseFlowServiceImpl.queryAllBusinessFlow(formOutputQry);
        return ResponseValue.success(genericPager);
    }
consum-base/src/main/java/com/consum/base/controller/LWhFormProcureController.java
@@ -43,7 +43,7 @@
import com.consum.base.service.LWhFormProcureGoodsService;
import com.consum.base.service.LWhFormProcureService;
import com.consum.base.service.LWhProcureModelService;
import com.consum.base.service.impl.LWhFormProcureCoreService;
import com.consum.base.service.core.LWhFormProcureCoreService;
import com.consum.model.po.BaseCategory;
import com.consum.model.po.FinSysTenantUser;
import com.consum.model.po.LWhFormProcure;
consum-base/src/main/java/com/consum/base/controller/LWhFormTransferController.java
@@ -50,7 +50,7 @@
import com.consum.base.service.LWhProcureModelService;
import com.consum.base.service.LWhProcureModelUserRecordService;
import com.consum.base.service.LWhProcureModelUserService;
import com.consum.base.service.impl.LWhFormTransferCoreService;
import com.consum.base.service.core.LWhFormTransferCoreService;
import com.consum.model.po.BaseWarehouse;
import com.consum.model.po.FinSysTenantUser;
import com.consum.model.po.LWhFormTransfer;
@@ -238,7 +238,9 @@
            return ResponseValue.error("登录用户信息不存在");
        }
        String tenantId = sysInfo.getTenantId();
        param.setInAgencyId(Long.valueOf(tenantId));
        if (param.getInAgencyId() == null) {
            param.setInAgencyId(Long.valueOf(tenantId));
        }
        GenericPager<Map<String, Object>> mapGenericPager = lWhFormTransferService.queryFormTransferDetailList(param);
        return ResponseValue.success(mapGenericPager);
consum-base/src/main/java/com/consum/base/controller/LWhGoodsStatisticsController.java
@@ -1,18 +1,20 @@
package com.consum.base.controller;
import com.consum.base.BaseController;
import com.consum.base.core.utils.CommonUtil;
import com.consum.base.pojo.query.LWhGoodsStatisQry;
import com.consum.base.service.LWhGoodsStatisticsServiceImpl;
import com.consum.model.po.FinSysTenantUser;
import com.iplatform.model.po.S_user_core;
import com.walker.web.ResponseValue;
import io.swagger.annotations.Api;
import javax.annotation.Resource;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import com.consum.base.BaseController;
import com.consum.base.core.utils.CommonUtil;
import com.consum.base.pojo.query.LWhGoodsStatisQry;
import com.consum.base.service.LWhGoodsStatisticsService;
import com.consum.model.po.FinSysTenantUser;
import com.iplatform.model.po.S_user_core;
import com.walker.web.ResponseValue;
import io.swagger.annotations.Api;
/**
 * @ClassName LWhGoodsStatisticsController
@@ -27,7 +29,7 @@
public class LWhGoodsStatisticsController extends BaseController {
    @Resource
    private LWhGoodsStatisticsServiceImpl lWhGoodsStatisticsService;
    private LWhGoodsStatisticsService lWhGoodsStatisticsService;
    @GetMapping("")
    public ResponseValue getWhGoodsStatisList() {
consum-base/src/main/java/com/consum/base/controller/LWhWarningConfigController.java
@@ -1,28 +1,5 @@
package com.consum.base.controller;
import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.entity.ImportParams;
import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult;
import cn.hutool.core.convert.Convert;
import com.consum.base.BaseController;
import com.consum.base.handler.WhWarningImportVerifyHandler;
import com.consum.base.core.utils.CommonUtil;
import com.consum.base.core.utils.IdUtil;
import com.consum.base.pojo.WarnConfImEntity;
import com.consum.base.pojo.WhWarningConfigParam;
import com.consum.base.pojo.query.WhWarningConfigQry;
import com.consum.base.service.BaseWarehouseService;
import com.consum.base.service.LWhWarningConfigServiceImpl;
import com.consum.model.po.BaseWarehouse;
import com.consum.model.po.FinSysTenantUser;
import com.consum.model.po.WhWarningConfig;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.walker.db.page.GenericPager;
import com.walker.file.FileInfo;
import com.walker.infrastructure.utils.NumberGenerator;
import com.walker.web.ResponseCode;
import com.walker.web.ResponseValue;
import io.swagger.annotations.Api;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
@@ -32,7 +9,9 @@
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import org.apache.commons.lang3.StringUtils;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.InputStreamResource;
@@ -48,6 +27,31 @@
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import com.consum.base.BaseController;
import com.consum.base.core.utils.CommonUtil;
import com.consum.base.core.utils.IdUtil;
import com.consum.base.handler.WhWarningImportVerifyHandler;
import com.consum.base.pojo.WarnConfImEntity;
import com.consum.base.pojo.WhWarningConfigParam;
import com.consum.base.pojo.query.WhWarningConfigQry;
import com.consum.base.service.BaseWarehouseService;
import com.consum.base.service.LWhWarningConfigService;
import com.consum.model.po.BaseWarehouse;
import com.consum.model.po.FinSysTenantUser;
import com.consum.model.po.WhWarningConfig;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.walker.db.page.GenericPager;
import com.walker.file.FileInfo;
import com.walker.infrastructure.utils.NumberGenerator;
import com.walker.web.ResponseCode;
import com.walker.web.ResponseValue;
import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.entity.ImportParams;
import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult;
import cn.hutool.core.convert.Convert;
import io.swagger.annotations.Api;
/**
 * @ClassName LWhWarningConfigController
 * @Author cy
@@ -61,7 +65,7 @@
public class LWhWarningConfigController extends BaseController {
    @Resource
    private LWhWarningConfigServiceImpl lWhWarningConfigService;
    private LWhWarningConfigService lWhWarningConfigService;
    @Resource
    private BaseWarehouseService baseWarehouseService;
    private ObjectMapper mapper = new ObjectMapper();
consum-base/src/main/java/com/consum/base/controller/LWhWarningController.java
@@ -1,21 +1,24 @@
package com.consum.base.controller;
import com.consum.base.BaseController;
import com.consum.base.core.service.LWhWarningCoreServiceImpl;
import com.consum.base.core.utils.CommonUtil;
import com.consum.base.pojo.query.WhWarningQry;
import com.consum.base.service.LWhWarningServiceImpl;
import com.consum.model.po.FinSysTenantUser;
import com.walker.db.page.GenericPager;
import com.walker.infrastructure.utils.DateUtils;
import com.walker.web.ResponseValue;
import io.swagger.annotations.Api;
import java.util.Map;
import javax.annotation.Resource;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.Map;
import com.consum.base.BaseController;
import com.consum.base.service.core.LWhWarningCoreService;
import com.consum.base.core.utils.CommonUtil;
import com.consum.base.pojo.query.WhWarningQry;
import com.consum.base.service.LWhWarningService;
import com.consum.model.po.FinSysTenantUser;
import com.walker.db.page.GenericPager;
import com.walker.infrastructure.utils.DateUtils;
import com.walker.web.ResponseValue;
import io.swagger.annotations.Api;
/**
 * @ClassName LWhWarningConfigController
@@ -30,7 +33,10 @@
public class LWhWarningController extends BaseController {
    @Resource
    private LWhWarningServiceImpl lWhWarningService;
    private LWhWarningService lWhWarningService;
    @Resource
    private LWhWarningCoreService lWhWarningCoreService;
    @GetMapping("/getWarningTypeNum")
    public ResponseValue getWarningTypeNum() {
@@ -78,8 +84,6 @@
    }
    @Resource
    private LWhWarningCoreServiceImpl lWhWarningCoreService;
    @GetMapping("/handerChenKuCun")
consum-base/src/main/java/com/consum/base/core/CheckUsingParam.java
File was deleted
consum-base/src/main/java/com/consum/base/core/CheckUsingResult.java
File was deleted
consum-base/src/main/java/com/consum/base/core/CheckWarehouseResult.java
File was deleted
consum-base/src/main/java/com/consum/base/service/DepFormScrappedService.java
New file
@@ -0,0 +1,32 @@
package com.consum.base.service;
import java.util.List;
import java.util.Map;
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.FinSysTenantUser;
import com.iplatform.model.po.S_user_core;
import com.walker.db.page.GenericPager;
import com.walker.jdbc.service.BaseService;
/**
 * DepFormScrappedService
 *
 * @author asus
 * @version 2023/12/22 10:48
 **/
public interface DepFormScrappedService extends BaseService {
    void add(LDeptFormScrappedParam param, S_user_core currentUser, FinSysTenantUser sysInfo) throws Exception;
    GenericPager<Map<String, Object>> queryList(LDeptFormScrappedQry param);
    DepFormScrappedExtendVo getById(Long id);
    List<Map<String, Object>> export(Long id, String agencyId);
    List<Map<String, Object>> listByModel(LDeptFormScrappedQry param);
    GenericPager<Map<String, Object>> listByModel2(LDeptFormScrappedQry param);
}
consum-base/src/main/java/com/consum/base/service/GoodsBaseService.java
New file
@@ -0,0 +1,13 @@
package com.consum.base.service;
import com.walker.jdbc.service.BaseService;
/**
 * GoodsBaseService
 *
 * @author asus
 * @version 2023/12/22 11:07
 **/
public interface GoodsBaseService extends BaseService {
}
consum-base/src/main/java/com/consum/base/service/GoodsBaseServiceImpl.java
File was deleted
consum-base/src/main/java/com/consum/base/service/LGoodsUserRecordCoreService.java
@@ -1,20 +1,22 @@
package com.consum.base.service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.util.CollectionUtils;
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.LWhFormTransfer;
import com.consum.model.po.LWhProcureModelUser;
import com.consum.model.po.LWhProcureModelUserRecord;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
/**
 * @ClassName LGoodsUserRecordCoreService
@@ -27,7 +29,7 @@
public class LGoodsUserRecordCoreService {
    @Resource
    private GoodsBaseServiceImpl goodsBaseService;
    private GoodsBaseService goodsBaseService;
    @Resource
    private LWhGoodsService lWhGoodsService;
    @Resource
consum-base/src/main/java/com/consum/base/service/LOrgSupplierServiceImpl.java
@@ -1,18 +1,20 @@
package com.consum.base.service;
import com.walker.jdbc.service.BaseServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import com.walker.jdbc.service.BaseServiceImpl;
import lombok.extern.slf4j.Slf4j;
/**
 * @ClassName LOrgSupplierServiceImpl
 *
 * @Date 2023/11/1
 * @Description
 * @Version 1.0
consum-base/src/main/java/com/consum/base/service/LWarehouseFlowService.java
@@ -1,465 +1,26 @@
package com.consum.base.service;
import com.consum.base.core.WhBusinessEnum;
import com.consum.base.core.type.MixType;
import com.consum.base.core.utils.*;
import com.consum.base.pojo.LWarehouseFlowParam;
import com.consum.base.pojo.query.LWhFormOutputQry;
import com.consum.base.pojo.response.OutAndInDetailVO;
import com.walker.db.page.GenericPager;
import com.walker.infrastructure.utils.StringUtils;
import com.walker.jdbc.service.BaseServiceImpl;
import org.apache.commons.compress.utils.Lists;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.consum.base.core.utils.PageUtil;
import com.consum.base.pojo.LWarehouseFlowParam;
import com.consum.base.pojo.query.LWhFormOutputQry;
import com.walker.db.page.GenericPager;
import com.walker.jdbc.service.BaseService;
/**
 * @ClassName LWarehouseFlowService
 * @Date 2023/10/25
 * @Description
 * @Version 1.0
 * LWarehouseFlowService
 *
 * @author asus
 * @version 2023/12/22 11:01
 **/
@Service
public class LWarehouseFlowService extends BaseServiceImpl {
public interface LWarehouseFlowService extends BaseService {
    /**
     * 查询明细
     *
     * @param param
     * @return
     */
    private String QUERY_BUSINESS_FLOW = "SELECT flow.BUSINESS_TYPE,flow.BUSINESS_FORM_ID,CASE WHEN flow.BUSINESS_TYPE=1 THEN tCaiGou.BUSINESS_FORM_CODE WHEN flow.BUSINESS_TYPE=3 THEN tFormOut.BUSINESS_FORM_CODE END BUSINESS_FORM_CODE,record.GOODS_TEMPLATE_NAME,record.BASE_GOODS_MODELS_NAME,record.THIS_COUNT,record.THIS_TYPE,record.total_price,CASE WHEN flow.BUSINESS_TYPE=1 THEN tCaiGou.AGENCY_NAME WHEN flow.BUSINESS_TYPE=3 THEN tFormOut.AGENCY_NAME END AGENCY_NAME,CASE WHEN flow.BUSINESS_TYPE=1 THEN tCaiGou.BUYER_NAME WHEN flow.BUSINESS_TYPE=3 THEN tFormOut.OPERATOR_NAME END created_Name,flow.DEAL_TIME deal_Time FROM L_WAREHOUSE_FLOW flow LEFT JOIN L_WH_GOODS_RECORD record ON flow.id=record.WAREHOUSE_FLOW_ID LEFT JOIN L_WH_FORM_PROCURE tCaiGou ON flow.BUSINESS_TYPE=1 AND tCaiGou.id=flow.BUSINESS_FORM_ID LEFT JOIN L_WH_FORM_OUTPUT tFormOut ON flow.BUSINESS_TYPE=3 AND tFormOut.id=flow.BUSINESS_FORM_ID WHERE 1=1 ";
    GenericPager<Map<String, Object>> queryBusinessFlow(LWarehouseFlowParam param);
    public GenericPager<Map<String, Object>> queryBusinessFlow(LWarehouseFlowParam param) {
        StringBuilder sql = new StringBuilder(QUERY_BUSINESS_FLOW);
        Map<String, Object> paramts = new HashMap<>();
//        ArrayList<Object> params = new ArrayList<>();
        if (param.getBusinessType() != null) {
            sql.append(" and flow.BUSINESS_TYPE =:businessType");
            paramts.put("businessType", param.getBusinessType());
//            sql.append(" and flow.BUSINESS_TYPE =?");
//            params.add(param.getBusinessType());
        }
        if (StringUtils.isNotEmpty(param.getBusinessFormCode())) {
            sql.append(" AND CASE WHEN flow.BUSINESS_TYPE = 1 THEN tCaiGou.BUSINESS_FORM_CODE=:businessFormCode"
                    + " WHEN flow.BUSINESS_TYPE = 3 THEN tFormOut.BUSINESS_FORM_CODE=:businessFormCode END");
            paramts.put("businessFormCode", param.getBusinessFormCode());
//            sql.append(" AND CASE WHEN flow.BUSINESS_TYPE = 1 THEN flow.BUSINESS_FORM_CODE=?");
//            params.add(param.getBusinessFormCode());
        }
        if (param.getGoodsTemplateName() != null) {
            sql.append(" AND record.GOODS_TEMPLATE_NAME like :goodsTemplateName");
            paramts.put("goodsTemplateName", StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT);
//            sql.append(" AND record.GOODS_TEMPLATE_NAME like ?");
//            params.add(StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT);
        }
        if (param.getBaseGoodsModelsName() != null) {
            sql.append(" AND record.BASE_GOODS_MODELS_NAME like :baseGoodsModelsName");
            paramts.put("baseGoodsModelsName", StringUtils.CHAR_PERCENT + param.getBaseGoodsModelsName() + StringUtils.CHAR_PERCENT);
        }
        if (param.getAgencyId() != null) {
            sql.append(" AND tCaiGou.AGENCY_id=:agencyId");
            paramts.put("agencyId", param.getAgencyId());
        }
        if (param.getCreatedName() != null) {
            sql.append(" AND CASE" + " WHEN flow.BUSINESS_TYPE = 1 THEN tCaiGou.BUYER_NAME LIKE :createdName"
                    + " WHEN flow.BUSINESS_TYPE = 3 THEN tFormOut.OPERATOR_NAME LIKE :createdName END");
            paramts.put("createdName", StringUtils.CHAR_PERCENT + param.getCreatedName() + StringUtils.CHAR_PERCENT);
        }
        if (param.getDealTimeStart() != null) {
            sql.append(" and flow.DEAL_TIME >=:dealTimeStart ");
            paramts.put("dealTimeStart", param.getDealTimeStart() * 1000000);
        }
        if (param.getDealTimeEnd() != null) {
            sql.append(" and flow.DEAL_TIME <:dealTimeEnd ");
            paramts.put("dealTimeEnd", param.getDealTimeEnd() * 1000000 + 240000);
        }
        return selectSplit(sql.toString(), paramts, param.getPageNum(), param.getPageSize(), new MapRowMapper());
    }
    GenericPager<Map<String, Object>> queryTaiZhangList(LWarehouseFlowParam param);
    GenericPager<Map<String, Object>> queryDeptTaiZhangList(LWarehouseFlowParam param);
    /**
     * 台账查询
     *
     * @param param
     * @return
     */
    private String QUERY_TAIZHANG_LIST_QUERY = "SELECT CASE WHEN flow.BUSINESS_TYPE=1 THEN tCaiGou.AGENCY_NAME WHEN ( flow.BUSINESS_TYPE = 2 OR flow.BUSINESS_TYPE = 4 ) and flow.THIS_TYPE=1  THEN tTrans.IN_AGENCY_NAME WHEN ( flow.BUSINESS_TYPE = 2 OR flow.BUSINESS_TYPE = 4 ) and flow.THIS_TYPE=2  THEN tTrans.OUT_AGENCY_NAME WHEN flow.BUSINESS_TYPE=3 THEN tFormOut.AGENCY_NAME WHEN flow.BUSINESS_TYPE=5 THEN tScrapped.AGENCY_NAME WHEN flow.BUSINESS_TYPE = 6 THEN tBack.AGENCY_NAME WHEN flow.BUSINESS_TYPE=7 THEN tInventory.AGENCY_NAME END AGENCY_NAME,ware.WAREHOUSE_NAME,record.GOODS_TEMPLATE_NAME,record.BASE_GOODS_MODELS_NAME,record.THIS_TYPE,flow.BUSINESS_TYPE,CASE WHEN flow.BUSINESS_TYPE=1 THEN tCaiGou.BUSINESS_FORM_CODE WHEN (flow.BUSINESS_TYPE=2 OR flow.BUSINESS_TYPE=4) THEN tTrans.BUSINESS_FORM_CODE WHEN flow.BUSINESS_TYPE=3 THEN tFormOut.BUSINESS_FORM_CODE WHEN flow.BUSINESS_TYPE=5 THEN tScrapped.BUSINESS_FORM_CODE WHEN flow.BUSINESS_TYPE = 6 THEN tBack.BUSINESS_FORM_CODE  WHEN flow.BUSINESS_TYPE=7 THEN tInventory.BUSINESS_FORM_CODE END BUSINESS_FORM_CODe,record.THIS_COUNT,record.INITIAL_COUNT,record.END_COUNT,flow.DEAL_TIME,CASE WHEN flow.BUSINESS_TYPE=2 AND tTrans.STATES=1 THEN record.THIS_COUNT ELSE 0 END zai_Tu_Count FROM (SELECT*FROM BASE_WAREHOUSE WHERE 1=1 ";
    private String QUERY_TAIZHANG_LIST_RECORD = ")ware LEFT JOIN L_WAREHOUSE_FLOW flow ON ware.id=flow.WAREHOUSE_ID AND flow.WAREHOUSE_TYPE=0 LEFT JOIN L_WH_GOODS_RECORD record ON flow.id=record.WAREHOUSE_FLOW_ID ";
    private String QUERY_TAIZHANG_LIST_END = " WHERE record.id IS NOT NULL";
    private String QUERY_TAIZHANG_LIST_CAIGOU = " LEFT JOIN L_WH_FORM_PROCURE tCaiGou ON flow.BUSINESS_TYPE=1 AND tCaiGou.id=flow.BUSINESS_FORM_ID ";
    private String QUERY_TAIZHANG_LIST_DIAOBO = " LEFT JOIN L_WH_FORM_TRANSFER tTrans ON (flow.BUSINESS_TYPE=2 or flow.BUSINESS_TYPE=4) AND tTrans.id=flow.BUSINESS_FORM_ID ";
    private String QUERY_TAIZHANG_LIST_CHUKU = " LEFT JOIN L_WH_FORM_OUTPUT tFormOut ON flow.BUSINESS_TYPE=3 AND tFormOut.id=flow.BUSINESS_FORM_ID ";
    private String QUERY_TAIZHANG_LIST_PANDIAN = " LEFT JOIN L_WH_FORM_INVENTORY tInventory ON flow.BUSINESS_TYPE=7 AND tInventory.id=flow.BUSINESS_FORM_ID ";
    private String QUERY_TAIZHANG_LIST_BAOFEI = " LEFT JOIN L_WH_FORM_SCRAPPED tScrapped ON flow.BUSINESS_TYPE=5 AND tScrapped.id=flow.BUSINESS_FORM_ID ";
    private String QUERY_TAIZHANG_LIST_DEP_TUIHUI = " LEFT JOIN USING_FORM_BACK tBack ON flow.BUSINESS_TYPE=6 AND tBack.id=flow.BUSINESS_FORM_ID ";
    public GenericPager<Map<String, Object>> queryTaiZhangList(LWarehouseFlowParam param) {
        StringBuilder sqlQuery = new StringBuilder(QUERY_TAIZHANG_LIST_QUERY);
        StringBuilder sqlEndRecord = new StringBuilder(QUERY_TAIZHANG_LIST_RECORD);
        StringBuilder sqlCaiGou = new StringBuilder(QUERY_TAIZHANG_LIST_CAIGOU);
        StringBuilder sqlDiaoBo = new StringBuilder(QUERY_TAIZHANG_LIST_DIAOBO);
        StringBuilder sqlChuKu = new StringBuilder(QUERY_TAIZHANG_LIST_CHUKU);
        StringBuilder sqlBaoFei = new StringBuilder(QUERY_TAIZHANG_LIST_BAOFEI);
        StringBuilder sqlDepTuiHui = new StringBuilder(QUERY_TAIZHANG_LIST_DEP_TUIHUI);
        StringBuilder sqlPanDian = new StringBuilder(QUERY_TAIZHANG_LIST_PANDIAN);
        StringBuilder sqlEnd = new StringBuilder(QUERY_TAIZHANG_LIST_END);
        HashMap<String, Object> paramts = new HashMap<>();
        //机构
        if (param.getAgencyId() != null) {
//            sqlQuery.append(" AND left(AGENCY_ID, length(:lengthAgencyId)) = :agencyId");
            sqlQuery.append(" AND AGENCY_ID=:agencyId");
//            paramts.put("lengthAgencyId", param.getAgencyId());
            paramts.put("agencyId", param.getAgencyId());
        }
        //仓库类型
        if (param.getWarehouseType() != null) {
            sqlQuery.append(" AND WAREHOUSE_TYPE = :warehouseType");
            paramts.put("warehouseType", param.getWarehouseType());
        }
        if (param.getBaseWarehouseId() != null) {
            sqlQuery.append(" AND id = :warehouseId");
            paramts.put("warehouseId", param.getBaseWarehouseId());
        }
        //物品名称
        if (StringUtils.isNotEmpty(param.getGoodsTemplateName())) {
            sqlEnd.append(" AND record.GOODS_TEMPLATE_NAME like :goodsTemplateName");
            paramts.put("goodsTemplateName", StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT);
        }
        if (param.getGoodsTemplateId() != null) {
            sqlEnd.append(" AND record.BASE_GOODS_TEMPLATE_ID=:goodsTemplateId");
            paramts.put("goodsTemplateId", param.getGoodsTemplateId());
        }
        //规格型号
        if (param.getBaseGoodsModelsId() != null) {
            sqlEnd.append(" AND record.BASE_GOODS_MODELS_ID=:baseGoodsModelsId");
            paramts.put("baseGoodsModelsId", param.getBaseGoodsModelsId());
        }
        // 同码表,1采购入库 2退还入库 3调拨入库 4盘盈入库 5申领出库 6调拨出库 7盘亏出库 8报废出库 9其他出库
        Short flowType = param.getFlowType();
        if (flowType != null) {
            Map<String, Short> typeByFlowType = WhBusinessEnum.getTypeByFlowType(flowType);
            //本次调整类型(1=调增;2=调减)
            Short flowThisType = typeByFlowType.get("flowThisType");
            //单据类型 1 采购2 调拨 3出库4部门分发5报废6部门物品回退仓库7物品盘点
            Short flowBusinessType = typeByFlowType.get("flowBusinessType");
            if (flowThisType != null) {
                sqlEnd.append(" AND flow.THIS_TYPE=:flowThisType");
                paramts.put("flowThisType", flowThisType);
            }
            if (flowBusinessType != null) {
                sqlEnd.append(" AND flow.BUSINESS_TYPE=:flowBusinessType");
                paramts.put("flowBusinessType", flowBusinessType);
            }
        }
        // 单号
        String businessFormCode = param.getBusinessFormCode();
        if (StringUtils.isNotEmpty(businessFormCode)) {
            sqlCaiGou.append(" and tCaiGou.BUSINESS_FORM_CODE = :caoGouBusinessFormCode");
            paramts.put("caoGouBusinessFormCode", businessFormCode);
            sqlDiaoBo.append(" and tTrans.BUSINESS_FORM_CODE = :diaoBoBusinessFormCode");
            paramts.put("diaoBoBusinessFormCode", businessFormCode);
            sqlChuKu.append(" and tFormOut.BUSINESS_FORM_CODE = :chuKuBusinessFormCode");
            paramts.put("chuKuBusinessFormCode", businessFormCode);
            sqlBaoFei.append(" and tScrapped.BUSINESS_FORM_CODE = :baoFeiBusinessFormCode");
            paramts.put("baoFeiBusinessFormCode", businessFormCode);
            sqlDepTuiHui.append(" and tBack.BUSINESS_FORM_CODE = :depTuiHuiBusinessFormCode");
            paramts.put("depTuiHuiBusinessFormCode", businessFormCode);
            sqlPanDian.append(" and tInventory.BUSINESS_FORM_CODE = :panDianBusinessFormCode");
            paramts.put("panDianBusinessFormCode", businessFormCode);
            sqlEnd.append(" and case when flow.BUSINESS_TYPE = 1 THEN tCaiGou.BUSINESS_FORM_CODE" +
                    " WHEN ( flow.BUSINESS_TYPE = 2 OR flow.BUSINESS_TYPE = 4) THEN tTrans.BUSINESS_FORM_CODE" +
                    " WHEN flow.BUSINESS_TYPE = 3 THEN tFormOut.BUSINESS_FORM_CODE" +
                    " WHEN flow.BUSINESS_TYPE = 5 THEN tScrapped.BUSINESS_FORM_CODE" +
                    " WHEN flow.BUSINESS_TYPE = 6 THEN tBack.BUSINESS_FORM_CODE" +
                    " WHEN flow.BUSINESS_TYPE = 7 THEN tInventory.BUSINESS_FORM_CODE end =:whereBusinessFormCode");
            paramts.put("whereBusinessFormCode", businessFormCode);
        }
        // 操作时间
        if (param.getDealTimeStart() != null) {
            sqlEnd.append(" and flow.DEAL_TIME >=:dealTimeStart ");
            paramts.put("dealTimeStart", param.getDealTimeStart() * 1000000);
        }
        if (param.getDealTimeEnd() != null) {
            sqlEnd.append(" and flow.DEAL_TIME <:dealTimeEnd ");
            paramts.put("dealTimeEnd", param.getDealTimeEnd() * 1000000 + 240000);
        }
        sqlEnd.append(" ORDER BY record.DEAL_TIME desc,record.id DESC ");
        StringBuilder sql = new StringBuilder();
        sql.append(sqlQuery)
                .append(sqlEndRecord)
                .append(sqlCaiGou)
                .append(sqlDiaoBo)
                .append(sqlChuKu)
                .append(sqlBaoFei)
                .append(sqlDepTuiHui)
                .append(sqlPanDian)
                .append(sqlEnd);
        return selectSplit(sql.toString(), paramts, param.getPageNum(), param.getPageSize(), new MapperUtil());
    }
    /**
     * 台账查询
     *
     * @param param
     * @return
     */
    private String QUERY_DEPT_TAIZHANG_LIST_QUERY = "SELECT CASE WHEN flow.BUSINESS_TYPE=1 THEN tCaiGou.AGENCY_NAME WHEN (flow.BUSINESS_TYPE=2 OR flow.BUSINESS_TYPE=4) THEN tTrans.OUT_AGENCY_NAME WHEN flow.BUSINESS_TYPE=3 THEN tFormOut.AGENCY_NAME WHEN flow.BUSINESS_TYPE=5 AND flow.WAREHOUSE_TYPE=0 THEN tScrapped.AGENCY_NAME WHEN flow.BUSINESS_TYPE=5 AND flow.WAREHOUSE_TYPE=1 THEN tDepScrapped.AGENCY_NAME WHEN flow.BUSINESS_TYPE=6 AND flow.WAREHOUSE_TYPE=1 THEN tBack.AGENCY_NAME WHEN flow.BUSINESS_TYPE=7 THEN tInventory.AGENCY_NAME END AGENCY_NAME,ware.NAME AS dept_name,record.GOODS_TEMPLATE_NAME,record.BASE_GOODS_MODELS_NAME,record.THIS_TYPE,flow.BUSINESS_TYPE,CASE WHEN flow.BUSINESS_TYPE=1 THEN tCaiGou.BUSINESS_FORM_CODE WHEN (flow.BUSINESS_TYPE=2 OR flow.BUSINESS_TYPE=4) THEN tTrans.BUSINESS_FORM_CODE WHEN flow.BUSINESS_TYPE=3 THEN tFormOut.BUSINESS_FORM_CODE WHEN flow.BUSINESS_TYPE=5 AND flow.WAREHOUSE_TYPE=0 THEN tScrapped.BUSINESS_FORM_CODE WHEN flow.BUSINESS_TYPE=5 AND flow.WAREHOUSE_TYPE=1 THEN tDepScrapped.BUSINESS_FORM_CODE WHEN flow.BUSINESS_TYPE=6 AND flow.WAREHOUSE_TYPE=1 THEN tBack.BUSINESS_FORM_CODE WHEN flow.BUSINESS_TYPE=7 THEN tInventory.BUSINESS_FORM_CODE END BUSINESS_FORM_CODe,record.THIS_COUNT,record.INITIAL_COUNT,record.END_COUNT,flow.DEAL_TIME,CASE WHEN flow.BUSINESS_TYPE=2 AND tTrans.STATES=1 THEN record.THIS_COUNT ELSE 0 END zai_Tu_Count FROM (SELECT*FROM fin_sys_tenant_department WHERE 1=1 ";
    private String QUERY_DEPT_TAIZHANG_LIST_RECORD = ")ware LEFT JOIN L_WAREHOUSE_FLOW flow ON ware.id=flow.WAREHOUSE_ID AND flow.WAREHOUSE_TYPE=1 LEFT JOIN L_WH_GOODS_RECORD record ON flow.id=record.WAREHOUSE_FLOW_ID ";
    private String QUERY_DEPT_TAIZHANG_LIST_END = " WHERE record.id IS NOT NULL";
    private String QUERY_DEPT_TAIZHANG_LIST_CAIGOU = " LEFT JOIN L_WH_FORM_PROCURE tCaiGou ON flow.BUSINESS_TYPE=1 AND tCaiGou.id=flow.BUSINESS_FORM_ID ";
    private String QUERY_DEPT_TAIZHANG_LIST_DIAOBO = " LEFT JOIN L_WH_FORM_TRANSFER tTrans ON (flow.BUSINESS_TYPE=2 or flow.BUSINESS_TYPE=4) AND tTrans.id=flow.BUSINESS_FORM_ID ";
    private String QUERY_DEPT_TAIZHANG_LIST_CHUKU = " LEFT JOIN L_WH_FORM_OUTPUT tFormOut ON flow.BUSINESS_TYPE=3 AND tFormOut.id=flow.BUSINESS_FORM_ID ";
    private String QUERY_DEPT_TAIZHANG_LIST_PANDIAN = " LEFT JOIN L_WH_FORM_INVENTORY tInventory ON flow.BUSINESS_TYPE=7 AND tInventory.id=flow.BUSINESS_FORM_ID ";
    private String QUERY_DEPT_TAIZHANG_LIST_BAOFEI = " LEFT JOIN L_WH_FORM_SCRAPPED tScrapped ON flow.BUSINESS_TYPE=5 AND flow.WAREHOUSE_TYPE=0 AND tScrapped.id=flow.BUSINESS_FORM_ID ";
    private String QUERY_DEPT_TAIZHANG_LIST_DEP_BAOFEI = " LEFT JOIN DEP_FORM_SCRAPPED tDepScrapped ON flow.BUSINESS_TYPE=5 AND flow.WAREHOUSE_TYPE=1 AND tDepScrapped.id=flow.BUSINESS_FORM_ID ";
    private String QUERY_DEPT_TAIZHANG_LIST_DEP_TUIHUI = " LEFT JOIN USING_FORM_BACK tBack ON flow.BUSINESS_TYPE=6 AND tBack.id=flow.BUSINESS_FORM_ID ";
    public GenericPager<Map<String, Object>> queryDeptTaiZhangList(LWarehouseFlowParam param) {
        StringBuilder sqlQuery = new StringBuilder(QUERY_DEPT_TAIZHANG_LIST_QUERY);
        StringBuilder sqlEndRecord = new StringBuilder(QUERY_DEPT_TAIZHANG_LIST_RECORD);
        StringBuilder sqlCaiGou = new StringBuilder(QUERY_DEPT_TAIZHANG_LIST_CAIGOU);
        StringBuilder sqlDiaoBo = new StringBuilder(QUERY_DEPT_TAIZHANG_LIST_DIAOBO);
        StringBuilder sqlChuKu = new StringBuilder(QUERY_DEPT_TAIZHANG_LIST_CHUKU);
        StringBuilder sqlBaoFei = new StringBuilder(QUERY_DEPT_TAIZHANG_LIST_BAOFEI);
        StringBuilder sqlPanDian = new StringBuilder(QUERY_DEPT_TAIZHANG_LIST_PANDIAN);
        StringBuilder sqlDepBaoFei = new StringBuilder(QUERY_DEPT_TAIZHANG_LIST_DEP_BAOFEI);
        StringBuilder sqlDepTuiHui = new StringBuilder(QUERY_DEPT_TAIZHANG_LIST_DEP_TUIHUI);
        StringBuilder sqlEnd = new StringBuilder(QUERY_DEPT_TAIZHANG_LIST_END);
        HashMap<String, Object> paramts = new HashMap<>();
        //机构
        if (param.getAgencyId() != null) {
//            sqlQuery.append(" AND left(AGENCY_ID, length(:lengthAgencyId)) = :agencyId");
            sqlQuery.append(" AND TENANT_ID=:agencyId");
//            paramts.put("lengthAgencyId", param.getAgencyId());
            paramts.put("agencyId", param.getAgencyId());
        }
        // 部门
        if (param.getDepartmentId() != null) {
            sqlQuery.append(" and ID= :departmentId");
            paramts.put("departmentId", param.getDepartmentId());
        }
        //仓库类型
        if (param.getWarehouseType() != null) {
            sqlQuery.append(" AND WAREHOUSE_TYPE = :warehouseType");
            paramts.put("warehouseType", param.getWarehouseType());
        }
        //物品名称
        if (StringUtils.isNotEmpty(param.getGoodsTemplateName())) {
            sqlEnd.append(" AND record.GOODS_TEMPLATE_NAME like :goodsTemplateName");
            paramts.put("goodsTemplateName", StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT);
        }
        if (param.getGoodsTemplateId() != null) {
            sqlEnd.append(" AND record.BASE_GOODS_TEMPLATE_ID=:goodsTemplateId");
            paramts.put("goodsTemplateId", param.getGoodsTemplateId());
        }
        //规格型号
        if (param.getBaseGoodsModelsId() != null) {
            sqlEnd.append(" AND record.BASE_GOODS_MODELS_ID=:baseGoodsModelsId");
            paramts.put("baseGoodsModelsId", param.getBaseGoodsModelsId());
        }
        // 同码表,1 物品申领 2 物品分发 3 物品退还 4 物品报废
        Short flowType = param.getFlowType();
        if (flowType != null) {
            Map<String, Short> typeByFlowType = WhBusinessEnum.getTypeByDeptFlowType(flowType);
            //本次调整类型(1=调增;2=调减)
            Short flowThisType = typeByFlowType.get("flowThisType");
            //单据类型 1 采购2 调拨 3出库4部门分发5报废6部门物品回退仓库7物品盘点
            Short flowBusinessType = typeByFlowType.get("flowBusinessType");
            if (flowThisType != null) {
                sqlEnd.append(" AND flow.THIS_TYPE=:flowThisType");
                paramts.put("flowThisType", flowThisType);
            }
            if (flowBusinessType != null) {
                sqlEnd.append(" AND flow.BUSINESS_TYPE=:flowBusinessType");
                paramts.put("flowBusinessType", flowBusinessType);
            }
        }
        // 单号
        String businessFormCode = param.getBusinessFormCode();
        if (StringUtils.isNotEmpty(businessFormCode)) {
            sqlCaiGou.append(" and tCaiGou.BUSINESS_FORM_CODE = :caoGouBusinessFormCode");
            paramts.put("caoGouBusinessFormCode", businessFormCode);
            sqlDiaoBo.append(" and tTrans.BUSINESS_FORM_CODE = :diaoBoBusinessFormCode");
            paramts.put("diaoBoBusinessFormCode", businessFormCode);
            sqlChuKu.append(" and tFormOut.BUSINESS_FORM_CODE = :chuKuBusinessFormCode");
            paramts.put("chuKuBusinessFormCode", businessFormCode);
            sqlBaoFei.append(" and tScrapped.BUSINESS_FORM_CODE = :baoFeiBusinessFormCode");
            paramts.put("baoFeiBusinessFormCode", businessFormCode);
            sqlDepBaoFei.append(" and tDepScrapped.BUSINESS_FORM_CODE = :deptBaoFeiBusinessFormCode");
            paramts.put("deptBaoFeiBusinessFormCode", businessFormCode);
            sqlDepTuiHui.append(" and tBack.BUSINESS_FORM_CODE = :deptBackBusinessFormCode");
            paramts.put("deptBackBusinessFormCode", businessFormCode);
            sqlPanDian.append(" and tInventory.BUSINESS_FORM_CODE = :panDianBusinessFormCode");
            paramts.put("panDianBusinessFormCode", businessFormCode);
            sqlEnd.append(" and case when flow.BUSINESS_TYPE = 1 THEN tCaiGou.BUSINESS_FORM_CODE" +
                    " WHEN ( flow.BUSINESS_TYPE = 2 OR flow.BUSINESS_TYPE = 4) THEN tTrans.BUSINESS_FORM_CODE" +
                    " WHEN flow.BUSINESS_TYPE = 3 THEN tFormOut.BUSINESS_FORM_CODE" +
                    " WHEN flow.BUSINESS_TYPE = 5 AND flow.WAREHOUSE_TYPE = 0 THEN tScrapped.BUSINESS_FORM_CODE" +
                    " WHEN flow.BUSINESS_TYPE = 5 AND flow.WAREHOUSE_TYPE = 1 THEN tDepScrapped.BUSINESS_FORM_CODE" +
                    " WHEN flow.BUSINESS_TYPE = 6 THEN tBack.BUSINESS_FORM_CODE" +
                    " WHEN flow.BUSINESS_TYPE = 7 THEN tInventory.BUSINESS_FORM_CODE end =:whereBusinessFormCode");
            paramts.put("whereBusinessFormCode", businessFormCode);
        }
        // 操作时间
        if (param.getDealTimeStart() != null) {
            sqlEnd.append(" and flow.DEAL_TIME >=:dealTimeStart ");
            paramts.put("dealTimeStart", param.getDealTimeStart() * 1000000);
        }
        if (param.getDealTimeEnd() != null) {
            sqlEnd.append(" and flow.DEAL_TIME <:dealTimeEnd ");
            paramts.put("dealTimeEnd", param.getDealTimeEnd() * 1000000 + 240000);
        }
        sqlEnd.append(" ORDER BY record.DEAL_TIME desc,record.id DESC ");
        StringBuilder sql = new StringBuilder();
        sql.append(sqlQuery)
                .append(sqlEndRecord)
                .append(sqlCaiGou)
                .append(sqlDiaoBo)
                .append(sqlChuKu)
                .append(sqlBaoFei)
                .append(sqlPanDian)
                .append(sqlDepBaoFei)
                .append(sqlDepTuiHui)
                .append(sqlEnd);
        return selectSplit(sql.toString(), paramts, param.getPageNum(), param.getPageSize(), new MapperUtil());
    }
    public PageUtil queryAllBusinessFlow(LWhFormOutputQry param) {
        StringBuilder sql = new StringBuilder("SELECT\n"
                + "CASE WHEN flow.BUSINESS_TYPE=1 THEN tCaiGou.id \n"
                + "WHEN (flow.BUSINESS_TYPE=2 OR flow.BUSINESS_TYPE=4) THEN tTrans.id \n"
                + "WHEN flow.BUSINESS_TYPE=3 THEN tFormOut.id \n"
                + "WHEN flow.BUSINESS_TYPE=5 THEN tScrapped.id \n"
                + "WHEN flow.BUSINESS_TYPE=6 THEN tBack.id \n"
                + "WHEN flow.BUSINESS_TYPE=7 THEN tInventory.id END id,\n"
                + "\n"
                + "CASE WHEN flow.BUSINESS_TYPE=1 THEN tCaiGou.BUSINESS_FORM_CODE \n"
                + "WHEN (flow.BUSINESS_TYPE=2 OR flow.BUSINESS_TYPE=4) THEN tTrans.BUSINESS_FORM_CODE \n"
                + "WHEN flow.BUSINESS_TYPE=3 THEN tFormOut.BUSINESS_FORM_CODE \n"
                + "WHEN flow.BUSINESS_TYPE=5 THEN tScrapped.BUSINESS_FORM_CODE \n"
                + "WHEN flow.BUSINESS_TYPE=6 THEN tBack.BUSINESS_FORM_CODE \n"
                + "WHEN flow.BUSINESS_TYPE=7 THEN tInventory.BUSINESS_FORM_CODE END BUSINESS_FORM_CODE,\n"
                + "\n"
                + "CASE WHEN flow.BUSINESS_TYPE=1 THEN tCaiGou.AGENCY_NAME \n"
                + "WHEN (flow.BUSINESS_TYPE=2 OR flow.BUSINESS_TYPE=4) THEN tTrans.OPERATOR_NAME \n"
                + "WHEN flow.BUSINESS_TYPE=3 THEN tFormOut.AGENCY_NAME \n"
                + "WHEN flow.BUSINESS_TYPE=5 THEN tScrapped.AGENCY_NAME \n"
                + "WHEN flow.BUSINESS_TYPE=6 THEN tBack.AGENCY_NAME \n"
                + "WHEN flow.BUSINESS_TYPE=7 THEN tInventory.AGENCY_NAME END AGENCY_NAME,\n"
                + "\n"
                + "record.GOODS_TEMPLATE_NAME,\n"
                + "record.BASE_GOODS_MODELS_NAME,\n"
                + "record.THIS_TYPE,\n"
                + "flow.BUSINESS_TYPE,\n"
                + "record.THIS_COUNT,\n"
                + "flow.DEAL_TIME,\n"
                + "flow.OPERATOR_NAME,\n"
                + "record.TOTAL_PRICE\n"
                + "FROM ( SELECT * FROM BASE_WAREHOUSE WHERE 1= 1 AND AGENCY_ID =:tenantId ) bw "
                + "LEFT JOIN L_WAREHOUSE_FLOW flow ON bw.id = flow.WAREHOUSE_ID AND flow.WAREHOUSE_TYPE = 0\n"
                + "LEFT JOIN L_WH_GOODS_RECORD record ON flow.id=record.WAREHOUSE_FLOW_ID\n"
                + "LEFT JOIN L_WH_FORM_PROCURE tCaiGou ON flow.BUSINESS_TYPE=1 AND tCaiGou.id=flow.BUSINESS_FORM_ID\n"
                + "LEFT JOIN L_WH_FORM_TRANSFER tTrans ON (flow.BUSINESS_TYPE=2 or flow.BUSINESS_TYPE=4) AND tTrans.id=flow.BUSINESS_FORM_ID\n"
                + "LEFT JOIN L_WH_FORM_OUTPUT tFormOut ON flow.BUSINESS_TYPE=3 AND tFormOut.id=flow.BUSINESS_FORM_ID\n"
                + "LEFT JOIN L_WH_FORM_INVENTORY tInventory ON flow.BUSINESS_TYPE=7 AND tInventory.id=flow.BUSINESS_FORM_ID\n"
                + "LEFT JOIN L_WH_FORM_SCRAPPED tScrapped ON flow.BUSINESS_TYPE=5 AND tScrapped.id=flow.BUSINESS_FORM_ID\n"
                + "LEFT JOIN USING_FORM_BACK tBack ON flow.BUSINESS_TYPE=6 AND tBack.id=flow.BUSINESS_FORM_ID\n"
                //+ "LEFT JOIN base_warehouse bw ON flow.WAREHOUSE_ID = bw.id\n"
                + "LEFT JOIN fin_sys_tenant fst ON fst.id = bw.AGENCY_ID\n"
                + "WHERE record.id IS NOT NULL ");
        HashMap<String, Object> paramts = new HashMap<>();
        //机构
        if (param.getAgencyId() != null) {
            paramts.put("tenantId", param.getAgencyId());
        }
        //机构
        if (param.getAgencyId() != null) {
            sql.append("AND fst.id like :agencyId ");
            paramts.put("agencyId", param.getAgencyId() + StringUtils.CHAR_PERCENT);
        }
        //物品名称
        if (StringUtils.isNotEmpty(param.getGoodsTempName())) {
            sql.append(" AND record.GOODS_TEMPLATE_NAME like :goodsTemplateName");
            paramts.put("goodsTemplateName", StringUtils.CHAR_PERCENT + param.getGoodsTempName() + StringUtils.CHAR_PERCENT);
        }
        if (param.getGoodsTemplateId() != null) {
            sql.append(" AND record.BASE_GOODS_TEMPLATE_ID =:goodsTemplateId");
            paramts.put("goodsTemplateId", param.getGoodsTemplateId());
        }
        //规格型号
        if (param.getBaseGoodsModelsId() != null) {
            sql.append(" AND record.BASE_GOODS_MODELS_ID=:baseGoodsModelsId");
            paramts.put("baseGoodsModelsId", param.getBaseGoodsModelsId());
        }
        // 同码表,1采购入库 2退还入库 3调拨入库 4盘盈入库 5申领出库 6调拨出库 7盘亏出库 8报废出库 9其他出库
        Integer flowType = param.getFlowType();
        if (flowType != null) {
            Map<String, Short> typeByFlowType = WhBusinessEnum.getTypeByFlowType(flowType.shortValue());
            //本次调整类型(1=调增;2=调减)
            Short flowThisType = typeByFlowType.get("flowThisType");
            //单据类型 1 采购2 调拨 3出库4部门分发5报废6部门物品回退仓库7物品盘点
            Short flowBusinessType = typeByFlowType.get("flowBusinessType");
            if (flowThisType != null) {
                sql.append(" AND flow.THIS_TYPE=:flowThisType");
                paramts.put("flowThisType", flowThisType);
            }
            if (flowBusinessType != null) {
                sql.append(" AND flow.BUSINESS_TYPE=:flowBusinessType");
                paramts.put("flowBusinessType", flowBusinessType);
            }
        }
        // 单号
        String businessFormCode = param.getBusinessFormCode();
        if (StringUtils.isNotEmpty(businessFormCode)) {
            sql.append(" and case when flow.BUSINESS_TYPE = 1 THEN tCaiGou.BUSINESS_FORM_CODE =:whereBusinessFormCode" +
                    " WHEN ( flow.BUSINESS_TYPE = 2 OR flow.BUSINESS_TYPE = 4) THEN tTrans.BUSINESS_FORM_CODE =:whereBusinessFormCode" +
                    " WHEN flow.BUSINESS_TYPE = 3 THEN tFormOut.BUSINESS_FORM_CODE=:whereBusinessFormCode" +
                    " WHEN flow.BUSINESS_TYPE = 5 THEN tScrapped.BUSINESS_FORM_CODE =:whereBusinessFormCode" +
                    " WHEN flow.BUSINESS_TYPE = 6 THEN tBack.BUSINESS_FORM_CODE =:whereBusinessFormCode" +
                    " WHEN flow.BUSINESS_TYPE = 7 THEN tInventory.BUSINESS_FORM_CODE =:whereBusinessFormCode end");
            paramts.put("whereBusinessFormCode", businessFormCode);
        }
        // 操作时间
        if (param.getStartTime() != null) {
            sql.append(" and flow.DEAL_TIME >=:dealTimeStart ");
            paramts.put("dealTimeStart", param.getStartTime() * 1000000);
        }
        if (param.getEndTime() != null) {
            sql.append(" and flow.DEAL_TIME <:dealTimeEnd ");
            paramts.put("dealTimeEnd", param.getEndTime() * 1000000 + 240000);
        }
        sql.append(" ORDER BY record.DEAL_TIME desc,record.id DESC ");
        GenericPager<Map<String, Object>> mapGenericPager = selectSplit(sql.toString(), paramts, param.getPageNum(), param.getPageSize(), new MapperUtil());
        PageUtil pageUtil = new PageUtil(mapGenericPager);
        List<OutAndInDetailVO> result = Lists.newArrayList();
        mapGenericPager.getDatas().forEach(map -> {
            OutAndInDetailVO outAndInDetailVO = MapUtils.convertMapToObj(map, OutAndInDetailVO.class);
            Integer thisType = outAndInDetailVO.getThisType();
            Integer businessType = outAndInDetailVO.getBusinessType();
            String mixType = MixType.getMixType(businessType + "" + thisType);
            outAndInDetailVO.setMixType(mixType);
            outAndInDetailVO.setTotalPrice(CurrencyUtil.convertFenToYuan(outAndInDetailVO.getTotalPrice()));
            result.add(outAndInDetailVO);
        });
        pageUtil.setDatas(result);
        return pageUtil;
    }
    PageUtil queryAllBusinessFlow(LWhFormOutputQry param);
}
consum-base/src/main/java/com/consum/base/service/LWhGoodsStatisticsService.java
New file
@@ -0,0 +1,15 @@
package com.consum.base.service;
import com.consum.base.pojo.query.LWhGoodsStatisQry;
import com.walker.jdbc.service.BaseService;
import java.util.List;
/**
 * LWhGoodsStatisticsService
 *
 * @author asus
 * @version 2023/12/22 10:48
 **/
public interface LWhGoodsStatisticsService extends BaseService {
    List getWhGoodsStatisList(LWhGoodsStatisQry param);
}
consum-base/src/main/java/com/consum/base/service/LWhGoodsStatisticsServiceImpl.java
File was deleted
consum-base/src/main/java/com/consum/base/service/LWhWarningConfigService.java
New file
@@ -0,0 +1,22 @@
package com.consum.base.service;
import java.util.List;
import java.util.Map;
import com.consum.base.pojo.query.WhWarningConfigQry;
import com.walker.db.page.GenericPager;
import com.walker.jdbc.service.BaseService;
/**
 * LWhWarningConfigService
 *
 * @author asus
 * @version 2023/12/22 10:35
 **/
public interface LWhWarningConfigService extends BaseService {
    GenericPager<Map<String, Object>> getConfigListWithPage(WhWarningConfigQry param);
    Map<String, Object> getConfigListQueryMap(WhWarningConfigQry param);
    List<Map<String, Object>> queryModelIsExist(Integer warehouseType, Long baseWarehouseId, List<Long> modelIds);
}
consum-base/src/main/java/com/consum/base/service/LWhWarningService.java
New file
@@ -0,0 +1,23 @@
package com.consum.base.service;
import java.util.List;
import java.util.Map;
import com.consum.base.pojo.query.WhWarningQry;
import com.walker.db.page.GenericPager;
import com.walker.jdbc.service.BaseService;
/**
 * LWhWarningService
 *
 * @author asus
 * @version 2023/12/22 10:32
 **/
public interface LWhWarningService extends BaseService {
    Map<String, Object> getWarningTypeNum(WhWarningQry param);
    GenericPager<Map<String, Object>> getListWithPage(WhWarningQry param);
    List<Map<String, Object>> checkKuCun(Short warehouseType, Long warehouseId, List<Long> baseModelIdList);
}
consum-base/src/main/java/com/consum/base/service/SDictDataService.java
New file
@@ -0,0 +1,15 @@
package com.consum.base.service;
import com.consum.model.po.SDictData;
import com.walker.jdbc.service.BaseService;
import java.util.List;
/**
 * SDictDataService
 *
 * @author asus
 * @version 2023/12/22 10:48
 **/
public interface SDictDataService extends BaseService {
    List<SDictData> selectByScrappedCodeList(List scrappedCodeList);
}
consum-base/src/main/java/com/consum/base/service/core/DepFormScrappedCoreService.java
File was renamed from consum-base/src/main/java/com/consum/base/core/DepFormScrappedCoreServiceImpl.java
@@ -1,9 +1,23 @@
package com.consum.base.core;
package com.consum.base.service.core;
import cn.hutool.core.convert.Convert;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import com.consum.base.core.WhBusinessEnum;
import com.consum.base.core.utils.IdUtil;
import com.consum.base.core.utils.LockManage;
import com.consum.base.service.GoodsBaseServiceImpl;
import com.consum.base.service.GoodsBaseService;
import com.consum.base.service.LWarehouseFlowService;
import com.consum.base.service.LWhGoodsRecordService;
import com.consum.base.service.LWhGoodsService;
@@ -14,19 +28,9 @@
import com.iplatform.model.po.S_user_core;
import com.walker.infrastructure.utils.CollectionUtils;
import com.walker.web.ResponseValue;
import java.util.Arrays;
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;
import cn.hutool.core.convert.Convert;
import lombok.extern.slf4j.Slf4j;
/**
 * @ClassName DepFormScrappedCoreServiceImpl
@@ -38,9 +42,9 @@
@Service
@Slf4j
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
public class DepFormScrappedCoreServiceImpl {
public class DepFormScrappedCoreService {
    @Resource
    private GoodsBaseServiceImpl goodsBaseService;
    private GoodsBaseService goodsBaseService;
    @Resource
    private LWhGoodsService lWhGoodsService;
    @Resource
@@ -48,20 +52,20 @@
    @Resource
    private LWhGoodsRecordService lWhGoodsRecordServiceImpl;
    @Resource
    private LWarehouseFlowService lWarehouseFlowService;
    private LWarehouseFlowService lWarehouseFlowServiceImpl;
    /**
     * 根据报废单报废:修改调拨单中可退回数量;仓库中物品状态设置为报废;生成一个保费流水;更新报废型号表中,物品价值
     * <p>
     * 1.找到需要报废的型号, 按同一个
     *
     * @param lWhFormScrappedId //     * @param isBack            是否退回
     * @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=已报废
        // 状态 1=待报废;2=已报废
        if (depFormScrapped == null || depFormScrapped.getStates() != 1) {
            return ResponseValue.error("请检查报废单");
        }
@@ -70,9 +74,11 @@
        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")));
        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();
@@ -85,15 +91,15 @@
        //
        ArrayList<LWhGoodsRecord> lWhGoodsRecordList = new ArrayList<>();
        //采购、调拨、出库等的物品型号【L_WH_PROCURE_MODEL】中 根据调拨单+型号 更新 在用数量
        // 采购、调拨、出库等的物品型号【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;
            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"));
@@ -112,18 +118,19 @@
            whGoodsRecord.setBaseGoodsModelsId(baseGoodsModelsId);
            whGoodsRecord.setBaseGoodsModelsName(modelName);
            whGoodsRecord.setDealTime(dealTime);
            //本次调整类型 1=调增;2=调减
            // 本次调整类型 1=调增;2=调减
            whGoodsRecord.setThisType(2);
            //通过LockManage获得锁
            // 通过LockManage获得锁
            Object warehouseModelLockObj = LockManage.acquireLock(warehouseType, warehouseId, baseGoodsModelsId);
            int goodsModelNum = 0;
            synchronized (warehouseModelLockObj) {
                List<Long> warehouseIds = new ArrayList<>(Arrays.asList(warehouseId));
                goodsModelNum = lWhGoodsService.queryGoodsModelNum(warehouseType, warehouseIds, baseGoodsModelsId, 2, null);
                goodsModelNum =
                    lWhGoodsService.queryGoodsModelNum(warehouseType, warehouseIds, baseGoodsModelsId, 2, null);
                for (Map<String, Object> depFormScrappedModel : eachFfModelList) {
                    // 调拨单信息
                    Long transBusinessId = (Long) depFormScrappedModel.get("TRANS_BUSINESS_ID");
                    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"));
@@ -131,7 +138,8 @@
                    modelTotalNum += counts;
                    // 根据分发单、型号、使用人信息查询物品信息
                    List<Map<String, Object>> scrappedGoodsList = lWhGoodsService.queryScrappedGoods(warehouseType, warehouseId, transBusinessId, nowUserName, baseGoodsModelsId, (short) 2, 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("要报废的物品数量不足!");
                        // 手动回滚
@@ -139,21 +147,24 @@
                        throw new RuntimeException("报废失败!型号数量不足");
                    }
                    Long formScrappedModelPrice = scrappedGoodsList.stream().mapToLong(map -> (long) map.get("price")).sum();
                    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);
                    // 采购、调拨、出库等的物品型号【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());
                    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);
                    lWhGoodsRecordDetailsService.sameGoodsInsertMore(srappedGoodsIds, whGoodsRecordId, (short)2);
                }
            }
@@ -161,7 +172,7 @@
            whGoodsRecord.setEndCount(goodsModelNum - modelTotalNum);
            whGoodsRecord.setThisCount(modelTotalNum);
            whGoodsRecord.setTotalPrice(modelTotalPrice);
//            lWhGoodsRecordService.insert(whGoodsRecord);
            // lWhGoodsRecordService.insert(whGoodsRecord);
            lWhGoodsRecordList.add(whGoodsRecord);
        }
@@ -178,7 +189,7 @@
        warehouseFlow.setOperatorName(nickName);
        warehouseFlow.setDealTime(dealTime);
        // 插入流水总表
        int flowInsertFlag = lWarehouseFlowService.insert(warehouseFlow);
        int flowInsertFlag = lWarehouseFlowServiceImpl.insert(warehouseFlow);
        if (flowInsertFlag == 0) {
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            return null;
@@ -189,9 +200,9 @@
        // 更新报废单
        depFormScrapped = new DepFormScrapped(lWhFormScrappedId);
        depFormScrapped.setStates(2);
//        depFormScrapped.setOperatorId(userId);
//        depFormScrapped.setOperatorName(nickName);
//        depFormScrapped.setDealTime(dealTime);
        // depFormScrapped.setOperatorId(userId);
        // depFormScrapped.setOperatorName(nickName);
        // depFormScrapped.setDealTime(dealTime);
        goodsBaseService.update(depFormScrapped);
        // 更新 报废单物品【DEP_FORM_SCRAPPED_MODEL】中价格的list
@@ -206,7 +217,7 @@
        }
        goodsBaseService.execBatchUpdate("update DEP_FORM_SCRAPPED_MODEL set TOTAL_AMOUNT=? where id=?", parameterList);
        //如果是A类物品,则更新 分发物品使用人【L_WH_PROCURE_MODEL_USER】 中 根据id 更新 在用数量(USE_COUNT)
        // 如果是A类物品,则更新 分发物品使用人【L_WH_PROCURE_MODEL_USER】 中 根据id 更新 在用数量(USE_COUNT)
        List<Object[]> procureModelUserIdList = new ArrayList<>();
        for (Map<String, Object> itemMap : bfModelList) {
            Long procureModelUserId = Convert.toLong(itemMap.get("PROCURE_MODEL_USER_ID"));
@@ -215,10 +226,11 @@
            }
            Integer counts = Convert.toInt(itemMap.get("COUNTS"));
//            StringBuilder sb = new StringBuilder("update L_WH_PROCURE_MODEL_USER set USE_COUNT=USE_COUNT-").append(counts);
//            sb.append(" where id=").append(procureModelUserId);
//            sb.append(" and USE_COUNT-").append(counts).append(" >=0");
//            goodsBaseService.update(sb.toString());
            // StringBuilder sb = new StringBuilder("update L_WH_PROCURE_MODEL_USER set
            // USE_COUNT=USE_COUNT-").append(counts);
            // sb.append(" where id=").append(procureModelUserId);
            // sb.append(" and USE_COUNT-").append(counts).append(" >=0");
            // goodsBaseService.update(sb.toString());
            Object[] one = new Object[3];
            one[0] = counts;
@@ -227,11 +239,12 @@
            procureModelUserIdList.add(one);
        }
        if (!CollectionUtils.isEmpty(procureModelUserIdList)) {
            goodsBaseService.execBatchUpdate("update L_WH_PROCURE_MODEL_USER set USE_COUNT=USE_COUNT- ?  where id= ? and USE_COUNT- ? >=0", procureModelUserIdList);
            goodsBaseService.execBatchUpdate(
                "update L_WH_PROCURE_MODEL_USER set USE_COUNT=USE_COUNT- ?  where id= ? and USE_COUNT- ? >=0",
                procureModelUserIdList);
        }
        //采购、调拨、出库等的物品型号【L_WH_PROCURE_MODEL】中 根据调拨单+型号 更新 在用数量
        // 采购、调拨、出库等的物品型号【L_WH_PROCURE_MODEL】中 根据调拨单+型号 更新 在用数量
        List<Object[]> procureModelParameterList = new ArrayList<>();
        for (Map.Entry<String, Integer> entry : procureModelMap.entrySet()) {
            String key = entry.getKey();
@@ -252,9 +265,11 @@
            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", procureModelParameterList);
        //当库存变动时调用该方法
        //lWhWarningCoreService.updateKuCun(Convert.toShort(warehouseType,(short) 0), warehouseId, allChangModelList, null, dealTime);
        // 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", procureModelParameterList);
        // 当库存变动时调用该方法
        // lWhWarningCoreService.updateKuCun(Convert.toShort(warehouseType,(short) 0), warehouseId, allChangModelList,
        // null, dealTime);
        return null;
    }
}
consum-base/src/main/java/com/consum/base/service/core/DepUsingFormBackCoreService.java
File was renamed from consum-base/src/main/java/com/consum/base/core/DepUsingFormBackCoreServiceImpl.java
@@ -1,10 +1,23 @@
package com.consum.base.core;
package com.consum.base.service.core;
import cn.hutool.core.convert.Convert;
import com.consum.base.core.service.LWhWarningCoreServiceImpl;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import com.consum.base.core.WhBusinessEnum;
import com.consum.base.core.utils.IdUtil;
import com.consum.base.core.utils.LockManage;
import com.consum.base.service.GoodsBaseServiceImpl;
import com.consum.base.service.GoodsBaseService;
import com.consum.base.service.LWarehouseFlowService;
import com.consum.base.service.LWhGoodsRecordService;
import com.consum.base.service.LWhGoodsService;
@@ -16,19 +29,9 @@
import com.iplatform.model.po.S_user_core;
import com.walker.infrastructure.utils.CollectionUtils;
import com.walker.web.ResponseValue;
import java.util.Arrays;
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;
import cn.hutool.core.convert.Convert;
import lombok.extern.slf4j.Slf4j;
/**
 * @ClassName DepFormScrappedCoreServiceImpl
@@ -40,9 +43,9 @@
@Service
@Slf4j
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
public class DepUsingFormBackCoreServiceImpl {
public class DepUsingFormBackCoreService {
    @Resource
    private GoodsBaseServiceImpl goodsBaseService;
    private GoodsBaseService goodsBaseService;
    @Resource
    private LWhGoodsService lWhGoodsService;
    @Resource
@@ -50,9 +53,9 @@
    @Resource
    private LWhGoodsRecordService lWhGoodsRecordServiceImpl;
    @Resource
    private LWarehouseFlowService lWarehouseFlowService;
    private LWarehouseFlowService lWarehouseFlowServiceImpl;
    @Resource
    private LWhWarningCoreServiceImpl lWhWarningCoreService;
    private LWhWarningCoreService lWhWarningCoreService;
    /**
     * 根据报废单报废:修改调拨单中可退回数量;仓库中物品状态设置为报废;生成一个保费流水;更新报废型号表中,物品价值
@@ -65,7 +68,7 @@
        // 查询报废单状态
        UsingFormBack depFormScrapped = new UsingFormBack(lWhFormBackId);
        depFormScrapped = goodsBaseService.get(depFormScrapped);
        //状态 1=待报废;2=已报废
        // 状态 1=待报废;2=已报废
        if (depFormScrapped == null || depFormScrapped.getStates() != 1) {
            return ResponseValue.error("请检查报废单");
        }
@@ -74,9 +77,11 @@
        String nickName = currentUser.getNick_name();
        // 根据报废单 查询需要报废的型号数量
        List<Map<String, Object>> bfModelList = goodsBaseService.select("SELECT scrGoods.TRANS_OUT_WAREHOUSE_TYPE,scrGoods.TRANS_OUT_WAREHOUSE_ID,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 USING_FORM_BACK_GOODS scrGoods LEFT JOIN USING_FORM_BACK_MODEL goodsModel ON scrgoods.id=goodsModel.USING_FORM_BACK_GOODS_ID WHERE scrGoods.USING_FORM_BACK_ID=?", new Object[]{lWhFormBackId});
        Map<Object, List<Map<String, Object>>> groupByModelIdMap = bfModelList.stream()
                .collect(Collectors.groupingBy(map -> map.get("BASE_GOODS_MODELS_ID")));
        List<Map<String, Object>> bfModelList = goodsBaseService.select(
            "SELECT scrGoods.TRANS_OUT_WAREHOUSE_TYPE,scrGoods.TRANS_OUT_WAREHOUSE_ID,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 USING_FORM_BACK_GOODS scrGoods LEFT JOIN USING_FORM_BACK_MODEL goodsModel ON scrgoods.id=goodsModel.USING_FORM_BACK_GOODS_ID WHERE scrGoods.USING_FORM_BACK_ID=?",
            new Object[] {lWhFormBackId});
        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();
@@ -89,15 +94,15 @@
        ArrayList<LWhGoodsRecord> lWhGoodsRecordList = new ArrayList<>();
        //采购、调拨、出库等的物品型号【L_WH_PROCURE_MODEL】中 根据调拨单+型号 更新 在用数量
        // 采购、调拨、出库等的物品型号【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;
            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"));
@@ -116,18 +121,19 @@
            whGoodsRecord.setBaseGoodsModelsId(baseGoodsModelsId);
            whGoodsRecord.setBaseGoodsModelsName(modelName);
            whGoodsRecord.setDealTime(dealTime);
            //本次调整类型 1=调增;2=调减
            // 本次调整类型 1=调增;2=调减
            whGoodsRecord.setThisType(2);
            //通过LockManage获得锁
            // 通过LockManage获得锁
            Object warehouseModelLockObj = LockManage.acquireLock(warehouseType, warehouseId, baseGoodsModelsId);
            int goodsModelNum = 0;
            synchronized (warehouseModelLockObj) {
                List<Long> warehouseIds = new ArrayList<>(Arrays.asList(warehouseId));
                goodsModelNum = lWhGoodsService.queryGoodsModelNum(warehouseType, warehouseIds, baseGoodsModelsId, 2, null);
                goodsModelNum =
                    lWhGoodsService.queryGoodsModelNum(warehouseType, warehouseIds, baseGoodsModelsId, 2, null);
                for (Map<String, Object> depFormScrappedModel : eachFfModelList) {
                    // 调拨单信息
                    Long transBusinessId = (Long) depFormScrappedModel.get("TRANS_BUSINESS_ID");
                    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"));
@@ -135,7 +141,8 @@
                    modelTotalNum += counts;
                    // 根据分发单、型号、使用人信息查询物品信息
                    List<Map<String, Object>> scrappedGoodsList = lWhGoodsService.queryScrappedGoods(warehouseType, warehouseId, transBusinessId, nowUserName, baseGoodsModelsId, (short) 2, 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("要退回的物品数量不足!");
                        // 手动回滚
@@ -145,21 +152,24 @@
                    // 放入物品ID等信息
                    depFormScrappedModel.put("scrappedGoodsList", scrappedGoodsList);
                    Long formScrappedModelPrice = scrappedGoodsList.stream().mapToLong(map -> (long) map.get("price")).sum();
                    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);
                    // 采购、调拨、出库等的物品型号【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());
                    List<Long> srappedGoodsIds =
                        scrappedGoodsList.stream().map(map -> (Long)map.get("id")).collect(Collectors.toList());
                    // 设置物品为报废状态
//                    lWhGoodsService.modGoodsTransfering(srappedGoodsIds, null, null, null, 3);
                    // lWhGoodsService.modGoodsTransfering(srappedGoodsIds, null, null, null, 3);
                    // 批量插入 进出库流水明细[L_WH_GOODS_RECORD_DETAILS]
                    lWhGoodsRecordDetailsService.sameGoodsInsertMore(srappedGoodsIds, whGoodsRecordId, (short) 2);
                    lWhGoodsRecordDetailsService.sameGoodsInsertMore(srappedGoodsIds, whGoodsRecordId, (short)2);
                }
            }
@@ -167,7 +177,7 @@
            whGoodsRecord.setEndCount(goodsModelNum - modelTotalNum);
            whGoodsRecord.setThisCount(modelTotalNum);
            whGoodsRecord.setTotalPrice(modelTotalPrice);
//            lWhGoodsRecordService.insert(whGoodsRecord);
            // lWhGoodsRecordService.insert(whGoodsRecord);
            lWhGoodsRecordList.add(whGoodsRecord);
        }
@@ -184,7 +194,7 @@
        warehouseFlow.setOperatorName(nickName);
        warehouseFlow.setDealTime(dealTime);
        // 插入流水总表
        int flowInsertFlag = lWarehouseFlowService.insert(warehouseFlow);
        int flowInsertFlag = lWarehouseFlowServiceImpl.insert(warehouseFlow);
        if (flowInsertFlag == 0) {
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            return null;
@@ -209,19 +219,20 @@
        }
        goodsBaseService.execBatchUpdate("update DEP_FORM_SCRAPPED_MODEL set TOTAL_AMOUNT=? where id=?", parameterList);
        //如果是A类物品,则更新 分发物品使用人【L_WH_PROCURE_MODEL_USER】 中 根据id 更新 在用数量(USE_COUNT)
        // 如果是A类物品,则更新 分发物品使用人【L_WH_PROCURE_MODEL_USER】 中 根据id 更新 在用数量(USE_COUNT)
        List<Object[]> procureModelUserIdList = new ArrayList<>();
        for (Map<String, Object> itemMap : bfModelList) {
            Long procureModelUserId = Convert.toLong(itemMap.get("PROCURE_MODEL_USER_ID"));
            if (procureModelUserId==null){
            if (procureModelUserId == null) {
                continue;
            }
            Integer counts = Convert.toInt(itemMap.get("COUNTS"));
//            StringBuilder sb = new StringBuilder("update L_WH_PROCURE_MODEL_USER set USE_COUNT=USE_COUNT-").append(counts);
//            sb.append(" where id=").append(procureModelUserId);
//            sb.append(" and USE_COUNT-").append(counts).append(" >=0");
//            goodsBaseService.update(sb.toString());
            // StringBuilder sb = new StringBuilder("update L_WH_PROCURE_MODEL_USER set
            // USE_COUNT=USE_COUNT-").append(counts);
            // sb.append(" where id=").append(procureModelUserId);
            // sb.append(" and USE_COUNT-").append(counts).append(" >=0");
            // goodsBaseService.update(sb.toString());
            Object[] one = new Object[3];
            one[0] = counts;
@@ -230,11 +241,12 @@
            procureModelUserIdList.add(one);
        }
        if (!CollectionUtils.isEmpty(procureModelUserIdList)) {
            goodsBaseService.execBatchUpdate("update L_WH_PROCURE_MODEL_USER set USE_COUNT=USE_COUNT- ?  where id= ? and USE_COUNT- ? >=0", procureModelUserIdList);
            goodsBaseService.execBatchUpdate(
                "update L_WH_PROCURE_MODEL_USER set USE_COUNT=USE_COUNT- ?  where id= ? and USE_COUNT- ? >=0",
                procureModelUserIdList);
        }
        //采购、调拨、出库等的物品型号【L_WH_PROCURE_MODEL】中 根据调拨单+型号 更新 在用数量
        // 采购、调拨、出库等的物品型号【L_WH_PROCURE_MODEL】中 根据调拨单+型号 更新 在用数量
        List<Object[]> procureModelParameterList = new ArrayList<>();
        for (Map.Entry<String, Integer> entry : procureModelMap.entrySet()) {
            String key = entry.getKey();
@@ -255,13 +267,13 @@
            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);
        // 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);
        // 操作入库,此时要按物品所属仓库 生成不同仓库入库的流水
        Map<String, List<Map<String, Object>>> groupByOutWarehouseIdMap = bfModelList.stream()
                .collect(Collectors.groupingBy(map -> map.get("TRANS_OUT_WAREHOUSE_TYPE") + "_" + map.get("TRANS_OUT_WAREHOUSE_ID")));
        //每个仓库一个流水表
        Map<String, List<Map<String, Object>>> groupByOutWarehouseIdMap = bfModelList.stream().collect(Collectors
            .groupingBy(map -> map.get("TRANS_OUT_WAREHOUSE_TYPE") + "_" + map.get("TRANS_OUT_WAREHOUSE_ID")));
        // 每个仓库一个流水表
        ArrayList<LWarehouseFlow> flowArrayList = new ArrayList<>();
        ArrayList<LWhGoodsRecord> flowRecordArrayList = new ArrayList<>();
@@ -269,7 +281,7 @@
            List<Map<String, Object>> eachWareHouseList = groupByOutWarehouseIdMap.get(outWarehouseTypeAndId);
            Map<String, Object> eachWarehouseModelMap = eachWareHouseList.get(0);
//            Integer inWareHouseType = Convert.toInt(eachWarehouseModelMap.get("TRANS_OUT_WAREHOUSE_TYPE"));
            // Integer inWareHouseType = Convert.toInt(eachWarehouseModelMap.get("TRANS_OUT_WAREHOUSE_TYPE"));
            Long inWarehouseId = Convert.toLong(eachWarehouseModelMap.get("TRANS_OUT_WAREHOUSE_ID"));
            String inWarehouseName = null;
            BaseWarehouse baseWarehouse = goodsBaseService.get(new BaseWarehouse(inWarehouseId));
@@ -293,11 +305,11 @@
            inWarehouseFlow.setDealTime(dealTime);
            flowArrayList.add(inWarehouseFlow);
            //按型号分 每个型号一个 L_WH_GOODS_RECORD
            Map<Object, List<Map<String, Object>>> eachWareHouseModelMap = eachWareHouseList.stream()
                    .collect(Collectors.groupingBy(map -> map.get("BASE_GOODS_MODELS_ID")));
            // 按型号分 每个型号一个 L_WH_GOODS_RECORD
            Map<Object, List<Map<String, Object>>> eachWareHouseModelMap =
                eachWareHouseList.stream().collect(Collectors.groupingBy(map -> map.get("BASE_GOODS_MODELS_ID")));
            for (Object key : eachWareHouseModelMap.keySet()) {
                Long baseGoodsModelsId = (Long) key;
                Long baseGoodsModelsId = (Long)key;
                List<Map<String, Object>> eachFfModelList = eachWareHouseModelMap.get(baseGoodsModelsId);
                Map<String, Object> eachFfModelBase = eachFfModelList.get(0);
@@ -317,50 +329,51 @@
                whGoodsRecord.setBaseGoodsModelsId(baseGoodsModelsId);
                whGoodsRecord.setBaseGoodsModelsName(modelName);
                whGoodsRecord.setDealTime(dealTime);
                //本次调整类型 1=调增;2=调减
                // 本次调整类型 1=调增;2=调减
                whGoodsRecord.setThisType(1);
                //通过LockManage获得锁
                // 通过LockManage获得锁
                Object warehouseModelLockObj = LockManage.acquireLock(0, inWarehouseId, baseGoodsModelsId);
                int goodsModelNum = 0;
                // 存放所有的物品id 价格等信息
                List<Map<String, Object>> scrappedAllGoodsList = new ArrayList<>();
                synchronized (warehouseModelLockObj) {
                    //查询期初数量
                    // 查询期初数量
                    List<Long> warehouseIds = new ArrayList<>(Arrays.asList(inWarehouseId));
                    goodsModelNum = lWhGoodsService.queryGoodsModelNum(0, warehouseIds, baseGoodsModelsId, 1, null);
                    for (Map<String, Object> depFormScrappedModel : eachFfModelList) {
                        scrappedAllGoodsList.addAll((List<Map<String, Object>>) depFormScrappedModel.get("scrappedGoodsList"));
                        scrappedAllGoodsList
                            .addAll((List<Map<String, Object>>)depFormScrappedModel.get("scrappedGoodsList"));
                    }
                    // 汇总出需要修改状态的物品id
                    List<Long> srappedGoodsIds = scrappedAllGoodsList.stream().map(map -> (Long) map.get("id")).collect(Collectors.toList());
                    List<Long> srappedGoodsIds =
                        scrappedAllGoodsList.stream().map(map -> (Long)map.get("id")).collect(Collectors.toList());
                    // 设置物品为入库未分发, 并设置所属仓库
                    lWhGoodsService.modGoodsTransfering(srappedGoodsIds, 0, inWarehouseId, warehouseName, 1);
                    // 使用人信息
                    // 批量插入 进出库流水明细[L_WH_GOODS_RECORD_DETAILS]
                    lWhGoodsRecordDetailsService.sameGoodsInsertMore(srappedGoodsIds, whGoodsRecordId, (short) 1);
                    lWhGoodsRecordDetailsService.sameGoodsInsertMore(srappedGoodsIds, whGoodsRecordId, (short)1);
                }
                // 上方物品的价格
                Long formScrappedModelPrice = scrappedAllGoodsList.stream().mapToLong(map -> (long) map.get("price")).sum();
                Long formScrappedModelPrice =
                    scrappedAllGoodsList.stream().mapToLong(map -> (long)map.get("price")).sum();
                whGoodsRecord.setInitialCount(goodsModelNum);
                whGoodsRecord.setEndCount(goodsModelNum + scrappedAllGoodsList.size());
                whGoodsRecord.setThisCount(scrappedAllGoodsList.size());
                whGoodsRecord.setTotalPrice(formScrappedModelPrice);
                //lWhGoodsRecordService.insert(whGoodsRecord);
                // lWhGoodsRecordService.insert(whGoodsRecord);
                flowRecordArrayList.add(whGoodsRecord);
            }
            // 提取baseGoodsModelsId并放入新的List中
            List<Long> allChangModelList = eachWareHouseList.stream()
                    .map(map -> Convert.toLong(map.get("BASE_GOODS_MODELS_ID")))
                    .distinct()
                    .collect(Collectors.toList());
            //当库存变动时调用该方法
            lWhWarningCoreService.updateKuCun((short) 0, inWarehouseId, allChangModelList, null, dealTime);
                .map(map -> Convert.toLong(map.get("BASE_GOODS_MODELS_ID"))).distinct().collect(Collectors.toList());
            // 当库存变动时调用该方法
            lWhWarningCoreService.updateKuCun((short)0, inWarehouseId, allChangModelList, null, dealTime);
        }
        // 插入流水总表
        flowInsertFlag = lWarehouseFlowService.insertBatch(flowArrayList);
        flowInsertFlag = lWarehouseFlowServiceImpl.insertBatch(flowArrayList);
        if (flowInsertFlag == 0) {
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            return null;
consum-base/src/main/java/com/consum/base/service/core/LWarehouseFlowCoreService.java
File was renamed from consum-base/src/main/java/com/consum/base/service/LWarehouseFlowCoreService.java
@@ -1,4 +1,4 @@
package com.consum.base.service;
package com.consum.base.service.core;
import java.util.ArrayList;
import java.util.Arrays;
@@ -20,6 +20,10 @@
import com.consum.base.core.utils.IdUtil;
import com.consum.base.core.utils.LockManage;
import com.consum.base.service.BaseGoodsTemplateService;
import com.consum.base.service.LWarehouseFlowService;
import com.consum.base.service.LWhGoodsRecordService;
import com.consum.base.service.LWhGoodsService;
import com.consum.model.po.BaseWarehouse;
import com.consum.model.po.LWarehouseFlow;
import com.consum.model.po.LWhFormProcure;
consum-base/src/main/java/com/consum/base/service/core/LWhFormInventoryCoreService.java
File was renamed from consum-base/src/main/java/com/consum/base/service/impl/LWhFormInventoryCoreService.java
@@ -1,4 +1,4 @@
package com.consum.base.service.impl;
package com.consum.base.service.core;
import java.util.ArrayList;
import java.util.Arrays;
consum-base/src/main/java/com/consum/base/service/core/LWhFormOutputCoreService.java
File was renamed from consum-base/src/main/java/com/consum/base/service/impl/LWhFormOutputCoreService.java
@@ -1,4 +1,4 @@
package com.consum.base.service.impl;
package com.consum.base.service.core;
import java.util.ArrayList;
import java.util.Arrays;
@@ -14,7 +14,6 @@
import com.consum.base.core.CodeGeneratorEnum;
import com.consum.base.core.CodeGeneratorService;
import com.consum.base.core.WhBusinessEnum;
import com.consum.base.core.service.LWhWarningCoreServiceImpl;
import com.consum.base.core.type.InAndOutPutType;
import com.consum.base.core.type.OutPutStatesType;
import com.consum.base.core.utils.IdUtil;
@@ -25,6 +24,7 @@
import com.consum.base.service.LWhGoodsRecordService;
import com.consum.base.service.LWhGoodsService;
import com.consum.base.service.LWhProcureModelService;
import com.consum.base.service.impl.LWhGoodsRecordDetailsService;
import com.consum.model.po.LWarehouseFlow;
import com.consum.model.po.LWhFormOutput;
import com.consum.model.po.LWhFormTransfer;
@@ -53,23 +53,23 @@
    private CodeGeneratorService codeGeneratorService;
    private LWhProcureModelService lWhProcureModelService;
    private LWhFormOutputService lWhFormOutputService;
    private LWhWarningCoreServiceImpl lWhWarningCoreService;
    private LWarehouseFlowService lWarehouseFlowService;
    private LWhWarningCoreService lWhWarningCoreService;
    private LWarehouseFlowService lWarehouseFlowServiceImpl;
    private LWhGoodsRecordDetailsService lWhGoodsRecordDetailsService;
    private LWhGoodsRecordService lWhGoodsRecordServiceImpl;
    @Autowired
    public LWhFormOutputCoreService(BaseGoodsTemplateService baseGoodsTemplateService, LWhGoodsService lWhGoodsService,
        CodeGeneratorService codeGeneratorService, LWhProcureModelService lWhProcureModelService,
        LWhFormOutputService lWhFormOutputService, LWarehouseFlowService lWarehouseFlowService,
        LWhFormOutputService lWhFormOutputService, LWarehouseFlowService lWarehouseFlowServiceImpl,
        LWhGoodsRecordDetailsService lWhGoodsRecordDetailsService, LWhGoodsRecordService lWhGoodsRecordServiceImpl,
        LWhWarningCoreServiceImpl lWhWarningCoreService) {
        LWhWarningCoreService lWhWarningCoreService) {
        this.baseGoodsTemplateService = baseGoodsTemplateService;
        this.lWhGoodsService = lWhGoodsService;
        this.codeGeneratorService = codeGeneratorService;
        this.lWhProcureModelService = lWhProcureModelService;
        this.lWhFormOutputService = lWhFormOutputService;
        this.lWarehouseFlowService = lWarehouseFlowService;
        this.lWarehouseFlowServiceImpl = lWarehouseFlowServiceImpl;
        this.lWhGoodsRecordDetailsService = lWhGoodsRecordDetailsService;
        this.lWhGoodsRecordServiceImpl = lWhGoodsRecordServiceImpl;
        this.lWhWarningCoreService = lWhWarningCoreService;
@@ -292,7 +292,7 @@
        warehouseFlow.setOperatorName(nickName);
        warehouseFlow.setDealTime(dealTime);
        // 插入流水总表
        int flowInsertFlag = lWarehouseFlowService.insert(warehouseFlow);
        int flowInsertFlag = lWarehouseFlowServiceImpl.insert(warehouseFlow);
        if (flowInsertFlag == 0) {
            return null;
        }
consum-base/src/main/java/com/consum/base/service/core/LWhFormProcureCoreService.java
File was renamed from consum-base/src/main/java/com/consum/base/service/impl/LWhFormProcureCoreService.java
@@ -1,6 +1,5 @@
package com.consum.base.service.impl;
package com.consum.base.service.core;
import com.consum.base.service.LWarehouseFlowCoreService;
import com.consum.base.service.LWhFormProcureService;
import com.consum.base.service.LWhProcureModelService;
import java.util.List;
@@ -13,7 +12,6 @@
import org.springframework.transaction.annotation.Transactional;
import com.consum.base.core.WhBusinessEnum;
import com.consum.base.core.service.LWhWarningCoreServiceImpl;
import com.consum.model.po.LWarehouseFlow;
import com.consum.model.po.LWhFormProcure;
import com.consum.model.po.LWhProcureModel;
@@ -40,7 +38,7 @@
    private LWhFormProcureService lWhFormProcureServiceImpl;
    @Resource
    private LWhWarningCoreServiceImpl lWhWarningCoreService;
    private LWhWarningCoreService lWhWarningCoreService;
    @Resource
    private LWarehouseFlowCoreService lWarehouseFlowService;
consum-base/src/main/java/com/consum/base/service/core/LWhFormScrappedCoreService.java
File was renamed from consum-base/src/main/java/com/consum/base/service/impl/LWhFormScrappedCoreService.java
@@ -1,4 +1,4 @@
package com.consum.base.service.impl;
package com.consum.base.service.core;
import java.util.ArrayList;
import java.util.Arrays;
@@ -13,15 +13,15 @@
import org.springframework.transaction.interceptor.TransactionAspectSupport;
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.base.service.BaseGoodsTemplateService;
import com.consum.base.service.GoodsBaseServiceImpl;
import com.consum.base.service.GoodsBaseService;
import com.consum.base.service.LWarehouseFlowService;
import com.consum.base.service.LWhFormScrappedGoodsService;
import com.consum.base.service.LWhGoodsRecordService;
import com.consum.base.service.LWhGoodsService;
import com.consum.base.service.impl.LWhGoodsRecordDetailsService;
import com.consum.model.po.LWarehouseFlow;
import com.consum.model.po.LWhFormScrapped;
import com.consum.model.po.LWhFormScrappedGoods;
@@ -43,28 +43,27 @@
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
public class LWhFormScrappedCoreService {
    private GoodsBaseServiceImpl goodsBaseService;
    private GoodsBaseService goodsBaseService;
    private LWhFormScrappedGoodsService lWhFormScrappedGoodsService;
    private BaseGoodsTemplateService baseGoodsTemplateService;
    private LWhGoodsService lWhGoodsService;
    private LWhGoodsRecordDetailsService lWhGoodsRecordDetailsService;
    private LWhGoodsRecordService lWhGoodsRecordServiceImpl;
    private LWarehouseFlowService lWarehouseFlowService;
    private LWhWarningCoreServiceImpl lWhWarningCoreService;
    private LWarehouseFlowService lWarehouseFlowServiceImpl;
    private LWhWarningCoreService lWhWarningCoreService;
    @Autowired
    public LWhFormScrappedCoreService(GoodsBaseServiceImpl goodsBaseService,
    public LWhFormScrappedCoreService(GoodsBaseService goodsBaseService,
        LWhFormScrappedGoodsService lWhFormScrappedGoodsService, BaseGoodsTemplateService baseGoodsTemplateService,
        LWhGoodsService lWhGoodsService, LWhGoodsRecordDetailsService lWhGoodsRecordDetailsService,
        LWhGoodsRecordService lWhGoodsRecordServiceImpl, LWarehouseFlowService lWarehouseFlowService,
        LWhWarningCoreServiceImpl lWhWarningCoreService) {
        // this.lWhFormScrappedService = lWhFormScrappedService;
        LWhGoodsRecordService lWhGoodsRecordServiceImpl, LWarehouseFlowService lWarehouseFlowServiceImpl,
        LWhWarningCoreService lWhWarningCoreService) {
        this.lWhFormScrappedGoodsService = lWhFormScrappedGoodsService;
        this.baseGoodsTemplateService = baseGoodsTemplateService;
        this.lWhGoodsService = lWhGoodsService;
        this.lWhGoodsRecordDetailsService = lWhGoodsRecordDetailsService;
        this.lWhGoodsRecordServiceImpl = lWhGoodsRecordServiceImpl;
        this.lWarehouseFlowService = lWarehouseFlowService;
        this.lWarehouseFlowServiceImpl = lWarehouseFlowServiceImpl;
        this.goodsBaseService = goodsBaseService;
        this.lWhWarningCoreService = lWhWarningCoreService;
    }
@@ -211,7 +210,7 @@
        warehouseFlow.setOperatorName(nickName);
        warehouseFlow.setDealTime(dealTime);
        // 插入流水总表
        int flowInsertFlag = lWarehouseFlowService.insert(warehouseFlow);
        int flowInsertFlag = lWarehouseFlowServiceImpl.insert(warehouseFlow);
        if (flowInsertFlag == 0) {
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            return null;
consum-base/src/main/java/com/consum/base/service/core/LWhFormTransferCoreService.java
File was renamed from consum-base/src/main/java/com/consum/base/service/impl/LWhFormTransferCoreService.java
@@ -1,4 +1,4 @@
package com.consum.base.service.impl;
package com.consum.base.service.core;
import java.util.ArrayList;
import java.util.Arrays;
@@ -15,12 +15,11 @@
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import com.consum.base.core.WhBusinessEnum;
import com.consum.base.core.service.LWhWarningCoreServiceImpl;
import com.consum.base.core.type.TransferStatesType;
import com.consum.base.core.utils.IdUtil;
import com.consum.base.core.utils.LockManage;
import com.consum.base.service.BaseGoodsTemplateService;
import com.consum.base.service.GoodsBaseServiceImpl;
import com.consum.base.service.GoodsBaseService;
import com.consum.base.service.LGoodsUserRecordServiceImpl;
import com.consum.base.service.LGoodsWhRecordServiceImpl;
import com.consum.base.service.LWarehouseFlowService;
@@ -28,6 +27,7 @@
import com.consum.base.service.LWhGoodsRecordService;
import com.consum.base.service.LWhGoodsService;
import com.consum.base.service.LWhProcureModelService;
import com.consum.base.service.impl.LWhGoodsRecordDetailsService;
import com.consum.model.po.LGoodsUserRecord;
import com.consum.model.po.LWarehouseFlow;
import com.consum.model.po.LWhFormTransfer;
@@ -65,7 +65,7 @@
    @Resource
    private LWhFormOutputCoreService lWhFormOutputCoreService;
    @Resource
    private GoodsBaseServiceImpl goodsBaseService;
    private GoodsBaseService goodsBaseService;
    @Resource
    private LWhGoodsRecordService lWhGoodsRecordServiceImpl;
    @Resource
@@ -73,13 +73,13 @@
    @Resource
    private LGoodsWhRecordServiceImpl lGoodsWhRecordService;
    @Resource
    private LWarehouseFlowService lWarehouseFlowService;
    private LWarehouseFlowService lWarehouseFlowServiceImpl;
    @Resource
    private LWhGoodsRecordDetailsService lWhGoodsRecordDetailsService;
    @Resource
    private LGoodsUserRecordServiceImpl lGoodsUserRecordService;
    @Resource
    private LWhWarningCoreServiceImpl lWhWarningCoreService;
    private LWhWarningCoreService lWhWarningCoreService;
    /**
     * 执行调拨出库操作
@@ -272,7 +272,7 @@
        warehouseFlow.setOperatorName(nickName);
        warehouseFlow.setDealTime(dealTime);
        // 插入流水总表
        int flowInsertFlag = lWarehouseFlowService.insert(warehouseFlow);
        int flowInsertFlag = lWarehouseFlowServiceImpl.insert(warehouseFlow);
        if (flowInsertFlag == 0) {
            return null;
        }
@@ -356,7 +356,7 @@
        inwarehouseFlow.setOperatorId(userId);
        inwarehouseFlow.setOperatorName(nickName);
        inwarehouseFlow.setDealTime(dealTime);
        lWarehouseFlowService.insert(inwarehouseFlow);
        lWarehouseFlowServiceImpl.insert(inwarehouseFlow);
        ArrayList<Long> allChangModelList = new ArrayList<>();
        LWhGoodsRecord lWhGoodsRecord = new LWhGoodsRecord();
consum-base/src/main/java/com/consum/base/service/core/LWhWarningCoreService.java
File was renamed from consum-base/src/main/java/com/consum/base/core/service/LWhWarningCoreServiceImpl.java
@@ -1,4 +1,4 @@
package com.consum.base.core.service;
package com.consum.base.service.core;
import java.util.ArrayList;
import java.util.List;
@@ -15,7 +15,7 @@
import com.consum.base.core.utils.IdUtil;
import com.consum.base.service.BaseGoodsModelsService;
import com.consum.base.service.BaseWarehouseService;
import com.consum.base.service.LWhWarningServiceImpl;
import com.consum.base.service.LWhWarningService;
import com.consum.model.po.BaseWarehouse;
import com.consum.model.po.FinSysTenantUser;
import com.consum.model.po.WhWarning;
@@ -31,10 +31,10 @@
 **/
@Service
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
public class LWhWarningCoreServiceImpl {
public class LWhWarningCoreService {
    @Resource
    private LWhWarningServiceImpl lWhWarningService;
    private LWhWarningService lWhWarningService;
    @Resource
    private BaseWarehouseService baseWarehouseService;
    @Resource
@@ -56,7 +56,6 @@
        // 获取到达到阈值的物品
        List<Map<String, Object>> kuCunNotifyList =
            lWhWarningService.checkKuCun(warehouseType, warehouseId, baseModelIdList);
        // log.info("没有达到阈值的物品");
        if (CollectionUtils.isEmpty(kuCunNotifyList)) {
            kuCunNormalModel(warehouseType, warehouseId, baseModelIdList);
            return;
consum-base/src/main/java/com/consum/base/service/impl/BaseWarehouseServiceImpl.java
@@ -14,7 +14,7 @@
import com.consum.base.pojo.BaseWarehouseParam;
import com.consum.base.service.BaseWarehouseService;
import com.consum.base.service.FinSysTenantService;
import com.consum.base.service.SDictDataServiceImpl;
import com.consum.base.service.SDictDataService;
import com.consum.model.po.BaseWarehouse;
import com.consum.model.po.FinSysTenant;
import com.consum.model.po.FinSysTenantUser;
@@ -37,7 +37,7 @@
    @Autowired
    private FinSysTenantService finSysTenantService;
    @Autowired
    private SDictDataServiceImpl sDictDataService;
    private SDictDataService sDictDataService;
    /**
     * @Description 新增
consum-base/src/main/java/com/consum/base/service/impl/DepFormScrappedServiceImpl.java
File was renamed from consum-base/src/main/java/com/consum/base/service/DepFormScrappedServiceImpl.java
@@ -1,9 +1,19 @@
package com.consum.base.service;
package com.consum.base.service.impl;
import cn.hutool.core.convert.Convert;
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;
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;
@@ -11,7 +21,21 @@
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.*;
import com.consum.base.service.BaseCategoryService;
import com.consum.base.service.BaseGoodsModelsService;
import com.consum.base.service.DepFormScrappedService;
import com.consum.base.service.FinSysTenantDepartmentService;
import com.consum.base.service.LWhFormTransferService;
import com.consum.base.service.SDictDataService;
import com.consum.base.service.core.DepFormScrappedCoreService;
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.fasterxml.jackson.databind.ObjectMapper;
import com.iplatform.model.po.S_user_core;
import com.walker.db.page.GenericPager;
@@ -19,17 +43,8 @@
import com.walker.infrastructure.utils.DateUtils;
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 cn.hutool.core.convert.Convert;
/**
 * @ClassName DepFormScrappedServiceImpl
@@ -39,7 +54,7 @@
 * @Version 1.0
 **/
@Service
public class DepFormScrappedServiceImpl extends BaseServiceImpl {
public class DepFormScrappedServiceImpl extends BaseServiceImpl implements DepFormScrappedService {
    @Resource
    private CodeGeneratorService codeGeneratorService;
@@ -50,20 +65,21 @@
    @Resource
    private BaseCategoryService baseCategoryService;
    @Resource
    private SDictDataServiceImpl sDictDataService;
    private SDictDataService sDictDataService;
    @Resource
    private BaseGoodsModelsService baseGoodsModelsService;
    @Resource
    private DepFormScrappedCoreServiceImpl depFormScrappedCoreService;
    private DepFormScrappedCoreService depFormScrappedCoreService;
    @Transactional
    public ResponseValue add(LDeptFormScrappedParam param, S_user_core currentUser, FinSysTenantUser sysInfo) {
    @Override
    public void add(LDeptFormScrappedParam param, S_user_core currentUser, FinSysTenantUser sysInfo) throws Exception {
        long dealTime = DateUtils.getDateTimeNumber(System.currentTimeMillis());
        //1.新增报废单记录
        // 1.新增报废单记录
        DepFormScrapped lDeptFormScrapped = new DepFormScrapped();
        //报废单id
        // 报废单id
        long lWhFormScrappedId = IdUtil.generateId();
        lDeptFormScrapped.setId(lWhFormScrappedId);
        lDeptFormScrapped.setBusinessFormCode(codeGeneratorService.createBusinessFormCode(CodeGeneratorEnum.Scrapped));
@@ -74,7 +90,7 @@
        FinSysTenantDepartment sysTenantDepartment = departmentService.getById(param.getDepartmentId());
        if (sysTenantDepartment == null) {
            log.error("部门不存在");
            return ResponseValue.error("部门不存在");
            throw new RuntimeException("部门不存在");
        }
        lDeptFormScrapped.setOutWarehouseName(sysTenantDepartment.getName());
@@ -83,7 +99,7 @@
        lDeptFormScrapped.setDealTime(param.getDealTime());
        lDeptFormScrapped.setAgencyId(Long.valueOf(sysInfo.getTenantId()));
        lDeptFormScrapped.setAgencyName(sysInfo.getTenantName());
        //根据部门id查询部门
        // 根据部门id查询部门
        FinSysTenantDepartment department = this.departmentService.getById(sysInfo.getSysDeptId());
        if (department != null) {
            lDeptFormScrapped.setDepartmentId(sysInfo.getSysDeptId());
@@ -93,10 +109,10 @@
        lDeptFormScrapped.setCreateTime(dealTime);
        lDeptFormScrapped.setStates(1);
        //2.报废单物品【DEP_FORM_SCRAPPED_GOODS】
        // 2.报废单物品【DEP_FORM_SCRAPPED_GOODS】
        List<DepFormScrappedGoodsParam> scrappedGoodsInfo = param.getGoods();
        if (CollectionUtils.isEmpty(scrappedGoodsInfo)) {
            return ResponseValue.error("报废单物品不能为空");
            throw new RuntimeException("报废单物品不能为空");
        }
        ArrayList<DepFormScrappedGoods> scrappedGoodsArrayList = new ArrayList<>();
        ArrayList<DepFormScrappedModel> modelArrayList = new ArrayList<>();
@@ -119,7 +135,7 @@
            Long transBusinessId = depFormScrappedGoodsParam.getTransBusinessId();
            LWhFormTransfer lWhFormTransfer = lWhFormTransferService.get(new LWhFormTransfer(transBusinessId));
            if (lWhFormTransfer == null) {
                return ResponseValue.error("报废单物品不能为空");
                throw new RuntimeException("报废单物品不能为空");
            }
            depFormScrappedGoods.setTransBusinessId(transBusinessId);
@@ -130,32 +146,34 @@
            // 型号信息
            List<DepFormScrappedModelParam> modelList = depFormScrappedGoodsParam.getModels();
            if (CollectionUtils.isEmpty(modelList)) {
                return ResponseValue.error("报废单物品型号不能为空");
                throw new RuntimeException("报废单物品型号不能为空");
            }
            //获取报废原因code
            List<Long> scrappedCodeList = modelList.stream().map(params -> params.getScrappedCode()).collect(Collectors.toList());
            //根据报废原因code查询数据字典
            // 获取报废原因code
            List<Long> scrappedCodeList =
                modelList.stream().map(params -> params.getScrappedCode()).collect(Collectors.toList());
            // 根据报废原因code查询数据字典
            List<SDictData> SDictDataList = sDictDataService.selectByScrappedCodeList(scrappedCodeList);
            Map<Long, String> scrappedNameMap = SDictDataList.stream().collect(Collectors.toMap(s -> s.getDict_code(), s -> s.getDict_label()));
            Map<Long, String> scrappedNameMap =
                SDictDataList.stream().collect(Collectors.toMap(s -> s.getDict_code(), s -> s.getDict_label()));
            for (DepFormScrappedModelParam depFormScrappedModelParam : modelList) {
                DepFormScrappedModel depFormScrappedModel = new DepFormScrappedModel();
                depFormScrappedModel.setId(IdUtil.generateId());
                depFormScrappedModel.setDepFormScrappedId(lWhFormScrappedId);
                depFormScrappedModel.setDepFormScrappedGoodsId(depFormScrappedGoods.getId());
                //报废原因
                // 报废原因
                depFormScrappedModel.setScrappedCode(depFormScrappedModelParam.getScrappedCode());
                depFormScrappedModel.setScrappedName(scrappedNameMap.get(depFormScrappedModel.getScrappedCode()));
                // 物品 及 型号 信息
                Long baseGoodsModelsId = depFormScrappedModelParam.getBaseGoodsModelsId();
                if (baseGoodsModelsId == null) {
                    return ResponseValue.error("报废单物品型号不能为空");
                    throw new RuntimeException("报废单物品型号不能为空");
                }
                List<Map<String, Object>> modelInfoList = baseGoodsModelsService.queryGoodsModelInfo(baseGoodsModelsId);
                if (CollectionUtils.isEmpty(modelInfoList)) {
                    return ResponseValue.error("未查询到报废单物品型号");
                    throw new RuntimeException("未查询到报废单物品型号");
                }
                Map<String, Object> modelInfo = modelInfoList.get(0);
                depFormScrappedModel.setBaseGoodsTemplateId(Convert.toLong(modelInfo.get("goodsId")));
@@ -165,62 +183,64 @@
                depFormScrappedModel.setBaseGoodsModelsId(baseGoodsModelsId);
                depFormScrappedModel.setBaseGoodsModelsName(Convert.toStr(modelInfo.get("modelName")));
                //调拨单信息
                // 调拨单信息
                depFormScrappedModel.setProcureModelUserId(depFormScrappedModelParam.getModelUserId());
                depFormScrappedModel.setGoodsUserName(depFormScrappedModelParam.getNowUserName());
                depFormScrappedModel.setInitialCount(depFormScrappedModelParam.getGoodsNum());
                depFormScrappedModel.setUseCount(depFormScrappedModelParam.getUserUseCount());
                depFormScrappedModel.setCounts(depFormScrappedModelParam.getCounts());
                //增加到批量插入list
                // 增加到批量插入list
                modelArrayList.add(depFormScrappedModel);
            }
            //增加到批量插入list
            // 增加到批量插入list
            scrappedGoodsArrayList.add(depFormScrappedGoods);
        }
        int flag1 = this.insert(lDeptFormScrapped);
        if (flag1 == 0) {
            log.error("新增报废单失败");
            return ResponseValue.error("新增报废单失败");
            throw new RuntimeException("新增报废单失败");
        }
        int i = insertBatch(scrappedGoodsArrayList);
        int i2 = insertBatch(modelArrayList);
        depFormScrappedCoreService.updateScrapped(lWhFormScrappedId,currentUser,dealTime);
        return ResponseValue.success();
        insertBatch(scrappedGoodsArrayList);
        insertBatch(modelArrayList);
        depFormScrappedCoreService.updateScrapped(lWhFormScrappedId, currentUser, dealTime);
    }
    /**
     * @Description 列表查询
     */
    private static String QUERY_LIST = "SELECT scrap.id,scrap.BUSINESS_FORM_CODE,scrap.AGENCY_NAME,scrap.DEPARTMENT_NAME,scrap.OPERATOR_NAME,scrap.DEAL_TIME,model.BASE_GOODS_TEMPLATE_ID,model.BASE_GOODS_TEMPLATE_NAME,SUM(model.COUNTS) total_Count,model.unit 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 QUERY_LIST_END = " GROUP BY scrap.id,scrap.BUSINESS_FORM_CODE,scrap.DEPARTMENT_NAME,scrap.OPERATOR_NAME,scrap.DEAL_TIME,model.BASE_GOODS_TEMPLATE_ID,model.BASE_GOODS_TEMPLATE_NAME ORDER BY scrap.DEAL_TIME DESC";
    private static String QUERY_LIST =
        "SELECT scrap.id,scrap.BUSINESS_FORM_CODE,scrap.AGENCY_NAME,scrap.DEPARTMENT_NAME,scrap.OPERATOR_NAME,scrap.DEAL_TIME,model.BASE_GOODS_TEMPLATE_ID,model.BASE_GOODS_TEMPLATE_NAME,SUM(model.COUNTS) total_Count,model.unit 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 QUERY_LIST_END =
        " GROUP BY scrap.id,scrap.BUSINESS_FORM_CODE,scrap.DEPARTMENT_NAME,scrap.OPERATOR_NAME,scrap.DEAL_TIME,model.BASE_GOODS_TEMPLATE_ID,model.BASE_GOODS_TEMPLATE_NAME ORDER BY scrap.DEAL_TIME DESC";
    @Override
    public GenericPager<Map<String, Object>> queryList(LDeptFormScrappedQry param) {
        HashMap<String, Object> paramts = new HashMap<>();
        StringBuilder sql = new StringBuilder(QUERY_LIST);
        //报废单号
        // 报废单号
        if (!StringUtils.isEmpty(param.getBusinessFormCode())) {
            sql.append(" and scrap.BUSINESS_FORM_CODE = :businessFormCode ");
            paramts.put("businessFormCode", param.getBusinessFormCode());
        }
        //机构
        // 机构
        if (param.getAgencyId() != null) {
            sql.append(" and scrap.AGENCY_ID = :agencyId ");
            paramts.put("agencyId", param.getAgencyId());
        }
        //物品名称
        // 物品名称
        if (!StringUtils.isEmpty(param.getGoodsTemplateName())) {
            sql.append(" and model.BASE_GOODS_TEMPLATE_NAME LIKE :goodsTemplateName ");
            paramts.put("goodsTemplateName", StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT);
            paramts.put("goodsTemplateName",
                StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT);
        }
        //创建人
        // 创建人
        if (!StringUtils.isEmpty(param.getOperatorName())) {
            sql.append(" and scrap.OPERATOR_NAME LIKE :operatorName ");
            paramts.put("operatorName", StringUtils.CHAR_PERCENT + param.getOperatorName() + StringUtils.CHAR_PERCENT);
        }
        //报废时间
        // 报废时间
        if (param.getStartTime() != null) {
            sql.append(" and scrap.DEAL_TIME >=:dealTimeStart ");
            paramts.put("dealTimeStart", param.getStartTime() * 1000000);
@@ -233,20 +253,20 @@
        return selectSplit(sql.toString(), paramts, param.getPageNum(), param.getPageSize(), new MapperUtil());
    }
    /**
     * @Description 根据id查询详情
     */
    @Override
    public DepFormScrappedExtendVo getById(Long id) {
        DepFormScrappedExtendVo scrappedExtend = new DepFormScrappedExtendVo();
        //1.查询报废单
        // 1.查询报废单
        DepFormScrapped lWhFormScrapped = this.get(new DepFormScrapped(id));
        if (lWhFormScrapped != null) {
            BeanUtils.copyProperties(lWhFormScrapped, scrappedExtend);
        }
        ObjectMapper objectMapper = new ObjectMapper();
        //2.查询报废单物品
        // 2.查询报废单物品
        DepFormScrappedGoods goodsQuery = new DepFormScrappedGoods();
        goodsQuery.setDepFormScrappedId(id);
        List<DepFormScrappedGoods> formScrappedGoodsList = select(goodsQuery);
@@ -259,10 +279,8 @@
            depFormScrappedModel.setDepFormScrappedGoodsId(scrappedGoodsId);
            List<DepFormScrappedModel> scrappedModelList = select(depFormScrappedModel);
            List<List<DepFormScrappedModel>> modelList = scrappedModelList.stream()
                .collect(Collectors.groupingBy(DepFormScrappedModel::getBaseGoodsModelsId))
                .values().stream()
                .map(list -> list.stream().collect(Collectors.toList()))
                .collect(Collectors.toList());
                .collect(Collectors.groupingBy(DepFormScrappedModel::getBaseGoodsModelsId)).values().stream()
                .map(list -> list.stream().collect(Collectors.toList())).collect(Collectors.toList());
            scrappedGoodsMap.put("models", modelList);
            goodsList.add(scrappedGoodsMap);
@@ -271,18 +289,20 @@
        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,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 =
        "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";
    @Override
    public List<Map<String, Object>> export(Long id, String agencyId) {
        HashMap<String, Object> paramts = new HashMap<>();
        StringBuilder sql = new StringBuilder(EXPORT_SQL);
        //报废单号
        // 报废单号
        if (id != null) {
            sql.append(" and scrap.id = :id");
            paramts.put("id", id);
        }
        //机构
        // 机构
        sql.append(" and scrap.AGENCY_ID = :agencyId ");
        if (agencyId != null) {
            paramts.put("agencyId", agencyId);
@@ -290,31 +310,33 @@
        return select(sql.append(EXPORT_SQL_END).toString(), paramts, new MapperUtil());
    }
    @Override
    public List<Map<String, Object>> listByModel(LDeptFormScrappedQry param) {
        HashMap<String, Object> paramts = new HashMap<>();
        StringBuilder sql = new StringBuilder(EXPORT_SQL);
        //报废单id
        // 报废单id
        if (param.getId() != null) {
            sql.append(" and scrap.id = :id");
            paramts.put("id", param.getId());
        }
        //报废单号
        // 报废单号
        if (param.getBusinessFormCode() != null) {
            sql.append(" and scrap.BUSINESS_FORM_CODE= :businessFormCode");
            paramts.put("businessFormCode", param.getBusinessFormCode());
        }
        //物品名称
        // 物品名称
        if (StringUtils.isNotEmpty(param.getGoodsTemplateName())) {
            sql.append(" and model.BASE_GOODS_TEMPLATE_NAME LIKE :goodsTemplateName ");
            paramts.put("goodsTemplateName", StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT);
            paramts.put("goodsTemplateName",
                StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT);
        }
        //规格型号
        // 规格型号
        if (param.getBaseGoodsModelsId() != null) {
            sql.append("and model.BASE_GOODS_MODELS_ID =:baseGoodsModelsId ");
            paramts.put("baseGoodsModelsId", param.getBaseGoodsModelsId());
        }
        //机构
        // 机构
        if (param.getAgencyId() != null) {
            sql.append(" and scrap.AGENCY_ID = :agencyId ");
            paramts.put("agencyId", param.getAgencyId());
@@ -324,12 +346,12 @@
            sql.append(" and scrap.OUT_WAREHOUSE_ID= :departmentId");
            paramts.put("departmentId", param.getDepartmentId());
        }
        //创建人
        // 创建人
        if (!StringUtils.isEmpty(param.getOperatorName())) {
            sql.append(" and scrap.OPERATOR_NAME LIKE :operatorName ");
            paramts.put("operatorName", StringUtils.CHAR_PERCENT + param.getOperatorName() + StringUtils.CHAR_PERCENT);
        }
        //报废时间
        // 报废时间
        if (param.getStartTime() != null) {
            sql.append(" and scrap.DEAL_TIME >=:dealTimeStart ");
            paramts.put("dealTimeStart", param.getStartTime() * 1000000);
@@ -341,31 +363,33 @@
        return select(sql.append(EXPORT_SQL_END).toString(), paramts, new MapperUtil());
    }
    @Override
    public GenericPager<Map<String, Object>> listByModel2(LDeptFormScrappedQry param) {
        HashMap<String, Object> paramts = new HashMap<>();
        StringBuilder sql = new StringBuilder(EXPORT_SQL);
        //报废单id
        // 报废单id
        if (param.getId() != null) {
            sql.append(" and scrap.id = :id");
            paramts.put("id", param.getId());
        }
        //报废单号
        // 报废单号
        if (param.getBusinessFormCode() != null) {
            sql.append(" and scrap.BUSINESS_FORM_CODE= :businessFormCode");
            paramts.put("businessFormCode", param.getBusinessFormCode());
        }
        //物品名称
        // 物品名称
        if (StringUtils.isNotEmpty(param.getGoodsTemplateName())) {
            sql.append(" and model.BASE_GOODS_TEMPLATE_NAME LIKE :goodsTemplateName ");
            paramts.put("goodsTemplateName", StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT);
            paramts.put("goodsTemplateName",
                StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT);
        }
        //规格型号
        // 规格型号
        if (param.getBaseGoodsModelsId() != null) {
            sql.append("and model.BASE_GOODS_MODELS_ID =:baseGoodsModelsId ");
            paramts.put("baseGoodsModelsId", param.getBaseGoodsModelsId());
        }
        //机构
        // 机构
        if (param.getAgencyId() != null) {
            sql.append(" and scrap.AGENCY_ID = :agencyId ");
            paramts.put("agencyId", param.getAgencyId());
@@ -375,12 +399,12 @@
            sql.append(" and scrap.OUT_WAREHOUSE_ID= :departmentId");
            paramts.put("departmentId", param.getDepartmentId());
        }
        //创建人
        // 创建人
        if (!StringUtils.isEmpty(param.getOperatorName())) {
            sql.append(" and scrap.OPERATOR_NAME LIKE :operatorName ");
            paramts.put("operatorName", StringUtils.CHAR_PERCENT + param.getOperatorName() + StringUtils.CHAR_PERCENT);
        }
        //报废时间
        // 报废时间
        if (param.getStartTime() != null) {
            sql.append(" and scrap.DEAL_TIME >=:dealTimeStart ");
            paramts.put("dealTimeStart", param.getStartTime() * 1000000);
@@ -389,30 +413,9 @@
            sql.append(" and scrap.DEAL_TIME <:dealTimeEnd ");
            paramts.put("dealTimeEnd", param.getEndTime() * 1000000 + 240000);
        }
        return selectSplit(sql.append(EXPORT_SQL_END).toString(),paramts, param.getPageNum(), param.getPageSize(),  new MapperUtil());
        return selectSplit(sql.append(EXPORT_SQL_END).toString(), paramts, param.getPageNum(), param.getPageSize(),
            new MapperUtil());
//        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/impl/GoodsBaseServiceImpl.java
New file
@@ -0,0 +1,18 @@
package com.consum.base.service.impl;
import com.consum.base.service.GoodsBaseService;
import org.springframework.stereotype.Service;
import com.walker.jdbc.service.BaseServiceImpl;
/**
 * @ClassName GoodsBaseServiceImpl
 *
 * @Date 2023/11/2
 * @Description
 * @Version 1.0
 **/
@Service
public class GoodsBaseServiceImpl extends BaseServiceImpl implements GoodsBaseService {
}
consum-base/src/main/java/com/consum/base/service/impl/LWhFormInventoryServiceImpl.java
@@ -1,5 +1,6 @@
package com.consum.base.service.impl;
import com.consum.base.service.core.LWhFormInventoryCoreService;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
consum-base/src/main/java/com/consum/base/service/impl/LWhFormOutputServiceImpl.java
@@ -1,5 +1,6 @@
package com.consum.base.service.impl;
import com.consum.base.service.core.LWhFormOutputCoreService;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
consum-base/src/main/java/com/consum/base/service/impl/LWhFormScrappedServiceImpl.java
@@ -40,7 +40,8 @@
import com.consum.base.service.LWhFormScrappedGoodsService;
import com.consum.base.service.LWhFormScrappedService;
import com.consum.base.service.LWhGoodsService;
import com.consum.base.service.SDictDataServiceImpl;
import com.consum.base.service.SDictDataService;
import com.consum.base.service.core.LWhFormScrappedCoreService;
import com.consum.model.po.BaseGoodsModels;
import com.consum.model.po.BaseGoodsTemplate;
import com.consum.model.po.BaseWarehouse;
@@ -74,7 +75,7 @@
    @Autowired
    private LWhFormScrappedGoodsService scrappedGoodsService;
    @Autowired
    private SDictDataServiceImpl sDictDataService;
    private SDictDataService sDictDataService;
    @Autowired
    private BaseGoodsModelsService baseGoodsModelsService;
    @Autowired
consum-base/src/main/java/com/consum/base/service/impl/LWhGoodsStatisticsServiceImpl.java
New file
@@ -0,0 +1,107 @@
package com.consum.base.service.impl;
import com.consum.base.service.LWhGoodsStatisticsService;
import java.util.HashMap;
import java.util.List;
import org.springframework.stereotype.Service;
import com.consum.base.core.utils.MapperUtil;
import com.consum.base.pojo.query.LWhGoodsStatisQry;
import com.walker.infrastructure.utils.StringUtils;
import com.walker.jdbc.service.BaseServiceImpl;
/**
 * @ClassName LWhGoodsStatisticsServiceImpl
 * @Author cy
 * @Date 2023/11/21
 * @Description
 * @Version 1.0
 **/
@Service
public class LWhGoodsStatisticsServiceImpl extends BaseServiceImpl implements LWhGoodsStatisticsService {
    private String GET_WHGOODS_STATIS_LIST_COLUMN =
        "SELECT tCangKu.org_name,tCangKu.WAREHOUSE_NAME,goodsTemp.GOODS_CODE,tKuCun.GOODS_TEMPLATE_NAME,tKuCun.BASE_GOODS_MODELS_NAME,CASE tKuCun.COST_TYPE WHEN 1 THEN 'A类' WHEN 2 THEN 'B类' WHEN 3 THEN 'C类' END AS cost_Type,tKuCun.total_num,tKuCun.zai_ku_num,tKuCun.diao_bo_num,tKuCun.bao_fei_num FROM ";
    private String GET_WHGOODS_STATIS_LIST_T_CANGKU =
        "(SELECT tenant.id tenantId,tenant.NAME AS org_name,ware.*FROM fin_sys_tenant tenant right JOIN (SELECT 0 WAREHOUSE_TYPE,id,AGENCY_ID,WAREHOUSE_NAME FROM BASE_WAREHOUSE UNION ALL SELECT 1 WAREHOUSE_TYPE,id,TENANT_ID AGENCY_ID,`NAME` WAREHOUSE_NAME FROM fin_sys_tenant_department) ware ON tenant.id=ware.AGENCY_ID ";
    private String GET_WHGOODS_STATIS_LIST_T_CANGKU_WHERE = "where 1=1";
    private String GET_WHGOODS_STATIS_LIST_T_CANGKU_END = ") tCangKu LEFT JOIN";
    private String GET_WHGOODS_STATIS_LIST_T_KUCUN =
        "(SELECT WAREHOUSE_TYPE,WAREHOUSE_ID,BASE_GOODS_TEMPLATE_ID,GOODS_TEMPLATE_NAME,COST_TYPE,BASE_GOODS_MODELS_ID,BASE_GOODS_MODELS_NAME,COUNT(CASE WHEN goods.STATES BETWEEN 0 AND 2 THEN 1 END) AS total_num,count(CASE WHEN goods.STATES=1 OR goods.STATES=2 THEN 1 END) zai_ku_num,count(CASE WHEN goods.STATES=0 THEN 1 END) diao_bo_num,count(CASE WHEN goods.STATES=3 THEN 1 END) bao_fei_num FROM l_wh_goods goods ";
    private String GET_WHGOODS_STATIS_LIST_T_KUCUN_WHERE = "where 1=1";
    private String GET_WHGOODS_STATIS_LIST_T_KUCUN_GROUP_BY =
        " GROUP BY WAREHOUSE_TYPE,WAREHOUSE_ID,BASE_GOODS_TEMPLATE_ID,GOODS_TEMPLATE_NAME,BASE_GOODS_MODELS_ID,BASE_GOODS_MODELS_NAME,COST_TYPE) tKuCun ON tCangKu.WAREHOUSE_TYPE=tKuCun.WAREHOUSE_TYPE and tCangKu.id = tKuCun.WAREHOUSE_ID LEFT JOIN BASE_GOODS_TEMPLATE goodsTemp ON goodsTemp.id=tKuCun.BASE_GOODS_TEMPLATE_ID ";
    private String GET_WHGOODS_STATIS_LIST_T_END_WHERE = " where 1=1";
    @Override
    public List getWhGoodsStatisList(LWhGoodsStatisQry param) {
        StringBuilder sqlColumn = new StringBuilder(GET_WHGOODS_STATIS_LIST_COLUMN);
        StringBuilder sqlCangKu = new StringBuilder(GET_WHGOODS_STATIS_LIST_T_CANGKU);
        StringBuilder sqlCangKuWhere = new StringBuilder(GET_WHGOODS_STATIS_LIST_T_CANGKU_WHERE);
        StringBuilder sqlCangKuEnd = new StringBuilder(GET_WHGOODS_STATIS_LIST_T_CANGKU_END);
        StringBuilder sqlKuCun = new StringBuilder(GET_WHGOODS_STATIS_LIST_T_KUCUN);
        StringBuilder sqlKuCunWhere = new StringBuilder(GET_WHGOODS_STATIS_LIST_T_KUCUN_WHERE);
        StringBuilder sqlKuCunGoupBy = new StringBuilder(GET_WHGOODS_STATIS_LIST_T_KUCUN_GROUP_BY);
        StringBuilder sqlEndWhere = new StringBuilder(GET_WHGOODS_STATIS_LIST_T_END_WHERE);
        HashMap<String, Object> paramts = new HashMap<>();
        // 机构
        if (param.getAgencyId() != null) {
            // sqlCangKuWhere.append(" AND left(tenant.id, length(:lengthAgencyId)) = :agencyId");
            sqlCangKuWhere.append(" AND tenant.id = :agencyId");
            // paramts.put("lengthAgencyId", param.getAgencyId());
            paramts.put("agencyId", param.getAgencyId());
        }
        // 部门
        if (param.getDepartmentId() != null) {
            sqlCangKuWhere.append(" AND ware.WAREHOUSE_TYPE=1 and ware.id = :departmentId");
            paramts.put("departmentId", param.getDepartmentId());
        }
        // 仓库
        if (param.getBaseWarehouseId() != null) {
            sqlCangKuWhere.append(" AND ware.WAREHOUSE_TYPE =0 and ware.id = :warehouseId");
            paramts.put("warehouseId", param.getBaseWarehouseId());
        }
        // 物品名称
        if (StringUtils.isNotEmpty(param.getGoodsTemplateName())) {
            sqlKuCunWhere.append(" AND goods.GOODS_TEMPLATE_NAME like :goodsTemplateName");
            paramts.put("goodsTemplateName",
                StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT);
        }
        if (param.getGoodsTemplateId() != null) {
            sqlKuCunWhere.append(" AND goods.BASE_GOODS_TEMPLATE_ID=:goodsTemplateId");
            paramts.put("goodsTemplateId", param.getGoodsTemplateId());
        }
        // 规格型号
        if (param.getBaseGoodsModelsId() != null) {
            sqlKuCunWhere.append(" AND goods.BASE_GOODS_MODELS_ID=:baseGoodsModelsId");
            paramts.put("baseGoodsModelsId", param.getBaseGoodsModelsId());
        }
        // 价值类型
        if (param.getCostType() != null) {
            // 将数字转换为对应的字符
            char costType = (char)('A' + param.getCostType() - 1);
            sqlKuCunWhere.append(" AND goods.COST_TYPE=':costType'");
            paramts.put("costType", costType);
        }
        // // 操作时间
        // if (param.getDealTimeStart() != null) {
        // sqlEnd.append(" and flow.DEAL_TIME >=:dealTimeStart ");
        // paramts.put("dealTimeStart", param.getDealTimeStart() * 1000000);
        // }
        // if (param.getDealTimeEnd() != null) {
        // sqlEnd.append(" and flow.DEAL_TIME <:dealTimeEnd ");
        // paramts.put("dealTimeEnd", param.getDealTimeEnd() * 1000000 + 240000);
        // }
        sqlEndWhere.append(" ORDER BY tKuCun.total_num desc,tCangKu.tenantId asc");
        StringBuilder sql = new StringBuilder();
        sql.append(sqlColumn).append(sqlCangKu).append(sqlCangKuWhere).append(sqlCangKuEnd).append(sqlKuCun)
            .append(sqlKuCunWhere).append(sqlKuCunGoupBy)
            .append(sqlEndWhere);
        return select(sql.toString(), paramts, new MapperUtil());
    }
}
consum-base/src/main/java/com/consum/base/service/impl/LWhWarningConfigServiceImpl.java
File was renamed from consum-base/src/main/java/com/consum/base/service/LWhWarningConfigServiceImpl.java
@@ -1,4 +1,11 @@
package com.consum.base.service;
package com.consum.base.service.impl;
import com.consum.base.service.LWhWarningConfigService;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Service;
import com.consum.base.core.utils.MapperUtil;
import com.consum.base.pojo.query.WhWarningConfigQry;
@@ -6,11 +13,6 @@
import com.walker.infrastructure.utils.CollectionUtils;
import com.walker.infrastructure.utils.StringUtils;
import com.walker.jdbc.service.BaseServiceImpl;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * @ClassName LWhWarningConfigServiceImpl
@@ -20,29 +22,31 @@
 * @Version 1.0
 **/
@Service
public class LWhWarningConfigServiceImpl extends BaseServiceImpl {
    private static String GET_CONFIG_LIST_WITH_PAGE = "SELECT wareConf.*,ware.AGENCY_NAME,ware.WAREHOUSE_NAME,goodsTemp.CATEGORY_NAME,CONCAT(cate.CLASSIFICATION,'类')  cost_Type,goodsTemp.GOODS_NAME,baseModel.MODEL_NAME FROM WH_WARNING_CONFIG wareConf LEFT JOIN BASE_GOODS_MODELS baseModel ON baseModel.ID=wareConf.BASE_GOODS_MODELS_ID LEFT JOIN BASE_GOODS_TEMPLATE goodsTemp ON wareConf.BASE_GOODS_TEMPLATE_ID=goodsTemp.id LEFT JOIN BASE_CATEGORY cate ON cate.id=goodsTemp.CATEGORY_ID LEFT JOIN BASE_WAREHOUSE ware ON ware.id=wareConf.BASE_WAREHOUSE_ID WHERE 1=1 ";
public class LWhWarningConfigServiceImpl extends BaseServiceImpl implements LWhWarningConfigService {
    private static String GET_CONFIG_LIST_WITH_PAGE =
        "SELECT wareConf.*,ware.AGENCY_NAME,ware.WAREHOUSE_NAME,goodsTemp.CATEGORY_NAME,CONCAT(cate.CLASSIFICATION,'类')  cost_Type,goodsTemp.GOODS_NAME,baseModel.MODEL_NAME FROM WH_WARNING_CONFIG wareConf LEFT JOIN BASE_GOODS_MODELS baseModel ON baseModel.ID=wareConf.BASE_GOODS_MODELS_ID LEFT JOIN BASE_GOODS_TEMPLATE goodsTemp ON wareConf.BASE_GOODS_TEMPLATE_ID=goodsTemp.id LEFT JOIN BASE_CATEGORY cate ON cate.id=goodsTemp.CATEGORY_ID LEFT JOIN BASE_WAREHOUSE ware ON ware.id=wareConf.BASE_WAREHOUSE_ID WHERE 1=1 ";
    @Override
    public GenericPager<Map<String, Object>> getConfigListWithPage(WhWarningConfigQry param) {
        Map<String, Object> configListQueryMap = getConfigListQueryMap(param);
        StringBuilder sql = (StringBuilder) configListQueryMap.get("sql");
        HashMap<String, Object> paramts = (HashMap<String, Object>) configListQueryMap.get("paramts");
        StringBuilder sql = (StringBuilder)configListQueryMap.get("sql");
        HashMap<String, Object> paramts = (HashMap<String, Object>)configListQueryMap.get("paramts");
        return selectSplit(sql.toString(), paramts, param.getPageNum(), param.getPageSize(), new MapperUtil());
    }
    private Map<String, Object> getConfigListQueryMap(WhWarningConfigQry param) {
    @Override
    public Map<String, Object> getConfigListQueryMap(WhWarningConfigQry param) {
        Map<String, Object> configListQueryMap = new HashMap<>();
        StringBuilder sql = new StringBuilder(GET_CONFIG_LIST_WITH_PAGE);
        HashMap<String, Object> paramts = new HashMap<>();
        //机构
        // 机构
        if (param.getAgencyId() != null) {
//            sql.append(" and left(ware.AGENCY_ID, length(:lengthAgencyId)) = :agencyId");
            // sql.append(" and left(ware.AGENCY_ID, length(:lengthAgencyId)) = :agencyId");
            sql.append(" and ware.AGENCY_ID = :agencyId");
//            paramts.put("lengthAgencyId", param.getAgencyId());
            // paramts.put("lengthAgencyId", param.getAgencyId());
            paramts.put("agencyId", param.getAgencyId());
        }
        //仓库类型
        // 仓库类型
        if (param.getWarehouseType() != null) {
            sql.append(" AND wareConf.WAREHOUSE_TYPE = :warehouseType");
            paramts.put("warehouseType", param.getWarehouseType());
@@ -51,24 +55,25 @@
            sql.append(" AND wareConf.BASE_WAREHOUSE_ID = :warehouseId");
            paramts.put("warehouseId", param.getBaseWarehouseId());
        }
        //物品名称
        // 物品名称
        if (StringUtils.isNotEmpty(param.getGoodsTemplateName())) {
            sql.append(" AND goodsTemp.GOODS_NAME like :goodsTemplateName");
            paramts.put("goodsTemplateName", StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT);
            paramts.put("goodsTemplateName",
                StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT);
        }
        if (param.getBaseGoodsTemplateId() != null) {
            sql.append(" AND wareConf.BASE_GOODS_TEMPLATE_ID=:baseGoodsTemplateId");
            paramts.put("baseGoodsTemplateId", param.getBaseGoodsTemplateId());
        }
        //分类
        // 分类
        if (param.getCategoryId() != null) {
            sql.append(" AND cate.id=:categoryId");
            paramts.put("categoryId", param.getCategoryId());
        }
        //价值类型
        // 价值类型
        if (param.getCostType() != null) {
            // 将数字转换为对应的字符
            char costType = (char) ('A' + param.getCostType() - 1);
            char costType = (char)('A' + param.getCostType() - 1);
            sql.append(" AND cate.CLASSIFICATION=:costType");
            paramts.put("costType", costType);
        }
@@ -78,13 +83,14 @@
        return configListQueryMap;
    }
    private String QUERY_MODEL_IS_EXIST = "";
    public List<Map<String, Object>> queryModelIsExist(Integer warehouseType, Long baseWarehouseId, List<Long> modelIds) {
        StringBuilder sql = new StringBuilder("select WAREHOUSE_TYPE, BASE_WAREHOUSE_ID, BASE_GOODS_MODELS_ID from WH_WARNING_CONFIG where 1=1");
    @Override
    public List<Map<String, Object>> queryModelIsExist(Integer warehouseType, Long baseWarehouseId,
        List<Long> modelIds) {
        StringBuilder sql = new StringBuilder(
            "select WAREHOUSE_TYPE, BASE_WAREHOUSE_ID, BASE_GOODS_MODELS_ID from WH_WARNING_CONFIG where 1=1");
        HashMap<String, Object> paramts = new HashMap<>();
        //仓库类型
        // 仓库类型
        if (warehouseType != null) {
            sql.append(" AND WAREHOUSE_TYPE = :warehouseType");
            paramts.put("warehouseType", warehouseType);
@@ -99,6 +105,5 @@
        }
        return select(sql.toString(), paramts, new MapperUtil());
    }
}
consum-base/src/main/java/com/consum/base/service/impl/LWhWarningServiceImpl.java
File was renamed from consum-base/src/main/java/com/consum/base/service/LWhWarningServiceImpl.java
@@ -1,4 +1,11 @@
package com.consum.base.service;
package com.consum.base.service.impl;
import com.consum.base.service.LWhWarningService;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Service;
import com.consum.base.core.utils.MapperUtil;
import com.consum.base.pojo.query.WhWarningQry;
@@ -6,11 +13,6 @@
import com.walker.infrastructure.utils.CollectionUtils;
import com.walker.infrastructure.utils.StringUtils;
import com.walker.jdbc.service.BaseServiceImpl;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * @ClassName LWhWarningServiceImpl
@@ -20,9 +22,11 @@
 * @Version 1.0
 **/
@Service
public class LWhWarningServiceImpl extends BaseServiceImpl {
    private static String GET_WARNING_TYPE_NUM = "SELECT COUNT(1) AS total_num,count(CASE WHEN wareWarn.WARNING_TYPE=1 THEN 1 ELSE NULL END) AS up_num,count(CASE WHEN wareWarn.WARNING_TYPE=2 THEN 1 ELSE NULL END) AS low_num FROM WH_WARNING wareWarn LEFT JOIN BASE_WAREHOUSE ware ON ware.id=wareWarn.BASE_WAREHOUSE_ID WHERE 1=1 ";
public class LWhWarningServiceImpl extends BaseServiceImpl implements LWhWarningService {
    private static String GET_WARNING_TYPE_NUM =
        "SELECT COUNT(1) AS total_num,count(CASE WHEN wareWarn.WARNING_TYPE=1 THEN 1 ELSE NULL END) AS up_num,count(CASE WHEN wareWarn.WARNING_TYPE=2 THEN 1 ELSE NULL END) AS low_num FROM WH_WARNING wareWarn LEFT JOIN BASE_WAREHOUSE ware ON ware.id=wareWarn.BASE_WAREHOUSE_ID WHERE 1=1 ";
    @Override
    public Map<String, Object> getWarningTypeNum(WhWarningQry param) {
        StringBuilder sql = new StringBuilder(GET_WARNING_TYPE_NUM);
        HashMap<String, Object> paramts = new HashMap<>();
@@ -30,7 +34,7 @@
            sql.append(" AND wareWarn.states = :states");
            paramts.put("states", param.getStates());
        }
        //机构
        // 机构
        if (param.getAgencyId() != null) {
            sql.append(" and ware.AGENCY_ID=:agencyId");
            paramts.put("agencyId", param.getAgencyId());
@@ -47,8 +51,10 @@
    }
    private static String GET_LIST_WITH_PAGE = "SELECT wareWarn.*,ware.WAREHOUSE_NAME,goodsTemp.CATEGORY_NAME,CONCAT(cate.CLASSIFICATION,'类') cost_Type,goodsTemp.GOODS_NAME,baseModel.MODEL_NAME,basemodel.UNIT FROM WH_WARNING wareWarn LEFT JOIN BASE_GOODS_MODELS baseModel ON baseModel.ID=wareWarn.BASE_GOODS_MODELS_ID LEFT JOIN BASE_GOODS_TEMPLATE goodsTemp ON wareWarn.BASE_GOODS_TEMPLATE_ID=goodsTemp.id LEFT JOIN BASE_CATEGORY cate ON cate.id=goodsTemp.CATEGORY_ID LEFT JOIN BASE_WAREHOUSE ware ON ware.id=wareWarn.BASE_WAREHOUSE_ID WHERE 1=1 ";
    private static String GET_LIST_WITH_PAGE =
        "SELECT wareWarn.*,ware.WAREHOUSE_NAME,goodsTemp.CATEGORY_NAME,CONCAT(cate.CLASSIFICATION,'类') cost_Type,goodsTemp.GOODS_NAME,baseModel.MODEL_NAME,basemodel.UNIT FROM WH_WARNING wareWarn LEFT JOIN BASE_GOODS_MODELS baseModel ON baseModel.ID=wareWarn.BASE_GOODS_MODELS_ID LEFT JOIN BASE_GOODS_TEMPLATE goodsTemp ON wareWarn.BASE_GOODS_TEMPLATE_ID=goodsTemp.id LEFT JOIN BASE_CATEGORY cate ON cate.id=goodsTemp.CATEGORY_ID LEFT JOIN BASE_WAREHOUSE ware ON ware.id=wareWarn.BASE_WAREHOUSE_ID WHERE 1=1 ";
    @Override
    public GenericPager<Map<String, Object>> getListWithPage(WhWarningQry param) {
        StringBuilder sql = new StringBuilder(GET_LIST_WITH_PAGE);
        HashMap<String, Object> paramts = new HashMap<>();
@@ -56,13 +62,13 @@
            sql.append(" AND wareWarn.states = :states");
            paramts.put("states", param.getStates());
        }
        //机构
        // 机构
        if (param.getAgencyId() != null) {
            sql.append(" and ware.AGENCY_ID=:agencyId");
//            paramts.put("lengthAgencyId", param.getAgencyId());
            // paramts.put("lengthAgencyId", param.getAgencyId());
            paramts.put("agencyId", param.getAgencyId());
        }
        //仓库类型
        // 仓库类型
        if (param.getWarehouseType() != null) {
            sql.append(" AND wareWarn.WAREHOUSE_TYPE = :warehouseType");
            paramts.put("warehouseType", param.getWarehouseType());
@@ -71,24 +77,25 @@
            sql.append(" AND wareWarn.WAREHOUSE_ID = :warehouseId");
            paramts.put("warehouseId", param.getBaseWarehouseId());
        }
        //物品名称
        // 物品名称
        if (StringUtils.isNotEmpty(param.getGoodsTemplateName())) {
            sql.append(" AND goodsTemp.GOODS_NAME like :goodsTemplateName");
            paramts.put("goodsTemplateName", StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT);
            paramts.put("goodsTemplateName",
                StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT);
        }
        if (param.getGoodsTemplateId() != null) {
            sql.append(" AND goodsTemp.id=:goodsTemplateId");
            paramts.put("goodsTemplateId", param.getGoodsTemplateId());
        }
        //分类
        // 分类
        if (param.getCategoryId() != null) {
            sql.append(" AND cate.id=:categoryId");
            paramts.put("categoryId", param.getCategoryId());
        }
        //价值类型
        // 价值类型
        if (param.getCostType() != null) {
            // 将数字转换为对应的字符
            char costType = (char) ('A' + param.getCostType() - 1);
            char costType = (char)('A' + param.getCostType() - 1);
            sql.append(" AND cate.CLASSIFICATION=':costType'");
            paramts.put("costType", costType);
        }
@@ -96,7 +103,7 @@
            sql.append(" AND wareWarn.WARNING_TYPE=:warningType");
            paramts.put("warningType", param.getWarningType());
        }
        //规格型号
        // 规格型号
        if (param.getBaseGoodsModelsId() != null) {
            sql.append(" AND wareWarn.BASE_GOODS_MODELS_ID=:baseGoodsModelsId");
            paramts.put("baseGoodsModelsId", param.getBaseGoodsModelsId());
@@ -113,18 +120,23 @@
     * @param warehouseId
     * @param baseModelId
     */
    private String CHECK_KUCUN_PREFIX = "SELECT warnConf.*,goods.goods_Num,CASE WHEN warnConf.LOWER_LIMIT>=goods.goods_Num THEN 2 WHEN warnConf.UPPER_LIMIT<=goods.goods_Num THEN 1 END AS WARNING_TYPE FROM (";
    private String CHECK_KUCUN_CONFIG_PREFIX = "SELECT WAREHOUSE_TYPE,BASE_WAREHOUSE_ID,BASE_GOODS_MODELS_ID,LOWER_LIMIT,UPPER_LIMIT FROM WH_WARNING_CONFIG";
    private String CHECK_KUCUN_PREFIX =
        "SELECT warnConf.*,goods.goods_Num,CASE WHEN warnConf.LOWER_LIMIT>=goods.goods_Num THEN 2 WHEN warnConf.UPPER_LIMIT<=goods.goods_Num THEN 1 END AS WARNING_TYPE FROM (";
    private String CHECK_KUCUN_CONFIG_PREFIX =
        "SELECT WAREHOUSE_TYPE,BASE_WAREHOUSE_ID,BASE_GOODS_MODELS_ID,LOWER_LIMIT,UPPER_LIMIT FROM WH_WARNING_CONFIG";
    private String CHECK_KUCUN_CONFIG_WHERE = " WHERE 1=1";
    private String CHECK_KUCUN_CONFIG_JOINTKUCUN = ") warnConf LEFT JOIN (";
    private String CHECK_KUCUN_KUCUN_PREFIX = "SELECT WAREHOUSE_TYPE,WAREHOUSE_ID,BASE_GOODS_MODELS_ID,count(1) goods_Num FROM L_WH_GOODS";
    private String CHECK_KUCUN_KUCUN_PREFIX =
        "SELECT WAREHOUSE_TYPE,WAREHOUSE_ID,BASE_GOODS_MODELS_ID,count(1) goods_Num FROM L_WH_GOODS";
    private String CHECK_KUCUN_KUCUN_WHERE = " WHERE 1=1 and STATES=1";
    private String CHECK_KUCUN_KUCUN_END = " GROUP BY BASE_GOODS_MODELS_ID)";
    private String CHECK_KUCUN_END = "goods ON goods.BASE_GOODS_MODELS_ID=warnConf.BASE_GOODS_MODELS_ID AND goods.WAREHOUSE_TYPE=warnConf.WAREHOUSE_TYPE AND goods.BASE_GOODS_MODELS_ID=warnConf.BASE_GOODS_MODELS_ID WHERE (warnConf.LOWER_LIMIT>=goods.goods_Num OR warnConf.UPPER_LIMIT<=goods.goods_Num)";
    private String CHECK_KUCUN_END =
        "goods ON goods.BASE_GOODS_MODELS_ID=warnConf.BASE_GOODS_MODELS_ID AND goods.WAREHOUSE_TYPE=warnConf.WAREHOUSE_TYPE AND goods.BASE_GOODS_MODELS_ID=warnConf.BASE_GOODS_MODELS_ID WHERE (warnConf.LOWER_LIMIT>=goods.goods_Num OR warnConf.UPPER_LIMIT<=goods.goods_Num)";
    @Override
    public List<Map<String, Object>> checkKuCun(Short warehouseType, Long warehouseId, List<Long> baseModelIdList) {
        StringBuilder checkKucunPrefix = new StringBuilder(CHECK_KUCUN_PREFIX);
        StringBuilder checkKucunConfigPrefix = new StringBuilder(CHECK_KUCUN_CONFIG_PREFIX);
@@ -155,13 +167,9 @@
            paramMap.put("KuCunBaseModelIds", baseModelIdList);
        }
        checkKucunPrefix.append(checkKucunConfigPrefix)
                .append(checkKucunConfigWhere)
                .append(checkKucunConfigJointkucun)
                .append(checkKucunKucunPrefix)
                .append(checkKucunKucunWhere)
                .append(checkKucunKucunEnd)
                .append(checkKucunEnd);
        checkKucunPrefix.append(checkKucunConfigPrefix).append(checkKucunConfigWhere).append(checkKucunConfigJointkucun)
            .append(checkKucunKucunPrefix).append(checkKucunKucunWhere).append(checkKucunKucunEnd)
            .append(checkKucunEnd);
        return select(checkKucunPrefix.toString(), paramMap, new MapperUtil());
    }
consum-base/src/main/java/com/consum/base/service/impl/SDictDataServiceImpl.java
File was renamed from consum-base/src/main/java/com/consum/base/service/SDictDataServiceImpl.java
@@ -1,22 +1,25 @@
package com.consum.base.service;
package com.consum.base.service.impl;
import com.consum.model.po.SDictData;
import com.walker.jdbc.service.BaseServiceImpl;
import com.consum.base.service.SDictDataService;
import java.util.HashMap;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.HashMap;
import java.util.List;
import com.consum.model.po.SDictData;
import com.walker.jdbc.service.BaseServiceImpl;
@Service
public class SDictDataServiceImpl extends BaseServiceImpl {
public class SDictDataServiceImpl extends BaseServiceImpl implements SDictDataService {
    /**
     * @Description 根据报废原因code查询数据字典
     * @Author 卢庆阳
     * @Date 2023/11/2
     */
    @Override
    public List<SDictData> selectByScrappedCodeList(List scrappedCodeList) {
        if (CollectionUtils.isEmpty(scrappedCodeList)) {
            log.error("参数错误");
@@ -25,16 +28,7 @@
        StringBuilder sql = new StringBuilder("SELECT * FROM s_dict_data WHERE 1 = 1 ");
        HashMap<String, Object> paramts = new HashMap<>();
        sql.append(" and dict_code in ( ").append(
                StringUtils.join(scrappedCodeList, ",")).append(")");
//        for (int i = 0; i < scrappedCodeList.size(); i++) {
//            sql.append(scrappedCodeList.get(i));
//            if (i < scrappedCodeList.size() - 1) {
//                sql.append(",");
//            }
//        }
//        sql.append(" ) ");
        sql.append(" and dict_code in ( ").append(StringUtils.join(scrappedCodeList, ",")).append(")");
        return this.select(sql.toString(), paramts, new SDictData());
    }
consum-base/src/main/java/com/consum/base/service/impl/UsingFormBackServiceImpl.java
@@ -2,7 +2,7 @@
import com.consum.base.core.CodeGeneratorEnum;
import com.consum.base.core.CodeGeneratorService;
import com.consum.base.core.DepUsingFormBackCoreServiceImpl;
import com.consum.base.service.core.DepUsingFormBackCoreService;
import com.consum.base.core.utils.IdUtil;
import com.consum.base.core.utils.MapUtils;
import com.consum.base.core.utils.MapperUtil;
@@ -56,7 +56,7 @@
    @Autowired
    private LWhFormTransferService lWhFormTransferService;
    @Resource
    private DepUsingFormBackCoreServiceImpl depUsingFormBackCoreService;
    private DepUsingFormBackCoreService depUsingFormBackCoreService;
    @Resource
    private UsingFormBackModelService UsingFormBackModelService;