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. 67
      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.framework.operatelog.core.annotations.OperateLog;
import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO; 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.customer.vo.CustomerRespVO;
import com.win.module.wms.controller.itembasic.vo.ItembasicExcelVO; import com.win.module.wms.controller.itembasic.vo.ItembasicExcelVO;
import com.win.module.wms.controller.warehouse.vo.WarehouseImportExcelVo; import com.win.module.wms.controller.warehouse.vo.WarehouseImportExcelVo;
@ -179,7 +180,7 @@ public class WarehouseController {
@RequestParam(value = "mode") Integer mode, @RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception { @RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<WarehouseImportExcelVo> list = ExcelUtils.read(file, WarehouseImportExcelVo.class); 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<>(); Map<String, Object> returnMap = new HashMap<>();
returnMap.put("errorCount", errorList.size()); returnMap.put("errorCount", errorList.size());
if(!errorList.isEmpty()) { if(!errorList.isEmpty()) {
@ -188,6 +189,7 @@ public class WarehouseController {
} }
return success(returnMap); return success(returnMap);
} }
@PostMapping("/senior") @PostMapping("/senior")
@Operation(summary = "高级搜索获得物品基本信息分页") @Operation(summary = "高级搜索获得物品基本信息分页")
@PreAuthorize("@ss.hasPermission('wms:warehouse:query')") @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.framework.common.pojo.PageResult;
import com.win.module.wms.controller.areabasic.vo.AreabasicImportExcelVo; 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.warehouse.vo.*;
import com.win.module.wms.controller.workshop.vo.WorkshopImportExcelVo; import com.win.module.wms.controller.workshop.vo.WorkshopImportExcelVo;
import com.win.module.wms.dal.dataobject.areabasic.AreabasicDO; import com.win.module.wms.dal.dataobject.areabasic.AreabasicDO;
@ -37,4 +39,6 @@ public interface WarehouseConvert {
WarehouseDO convert(WarehouseImportExcelVo bean); 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<WarehouseDO> getWarehouseList(WarehouseExportReqVO exportReqVO);
List<WarehouseImportExcelVo> importWarehouseList(List<WarehouseImportExcelVo> warehouses, Integer mode, boolean updatePart); List<WarehouseImportErrorVO> importWarehouseList(List<WarehouseImportExcelVo> warehouses, Integer mode, boolean updatePart);
/** /**

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

Loading…
Cancel
Save