futian.liu
2023-11-22 1742240f8f6841e2d930e549caabab94f2a58ece
--报废单
1 文件已重命名
8个文件已添加
2个文件已删除
14个文件已修改
1360 ■■■■■ 已修改文件
consum-base/src/main/java/com/consum/base/controller/FinSysTenantController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/controller/LWhFormInventoryController.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/controller/LWhFormProcureController.java 52 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/controller/LWhFormScrappedController.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/LWhFormScrappedExtend.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/LWhFormScrappedGoodsInfoParam.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/LWhFormScrappedGoodsModelParams.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/LWhFormScrappedGoodsParams.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/LWhFormScrappedParam.java 167 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/query/LWhFormInventoryQry.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/query/LWhFormScrappedQry.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/request/LWhFormInventoryParam.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/response/FormInventoryDetailVO.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/response/FormInventoryGoodsVO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/response/FormScrappedGoodsDetailVO.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/response/FormScrappedGoodsVO.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/response/GoodsModelVO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/response/LWhFormScrappedExtendVO.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/response/LWhFormScrappedVO.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/FinSysTenantServiceImpl.java 70 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/LWhFormInventoryGoodsServiceImpl.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/LWhFormInventoryServiceImpl.java 130 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/LWhFormProcureService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/LWhFormScrappedServiceImpl.java 270 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/LWhGoodsService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/controller/FinSysTenantController.java
@@ -357,7 +357,7 @@
        if (StringUtils.isEmpty(param.getName())) {
            return ResponseValue.error("机构名称为空");
        }
        FinSysTenant finSysTenant = this.finSysTenantService.selectByTenantId(param.getCode());
        FinSysTenant finSysTenant = this.finSysTenantService.queryOneByCode(param.getCode());
        if (finSysTenant != null) {
            return ResponseValue.error("机构编号已存在");
        }
@@ -445,7 +445,7 @@
                        "第" + analysisContext.readSheetHolder().getRowIndex() + "行,机构编号不能为空或长度大于20");
                    throw exception;
                }
                if (null != finSysTenantService.selectByTenantId(finSysTenantParam.getCode())) {
                if (null != finSysTenantService.queryOneByCode(finSysTenantParam.getCode())) {
                    throw new IllegalStateException("第" + analysisContext.readSheetHolder().getRowIndex() + "行,机构编号已存在");
                }
                if (StringUtils.isEmpty(finSysTenantParam.getName()) || finSysTenantParam.getName().length() > 100) {
consum-base/src/main/java/com/consum/base/controller/LWhFormInventoryController.java
@@ -1,11 +1,15 @@
package com.consum.base.controller;
import com.consum.base.BaseController;
import com.consum.base.core.utils.PageUtil;
import com.consum.base.pojo.query.LWhFormInventoryQry;
import com.consum.base.pojo.request.FormInventoryParam;
import com.consum.base.pojo.request.LWhFormInventoryParam;
import com.consum.base.pojo.response.FormInventoryDetailVO;
import com.consum.base.pojo.response.FormInventoryGoodsVO;
import com.consum.base.pojo.response.FormInventoryVO;
import com.consum.base.service.FinSysTenantUserServiceImpl;
import com.consum.base.service.LWhFormInventoryGoodsServiceImpl;
import com.consum.base.service.LWhFormInventoryServiceImpl;
import com.consum.model.po.FinSysTenantUser;
import com.consum.model.po.LWhFormInventory;
@@ -15,8 +19,8 @@
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -41,6 +45,8 @@
    private LWhFormInventoryServiceImpl lWhFormInventoryService;
    @Autowired
    private FinSysTenantUserServiceImpl finSysTenantUserService;
    @Autowired
    private LWhFormInventoryGoodsServiceImpl inventoryGoodsService;
    /**
     * @Description 新增
@@ -82,7 +88,7 @@
        @ApiImplicitParam(name = "param", value = "盘点条件", dataType = "LWhFormInventoryParam", required = true, paramType = "query")
    })
    @GetMapping("/list")
    public ResponseValue queryList(com.consum.base.pojo.LWhFormInventoryParam param) {
    public ResponseValue queryList(LWhFormInventoryQry param) {
        FinSysTenantUser sysInfo = this.getSysInfo();
        if (sysInfo == null) {
            return ResponseValue.error("登录用户信息不存在");
@@ -91,10 +97,11 @@
        return ResponseValue.success(pager);
    }
    @ApiOperation(value = "盘点单物品列表查询", notes = "盘点单物品列表查询")
    @ApiOperation(value = "盘点单物品列表查询", notes = "盘点单物品列表查询", response = FormInventoryVO.class)
    @ApiImplicitParams({
        @ApiImplicitParam(name = "id", value = "盘点单id", dataType = "Long", required = true, paramType = "query")
    })
    @ApiResponse(code = 200, message = "成功", response = FormInventoryVO.class)
    @GetMapping("/query")
    public ResponseValue queryInventBaseGoodTemplate(Long id) {
        FinSysTenantUser sysInfo = this.getSysInfo();
@@ -105,6 +112,8 @@
            return ResponseValue.error("参数不能为空");
        }
        FormInventoryVO formInventoryVO = this.lWhFormInventoryService.queryInventBaseGoodTemplate(id);
        this.lWhFormInventoryService.saveInventory(formInventoryVO, id);
        return ResponseValue.success(formInventoryVO);
    }
@@ -165,25 +174,6 @@
        return ResponseValue.success(1);
    }
    /**
     * @Description 盘点
     * @Author 卢庆阳
     * @Date 2023/10/31
     */
    @ApiOperation(value = "盘点", notes = "盘点")
    @ApiImplicitParams({
        @ApiImplicitParam(name = "id", value = "盘点单id", dataType = "Long", required = true, paramType = "query")
    })
    @GetMapping("/select/pdList")
    @Deprecated
    public ResponseValue queryPdList(Long id) {
        if (id == null) {
            return ResponseValue.error("盘点失败!");
        }
        List list = this.lWhFormInventoryService.queryPdList(id);
        return ResponseValue.success(list);
    }
    /**
     * 暂存
@@ -201,7 +191,7 @@
            return ResponseValue.error("参数错误");
        }
        int num = this.lWhFormInventoryService.temporaryStorage(dto, 1);
        int num = this.lWhFormInventoryService.updateInventoryInfo(dto, 1);
        return num > 0 ? ResponseValue.success(1) : ResponseValue.error("暂存失败!");
    }
@@ -221,7 +211,7 @@
            return ResponseValue.error("参数错误");
        }
        int num = this.lWhFormInventoryService.temporaryStorage(dto, 2);
        int num = this.lWhFormInventoryService.updateInventoryInfo(dto, 2);
        return num > 0 ? ResponseValue.success(1) : ResponseValue.error("盘点失败!");
    }
@@ -232,16 +222,16 @@
     */
    @ApiOperation(value = "异常明细列表查询", notes = "异常明细列表查询")
    @ApiImplicitParams({
        @ApiImplicitParam(name = "param", value = "盘点条件", dataType = "LWhFormInventoryParam", required = true, paramType = "query")
        @ApiImplicitParam(name = "param", value = "盘点条件", dataType = "LWhFormInventoryParam", paramType = "query")
    })
    @GetMapping("/list/PdDetail")
    public ResponseValue queryPdDetailList(com.consum.base.pojo.LWhFormInventoryParam param) {
    public ResponseValue queryPdDetailList(LWhFormInventoryQry param) {
        FinSysTenantUser sysInfo = this.getSysInfo();
        if (sysInfo == null) {
            return ResponseValue.error("登录用户信息不存在");
        }
        GenericPager<Map<String, Object>> pager = this.lWhFormInventoryService.queryPdDetailList(param, sysInfo);
        return ResponseValue.success(pager);
        PageUtil<FormInventoryDetailVO> result = this.lWhFormInventoryService.queryPdDetailList(param, sysInfo);
        return ResponseValue.success(result);
    }
    @ApiOperation(value = "根据id查询盘点物品详细信息", notes = "根据id查询盘点物品详细信息")
consum-base/src/main/java/com/consum/base/controller/LWhFormProcureController.java
@@ -7,13 +7,32 @@
import com.consum.base.core.utils.CommonUtil;
import com.consum.base.core.utils.MapUtils;
import com.consum.base.core.utils.MapperUtil;
import com.consum.base.core.utils.PageUtil;
import com.consum.base.pojo.LWhFormProcureGoodsInfoParam;
import com.consum.base.pojo.LWhFormProcureParam;
import com.consum.base.pojo.LWhProcureModelParam;
import com.consum.base.pojo.query.FormProcureQry;
import com.consum.base.pojo.response.*;
import com.consum.base.service.*;
import com.consum.model.po.*;
import com.consum.base.pojo.response.FormProcureVO;
import com.consum.base.pojo.response.FromProcureTemplateInfoVO;
import com.consum.base.pojo.response.GoodsModelVO;
import com.consum.base.pojo.response.LWhFormProcureExtendVO;
import com.consum.base.pojo.response.LWhFormProcureGoodsVO;
import com.consum.base.service.BaseGoodsTemplateServiceImpl;
import com.consum.base.service.BaseWarehouseServiceImpl;
import com.consum.base.service.FinSysTenantServiceImpl;
import com.consum.base.service.LOrgSupplierServiceImpl;
import com.consum.base.service.LWhFormProcureCoreService;
import com.consum.base.service.LWhFormProcureGoodsService;
import com.consum.base.service.LWhFormProcureService;
import com.consum.base.service.LWhGoodsService;
import com.consum.base.service.LWhProcureModelService;
import com.consum.model.po.BaseGoodsTemplate;
import com.consum.model.po.BaseWarehouse;
import com.consum.model.po.FinSysTenantUser;
import com.consum.model.po.LOrgSupplier;
import com.consum.model.po.LWhFormProcure;
import com.consum.model.po.LWhFormProcureGoods;
import com.consum.model.po.LWhProcureModel;
import com.iplatform.model.po.S_user_core;
import com.walker.db.page.GenericPager;
import com.walker.infrastructure.utils.CollectionUtils;
@@ -23,13 +42,22 @@
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.annotation.Resource;
import org.apache.commons.compress.utils.Lists;
import org.springframework.beans.BeanUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.lang.reflect.Field;
import java.util.*;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * @ClassName LWhFormProcureController
@@ -151,7 +179,7 @@
                model.setCounts(counts);
                model.setWorehouseCount(goodsModelNum);
                model.setSupplier(supplier);
                model.setTotalAmount(price*counts);
                model.setTotalAmount(price * counts);
                procureModelList.add(model);
            }
            procureGoodList.add(procureGood);
@@ -208,7 +236,7 @@
        if (param.getAgencyId() == null) {
            param.setAgencyId(Long.valueOf(tenantId));
        }
        GenericPager genericPager = lWhFormProcureService.queryFormProcureList(param);
        PageUtil genericPager = lWhFormProcureService.queryFormProcureList(param);
        List<LWhFormProcure> data = genericPager.getDatas();
        ArrayList<FormProcureVO> result = new ArrayList<>();
        if (!CollectionUtils.isEmpty(data)) {
@@ -241,6 +269,7 @@
        } catch (Exception e) {
            e.printStackTrace();
        }
        genericPager.setDatas(result);
        return ResponseValue.success(genericPager);
    }
@@ -302,6 +331,9 @@
            return ResponseValue.error("采购单id为空");
        }
        LWhFormProcure lWhFormProcure = lWhFormProcureService.get(new LWhFormProcure(id));
        if (lWhFormProcure == null) {
            return ResponseValue.error("采购单不存在");
        }
        LWhFormProcureExtendVO lWhFormProcureExtendVO = new LWhFormProcureExtendVO();
        BeanUtils.copyProperties(lWhFormProcure, lWhFormProcureExtendVO);
