库位导入

main
HUOJIN\霍先森 2025-03-17 00:42:51 +08:00
parent 995bf973d8
commit 59b4c78226
5 changed files with 65 additions and 15 deletions

View File

@ -86,7 +86,7 @@ public class AreaService {
*/
public ResponseDTO<String> batchDelete(List<Long> idList) {
if (CollectionUtils.isEmpty(idList)) {
return ResponseDTO.error(UserErrorCode.PARAM_ERROR, UserErrorCode.PARAM_ERROR.getMsg());
return ResponseDTO.userErrorParam(UserErrorCode.PARAM_ERROR.getMsg());
}
JoinerResult joiner = JoinerResult.createJoiner();
@ -119,7 +119,7 @@ public class AreaService {
*/
public ResponseDTO<String> delete(Long areaId) {
if (null == areaId) {
return ResponseDTO.error(UserErrorCode.PARAM_ERROR, UserErrorCode.PARAM_ERROR.getMsg());
return ResponseDTO.userErrorParam(UserErrorCode.PARAM_ERROR.getMsg());
}
AreaEntity area = areaManager.queryArea(areaId);

View File

@ -86,7 +86,7 @@ public class ItemService {
*/
public ResponseDTO<String> batchDelete(List<Long> idList) {
if (CollectionUtils.isEmpty(idList)) {
return ResponseDTO.error(UserErrorCode.PARAM_ERROR, UserErrorCode.PARAM_ERROR.getMsg());
return ResponseDTO.userErrorParam(UserErrorCode.PARAM_ERROR.getMsg());
}
itemManager.removeBatchByIds(idList);
@ -104,7 +104,7 @@ public class ItemService {
*/
public ResponseDTO<String> delete(Long itemId) {
if (null == itemId) {
return ResponseDTO.error(UserErrorCode.PARAM_ERROR, UserErrorCode.PARAM_ERROR.getMsg());
return ResponseDTO.userErrorParam(UserErrorCode.PARAM_ERROR.getMsg());
}
itemDao.deleteById(itemId);

View File

@ -16,6 +16,7 @@ import io.swagger.v3.oas.annotations.Operation;
import cn.dev33.satoken.annotation.SaCheckPermission;
import jakarta.annotation.Resource;
import jakarta.validation.Valid;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
@ -94,4 +95,11 @@ public class LocationController {
public ResponseDTO<String> multipleInsert(@RequestBody @Valid MultipleInsert multipleInsert) {
return locationService.multipleInsert(multipleInsert);
}
@Operation(summary = "导入 霍锦")
@PostMapping("/location/importLocations")
@SaCheckPermission("location:importLocations")
public ResponseDTO<String> importLocations(@RequestParam MultipartFile file) {
return locationService.importLocations(file);
}
}

View File

@ -0,0 +1,19 @@
package net.lab1024.sa.admin.module.business.base.location.domain.form;
import cn.idev.excel.annotation.ExcelProperty;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class LocationsImportForm {
@ExcelProperty("库区")
private String areaName;
@ExcelProperty("库位编码")
private String locationCode;
@ExcelProperty("库位类型")
private String locationType;
}

View File

@ -1,24 +1,22 @@
package net.lab1024.sa.admin.module.business.base.location.service;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import com.alibaba.fastjson.JSONObject;
import cn.idev.excel.FastExcel;
import com.alibaba.fastjson.JSON;
import lombok.extern.slf4j.Slf4j;
import net.lab1024.sa.admin.constant.UsageStatusEnum;
import net.lab1024.sa.admin.module.business.base.location.dao.LocationDao;
import net.lab1024.sa.admin.module.business.base.location.domain.entity.LocationEntity;
import net.lab1024.sa.admin.module.business.base.location.domain.form.LocationAddForm;
import net.lab1024.sa.admin.module.business.base.location.domain.form.LocationUpdateForm;
import net.lab1024.sa.admin.module.business.base.location.domain.form.MultipleAdjust;
import net.lab1024.sa.admin.module.business.base.location.domain.form.MultipleInsert;
import net.lab1024.sa.admin.module.business.base.location.domain.form.*;
import net.lab1024.sa.admin.module.business.base.location.manager.LocationManager;
import net.lab1024.sa.admin.util.AdminRequestUtil;
import net.lab1024.sa.admin.util.JoinerResult;
import net.lab1024.sa.admin.util.ResponseDTOUtils;
import net.lab1024.sa.base.common.code.UserErrorCode;
import net.lab1024.sa.base.common.exception.BusinessException;
import net.lab1024.sa.base.common.util.SmartBeanUtil;
import net.lab1024.sa.base.common.domain.ResponseDTO;
import net.lab1024.sa.base.common.util.SmartRequestUtil;
@ -27,6 +25,7 @@ import net.lab1024.sa.base.module.support.dict.service.DictCacheService;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service;
import jakarta.annotation.Resource;
import org.springframework.web.multipart.MultipartFile;
/**
* Service
@ -37,6 +36,7 @@ import jakarta.annotation.Resource;
*/
@Service
@Slf4j
public class LocationService {
@Resource
@ -96,7 +96,7 @@ public class LocationService {
*/
public ResponseDTO<String> batchDelete(List<Long> idList) {
if (CollectionUtils.isEmpty(idList)) {
return ResponseDTO.error(UserErrorCode.PARAM_ERROR, UserErrorCode.PARAM_ERROR.getMsg());
return ResponseDTO.userErrorParam(UserErrorCode.PARAM_ERROR.getMsg());
}
locationManager.removeBatchByIds(idList);
@ -113,7 +113,7 @@ public class LocationService {
*/
public ResponseDTO<String> delete(Long locationId) {
if (null == locationId) {
return ResponseDTO.error(UserErrorCode.PARAM_ERROR, UserErrorCode.PARAM_ERROR.getMsg());
return ResponseDTO.userErrorParam(UserErrorCode.PARAM_ERROR.getMsg());
}
locationDao.deleteById(locationId);
@ -131,7 +131,7 @@ public class LocationService {
public ResponseDTO<String> multipleAdjust(MultipleAdjust multipleAdjust) {
if (CollectionUtils.isEmpty(multipleAdjust.getLocationIds())) {
return ResponseDTO.error(UserErrorCode.PARAM_ERROR, UserErrorCode.PARAM_ERROR.getMsg());
return ResponseDTO.userErrorParam(UserErrorCode.PARAM_ERROR.getMsg());
}
//查询库位
@ -247,5 +247,28 @@ public class LocationService {
return ResponseDTOUtils.buildResponseDTO(joiner);
}
/**
*
*
* @param file
* @return ResponseDTO<String>
*/
public ResponseDTO<String> importLocations(MultipartFile file) {
List<LocationsImportForm> dataList;
try {
dataList = FastExcel.read(file.getInputStream()).head(LocationsImportForm.class)
.sheet()
.doReadSync();
} catch (IOException e) {
throw new BusinessException("数据格式存在问题,无法读取");
}
if (CollectionUtils.isEmpty(dataList)) {
return ResponseDTO.userErrorParam("数据为空");
}
return ResponseDTO.okMsg("成功导入" + dataList.size() + "条,具体数据为:" + JSON.toJSONString(dataList));
}
}