客户库存盘点明细
This commit is contained in:
		
							parent
							
								
									7593401491
								
							
						
					
					
						commit
						1424cf2a1e
					
				|  | @ -4,6 +4,7 @@ import com.yb.lb.common.core.AjaxResult; | |||
| import com.yb.lb.common.core.BaseController; | ||||
| import com.yb.lb.common.utils.ErrorUtils; | ||||
| import com.yb.lb.webapp.redis.service.RedisService; | ||||
| import com.yb.lb.webapp.stock.service.ClientStockReportService; | ||||
| import com.yb.lb.webapp.stock.service.InventoryInfoService; | ||||
| import com.yb.lb.webapp.utils.RoleDateUtils; | ||||
| import io.swagger.annotations.Api; | ||||
|  | @ -20,14 +21,14 @@ import java.util.HashMap; | |||
| import java.util.Map; | ||||
| 
 | ||||
| /** | ||||
|  * 客户库存查询 | ||||
|  * 客户库存查询报表 | ||||
|  * | ||||
|  * @author mzr | ||||
|  * @date 2023/11/04 | ||||
|  **/ | ||||
| @RestController | ||||
| @RequestMapping("/adminx/stockReport") | ||||
| @Api(tags = "pc:客户库存查询") | ||||
| @Api(tags = "pc:客户库存查询报表") | ||||
| public class StockReportController extends BaseController { | ||||
|     @Autowired | ||||
|     RedisService redisService; | ||||
|  | @ -35,6 +36,8 @@ public class StockReportController extends BaseController { | |||
|     InventoryInfoService inventoryInfoService; | ||||
|     @Autowired | ||||
|     RoleDateUtils roleDateUtils; | ||||
|     @Autowired | ||||
|     ClientStockReportService clientStockReportService; | ||||
| 
 | ||||
|     /** | ||||
|      * @description 库存查询 | ||||
|  | @ -121,4 +124,34 @@ public class StockReportController extends BaseController { | |||
|         return toAjax(inventoryInfoService.findDetailList(params, id)); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * @description 客户库存盘点明细 | ||||
|      * @author mzr | ||||
|      * @date 2024/10/30 | ||||
|      **/ | ||||
|     @ApiOperation("客户库存盘点明细") | ||||
|     @PostMapping(value = "/getClientStockReport") | ||||
|     public Map<String, Object> getClientStockReport( | ||||
|             @ApiParam(required = true, value = "开始日期") @RequestParam(required = true) String startDate, | ||||
|             @ApiParam(required = true, value = "结束日期") @RequestParam(required = true) String endDate, | ||||
|             @ApiParam(required = false, value = "客户id") @RequestParam(required = false) String clientId, | ||||
|             @ApiParam(required = true, value = "页码", defaultValue = "1") @RequestParam(value = "page") Integer pageNum, | ||||
|             @ApiParam(required = true, value = "每页条数", defaultValue = "10") @RequestParam(value = "pageSize") Integer pageSize, | ||||
|             HttpServletRequest request) { | ||||
|         Map<String, Object> result = new HashMap<>(); | ||||
|         Map<String, Object> params = new HashMap<>(); | ||||
|         // String token = request.getHeader("token"); | ||||
|         // if (!redisService.isKey(token)) { | ||||
|         //     return AjaxResult.error(ErrorUtils.IS_NOT_LOGIN_ERROR, "用户未登录"); | ||||
|         // } | ||||
|         // Map<String, String> tokenMap = redisService.hmget(token); | ||||
|         // params.put("companyId", tokenMap.get("companyId")); | ||||
|         params.put("startDate", startDate); | ||||
|         params.put("endDate", endDate); | ||||
|         params.put("clientId", clientId); | ||||
|         params.put("page", pageNum); | ||||
|         params.put("pageSize", pageSize); | ||||
|         return toPage(clientStockReportService.pageList(params, ".getClientStockReportSql")); | ||||
|     } | ||||
| 
 | ||||
| } | ||||
|  |  | |||
|  | @ -0,0 +1,132 @@ | |||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | ||||
| 
 | ||||
| <!-- 客户盘点报表 --> | ||||
| <mapper namespace="com.yb.lb.webapp.stock.entity.ClientStockReport"> | ||||
|     <!-- 字段映射 --> | ||||
|     <resultMap id="stockReportMap" type="com.yb.lb.webapp.stock.entity.ClientStockReport"> | ||||
|         <result column="bill_id" property="billId" jdbcType="VARCHAR" /> | ||||
|         <result column="bill_no" property="billNo" jdbcType="VARCHAR" /> | ||||
|         <result column="bill_date" property="billDate" jdbcType="VARCHAR" /> | ||||
|         <result column="client_id" property="clientId" jdbcType="VARCHAR" /> | ||||
|         <result column="confirm_status" property="confirmStatus" jdbcType="VARCHAR" /> | ||||
|         <result column="create_time" property="createTime" jdbcType="VARCHAR" /> | ||||
|         <result column="goods_id" property="goodsId" jdbcType="VARCHAR" /> | ||||
|         <result column="goods_no" property="goodsNo" jdbcType="VARCHAR" /> | ||||
|         <result column="goods_name" property="goodsName" jdbcType="VARCHAR" /> | ||||
|         <result column="unit_id" property="unitId" jdbcType="VARCHAR" /> | ||||
|         <result column="unit_name" property="unitName" jdbcType="VARCHAR" /> | ||||
|         <result column="specifications" property="specifications" jdbcType="VARCHAR" /> | ||||
|         <result column="goods_type_id" property="goodsTypeId" jdbcType="VARCHAR" /> | ||||
|         <result column="goods_type_name" property="goodsTypeName" jdbcType="VARCHAR" /> | ||||
|         <result column="last_num" property="lastNum" jdbcType="VARCHAR" /> | ||||
|         <result column="count_num" property="countNum" jdbcType="VARCHAR" /> | ||||
|         <result column="diff_num" property="diffNum" jdbcType="VARCHAR" /> | ||||
|         <result column="company_id" property="companyId" jdbcType="VARCHAR" /> | ||||
|         <result column="remark" property="remark" jdbcType="VARCHAR" /> | ||||
|         <result column="prod_date" property="prodDate" jdbcType="VARCHAR" /> | ||||
|         <result column="distributor_name" property="clientName" jdbcType="VARCHAR" /> | ||||
|         <result column="join_fhd_num" property="joinFhdNum" jdbcType="VARCHAR" /> | ||||
|         <result column="distributor_no" property="distributorNo" jdbcType="VARCHAR" /> | ||||
|         <result column="uecode" property="uecode" jdbcType="VARCHAR" /> | ||||
|         <result column="create_name" property="createName" jdbcType="VARCHAR" /> | ||||
|         <result column="create_time" property="createTime" jdbcType="VARCHAR" /> | ||||
|         <result column="area_no" property="areaNo" jdbcType="VARCHAR" /> | ||||
|         <result column="area_name" property="areaName" jdbcType="VARCHAR" /> | ||||
|     </resultMap> | ||||
| 
 | ||||
|     <!-- 表查询字段 --> | ||||
|     <sql id="allColumns"> | ||||
|         a.id, a.bill_id, a.bill_no, a.bill_date, a.client_id, a.confirm_status, a.create_time, a.goods_id,  | ||||
|         a.goods_no, a.last_num, a.count_num, a.diff_num, a.company_id, a.remark, a.prod_date,a.join_fhd_num, | ||||
|     </sql> | ||||
| 
 | ||||
|     <!-- 根据条件参数查询盘点子表列表 --> | ||||
|     <select id="findCrmInventoryDetailByCondition" resultMap="stockReportMap" parameterType="map"> | ||||
|         SELECT | ||||
|             <include refid="allColumns" /> | ||||
|             b.goods_name, b.unit_id, b.unit_name, b.specifications, b.goods_type_id, b.goods_type_name | ||||
|         FROM crm_inventory_detail a | ||||
|         LEFT JOIN crm_goods_info b ON a.goods_no = b.goods_no and a.company_id = b.company_id | ||||
|         <where> | ||||
|             <if test="billId != null and billId != ''"> | ||||
|                 AND a.bill_id = #{billId} | ||||
|             </if> | ||||
|             <if test="clientId != null and clientId != ''"> | ||||
|                 AND a.client_id = #{clientId} | ||||
|             </if> | ||||
|             <if test="confirmStatus != null and confirmStatus != ''"> | ||||
|                 AND a.confirm_status = #{confirmStatus} | ||||
|             </if> | ||||
|             <if test="goodsNo != null and goodsNo != ''"> | ||||
|                 AND a.goods_no = #{goodsNo} | ||||
|             </if> | ||||
|             <if test="companyId != null and companyId != ''"> | ||||
|                 AND a.company_id = #{companyId} | ||||
|             </if> | ||||
|             <if test="startDateP != null and startDateP !=''"> | ||||
|                 AND TO_CHAR(TO_DATE(SUBSTR(a.prod_date,1,10),'yyyy-MM-dd'),'yyyy-MM-dd') >= | ||||
|                 TO_CHAR(TO_DATE(SUBSTR(#{startDateP},1,10),'yyyy-MM-dd'),'yyyy-MM-dd') | ||||
|             </if> | ||||
|             <if test="endDateP != null and endDateP !=''"> | ||||
|                 AND TO_CHAR(TO_DATE(SUBSTR(a.prod_date,1,10),'yyyy-MM-dd'),'yyyy-MM-dd') <= | ||||
|                 TO_CHAR(TO_DATE(SUBSTR(#{endDateP},1,10),'yyyy-MM-dd'),'yyyy-MM-dd') | ||||
|             </if> | ||||
|         </where> | ||||
|         ORDER BY a.bill_date DESC,a.create_time DESC | ||||
|     </select> | ||||
| 
 | ||||
|     <!-- 客户库存盘点明细 --> | ||||
|     <select id="getClientStockReportSql" resultType="map" parameterType="map"> | ||||
|         SELECT t0.uecode "uecode", | ||||
|         t0.distributor_name "clientName", | ||||
|         NVL(t1.bill_date, '---') "billDate", | ||||
|         NVL(t1.count_num, 0) "countNum", | ||||
|         NVL(t1.goods_num, 0) "goodsNum", | ||||
|         NVL(t2.bill_num, 0) "billNum" | ||||
|         FROM crm_distributor_user_info t0 | ||||
|         LEFT JOIN ( | ||||
|         SELECT * | ||||
|         FROM ( | ||||
|         SELECT tt1.*, | ||||
|         ROW_NUMBER() OVER ( PARTITION BY tt1.client_id ORDER BY tt1.bill_date DESC, tt1.create_time DESC ) AS rn | ||||
|         FROM ( | ||||
|         SELECT a.bill_no, | ||||
|         a.bill_date, | ||||
|         a.client_id, | ||||
|         a.create_time, | ||||
|         b.count_num, | ||||
|         b.goods_num | ||||
|         FROM crm_inventory_info a | ||||
|         LEFT JOIN pd1 b ON a.id = b.bill_id | ||||
|         WHERE a.confirm_status = '1' | ||||
|         <if test="startDate != null and startDate !=''"> | ||||
|             AND TO_CHAR(TO_DATE(SUBSTR(a.bill_date,1,10),'yyyy-MM-dd'),'yyyy-MM-dd') >= | ||||
|             TO_CHAR(TO_DATE(SUBSTR(#{startDate},1,10),'yyyy-MM-dd'),'yyyy-MM-dd') | ||||
|         </if> | ||||
|         <if test="endDate != null and endDate !=''"> | ||||
|             AND TO_CHAR(TO_DATE(SUBSTR(a.bill_date,1,10),'yyyy-MM-dd'),'yyyy-MM-dd') <= | ||||
|             TO_CHAR(TO_DATE(SUBSTR(#{endDate},1,10),'yyyy-MM-dd'),'yyyy-MM-dd') | ||||
|         </if> | ||||
|         ) tt1 | ||||
|         ) temp | ||||
|         WHERE rn = 1 | ||||
|         ) t1 ON t0.id = t1.client_id | ||||
|         LEFT JOIN (SELECT client_id, COUNT(1) bill_num | ||||
|         FROM crm_inventory_info | ||||
|         WHERE confirm_status = '1' | ||||
|         <if test="startDate != null and startDate !=''"> | ||||
|             AND TO_CHAR(TO_DATE(SUBSTR(bill_date,1,10),'yyyy-MM-dd'),'yyyy-MM-dd') >= | ||||
|             TO_CHAR(TO_DATE(SUBSTR(#{startDate},1,10),'yyyy-MM-dd'),'yyyy-MM-dd') | ||||
|         </if> | ||||
|         <if test="endDate != null and endDate !=''"> | ||||
|             AND TO_CHAR(TO_DATE(SUBSTR(bill_date,1,10),'yyyy-MM-dd'),'yyyy-MM-dd') <= | ||||
|             TO_CHAR(TO_DATE(SUBSTR(#{endDate},1,10),'yyyy-MM-dd'),'yyyy-MM-dd') | ||||
|         </if> | ||||
|         GROUP BY client_id) t2 ON t0.id = t2.client_id | ||||
|         WHERE t0.status = '1' | ||||
|         AND t0.documents_status = '1' | ||||
|         AND t0.uecode IS NOT NULL | ||||
|     </select> | ||||
| 
 | ||||
| </mapper> | ||||
|  | @ -0,0 +1,16 @@ | |||
| package com.yb.lb.webapp.stock.entity; | ||||
| 
 | ||||
| import lombok.Data; | ||||
| 
 | ||||
| /** | ||||
|  * 客户库存盘点报表 | ||||
|  *  | ||||
|  * @author mzr | ||||
|  * @version 1.0.0 2024-10-29 | ||||
|  */ | ||||
| @Data | ||||
| public class ClientStockReport implements java.io.Serializable { | ||||
|     /** 版本号 */ | ||||
|     private static final long serialVersionUID = -1267096003093637603L; | ||||
| 
 | ||||
| } | ||||
|  | @ -0,0 +1,42 @@ | |||
| package com.yb.lb.webapp.stock.service; | ||||
| 
 | ||||
| import com.github.pagehelper.PageInfo; | ||||
| import com.yb.lb.common.base.oracle.BaseOracleDao; | ||||
| import com.yb.lb.webapp.stock.entity.ClientStockReport; | ||||
| import org.springframework.beans.factory.annotation.Autowired; | ||||
| import org.springframework.stereotype.Service; | ||||
| 
 | ||||
| import java.util.List; | ||||
| import java.util.Map; | ||||
| 
 | ||||
| /** | ||||
|  * 盘点单 | ||||
|  * | ||||
|  * @author mzr | ||||
|  * @date 2024/10/30 | ||||
|  **/ | ||||
| @Service | ||||
| public class ClientStockReportService { | ||||
| 
 | ||||
|     @Autowired | ||||
|     BaseOracleDao<ClientStockReport> dao; | ||||
| 
 | ||||
|     /** | ||||
|      * @description 分页查询 | ||||
|      * @author mzr | ||||
|      * @date 2024/10/30 | ||||
|      **/ | ||||
|     public PageInfo pageList(Map<String, Object> params, String id) { | ||||
|         return dao.pageList(ClientStockReport.class.getName() + id, params); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * @description 查询所有 | ||||
|      * @author mzr | ||||
|      * @date 2024/10/30 | ||||
|      **/ | ||||
|     public List findList(Map<String, Object> params, String id) { | ||||
|         return dao.list(ClientStockReport.class.getName() + id, params); | ||||
|     } | ||||
| 
 | ||||
| } | ||||
		Loading…
	
		Reference in New Issue