Browse Source

Merge remote-tracking branch 'origin/dev' into dev

training
caoyizhong 1 year ago
parent
commit
a029a23d88
  1. 107
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/excel/BasicdatavisualizationKCSheetOne.java
  2. 135
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/excel/BasicdatavisualizationKCSheetThree.java
  3. 64
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/excel/BasicdatavisualizationKCSheetTwo.java
  4. 22
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/excel/BasicdatavisualizationSheetOne.java
  5. 13
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/excel/BasicdatavisualizationSheetThree.java
  6. 11
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/excel/BasicdatavisualizationZreoSheetOne.java
  7. 13
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataGoodsAreaMapper.java
  8. 150
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataGoodsAreaMapper.xml
  9. 109
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataGoodsAreaServiceImpl.java
  10. 26
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/annotation/RepeatSubmit.java
  11. 50
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/config/interceptor/RepeatSubmitInterceptor.java
  12. 108
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/config/interceptor/impl/SameUrlDataInterceptor.java
  13. 76
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/filter/RepeatedlyRequestWrapper.java
  14. 7
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseGoodsAllocationMapper.xml

107
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/excel/BasicdatavisualizationKCSheetOne.java

@ -0,0 +1,107 @@
package com.logpm.basicdata.excel;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import lombok.Data;
import java.io.Serializable;
/**
* 货区零担导出 Excel实体类
*
* @author lmy
* @since 2023-09-11
*/
@Data
@ColumnWidth(25)
@HeadRowHeight(20)
@ContentRowHeight(18)
public class BasicdatavisualizationKCSheetOne implements Serializable {
/**
* 入库批次
*/
@ColumnWidth(40)
@ExcelProperty("入库批次")
private String incomingBatch;
/**
* 入库时间
*/
@ColumnWidth(40)
@ExcelProperty("入库时间")
private String warehousingTime;
/**
* 客户名称
*/
@ColumnWidth(40)
@ExcelProperty("客户名称")
private String marketName;
/**
* 订单自编号
*/
@ColumnWidth(30)
@ExcelProperty("订单自编号")
private String orderCode;
/**
* 服务类型
*/
@ColumnWidth(20)
@ExcelProperty("服务类型")
private String typeService;
/**
* 货物名称
*/
@ColumnWidth(20)
@ExcelProperty("货物名称")
private String descriptionGoods;
/**
* 货物编码
*/
@ColumnWidth(20)
@ExcelProperty("货物编码")
private String cargoNumber;
/**
* 服务号
*/
@ColumnWidth(20)
@ExcelProperty("服务号")
private String serviceNumber;
/**
* 托盘码
*/
@ColumnWidth(20)
@ExcelProperty("托盘码")
private String trayCode;
/**
* 库位号
*/
@ColumnWidth(20)
@ExcelProperty("库位号")
private String positionCode;
/**
* 数量
*/
@ColumnWidth(20)
@ExcelProperty("数量")
private String num;
/**
* 上架时间
*/
@ColumnWidth(20)
@ExcelProperty("上架时间")
private String upTime;
/**
* 上架人
*/
@ColumnWidth(20)
@ExcelProperty("上架人")
private String upUser;
}

135
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/excel/BasicdatavisualizationKCSheetThree.java

