Browse Source

生成代码:物料仓库默认配置管理/物料库区配置管理

master_hella_20240701
chenfang 2 years ago
parent
commit
a852ee5703
  1. 1
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/DictTypeConstants.java
  2. 79
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/itemarea/ItemareaController.java
  3. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/itemarea/vo/ItemareaBaseVO.java
  4. 30
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/itemarea/vo/ItemareaExcelVO.java
  5. 59
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/itemarea/vo/ItemareaImportVO.java
  6. 10
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/itemarea/ItemareaConvert.java
  7. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/itemarea/ItemareaDetailMapper.java
  8. 10
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/itemarea/ItemareaMapper.java
  9. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itemarea/ItemareaDetailService.java
  10. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itemarea/ItemareaDetailServiceImpl.java
  11. 18
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itemarea/ItemareaService.java
  12. 17
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itemarea/ItemareaServiceImpl.java

1
win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/DictTypeConstants.java

@ -90,4 +90,5 @@ public interface DictTypeConstants {
String CONTAINER_CONTENT_TYPE = "container_content_type"; // 器具内容类型
String UNPLANNED_ISSUE_REASON = "unplanned_issue_reason"; // 计划外出库原因
String UNPLANNED_RECEIPT_REASON="unplanned_receipt_reason";//计划外入库原因
String MANAGE_MODE="manage_mode";//管理精度
}

79
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/itemarea/ItemareaController.java

