Browse Source

仓库管理

master
廉洪喜 2 years ago
parent
commit
e5d23c7fa2
  1. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/warehouse/WarehouseController.java
  2. 52
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/warehouse/vo/WarehouseImportErrorVO.java
  3. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/warehouse/WarehouseConvert.java
  4. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/warehouse/WarehouseService.java
  5. 89
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/warehouse/WarehouseServiceImpl.java

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/warehouse/WarehouseController.java

@ -9,6 +9,7 @@ import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog;
import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.wms.controller.bom.vo.BomImportErrorVO;
import com.win.module.wms.controller.customer.vo.CustomerRespVO;
import com.win.module.wms.controller.itembasic.vo.ItembasicExcelVO;
import com.win.module.wms.controller.warehouse.vo.WarehouseImportExcelVo;
@ -179,7 +180,7 @@ public class WarehouseController {
@RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<WarehouseImportExcelVo> list = ExcelUtils.read(file, WarehouseImportExcelVo.class);
List<WarehouseImportExcelVo> errorList = warehouseService.importWarehouseList(list, mode, updatePart);
List<WarehouseImportErrorVO> errorList = warehouseService.importWarehouseList(list, mode, updatePart);
Map<String, Object> returnMap = new HashMap<>();
returnMap.put("errorCount", errorList.size());
if(!errorList.isEmpty()) {
@ -188,6 +189,7 @@ public class WarehouseController {
}
return success(returnMap);
}
@PostMapping("/senior")
@Operation(summary = "高级搜索获得物品基本信息分页")
@PreAuthorize("@ss.hasPermission('wms:warehouse:query')")

52
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/warehouse/vo/WarehouseImportErrorVO.java

@ -0,0 +1,52 @@
package com.win.module.wms.controller.warehouse.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.convert.DictConvert;
import com.win.module.wms.enums.DictTypeConstants;
import lombok.Builder;
import lombok.Data;
import lombok.ToString;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
@Builder
@ToString(callSuper = true)
public class WarehouseImportErrorVO {
@ExcelProperty("代码")
private String code;
@ExcelProperty("名称")
private String name;
@ExcelProperty("描述")
private String description;
@ExcelProperty(value = "类型", converter = DictConvert.class)
@DictFormat(DictTypeConstants.WAREHOUSE_TYPE)
private String type;
@ExcelProperty(value = "是否可用", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String available;
@ExcelProperty(value = "生效时间")
@ColumnWidth(value = 16)
private LocalDateTime activeTime;
@ExcelProperty(value = "失效时间")
@ColumnWidth(value = 16)
private LocalDateTime expireTime;
@ExcelProperty("备注")
private String remark;
@ExcelProperty(value = "导入状态", index = 0)
private String importStatus;
@ExcelProperty(value = "导入说明", index = 1)
private String importRemark;
}

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/warehouse/WarehouseConvert.java

@ -5,6 +5,8 @@ import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.areabasic.vo.AreabasicImportExcelVo;
import com.win.module.wms.controller.bom.vo.BomImportErrorVO;
import com.win.module.wms.controller.bom.vo.BomImportExcelVo;
import com.win.module.wms.controller.warehouse.vo.*;
import com.win.module.wms.controller.workshop.vo.WorkshopImportExcelVo;
import com.win.module.wms.dal.dataobject.areabasic.AreabasicDO;
@ -37,4 +39,6 @@ public interface WarehouseConvert {
WarehouseDO convert(WarehouseImportExcelVo bean);
WarehouseImportErrorVO convert2(WarehouseDO bean);
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/warehouse/WarehouseService.java

@ -79,7 +79,7 @@ public interface WarehouseService {
List<WarehouseDO> getWarehouseList(WarehouseExportReqVO exportReqVO);
List<WarehouseImportExcelVo> importWarehouseList(List<WarehouseImportExcelVo> warehouses, Integer mode, boolean updatePart);
List<WarehouseImportErrorVO> importWarehouseList(List<WarehouseImportExcelVo> warehouses, Integer mode, boolean updatePart);
/**

89
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/warehouse/WarehouseServiceImpl.java

@ -8,12 +8,11 @@ import com.win.framework.common.exception.ServiceException;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.datapermission.core.util.DataPermissionUtils;
import com.win.module.wms.controller.warehouse.vo.WarehouseCreateReqVO;
import com.win.module.wms.controller.warehouse.vo.WarehouseExportReqVO;
import com.win.module.wms.controller.warehouse.vo.WarehousePageReqVO;
import com.win.module.wms.controller.warehouse.vo.WarehouseUpdateReqVO;
import com.win.module.wms.controller.warehouse.vo.WarehouseImportExcelVo;
import com.win.module.wms.controller.bom.vo.BomImportErrorVO;
import com.win.module.wms.controller.warehouse.vo.*;
import com.win.module.wms.convert.bom.BomConvert;
import com.win.module.wms.convert.warehouse.WarehouseConvert;
import com.win.module.wms.dal.dataobject.bom.BomDO;
import com.win.module.wms.dal.dataobject.warehouse.WarehouseDO;
import com.win.module.wms.dal.dataobject.packageMassage.PackageDO;
import com.win.module.wms.dal.dataobject.warehouse.WarehouseDO;
@ -95,51 +94,57 @@ public class WarehouseServiceImpl implements WarehouseService {
return warehouseMapper.selectSenior(conditions);
}
public List<WarehouseImportExcelVo> importWarehouseList(List<WarehouseImportExcelVo> warehouses, Integer mode, boolean updatePart) {
private String validateWarehouseImport( WarehouseDO warehouse ){
StringBuilder message = new StringBuilder();
try {
validateWarehouseExists(null);
} catch (ServiceException ex) {
message.append(ex.getMessage()).append(",");
}
try {
validateCodeExists(null,warehouse.getCode());
} catch (ServiceException ex) {
message.append(ex.getMessage()).append(",");
}
try {
validateAvailableExists(warehouse.getAvailable());
} catch (ServiceException ex) {
message.append(ex.getMessage()).append(",");
}
return message.toString();
}
public List<WarehouseImportErrorVO> importWarehouseList(List<WarehouseImportExcelVo> warehouses, Integer mode, boolean updatePart) {
if (CollUtil.isEmpty(warehouses)) {
throw exception(WAREHOUSE_IMPORT_LIST_IS_EMPTY);
}
List<WarehouseImportExcelVo> errorList = new ArrayList<>();
List<WarehouseImportErrorVO> errorList = new ArrayList<>();
warehouses.forEach(warehouse -> {
WarehouseDO WarehouseDO = WarehouseConvert.INSTANCE.convert(warehouse);
// 校验,判断是否有不符合的原因
String massage = "";
if(mode != null){
try {
validateWarehouseExists(null);
} catch (ServiceException ex) {
massage += ex.getMessage() + ",";
}
try {
validateCodeExists(null,warehouse.getCode());
} catch (ServiceException ex) {
massage += ex.getMessage() + ",";
}
try {
validateAvailableExists(warehouse.getAvailable());
} catch (ServiceException ex) {
massage += ex.getMessage() + ",";
}
}
if(StrUtil.isNotEmpty(massage)){
massage.substring(0,massage.length()-1);
errorList.add(warehouse);
String massage =this.validateWarehouseImport(WarehouseDO);
boolean flag = true;
if(!massage.isEmpty()){
WarehouseImportErrorVO importErrorVO = WarehouseConvert.INSTANCE.convert2(WarehouseDO);
importErrorVO.setImportStatus("失败");
importErrorVO.setImportRemark(massage.substring(0, massage.length() - 1));
errorList.add(importErrorVO);
flag = false;
}
// 判断如果不存在,在进行插入
if(errorList == null){ WarehouseDO existWarehouse = warehouseMapper.selectByCode(warehouse.getCode());
if (existWarehouse == null&& mode != 3) {
warehouseMapper.insert(WarehouseConvert.INSTANCE.convert(warehouse));
}
else if (existWarehouse != null && mode != 2) {// 如果存在,判断是否允许更新
WarehouseDO warehouseDO = WarehouseConvert.INSTANCE.convert(warehouse);
warehouseDO.setId(existWarehouse.getId());
warehouseMapper.updateById(warehouseDO);}
if(flag) {
WarehouseDO existWarehouse = warehouseMapper.selectByCode(warehouse.getCode());
if (existWarehouse == null && mode != 3) {
warehouseMapper.insert(WarehouseConvert.INSTANCE.convert(warehouse));
} else if (existWarehouse != null && mode != 2) {
// 如果存在,判断是否允许更新
WarehouseDO warehouseDO = WarehouseConvert.INSTANCE.convert(warehouse);
warehouseDO.setId(existWarehouse.getId());
warehouseMapper.updateById(warehouseDO);
}
}
});
//错误不为空并非部分更新,手工回滚
if(!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return errorList;
}
@ -190,7 +195,7 @@ public class WarehouseServiceImpl implements WarehouseService {
}
@Override
public WarehouseDO WarehouseExist(String code) {
QueryWrapper queryWrapper = new QueryWrapper();
QueryWrapper<WarehouseDO> queryWrapper = new QueryWrapper();
queryWrapper.eq("code",code);
WarehouseDO warehouseDO = warehouseMapper.selectOne(queryWrapper);
if(warehouseDO != null&& warehouseDO.getAvailable().equals("TRUE")){

Loading…
Cancel
Save