Browse Source

1.可视化导出

training
0.0 2 years ago
parent
commit
ef4983f1b8
  1. 122
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/excel/BasicdatavisualizationSheetThree.java
  2. 69
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/excel/BasicdatavisualizationSheetTwo.java
  3. 6
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataGoodsAreaMapper.java
  4. 93
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataGoodsAreaMapper.xml
  5. 25
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataGoodsAreaServiceImpl.java

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

@ -0,0 +1,122 @@
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 BasicdatavisualizationSheetThree implements Serializable {
/**
* 订单自编号
*/
@ColumnWidth(30)
@ExcelProperty("订单自编号")
private String orderCode;
/**
* 包条码
*/
@ColumnWidth(40)
@ExcelProperty("包条码")
private String orderPackageCode;
/**
* 物料编码
*/
@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;
}

69
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/excel/BasicdatavisualizationSheetTwo.java

@ -0,0 +1,69 @@
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 BasicdatavisualizationSheetTwo implements Serializable {
/**
* 库位号
*/
@ColumnWidth(40)
@ExcelProperty("库位号")
private String positionInfo;
/**
* 一级品类
*/
@ColumnWidth(40)
@ExcelProperty("一级品类")
private String firsts;
/**
* 二级品类
*/
@ColumnWidth(40)
@ExcelProperty("二级品类")
private String second;
/**
* 三级品类
*/
@ColumnWidth(30)
@ExcelProperty("三级品类")
private String thirdProduct;
/**
* 订单自编号
*/
@ColumnWidth(30)
@ExcelProperty("订单自编号")
private String orderCode;
/**
* 物料名称
*/
@ColumnWidth(30)
@ExcelProperty("物料名称")
private String materialName;
/**
* 数量
*/
@ColumnWidth(20)
@ExcelProperty("数量")
private String num;
}

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

@ -21,6 +21,8 @@ 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.vo.BasicdataGoodsAreaVO;
import com.logpm.basicdata.vo.BasicdataNodeVO;
import org.apache.ibatis.annotations.Param;
@ -74,4 +76,8 @@ public interface BasicdataGoodsAreaMapper extends BaseMapper<BasicdataGoodsAreaE
List<BasicdatavisualizationSheetOne> exportWarehouseByorderId(@Param("areaId") Long areaId);
void sqlMode();
List<BasicdatavisualizationSheetTwo> exportWarehouseByallocation(@Param("areaId") Long areaId);
List<BasicdatavisualizationSheetThree> exportWarehouseByStrip(@Param("areaId") Long areaId);
}

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

@ -174,25 +174,86 @@
</select>
<select id="exportWarehouseByorderId" resultType="com.logpm.basicdata.excel.BasicdatavisualizationSheetOne">
SELECT orderCode,
materialName,
materialCode,
GROUP_CONCAT(positionInfo SEPARATOR '/') positionInfo,
sum(num) num
materialName,
materialCode,
GROUP_CONCAT(positionInfo SEPARATOR '/') positionInfo,
sum(num) num
FROM (
SELECT ldsa.order_code orderCode,
GROUP_CONCAT(ldpl.material_name SEPARATOR '、') materialName,
GROUP_CONCAT(ldpl.material_code SEPARATOR '、') materialCode,
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
GROUP BY ldsa.order_code,
lwug.position_code
) AS subquery
SELECT ldsa.order_code orderCode,
GROUP_CONCAT(ldpl.material_name SEPARATOR '、') materialName,
GROUP_CONCAT(ldpl.material_code SEPARATOR '、') materialCode,
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}
</where>
GROUP BY ldsa.order_code,
lwug.position_code
) AS subquery
GROUP BY orderCode
</select>
<select id="sqlMode">
SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
SET
sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
</select>
<select id="exportWarehouseByallocation" resultType="com.logpm.basicdata.excel.BasicdatavisualizationSheetTwo">
SELECT positionInfo,
GROUP_CONCAT(DISTINCT firsts SEPARATOR '、') firsts,
GROUP_CONCAT(DISTINCT SECOND SEPARATOR '、') SECOND,
GROUP_CONCAT(DISTINCT thirdProduct SEPARATOR '、') thirdProduct,
GROUP_CONCAT(DISTINCT orderCode SEPARATOR '、') orderCode,
GROUP_CONCAT(DISTINCT materialName SEPARATOR '、') materialName,
SUM(num) num
FROM (
SELECT lwug.position_code AS positionInfo,
CONCAT(ldpl.firsts, '(', SUM(lwug.num), ')') AS firsts,
CONCAT(ldpl.SECOND, '(', SUM(lwug.num), ')') AS SECOND,
CONCAT(ldpl.third_product, '(', SUM(lwug.num), ')') AS thirdProduct,
CONCAT(ldpl.order_code, '(', SUM(lwug.num), ')') AS orderCode,
CONCAT(ldpl.material_name, '(', SUM(lwug.num), ')') AS materialName,
SUM(lwug.num) AS num
FROM
logpm_warehouse_updown_goods lwug
JOIN logpm_distribution_parcel_list ldpl
ON lwug.association_id = ldpl.id
<where>
ldpl.warehouse_id =#{areaId}
</where>
GROUP BY
lwug.position_code,
ldpl.firsts,
ldpl.SECOND,
ldpl.third_product,
ldpl.order_code,
ldpl.material_name
) AS subquery
GROUP BY positionInfo
</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
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
<where>
ldpl.warehouse_id =#{areaId}
</where>
</select>
</mapper>

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