@ -1,6 +1,15 @@
package com.win.module.wms.controller.itemarea;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.wms.controller.itemarea.vo.*;
import com.win.module.wms.controller.itembasic.vo.ItembasicExcelVO;
import com.win.module.wms.convert.itembasic.ItembasicConvert;
import com.win.module.wms.dal.dataobject.itemarea.ItemareaDetailDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.itemarea.ItemareaDetailService;
import io.swagger.v3.oas.annotations.Parameters;
import org.springframework.web.bind.annotation.*;
@ -30,7 +39,6 @@ import com.win.framework.operatelog.core.annotations.OperateLog;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.*;
import com.win.module.wms.controller.itemarea.vo.*;
import com.win.module.wms.dal.dataobject.itemarea.ItemareaDO;
import com.win.module.wms.convert.itemarea.ItemareaConvert;
import com.win.module.wms.service.itemarea.ItemareaService;
@ -45,6 +53,12 @@ public class ItemareaController {
@Resource
private ItemareaService itemareaService;
@Resource
private ItemareaDetailService itemareaDetailService;
@Resource
private AdminUserApi userApi;
@PostMapping("/create")
@Operation(summary = "创建物料库区配置")
@PreAuthorize("@ss.hasPermission('wms:itemarea:create')")
@ -95,6 +109,21 @@ public class ItemareaController {
return success(ItemareaConvert.INSTANCE.convertPage(pageResult));
}
@PostMapping("/senior")
@Operation(summary = "高级搜索获得库存修改申请主分页")
@PreAuthorize("@ss.hasPermission('wms:itemarea:query')")
public CommonResult<PageResult<ItemareaRespVO>> getItemareaPageSenior(@Valid @RequestBody CustomConditions conditions) {
PageResult<ItemareaDO> pageResult = itemareaService.getItemareaPageSenior(conditions);
PageResult<ItemareaRespVO> result = ItemareaConvert.INSTANCE.convertPage(pageResult);
for(ItemareaRespVO vo : result.getList()) {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname());
vo.setUpdater(userApi.getUser(Long.valueOf(vo.getUpdater())).getNickname());
}
return success(result);
}
@GetMapping("/export-excel")
@Operation(summary = "导出物料库区配置 Excel")
@PreAuthorize("@ss.hasPermission('wms:itemarea:export')")
@ -102,16 +131,51 @@ public class ItemareaController {
public void exportItemareaExcel(@Valid ItemareaExportReqVO exportReqVO, HttpServletResponse response) throws IOException {
List<ItemareaDO> list = itemareaService.getItemareaList(exportReqVO);
// 导出 Excel
//组装vo
Map<Integer, String[]> mapDropDown = new HashMap<>();
List<ItemareaExcelVO> resultList = this.getExcelVo(list, mapDropDown);
ExcelUtils.write(response, "物料库区配置.xls", "数据", ItemareaExcelVO.class, resultList, mapDropDown);
}
@PostMapping("/export-excel-senior")
@Operation(summary = "导出物料库区配置高级筛选Excel")
@PreAuthorize("@ss.hasPermission('wms:itemarea:export')")
@OperateLog(type = EXPORT)
public void exportItemareaSeniorExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException {
List<ItemareaDO> list = itemareaService.getItemareaList(conditions);
//组装vo
Map<Integer, String[]> mapDropDown = new HashMap<>();
List<ItemareaExcelVO> resultList = this.getExcelVo(list, mapDropDown);
// 导出 Excel
ExcelUtils.write(response, "库存修改申请主.xlsx", "数据", ItemareaExcelVO.class, resultList, mapDropDown);
}
private List<ItemareaExcelVO> getExcelVo(List<ItemareaDO> list, Map<Integer, String[]> mapDropDown) {
String[] autoRepleinsh = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(7, autoRepleinsh);
mapDropDown.put(10, autoRepleinsh);
mapDropDown.put(11, autoRepleinsh);
mapDropDown.put(15, autoRepleinsh);
mapDropDown.put(16, autoRepleinsh);
String[] manageMode = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.MANAGE_MODE);
mapDropDown.put(14, manageMode);
// 导出
List<ItemareaExcelVO> datas = ItemareaConvert.INSTANCE.convertList02(list);
ExcelUtils.write(response, "物料库区配置.xls", "数据", ItemareaExcelVO.class, datas);
return datas;
}
@GetMapping("/get-import-template")
@Operation(summary = "获得导入物料库区配置模板")
public void importTemplate(HttpServletResponse response) throws IOException {
List<ItemareaExcelVO> list = Arrays.asList();
List<ItemareaImportVO> list = Arrays.asList();
Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] manageMode = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.MANAGE_MODE);
mapDropDown.put(3, manageMode);
String[] trueFalse = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(6, trueFalse);
mapDropDown.put(7, trueFalse);
// 输出
ExcelUtils.write(response, "物料库区配置基本信息导入模板.xls", "物料库区配置基本信息列表", ItemareaExcelVO.class, list);
ExcelUtils.write(response, "物料库区配置基本信息导入模板.xls", "物料库区配置基本信息列表", ItemareaImportVO.class, list,mapDropDown);
}
@PostMapping("/import")
@ -119,17 +183,14 @@ public class ItemareaController {
@Parameters({@Parameter(name = "file", description = "Excel 文件", required = true), @Parameter(name = "mode", description = "导入模式1更新2追加3覆盖", example = "1"), @Parameter(name = "updatePart", description = "部分更新,默认为 true", example = "true")})
@PreAuthorize("@ss.hasPermission('wms:itemarea:import')")
public CommonResult<Map<String, Object>> importExcel(HttpServletResponse response, @RequestParam("file") MultipartFile file, @RequestParam(value = "mode") Integer mode, @RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<ItemareaExcelVO> list = ExcelUtils.read(file, ItemareaExcelVO.class);
List<ItemareaExcelVO> errorList = itemareaService.importItemareaList(list, mode, updatePart);
List<ItemareaImportVO> list = ExcelUtils.read(file, ItemareaImportVO.class);
List<ItemareaImportVO> errorList = itemareaService.importItemareaList(list, mode, updatePart);
Map<String, Object> returnMap = new HashMap<>();
returnMap.put("errorCount", errorList.size());
if (!errorList.isEmpty()) {
String url = ExcelUtils.writeLocalFile("物料库区配置基本信息导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xlsx", "错误列表", errorList);
returnMap.put("errorFile", url);
}
return success(returnMap);
}
}

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/itemarea/vo/ItemareaBaseVO.java