@ -0,0 +1,135 @@
package com.logpm.basicdata.excel;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import lombok.Data;
import java.io.Serializable;
/**
* 货区导出 Excel实体类
*
* @author lmy
* @since 2023-09-11
*/
@Data
@ColumnWidth(25)
@HeadRowHeight(20)
@ContentRowHeight(18)
public class BasicdatavisualizationKCSheetThree implements Serializable {
/**
* 订单自编号
*/
@ColumnWidth(30)
@ExcelProperty("订单自编号")
private String orderCode;
/**
* 包条码
*/
@ColumnWidth(40)
@ExcelProperty("包条码")
private String orderPackageCode;
/**
* 商场名称
*/
@ColumnWidth(40)
@ExcelProperty("商场名称")
private String mallName;
/**
* 客户名称
*/
@ColumnWidth(40)
@ExcelProperty("客户名称")
private String customerName;
/**
* 物料编码
*/
@ColumnWidth(30)
@ExcelProperty("物料编码")
private String materialCode;
/**
* 物料名称
*/
@ColumnWidth(30)
@ExcelProperty("物料名称")
private String materialName;
/**
* 托盘码
*/
@ColumnWidth(30)
@ExcelProperty("托盘码")
private String trayCode;
/**
* 库位号
*/
@ColumnWidth(40)
@ExcelProperty("库位号")
private String positionInfo;
/**
* 一级品类
*/
@ColumnWidth(40)
@ExcelProperty("一级品类")
private String firsts;
/**
* 一级品类编码
*/
@ColumnWidth(40)
@ExcelProperty("一级品类编码")
private String firstsCode;
/**
* 二级品类
*/
@ColumnWidth(40)
@ExcelProperty("二级品类")
private String second;
/**
* 二级品类编码
*/
@ColumnWidth(40)
@ExcelProperty("二级品类编码")
private String secondCode;
/**
* 三级品类
*/
@ColumnWidth(30)
@ExcelProperty("三级品类")
private String thirdProduct;
/**
* 三级品类编码
*/
@ColumnWidth(30)
@ExcelProperty("三级品类编码")
private String thirdCode;
/**
* 上架时间
*/
@ColumnWidth(20)
@ExcelProperty("上架时间")
private String createTime;
/**
* 上架人
*/
@ColumnWidth(20)
@ExcelProperty("上架人")
private String createUser;
}

64
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/excel/BasicdatavisualizationKCSheetTwo.java

@ -0,0 +1,64 @@
package com.logpm.basicdata.excel;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import lombok.Data;
import java.io.Serializable;
/**
* 货区导出 Excel实体类
*
* @author lmy
* @since 2023-09-11
*/
@Data
@ColumnWidth(25)
@HeadRowHeight(20)
@ContentRowHeight(18)
public class BasicdatavisualizationKCSheetTwo implements Serializable {
/**
* 库位号
*/
@ColumnWidth(40)
@ExcelProperty("库位号")
private String positionInfo;
/**
* 客户名称
*/
@ColumnWidth(40)
@ExcelProperty("客户名称")
private String marketName;
/**
* 物料编码
*/
@ColumnWidth(40)
@ExcelProperty("物料编码")
private String cargoNumber;
/**
* 货物名称
*/
@ColumnWidth(30)
@ExcelProperty("货物名称")
private String descriptionGoods;
/**
* 服务号
*/
@ColumnWidth(30)
@ExcelProperty("服务号")
private String serviceNumber;
/**
* 数量
*/
@ColumnWidth(20)
@ExcelProperty("数量")
private String num;
}

22
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/excel/BasicdatavisualizationSheetOne.java

