futian.liu
2023-11-21 826f7359225f036663075546f50ea1126db568d3
--盘点管理
4个文件已添加
1个文件已删除
10个文件已修改
933 ■■■■■ 已修改文件
consum-base/src/main/java/com/consum/base/controller/FinSysTenantUserController.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/controller/LWhFormInventoryController.java 149 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/controller/LWhFormInventoryGoodsController.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/controller/LWhFormTransferController.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/core/utils/MapperUtil.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/LWhFormInventoryDto.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/LWhFormInventoryParam.java 169 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/request/FormInventoryParam.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/request/LWhFormInventoryParam.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/response/FormInventoryGoodsVO.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/response/FormInventoryVO.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/response/TransferInfoVO.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/LWhFormInventoryGoodsServiceImpl.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/LWhFormInventoryServiceImpl.java 277 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/LWhFormTransferServiceImpl.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/controller/FinSysTenantUserController.java
@@ -35,6 +35,7 @@
import com.walker.infrastructure.utils.PhoneNumberUtils;
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;
@@ -65,6 +66,7 @@
 * @Author wh
 * @Date 2023/7/17 14:16
 */
@Api(value = "机构用户信息", tags = "机构用户信息")
@RestController
@RequestMapping("/pc/fin/sys/tenant/user")
public class FinSysTenantUserController extends BaseController {
@@ -179,6 +181,18 @@
    }
    @ApiOperation(value = "根据机构id查询用户", notes = "根据机构id查询用户")
    @ApiImplicitParam(name = "tenantId", value = "机构id", required = true, dataType = "Long", paramType = "query")
    @GetMapping("/query/user")
    public ResponseValue queryUserByTenantId(Long tenantId) {
        FinSysTenantUser finSysTenantUser = new FinSysTenantUser();
        finSysTenantUser.setTenantId(String.valueOf(tenantId));
        List<FinSysTenantUser> result = finSysTenantUserService.select(finSysTenantUser);
        return ResponseValue.success(result);
    }
    /**
     * @Description 新增
     * @Author wh
consum-base/src/main/java/com/consum/base/controller/LWhFormInventoryController.java
@@ -1,47 +1,74 @@
package com.consum.base.controller;
import com.consum.base.BaseController;
import com.consum.base.pojo.LWhFormInventoryDto;
import com.consum.base.pojo.LWhFormInventoryParam;
import com.consum.base.pojo.request.FormInventoryParam;
import com.consum.base.pojo.request.LWhFormInventoryParam;
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.LWhFormInventoryServiceImpl;
import com.consum.model.po.BaseCategory;
import com.consum.model.po.FinSysTenantUser;
import com.consum.model.po.LWhFormInventory;
import com.iplatform.model.po.S_user_core;
import com.walker.db.page.GenericPager;
import com.walker.web.ResponseValue;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
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;
/**
 * @Description 盘点
 * @Author 卢庆阳
 * @Date 2023/10/23
 */