@ -29,10 +29,7 @@ import com.logpm.basicdata.entity.BasicdataGoodsAllocationEntity;
import com.logpm.basicdata.entity.BasicdataGoodsAreaEntity;
import com.logpm.basicdata.entity.BasicdataGoodsShelfEntity;
import com.logpm.basicdata.entity.BasicdataWarehouseEntity;
import com.logpm.basicdata.excel.BasicdataGoodsAreaExcel;
import com.logpm.basicdata.excel.BasicdataGoodsAreaexportExcel;
import com.logpm.basicdata.excel.BasicdatavisualizationSheetOne;
import com.logpm.basicdata.excel.GoodsAreaSheetInfoBean;
import com.logpm.basicdata.excel.*;
import com.logpm.basicdata.feign.IBasicdataWarehouseClient;
import com.logpm.basicdata.mapper.BasicdataGoodsAllocationMapper;
import com.logpm.basicdata.mapper.BasicdataGoodsAreaMapper;
@ -52,6 +49,8 @@ import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.SpringUtil;
import org.springblade.system.feign.IUserClient;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -91,6 +90,8 @@ public class BasicdataGoodsAreaServiceImpl extends BaseServiceImpl<BasicdataGood
private final IBasicdataWarehouseClient basicdataWarehouseClient;
private final IUserClient userClient;
@Override
public IPage<BasicdataGoodsAreaVO> selectWarehouseGoodsAreaPage(IPage<BasicdataGoodsAreaVO> page, BasicdataGoodsAreaVO basicdataGoodsAreaVO) {
@ -324,10 +325,15 @@ public class BasicdataGoodsAreaServiceImpl extends BaseServiceImpl<BasicdataGood
baseMapper.sqlMode();
//sheetOne
List<BasicdatavisualizationSheetOne> basicdatavisualizationSheetOnes = baseMapper.exportWarehouseByorderId(areaId);
log.info("warehouseGoodsAreaList>>>>>>>>>>>{}",basicdatavisualizationSheetOnes);
//warehouseGoodsAreaList.forEach(warehouseGoodsArea -> {
// warehouseGoodsArea.setTypeName(DictCache.getValue(DictEnum.YES_NO, WarehouseGoodsArea.getType()));
//});
//sheetTwo
List<BasicdatavisualizationSheetTwo> basicdatavisualizationSheetTwos = baseMapper.exportWarehouseByallocation(areaId);
//sheetThree
List<BasicdatavisualizationSheetThree> basicdatavisualizationSheetThrees = baseMapper.exportWarehouseByStrip(areaId);
//转换上架人
for (BasicdatavisualizationSheetThree basicdatavisualizationSheetThree : basicdatavisualizationSheetThrees) {
basicdatavisualizationSheetThree.setCreateUser(userClient.userInfoById(Long.valueOf(basicdatavisualizationSheetThree.getCreateUser())).getData().getName());
}
try {
String fileName = "仓库数据" + DateUtil.time();
response.setContentType("application/vnd.ms-excel");
@ -337,7 +343,8 @@ public class BasicdataGoodsAreaServiceImpl extends BaseServiceImpl<BasicdataGood
// 构造各个sheet页相关信息
List<GoodsAreaSheetInfoBean> goodsAreaSheetInfoBeans = new LinkedList<>();
goodsAreaSheetInfoBeans.add(new GoodsAreaSheetInfoBean("订单自编号维度",BasicdatavisualizationSheetOne.class,basicdatavisualizationSheetOnes));
//goodsAreaSheetInfoBeans.add(new GoodsAreaSheetInfoBean("货区数据表sheet2",BasicdataGoodsAreaexportExcel.class,warehouseGoodsAreaList));
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();

Loading…
Cancel
Save