@ -16,8 +16,8 @@ import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY
@Data
public class ItemareaBaseVO {
@Schema(description = "物代码", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "物代码不能为空")
@Schema(description = "物代码", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "物代码不能为空")
private String itemCode;
@Schema(description = "区域代码", requiredMode = Schema.RequiredMode.REQUIRED)
@ -76,7 +76,7 @@ public class ItemareaBaseVO {
@Schema(description = "入库后库存自动转换为出库包装规格")
private String newlyToOutpackunit;
@Schema(description = "出库后剩余库存自动转换为出库包装规格 出库后剩余库存自动转换为出库包装规格")
@Schema(description = "出库后剩余库存自动转换为出库包装规格")
private String surplusToOutpackunit;
}

30
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/itemarea/vo/ItemareaExcelVO.java

@ -1,5 +1,6 @@
package com.win.module.wms.controller.itemarea.vo;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
@ -23,9 +24,6 @@ import com.alibaba.excel.annotation.ExcelProperty;
@Data
public class ItemareaExcelVO {
@ExcelProperty("id")
private Long id;
@ExcelProperty("物品代码")
private String itemCode;
@ -63,33 +61,27 @@ public class ItemareaExcelVO {
private String available;
@ExcelProperty("生效时间")
@ColumnWidth(value = 22)
private LocalDateTime activeTime;
@ExcelProperty("失效时间")
@ColumnWidth(value = 22)
private LocalDateTime expireTime;
@ExcelProperty("备注")
private String remark;
@ExcelProperty("创建时间")
private LocalDateTime createTime;
@ExcelProperty("创建者ID")
private String creator;
@ExcelProperty("最后更新时间")
private LocalDateTime updateTime;
@ExcelProperty("最后更新者ID")
private String updater;
@ExcelProperty("管理精度")
private String manageMode;
@ExcelProperty("入库后库存自动转换为出库包装规格")
private String newlyToOutpackunit;
@ExcelProperty("出库后剩余库存自动转换为出库包装规格 出库后剩余库存自动转换为出库包装规格")
@ExcelProperty("出库后剩余库存自动转换为出库包装规格")
private String surplusToOutpackunit;
//子表数据
@ExcelProperty("库位组")
private String locationGroup;
@ExcelProperty("库位代码")
private String locationCode;
}

59
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/itemarea/vo/ItemareaImportVO.java

@ -0,0 +1,59 @@
package com.win.module.wms.controller.itemarea.vo;
import com.alibaba.excel.annotation.ExcelProperty;
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.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
/**
* 物料库区配置 导入Excel VO
*
* @author 超级管理员
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class ItemareaImportVO {
@ExcelProperty("单据号")
private String number;
@ExcelProperty("物料号")
private String itemCode;
@ExcelProperty("区域代码")
private String areaCode;
@ExcelProperty(value = "管理精度",converter = DictConvert.class)
@DictFormat(DictTypeConstants.MANAGE_MODE)
private String manageMode;
@ExcelProperty("入库包装规格")
private String inPackUnit;
@ExcelProperty("出库包装规格")
private String outPackUnit;
@ExcelProperty(value = "需要接收确认",converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String needReceive;
@ExcelProperty(value = "是否可用",converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String available;
//子表数据
@ExcelProperty("库位组")
private LocalDateTime locationGroup;
@ExcelProperty("库位代码")
private String locationCode;
}

10
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/itemarea/ItemareaConvert.java

@ -4,10 +4,8 @@ import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.itemarea.vo.ItemareaCreateReqVO;
import com.win.module.wms.controller.itemarea.vo.ItemareaExcelVO;
import com.win.module.wms.controller.itemarea.vo.ItemareaRespVO;
import com.win.module.wms.controller.itemarea.vo.ItemareaUpdateReqVO;
import com.win.module.wms.controller.itemarea.vo.*;
import com.win.module.wms.dal.dataobject.itemarea.ItemareaDetailDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.itemarea.ItemareaDO;
@ -34,5 +32,7 @@ public interface ItemareaConvert {
List<ItemareaExcelVO> convertList02(List<ItemareaDO> list);
ItemareaDO convert(ItemareaExcelVO item);
ItemareaDO convert(ItemareaImportVO item);
ItemareaExcelVO convert(ItemareaDO mainDO, ItemareaDetailDO detailDO);
}

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/itemarea/ItemareaDetailMapper.java

@ -28,4 +28,9 @@ public interface ItemareaDetailMapper extends BaseMapperX<ItemareaDetailDO> {
.orderByDesc(ItemareaDetailDO::getId));
}
default List<ItemareaDetailDO> selectList(String masterId){
return selectList(new LambdaQueryWrapperX<ItemareaDetailDO>()
.eq(ItemareaDetailDO::getMasterId, masterId));
}
}

10
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/itemarea/ItemareaMapper.java

@ -2,13 +2,14 @@ package com.win.module.wms.dal.mysql.itemarea;
import java.util.*;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.framework.mybatis.core.mapper.BaseMapperX;
import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.itemarea.vo.ItemareaExportReqVO;
import com.win.module.wms.controller.itemarea.vo.ItemareaPageReqVO;
import com.win.module.wms.dal.dataobject.itemarea.ItemareaDO;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import org.apache.ibatis.annotations.Mapper;
/**
@ -40,4 +41,11 @@ public interface ItemareaMapper extends BaseMapperX<ItemareaDO> {
.orderByDesc(ItemareaDO::getId));
}
default PageResult<ItemareaDO> selectSenior(CustomConditions conditions) {
return selectPage(conditions, QueryWrapperUtils.structure(conditions));
}
default List<ItemareaDO> selectSeniorList(CustomConditions conditions){
return selectList(QueryWrapperUtils.structure(conditions));
}
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itemarea/ItemareaDetailService.java

@ -67,4 +67,6 @@ public interface ItemareaDetailService {
* @return 物料库区配置表子列表
*/
List<ItemareaDetailDO> getItemareaDetailList(ItemareaDetailExportReqVO exportReqVO);
List<ItemareaDetailDO> selectListByID(String masterId);
}

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itemarea/ItemareaDetailServiceImpl.java

@ -79,4 +79,9 @@ public class ItemareaDetailServiceImpl implements ItemareaDetailService {
public List<ItemareaDetailDO> getItemareaDetailList(ItemareaDetailExportReqVO exportReqVO) {
return itemareaDetailMapper.selectList(exportReqVO);
}
@Override
public List<ItemareaDetailDO> selectListByID(String masterId) {
return itemareaDetailMapper.selectList(masterId);
}
}

18
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itemarea/ItemareaService.java

@ -3,6 +3,7 @@ package com.win.module.wms.service.itemarea;
import java.util.*;
import javax.validation.*;
import com.win.framework.common.pojo.CustomConditions;
import com.win.module.wms.controller.itemarea.vo.*;
import com.win.module.wms.dal.dataobject.itemarea.ItemareaDO;
import com.win.framework.common.pojo.PageResult;
@ -76,5 +77,20 @@ public interface ItemareaService {
* @param updatePart 是否支持更新
* @return 导入结果
*/
public List<ItemareaExcelVO> importItemareaList(List<ItemareaExcelVO> datas, Integer mode, boolean updatePart);
public List<ItemareaImportVO> importItemareaList(List<ItemareaImportVO> datas, Integer mode, boolean updatePart);
/**
* 高级搜索获得库存修改申请主分页
* @param conditions
* @return
*/
PageResult<ItemareaDO> getItemareaPageSenior(CustomConditions conditions);
/**
* 导出高级搜索获得库存修改申请主分页
* @param conditions
* @return
*/
List<ItemareaDO> getItemareaList(CustomConditions conditions);
}

17
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itemarea/ItemareaServiceImpl.java

@ -1,6 +1,7 @@
package com.win.module.wms.service.itemarea;
import cn.hutool.core.collection.CollUtil;
import com.win.framework.common.pojo.CustomConditions;
import com.win.module.wms.controller.itemarea.vo.*;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@ -82,12 +83,11 @@ public class ItemareaServiceImpl implements ItemareaService {
}
@Override
public List<ItemareaExcelVO> importItemareaList(List<ItemareaExcelVO> datas, Integer mode, boolean updatePart) {
public List<ItemareaImportVO> importItemareaList(List<ItemareaImportVO> datas, Integer mode, boolean updatePart) {
if (CollUtil.isEmpty(datas)) {
throw exception(ITEMAREA_IMPORT_LIST_IS_EMPTY);
}
List<ItemareaExcelVO> errorList = new ArrayList<>();
List<ItemareaImportVO> errorList = new ArrayList<>();
datas.forEach(item -> {
if(errorList == null){
// 判断如果不存在,在进行插入
@ -102,7 +102,16 @@ public class ItemareaServiceImpl implements ItemareaService {
}
}
});
return errorList;
}
@Override
public PageResult<ItemareaDO> getItemareaPageSenior(CustomConditions conditions) {
return itemareaMapper.selectSenior(conditions);
}
@Override
public List<ItemareaDO> getItemareaList(CustomConditions conditions) {
return itemareaMapper.selectSeniorList(conditions);
}
}

Loading…
Cancel
Save