consum-base/src/main/java/com/consum/base/controller/LWhFormScrappedController.java
@@ -1,20 +1,27 @@
package com.consum.base.controller;
import com.consum.base.BaseController;
import com.consum.base.pojo.LWhFormScrappedExtend;
import com.consum.base.core.utils.MapUtils;
import com.consum.base.core.utils.MapperUtil;
import com.consum.base.core.utils.PageUtil;
import com.consum.base.pojo.LWhFormScrappedParam;
import com.consum.base.service.LWhFormScrappedGoodsService;
import com.consum.base.pojo.query.LWhFormScrappedQry;
import com.consum.base.pojo.response.FromTransferTemplateInfoVO;
import com.consum.base.pojo.response.LWhFormScrappedExtendVO;
import com.consum.base.pojo.response.LWhFormScrappedVO;
import com.consum.base.service.LWhFormScrappedServiceImpl;
import com.consum.model.po.FinSysTenantUser;
import com.consum.model.po.LWhFormScrapped;
import com.consum.model.po.LWhFormScrappedGoods;
import com.walker.db.page.GenericPager;
import com.walker.infrastructure.utils.CollectionUtils;
import com.walker.web.ResponseValue;
import java.lang.reflect.Field;
import java.util.ArrayList;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.compress.utils.Lists;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
@@ -28,20 +35,24 @@
 * @Author 卢庆阳
 * @Date 2023/11/1
 */