@ -26,6 +26,28 @@ public class BasicdatavisualizationSheetOne implements Serializable {
@ColumnWidth(40)
@ExcelProperty("订单自编号")
private String orderCode;
/**
* 商场名称
*/
@ColumnWidth(40)
@ExcelProperty("商场名称")
private String mallName;
/**
* 客户名称
*/
@ColumnWidth(40)
@ExcelProperty("客户名称")
private String customerName;
/**
* 品类
*/
@ColumnWidth(40)
@ExcelProperty("品类")
private String thirdProduct;
/**
* 物料名称
*/

13
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/excel/BasicdatavisualizationSheetThree.java

@ -32,6 +32,19 @@ public class BasicdatavisualizationSheetThree implements Serializable {
@ExcelProperty("包条码")
private String orderPackageCode;
/**
* 商场名称
*/
@ColumnWidth(40)
@ExcelProperty("商场名称")
private String mallName;
/**
* 客户名称
*/
@ColumnWidth(40)
@ExcelProperty("客户名称")
private String customerName;
/**
* 物料编码
*/

11
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/excel/BasicdatavisualizationZreoSheetOne.java

@ -26,12 +26,21 @@ public class BasicdatavisualizationZreoSheetOne implements Serializable {
@ColumnWidth(40)
@ExcelProperty("运单号")
private String waybillNumber;
/**
* 客户名称
*/
@ColumnWidth(40)
@ExcelProperty("客户名称")
private String consigneePerson;
/**
* 货物名称
*/
@ColumnWidth(40)
@ExcelProperty("货物名称")
private String goodsName;
private String descriptionGoods;
/**
* 托盘码
*/

13
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataGoodsAreaMapper.java

@ -19,10 +19,7 @@ package com.logpm.basicdata.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.logpm.basicdata.entity.BasicdataGoodsAreaEntity;
import com.logpm.basicdata.excel.BasicdataGoodsAreaexportExcel;
import com.logpm.basicdata.excel.BasicdatavisualizationSheetOne;
import com.logpm.basicdata.excel.BasicdatavisualizationSheetThree;
import com.logpm.basicdata.excel.BasicdatavisualizationSheetTwo;
import com.logpm.basicdata.excel.*;
import com.logpm.basicdata.vo.BasicdataGoodsAreaVO;
import com.logpm.basicdata.vo.BasicdataNodeVO;
import org.apache.ibatis.annotations.Param;
@ -93,4 +90,12 @@ public interface BasicdataGoodsAreaMapper extends BaseMapper<BasicdataGoodsAreaE
* @return
*/
List<BasicdataGoodsAreaEntity> getBasicdataGoodsAreaListdict(@Param("array") List<Long> collect);
List<BasicdatavisualizationKCSheetOne> exportWarehouseByCKStrip(@Param("areaId") Long areaId);
List<BasicdatavisualizationKCSheetTwo> exportWarehouseByKCallocation(@Param("areaId") Long areaId);
List<BasicdatavisualizationKCSheetThree> exportWarehouseByCKService(@Param("areaId") Long areaId);
List<BasicdatavisualizationZreoSheetOne> exportWarehouseByWaybillNumber(@Param("areaId") Long areaId);
}

150
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataGoodsAreaMapper.xml

@ -176,19 +176,26 @@
SELECT orderCode,
materialName,
materialCode,
mallName,
customerName,
thirdProduct,
GROUP_CONCAT(positionInfo SEPARATOR '/') positionInfo,
sum(num) num
FROM (
SELECT ldsa.order_code orderCode,
SELECT
ldsa.order_code orderCode,
ldsa.mall_name mallName,
CONCAT(ldsa.customer_name, '(', ldsa.customer_telephone, ')') customerName,
GROUP_CONCAT(ldpl.material_name SEPARATOR '、') materialName,
GROUP_CONCAT(ldpl.material_code SEPARATOR '、') materialCode,
GROUP_CONCAT(ldpl.third_product SEPARATOR '、') thirdProduct,
CONCAT(lwug.position_code, '(', SUM(lwug.num), ')') positionInfo,
SUM(lwug.num) num
FROM logpm_distribution_stock_article ldsa
JOIN logpm_distribution_parcel_list ldpl ON ldpl.stock_article_id = ldsa.id
JOIN logpm_warehouse_updown_goods lwug ON lwug.association_id = ldpl.id
<where>
ldsa.warehouse_id =#{areaId}
ldpl.warehouse_id =#{areaId}
</where>
GROUP BY ldsa.order_code,
lwug.position_code
@ -220,24 +227,27 @@
</select>
<select id="exportWarehouseByStrip" resultType="com.logpm.basicdata.excel.BasicdatavisualizationSheetThree">
SELECT
ldpl.order_code orderCode,
ldpl.order_package_code orderPackageCode,
ldpl.material_code materialCode,
ldpl.material_name materialName,
lwtg.tray_code trayCode,
lwug.position_code positionInfo,
ldpl.firsts firsts,
ldpl.firsts_code firstsCode,
ldpl.second second,
ldpl.second_code secondCode,
ldpl.third_product thirdProduct,
ldpl.third_code thirdCode,
lwug.create_user createUser,
lwug.create_time createTime
ldpl.order_code orderCode,
ldpl.order_package_code orderPackageCode,
ldpl.material_code materialCode,
ldpl.material_name materialName,
lwtg.tray_code trayCode,
lwug.position_code positionInfo,
ldpl.firsts firsts,
ldpl.firsts_code firstsCode,
ldpl.second second,
ldsa.mall_name mallName,
CONCAT(ldsa.customer_name, '(', ldsa.customer_telephone, ')') customerName,
ldpl.second_code secondCode,
ldpl.third_product thirdProduct,
ldpl.third_code thirdCode,
lwug.create_user createUser,
lwug.create_time createTime
FROM
logpm_warehouse_updown_goods lwug
JOIN logpm_distribution_parcel_list ldpl ON lwug.association_id = ldpl.id
LEFT JOIN logpm_warehouse_tray_goods lwtg on lwtg.association_id = ldpl.id
logpm_warehouse_updown_goods lwug
JOIN logpm_distribution_parcel_list ldpl ON lwug.association_id = ldpl.id
left JOIN logpm_distribution_stock_article ldsa on ldsa.id = ldpl.stock_article_id
LEFT JOIN logpm_warehouse_tray_goods lwtg on lwtg.association_id = ldpl.id
<where>
ldpl.warehouse_id =#{areaId}
</where>
@ -266,4 +276,106 @@
</if>
</where>
</select>
<select id="exportWarehouseByCKStrip" resultType="com.logpm.basicdata.excel.BasicdatavisualizationKCSheetOne">
SELECT
ldsl.incoming_batch incomingBatch,
GROUP_CONCAT( ldsli.warehousing_time SEPARATOR '、' ) warehousingTime,
GROUP_CONCAT( DISTINCT ldsli.order_code SEPARATOR '、' ) orderCode,
ldsl.market_name marketName,
ldsl.service_type serviceType,
ldsl.service_number serviceNumber,
ldsl.description_goods descriptionGoods,
ldsl.cargo_number cargoNumber,
lwtg.tray_code trayCode,
sum( lwug.num ) num,
lwug.position_code positionCode,
GROUP_CONCAT( lwug.create_time SEPARATOR '、' ) upTime,
GROUP_CONCAT( lwug.create_user SEPARATOR '、' ) upUser
FROM
logpm_distribution_stock_list ldsl
JOIN logpm_warehouse_updown_goods lwug ON ldsl.material_id = lwug.association_id
JOIN logpm_distribution_stock_list_info ldsli ON ldsli.incoming_batch = ldsl.incoming_batch
AND ldsli.material_id = ldsl.material_id
AND ldsli.warehouse_id = ldsl.warehouse_id
AND ldsli.market_id = ldsl.market_id
LEFT JOIN logpm_warehouse_tray_goods lwtg ON lwtg.association_id = ldsl.material_id
<where>
ldsl.warehouse_id =#{areaId}
</where>
GROUP BY
ldsl.id
</select>
<select id="exportWarehouseByKCallocation" resultType="com.logpm.basicdata.excel.BasicdatavisualizationKCSheetTwo">
SELECT
lwug.position_code AS positionInfo,
SUM(lwug.num) AS num,
GROUP_CONCAT(ldsl.market_name SEPARATOR '、') AS marketName,
GROUP_CONCAT(ldsl.cargo_number SEPARATOR '、') AS cargoNumber,
GROUP_CONCAT(ldsl.description_goods SEPARATOR '、') AS descriptionGoods,
GROUP_CONCAT(ldsl.service_number SEPARATOR '、') AS serviceNumber
FROM
logpm_distribution_stock_list ldsl
JOIN logpm_warehouse_updown_goods lwug ON ldsl.material_id = lwug.association_id
AND ldsl.incoming_batch = lwug.incoming_batch
AND ldsl.market_id = lwug.market_id
<where>
ldpl.warehouse_id =#{areaId}
</where>
GROUP BY
lwug.position_code
</select>
<select id="exportWarehouseByCKService" resultType="com.logpm.basicdata.excel.BasicdatavisualizationKCSheetThree">
SELECT marketName,
serviceNumber,
descriptionGoods,
cargoNumber,
GROUP_CONCAT(positionInfo SEPARATOR '/') positionInfo,
sum(num) num
FROM (
SELECT
ldsl.market_name marketName,
ldsl.service_number serviceNumber,
ldsl.description_goods descriptionGoods,
ldsl.cargo_number cargoNumber,
CONCAT(lwug.position_code, '(', SUM(lwug.num), ')') positionInfo,
SUM(lwug.num) num
FROM logpm_distribution_stock_list ldsl
JOIN logpm_warehouse_updown_goods lwug ON ldsl.material_id = lwug.association_id
AND ldsl.incoming_batch = lwug.incoming_batch
AND ldsl.market_id = lwug.market_id
<where>
ldsl.warehouse_id =#{areaId}
</where>
GROUP BY ldsl.service_number,
lwug.position_code
) AS subquery
GROUP BY serviceNumber
</select>
<select id="exportWarehouseByWaybillNumber" resultType="com.logpm.basicdata.excel.BasicdatavisualizationZreoSheetOne">
SELECT waybillNumber,
descriptionGoods,
consigneePerson,
GROUP_CONCAT(positionInfo SEPARATOR '/') positionInfo,
trayCode,
upUser,
upTime,
sum(num) num
FROM (
SELECT
ldsa.waybill_number waybillNumber,
ldsa.description_goods descriptionGoods,
CONCAT(ldsa.consignee_person, '(', ldsa.consignee_mobile, ')') consigneePerson,
CONCAT(lwug.position_code, '(', SUM(lwug.num), ')') positionInfo,
GROUP_CONCAT( lwtg.tray_code SEPARATOR ',' ) trayCode,
GROUP_CONCAT( lwug.create_user SEPARATOR ',' ) upUser,
GROUP_CONCAT( lwug.create_time SEPARATOR ',' ) upTime,
SUM(lwug.num) num
FROM logpm_distribution_stock_article ldsa
JOIN logpm_warehouse_updown_goods lwug ON lwug.association_id = ldsa.id
LEFT JOIN logpm_warehouse_tray_goods lwtg ON lwtg.association_id = ldsa.id
GROUP BY ldsa.waybill_number,
lwug.position_code
) AS subquery
GROUP BY waybillNumber
</select>
</mapper>

109
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataGoodsAreaServiceImpl.java

@ -327,6 +327,9 @@ public class BasicdataGoodsAreaServiceImpl extends BaseServiceImpl<BasicdataGood
if (type ==1){
//sheetOne
List<BasicdatavisualizationSheetOne> basicdatavisualizationSheetOnes = baseMapper.exportWarehouseByorderId(areaId);
basicdatavisualizationSheetOnes.forEach(e->{
if (StringUtils.isNotBlank(e.getThirdProduct())){e.setThirdProduct(this.countUniqueProperties(e.getThirdProduct()));}
});
//sheetTwo
List<BasicdatavisualizationSheetTwo> basicdatavisualizationSheetTwos = baseMapper.exportWarehouseByallocation(areaId);
basicdatavisualizationSheetTwos.forEach(e->{
@ -371,8 +374,112 @@ public class BasicdataGoodsAreaServiceImpl extends BaseServiceImpl<BasicdataGood
log.error("导出错误>>>>>>{}",var6);
return;
}
}else {
}else if (type ==2){
//sheetOne
List<BasicdatavisualizationKCSheetOne> basicdatavisualizationSheetKCOnes = baseMapper.exportWarehouseByCKStrip(areaId);
//转换上架人
basicdatavisualizationSheetKCOnes.forEach(e->{
if (StringUtils.isNotBlank(e.getUpUser())){
String[] split = e.getUpUser().split("、");
StringBuilder a = new StringBuilder();
for (String s : split) {
a.append(userClient.userInfoById(Long.valueOf(s)).getData().getName()).append("、");
}
e.setUpUser(a.toString());
}
});
//sheetTwo
List<BasicdatavisualizationKCSheetTwo> basicdatavisualizationSheetKCTwos = baseMapper.exportWarehouseByKCallocation(areaId);
basicdatavisualizationSheetKCTwos.forEach(e->{
if (StringUtils.isNotBlank(e.getMarketName())){e.setMarketName(this.countUniqueProperties(e.getMarketName())); }
if (StringUtils.isNotBlank(e.getCargoNumber())){e.setCargoNumber(this.countUniqueProperties(e.getCargoNumber()));}
if (StringUtils.isNotBlank(e.getDescriptionGoods())){e.setDescriptionGoods(this.countUniqueProperties(e.getDescriptionGoods()));}
if (StringUtils.isNotBlank(e.getServiceNumber())){e.setServiceNumber(this.countUniqueProperties(e.getServiceNumber()));}
});
//sheetThree
List<BasicdatavisualizationKCSheetThree> basicdatavisualizationKCSheetThrees = baseMapper.exportWarehouseByCKService(areaId);
try {
String fileName = "仓库数据" + DateUtil.time();
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding(Charsets.UTF_8.name());
fileName = URLEncoder.encode(fileName, Charsets.UTF_8.name());
response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
// 构造各个sheet页相关信息
List<GoodsAreaSheetInfoBean> goodsAreaSheetInfoBeans = new LinkedList<>();
goodsAreaSheetInfoBeans.add(new GoodsAreaSheetInfoBean("库存品维度",BasicdatavisualizationKCSheetOne.class,basicdatavisualizationSheetKCOnes));
goodsAreaSheetInfoBeans.add(new GoodsAreaSheetInfoBean("货位维度",BasicdatavisualizationKCSheetTwo.class,basicdatavisualizationSheetKCTwos));
goodsAreaSheetInfoBeans.add(new GoodsAreaSheetInfoBean("服务号维度",BasicdatavisualizationKCSheetThree.class,basicdatavisualizationKCSheetThrees));
// EasyExcel.write(response.getOutputStream(), BasicdataGoodsAreaexportExcel.class).sheet("货区数据表").doWrite(warehouseGoodsAreaList);
ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).build();
WriteSheet writeSheet;
for (GoodsAreaSheetInfoBean bean : goodsAreaSheetInfoBeans) {
// 构建sheet对象
writeSheet = EasyExcel.writerSheet(bean.getSheetName()).head(bean.getHeadClass()).build();
// 写出sheet数据
excelWriter.write(bean.getDataList(), writeSheet);
}
// 关流
excelWriter.finish();
} catch (IOException var6) {
log.error("导出错误>>>>>>{}",var6);
return;
}
}else if (type ==3){
//sheetOne
List<BasicdatavisualizationZreoSheetOne> basicdatavisualizationZreoSheetOnes = baseMapper.exportWarehouseByWaybillNumber(areaId);
//转换上架人
basicdatavisualizationZreoSheetOnes.forEach(e->{
if (StringUtils.isNotBlank(e.getUpUser())){
String[] split = e.getUpUser().split("、");
StringBuilder a = new StringBuilder();
for (String s : split) {
a.append(userClient.userInfoById(Long.valueOf(s)).getData().getName()).append("、");
}
e.setUpUser(a.toString());
}
});
// //sheetTwo
// List<BasicdatavisualizationSheetTwo> basicdatavisualizationSheetTwos = baseMapper.exportWarehouseByallocation(areaId);
// basicdatavisualizationSheetTwos.forEach(e->{
// if (StringUtils.isNotBlank(e.getFirsts())){e.setFirsts(this.countUniqueProperties(e.getFirsts())); }
// if (StringUtils.isNotBlank(e.getSecond())){e.setSecond(this.countUniqueProperties(e.getSecond()));}
// if (StringUtils.isNotBlank(e.getThirdProduct())){e.setThirdProduct(this.countUniqueProperties(e.getThirdProduct()));}
// if (StringUtils.isNotBlank(e.getOrderCode())){e.setOrderCode(this.countUniqueProperties(e.getOrderCode()));}
// if (StringUtils.isNotBlank(e.getMaterialName())){e.setMaterialName(this.countUniqueProperties(e.getMaterialName()));}
// });
try {
String fileName = "仓库数据" + DateUtil.time();
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding(Charsets.UTF_8.name());
fileName = URLEncoder.encode(fileName, Charsets.UTF_8.name());
response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
// 构造各个sheet页相关信息
List<GoodsAreaSheetInfoBean> goodsAreaSheetInfoBeans = new LinkedList<>();
goodsAreaSheetInfoBeans.add(new GoodsAreaSheetInfoBean("订单自编号维度",BasicdatavisualizationZreoSheetOne.class,basicdatavisualizationZreoSheetOnes));
// goodsAreaSheetInfoBeans.add(new GoodsAreaSheetInfoBean("货位维度",BasicdatavisualizationSheetTwo.class,basicdatavisualizationSheetTwos));
// goodsAreaSheetInfoBeans.add(new GoodsAreaSheetInfoBean("包条维度",BasicdatavisualizationSheetThree.class,basicdatavisualizationSheetThrees));
// EasyExcel.write(response.getOutputStream(), BasicdataGoodsAreaexportExcel.class).sheet("货区数据表").doWrite(warehouseGoodsAreaList);
ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).build();
WriteSheet writeSheet;
for (GoodsAreaSheetInfoBean bean : goodsAreaSheetInfoBeans) {
// 构建sheet对象
writeSheet = EasyExcel.writerSheet(bean.getSheetName()).head(bean.getHeadClass()).build();
// 写出sheet数据
excelWriter.write(bean.getDataList(), writeSheet);
}
// 关流
excelWriter.finish();
} catch (IOException var6) {
log.error("导出错误>>>>>>{}",var6);
return;
}
}
//return warehouseGoodsAreaList;
}

26
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/annotation/RepeatSubmit.java

@ -0,0 +1,26 @@
//package com.logpm.warehouse.annotation;
//
//import java.lang.annotation.*;
//
///**
// * 自定义注解防止表单重复提交
// *
// * @author lmy
// *
// */
//@Inherited
//@Target(ElementType.METHOD)
//@Retention(RetentionPolicy.RUNTIME)
//@Documented
//public @interface RepeatSubmit
//{
// /**
// * 间隔时间(ms),小于此时间视为重复提交
// */
// public long interval() default 5000;
//
// /**
// * 提示消息
// */
// public String message() default "不允许重复提交,请稍候再试";
//}

50
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/config/interceptor/RepeatSubmitInterceptor.java

@ -0,0 +1,50 @@
//package com.logpm.warehouse.config.interceptor;
//
//
//import com.logpm.warehouse.annotation.RepeatSubmit;
//import org.springblade.core.tool.api.R;
//import org.springframework.stereotype.Component;
//import org.springframework.web.method.HandlerMethod;
//import org.springframework.web.servlet.HandlerInterceptor;
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpServletResponse;
//import java.lang.reflect.Method;
//
///**
// * 防止重复提交拦截器
// *
// * @author lmy
// */
//@Component
//public abstract class RepeatSubmitInterceptor implements HandlerInterceptor {
// public RepeatSubmitInterceptor() {
// }
// @Override
// public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception
// {
// if (handler instanceof HandlerMethod)
// {
// HandlerMethod handlerMethod = (HandlerMethod) handler;
// Method method = handlerMethod.getMethod();
// RepeatSubmit annotation = method.getAnnotation(RepeatSubmit.class);
// if (annotation != null)
// {
// if (this.isRepeatSubmit(request, annotation))
// {
// R r = R.fail(annotation.message());
// return false;
// }
// }
// }
// return true;
// }
//
// /**
// * 验证是否重复提交由子类实现具体的防重复提交的规则
// *
// * @param request
// * @return
// * @throws Exception
// */
// public abstract boolean isRepeatSubmit(HttpServletRequest request, RepeatSubmit annotation);
//}

108
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/config/interceptor/impl/SameUrlDataInterceptor.java

@ -0,0 +1,108 @@
//package com.logpm.warehouse.config.interceptor.impl;
//
//import com.alibaba.fastjson.JSONObject;
//import com.logpm.warehouse.annotation.RepeatSubmit;
//
//import com.logpm.warehouse.filter.RepeatedlyRequestWrapper;
//import org.springblade.common.utils.HttpHelper;
//import com.logpm.warehouse.config.interceptor.RepeatSubmitInterceptor;
//
//import org.apache.commons.lang.StringUtils;
//
//import org.springblade.core.redis.cache.BladeRedis;
//import org.springblade.core.secure.BladeUser;
//import org.springblade.core.secure.utils.AuthUtil;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Component;
//
//import javax.servlet.http.HttpServletRequest;
//import java.util.HashMap;
//import java.util.Map;
//
///**
// * 判断请求url和数据是否和上一次相同,
// * 如果和上次相同,则是重复提交表单。 有效时间为10秒内。
// *
// * @author xhm
// */
//@Component
//public class SameUrlDataInterceptor extends RepeatSubmitInterceptor
//{
// public final String REPEAT_PARAMS = "repeatParams";
//
// public final String REPEAT_TIME = "repeatTime";
//
//
// @Autowired
// private BladeRedis redisCache;
//
// @SuppressWarnings("unchecked")
// @Override
// public boolean isRepeatSubmit(HttpServletRequest request, RepeatSubmit annotation)
// {
// String nowParams = "";
// if (request instanceof RepeatedlyRequestWrapper)
// {
// RepeatedlyRequestWrapper repeatedlyRequest = (RepeatedlyRequestWrapper) request;
// nowParams = HttpHelper.getBodyString(repeatedlyRequest);
// }
//
// // body参数为空,获取Parameter的数据
// if (StringUtils.isEmpty(nowParams))
// {
// nowParams = JSONObject.toJSONString(request.getParameterMap());
// }
// Map<String, Object> nowDataMap = new HashMap<String, Object>();
// nowDataMap.put(REPEAT_PARAMS, nowParams);
// nowDataMap.put(REPEAT_TIME, System.currentTimeMillis());
//
// // 请求地址(作为存放cache的key值)
// String url = request.getRequestURI();
// //获取用户id
// BladeUser user = AuthUtil.getUser();
// // 唯一标识(指定key + url + 消息头)
// String cacheRepeatKey = url+user.getUserId() ;
//
// Object sessionObj = redisCache.get(cacheRepeatKey);
// if (sessionObj != null)
// {
// Map<String, Object> sessionMap = (Map<String, Object>) sessionObj;
// if (sessionMap.containsKey(url))
// {
// Map<String, Object> preDataMap = (Map<String, Object>) sessionMap.get(url);
// if (compareParams(nowDataMap, preDataMap) && compareTime(nowDataMap, preDataMap, annotation.interval()))
// {
// return true;
// }
// }
// }
// Map<String, Object> cacheMap = new HashMap<String, Object>();
// cacheMap.put(url, nowDataMap);
// redisCache.setEx(cacheRepeatKey, cacheMap, annotation.interval());
// return false;
// }
//
// /**
// * 判断参数是否相同
// */
// private boolean compareParams(Map<String, Object> nowMap, Map<String, Object> preMap)
// {
// String nowParams = (String) nowMap.get(REPEAT_PARAMS);
// String preParams = (String) preMap.get(REPEAT_PARAMS);
// return nowParams.equals(preParams);
// }
//
// /**
// * 判断两次间隔时间
// */
// private boolean compareTime(Map<String, Object> nowMap, Map<String, Object> preMap, long interval)
// {
// long time1 = (Long) nowMap.get(REPEAT_TIME);
// long time2 = (Long) preMap.get(REPEAT_TIME);
// if ((time1 - time2) < interval)
// {
// return true;
// }
// return false;
// }
//}

76
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/filter/RepeatedlyRequestWrapper.java

@ -0,0 +1,76 @@
//package com.logpm.warehouse.filter;
//
//import org.springblade.common.utils.HttpHelper;
//
//import javax.servlet.ReadListener;
//import javax.servlet.ServletInputStream;
//import javax.servlet.ServletResponse;
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpServletRequestWrapper;
//import java.io.BufferedReader;
//import java.io.ByteArrayInputStream;
//import java.io.IOException;
//import java.io.InputStreamReader;
//
///**
// * 构建可重复读取inputStream的request
// *
// * @author lmy
// */
//public class RepeatedlyRequestWrapper extends HttpServletRequestWrapper
//{
// private final byte[] body;
//
// public RepeatedlyRequestWrapper(HttpServletRequest request, ServletResponse response) throws IOException
// {
// super(request);
// request.setCharacterEncoding("UTF-8");
// response.setCharacterEncoding("UTF-8");
//
// body = HttpHelper.getBodyString(request).getBytes("UTF-8");
// }
//
// @Override
// public BufferedReader getReader() throws IOException
// {
// return new BufferedReader(new InputStreamReader(getInputStream()));
// }
//
// @Override
// public ServletInputStream getInputStream() throws IOException
// {
// final ByteArrayInputStream bais = new ByteArrayInputStream(body);
// return new ServletInputStream()
// {
// @Override
// public int read() throws IOException
// {
// return bais.read();
// }
//
// @Override
// public int available() throws IOException
// {
// return body.length;
// }
//
// @Override
// public boolean isFinished()
// {
// return false;
// }
//
// @Override
// public boolean isReady()
// {
// return false;
// }
//
// @Override
// public void setReadListener(ReadListener readListener)
// {
//
// }
// };
// }
//}

7
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseGoodsAllocationMapper.xml

@ -202,15 +202,14 @@
ldsl.stock_list_code stockListCode,
lwtg.tray_code trayCode,
lwug.num num,
CONCAT(lwug.area_title,'-',lwug.shelf_title,'-',lwug.allocation_title) positionCode
lwug.position_code positionCode
FROM
logpm_distribution_stock_list ldsl
JOIN logpm_warehouse_updown_goods lwug ON ldsl.material_id = lwug.association_id
left JOIN logpm_warehouse_updown_type lwut on lwut.id = lwug.updown_type_id
JOIN logpm_warehouse_updown_goods lwug ON ldsl.material_id = lwug.association_id and ldsl.incoming_batch = lwug.incoming_batch and ldsl.market_id = lwug.market_id
left join logpm_warehouse_tray_goods lwtg on lwtg.association_id = ldsl.material_id
left join logpm_basicdata_material lbm on lbm.id =ldsl.material_id
<where>
lwug.association_type = 4 and ldsl.market_id = lwug.market_id AND ldsl.is_deleted = 0 and lwug.allocation_id
lwug.association_type = 4 AND ldsl.is_deleted = 0 and lwug.allocation_id
= #{param.id}
<if test="param.materialCode!=null and param.materialCode !=''">
and lbm.product_code like concat('%',#{param.materialCode},'%')

Loading…
Cancel
Save