Browse Source

增加库存品明细统计

chenglong
chenlong 11 months ago
parent
commit
b7a2cca015
  1. 2
      blade-biz-common/src/main/java/org/springblade/common/constant/ModuleNameConstant.java
  2. 39
      blade-service/logpm-report/src/main/java/com/logpm/report/controller/StockOutDetailController.java
  3. 17
      blade-service/logpm-report/src/main/java/com/logpm/report/mapper/StockOutDetailMapper.java
  4. 71
      blade-service/logpm-report/src/main/java/com/logpm/report/mapper/StockOutDetailMapper.xml
  5. 9
      blade-service/logpm-report/src/main/java/com/logpm/report/service/StockOutDetailService.java
  6. 49
      blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/StockOutDetailServiceImp.java
  7. 6
      blade-service/logpm-report/src/main/resources/application-dev.yml

2
blade-biz-common/src/main/java/org/springblade/common/constant/ModuleNameConstant.java

@ -8,7 +8,7 @@ public interface ModuleNameConstant {
/**
* 如果不需要 ""
*/
public static final String DEVAUTH ="";
public static final String DEVAUTH ="-chenlong";
/**
* 工厂对接服务名称

39
blade-service/logpm-report/src/main/java/com/logpm/report/controller/StockOutDetailController.java

@ -0,0 +1,39 @@
package com.logpm.report.controller;
import com.logpm.report.service.StockOutDetailService;
import lombok.AllArgsConstructor;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.tool.api.R;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
/**
* 库存品出库明细
*/
@RestController
@AllArgsConstructor
@RequestMapping(path = "/stock-out-detail")
public class StockOutDetailController extends BladeController {
private StockOutDetailService test;
/**
* 报表数据
* @param query 所有请求参数
* @param current 当前页
* @param size 每页数据量
*/
@GetMapping("/report")
public R<List<Map<String, Object>>> report(
@RequestParam Map<String, Object> query,
@RequestParam Integer current,
@RequestParam Integer size){
List<Map<String, Object>> data = test.report(current, size, query);
return data(data);
}
}

17
blade-service/logpm-report/src/main/java/com/logpm/report/mapper/StockOutDetailMapper.java

@ -0,0 +1,17 @@
package com.logpm.report.mapper;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
import java.util.Map;
/**
* 库存出库明细
*/
@Mapper
public interface StockOutDetailMapper {
List<Map<String, Object>> getList(Map<String, Object> where);
Integer getCount(Map<String, Object> where);
}

71
blade-service/logpm-report/src/main/java/com/logpm/report/mapper/StockOutDetailMapper.xml

@ -0,0 +1,71 @@
<?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.logpm.report.mapper.StockOutDetailMapper">
<!--
提示:以下表信息需要加索引,以增加查询速度
logpm_distribution_stock 表的 coding
logpm_distribution_stock_list_info 表的 package_code
-->
<select id="getList" resultType="java.util.Map">
SELECT b.goods_allocation_name -- 货位
, a.stock_quantity -- 数量
, a.coding -- 包条码
, w.name as warehouse_name -- 仓库
, c.market_name -- 商场
, c.cargo_number -- 物料编码
, m.name as material_name -- 物料名称
, a.create_time -- 时间
, a.conditions as out_type -- 出库类型
, e.note_number -- 配送单号
, e.train_number -- 车次号
, a.reservation_code -- 预约单号
, r.consignee as client_name -- 收货人(客户名称)
, e.id
<include refid="tables" />
<include refid="wheres" />
LIMIT #{offset}, #{size}
</select>
<select id="getCount" resultType="java.lang.Integer">
SELECT count(*)
<include refid="tables" />
<include refid="wheres" />
</select>
<sql id="tables">
FROM logpm_distribution_stock a
INNER JOIN logpm_warehouse_goods_allocation b ON a.allocation_id = b.id AND b.is_deleted = 0
INNER JOIN logpm_warehouse_warehouse w ON w.id = b.warehouse_id AND w.is_deleted = 0
INNER JOIN logpm_distribution_stock_list_info c ON c.package_code = a.coding AND c.is_deleted = 0
INNER JOIN logpm_basicdata_material m ON m.id = c.material_id AND c.is_deleted = 0
INNER JOIN logpm_distribution_signfor d
ON d.reservation_id = a.reservation_id AND a.outbound_type IN (1, 2) AND d.is_deleted = 0
INNER JOIN logpm_distribution_delivery_list e ON e.id = d.delivery_id AND e.is_deleted = 0
INNER JOIN logpm_distribution_reservation r ON r.id = d.reservation_id AND r.is_deleted = 0
</sql>
<sql id="wheres">
WHERE 1 = 1
<if test="warehouse_id != null">
AND b.warehouse_id = #{warehouse_id}
</if>
<if test="market_name != null">
AND c.market_name LIKE CONCAT('%', #{market_name} , '%')
</if>
<if test="note_number != null">
AND e.note_number = #{note_number}
</if>
<if test="reservation_code != null">
AND a.reservation_code = #{reservation_code}
</if>
<if test="client_name != null">
AND r.consignee LIKE CONCAT('%', #{client_name}, '%')
</if>
</sql>
</mapper>

9
blade-service/logpm-report/src/main/java/com/logpm/report/service/StockOutDetailService.java

@ -0,0 +1,9 @@
package com.logpm.report.service;
import java.util.List;
import java.util.Map;
public interface StockOutDetailService {
List<Map<String, Object>> report(Integer current, Integer size, Map<String, Object> where);
}

49
blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/StockOutDetailServiceImp.java

@ -0,0 +1,49 @@
package com.logpm.report.service.impl;
import com.logpm.report.mapper.StockOutDetailMapper;
import com.logpm.report.service.StockOutDetailService;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 库存品出口明细报表
*/
@Service
@AllArgsConstructor
public class StockOutDetailServiceImp implements StockOutDetailService {
private StockOutDetailMapper testMapper;
/**
* 报表统计信息
*
* @param current 当前页
* @param size 每页大小
* @param query 所有的query参数
* @return 查询结果
*/
@Override
public List<Map<String, Object>> report(Integer current, Integer size, Map<String, Object> query) {
Integer offset = (current - 1) * size;
boolean getCacheCount = true;
long whereCount = query.entrySet().stream().filter((entry) -> entry.getValue() != null)
.filter(entry -> !entry.getKey().equals("current") && !entry.getKey().equals("size"))
.count();
if (whereCount > 0) {
getCacheCount = false;
}
query.put("offset", offset);
query.put("size", size);
List<Map<String, Object>> List = testMapper.getList(query);
Integer count = testMapper.getCount(query);
return List;
}
}

6
blade-service/logpm-report/src/main/resources/application-dev.yml

@ -32,7 +32,8 @@ spring:
#validation-query: select 1 from dual
url: ${blade.datasource.report.master.url}
username: ${blade.datasource.report.master.username}
password: ${blade.datasource.report.master.password}
# password: ${blade.datasource.report.master.password}
password: Hwy@1234
slave:
druid:
#独立校验配置
@ -41,5 +42,6 @@ spring:
#validation-query: select 1 from dual
url: ${blade.datasource.report.slave.url}
username: ${blade.datasource.report.slave.username}
password: ${blade.datasource.report.slave.password}
# password: ${blade.datasource.report.slave.password}
password: Hwy@1234

Loading…
Cancel
Save