@Api(value = "报废单", tags = "报废单")
@RestController
@RequestMapping("/pc/l/wh/form/scrapped")
public class LWhFormScrappedController extends BaseController {
    @Autowired
    private LWhFormScrappedServiceImpl lWhFormScrappedService;
    @Autowired
    private LWhFormScrappedGoodsService scrappedGoodsService;
    /**
     * @Description 新增报废单
     * @Author 卢庆阳
     * @Date 2023/11/1
     */
    @ApiOperation(value = "新增报废单", notes = "新增报废单")
    @ApiImplicitParams({
        @ApiImplicitParam(name = "param", value = "报废单信息", dataType = "LWhFormScrappedParam", paramType = "body")
    })
    @PostMapping("/add")
    public ResponseValue add(@RequestBody LWhFormScrappedParam param) {
        FinSysTenantUser sysInfo = this.getSysInfo();
@@ -55,40 +66,42 @@
    /**
     * @Description 列表查询
     * @Author 卢庆阳
     * @Date 2023/11/02
     * @Date 2023/11/02 1.查询报废单 2.查询报废单物品
     */
    //1.查询报废单
    //2.查询报废单物品
    @ApiOperation(value = "列表查询", notes = "列表查询")
    @ApiImplicitParams({
        @ApiImplicitParam(name = "param", value = "查询条件", dataType = "LWhFormScrappedQry", paramType = "query")
    })
    @GetMapping("/list")
    public ResponseValue queryList(LWhFormScrappedParam param) {
    public ResponseValue queryList(LWhFormScrappedQry param) {
        FinSysTenantUser sysInfo = getSysInfo();
        if (sysInfo == null) {
            return ResponseValue.error("登录用户信息不存在");
        }
        GenericPager genericPager = lWhFormScrappedService.queryList(param, sysInfo);
        List<LWhFormScrapped> datas = genericPager.getDatas();
        ArrayList<LWhFormScrappedExtend> newDatas = new ArrayList<>();
        if (!CollectionUtils.isEmpty(datas)) {
            datas.forEach(item -> {
                // 查询报废单物品
                LWhFormScrappedGoods scrappedGoods = new LWhFormScrappedGoods();
                scrappedGoods.setFormScrappedId(item.getId());
                List<LWhFormScrappedGoods> scrappedGoodsList = scrappedGoodsService.select(scrappedGoods);
                LWhFormScrappedExtend formScrappedExtend = new LWhFormScrappedExtend();
                BeanUtils.copyProperties(item, formScrappedExtend);
                formScrappedExtend.setScrappedGoodsList(scrappedGoodsList);
                newDatas.add(formScrappedExtend);
        PageUtil genericPager = lWhFormScrappedService.queryList(param, sysInfo);
        List<LWhFormScrapped> data = genericPager.getDatas();
        List<LWhFormScrappedVO> result = Lists.newArrayList();
        if (!CollectionUtils.isEmpty(data)) {
            data.forEach(item -> {
                LWhFormScrappedVO lWhFormScrappedVO = new LWhFormScrappedVO();
                BeanUtils.copyProperties(item, lWhFormScrappedVO);
                List<FromTransferTemplateInfoVO> list = Lists.newArrayList();
                // 查询型号数量
                String sql =
                    "SELECT fsg.id,fsg.BASE_GOODS_TEMPLATE_ID goodsTemplatesId,fsg.GOODS_TEMPLATE_NAME goodsName,sum(counts) count FROM l_wh_form_scrapped fs left join l_wh_form_scrapped_goods fsg on fs.id = fsg.FORM_SCRAPPED_ID "
                        + "where fsg.FORM_SCRAPPED_ID =:id group by fsg.BASE_GOODS_TEMPLATE_ID";
                Map<String, Object> paramMap = new HashMap<>();
                paramMap.put("id", item.getId());
                List<Map<String, Object>> procureModelList = lWhFormScrappedService.select(sql, paramMap, new MapperUtil());
                for (Map<String, Object> map : procureModelList) {
                    FromTransferTemplateInfoVO fromTransferTemplateInfoVO = MapUtils.convertMapToObj(map, FromTransferTemplateInfoVO.class);
                    list.add(fromTransferTemplateInfoVO);
                }
                lWhFormScrappedVO.setGoodTemplateInfo(list);
                result.add(lWhFormScrappedVO);
            });
        }
        try {
            Field fieldDatas = GenericPager.class.getDeclaredField("datas");
            fieldDatas.setAccessible(true);
            fieldDatas.set(genericPager, newDatas);
        } catch (Exception e) {
            e.printStackTrace();
        }
//        genericPager.setDatas(newDatas);
        genericPager.setDatas(result);
        return ResponseValue.success(genericPager);
    }
@@ -97,12 +110,16 @@
     * @Author 卢庆阳
     * @Date 2023/11/2
     */
    @ApiOperation(value = "根据id查询详情", notes = "根据id查询详情")
    @ApiImplicitParams({
        @ApiImplicitParam(name = "id", value = "报废单id", dataType = "Long", paramType = "query")
    })
    @GetMapping("/detail")
    public ResponseValue getById(Long id) {
        if (id == null) {
            return ResponseValue.error("报废单id为空");
        }
        LWhFormScrappedExtend scrappedExtend = this.lWhFormScrappedService.getById(id);
        LWhFormScrappedExtendVO scrappedExtend = this.lWhFormScrappedService.getById(id);
        return ResponseValue.success(scrappedExtend);
    }
@@ -112,14 +129,18 @@
     * @param param
     * @return
     */
    @ApiOperation(value = "报废明细", notes = "报废明细")
    @ApiImplicitParams({
        @ApiImplicitParam(name = "param", value = "查询条件", dataType = "LWhFormScrappedQry", paramType = "query")
    })
    @GetMapping("/list/detailList")
    public ResponseValue queryDetailList(LWhFormScrappedParam param) {
    public ResponseValue queryDetailList(LWhFormScrappedQry param) {
        FinSysTenantUser sysInfo = this.getSysInfo();
        if (sysInfo == null) {
            return ResponseValue.error("登录用户信息不存在");
        }
        GenericPager<Map<String, Object>> genericPager = lWhFormScrappedService.queryDetailList(param, sysInfo);
        return ResponseValue.success(genericPager);
        PageUtil pageUtil = lWhFormScrappedService.queryDetailList(param, sysInfo);
        return ResponseValue.success(pageUtil);
    }
    /**
@@ -132,8 +153,8 @@
        if (id == null) {
            return ResponseValue.error("报废单id为空");
        }
        LWhFormScrappedExtend scrappedExtend = this.lWhFormScrappedService.export(id, this.getSysInfo());
        return ResponseValue.success(scrappedExtend);
        //LWhFormScrappedExtendVO scrappedExtend = this.lWhFormScrappedService.export(id, this.getSysInfo());
        return ResponseValue.success(null);
    }
consum-base/src/main/java/com/consum/base/pojo/LWhFormScrappedExtend.java
File was deleted
consum-base/src/main/java/com/consum/base/pojo/LWhFormScrappedGoodsInfoParam.java
New file
@@ -0,0 +1,33 @@
package com.consum.base.pojo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.List;
import lombok.Data;
/**
 * @author asus
 * @version 1.0
 * @description: 报废单物品信息
 * @date 2023/11/21 16:06
 */
@Data
@ApiModel(value = "LWhFormScrappedGoodsInfoParam", description = "报废单物品信息")
public class LWhFormScrappedGoodsInfoParam {
    /**
     * 分类id
     */
    private Long baseCategoryId;
    /**
     * 物品id
     */
    private Long baseGoodsTemplateId;
    @ApiModelProperty(value = "规格型号编号")
    private Long baseGoodsModelsId;
    /**
     * 报废单物品
     */
    private List<LWhFormScrappedGoodsModelParams> scrappedGoodsList;
}
consum-base/src/main/java/com/consum/base/pojo/LWhFormScrappedGoodsModelParams.java
New file
@@ -0,0 +1,21 @@
package com.consum.base.pojo;
import io.swagger.annotations.ApiModel;
import lombok.Data;
@Data
@ApiModel(value = "LWhFormScrappedGoodsParams", description = "报废商品参数")
public class LWhFormScrappedGoodsModelParams {
    //规格型号编号
    private Long baseGoodsModelsId;
    //规格型号
    private String baseGoodsModelsName;
    //剩余数量
    private String total;
    //报废数量
    private Integer counts;
    //报废原因
    private String scrappedCode;
}
consum-base/src/main/java/com/consum/base/pojo/LWhFormScrappedGoodsParams.java
File was deleted
consum-base/src/main/java/com/consum/base/pojo/LWhFormScrappedParam.java
@@ -1,13 +1,12 @@
package com.consum.base.pojo;
import com.consum.model.po.LWhFormScrappedGoods;
import com.walker.web.param.ParamRequest;
import io.swagger.annotations.ApiModel;
import java.util.List;
import lombok.Data;
public class LWhFormScrappedParam extends ParamRequest {
    //新增参数
@Data
@ApiModel(value = "LWhFormScrappedParam")
public class LWhFormScrappedParam {
    /**
     * 机构id
@@ -29,162 +28,8 @@
     * 附件
     */
    private String uploadFiles;
    /**
     * 物品id
     */
    private Long baseGoodsTemplateId;
    /**
     * 报废单物品
     */
    private List<LWhFormScrappedGoodsParams> scrappedGoodsList;
    //查询参数
    private List<LWhFormScrappedGoodsInfoParam> scrappedGoodsInfo;
    /**
     * 报废单号
     */
    private String businessFormCode;
    /**
     * 物品模版名称
     */
    private String goodsTemplateName;
    /**
     * 报废时间 开始
     */
    private Long dealTimeStart;
    /**
     * 报废时间 结束
     */
    private Long dealTimeEnd;
    /**
     * 规格型号id
     */
    private Long baseGoodsModelsId;
    /**
     * 创建人
     */
    private String operatorName;
    private Integer pageSize = 10;
    private Integer pageNum = 1;
    public Integer getPageSize() {
        return pageSize;
    }
    public void setPageSize(Integer pageSize) {
        this.pageSize = pageSize;
    }
    public Integer getPageNum() {
        return pageNum;
    }
    public void setPageNum(Integer pageNum) {
        this.pageNum = pageNum;
    }
    public String getOperatorName() {
        return operatorName;
    }
    public void setOperatorName(String operatorName) {
        this.operatorName = operatorName;
    }
    public Long getBaseGoodsModelsId() {
        return baseGoodsModelsId;
    }
    public void setBaseGoodsModelsId(Long baseGoodsModelsId) {
        this.baseGoodsModelsId = baseGoodsModelsId;
    }
    public String getBusinessFormCode() {
        return businessFormCode;
    }
    public void setBusinessFormCode(String businessFormCode) {
        this.businessFormCode = businessFormCode;
    }
    public String getGoodsTemplateName() {
        return goodsTemplateName;
    }
    public void setGoodsTemplateName(String goodsTemplateName) {
        this.goodsTemplateName = goodsTemplateName;
    }
    public Long getDealTimeStart() {
        return dealTimeStart;
    }
    public void setDealTimeStart(Long dealTimeStart) {
        this.dealTimeStart = dealTimeStart;
    }
    public Long getDealTimeEnd() {
        return dealTimeEnd;
    }
    public void setDealTimeEnd(Long dealTimeEnd) {
        this.dealTimeEnd = dealTimeEnd;
    }
    public Long getBaseGoodsTemplateId() {
        return baseGoodsTemplateId;
    }
    public void setBaseGoodsTemplateId(Long baseGoodsTemplateId) {
        this.baseGoodsTemplateId = baseGoodsTemplateId;
    }
    public Long getAgencyId() {
        return agencyId;
    }
    public void setAgencyId(Long agencyId) {
        this.agencyId = agencyId;
    }
    public Long getWarehouseId() {
        return warehouseId;
    }
    public void setWarehouseId(Long warehouseId) {
        this.warehouseId = warehouseId;
    }
    public Long getOperatorId() {
        return operatorId;
    }
    public void setOperatorId(Long operatorId) {
        this.operatorId = operatorId;
    }
    public Long getDealTime() {
        return dealTime;
    }
    public void setDealTime(Long dealTime) {
        this.dealTime = dealTime;
    }
    public String getUploadFiles() {
        return uploadFiles;
    }
    public void setUploadFiles(String uploadFiles) {
        this.uploadFiles = uploadFiles;
    }
    public List<LWhFormScrappedGoodsParams> getScrappedGoodsList() {
        return scrappedGoodsList;
    }
    public void setScrappedGoodsList(List<LWhFormScrappedGoodsParams> scrappedGoodsList) {
        this.scrappedGoodsList = scrappedGoodsList;
    }
}
consum-base/src/main/java/com/consum/base/pojo/query/LWhFormInventoryQry.java
File was renamed from consum-base/src/main/java/com/consum/base/pojo/LWhFormInventoryParam.java
@@ -1,12 +1,11 @@
package com.consum.base.pojo;
package com.consum.base.pojo.query;
import com.walker.web.param.ParamRequest;
import io.swagger.annotations.ApiModel;
import lombok.Data;
@Data
@ApiModel(value = "盘点单条件参数")
public class LWhFormInventoryParam extends ParamRequest {
public class LWhFormInventoryQry {
    private Long id;
    /**
@@ -62,14 +61,7 @@
     * 盘点人
     */
    private String operatorName;
    /**
     * 时间(盘点结束时间) 开始
     */
    private Long stopTimeStart;
    /**
     * 时间(盘点结束时间) 结束
     */
    private Long stopTimeEnd;
    private Integer pageSize = 10;
    private Integer pageNum = 1;
consum-base/src/main/java/com/consum/base/pojo/query/LWhFormScrappedQry.java
New file
@@ -0,0 +1,48 @@
package com.consum.base.pojo.query;
import io.swagger.annotations.ApiModel;
import lombok.Data;
/**
 * @author asus
 * @version 1.0
 * @description: 报废单查询条件
 * @date 2023/11/21 15:00
 */
@Data
@ApiModel(value = "LWhFormScrappedQry", description = "报废单查询条件")
public class LWhFormScrappedQry {
    /**
     * 报废单号
     */
    private String businessFormCode;
    /**
     * 物品模版名称
     */
    private String goodsTemplateName;
    /**
     * 报废时间 开始
     */
    private Long startTime;
    /**
     * 报废时间 结束
     */
    private Long endTime;
    /**
     * 规格型号id
     */
    private Long baseGoodsModelsId;
    /**
     * 创建人
     */
    private String operatorName;
    /**
     * 机构
     */
    private String agencyId;
    private Integer pageSize = 10;
    private Integer pageNum = 1;
}
consum-base/src/main/java/com/consum/base/pojo/request/LWhFormInventoryParam.java
@@ -1,14 +1,61 @@
package com.consum.base.pojo.request;
import com.consum.base.pojo.response.FormInventoryGoodsVO;
import com.consum.model.po.LWhFormInventory;
import io.swagger.annotations.ApiModel;
import java.util.List;
import lombok.Data;
@Data
@ApiModel(value = "盘点单")
public class LWhFormInventoryParam extends LWhFormInventory {
public class LWhFormInventoryParam {
    // 主键
    private Long id;
    // 属性列表
    private String businessFormCode;
    private String businessFormName;
    private Integer warehouseType;
    private Long warehouseId;
    private String warehouseName;
    private Long operatorId;
    private String operatorName;
    private Integer states;
    private Long operatorId2;
    private String operatorName2;
    private String beiz1;
    private Long agencyId;
    private String agencyName;
    private Long creatorId;
    private String creatorName;
    private Long inventoryDate;
    private Long createTime;
    private Long stopTime;
    private Long inWarehouseFormId;
    private String inBusinessFormCode;
    private Long outWarehouseFormId;
    private String outBusinessFormCode;
    /**
     * 盘点单物品
consum-base/src/main/java/com/consum/base/pojo/response/FormInventoryDetailVO.java
New file
@@ -0,0 +1,50 @@
package com.consum.base.pojo.response;
import io.swagger.annotations.ApiModel;
import lombok.Data;
/**
 * @author asus
 * @version 1.0
 * @description: 盘点异常明细信息
 * @date 2023/11/21 13:20
 */
@Data
@ApiModel(value = "盘点异常明细信息")
public class FormInventoryDetailVO {
    private Long id;
    private String warehouseName;
    private String goodsTemplateName;
    private String baseGoodsModelsName;
    /**
     * 盘点结果(1=正常;2=盘盈;3=盘亏)
     */
    private Integer inventoryResult;
    /**
     * 盘点结果(1=正常;2=盘盈;3=盘亏)
     */
    private String inventoryResultType;
    /**
     * 库存数量
     */
    private Integer initCounts;
    /**
     * 盘点数量
     */
    private Integer inventoryCounts;
    /**
     * 盘点异常数量
     */
    private Integer errorCounts;
    /**
     * 盘点出入库类型
     */
    private String inventoryType;
    private String businessFormCode;
    private String agencyName;
    private String operatorName;
    private Long operatorTime;
    private Long warehouseFormCode;
}
consum-base/src/main/java/com/consum/base/pojo/response/FormInventoryGoodsVO.java
@@ -46,5 +46,8 @@
    @ApiModelProperty(value = "实盘数量")
    private Integer realNum;
    @ApiModelProperty(value = "状态")
    private Integer status;
}
consum-base/src/main/java/com/consum/base/pojo/response/FormScrappedGoodsDetailVO.java
New file
@@ -0,0 +1,43 @@
package com.consum.base.pojo.response;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
 * @author asus
 * @version 1.0
 * @description: 报废单明细信息
 * @date 2023/11/22 18:16
 */
@NoArgsConstructor
@Data
@ApiModel(value = "FormScrappedGoodsDetailVO")
public class FormScrappedGoodsDetailVO {
    @JsonProperty("id")
    private Long id;
    @JsonProperty("businessFormCode")
    private String businessFormCode;
    @JsonProperty("goodsTemplateName")
    private String goodsTemplateName;
    @JsonProperty("baseGoodsModelsName")
    private String baseGoodsModelsName;
    @JsonProperty("counts")
    private Integer counts;
    @JsonProperty("agencyName")
    private String agencyName;
    @JsonProperty("operatorName")
    private String operatorName;
    @JsonProperty("dealTime")
    private Long dealTime;
}
consum-base/src/main/java/com/consum/base/pojo/response/FormScrappedGoodsVO.java
New file
@@ -0,0 +1,29 @@
package com.consum.base.pojo.response;
import io.swagger.annotations.ApiModel;
import java.util.List;
import lombok.Data;
/**
 * @author asus
 * @version 1.0
 * @description: TODO
 * @date 2023/11/22 17:26
 */
@Data
@ApiModel
public class FormScrappedGoodsVO {
    private Long id;
    //分类编号
    private Long categoryId;
    //分类名称
    private String categoryName;
    //物品模版编号
    private Long baseGoodsTemplateId;
    private String goodsName;
    private List<GoodsModelVO> models;
}
consum-base/src/main/java/com/consum/base/pojo/response/GoodsModelVO.java
@@ -21,4 +21,7 @@
    private Integer totalAmount;
    private String scrappedName;
}
consum-base/src/main/java/com/consum/base/pojo/response/LWhFormScrappedExtendVO.java
New file
@@ -0,0 +1,53 @@
package com.consum.base.pojo.response;
import io.swagger.annotations.ApiModel;
import java.util.List;
import lombok.Data;
/**
 * @Description
 * @Author 卢庆阳
 * @Date 2023/11/2
 */
@Data
@ApiModel
public class LWhFormScrappedExtendVO {
    // 主键
    private Long id;
    private String businessFormCode;
    private Long warehouseId;
    private String warehouseName;
    private Long agencyId;
    private String agencyName;
    private Long operatorId;
    private String operatorName;
    private Long dealTime;
    private String uploadFiles;
    private Integer states;
    private List<FormScrappedGoodsVO> scrappedGoods;
}
consum-base/src/main/java/com/consum/base/pojo/response/LWhFormScrappedVO.java
New file
@@ -0,0 +1,44 @@
package com.consum.base.pojo.response;
import io.swagger.annotations.ApiModel;
import java.util.List;
import lombok.Data;
/**
 * @author asus
 * @version 1.0
 * @description: TODO
 * @date 2023/11/22 16:29
 */
@Data
@ApiModel(value = "LWhFormScrappedVO", description = "LWhFormScrappedVO")
public class LWhFormScrappedVO {
    // 主键
    private Long id;
    private String businessFormCode;
    private Long warehouseId;
    private String warehouseName;
    private Long agencyId;
    private String agencyName;
    private Long operatorId;
    private String operatorName;
    private Long dealTime;
    private Integer states;
    /**
     * 规格型号
     */
    private List<FromTransferTemplateInfoVO> goodTemplateInfo;
}
consum-base/src/main/java/com/consum/base/service/FinSysTenantServiceImpl.java
@@ -7,10 +7,7 @@
import com.walker.infrastructure.utils.DateUtils;
import com.walker.infrastructure.utils.StringUtils;
import com.walker.jdbc.service.BaseServiceImpl;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -22,10 +19,8 @@
    private static final String QUERY_TREE_ALL = "select * from FIN_SYS_TENANT where is_delete = 0 and status = 1  order by parent_id, LV ASC";
    private static final String QUERY_TREE_BY_CODE = "SELECT * FROM FIN_SYS_TENANT  ";
    private static final String QUERY_BY_PARENT_ID = "SELECT * FROM FIN_SYS_TENANT WHERE parent_id = ?";
    private static final String QUERY_BY_PARENT_CODE = "SELECT * FROM FIN_SYS_TENANT WHERE CODE = ?";
    private static final String QUERY_LIST_BY_CITY_CODE = "SELECT ID, NAME, CODE, CASE WHEN LV = 2 THEN ID ELSE PARENT_ID END AS PARENT_ID, LV, TENANT_TYPE, BELONG_PROVINCE FROM FIN_SYS_TENANT  ";
    private static final String QUERY_LIST_BY_PARENT_ID = "SELECT * FROM FIN_SYS_TENANT WHERE PARENT_ID = ? ORDER BY LV ASC";
    private static final String QUERY_LV2_ALL = "SELECT * FROM FIN_SYS_TENANT WHERE LV < 3 ORDER BY CODE ASC";
    /**
     * @Author :power
@@ -41,8 +36,6 @@
        return null;
    }
    private static final String QUERY_LV2_ALL = "SELECT * FROM FIN_SYS_TENANT WHERE LV < 3 ORDER BY CODE ASC";
    public List<FinSysTenant> queryForTree() {
        // 展示全部节点
@@ -101,37 +94,6 @@
        return this.select(QUERY_LV2_ALL, new Object[]{}, new FinSysTenant());
    }
    /**
     * @Description 根据父级id获取下级列表
     * @Author wh
     * @Date 2023/7/25 13:53
     */
    public List<FinSysTenant> getByParentId(Long parentId) {
        return this.select(QUERY_LIST_BY_PARENT_ID, new Object[]{parentId}, new FinSysTenant());
    }
    /**
     * @Description 根据parentId查询
     * @Author wh
     * @Date 2023/9/11 19:16
     */
    public FinSysTenant selectByParentId(String parentId) {
        List<FinSysTenant> select = this.select(QUERY_BY_PARENT_ID, new Object[]{parentId}, new FinSysTenant());
        if (StringUtils.isEmptyList(select)) {
            return null;
        } else {
            return select.get(0);
        }
    }
    public FinSysTenant selectByTenantId(String tenantCode) {
        List<FinSysTenant> select = this.select(QUERY_BY_PARENT_CODE, new Object[]{tenantCode}, new FinSysTenant());
        if (StringUtils.isEmptyList(select)) {
            return null;
        } else {
            return select.get(0);
        }
    }
    /**
     * 删除
@@ -144,7 +106,7 @@
        finSysTenant.setTempId(param.getId());
        finSysTenant.setStatus(0);
        finSysTenant.setIsDelete(1);
        finSysTenant.setModified(getCurrentDate());
        finSysTenant.setModified(DateUtils.getDate("yyyy-MM-dd HH:mm:ss"));
        finSysTenant.setUpdateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
        finSysTenant.setUpdateBy(sysInfo.getUserName());
        return this.update(finSysTenant);
@@ -182,7 +144,7 @@
        finSysTenant.setCode(param.getCode());
        //设置详细地址及经纬度
        finSysTenant.setName(param.getName());
        finSysTenant.setCreateTime3(getCurrentDate());
        finSysTenant.setCreateTime3(DateUtils.getDate("yyyy-MM-dd HH:mm:ss"));
        finSysTenant.setCreateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
        finSysTenant.setSummary(param.getSummary());
        finSysTenant.setCreateBy(sysInfo.getUserName());
@@ -262,24 +224,6 @@
    /**
     * 获取当前日期
     *
     * @author 卢庆阳
     * @date 2023/10/4
     */
    private Date getCurrentDate() {
        Date currentDate = new Date();
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String formattedDate = dateFormat.format(currentDate);
        try {
            Date convertedDate = dateFormat.parse(formattedDate);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return currentDate;
    }
    /**
     * 编辑
     *
     * @author 卢庆阳
@@ -294,9 +238,15 @@
        } else {
            finSysTenant.setLv3Name(finSysTenant.getName());
        }
        finSysTenant.setModified(getCurrentDate());
        finSysTenant.setModified(DateUtils.getDate("yyyy-MM-dd HH:mm:ss"));
        finSysTenant.setUpdateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
        finSysTenant.setUpdateBy(sysInfo.getUserName());
        return this.update(finSysTenant);
    }
    public FinSysTenant selectById(Long id) {
        FinSysTenant tenant = new FinSysTenant();
        tenant.setTempId(id);
        return this.get(tenant);
    }
}
consum-base/src/main/java/com/consum/base/service/LWhFormInventoryGoodsServiceImpl.java
@@ -30,52 +30,46 @@
        return this.select(inventoryGoods);
    }
    /**
     * @return
     * @Description 新增盘点单物品记录
     * @Author 卢庆阳
     * @Date 2023/10/31
     */
//    public int add(List<Map<String, Object>> list, Long warehouseId) {
//        List<LWhFormInventoryGoods> inventoryGoodsList = new ArrayList<>();
//        for (Map<String, Object> map : list) {
//            LWhFormInventoryGoods inventoryGoods = new LWhFormInventoryGoods();
//            inventoryGoods.setId(IdUtil.generateId());
//            inventoryGoods.setWhFormInventoryId(warehouseId);
//            inventoryGoods.setBaseGoodsTemplateId((Long) map.get("id"));
//            inventoryGoods.setGoodsTemplateName((String) map.get("goodsname"));
//            inventoryGoods.setUnit((String) map.get("unit"));
//            inventoryGoods.setBaseGoodsModelsId((Long) map.get("modelsid"));
//            inventoryGoods.setBaseGoodsModelsName((String) map.get("goodsTemplateId"));
//            inventoryGoods.setInitCounts((Integer) map.get("endcount"));
//
//            inventoryGoodsList.add(inventoryGoods);
//        }
//        return this.insert(inventoryGoodsList);
//    }
    public int add(List<FormInventoryGoodsVO> inventoryGoodsList, Long warehouseId) {
    public int add(List<FormInventoryGoodsVO> inventoryGoodsList, Long inventoryId) {
        List<LWhFormInventoryGoods> goodsList = new ArrayList<>();
        for (FormInventoryGoodsVO inventoryGoods : inventoryGoodsList) {
            LWhFormInventoryGoods lWhFormInventoryGoods = new LWhFormInventoryGoods();
            lWhFormInventoryGoods.setId(IdUtil.generateId());
            lWhFormInventoryGoods.setWhFormInventoryId(warehouseId);
            lWhFormInventoryGoods.setWhFormInventoryId(inventoryId);
            lWhFormInventoryGoods.setBaseGoodsTemplateId(inventoryGoods.getBaseGoodsTemplateId());
            lWhFormInventoryGoods.setGoodsTemplateName(inventoryGoods.getGoodsTemplateName());
            lWhFormInventoryGoods.setUnit(inventoryGoods.getUnit());
            lWhFormInventoryGoods.setBaseGoodsModelsId(inventoryGoods.getId());
            lWhFormInventoryGoods.setBaseGoodsModelsName(inventoryGoods.getBaseGoodsModelsName());
            Integer inventoryCount = inventoryGoods.getInventoryCount();
            Integer realNum = inventoryGoods.getRealNum();
            int errorCount = inventoryCount - realNum;
            lWhFormInventoryGoods.setInventoryCounts(realNum);
            lWhFormInventoryGoods.setErrorCounts(errorCount);
            //盘点结果(1=正常;2=盘盈;3=盘亏)
            lWhFormInventoryGoods.setInventoryResult((errorCount > 0) ? 2 : (errorCount < 0) ? 3 : 1);
            lWhFormInventoryGoods.setInitCounts(inventoryGoods.getInventoryCount());
            goodsList.add(lWhFormInventoryGoods);
        }
        return this.insert(goodsList);
    }
    public int updateInventoryGoods(List<FormInventoryGoodsVO> inventoryGoodsList) {
        List<LWhFormInventoryGoods> goodsList = new ArrayList<>();
        for (FormInventoryGoodsVO inventoryGoods : inventoryGoodsList) {
            LWhFormInventoryGoods lWhFormInventoryGoods = new LWhFormInventoryGoods();
            lWhFormInventoryGoods.setId(inventoryGoods.getId());
            Integer inventoryCount = inventoryGoods.getInventoryCount();
            Integer realNum = inventoryGoods.getRealNum();
            if (realNum != null) {
                int errorCount = inventoryCount - realNum;
                lWhFormInventoryGoods.setInventoryCounts(realNum);
                lWhFormInventoryGoods.setErrorCounts(errorCount);
                //盘点结果(1=正常;2=盘盈;3=盘亏)
                lWhFormInventoryGoods.setInventoryResult((errorCount > 0) ? 2 : (errorCount < 0) ? 3 : 1);
                goodsList.add(lWhFormInventoryGoods);
            }
//            this.update(lWhFormInventoryGoods);
        }
        return this.updateBatch(goodsList);
//        return 1;
    }
    /**
     * @Description 根据盘点单id删除盘点单物品
     * @Author 卢庆阳
consum-base/src/main/java/com/consum/base/service/LWhFormInventoryServiceImpl.java
@@ -3,14 +3,17 @@
import com.consum.base.core.CodeGeneratorEnum;
import com.consum.base.core.CodeGeneratorService;
import com.consum.base.core.utils.IdUtil;
import com.consum.base.core.utils.MapRowMapper;
import com.consum.base.core.utils.MapUtils;
import com.consum.base.core.utils.MapperUtil;
import com.consum.base.core.utils.PageUtil;
import com.consum.base.pojo.query.LWhFormInventoryQry;
import com.consum.base.pojo.request.FormInventoryParam;
import com.consum.base.pojo.request.LWhFormInventoryParam;
import com.consum.base.pojo.response.FormInventoryDetailVO;
import com.consum.base.pojo.response.FormInventoryGoodsVO;
import com.consum.base.pojo.response.FormInventoryVO;
import com.consum.model.po.BaseWarehouse;
import com.consum.model.po.FinSysTenant;
import com.consum.model.po.FinSysTenantUser;
import com.consum.model.po.LWhFormInventory;
import com.walker.db.page.GenericPager;
@@ -48,6 +51,8 @@
    private BaseGoodsTemplateServiceImpl baseGoodsTemplateService;
    @Autowired
    private LWhGoodsService lWhGoodsService;
    @Autowired
    private FinSysTenantServiceImpl finSysTenantService;
    private static final String QUERY_LIST = "select * from l_wh_form_inventory where 1=1 ";
@@ -60,10 +65,10 @@
        + "left join base_goods_template bgt on bgt.ID = model.GOODS_TEMPLATES_ID; ";
    private static final String QUERY_PD_DETAIL_LIST =
        "select lwfi.WAREHOUSE_NAME,lwfig.GOODS_TEMPLATE_NAME,\n" + "       lwfig.BASE_GOODS_MODELS_NAME,\n" + "       lwfig.INVENTORY_RESULT,\n"
            + "       lwfig.INIT_COUNTS,\n" + "       lwfig.INVENTORY_COUNTS,\n" + "       lwfig.ERROR_COUNTS,\n" + "       lwfi.AGENCY_NAME,\n"
            + "       lwfi.OPERATOR_NAME,\n" + "       lwfi.STOP_TIME\n" + "from l_wh_form_inventory lwfi\n"
            + "         inner join l_wh_form_inventory_goods lwfig on lwfi.ID = lwfig.WH_FORM_INVENTORY_ID ";
        "SELECT fig.id,fi.WAREHOUSE_NAME,fig.GOODS_TEMPLATE_NAME,fig.BASE_GOODS_MODELS_NAME,fig.INVENTORY_RESULT,fig.INIT_COUNTS,fig.INVENTORY_COUNTS,"
            + "fig.ERROR_COUNTS,fi.AGENCY_NAME,fi.OPERATOR_NAME,fi.STOP_TIME operatorTime,"
            + "CASE WHEN fig.INVENTORY_RESULT = 2 THEN fi.IN_BUSINESS_FORM_CODE WHEN fig.INVENTORY_RESULT = 3 THEN fi.OUT_BUSINESS_FORM_CODE END warehouseFormCode "
            + "FROM l_wh_form_inventory fi INNER JOIN l_wh_form_inventory_goods fig ON fi.ID = fig.WH_FORM_INVENTORY_ID where 1=1 ";
    /**
     * @param param
@@ -99,7 +104,8 @@
        lWhFormInventory.setStates(0);
        lWhFormInventory.setAgencyId(Long.valueOf(currentUser.getTenantId()));
        lWhFormInventory.setAgencyName(currentUser.getTenantName());
        FinSysTenant finSysTenant = finSysTenantService.selectById(Long.valueOf(currentUser.getTenantId()));
        lWhFormInventory.setAgencyName(finSysTenant.getName());
        lWhFormInventory.setCreatorId(currentUser.getSysUserId());
        lWhFormInventory.setCreatorName(currentUser.getUserName());
        lWhFormInventory.setCreateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
@@ -112,7 +118,7 @@
     * @Author 卢庆阳
     * @Date 2023/10/31
     */
    public GenericPager<LWhFormInventory> queryList(com.consum.base.pojo.LWhFormInventoryParam param, FinSysTenantUser sysInfo) {
    public GenericPager<LWhFormInventory> queryList(LWhFormInventoryQry param, FinSysTenantUser sysInfo) {
        StringBuilder sql = new StringBuilder(QUERY_LIST);
        HashMap<String, Object> paramts = new HashMap<>();
@@ -148,41 +154,39 @@
        return selectSplit(sql.toString(), paramts, new LWhFormInventory());
    }
    /**
     * @param id 盘点单id
     * @Description 盘点
     * @Author 卢庆阳
     * @Date 2023/10/31
     */
    public List queryPdList(Long id) {
    public void saveInventory(FormInventoryVO dto, Long id) {
        //1.根据盘点单id查询盘点单
        LWhFormInventory lWhFormInventory = this.get(new LWhFormInventory(id));
        if (lWhFormInventory == null) {
            log.error("盘点失败");
            log.error("根据盘点单id查询盘点单失败");
        }
        //2.查询盘点单数据
        List<Map<String, Object>> list = this.select(QUERY_PD_List, new Object[]{lWhFormInventory.getWarehouseId()});
        if (CollectionUtils.isEmpty(list)) {
            log.error("盘点失败");
            return null;
        //2.修改盘点单
        lWhFormInventory.setStates(1);
        lWhFormInventory.setInventoryDate(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
        int flag1 = this.update(lWhFormInventory);
        if (flag1 == 0) {
            log.error("修改盘点单失败");
        }
        //3.新增盘点单物品记录
//        int flag = inventoryGoodsService.add(list, lWhFormInventory.getWarehouseId());
//        if (flag != list.size()) {
//            log.error("新增盘点单记录");
//            return null;
//        }
        //4.根据盘点单id查询盘点单物品
        return inventoryGoodsService.getByInventoryId(id);
        //3.添加盘点单物品
        List<FormInventoryGoodsVO> formInventoryGoodsList = dto.getFormInventoryGoodsList();
        if (CollectionUtils.isEmpty(formInventoryGoodsList)) {
            log.error("盘点单物品为空");
        }
        int num = inventoryGoodsService.add(formInventoryGoodsList, id);
        if (num != formInventoryGoodsList.size()) {
            log.error("更新盘点单物品失败");
        }
    }
    /**
     * 暂存
     * 保存盘点信息
     *
     * @author 卢庆阳
     * @date 2023/10/31
     */
    public int temporaryStorage(LWhFormInventoryParam dto, Integer state) {
    public int updateInventoryInfo(LWhFormInventoryParam dto, Integer state) {
        //1.根据盘点单id查询盘点单
        LWhFormInventory lWhFormInventory = this.get(new LWhFormInventory(dto.getId()));
        if (lWhFormInventory == null) {
@@ -203,11 +207,7 @@
            log.error("盘点单物品为空");
            return 0;
        }
        int flag2 = inventoryGoodsService.add(inventoryGoodsList, lWhFormInventory.getWarehouseId());
        if (flag2 != inventoryGoodsList.size()) {
            log.error("更新盘点单物品失败");
            return 0;
        }
        this.inventoryGoodsService.updateInventoryGoods(inventoryGoodsList);
        return 1;
    }
@@ -263,7 +263,7 @@
     * @Author 卢庆阳
     * @Date 2023/11/1
     */
    public GenericPager<Map<String, Object>> queryPdDetailList(com.consum.base.pojo.LWhFormInventoryParam param, FinSysTenantUser sysInfo) {
    public PageUtil<FormInventoryDetailVO> queryPdDetailList(LWhFormInventoryQry param, FinSysTenantUser sysInfo) {
        StringBuilder sql = new StringBuilder(QUERY_PD_DETAIL_LIST);
        HashMap<String, Object> paramts = new HashMap<>();
@@ -276,60 +276,67 @@
        }
        //仓库编号
        if (param.getWarehouseId() != null) {
            sql.append(" and WAREHOUSE_ID =:WAREHOUSE_ID ");
            sql.append("and WAREHOUSE_ID =:WAREHOUSE_ID ");
            paramts.put("WAREHOUSE_ID", param.getWarehouseId());
        }
        //物品名称
        if (!StringUtils.isEmpty(param.getGoodsTemplateName())) {
            sql.append(" and GOODS_TEMPLATE_NAME =:GOODS_TEMPLATE_NAME ");
            sql.append("and GOODS_TEMPLATE_NAME =:GOODS_TEMPLATE_NAME ");
            paramts.put("GOODS_TEMPLATE_NAME", StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT);
        }
        //规格型号
        if (param.getBaseGoodsModelsId() != null) {
            sql.append(" and BASE_GOODS_MODELS_ID =:BASE_GOODS_MODELS_ID ");
            sql.append("and BASE_GOODS_MODELS_ID =:BASE_GOODS_MODELS_ID ");
            paramts.put("BASE_GOODS_MODELS_ID", param.getBaseGoodsModelsId());
        }
        //类型(出入库类型)
        Integer inventoryResult = param.getInventoryResult();
        if (inventoryResult != null) {
            sql.append(" and INVENTORY_RESULT =:INVENTORY_RESULT ");
            sql.append("and INVENTORY_RESULT =:INVENTORY_RESULT ");
            paramts.put("INVENTORY_RESULT", inventoryResult);
        }
        //出入库单号
        if (param.getWarehouseFormCode() != null) {
            if (inventoryResult == 2) { //盘盈入库
                sql.append(" and IN_BUSINESS_FORM_CODE =:IN_BUSINESS_FORM_CODE ");
                paramts.put("IN_BUSINESS_FORM_CODE", StringUtils.CHAR_PERCENT + param.getWarehouseFormCode() + StringUtils.CHAR_PERCENT);
            } else {  //盘亏出库
                sql.append(" and OUT_BUSINESS_FORM_CODE =:OUT_BUSINESS_FORM_CODE ");
                paramts.put("OUT_BUSINESS_FORM_CODE", StringUtils.CHAR_PERCENT + param.getWarehouseFormCode() + StringUtils.CHAR_PERCENT);
            }
            sql.append(
                " and CASE WHEN fig.INVENTORY_RESULT = 2 THEN fi.IN_BUSINESS_FORM_CODE =:warehouseFormCode WHEN fig.INVENTORY_RESULT = 3 THEN fi.OUT_BUSINESS_FORM_CODE =:warehouseFormCode END ");
            paramts.put("warehouseFormCode", param.getWarehouseFormCode());
        }
        //操作人
        if (!StringUtils.isEmpty(param.getOperatorName())) {
            sql.append(" and OPERATOR_NAME =:OPERATOR_NAME ");
            sql.append("and OPERATOR_NAME =:OPERATOR_NAME ");
            paramts.put("OPERATOR_NAME", StringUtils.CHAR_PERCENT + param.getOperatorName() + StringUtils.CHAR_PERCENT);
        }
        //结束时间
        if (param.getStopTimeStart() != null) {
            sql.append(" and STOP_TIME >=:stopTimeStart ");
            paramts.put("stopTimeStart", param.getStopTimeStart() * 1000000);
        if (param.getStartTime() != null) {
            sql.append("and STOP_TIME >=:stopTimeStart ");
            paramts.put("stopTimeStart", param.getStartTime() * 1000000);
        }
        if (param.getStopTimeEnd() != null) {
            sql.append(" and STOP_TIME <:stopTimeEnd ");
            paramts.put("stopTimeEnd", param.getStopTimeEnd() * 1000000 + 240000);
        if (param.getEndTime() != null) {
            sql.append("and STOP_TIME <:stopTimeEnd ");
            paramts.put("stopTimeEnd", param.getEndTime() * 1000000 + 240000);
        }
        sql.append(" ORDER BY CREATE_TIME DESC ");
        return selectSplit(sql.toString(), paramts, param.getPageNum(), param.getPageSize(), new MapRowMapper());
        sql.append("AND fig.INVENTORY_RESULT in(2,3) ");
        sql.append("ORDER BY CREATE_TIME DESC ");
        GenericPager<Map<String, Object>> mapGenericPager = selectSplit(sql.toString(), paramts, param.getPageNum(), param.getPageSize(), new MapperUtil());
        PageUtil<FormInventoryDetailVO> pageUtil = new PageUtil<>(mapGenericPager);
        List<FormInventoryDetailVO> result = Lists.newArrayList();
        mapGenericPager.getDatas().forEach(item -> {
            FormInventoryDetailVO formInventoryDetailVO = MapUtils.convertMapToObj(item, FormInventoryDetailVO.class);
            formInventoryDetailVO.setInventoryResultType(
                formInventoryDetailVO.getInventoryResult() == null ? null : (formInventoryDetailVO.getInventoryResult() == 2 ? "盘盈" : "盘亏"));
            formInventoryDetailVO.setInventoryType(
                formInventoryDetailVO.getInventoryResult() == null ? null : (formInventoryDetailVO.getInventoryResult() == 2 ? "盘盈入库" : "盘亏出库"));
            result.add(formInventoryDetailVO);
        });
        pageUtil.setDatas(result);
        return pageUtil;
    }
    public List<FormInventoryGoodsVO> selectDetailById(Long id) {
        String sql = "select fig.id, fig.BASE_GOODS_TEMPLATE_ID,fig.GOODS_TEMPLATE_NAME,fig.BASE_GOODS_MODELS_NAME,"
            + "fig.INIT_COUNTS total,fig.INVENTORY_COUNTS,fig.INVENTORY_RESULT status from "
            + "l_wh_form_inventory_goods fig where fig.WH_FORM_INVENTORY_ID = :id";
            + "fig.INIT_COUNTS inventoryCount,fig.INVENTORY_COUNTS realNum,fig.INVENTORY_RESULT status,fig.unit,bgt.CLASSIFICATION type from "
            + "l_wh_form_inventory_goods fig left join base_goods_template bgt on bgt.id =fig.BASE_GOODS_TEMPLATE_ID  where fig.WH_FORM_INVENTORY_ID = :id";
        HashMap<String, Object> param = new HashMap<>();
        param.put("id", id);
        List<Map<String, Object>> select = select(sql, param, new MapperUtil());
@@ -359,7 +366,8 @@
        formInventoryVO.setWarehouseName(inventory.getWarehouseName());
        String sql =
            "select bgm.id,bgt.id baseGoodsTemplateId,bgt.GOODS_NAME goodsTemplateName,bgm.MODEL_NAME baseGoodsModelsName,bgt.CLASSIFICATION type,bgm.UNIT from base_goods_models bgm left join base_goods_template bgt on bgm.GOODS_TEMPLATES_ID = bgt.id "
            "select bgm.id,bgt.id baseGoodsTemplateId,bgt.GOODS_NAME goodsTemplateName,bgm.MODEL_NAME baseGoodsModelsName,bgt.CLASSIFICATION type,bgm.UNIT "
                + "from base_goods_models bgm left join base_goods_template bgt on bgm.GOODS_TEMPLATES_ID = bgt.id "
                + "where bgt.AGENCY_ID = :agencyId";
        HashMap<String, Object> param = new HashMap<>();
        param.put("agencyId", inventory.getAgencyId());
consum-base/src/main/java/com/consum/base/service/LWhFormProcureService.java
@@ -1,6 +1,7 @@
package com.consum.base.service;
import com.consum.base.core.utils.MapperUtil;
import com.consum.base.core.utils.PageUtil;
import com.consum.base.pojo.query.FormProcureQry;
import com.consum.model.po.LWhFormProcure;
import com.walker.db.page.GenericPager;
@@ -21,7 +22,7 @@
    private static String QUERY_FORM_PROCURE_LIST = "SELECT * FROM L_WH_FORM_PROCURE WHERE 1 = 1";
    public GenericPager<LWhFormProcure> queryFormProcureList(FormProcureQry param) {
    public PageUtil<LWhFormProcure> queryFormProcureList(FormProcureQry param) {
        HashMap<String, Object> paramts = new HashMap<>();
        StringBuilder sql = new StringBuilder(QUERY_FORM_PROCURE_LIST);
        //入库单号
@@ -60,7 +61,8 @@
        }
        sql.append(" ORDER BY PROCURE_TIME DESC");
        GenericPager genericPager = selectSplit(sql.toString(), paramts, new LWhFormProcure());
        return genericPager;
        PageUtil pageUtil = new PageUtil(genericPager);
        return pageUtil;
    }
consum-base/src/main/java/com/consum/base/service/LWhFormScrappedServiceImpl.java
@@ -3,10 +3,17 @@
import com.consum.base.core.CodeGeneratorEnum;
import com.consum.base.core.CodeGeneratorService;
import com.consum.base.core.utils.IdUtil;
import com.consum.base.core.utils.MapRowMapper;
import com.consum.base.pojo.LWhFormScrappedExtend;
import com.consum.base.pojo.LWhFormScrappedGoodsParams;
import com.consum.base.core.utils.MapUtils;
import com.consum.base.core.utils.MapperUtil;
import com.consum.base.core.utils.PageUtil;
import com.consum.base.pojo.LWhFormScrappedGoodsInfoParam;
import com.consum.base.pojo.LWhFormScrappedGoodsModelParams;
import com.consum.base.pojo.LWhFormScrappedParam;
import com.consum.base.pojo.query.LWhFormScrappedQry;
import com.consum.base.pojo.response.FormScrappedGoodsDetailVO;
import com.consum.base.pojo.response.FormScrappedGoodsVO;
import com.consum.base.pojo.response.GoodsModelVO;
import com.consum.base.pojo.response.LWhFormScrappedExtendVO;
import com.consum.model.po.BaseGoodsModels;
import com.consum.model.po.BaseGoodsTemplate;
import com.consum.model.po.BaseWarehouse;
@@ -17,7 +24,6 @@
import com.consum.model.po.SDictData;
import com.iplatform.model.po.S_user_core;
import com.walker.db.page.GenericPager;
import com.walker.infrastructure.utils.DateUtils;
import com.walker.infrastructure.utils.StringUtils;
import com.walker.jdbc.service.BaseServiceImpl;
import java.util.ArrayList;
@@ -25,6 +31,7 @@
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import org.apache.commons.compress.utils.Lists;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -58,17 +65,12 @@
    @Autowired
    private LWhFormScrappedCoreService lWhFormScrappedCoreService;
    private static String QUERY_LIST = "SELECT * FROM l_wh_form_scrapped WHERE 1 = 1";
    private static String QUERY_LIST = "SELECT fs.* FROM l_wh_form_scrapped fs left join l_wh_form_scrapped_goods fsg on fs.id = fsg.FORM_SCRAPPED_ID WHERE 1 = 1 ";
    private static final String QUERY_BF_DETAIL_LIST = "select lwfs.BUSINESS_FORM_CODE,\n" +
        "       lwfsg.GOODS_TEMPLATE_NAME,\n" +
        "       lwfsg.BASE_GOODS_MODELS_NAME,\n" +
        "       lwfsg.COUNTS,\n" +
        "       lwfs.AGENCY_NAME,\n" +
        "       lwfs,OPERATOR_NAME,\n" +
        "       lwfs,DEAL_TIME\n" +
        "from l_wh_form_scrapped lwfs\n" +
        "         inner join l_wh_form_scrapped_goods lwfsg on lwfs.ID = lwfsg.FORM_SCRAPPED_ID ";
    private static final String QUERY_BF_DETAIL_LIST =
        "select fs.id,fs.BUSINESS_FORM_CODE,fsg.GOODS_TEMPLATE_NAME,fsg.BASE_GOODS_MODELS_NAME,fsg.COUNTS,"
            + "fs.AGENCY_NAME,OPERATOR_NAME,DEAL_TIME from l_wh_form_scrapped fs "
            + "inner join l_wh_form_scrapped_goods fsg on fs.ID = fsg.FORM_SCRAPPED_ID where 1=1 ";
    /**
     * 新增
@@ -116,61 +118,67 @@
        }
        //2.新增报废单物品记录
        //根据物品id查询物品
        BaseGoodsTemplate goodsTemplate = this.baseGoodsTemplateService.get(new BaseGoodsTemplate(param.getBaseGoodsTemplateId()));
        if (goodsTemplate == null) {
            log.error("根据物品id查询物品");
            return 0;
        }
        List<LWhFormScrappedGoodsParams> scrappedGoodsParamList = param.getScrappedGoodsList();
        if (CollectionUtils.isEmpty(scrappedGoodsParamList)) {
            log.error("新增报废单物品记录 失败");
            return 0;
        }
        //获取规格型号id
        List<Long> baseGoodsModelsIdList = scrappedGoodsParamList.stream().map(params -> params.getBaseGoodsModelsId()).collect(Collectors.toList());
        //根据规格型号id查询规格型号
        List<BaseGoodsModels> models = this.baseGoodsModelsService.selectByModelsIdList(baseGoodsModelsIdList);
        Map<Long, BaseGoodsModels> modelMap = models.stream().collect(Collectors.toMap(model -> model.getId(), model -> model));
        //获取报废原因code
        List<String> scrappedCodeList = scrappedGoodsParamList.stream().map(params -> params.getScrappedCode()).collect(Collectors.toList());
        //根据报废原因code查询数据字典
        List<SDictData> SDictDataList = this.sDictDataService.selectByScrappedCodeList(scrappedCodeList);
        Map<Long, String> scrappedNameMap = SDictDataList.stream().collect(Collectors.toMap(s -> s.getDict_code(), s -> s.getDict_label()));
        List<LWhFormScrappedGoods> scrappedGoodsList = new ArrayList<>();
        for (LWhFormScrappedGoodsParams params : scrappedGoodsParamList) {
            LWhFormScrappedGoods scrappedGoods = new LWhFormScrappedGoods();
            scrappedGoods.setId(IdUtil.generateId());
            //根据物品型号查询物品库存
            int goodsNum = this.lWhGoodsService.queryGoodsModelNum(0, warehouseId, scrappedGoods.getBaseGoodsModelsId(), 1, null);
            if (params.getCounts() > goodsNum) {
                log.error("报废数量大于库存数量");
        for (LWhFormScrappedGoodsInfoParam goodsInfo : param.getScrappedGoodsInfo()) {
            BaseGoodsTemplate goodsTemplate = this.baseGoodsTemplateService.get(new BaseGoodsTemplate(goodsInfo.getBaseGoodsTemplateId()));
            if (goodsTemplate == null) {
                log.error("该物品模板不存在");
                return 0;
            }
            scrappedGoods.setCounts(params.getCounts());
            //报废原因
            scrappedGoods.setScrappedCode(params.getScrappedCode());
            scrappedGoods.setScrappedName(scrappedNameMap.get(Long.valueOf(params.getScrappedCode())));
            scrappedGoods.setFormScrappedId(lWhFormScrappedId);
            //物品模板
            scrappedGoods.setBaseGoodsTemplateId(goodsTemplate.getId());
            scrappedGoods.setGoodsTemplateName(goodsTemplate.getGoodsName());
            //规格型号
            Long baseGoodsModelsId = params.getBaseGoodsModelsId();
            BaseGoodsModels baseGoodsModels = modelMap.get(baseGoodsModelsId);
            if (baseGoodsModels != null) {
                scrappedGoods.setBaseGoodsModelsId(baseGoodsModelsId);
                scrappedGoods.setBaseGoodsModelsName(baseGoodsModels.getModelName());
                scrappedGoods.setUnit(baseGoodsModels.getUnit());
            List<LWhFormScrappedGoodsModelParams> scrappedGoodsParamList = goodsInfo.getScrappedGoodsList();
            if (CollectionUtils.isEmpty(scrappedGoodsParamList)) {
                log.error("新增报废单物品记录失败");
                return 0;
            }
            //获取规格型号id
            List<Long> baseGoodsModelsIdList = scrappedGoodsParamList.stream().map(params -> params.getBaseGoodsModelsId()).collect(Collectors.toList());
            //根据规格型号id查询规格型号
            List<BaseGoodsModels> models = this.baseGoodsModelsService.selectByModelsIdList(baseGoodsModelsIdList);
            if (CollectionUtils.isEmpty(models)) {
                log.error("该型号商品不存在");
                return 0;
            }
            Map<Long, BaseGoodsModels> modelMap = models.stream().collect(Collectors.toMap(model -> model.getId(), model -> model));
            //获取报废原因code
            List<String> scrappedCodeList = scrappedGoodsParamList.stream().map(params -> params.getScrappedCode()).collect(Collectors.toList());
            //根据报废原因code查询数据字典
            List<SDictData> SDictDataList = this.sDictDataService.selectByScrappedCodeList(scrappedCodeList);
            Map<Long, String> scrappedNameMap = SDictDataList.stream().collect(Collectors.toMap(s -> s.getDict_code(), s -> s.getDict_label()));
            scrappedGoodsList.add(scrappedGoods);
        }
        int flag2 = this.scrappedGoodsService.insert(scrappedGoodsList);
        if (flag2 != scrappedGoodsList.size()) {
            log.error("新增报废单物品记录 失败");
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            return 0;
            List<LWhFormScrappedGoods> scrappedGoodsList = new ArrayList<>();
            for (LWhFormScrappedGoodsModelParams params : scrappedGoodsParamList) {
                LWhFormScrappedGoods scrappedGoods = new LWhFormScrappedGoods();
                scrappedGoods.setId(IdUtil.generateId());
                //根据物品型号查询物品库存
                int goodsNum = this.lWhGoodsService.queryGoodsModelNum(0, warehouseId, scrappedGoods.getBaseGoodsModelsId(), 1, null);
                if (params.getCounts() > goodsNum) {
                    log.error("报废数量大于库存数量");
                    return 0;
                }
                scrappedGoods.setCounts(params.getCounts());
                //报废原因
                scrappedGoods.setScrappedCode(params.getScrappedCode());
                scrappedGoods.setScrappedName(scrappedNameMap.get(Long.valueOf(params.getScrappedCode())));
                scrappedGoods.setFormScrappedId(lWhFormScrappedId);
                //物品模板
                scrappedGoods.setBaseGoodsTemplateId(goodsTemplate.getId());
                scrappedGoods.setGoodsTemplateName(goodsTemplate.getGoodsName());
                //规格型号
                Long baseGoodsModelsId = params.getBaseGoodsModelsId();
                BaseGoodsModels baseGoodsModels = modelMap.get(baseGoodsModelsId);
                if (baseGoodsModels != null) {
                    scrappedGoods.setBaseGoodsModelsId(baseGoodsModelsId);
                    scrappedGoods.setBaseGoodsModelsName(baseGoodsModels.getModelName());
                    scrappedGoods.setUnit(baseGoodsModels.getUnit());
                }
                scrappedGoodsList.add(scrappedGoods);
            }
            int flag2 = this.scrappedGoodsService.insert(scrappedGoodsList);
            if (flag2 != scrappedGoodsList.size()) {
                log.error("新增报废单物品记录 失败");
                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                return 0;
            }
        }
        //3.根据报废单报废物品
        Long lWarehouseFlowId = this.lWhFormScrappedCoreService.outFormByTransId(lWhFormScrappedId, currentUser, param.getDealTime());
@@ -188,40 +196,39 @@
     * @Author 卢庆阳
     * @Date 2023/11/2
     */
    public GenericPager queryList(LWhFormScrappedParam param, FinSysTenantUser sysInfo) {
    public PageUtil queryList(LWhFormScrappedQry param, FinSysTenantUser sysInfo) {
        HashMap<String, Object> paramts = new HashMap<>();
        StringBuilder sql = new StringBuilder(QUERY_LIST);
        //报废单号
        if (!StringUtils.isEmpty(param.getBusinessFormCode())) {
            sql.append(" and BUSINESS_FORM_CODE like :businessFormCode ");
            paramts.put("businessFormCode", StringUtils.CHAR_PERCENT + param.getBusinessFormCode() + StringUtils.CHAR_PERCENT);
            sql.append("and BUSINESS_FORM_CODE = :businessFormCode ");
            paramts.put("businessFormCode", param.getBusinessFormCode());
        }
        //物品名称
        if (!StringUtils.isEmpty(param.getGoodsTemplateName())) {
            sql.append(
                " AND id IN (SELECT BUSINESS_ID FROM L_WH_PROCURE_MODEL procureModel LEFT JOIN BASE_GOODS_MODELS baseModel ON procureModel.BASE_GOODS_MODELS_ID=baseModel.ID LEFT JOIN BASE_GOODS_TEMPLATE baseTemp ON baseModel.GOODS_TEMPLATES_ID=baseTemp.id WHERE procureModel.BUSINESS_TYPE=1 AND baseTemp.GOODS_NAME LIKE :goodsTemplateName)");
            sql.append("and fsg.GOODS_TEMPLATE_NAME LIKE :goodsTemplateName ");
            paramts.put("goodsTemplateName", StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT);
        }
        //机构
        sql.append(" and AGENCY_ID like :agencyId ");
        sql.append("and AGENCY_ID like :agencyId ");
        if (param.getAgencyId() != null) {
            paramts.put("agencyId", param.getAgencyId() + StringUtils.CHAR_PERCENT);
        } else {
            paramts.put("agencyId", sysInfo.getTenantId() + StringUtils.CHAR_PERCENT);
        }
        //报废时间
        if (param.getDealTimeStart() != null) {
            sql.append(" and DEAL_TIME >=:dealTimeStart ");
            paramts.put("dealTimeStart", param.getDealTimeStart() * 1000000);
        if (param.getStartTime() != null) {
            sql.append("and DEAL_TIME >=:dealTimeStart ");
            paramts.put("dealTimeStart", param.getStartTime() * 1000000);
        }
        if (param.getDealTimeEnd() != null) {
            sql.append(" and DEAL_TIME <:dealTimeEnd ");
            paramts.put("dealTimeEnd", param.getDealTimeEnd() * 1000000 + 240000);
        if (param.getEndTime() != null) {
            sql.append("and DEAL_TIME <:dealTimeEnd ");
            paramts.put("dealTimeEnd", param.getEndTime() * 1000000 + 240000);
        }
        sql.append(" ORDER BY DEAL_TIME DESC");
        sql.append("ORDER BY DEAL_TIME DESC");
        GenericPager genericPager = selectSplit(sql.toString(), paramts, new LWhFormScrapped());
        return genericPager;
        return new PageUtil(genericPager);
    }
    /**
@@ -229,8 +236,8 @@
     * @Author 卢庆阳
     * @Date 2023/11/2
     */
    public LWhFormScrappedExtend getById(Long id) {
        LWhFormScrappedExtend scrappedExtend = new LWhFormScrappedExtend();
    public LWhFormScrappedExtendVO getById(Long id) {
        LWhFormScrappedExtendVO scrappedExtend = new LWhFormScrappedExtendVO();
        //1.查询报废单
        LWhFormScrapped lWhFormScrapped = this.get(new LWhFormScrapped(id));
        if (lWhFormScrapped != null) {
@@ -238,9 +245,34 @@
        }
        //2.查询报废单
        List<LWhFormScrappedGoods> scrappedGoodsList = this.scrappedGoodsService.getByFormScrappedId(id);
        if (!CollectionUtils.isEmpty(scrappedGoodsList)) {
            scrappedExtend.setScrappedGoodsList(scrappedGoodsList);
        //通过baseGoodsTemplateId 进行分组
        Map<Long, List<LWhFormScrappedGoods>> map = scrappedGoodsList.stream().collect(Collectors.groupingBy(LWhFormScrappedGoods::getBaseGoodsTemplateId));
        //循环map的key和value
        List<FormScrappedGoodsVO> scrappedGoodsVO = Lists.newArrayList();
        for (Map.Entry<Long, List<LWhFormScrappedGoods>> entry : map.entrySet()) {
            Long baseGoodsTemplateId = entry.getKey();
            List<LWhFormScrappedGoods> goodsList = entry.getValue();
            LWhFormScrappedGoods lWhFormScrappedGoods = goodsList.stream().findFirst().get();
            FormScrappedGoodsVO formScrappedGoodsVO = new FormScrappedGoodsVO();
            formScrappedGoodsVO.setBaseGoodsTemplateId(baseGoodsTemplateId);
            formScrappedGoodsVO.setGoodsName(lWhFormScrappedGoods.getGoodsTemplateName());
            List<GoodsModelVO> goodsModelList = Lists.newArrayList();
            goodsList.forEach(item -> {
                GoodsModelVO goodsModelVO = new GoodsModelVO();
                goodsModelVO.setId(item.getId());
                goodsModelVO.setBaseGoodsModelsName(item.getBaseGoodsModelsName());
                goodsModelVO.setUnit(item.getUnit());
                goodsModelVO.setCounts(item.getCounts());
                goodsModelVO.setBaseGoodsModelsId(item.getBaseGoodsModelsId());
                goodsModelVO.setScrappedName(item.getScrappedName());
                goodsModelList.add(goodsModelVO);
            });
            formScrappedGoodsVO.setModels(goodsModelList);
            scrappedGoodsVO.add(formScrappedGoodsVO);
        }
        scrappedExtend.setScrappedGoods(scrappedGoodsVO);
        return scrappedExtend;
    }
@@ -250,27 +282,27 @@
     * @param param
     * @return
     */
    public GenericPager<Map<String, Object>> queryDetailList(LWhFormScrappedParam param, FinSysTenantUser sysInfo) {
    public PageUtil queryDetailList(LWhFormScrappedQry param, FinSysTenantUser sysInfo) {
        StringBuilder sql = new StringBuilder(QUERY_BF_DETAIL_LIST);
        HashMap<String, Object> paramts = new HashMap<>();
        //报废单号
        if (!StringUtils.isEmpty(param.getBusinessFormCode())) {
            sql.append(" and BUSINESS_FORM_CODE =:BUSINESS_FORM_CODE ");
            paramts.put("BUSINESS_FORM_CODE", StringUtils.CHAR_PERCENT + param.getBusinessFormCode() + StringUtils.CHAR_PERCENT);
            sql.append("and BUSINESS_FORM_CODE =:BUSINESS_FORM_CODE ");
            paramts.put("BUSINESS_FORM_CODE", param.getBusinessFormCode());
        }
        //物品名称
        if (!StringUtils.isEmpty(param.getGoodsTemplateName())) {
            sql.append(" and GOODS_TEMPLATE_NAME =:GOODS_TEMPLATE_NAME ");
            sql.append("and GOODS_TEMPLATE_NAME like:GOODS_TEMPLATE_NAME ");
            paramts.put("GOODS_TEMPLATE_NAME", StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT);
        }
        //规格型号
        if (param.getBaseGoodsModelsId() != null) {
            sql.append(" and BASE_GOODS_MODELS_ID =:BASE_GOODS_MODELS_ID ");
            sql.append("and BASE_GOODS_MODELS_ID =:BASE_GOODS_MODELS_ID ");
            paramts.put("BASE_GOODS_MODELS_ID", param.getBaseGoodsModelsId());
        }
        //机构
        sql.append(" and AGENCY_ID like:AGENCY_ID ");
        sql.append("and AGENCY_ID like:AGENCY_ID ");
        if (param.getAgencyId() != null) {
            paramts.put("AGENCY_ID", param.getAgencyId() + StringUtils.CHAR_PERCENT);
        } else {
@@ -278,45 +310,51 @@
        }
        //创建人
        if (!StringUtils.isEmpty(param.getOperatorName())) {
            sql.append(" and OPERATOR_NAME =:OPERATOR_NAME ");
            sql.append("and OPERATOR_NAME =:OPERATOR_NAME ");
            paramts.put("OPERATOR_NAME", StringUtils.CHAR_PERCENT + param.getOperatorName() + StringUtils.CHAR_PERCENT);
        }
        //结束时间
        if (param.getDealTimeStart() != null) {
            sql.append(" and DEAL_TIME >=:dealTimeStart ");
            paramts.put("dealTimeStart", param.getDealTimeStart() * 1000000);
        if (param.getStartTime() != null) {
            sql.append("and DEAL_TIME >=:dealTimeStart ");
            paramts.put("dealTimeStart", param.getStartTime() * 1000000);
        }
        if (param.getDealTimeEnd() != null) {
            sql.append(" and DEAL_TIME <:dealTimeEnd ");
            paramts.put("dealTimeEnd", param.getDealTimeEnd() * 1000000 + 240000);
        if (param.getEndTime() != null) {
            sql.append("and DEAL_TIME <:dealTimeEnd ");
            paramts.put("dealTimeEnd", param.getEndTime() * 1000000 + 240000);
        }
        sql.append(" ORDER BY DEAL_TIME DESC ");
        return selectSplit(sql.toString(), paramts, param.getPageNum(), param.getPageSize(), new MapRowMapper());
        sql.append("ORDER BY DEAL_TIME DESC ");
        GenericPager<Map<String, Object>> mapGenericPager = selectSplit(sql.toString(), paramts, param.getPageNum(), param.getPageSize(), new MapperUtil());
        PageUtil pageUtil = new PageUtil<>(mapGenericPager);
        List<FormScrappedGoodsDetailVO> result = Lists.newArrayList();
        mapGenericPager.getDatas().forEach(item -> {
            FormScrappedGoodsDetailVO formScrappedGoodsDetailVO = MapUtils.convertMapToObj(item, FormScrappedGoodsDetailVO.class);
            result.add(formScrappedGoodsDetailVO);
        });
        pageUtil.setDatas(result);
        return pageUtil;
    }
    /**
     * @Description 导出报废登记单
     * @Author 卢庆阳
     * @Date 2023/11/2
     */
    public LWhFormScrappedExtend export(Long id, FinSysTenantUser sysInfo) {
        LWhFormScrappedExtend scrappedExtend = new LWhFormScrappedExtend();
        //1.查询报废单
        LWhFormScrapped lWhFormScrapped = this.get(new LWhFormScrapped(id));
        if (lWhFormScrapped != null) {
            lWhFormScrapped.setDealTime(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
            lWhFormScrapped.setOperatorName(sysInfo.getUserName());
            BeanUtils.copyProperties(lWhFormScrapped, scrappedExtend);
        }
        //2.查询报废单物品
        List<LWhFormScrappedGoods> scrappedGoodsList = this.scrappedGoodsService.getByFormScrappedId(id);
        if (!CollectionUtils.isEmpty(scrappedGoodsList)) {
            scrappedExtend.setScrappedGoodsList(scrappedGoodsList);
        }
        return scrappedExtend;
    }
//    public LWhFormScrappedExtendVO export(Long id, FinSysTenantUser sysInfo) {
//        LWhFormScrappedExtendVO scrappedExtend = new LWhFormScrappedExtendVO();
//        //1.查询报废单
//        LWhFormScrapped lWhFormScrapped = this.get(new LWhFormScrapped(id));
//        if (lWhFormScrapped != null) {
//            lWhFormScrapped.setDealTime(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
//            lWhFormScrapped.setOperatorName(sysInfo.getUserName());
//            BeanUtils.copyProperties(lWhFormScrapped, scrappedExtend);
//        }
//        //2.查询报废单物品
//        List<LWhFormScrappedGoods> scrappedGoodsList = this.scrappedGoodsService.getByFormScrappedId(id);
//        if (!CollectionUtils.isEmpty(scrappedGoodsList)) {
//            scrappedExtend.setScrappedGoodsList(scrappedGoodsList);
//        }
//        return scrappedExtend;
//    }
}
consum-base/src/main/java/com/consum/base/service/LWhGoodsService.java
@@ -192,7 +192,7 @@
        }
        sql.append(QUERY_SCRAPPED_GOODS_END);
        if (goodsModelNum != null) {
            sql.append(" limit").append(goodsModelNum);
            sql.append(" limit ").append(goodsModelNum);
        }
        return select(sql.toString(), paramts);
    }