@Api(value = "盘点", tags = "盘点")
@RestController
@RequestMapping("/pc/l/wh/form/inventory")
public class LWhFormInventoryController extends BaseController {
    @Autowired
    private LWhFormInventoryServiceImpl lWhFormInventoryService;
    @Autowired
    private FinSysTenantUserServiceImpl finSysTenantUserService;
    /**
     * @Description 新增
     * @Author 卢庆阳
     * @Date 2023/10/31
     */
    @ApiOperation(value = "新增盘点", notes = "新增盘点")
    @ApiImplicitParams({
        @ApiImplicitParam(name = "param", value = "盘点单信息", dataType = "FormInventoryParam")
    })
    @PostMapping("/add")
    public ResponseValue add(@RequestBody LWhFormInventoryParam param) {
    public ResponseValue add(@RequestBody FormInventoryParam param) {
        FinSysTenantUser sysInfo = this.getSysInfo();
        if (sysInfo == null) {
            return ResponseValue.error("登录用户信息不存在");
        }
        //根据盘点人id查询盘点人
        S_user_core operatorUser = this.getUser(param.getOperatorId());
        FinSysTenantUser finSysTenantUser = new FinSysTenantUser();
        finSysTenantUser.setId(param.getOperatorUserId());
        FinSysTenantUser operatorUser = finSysTenantUserService.get(finSysTenantUser);
        //根据监盘人id查询监盘人
        S_user_core operatorUser2 = this.getUser(param.getOperatorId2());
        int result = this.lWhFormInventoryService.add(param, this.getSysInfo(),operatorUser,operatorUser2);
        if (result > 0) return ResponseValue.success(1);
        FinSysTenantUser monitorUserInfo = new FinSysTenantUser();
        monitorUserInfo.setId(param.getMonitorUserId());
        FinSysTenantUser monitorUser = finSysTenantUserService.get(monitorUserInfo);
        int result = this.lWhFormInventoryService.add(param, this.getSysInfo(), operatorUser, monitorUser);
        if (result > 0) {
            return ResponseValue.success();
        }
        return ResponseValue.error("新增失败!");
    }
@@ -50,14 +77,35 @@
     * @Author 卢庆阳
     * @Date 2023/10/31
     */
    @ApiOperation(value = "盘点单列表查询", notes = "盘点单列表查询")
    @ApiImplicitParams({
        @ApiImplicitParam(name = "param", value = "盘点条件", dataType = "LWhFormInventoryParam", required = true, paramType = "query")
    })
    @GetMapping("/list")
    public ResponseValue queryList(LWhFormInventoryParam param) {
    public ResponseValue queryList(com.consum.base.pojo.LWhFormInventoryParam param) {
        FinSysTenantUser sysInfo = this.getSysInfo();
        if (sysInfo == null) {
            return ResponseValue.error("登录用户信息不存在");
        }
        GenericPager<LWhFormInventory> pager = this.lWhFormInventoryService.queryList(param,sysInfo);
        GenericPager<LWhFormInventory> pager = this.lWhFormInventoryService.queryList(param, sysInfo);
        return ResponseValue.success(pager);
    }
    @ApiOperation(value = "盘点单物品列表查询", notes = "盘点单物品列表查询")
    @ApiImplicitParams({
        @ApiImplicitParam(name = "id", value = "盘点单id", dataType = "Long", required = true, paramType = "query")
    })
    @GetMapping("/query")
    public ResponseValue queryInventBaseGoodTemplate(Long id) {
        FinSysTenantUser sysInfo = this.getSysInfo();
        if (sysInfo == null) {
            return ResponseValue.error("登录用户信息不存在");
        }
        if (id == null) {
            return ResponseValue.error("参数不能为空");
        }
        FormInventoryVO formInventoryVO = this.lWhFormInventoryService.queryInventBaseGoodTemplate(id);
        return ResponseValue.success(formInventoryVO);
    }
    /**
@@ -65,8 +113,12 @@
     * @Author 卢庆阳
     * @Date 2023/10/31
     */
    @ApiOperation(value = "编辑盘点", notes = "编辑盘点")
    @ApiImplicitParams({
        @ApiImplicitParam(name = "param", value = "盘点单信息", dataType = "FormInventoryParam")
    })
    @PostMapping("/edit")
    public ResponseValue edit(@RequestBody LWhFormInventoryParam param) {
    public ResponseValue edit(@RequestBody FormInventoryParam param) {
        LWhFormInventory lWhFormInventory = lWhFormInventoryService.get(new LWhFormInventory(param.getId()));
        if (lWhFormInventory == null) {
            return ResponseValue.error("编辑失败!");
@@ -80,7 +132,7 @@
        }
        ResponseValue add = this.add(param);
        if (add.getCode() == ResponseValue.CODE_SUCCESS) {
            return ResponseValue.success(1);
            return ResponseValue.success();
        }
        return ResponseValue.error("编辑失败!");
@@ -89,6 +141,10 @@
    /**
     * @Description 根据id删除
     */
    @ApiOperation(value = "根据id删除盘点", notes = "根据id删除盘点")
    @ApiImplicitParams({
        @ApiImplicitParam(name = "id", value = "盘点单id", dataType = "Long", required = true, paramType = "query")
    })
    @DeleteMapping("/del")
    public ResponseValue delById(Long id) {
        if (id == null) {
@@ -114,7 +170,12 @@
     * @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("盘点失败!");
@@ -126,32 +187,42 @@
    /**
     * 暂存
     *
     * @author 卢庆阳
     * @date 2023/10/31
     */
    @PostMapping("/temporaryStorage")
    public ResponseValue temporaryStorage(@RequestBody LWhFormInventoryDto dto) {
    @ApiOperation(value = "盘点暂存", notes = "盘点暂存")
    @ApiImplicitParams({
        @ApiImplicitParam(name = "param", value = "盘点单信息", dataType = "LWhFormInventoryDto")
    })
    @PostMapping("/temporary/storage")
    public ResponseValue temporaryStorage(@RequestBody LWhFormInventoryParam dto) {
        if (dto == null) {
            return ResponseValue.error("参数错误");
        }
        int num = this.lWhFormInventoryService.temporaryStorage(dto);
        int num = this.lWhFormInventoryService.temporaryStorage(dto, 1);
        return num > 0 ? ResponseValue.success(1) : ResponseValue.error("暂存失败!");
    }
    /**
     * 完成盘点
     *
     * @author 卢庆阳
     * @date 2023/10/31
     */
    @ApiOperation(value = "完成盘点", notes = "完成盘点")
    @ApiImplicitParams({
        @ApiImplicitParam(name = "param", value = "盘点单信息", dataType = "LWhFormInventoryDto")
    })
    @PostMapping("/finish")
    public ResponseValue finishPd(@RequestBody LWhFormInventoryDto dto) {
    public ResponseValue finishPd(@RequestBody LWhFormInventoryParam dto) {
        if (dto == null) {
            return ResponseValue.error("参数错误");
        }
        int num = this.lWhFormInventoryService.finishPd(dto);
        return num > 0 ? ResponseValue.success(1) : ResponseValue.error("暂存失败!");
        int num = this.lWhFormInventoryService.temporaryStorage(dto, 2);
        return num > 0 ? ResponseValue.success(1) : ResponseValue.error("盘点失败!");
    }
    /**
@@ -159,8 +230,12 @@
     * @Author 卢庆阳
     * @Date 2023/11/1
     */
    @ApiOperation(value = "异常明细列表查询", notes = "异常明细列表查询")
    @ApiImplicitParams({
        @ApiImplicitParam(name = "param", value = "盘点条件", dataType = "LWhFormInventoryParam", required = true, paramType = "query")
    })
    @GetMapping("/list/PdDetail")
    public ResponseValue queryPdDetailList(LWhFormInventoryParam param) {
    public ResponseValue queryPdDetailList(com.consum.base.pojo.LWhFormInventoryParam param) {
        FinSysTenantUser sysInfo = this.getSysInfo();
        if (sysInfo == null) {
            return ResponseValue.error("登录用户信息不存在");
@@ -168,5 +243,31 @@
        GenericPager<Map<String, Object>> pager = this.lWhFormInventoryService.queryPdDetailList(param, sysInfo);
        return ResponseValue.success(pager);
    }
    @ApiOperation(value = "根据id查询盘点物品详细信息", notes = "根据id查询盘点物品详细信息")
    @ApiImplicitParams({
        @ApiImplicitParam(name = "id", value = "盘点id", dataType = "Long", required = true, paramType = "query")
    })
    @GetMapping("/detail")
    public ResponseValue selectDetailById(Long id) {
        FinSysTenantUser sysInfo = this.getSysInfo();
        if (sysInfo == null) {
            return ResponseValue.error("登录用户信息不存在");
        }
        FormInventoryVO formInventoryVO = new FormInventoryVO();
        LWhFormInventory lWhFormInventory = new LWhFormInventory();
        lWhFormInventory.setId(id);
        LWhFormInventory item = this.lWhFormInventoryService.get(lWhFormInventory);
        if (Objects.isNull(item)) {
            return ResponseValue.error("盘点单不存在");
        }
        BeanUtils.copyProperties(item, formInventoryVO);
        List<FormInventoryGoodsVO> formInventoryGoodsVOS = this.lWhFormInventoryService.selectDetailById(id);
        formInventoryVO.setFormInventoryGoodsList(formInventoryGoodsVOS);
        return ResponseValue.success(formInventoryVO);
    }
}
consum-base/src/main/java/com/consum/base/controller/LWhFormInventoryGoodsController.java
@@ -1,25 +1,24 @@
package com.consum.base.controller;
import com.consum.base.BaseController;
import com.consum.base.pojo.LWhFormInventoryParam;
import com.consum.base.service.LWhFormInventoryGoodsServiceImpl;
import com.consum.base.service.LWhFormInventoryServiceImpl;
import com.consum.model.po.FinSysTenantUser;
import com.consum.model.po.LWhFormInventory;
import com.consum.model.po.LWhFormInventoryGoods;
import com.iplatform.model.po.S_user_core;
import com.walker.db.page.GenericPager;
import com.walker.web.ResponseValue;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * @Description 盘点单物品
 * @Author 卢庆阳
 * @Date 2023/10/31
 */
@Api(value = "盘点", tags = "盘点")
@RestController
@RequestMapping("/pc/l/wh/form/inventory/goods")
public class LWhFormInventoryGoodsController extends BaseController {
@@ -28,11 +27,12 @@
    private LWhFormInventoryGoodsServiceImpl inventoryGoodsService;
    /**
     * @Description  根据盘点单id查询盘点单物品(继续盘点)
     * @return
     * @Description 根据盘点单id查询盘点单物品(继续盘点)
     * @Author 卢庆阳
     * @Date 2023/10/31
     * @return
     */
    @ApiOperation(value = "查询盘点单物品(继续盘点)", notes = "查询盘点单物品(继续盘点)")
    @GetMapping("/list")
    public ResponseValue queryList(Long id) {
        FinSysTenantUser sysInfo = this.getSysInfo();
consum-base/src/main/java/com/consum/base/controller/LWhFormTransferController.java
@@ -439,21 +439,8 @@
    public ResponseValue queryDepartmentTransferOrder(Long agencyId) {
        TransferInfoVO transferInfoVO = new TransferInfoVO();
        String sql = "SELECT ft.id,\n"
            + "       ft.BUSINESS_FORM_CODE,\n"
            + "       gr.GOODS_TEMPLATE_NAME,\n"
            + "       gr.BASE_GOODS_TEMPLATE_ID,\n"
            + "       ft.CREATE_TIME\n"
            + "\n"
            + "FROM l_wh_form_transfer ft\n"
            + "         LEFT JOIN L_WAREHOUSE_FLOW wf ON ft.id = wf.BUSINESS_FORM_ID\n"
            + "         left join L_WH_GOODS_RECORD gr on gr.WAREHOUSE_FLOW_ID = wf.id\n"
            + "         LEFT JOIN L_GOODS_WH_RECORD gwr on gwr.WAREHOUSE_FLOW_ID = wf.id\n"
            + "         left join L_WH_GOODS g on g.id = gwr.WH_GOODS_ID\n"
            + "\n"
            + "\n"
            + "\n"
            + "\n";
        lWhFormTransferService.queryDepartmentTransferOrder();
        return ResponseValue.success(transferInfoVO);
    }
}
consum-base/src/main/java/com/consum/base/core/utils/MapperUtil.java
@@ -10,7 +10,7 @@
/**
 * @author asus
 * @version 1.0
 * @description: Mapper map工具类
 * @description: Mapper map工具类</p> 包含驼峰格式和列名别名
 * @date 2023/11/11 14:40
 */
@Slf4j
@@ -21,7 +21,10 @@
        Map<String, Object> row = new HashMap<>();
        int columnCount = rs.getMetaData().getColumnCount();
        for (int i = 1; i <= columnCount; i++) {
            String columnName = MapUtils.underlineToCamel(rs.getMetaData().getColumnName(i));
            String columnLabel = rs.getMetaData().getColumnLabel(i);
            String columnName = columnLabel.contains("_") ? MapUtils.underlineToCamel(columnLabel)
                : (Character.isUpperCase(columnLabel.charAt(0)) ? columnLabel.toLowerCase()
                    : columnLabel);
            Object columnValue = rs.getObject(i);
            row.put(columnName, columnValue);
        }
consum-base/src/main/java/com/consum/base/pojo/LWhFormInventoryDto.java
File was deleted
consum-base/src/main/java/com/consum/base/pojo/LWhFormInventoryParam.java
@@ -1,8 +1,13 @@
package com.consum.base.pojo;
import com.walker.web.param.ParamRequest;
import io.swagger.annotations.ApiModel;
import lombok.Data;
@Data
@ApiModel(value = "盘点单条件参数")
public class LWhFormInventoryParam extends ParamRequest {
    private Long id;
    /**
     * 盘点单号
@@ -19,23 +24,20 @@
    /**
     * 操作人
     */
    private Long operatorId;
    private Long operatorUserId;
    /**
     * 监盘人
     */
    private Integer operatorId2;
    /**
     * 备注
     */
    private String beiz1;
    private Long monitorUserId;
    /**
     * 盘点时间 开始
     */
    private Long inventoryDateStart;
    private Long startTime;
    /**
     * 盘点时间 结束
     */
    private Long inventoryDateEnd;
    private Long endTime;
    /**
     * 机构id
     */
@@ -72,156 +74,5 @@
    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 getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getBusinessFormName() {
        return businessFormName;
    }
    public void setBusinessFormName(String businessFormName) {
        this.businessFormName = businessFormName;
    }
    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 Integer getOperatorId2() {
        return operatorId2;
    }
    public void setOperatorId2(Integer operatorId2) {
        this.operatorId2 = operatorId2;
    }
    public String getBeiz1() {
        return beiz1;
    }
    public void setBeiz1(String beiz1) {
        this.beiz1 = beiz1;
    }
    public Long getInventoryDateStart() {
        return inventoryDateStart;
    }
    public void setInventoryDateStart(Long inventoryDateStart) {
        this.inventoryDateStart = inventoryDateStart;
    }
    public Long getInventoryDateEnd() {
        return inventoryDateEnd;
    }
    public void setInventoryDateEnd(Long inventoryDateEnd) {
        this.inventoryDateEnd = inventoryDateEnd;
    }
    public Long getAgencyId() {
        return agencyId;
    }
    public void setAgencyId(Long agencyId) {
        this.agencyId = agencyId;
    }
    public String getGoodsTemplateName() {
        return goodsTemplateName;
    }
    public void setGoodsTemplateName(String goodsTemplateName) {
        this.goodsTemplateName = goodsTemplateName;
    }
    public Long getBaseGoodsModelsId() {
        return baseGoodsModelsId;
    }
    public void setBaseGoodsModelsId(Long baseGoodsModelsId) {
        this.baseGoodsModelsId = baseGoodsModelsId;
    }
    public Integer getInventoryResult() {
        return inventoryResult;
    }
    public void setInventoryResult(Integer inventoryResult) {
        this.inventoryResult = inventoryResult;
    }
    public void setBusinessFormCode(String businessFormCode) {
        this.businessFormCode = businessFormCode;
    }
    public Long getStopTimeStart() {
        return stopTimeStart;
    }
    public void setStopTimeStart(Long stopTimeStart) {
        this.stopTimeStart = stopTimeStart;
    }
    public Long getStopTimeEnd() {
        return stopTimeEnd;
    }
    public void setStopTimeEnd(Long stopTimeEnd) {
        this.stopTimeEnd = stopTimeEnd;
    }
    public String getBusinessFormCode() {
        return businessFormCode;
    }
    public Long getWarehouseFormCode() {
        return warehouseFormCode;
    }
    public void setWarehouseFormCode(Long warehouseFormCode) {
        this.warehouseFormCode = warehouseFormCode;
    }
}
consum-base/src/main/java/com/consum/base/pojo/request/FormInventoryParam.java
New file
@@ -0,0 +1,46 @@
package com.consum.base.pojo.request;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @author asus
 * @version 1.0
 * @description: 新增盘点单信息
 * @date 2023/11/20 13:49
 */
@Data
@ApiModel(value = "新增盘点单信息")
public class FormInventoryParam {
    private Long id;
    /**
     * 盘点单名
     */
    @ApiModelProperty(value = "盘点单名")
    private String businessFormName;
    /**
     * 仓库编号
     */
    @ApiModelProperty(value = "仓库编号")
    private Long warehouseId;
    /**
     * 操作人
     */
    @ApiModelProperty(value = "操作人")
    private Long operatorUserId;
    /**
     * 监盘人
     */
    @ApiModelProperty(value = "监盘人")
    private Long monitorUserId;
    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    private String remark;
}
consum-base/src/main/java/com/consum/base/pojo/request/LWhFormInventoryParam.java
New file
@@ -0,0 +1,18 @@
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 {
    /**
     * 盘点单物品
     */
    private List<FormInventoryGoodsVO> inventoryGoodsList;
}
consum-base/src/main/java/com/consum/base/pojo/response/FormInventoryGoodsVO.java
New file
@@ -0,0 +1,50 @@
package com.consum.base.pojo.response;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @author asus
 * @version 1.0
 * @description: 盘点物品信息
 * @date 2023/11/20 14:45
 */
@Data
@ApiModel(value = "盘点物品信息")
public class FormInventoryGoodsVO {
    // 主键
    @ApiModelProperty(value = "id")
    private Long id;
    private Long whFormInventoryId;
    private Long baseGoodsTemplateId;
    @ApiModelProperty(value = "商品模板名称")
    private String goodsTemplateName;
    @ApiModelProperty(value = "商品型号名称")
    private String baseGoodsModelsName;
    @ApiModelProperty(value = "商品类别")
    private String type;
    @ApiModelProperty(value = "单位")
    private String unit;
    @ApiModelProperty(value = "库存数量")
    private Integer inventoryCount;
    @ApiModelProperty(value = "单价")
    private Integer price;
    @ApiModelProperty(value = "总价")
    private Long totalAmount;
    @ApiModelProperty(value = "实盘数量")
    private Integer realNum;
}
consum-base/src/main/java/com/consum/base/pojo/response/FormInventoryVO.java
New file
@@ -0,0 +1,45 @@
package com.consum.base.pojo.response;
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/20 14:43
 */
@Data
@ApiModel(value = "盘点物品单详细信息")
public class FormInventoryVO {
    /**
     * 盘点单号
     */
    @ApiModelProperty(value = "盘点单号")
    private String businessFormCode;
    /**
     * 盘点单名
     */
    @ApiModelProperty(value = "盘点单名")
    private String businessFormName;
    /**
     * 仓库编号
     */
    @ApiModelProperty(value = "仓库编号")
    private Long warehouseId;
    /**
     * 仓库名字
     */
    @ApiModelProperty(value = "仓库名字")
    private String warehouseName;
    /**
     * 盘点物品信息
     */
    @ApiModelProperty(value = "盘点物品信息")
    private List<FormInventoryGoodsVO> formInventoryGoodsList;
}
consum-base/src/main/java/com/consum/base/pojo/response/TransferInfoVO.java
@@ -7,7 +7,7 @@
/**
 * @author asus
 * @version 1.0
 * @description: TODO
 * @description: 机构分发单信息
 * @date 2023/11/10 15:35
 */
@ApiModel(value = "机构分发单信息")
@@ -17,9 +17,9 @@
    @ApiModelProperty(value = "id")
    private String id;
    @ApiModelProperty(value = "单号")
    private String code;
    private String businessFormCode;
    @ApiModelProperty(value = "物品名称")
    private String name;
    private String goodsTemplatesName;
    @ApiModelProperty(value = "分发数量")
    private String num;
    @ApiModelProperty(value = "可退数量")
consum-base/src/main/java/com/consum/base/service/LWhFormInventoryGoodsServiceImpl.java
@@ -1,14 +1,13 @@
package com.consum.base.service;
import com.consum.base.core.utils.IdUtil;
import com.consum.base.pojo.response.FormInventoryGoodsVO;
import com.consum.model.po.LWhFormInventoryGoods;
import com.walker.jdbc.service.BaseServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
/**
 * @Description 盘点单物品
@@ -20,10 +19,10 @@
public class LWhFormInventoryGoodsServiceImpl extends BaseServiceImpl {
    /**
     * @Description  根据盘点单id查询盘点单物品
     * @return
     * @Description 根据盘点单id查询盘点单物品
     * @Author 卢庆阳
     * @Date 2023/10/31
     * @return
     */
    public List<LWhFormInventoryGoods> getByInventoryId(Long id) {
        LWhFormInventoryGoods inventoryGoods = new LWhFormInventoryGoods();
@@ -32,35 +31,59 @@
    }
    /**
     * @Description  新增盘点单物品记录
     * @return
     * @Description 新增盘点单物品记录
     * @Author 卢庆阳
     * @Date 2023/10/31
     * @return
     */
    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);
//    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) {
        List<LWhFormInventoryGoods> goodsList = new ArrayList<>();
        for (FormInventoryGoodsVO inventoryGoods : inventoryGoodsList) {
            LWhFormInventoryGoods lWhFormInventoryGoods = new LWhFormInventoryGoods();
            lWhFormInventoryGoods.setId(IdUtil.generateId());
            lWhFormInventoryGoods.setWhFormInventoryId(warehouseId);
            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);
            goodsList.add(lWhFormInventoryGoods);
        }
        return this.insert(inventoryGoodsList);
        return this.insert(goodsList);
    }
    /**
     * @Description  根据盘点单id删除盘点单物品
     * @Description 根据盘点单id删除盘点单物品
     * @Author 卢庆阳
     * @Date 2023/10/31
     */
    public void delByFormInventoryId(Long id) {
    }
}
consum-base/src/main/java/com/consum/base/service/LWhFormInventoryServiceImpl.java
@@ -2,25 +2,30 @@
import com.consum.base.core.CodeGeneratorEnum;
import com.consum.base.core.CodeGeneratorService;
import com.consum.base.core.utils.MapRowMapper;
import com.consum.base.pojo.LWhFormInventoryDto;
import com.consum.base.pojo.LWhFormInventoryParam;
import com.consum.base.core.utils.IdUtil;
import com.consum.model.po.*;
import com.iplatform.model.po.S_user_core;
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.pojo.request.FormInventoryParam;
import com.consum.base.pojo.request.LWhFormInventoryParam;
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.FinSysTenantUser;
import com.consum.model.po.LWhFormInventory;
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.HashMap;
import java.util.List;
import java.util.Map;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.compress.utils.Lists;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * @Description 盘点
@@ -39,47 +44,41 @@
    private FinSysTenantUserServiceImpl finSysTenantUserService;
    @Autowired
    private LWhFormInventoryGoodsServiceImpl inventoryGoodsService;
    @Autowired
    private BaseGoodsTemplateServiceImpl baseGoodsTemplateService;
    @Autowired
    private LWhGoodsService lWhGoodsService;
    private static final String QUERY_LIST = "select * from l_wh_form_inventory where 1=1 ";
    private static final String QUERY_PD_List = "SELECT bgt.GOODS_NAME goodsName,model.MODEL_NAME modelName,bgt.CLASSIFICATION,model.UNIT,\n" +
            "       record.endCount,bgt.ID goodsTemplateId,model.ID modelsId\n" +
            "FROM BASE_GOODS_MODELS model\n" +
            "         LEFT JOIN (SELECT COUNT(1) endCount, BASE_GOODS_MODELS_ID\n" +
            "                    FROM L_WH_GOODS\n" +
            "                    WHERE WAREHOUSE_TYPE = 0\n" +
            "                      AND WAREHOUSE_ID = 1\n" +
            "                      AND STATES = ?\n" +
            "                    GROUP BY BASE_GOODS_MODELS_ID) record ON record.BASE_GOODS_MODELS_ID = model.id\n" +
            "left join base_goods_template bgt on bgt.ID = model.GOODS_TEMPLATES_ID; ";
    private static final String QUERY_PD_List = "SELECT bgt.GOODS_NAME goodsName,model.MODEL_NAME modelName,bgt.CLASSIFICATION,model.UNIT,\n"
        + "       record.endCount,bgt.ID goodsTemplateId,model.ID modelsId\n" + "FROM BASE_GOODS_MODELS model\n"
        + "         LEFT JOIN (SELECT COUNT(1) endCount, BASE_GOODS_MODELS_ID\n" + "                    FROM L_WH_GOODS\n"
        + "                    WHERE WAREHOUSE_TYPE = 0\n" + "                      AND WAREHOUSE_ID = 1\n" + "                      AND STATES = ?\n"
        + "                    GROUP BY BASE_GOODS_MODELS_ID) record ON record.BASE_GOODS_MODELS_ID = model.id\n"
        + "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 ";
    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 ";
    /**
     * @param param
     * @param currentUser  当前登录用户
     * @param operatorUser 盘点人
     * @param monitorUser  监盘人
     * @return
     * @Description 新增
     * @Author 卢庆阳
     * @Date 2023/10/31
     * @param param
     * @param currentUser   当前登录用户
     * @param operatorUser  盘点人
     * @param operatorUser2 监盘人
     * @return
     */
    public int add(LWhFormInventoryParam param, FinSysTenantUser currentUser, S_user_core operatorUser, S_user_core operatorUser2) {
    public int add(FormInventoryParam param, FinSysTenantUser currentUser, FinSysTenantUser operatorUser, FinSysTenantUser monitorUser) {
        //新增盘点单
        LWhFormInventory lWhFormInventory = new LWhFormInventory();
        BeanUtils.copyProperties(param,lWhFormInventory);
        BeanUtils.copyProperties(param, lWhFormInventory);
        lWhFormInventory.setId(IdUtil.generateId());
        //盘点单编码
        String businessFormCode = codeGeneratorService.createBusinessFormCode(CodeGeneratorEnum.Inventory);
@@ -89,15 +88,22 @@
        if (baseWarehouse != null) {
            lWhFormInventory.setWarehouseName(baseWarehouse.getWarehouseName());
        }
        lWhFormInventory.setOperatorName(operatorUser.getUser_name());
        lWhFormInventory.setOperatorName2(operatorUser2.getUser_name());
        if (operatorUser != null) {
            lWhFormInventory.setOperatorId(operatorUser.getId());
            lWhFormInventory.setOperatorName(operatorUser.getUserName());
        }
        if (monitorUser != null) {
            lWhFormInventory.setOperatorId2(monitorUser.getId());
            lWhFormInventory.setOperatorName2(monitorUser.getUserName());
        }
        lWhFormInventory.setStates(0);
        lWhFormInventory.setAgencyId(Long.valueOf(currentUser.getTenantId()));
        lWhFormInventory.setAgencyName(currentUser.getTenantName());
        lWhFormInventory.setCreatorId(currentUser.getSysUserId());
        lWhFormInventory.setCreatorName(currentUser.getUserName());
        lWhFormInventory.setCreateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
        lWhFormInventory.setBeiz1(param.getRemark());
        return this.insert(lWhFormInventory);
    }
@@ -106,47 +112,47 @@
     * @Author 卢庆阳
     * @Date 2023/10/31
     */
    public GenericPager<LWhFormInventory> queryList(LWhFormInventoryParam param, FinSysTenantUser sysInfo) {
    public GenericPager<LWhFormInventory> queryList(com.consum.base.pojo.LWhFormInventoryParam param, FinSysTenantUser sysInfo) {
        StringBuilder sql = new StringBuilder(QUERY_LIST);
        HashMap<String, Object> paramts = new HashMap<>();
        //盘点单号
        if (!StringUtils.isEmpty(param.getBusinessFormCode())) {
            sql.append(" and BUSINESS_FORM_CODE like: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.getBusinessFormName())) {
            sql.append(" and BUSINESS_FORM_NAME =:BUSINESS_FORM_NAME ");
            sql.append("and BUSINESS_FORM_NAME like :BUSINESS_FORM_NAME ");
            paramts.put("BUSINESS_FORM_NAME", StringUtils.CHAR_PERCENT + param.getBusinessFormName() + StringUtils.CHAR_PERCENT);
        }
        //仓库编号
        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 (param.getInventoryDateStart() != null) {
            sql.append(" and INVENTORY_DATE >=:inventoryDateStart ");
            paramts.put("inventoryDateStart", param.getInventoryDateStart() * 1000000);
        if (param.getStartTime() != null) {
            sql.append("and INVENTORY_DATE >=:inventoryDateStart ");
            paramts.put("inventoryDateStart", param.getStartTime() * 1000000);
        }
        if (param.getInventoryDateEnd() != null) {
            sql.append(" and INVENTORY_DATE <:inventoryDateEnd ");
            paramts.put("inventoryDateEnd", param.getInventoryDateEnd() * 1000000 + 240000);
        if (param.getEndTime() != null) {
            sql.append("and INVENTORY_DATE <:inventoryDateEnd ");
            paramts.put("inventoryDateEnd", param.getEndTime() * 1000000 + 240000);
        }
        //机构
        sql.append(" and AGENCY_ID =:AGENCY_ID ");
        sql.append("and AGENCY_ID =:AGENCY_ID ");
        paramts.put("AGENCY_ID", sysInfo.getTenantId());
        sql.append(" ORDER BY CREATE_TIME DESC ");
        sql.append("ORDER BY CREATE_TIME DESC ");
        return selectSplit(sql.toString(), paramts, new LWhFormInventory());
    }
    /**
     * @param id 盘点单id
     * @Description 盘点
     * @Author 卢庆阳
     * @Date 2023/10/31
     * @param id  盘点单id
     */
    public List queryPdList(Long id) {
        //1.根据盘点单id查询盘点单
@@ -161,40 +167,45 @@
            return null;
        }
        //3.新增盘点单物品记录
        int flag = inventoryGoodsService.add(list, lWhFormInventory.getWarehouseId());
        if (flag != list.size()) {
            log.error("新增盘点单记录");
            return null;
        }
//        int flag = inventoryGoodsService.add(list, lWhFormInventory.getWarehouseId());
//        if (flag != list.size()) {
//            log.error("新增盘点单记录");
//            return null;
//        }
        //4.根据盘点单id查询盘点单物品
        return inventoryGoodsService.getByInventoryId(id);
    }
    /**
     * 暂存
     *
     * @author 卢庆阳
     * @date 2023/10/31
     */
    public int temporaryStorage(LWhFormInventoryDto dto) {
    public int temporaryStorage(LWhFormInventoryParam dto, Integer state) {
        //1.根据盘点单id查询盘点单
        LWhFormInventory lWhFormInventory = this.get(new LWhFormInventory(dto.getId()));
        if (lWhFormInventory == null) {
            log.error("根据盘点单id查询盘点单 失败");
            log.error("根据盘点单id查询盘点单失败");
            return 0;
        }
        //2.修改盘点单
        lWhFormInventory.setStates(1);
        lWhFormInventory.setStates(state);
        lWhFormInventory.setInventoryDate(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
        int flag1 = this.update(lWhFormInventory);
        if (flag1 == 0) {
            log.error("修改盘点单 失败");
            log.error("修改盘点单失败");
            return 0;
        }
        //3.更新盘点单物品
        List<LWhFormInventoryGoods> inventoryGoodsList = dto.getInventoryGoodsList();
        int flag2 = inventoryGoodsService.update(inventoryGoodsList);
        //3.添加盘点单物品
        List<FormInventoryGoodsVO> inventoryGoodsList = dto.getInventoryGoodsList();
        if (CollectionUtils.isEmpty(inventoryGoodsList)) {
            log.error("盘点单物品为空");
            return 0;
        }
        int flag2 = inventoryGoodsService.add(inventoryGoodsList, lWhFormInventory.getWarehouseId());
        if (flag2 != inventoryGoodsList.size()) {
            log.error("更新盘点单物品 失败");
            log.error("更新盘点单物品失败");
            return 0;
        }
        return 1;
@@ -202,56 +213,57 @@
    /**
     * 完成盘点
     *
     * @author 卢庆阳
     * @date 2023/10/31
     */
    public int finishPd(LWhFormInventoryDto dto) {
        //1.根据盘点单id查询盘点单
        LWhFormInventory lWhFormInventory = this.get(new LWhFormInventory(dto.getId()));
        if (lWhFormInventory == null) {
            log.error("根据盘点单id查询盘点单 失败");
            return 0;
        }
        //2.修改盘点单
        lWhFormInventory.setStates(2);
        lWhFormInventory.setStopTime(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
        int flag1 = this.update(lWhFormInventory);
        if (flag1 == 0) {
            log.error("修改盘点单 失败");
            return 0;
        }
        //3.更新盘点单物品
        List<LWhFormInventoryGoods> inventoryGoodsList = dto.getInventoryGoodsList();
        if (CollectionUtils.isEmpty(inventoryGoodsList)) {
            log.error("盘点单物品 为空");
            return 0;
        }
        for (LWhFormInventoryGoods inventoryGoods : inventoryGoodsList) {
            int errorCounts = inventoryGoods.getInitCounts() - inventoryGoods.getInventoryCounts();
            if (errorCounts >0 ) {
                inventoryGoods.setInventoryResult(3);
            } else if (errorCounts <0){
                inventoryGoods.setInventoryResult(2);
            } else {
                inventoryGoods.setInventoryResult(1);
            }
            inventoryGoods.setErrorCounts(Math.abs(errorCounts));
        }
        int flag2 = inventoryGoodsService.update(inventoryGoodsList);
        if (flag2 != inventoryGoodsList.size()) {
            log.error("更新盘点单物品 失败");
            return 0;
        }
        return 1;
    }
//    public int finishPd(LWhFormInventoryParam dto) {
//        //1.根据盘点单id查询盘点单
//        LWhFormInventory lWhFormInventory = this.get(new LWhFormInventory(dto.getId()));
//        if (lWhFormInventory == null) {
//            log.error("根据盘点单id查询盘点单 失败");
//            return 0;
//        }
//        //2.修改盘点单
//        lWhFormInventory.setStates(2);
//        lWhFormInventory.setStopTime(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
//        int flag1 = this.update(lWhFormInventory);
//        if (flag1 == 0) {
//            log.error("修改盘点单 失败");
//            return 0;
//        }
//        //3.更新盘点单物品
//        List<LWhFormInventoryGoods> inventoryGoodsList = dto.getInventoryGoodsList();
//        if (CollectionUtils.isEmpty(inventoryGoodsList)) {
//            log.error("盘点单物品 为空");
//            return 0;
//        }
//        for (LWhFormInventoryGoods inventoryGoods : inventoryGoodsList) {
//            int errorCounts = inventoryGoods.getInitCounts() - inventoryGoods.getInventoryCounts();
//            if (errorCounts > 0) {
//                inventoryGoods.setInventoryResult(3);
//            } else if (errorCounts < 0) {
//                inventoryGoods.setInventoryResult(2);
//            } else {
//                inventoryGoods.setInventoryResult(1);
//            }
//            inventoryGoods.setErrorCounts(Math.abs(errorCounts));
//        }
//        int flag2 = inventoryGoodsService.update(inventoryGoodsList);
//        if (flag2 != inventoryGoodsList.size()) {
//            log.error("更新盘点单物品 失败");
//            return 0;
//        }
//        return 1;
//    }
    /**
     * @return
     * @Description 异常明细列表查询
     * @Author 卢庆阳
     * @Date 2023/11/1
     * @return
     */
    public GenericPager<Map<String, Object>> queryPdDetailList(LWhFormInventoryParam param, FinSysTenantUser sysInfo) {
    public GenericPager<Map<String, Object>> queryPdDetailList(com.consum.base.pojo.LWhFormInventoryParam param, FinSysTenantUser sysInfo) {
        StringBuilder sql = new StringBuilder(QUERY_PD_DETAIL_LIST);
        HashMap<String, Object> paramts = new HashMap<>();
@@ -313,4 +325,53 @@
        return selectSplit(sql.toString(), paramts, param.getPageNum(), param.getPageSize(), new MapRowMapper());
    }
    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";
        HashMap<String, Object> param = new HashMap<>();
        param.put("id", id);
        List<Map<String, Object>> select = select(sql, param, new MapperUtil());
        List<FormInventoryGoodsVO> result = Lists.newArrayList();
        select.forEach(item -> {
            FormInventoryGoodsVO formInventoryGoodsVO = MapUtils.convertMapToObj(item, FormInventoryGoodsVO.class);
            result.add(formInventoryGoodsVO);
        });
        return result;
    }
    public FormInventoryVO queryInventBaseGoodTemplate(Long id) {
        FormInventoryVO formInventoryVO = new FormInventoryVO();
        LWhFormInventory lWhFormInventory = new LWhFormInventory();
        lWhFormInventory.setId(id);
        LWhFormInventory inventory = this.get(lWhFormInventory);
        if (inventory == null) {
            return null;
        }
        Long warehouseId = inventory.getWarehouseId();
        Integer warehouseType = inventory.getWarehouseType();
        formInventoryVO.setBusinessFormCode(inventory.getBusinessFormCode());
        formInventoryVO.setBusinessFormName(inventory.getBusinessFormName());
        formInventoryVO.setWarehouseId(warehouseId);
        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 "
                + "where bgt.AGENCY_ID = :agencyId";
        HashMap<String, Object> param = new HashMap<>();
        param.put("agencyId", inventory.getAgencyId());
        List<Map<String, Object>> result = this.select(sql, param, new MapperUtil());
        List<FormInventoryGoodsVO> goodsVOList = Lists.newArrayList();
        result.forEach(item -> {
            FormInventoryGoodsVO baseGoodsModels = MapUtils.convertMapToObj(item, FormInventoryGoodsVO.class);
            int inventoryCount = this.lWhGoodsService.queryGoodsModelNum(warehouseType, warehouseId, baseGoodsModels.getId(), 1, null);
            baseGoodsModels.setInventoryCount(inventoryCount);
            goodsVOList.add(baseGoodsModels);
        });
        formInventoryVO.setFormInventoryGoodsList(goodsVOList);
        return formInventoryVO;
    }
}
consum-base/src/main/java/com/consum/base/service/LWhFormTransferServiceImpl.java
@@ -499,4 +499,27 @@
        return mapGenericPager;
    }
    public List<Map<String, Object>> queryDepartmentTransferOrder() {
        String sql = "SELECT ft.id,\n"
            + "       ft.BUSINESS_FORM_CODE,\n"
            + "       gr.GOODS_TEMPLATE_NAME,\n"
            + "       gr.BASE_GOODS_TEMPLATE_ID goodsTemplateId,\n"
            + "       ft.CREATE_TIME\n"
            + "\n"
            + "FROM l_wh_form_transfer ft\n"
            + "         LEFT JOIN L_WAREHOUSE_FLOW wf ON ft.id = wf.BUSINESS_FORM_ID\n"
            + "         left join L_WH_GOODS_RECORD gr on gr.WAREHOUSE_FLOW_ID = wf.id\n"
            + "         LEFT JOIN L_GOODS_WH_RECORD gwr on gwr.WAREHOUSE_FLOW_ID = wf.id\n"
            + "         left join L_WH_GOODS g on g.id = gwr.WH_GOODS_ID where ft.BUSINESS_TYPE = 1 GROUP BY gr.BASE_GOODS_TEMPLATE_ID \n";
        HashMap<String, Object> param = new HashMap<>();
        List<Map<String, Object>> select = this.select(sql, param, new MapperUtil());
        select.forEach(item -> {
        });
        return select;
    }
}