no message
parent
4aa8f25ae8
commit
07057ceed7
|
|
@ -2,6 +2,7 @@ package net.lab1024.sa.admin.module.business.wms.base.address.controller;
|
||||||
|
|
||||||
import jakarta.servlet.ServletOutputStream;
|
import jakarta.servlet.ServletOutputStream;
|
||||||
import jakarta.servlet.http.HttpServletResponse;
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.lab1024.sa.admin.module.business.wms.base.address.domain.entity.AddressEntity;
|
import net.lab1024.sa.admin.module.business.wms.base.address.domain.entity.AddressEntity;
|
||||||
import net.lab1024.sa.admin.module.business.wms.base.address.domain.form.AddressAddForm;
|
import net.lab1024.sa.admin.module.business.wms.base.address.domain.form.AddressAddForm;
|
||||||
import net.lab1024.sa.admin.module.business.wms.base.address.domain.form.AddressQueryForm;
|
import net.lab1024.sa.admin.module.business.wms.base.address.domain.form.AddressQueryForm;
|
||||||
|
|
@ -31,6 +32,8 @@ import org.springframework.web.multipart.MultipartFile;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import static java.lang.Thread.sleep;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 收货地址 Controller
|
* 收货地址 Controller
|
||||||
*
|
*
|
||||||
|
|
@ -41,6 +44,7 @@ import java.util.List;
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@Tag(name = "收货地址")
|
@Tag(name = "收货地址")
|
||||||
|
@Slf4j
|
||||||
public class AddressController {
|
public class AddressController {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
|
|
@ -124,6 +128,17 @@ public class AddressController {
|
||||||
@GetMapping("/address/exportAddress/{taskId}")
|
@GetMapping("/address/exportAddress/{taskId}")
|
||||||
@SaCheckPermission("address:exportAddress")
|
@SaCheckPermission("address:exportAddress")
|
||||||
public void exportAddress(@PathVariable String taskId, HttpServletResponse response) {
|
public void exportAddress(@PathVariable String taskId, HttpServletResponse response) {
|
||||||
|
long startTime = System.currentTimeMillis();
|
||||||
addressQueryService.exportAddress(taskId, response);
|
addressQueryService.exportAddress(taskId, response);
|
||||||
|
long endTime = System.currentTimeMillis();
|
||||||
|
log.info("导出地址数据完成,耗时:{}ms", endTime - startTime);
|
||||||
|
if (endTime - startTime <= 1000) {
|
||||||
|
try {
|
||||||
|
Thread.sleep(2000);
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
log.error("异常", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
exportTaskService.cleanupTask(taskId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -14,24 +14,16 @@ import net.lab1024.sa.admin.module.business.wms.base.address.domain.vo.AddressEx
|
||||||
import net.lab1024.sa.admin.module.business.wms.base.address.domain.vo.AddressVO;
|
import net.lab1024.sa.admin.module.business.wms.base.address.domain.vo.AddressVO;
|
||||||
import net.lab1024.sa.admin.module.business.wms.base.address.manager.AddressManager;
|
import net.lab1024.sa.admin.module.business.wms.base.address.manager.AddressManager;
|
||||||
import net.lab1024.sa.admin.module.business.wms.base.address.service.AddressQueryService;
|
import net.lab1024.sa.admin.module.business.wms.base.address.service.AddressQueryService;
|
||||||
import net.lab1024.sa.admin.module.business.wms.base.item.domain.vo.ItemsExcelVO;
|
|
||||||
import net.lab1024.sa.admin.module.business.wms.excel.ExportTaskService;
|
import net.lab1024.sa.admin.module.business.wms.excel.ExportTaskService;
|
||||||
import net.lab1024.sa.base.common.domain.PageResult;
|
import net.lab1024.sa.base.common.domain.PageResult;
|
||||||
import net.lab1024.sa.base.common.exception.BusinessException;
|
import net.lab1024.sa.base.common.exception.BusinessException;
|
||||||
import net.lab1024.sa.base.common.util.SmartExcelUtil;
|
import net.lab1024.sa.base.common.util.SmartExcelUtil;
|
||||||
import net.lab1024.sa.base.common.util.SmartPageUtil;
|
import net.lab1024.sa.base.common.util.SmartPageUtil;
|
||||||
import net.lab1024.sa.base.common.util.SmartResponseUtil;
|
|
||||||
import net.lab1024.sa.base.module.support.dict.constant.DictConst;
|
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
import org.apache.ibatis.cursor.Cursor;
|
import org.apache.ibatis.cursor.Cursor;
|
||||||
import org.apache.poi.ss.usermodel.IndexedColors;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.io.ByteArrayOutputStream;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.OutputStream;
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
|
@ -239,7 +231,7 @@ public class AddressQueryServiceImpl implements AddressQueryService {
|
||||||
exportTaskService.updateProgress(taskId, -1);
|
exportTaskService.updateProgress(taskId, -1);
|
||||||
} finally {
|
} finally {
|
||||||
exportTaskService.updateProgress(taskId, 100);
|
exportTaskService.updateProgress(taskId, 100);
|
||||||
exportTaskService.cleanupTask(taskId);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
package net.lab1024.sa.admin.module.business.wms.base.item.controller;
|
package net.lab1024.sa.admin.module.business.wms.base.item.controller;
|
||||||
|
|
||||||
import jakarta.servlet.http.HttpServletResponse;
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.lab1024.sa.admin.module.business.wms.base.item.domain.entity.ItemEntity;
|
import net.lab1024.sa.admin.module.business.wms.base.item.domain.entity.ItemEntity;
|
||||||
import net.lab1024.sa.admin.module.business.wms.base.item.domain.form.ItemAddForm;
|
import net.lab1024.sa.admin.module.business.wms.base.item.domain.form.ItemAddForm;
|
||||||
import net.lab1024.sa.admin.module.business.wms.base.item.domain.form.ItemQueryForm;
|
import net.lab1024.sa.admin.module.business.wms.base.item.domain.form.ItemQueryForm;
|
||||||
|
|
@ -14,6 +15,7 @@ import net.lab1024.sa.admin.module.business.wms.base.item.domain.form.ItemAddFor
|
||||||
import net.lab1024.sa.admin.module.business.wms.base.item.domain.form.ItemQueryForm;
|
import net.lab1024.sa.admin.module.business.wms.base.item.domain.form.ItemQueryForm;
|
||||||
import net.lab1024.sa.admin.module.business.wms.base.item.service.ItemQueryService;
|
import net.lab1024.sa.admin.module.business.wms.base.item.service.ItemQueryService;
|
||||||
import net.lab1024.sa.admin.module.business.wms.base.item.service.ItemService;
|
import net.lab1024.sa.admin.module.business.wms.base.item.service.ItemService;
|
||||||
|
import net.lab1024.sa.admin.module.business.wms.excel.ExportTaskService;
|
||||||
import net.lab1024.sa.base.common.domain.PageResult;
|
import net.lab1024.sa.base.common.domain.PageResult;
|
||||||
import net.lab1024.sa.base.common.domain.RequestUser;
|
import net.lab1024.sa.base.common.domain.RequestUser;
|
||||||
import net.lab1024.sa.base.common.domain.ValidateList;
|
import net.lab1024.sa.base.common.domain.ValidateList;
|
||||||
|
|
@ -36,12 +38,13 @@ import java.util.List;
|
||||||
* 物料信息 Controller
|
* 物料信息 Controller
|
||||||
*
|
*
|
||||||
* @author 霍锦
|
* @author 霍锦
|
||||||
* @since 2024-11-25 17:08:18
|
* @since 2024-11-25 17:08:18
|
||||||
* copyright 友仓
|
* copyright 友仓
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@Tag(name = "物料信息")
|
@Tag(name = "物料信息")
|
||||||
|
@Slf4j
|
||||||
public class ItemController {
|
public class ItemController {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
|
|
@ -50,6 +53,9 @@ public class ItemController {
|
||||||
@Resource
|
@Resource
|
||||||
private ItemQueryService itemQueryService;
|
private ItemQueryService itemQueryService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ExportTaskService exportTaskService;
|
||||||
|
|
||||||
@Operation(summary = "分页查询 @author 霍锦")
|
@Operation(summary = "分页查询 @author 霍锦")
|
||||||
@PostMapping("/item/queryPage")
|
@PostMapping("/item/queryPage")
|
||||||
@SaCheckPermission("item:query")
|
@SaCheckPermission("item:query")
|
||||||
|
|
@ -107,11 +113,20 @@ public class ItemController {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Operation(summary = "导出 霍锦")
|
@Operation(summary = "导出 霍锦")
|
||||||
@GetMapping("/item/exportItems")
|
@GetMapping("/item/exportItems/{taskId}")
|
||||||
@SaCheckPermission("item:exportItems")
|
@SaCheckPermission("item:exportItems")
|
||||||
@OperateLog
|
@OperateLog
|
||||||
public void exportItems(HttpServletResponse response) throws IOException {
|
public void exportItems(@PathVariable String taskId, HttpServletResponse response){
|
||||||
List<ItemsExcelVO> itemsList = itemQueryService.queryItemsExcelVO();
|
long startTime = System.currentTimeMillis();
|
||||||
SmartExcelUtil.exportExcel(response, "物料信息.xlsx", "物料", ItemsExcelVO.class, itemsList);
|
itemQueryService.exportItem(taskId, response);
|
||||||
|
log.info("导出物料数据完成,耗时:{}ms", System.currentTimeMillis() - startTime);
|
||||||
|
if (System.currentTimeMillis() - startTime <= 1000) {
|
||||||
|
try {
|
||||||
|
Thread.sleep(2000);
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
log.error("异常", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
exportTaskService.cleanupTask(taskId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
package net.lab1024.sa.admin.module.business.wms.base.item.dao;
|
package net.lab1024.sa.admin.module.business.wms.base.item.dao;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import net.lab1024.sa.admin.module.business.wms.base.address.domain.vo.AddressVO;
|
||||||
import net.lab1024.sa.admin.module.business.wms.base.item.domain.entity.ItemEntity;
|
import net.lab1024.sa.admin.module.business.wms.base.item.domain.entity.ItemEntity;
|
||||||
import net.lab1024.sa.admin.module.business.wms.base.item.domain.form.ItemQueryForm;
|
import net.lab1024.sa.admin.module.business.wms.base.item.domain.form.ItemQueryForm;
|
||||||
import net.lab1024.sa.admin.module.business.wms.base.item.domain.vo.ItemVO;
|
import net.lab1024.sa.admin.module.business.wms.base.item.domain.vo.ItemVO;
|
||||||
|
|
@ -31,4 +33,7 @@ public interface ItemDao extends BaseMapper<ItemEntity> {
|
||||||
*/
|
*/
|
||||||
List<ItemVO> queryPage(Page page, @Param("queryForm") ItemQueryForm queryForm);
|
List<ItemVO> queryPage(Page page, @Param("queryForm") ItemQueryForm queryForm);
|
||||||
|
|
||||||
|
//游标分页
|
||||||
|
List<ItemVO> listByCursor(@Param("lastId") Long lastId, @Param("pageSize") int pageSize);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
package net.lab1024.sa.admin.module.business.wms.base.item.domain.vo;
|
package net.lab1024.sa.admin.module.business.wms.base.item.domain.vo;
|
||||||
|
|
||||||
import cn.idev.excel.annotation.ExcelProperty;
|
import cn.idev.excel.annotation.ExcelProperty;
|
||||||
|
import cn.idev.excel.annotation.write.style.ColumnWidth;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
@ -10,6 +11,7 @@ import lombok.NoArgsConstructor;
|
||||||
@Builder
|
@Builder
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
|
@ColumnWidth(20)
|
||||||
public class ItemsExcelVO {
|
public class ItemsExcelVO {
|
||||||
|
|
||||||
@ExcelProperty("物料编码")
|
@ExcelProperty("物料编码")
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package net.lab1024.sa.admin.module.business.wms.base.item.service;
|
package net.lab1024.sa.admin.module.business.wms.base.item.service;
|
||||||
|
|
||||||
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
import net.lab1024.sa.admin.module.business.wms.base.item.domain.entity.ItemEntity;
|
import net.lab1024.sa.admin.module.business.wms.base.item.domain.entity.ItemEntity;
|
||||||
import net.lab1024.sa.admin.module.business.wms.base.item.domain.form.ItemQueryForm;
|
import net.lab1024.sa.admin.module.business.wms.base.item.domain.form.ItemQueryForm;
|
||||||
import net.lab1024.sa.admin.module.business.wms.base.item.domain.form.ItemSelect;
|
import net.lab1024.sa.admin.module.business.wms.base.item.domain.form.ItemSelect;
|
||||||
|
|
@ -67,4 +68,6 @@ public interface ItemQueryService {
|
||||||
* @return List<ItemsExcelVO>
|
* @return List<ItemsExcelVO>
|
||||||
*/
|
*/
|
||||||
List<ItemsExcelVO> queryItemsExcelVO();
|
List<ItemsExcelVO> queryItemsExcelVO();
|
||||||
|
|
||||||
|
void exportItem(String taskId, HttpServletResponse response);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,9 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.google.common.collect.Maps;
|
import com.google.common.collect.Maps;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
|
import net.lab1024.sa.admin.module.business.wms.base.address.domain.vo.AddressExcelVO;
|
||||||
|
import net.lab1024.sa.admin.module.business.wms.base.address.domain.vo.AddressVO;
|
||||||
import net.lab1024.sa.admin.module.business.wms.base.item.dao.ItemDao;
|
import net.lab1024.sa.admin.module.business.wms.base.item.dao.ItemDao;
|
||||||
import net.lab1024.sa.admin.module.business.wms.base.item.domain.entity.ItemEntity;
|
import net.lab1024.sa.admin.module.business.wms.base.item.domain.entity.ItemEntity;
|
||||||
import net.lab1024.sa.admin.module.business.wms.base.item.domain.form.ItemQueryForm;
|
import net.lab1024.sa.admin.module.business.wms.base.item.domain.form.ItemQueryForm;
|
||||||
|
|
@ -12,7 +15,9 @@ import net.lab1024.sa.admin.module.business.wms.base.item.domain.vo.ItemVO;
|
||||||
import net.lab1024.sa.admin.module.business.wms.base.item.domain.vo.ItemsExcelVO;
|
import net.lab1024.sa.admin.module.business.wms.base.item.domain.vo.ItemsExcelVO;
|
||||||
import net.lab1024.sa.admin.module.business.wms.base.item.manager.ItemManager;
|
import net.lab1024.sa.admin.module.business.wms.base.item.manager.ItemManager;
|
||||||
import net.lab1024.sa.admin.module.business.wms.base.item.service.ItemQueryService;
|
import net.lab1024.sa.admin.module.business.wms.base.item.service.ItemQueryService;
|
||||||
|
import net.lab1024.sa.admin.module.business.wms.excel.ExportTaskService;
|
||||||
import net.lab1024.sa.base.common.domain.PageResult;
|
import net.lab1024.sa.base.common.domain.PageResult;
|
||||||
|
import net.lab1024.sa.base.common.util.SmartExcelUtil;
|
||||||
import net.lab1024.sa.base.common.util.SmartPageUtil;
|
import net.lab1024.sa.base.common.util.SmartPageUtil;
|
||||||
import net.lab1024.sa.base.module.support.dict.constant.DictConst;
|
import net.lab1024.sa.base.module.support.dict.constant.DictConst;
|
||||||
import net.lab1024.sa.base.module.support.dict.service.DictService;
|
import net.lab1024.sa.base.module.support.dict.service.DictService;
|
||||||
|
|
@ -38,6 +43,9 @@ public class ItemQueryServiceImpl implements ItemQueryService {
|
||||||
@Resource
|
@Resource
|
||||||
private DictService dictService;
|
private DictService dictService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ExportTaskService exportTaskService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分页查询
|
* 分页查询
|
||||||
*
|
*
|
||||||
|
|
@ -158,4 +166,32 @@ public class ItemQueryServiceImpl implements ItemQueryService {
|
||||||
)
|
)
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void exportItem(String taskId, HttpServletResponse response){
|
||||||
|
try {
|
||||||
|
SmartExcelUtil.batchExportExcel(
|
||||||
|
response,
|
||||||
|
"物料信息.xlsx",
|
||||||
|
"物料信息",
|
||||||
|
ItemsExcelVO.class,
|
||||||
|
taskId,
|
||||||
|
itemManager.count(),
|
||||||
|
(lastId, pageSize) -> itemDao.listByCursor(lastId, pageSize),
|
||||||
|
item -> ItemsExcelVO.builder()
|
||||||
|
.itemCode(item.getItemCode())
|
||||||
|
.itemName(item.getItemName())
|
||||||
|
.itemType(dictService.getDictDataLabel(DictConst.ITEM_TYPE.getValue(), item.getItemType()))
|
||||||
|
.unit(dictService.getDictDataLabel(DictConst.ITEM_UNIT.getValue(), item.getUnit()))
|
||||||
|
.disabledFlag(item.getDisabledFlag() ? "启用" : "禁用")
|
||||||
|
.build(),
|
||||||
|
ItemVO::getItemId,
|
||||||
|
2000,
|
||||||
|
(processed, progress) -> exportTaskService.updateProgress(taskId, progress)
|
||||||
|
);
|
||||||
|
} catch (Exception e) {
|
||||||
|
exportTaskService.updateProgress(taskId, -1);
|
||||||
|
} finally {
|
||||||
|
exportTaskService.updateProgress(taskId, 100);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ public class ExportTaskService {
|
||||||
}
|
}
|
||||||
|
|
||||||
public Long getProgress(String taskId) {
|
public Long getProgress(String taskId) {
|
||||||
return progressMap.getOrDefault(taskId, -1L);
|
return progressMap.getOrDefault(taskId, 0L);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void cleanupTask(String taskId) {
|
public void cleanupTask(String taskId) {
|
||||||
|
|
|
||||||
|
|
@ -33,5 +33,18 @@
|
||||||
ORDER BY t_item.item_code
|
ORDER BY t_item.item_code
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="listByCursor" resultType="net.lab1024.sa.admin.module.business.wms.base.item.domain.vo.ItemVO">
|
||||||
|
SELECT t_item.item_id,
|
||||||
|
t_item.item_code,
|
||||||
|
t_item.item_name,
|
||||||
|
t_item.item_type,
|
||||||
|
t_item.unit,
|
||||||
|
t_item.disabled_flag
|
||||||
|
FROM t_item
|
||||||
|
WHERE t_item.item_id > #{lastId}
|
||||||
|
ORDER BY t_item.item_id ASC -- 必须升序
|
||||||
|
LIMIT #{pageSize}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
||||||
|
|
@ -106,7 +106,7 @@
|
||||||
<AppenderRef ref="druidSlowSqlLog"/>
|
<AppenderRef ref="druidSlowSqlLog"/>
|
||||||
</logger>
|
</logger>
|
||||||
|
|
||||||
<Root level="warn">
|
<Root level="error">
|
||||||
<AppenderRef ref="Console"/>
|
<AppenderRef ref="Console"/>
|
||||||
<AppenderRef ref="debug"/>
|
<AppenderRef ref="debug"/>
|
||||||
<AppenderRef ref="info"/>
|
<AppenderRef ref="info"/>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue