Browse Source

报废出库任务导出模版主子表字段标识

master_hella_20240701
chenfang 1 year ago
parent
commit
d129b556ec
  1. 3
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/DictTypeConstants.java
  2. 49
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/repleinshRecord/RepleinshRecordMainController.java
  3. 15
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/repleinshRecord/vo/RepleinshRecordMainExcelVO.java
  4. 43
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/repleinshRequest/RepleinshRequestMainController.java
  5. 38
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/repleinshRequest/vo/RepleinshRequestMainExcelVO.java
  6. 18
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/repleinshRequest/vo/RepleinshRequestMainImportVO.java
  7. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/rule/RuleController.java
  8. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/rule/vo/RuleExcelVO.java
  9. 60
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/sale/SaleMainController.java
  10. 102
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/sale/vo/SaleMainExcelVO.java
  11. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/saleprice/SalepriceController.java
  12. 73
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapJob/ScrapJobMainController.java
  13. 135
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapJob/vo/ScrapJobMainExcelVO.java
  14. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRecord/ScrapRecordMainController.java
  15. 13
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/sale/SaleMainConvert.java
  16. 13
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/scrapJob/ScrapJobMainConvert.java
  17. 11
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/sale/SaleDetailMapper.java
  18. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/scrapJob/ScrapJobMainMapper.java
  19. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/sale/SaleDetailService.java
  20. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/sale/SaleDetailServiceImpl.java
  21. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/scrapJob/ScrapJobDetailService.java
  22. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/scrapJob/ScrapJobMainService.java
  23. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/scrapJob/ScrapJobMainServiceImpl.java

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

@ -96,5 +96,6 @@ public interface DictTypeConstants {
String MANAGEMENT_MODE="management_mode";//管理精度 String MANAGEMENT_MODE="management_mode";//管理精度
String PACK_UNIT_TYPE="pack_unit_type";//包装规格类型 String PACK_UNIT_TYPE="pack_unit_type";//包装规格类型
String PREDICT_TIME_TYPE="predict_time_type";//预测时间类型 String PREDICT_TIME_TYPE="predict_time_type";//预测时间类型
String BATCH_DIRECTION="batch_direction";//批次放心 String BATCH_DIRECTION="batch_direction";//批次方向
String SALE_ORDER_TYPE="sale_order_type";//订单类型
} }

49
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/repleinshRecord/RepleinshRecordMainController.java

@ -1,40 +1,35 @@
package com.win.module.wms.controller.repleinshRecord; package com.win.module.wms.controller.repleinshRecord;
import com.win.framework.common.pojo.CommonResult;
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.dict.core.util.DictFrameworkUtils; import com.win.framework.dict.core.util.DictFrameworkUtils;
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.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.purchasereturnRecord.vo.PurchasereturnRecordMainCreateReqVO; import com.win.module.wms.controller.repleinshRecord.vo.*;
import com.win.module.wms.convert.repleinshRecord.RepleinshRecordMainConvert;
import com.win.module.wms.dal.dataobject.repleinshRecord.RepleinshRecordDetailDO; import com.win.module.wms.dal.dataobject.repleinshRecord.RepleinshRecordDetailDO;
import com.win.module.wms.dal.dataobject.repleinshRecord.RepleinshRecordMainDO;
import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.repleinshRecord.RepleinshRecordDetailService; import com.win.module.wms.service.repleinshRecord.RepleinshRecordDetailService;
import org.springframework.web.bind.annotation.*; import com.win.module.wms.service.repleinshRecord.RepleinshRecordMainService;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.*; import javax.annotation.Resource;
import javax.validation.*; import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.*; import javax.validation.Valid;
import java.util.*;
import java.io.IOException; import java.io.IOException;
import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.common.pojo.CommonResult;
import static com.win.framework.common.pojo.CommonResult.success; import static com.win.framework.common.pojo.CommonResult.success;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.*;
import com.win.module.wms.controller.repleinshRecord.vo.*;
import com.win.module.wms.dal.dataobject.repleinshRecord.RepleinshRecordMainDO;
import com.win.module.wms.convert.repleinshRecord.RepleinshRecordMainConvert;
import com.win.module.wms.service.repleinshRecord.RepleinshRecordMainService;
@Tag(name = "管理后台 - 补料记录主") @Tag(name = "管理后台 - 补料记录主")
@RestController @RestController
@ -64,7 +59,7 @@ public class RepleinshRecordMainController {
public CommonResult<PageResult<RepleinshRecordMainRespVO>> getRepleinshRecordMainSenior(@Valid @RequestBody CustomConditions conditions) { public CommonResult<PageResult<RepleinshRecordMainRespVO>> getRepleinshRecordMainSenior(@Valid @RequestBody CustomConditions conditions) {
PageResult<RepleinshRecordMainDO> pageResult = repleinshRecordMainService.getRepleinshRecordMainSenior(conditions); PageResult<RepleinshRecordMainDO> pageResult = repleinshRecordMainService.getRepleinshRecordMainSenior(conditions);
PageResult<RepleinshRecordMainRespVO> result = RepleinshRecordMainConvert.INSTANCE.convertPage(pageResult); PageResult<RepleinshRecordMainRespVO> result = RepleinshRecordMainConvert.INSTANCE.convertPage(pageResult);
for(RepleinshRecordMainRespVO vo : result.getList()) { for (RepleinshRecordMainRespVO vo : result.getList()) {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段 //后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname()); vo.setCreator(user.getNickname());
@ -96,7 +91,7 @@ public class RepleinshRecordMainController {
public CommonResult<PageResult<RepleinshRecordMainRespVO>> getRepleinshRecordMainPage(@Valid RepleinshRecordMainPageReqVO pageVO) { public CommonResult<PageResult<RepleinshRecordMainRespVO>> getRepleinshRecordMainPage(@Valid RepleinshRecordMainPageReqVO pageVO) {
PageResult<RepleinshRecordMainDO> pageResult = repleinshRecordMainService.getRepleinshRecordMainPage(pageVO); PageResult<RepleinshRecordMainDO> pageResult = repleinshRecordMainService.getRepleinshRecordMainPage(pageVO);
PageResult<RepleinshRecordMainRespVO> result = RepleinshRecordMainConvert.INSTANCE.convertPage(pageResult); PageResult<RepleinshRecordMainRespVO> result = RepleinshRecordMainConvert.INSTANCE.convertPage(pageResult);
for(RepleinshRecordMainRespVO vo : result.getList()) { for (RepleinshRecordMainRespVO vo : result.getList()) {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段 //后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname()); vo.setCreator(user.getNickname());
@ -116,9 +111,9 @@ public class RepleinshRecordMainController {
mapDropDown.put(41, uom); mapDropDown.put(41, uom);
List<RepleinshRecordMainExcelVO> resultList = new ArrayList<>(); List<RepleinshRecordMainExcelVO> resultList = new ArrayList<>();
// 导出 // 导出
for(RepleinshRecordMainDO mainDO : list) { for (RepleinshRecordMainDO mainDO : list) {
List<RepleinshRecordDetailDO> subList = repleinshRecordDetailService.selectList(mainDO.getId()); List<RepleinshRecordDetailDO> subList = repleinshRecordDetailService.selectList(mainDO.getId());
for(RepleinshRecordDetailDO detailDO : subList) { for (RepleinshRecordDetailDO detailDO : subList) {
RepleinshRecordMainExcelVO vo = RepleinshRecordMainConvert.INSTANCE.convert(mainDO, detailDO); RepleinshRecordMainExcelVO vo = RepleinshRecordMainConvert.INSTANCE.convert(mainDO, detailDO);
AdminUserRespDTO user = userApi.getUser(Long.valueOf(mainDO.getCreator())); AdminUserRespDTO user = userApi.getUser(Long.valueOf(mainDO.getCreator()));
vo.setCreator(user.getNickname()); vo.setCreator(user.getNickname());

15
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/repleinshRecord/vo/RepleinshRecordMainExcelVO.java

@ -1,5 +1,6 @@
package com.win.module.wms.controller.repleinshRecord.vo; package com.win.module.wms.controller.repleinshRecord.vo;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.enums.DictTypeConstants;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.*;
@ -23,6 +24,9 @@ import com.win.framework.excel.core.convert.DictConvert;
@Data @Data
public class RepleinshRecordMainExcelVO { public class RepleinshRecordMainExcelVO {
@ExcelProperty("单据号")
private String number;
@ExcelProperty("申请单号") @ExcelProperty("申请单号")
private String requestNumber; private String requestNumber;
@ -36,23 +40,24 @@ public class RepleinshRecordMainExcelVO {
private String inTransactionType; private String inTransactionType;
@ExcelProperty("执行时间") @ExcelProperty("执行时间")
@ColumnWidth(value = 16)
private LocalDateTime executeTime; private LocalDateTime executeTime;
@ExcelProperty("生效日期") @ExcelProperty("生效日期")
@ColumnWidth(value = 16)
private LocalDateTime activeDate; private LocalDateTime activeDate;
@ExcelProperty("申请时间") @ExcelProperty("申请时间")
@ColumnWidth(value = 16)
private LocalDateTime requestTime; private LocalDateTime requestTime;
@ExcelProperty("截止时间") @ExcelProperty("截止时间")
@ColumnWidth(value = 16)
private LocalDateTime dueTime; private LocalDateTime dueTime;
@ExcelProperty("部门") @ExcelProperty("部门")
private String departmentCode; private String departmentCode;
@ExcelProperty("单据号")
private String number;
@ExcelProperty("业务类型") @ExcelProperty("业务类型")
private String businessType; private String businessType;
@ -60,6 +65,7 @@ public class RepleinshRecordMainExcelVO {
private String remark; private String remark;
@ExcelProperty("创建时间") @ExcelProperty("创建时间")
@ColumnWidth(value = 16)
private LocalDateTime createTime; private LocalDateTime createTime;
@ExcelProperty("创建者名称") @ExcelProperty("创建者名称")
@ -82,8 +88,6 @@ public class RepleinshRecordMainExcelVO {
@ExcelProperty("到仓库代码") @ExcelProperty("到仓库代码")
private String toWarehouseCode; private String toWarehouseCode;
@ExcelProperty("到库区代码范围") @ExcelProperty("到库区代码范围")
private String toAreaCodes; private String toAreaCodes;
@ -92,6 +96,7 @@ public class RepleinshRecordMainExcelVO {
private String available; private String available;
@ExcelProperty("修改时间") @ExcelProperty("修改时间")
@ColumnWidth(value = 16)
private LocalDateTime updateTime; private LocalDateTime updateTime;
@ExcelProperty("修改者") @ExcelProperty("修改者")

43
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/repleinshRequest/RepleinshRequestMainController.java

@ -9,12 +9,8 @@ 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.issueRequest.vo.IssueRequestMainExcelVO;
import com.win.module.wms.controller.repleinshRequest.vo.*; import com.win.module.wms.controller.repleinshRequest.vo.*;
import com.win.module.wms.convert.issueRequest.IssueRequestMainConvert;
import com.win.module.wms.convert.repleinshRequest.RepleinshRequestMainConvert; import com.win.module.wms.convert.repleinshRequest.RepleinshRequestMainConvert;
import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestDetailDO;
import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestMainDO;
import com.win.module.wms.dal.dataobject.repleinshRequest.RepleinshRequestDetailDO; import com.win.module.wms.dal.dataobject.repleinshRequest.RepleinshRequestDetailDO;
import com.win.module.wms.dal.dataobject.repleinshRequest.RepleinshRequestMainDO; import com.win.module.wms.dal.dataobject.repleinshRequest.RepleinshRequestMainDO;
import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.enums.DictTypeConstants;
@ -77,13 +73,14 @@ public class RepleinshRequestMainController {
repleinshRequestMainService.deleteRepleinshRequestMain(id); repleinshRequestMainService.deleteRepleinshRequestMain(id);
return success(true); return success(true);
} }
@PostMapping("/senior") @PostMapping("/senior")
@Operation(summary = "高级搜索获得物料基本信息分页") @Operation(summary = "高级搜索获得物料基本信息分页")
@PreAuthorize("@ss.hasPermission('wms:repleinsh-request-main:query')") @PreAuthorize("@ss.hasPermission('wms:repleinsh-request-main:query')")
public CommonResult<PageResult<RepleinshRequestMainRespVO>> getRepleinshRequestMainSenior(@Valid @RequestBody CustomConditions conditions) { public CommonResult<PageResult<RepleinshRequestMainRespVO>> getRepleinshRequestMainSenior(@Valid @RequestBody CustomConditions conditions) {
PageResult<RepleinshRequestMainDO> pageResult = repleinshRequestMainService.getRepleinshRequestMainSenior(conditions); PageResult<RepleinshRequestMainDO> pageResult = repleinshRequestMainService.getRepleinshRequestMainSenior(conditions);
PageResult<RepleinshRequestMainRespVO> result = RepleinshRequestMainConvert.INSTANCE.convertPage(pageResult); PageResult<RepleinshRequestMainRespVO> result = RepleinshRequestMainConvert.INSTANCE.convertPage(pageResult);
for(RepleinshRequestMainRespVO vo : result.getList()) { for (RepleinshRequestMainRespVO vo : result.getList()) {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段 //后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname()); vo.setCreator(user.getNickname());
@ -116,7 +113,7 @@ public class RepleinshRequestMainController {
public CommonResult<PageResult<RepleinshRequestMainRespVO>> getRepleinshRequestMainPage(@Valid RepleinshRequestMainPageReqVO pageVO) { public CommonResult<PageResult<RepleinshRequestMainRespVO>> getRepleinshRequestMainPage(@Valid RepleinshRequestMainPageReqVO pageVO) {
PageResult<RepleinshRequestMainDO> pageResult = repleinshRequestMainService.getRepleinshRequestMainPage(pageVO); PageResult<RepleinshRequestMainDO> pageResult = repleinshRequestMainService.getRepleinshRequestMainPage(pageVO);
PageResult<RepleinshRequestMainRespVO> result = RepleinshRequestMainConvert.INSTANCE.convertPage(pageResult); PageResult<RepleinshRequestMainRespVO> result = RepleinshRequestMainConvert.INSTANCE.convertPage(pageResult);
for(RepleinshRequestMainRespVO vo : result.getList()) { for (RepleinshRequestMainRespVO vo : result.getList()) {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段 //后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname()); vo.setCreator(user.getNickname());
@ -134,11 +131,6 @@ public class RepleinshRequestMainController {
//组装vo //组装vo
Map<Integer, String[]> mapDropDown = new HashMap<>(); Map<Integer, String[]> mapDropDown = new HashMap<>();
List<RepleinshRequestMainExcelVO> resultList = this.getExcelVo(list, mapDropDown); List<RepleinshRequestMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
resultList.forEach(item -> {
//后端创建个字段作为前端展示的虚拟字段
item.setCreator(userApi.getUser(Long.valueOf(item.getCreator())).getNickname());
item.setUpdater(userApi.getUser(Long.valueOf(item.getUpdater())).getNickname());
});
ExcelUtils.write(response, "补料申请.xlsx", "补料申请", RepleinshRequestMainExcelVO.class, resultList, mapDropDown); ExcelUtils.write(response, "补料申请.xlsx", "补料申请", RepleinshRequestMainExcelVO.class, resultList, mapDropDown);
} }
@ -152,23 +144,32 @@ public class RepleinshRequestMainController {
//组装vo //组装vo
Map<Integer, String[]> mapDropDown = new HashMap<>(); Map<Integer, String[]> mapDropDown = new HashMap<>();
List<RepleinshRequestMainExcelVO> resultList = this.getExcelVo(list, mapDropDown); List<RepleinshRequestMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
resultList.forEach(item -> {
//后端创建个字段作为前端展示的虚拟字段
item.setCreator(userApi.getUser(Long.valueOf(item.getCreator())).getNickname());
item.setUpdater(userApi.getUser(Long.valueOf(item.getUpdater())).getNickname());
});
ExcelUtils.write(response, "补料申请.xls", "补料申请", RepleinshRequestMainExcelVO.class, resultList); ExcelUtils.write(response, "补料申请.xls", "补料申请", RepleinshRequestMainExcelVO.class, resultList);
} }
private List<RepleinshRequestMainExcelVO> getExcelVo(List<RepleinshRequestMainDO> list, Map<Integer, String[]> mapDropDown) { private List<RepleinshRequestMainExcelVO> getExcelVo(List<RepleinshRequestMainDO> list, Map<Integer, String[]> mapDropDown) {
// String[] available = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE); String[] locationType = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.LOCATION_TYPE);
// mapDropDown.put(13, available); mapDropDown.put(2, locationType);
mapDropDown.put(15, locationType);
String[] status = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.REQUEST_STATUS);
mapDropDown.put(11, status);
String[] trueFalse = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(17, trueFalse);
mapDropDown.put(18, trueFalse);
mapDropDown.put(19, trueFalse);
mapDropDown.put(20, trueFalse);
String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS);
mapDropDown.put(21, inventoryStatus);
String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(29, uom);
List<RepleinshRequestMainExcelVO> resultList = new ArrayList<>(); List<RepleinshRequestMainExcelVO> resultList = new ArrayList<>();
// 导出 // 导出
for(RepleinshRequestMainDO mainDO : list) { for (RepleinshRequestMainDO mainDO : list) {
List<RepleinshRequestDetailDO> subList = repleinshRequestDetailService.selectList(mainDO.getId()); List<RepleinshRequestDetailDO> subList = repleinshRequestDetailService.selectList(mainDO.getId());
for(RepleinshRequestDetailDO detailDO : subList) { for (RepleinshRequestDetailDO detailDO : subList) {
RepleinshRequestMainExcelVO vo = RepleinshRequestMainConvert.INSTANCE.convert(mainDO, detailDO); RepleinshRequestMainExcelVO vo = RepleinshRequestMainConvert.INSTANCE.convert(mainDO, detailDO);
vo.setCreator(userApi.getUser(Long.valueOf(vo.getCreator())).getNickname());
vo.setUpdater(userApi.getUser(Long.valueOf(vo.getUpdater())).getNickname());
resultList.add(vo); resultList.add(vo);
} }
} }
@ -205,7 +206,7 @@ public class RepleinshRequestMainController {
List<RepleinshRequestMainImportErrorVO> errorList = repleinshRequestMainService.importRepleinshRequestMainList(createReqVOList, mode, updatePart); List<RepleinshRequestMainImportErrorVO> errorList = repleinshRequestMainService.importRepleinshRequestMainList(createReqVOList, 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()) {
String url = ExcelUtils.writeLocalFile("补料申请基本信息导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xlsx", "错误列表", errorList); String url = ExcelUtils.writeLocalFile("补料申请基本信息导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xlsx", "错误列表", errorList);
returnMap.put("errorFile", url); returnMap.put("errorFile", url);
} }

38
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/repleinshRequest/vo/RepleinshRequestMainExcelVO.java

@ -1,5 +1,7 @@
package com.win.module.wms.controller.repleinshRequest.vo; package com.win.module.wms.controller.repleinshRequest.vo;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.win.framework.excel.core.annotations.Colour;
import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.enums.DictTypeConstants;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.*;
@ -12,6 +14,7 @@ import java.time.LocalDateTime;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.win.framework.excel.core.annotations.DictFormat; import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.convert.DictConvert; import com.win.framework.excel.core.convert.DictConvert;
import org.apache.poi.ss.usermodel.IndexedColors;
/** /**
@ -22,76 +25,101 @@ import com.win.framework.excel.core.convert.DictConvert;
@Data @Data
public class RepleinshRequestMainExcelVO { public class RepleinshRequestMainExcelVO {
@ExcelProperty("单据号")
@Colour(IndexedColors.LIGHT_YELLOW)
private String number;
@ExcelProperty("从仓库代码") @ExcelProperty("从仓库代码")
@Colour(IndexedColors.LIGHT_YELLOW)
private String fromWarehouseCode; private String fromWarehouseCode;
@ExcelProperty(value = "从库区类型范围", converter = DictConvert.class) @ExcelProperty(value = "从库区类型范围", converter = DictConvert.class)
@DictFormat("location_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 @DictFormat("location_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
@Colour(IndexedColors.LIGHT_YELLOW)
private String fromAreaTypes; private String fromAreaTypes;
@ExcelProperty("从库区代码范围") @ExcelProperty("从库区代码范围")
@Colour(IndexedColors.LIGHT_YELLOW)
private String fromAreaCodes; private String fromAreaCodes;
@ExcelProperty("单据号")
private String number;
@ExcelProperty("业务类型") @ExcelProperty("业务类型")
@Colour(IndexedColors.LIGHT_YELLOW)
private String businessType; private String businessType;
@ExcelProperty("备注") @ExcelProperty("备注")
@Colour(IndexedColors.LIGHT_YELLOW)
private String remark; private String remark;
@ExcelProperty("创建时间") @ExcelProperty("创建时间")
@ColumnWidth(value = 16)
@Colour(IndexedColors.LIGHT_YELLOW)
private LocalDateTime createTime; private LocalDateTime createTime;
@ExcelProperty("创建者用户名") @ExcelProperty("创建者用户名")
@Colour(IndexedColors.LIGHT_YELLOW)
private String creator; private String creator;
@ExcelProperty("申请时间") @ExcelProperty("申请时间")
@ColumnWidth(value = 16)
@Colour(IndexedColors.LIGHT_YELLOW)
private LocalDateTime requestTime; private LocalDateTime requestTime;
@ExcelProperty("截止时间") @ExcelProperty("截止时间")
@ColumnWidth(value = 16)
@Colour(IndexedColors.LIGHT_YELLOW)
private LocalDateTime dueTime; private LocalDateTime dueTime;
@ExcelProperty("部门") @ExcelProperty("部门")
@Colour(IndexedColors.LIGHT_YELLOW)
private String departmentCode; private String departmentCode;
@ExcelProperty(value = "状态", converter = DictConvert.class) @ExcelProperty(value = "状态", converter = DictConvert.class)
@DictFormat("request_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 @DictFormat("request_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
@Colour(IndexedColors.LIGHT_YELLOW)
private String status; private String status;
@ExcelProperty("最后更新时间") @ExcelProperty("最后更新时间")
@ColumnWidth(value = 16)
@Colour(IndexedColors.LIGHT_YELLOW)
private LocalDateTime updateTime; private LocalDateTime updateTime;
@ExcelProperty("最后更新者用户名") @ExcelProperty("最后更新者用户名")
@Colour(IndexedColors.LIGHT_YELLOW)
private String updater; private String updater;
@ExcelProperty("到仓库代码") @ExcelProperty("到仓库代码")
@Colour(IndexedColors.LIGHT_YELLOW)
private String toWarehouseCode; private String toWarehouseCode;
@ExcelProperty(value = "到库区类型范围", converter = DictConvert.class) @ExcelProperty(value = "到库区类型范围", converter = DictConvert.class)
@DictFormat(DictTypeConstants.LOCATION_TYPE) @DictFormat(DictTypeConstants.LOCATION_TYPE)
@Colour(IndexedColors.LIGHT_YELLOW)
private String toAreaTypes; private String toAreaTypes;
@ExcelProperty("到库区代码范围") @ExcelProperty("到库区代码范围")
@Colour(IndexedColors.LIGHT_YELLOW)
private String toAreaCodes; private String toAreaCodes;
@ExcelProperty(value = "自动提交", converter = DictConvert.class) @ExcelProperty(value = "自动提交", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE) @DictFormat(DictTypeConstants.TRUE_FALSE)
@Colour(IndexedColors.LIGHT_YELLOW)
private String autoCommit; private String autoCommit;
@ExcelProperty(value = "自动通过", converter = DictConvert.class) @ExcelProperty(value = "自动通过", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE) @DictFormat(DictTypeConstants.TRUE_FALSE)
@Colour(IndexedColors.LIGHT_YELLOW)
private String autoAgree; private String autoAgree;
@ExcelProperty(value = "自动执行", converter = DictConvert.class) @ExcelProperty(value = "自动执行", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE) @DictFormat(DictTypeConstants.TRUE_FALSE)
@Colour(IndexedColors.LIGHT_YELLOW)
private String autoExecute; private String autoExecute;
@ExcelProperty(value = "直接生成记录", converter = DictConvert.class) @ExcelProperty(value = "直接生成记录", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE) @DictFormat(DictTypeConstants.TRUE_FALSE)
@Colour(IndexedColors.LIGHT_YELLOW)
private String directCreateRecord; private String directCreateRecord;
//子表
@ExcelProperty(value = "库存状态", converter = DictConvert.class) @ExcelProperty(value = "库存状态", converter = DictConvert.class)
@DictFormat(DictTypeConstants.INVENTORY_STATUS) @DictFormat(DictTypeConstants.INVENTORY_STATUS)
private String inventoryStatus; private String inventoryStatus;
@ -127,6 +155,4 @@ public class RepleinshRequestMainExcelVO {
@ExcelProperty("到货主代码") @ExcelProperty("到货主代码")
private String toOwnerCode; private String toOwnerCode;
} }

18
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/repleinshRequest/vo/RepleinshRequestMainImportVO.java

@ -1,19 +1,18 @@
package com.win.module.wms.controller.repleinshRequest.vo; package com.win.module.wms.controller.repleinshRequest.vo;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth; import com.win.framework.excel.core.annotations.Colour;
import com.win.framework.excel.core.annotations.DictFormat; import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.annotations.OnlyOne; import com.win.framework.excel.core.annotations.ExcelValid;
import com.win.framework.excel.core.convert.DictConvert; import com.win.framework.excel.core.convert.DictConvert;
import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.enums.DictTypeConstants;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@ -32,26 +31,37 @@ public class RepleinshRequestMainImportVO {
//主表数据 //主表数据
@ExcelProperty("单据号") @ExcelProperty("单据号")
@ExcelValid(message = "必填")
@Colour(IndexedColors.LIGHT_YELLOW)
private String number; private String number;
@ExcelProperty("截止时间") @ExcelProperty("截止时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ExcelValid(message = "必填")
@Colour(IndexedColors.LIGHT_YELLOW)
private LocalDateTime dueTime; private LocalDateTime dueTime;
@ExcelProperty("从仓库代码") @ExcelProperty("从仓库代码")
@ExcelValid(message = "必填")
@Colour(IndexedColors.LIGHT_YELLOW)
private String fromWarehouseCode; private String fromWarehouseCode;
//子表数据 //子表数据
@ExcelProperty("到库位代码") @ExcelProperty("到库位代码")
@ExcelValid(message = "必填")
private String toLocationCode; private String toLocationCode;
@ExcelProperty("物料代码") @ExcelProperty("物料代码")
@ExcelValid(message = "必填")
private String itemCode; private String itemCode;
@ExcelProperty("数量") @ExcelProperty("数量")
@ExcelValid(message = "必填")
private String qty; private String qty;
@ExcelProperty(value = "计量单位", converter = DictConvert.class) @ExcelProperty(value = "计量单位", converter = DictConvert.class)
@DictFormat(DictTypeConstants.UOM) @DictFormat(DictTypeConstants.UOM)
@ExcelValid(message = "必填")
private String uom; private String uom;
} }

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/rule/RuleController.java

@ -80,7 +80,7 @@ public class RuleController {
public CommonResult<PageResult<RuleRespVO>> getRuleSenior(@Valid @RequestBody CustomConditions conditions) { public CommonResult<PageResult<RuleRespVO>> getRuleSenior(@Valid @RequestBody CustomConditions conditions) {
PageResult<RuleDO> pageResult = ruleService.getRuleSenior(conditions); PageResult<RuleDO> pageResult = ruleService.getRuleSenior(conditions);
PageResult<RuleRespVO> result = RuleConvert.INSTANCE.convertPage(pageResult); PageResult<RuleRespVO> result = RuleConvert.INSTANCE.convertPage(pageResult);
for(RuleRespVO vo : result.getList()) { for (RuleRespVO vo : result.getList()) {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段 //后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname()); vo.setCreator(user.getNickname());
@ -117,7 +117,7 @@ public class RuleController {
@PreAuthorize("@ss.hasPermission('wms:rule:export')") @PreAuthorize("@ss.hasPermission('wms:rule:export')")
@OperateLog(type = EXPORT) @OperateLog(type = EXPORT)
public void exportRuleExcel(@Valid RuleExportReqVO exportReqVO, HttpServletResponse response) throws IOException { public void exportRuleExcel(@Valid RuleExportReqVO exportReqVO, HttpServletResponse response) throws IOException {
List<RuleDO> list =ruleService.getRuleList(exportReqVO); List<RuleDO> list = ruleService.getRuleList(exportReqVO);
Map<Integer, String[]> mapDropDown = new HashMap<>(); Map<Integer, String[]> mapDropDown = new HashMap<>();
List<RuleExcelVO> resultList = this.getExcelVo(list, mapDropDown); List<RuleExcelVO> resultList = this.getExcelVo(list, mapDropDown);
ExcelUtils.write(response, "物料基本信息.xlsx", "数据", RuleExcelVO.class, resultList, mapDropDown); ExcelUtils.write(response, "物料基本信息.xlsx", "数据", RuleExcelVO.class, resultList, mapDropDown);
@ -137,7 +137,7 @@ public class RuleController {
private List<RuleExcelVO> getExcelVo(List<RuleDO> list, Map<Integer, String[]> mapDropDown) { private List<RuleExcelVO> getExcelVo(List<RuleDO> list, Map<Integer, String[]> mapDropDown) {
// 导出 Excel // 导出 Excel
List<RuleExcelVO> resultList = RuleConvert.INSTANCE.convertList02(list); List<RuleExcelVO> resultList = RuleConvert.INSTANCE.convertList02(list);
for(RuleExcelVO vo : resultList) { for (RuleExcelVO vo : resultList) {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段 //后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname()); vo.setCreator(user.getNickname());

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/rule/vo/RuleExcelVO.java

@ -2,9 +2,6 @@ package com.win.module.wms.controller.rule.vo;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth; 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 io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@ -17,6 +14,7 @@ import java.time.LocalDateTime;
*/ */
@Data @Data
public class RuleExcelVO { public class RuleExcelVO {
@ExcelProperty("策略代码") @ExcelProperty("策略代码")
private String strategyCode; private String strategyCode;

60
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/sale/SaleMainController.java

@ -3,6 +3,7 @@ package com.win.module.wms.controller.sale;
import com.win.framework.common.pojo.CommonResult; import com.win.framework.common.pojo.CommonResult;
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.dict.core.util.DictFrameworkUtils;
import com.win.framework.excel.core.util.ConvertUtil; import com.win.framework.excel.core.util.ConvertUtil;
import com.win.framework.excel.core.util.ExcelUtils; import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog; import com.win.framework.operatelog.core.annotations.OperateLog;
@ -10,7 +11,10 @@ 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.sale.vo.*; import com.win.module.wms.controller.sale.vo.*;
import com.win.module.wms.convert.sale.SaleMainConvert; import com.win.module.wms.convert.sale.SaleMainConvert;
import com.win.module.wms.dal.dataobject.sale.SaleDetailDO;
import com.win.module.wms.dal.dataobject.sale.SaleMainDO; import com.win.module.wms.dal.dataobject.sale.SaleMainDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.sale.SaleDetailService;
import com.win.module.wms.service.sale.SaleMainService; import com.win.module.wms.service.sale.SaleMainService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
@ -40,6 +44,8 @@ public class SaleMainController {
@Resource @Resource
private SaleMainService saleMainService; private SaleMainService saleMainService;
@Resource
private SaleDetailService saleDetailService;
@Resource @Resource
private AdminUserApi userApi; private AdminUserApi userApi;
@ -58,13 +64,14 @@ public class SaleMainController {
saleMainService.updateSaleMain(updateReqVO); saleMainService.updateSaleMain(updateReqVO);
return success(true); return success(true);
} }
@PostMapping("/senior") @PostMapping("/senior")
@Operation(summary = "高级搜索获得销售订单主信息分页") @Operation(summary = "高级搜索获得销售订单主信息分页")
@PreAuthorize("@ss.hasPermission('wms:sale-main:query')") @PreAuthorize("@ss.hasPermission('wms:sale-main:query')")
public CommonResult<PageResult<SaleMainRespVO>> getSaleMainSenior(@Valid @RequestBody CustomConditions conditions) { public CommonResult<PageResult<SaleMainRespVO>> getSaleMainSenior(@Valid @RequestBody CustomConditions conditions) {
PageResult<SaleMainDO> pageResult = saleMainService.getSaleMainSenior(conditions); PageResult<SaleMainDO> pageResult = saleMainService.getSaleMainSenior(conditions);
PageResult<SaleMainRespVO> result = SaleMainConvert.INSTANCE.convertPage(pageResult); PageResult<SaleMainRespVO> result = SaleMainConvert.INSTANCE.convertPage(pageResult);
for(SaleMainRespVO vo : result.getList()) { for (SaleMainRespVO vo : result.getList()) {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段 //后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname()); vo.setCreator(user.getNickname());
@ -115,13 +122,50 @@ public class SaleMainController {
HttpServletResponse response) throws IOException { HttpServletResponse response) throws IOException {
List<SaleMainDO> list = saleMainService.getSaleMainList(exportReqVO); List<SaleMainDO> list = saleMainService.getSaleMainList(exportReqVO);
// 导出 Excel // 导出 Excel
List<SaleMainExcelVO> datas = SaleMainConvert.INSTANCE.convertList02(list); Map<Integer, String[]> mapDropDown = new HashMap<>();
for(SaleMainExcelVO vo : datas) { List<SaleMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); ExcelUtils.write(response, "销售订单主.xls", "数据", SaleMainExcelVO.class, resultList, mapDropDown);
//后端创建个字段作为前端展示的虚拟字段 }
vo.setCreator(user.getNickname());
// @GetMapping("/export-excel-senior")
// @Operation(summary = "导出销售订单主 Excel")
// @PreAuthorize("@ss.hasPermission('wms:sale-main:export')")
// @OperateLog(type = EXPORT)
// public void exportRepleinshRequestMainSeniorExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException {
// List<SaleMainDO> list = saleMainService.getSaleMainList(conditions);
// //组装vo
// Map<Integer, String[]> mapDropDown = new HashMap<>();
// List<SaleMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
// ExcelUtils.write(response, "补料申请.xlsx", "补料申请", SaleMainExcelVO.class, resultList, mapDropDown);
// }
private List<SaleMainExcelVO> getExcelVo(List<SaleMainDO> list, Map<Integer, String[]> mapDropDown) {
String[] type = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.SALE_ORDER_TYPE);
mapDropDown.put(2, type);
String[] status = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.REQUEST_STATUS);
mapDropDown.put(11, status);
String[] trueFalse = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(17, trueFalse);
mapDropDown.put(20, trueFalse);
mapDropDown.put(37, trueFalse);
String[] packUnit = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS);
mapDropDown.put(21, packUnit);
mapDropDown.put(23, packUnit);
String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(35, uom);
List<SaleMainExcelVO> resultList = new ArrayList<>();
// 导出
for (SaleMainDO mainDO : list) {
List<SaleDetailDO> subList = saleDetailService.selectList(mainDO.getId());
for (SaleDetailDO detailDO : subList) {
SaleMainExcelVO vo = SaleMainConvert.INSTANCE.convert(mainDO, detailDO);
vo.setCreator(userApi.getUser(Long.valueOf(vo.getCreator())).getNickname());
vo.setUpdater(userApi.getUser(Long.valueOf(vo.getUpdater())).getNickname());
resultList.add(vo);
}
} }
ExcelUtils.write(response, "销售订单主.xls", "数据", SaleMainExcelVO.class, datas); return resultList;
} }
@GetMapping("/get-import-template") @GetMapping("/get-import-template")
@ -156,7 +200,7 @@ public class SaleMainController {
List<SaleMainImportErrorVO> errorList = saleMainService.importSaleMainList(createReqVOList, mode, updatePart); List<SaleMainImportErrorVO> errorList = saleMainService.importSaleMainList(createReqVOList, 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()) {
String url = ExcelUtils.writeLocalFile("销售订单基本信息导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xlsx", "错误列表", errorList); String url = ExcelUtils.writeLocalFile("销售订单基本信息导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xlsx", "错误列表", errorList);
returnMap.put("errorFile", url); returnMap.put("errorFile", url);
} }

102
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/sale/vo/SaleMainExcelVO.java

@ -1,5 +1,7 @@
package com.win.module.wms.controller.sale.vo; package com.win.module.wms.controller.sale.vo;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.win.framework.excel.core.annotations.Colour;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.*;
import java.util.*; import java.util.*;
@ -12,6 +14,7 @@ import java.time.LocalDateTime;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.win.framework.excel.core.annotations.DictFormat; import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.convert.DictConvert; import com.win.framework.excel.core.convert.DictConvert;
import org.apache.poi.ss.usermodel.IndexedColors;
/** /**
@ -22,59 +25,150 @@ import com.win.framework.excel.core.convert.DictConvert;
@Data @Data
public class SaleMainExcelVO { public class SaleMainExcelVO {
@ExcelProperty("单据号")
@Colour(IndexedColors.LIGHT_YELLOW)
private String number;
@ExcelProperty("供应商代码") @ExcelProperty("供应商代码")
@Colour(IndexedColors.LIGHT_YELLOW)
private String customerCode; private String customerCode;
@ExcelProperty(value = "订单类型", converter = DictConvert.class) @ExcelProperty(value = "订单类型", converter = DictConvert.class)
@DictFormat("sale_order_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 @DictFormat("sale_order_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
@Colour(IndexedColors.LIGHT_YELLOW)
private String type; private String type;
@ExcelProperty("订单日期") @ExcelProperty("订单日期")
@ColumnWidth(value = 16)
@Colour(IndexedColors.LIGHT_YELLOW)
private LocalDateTime orderDate; private LocalDateTime orderDate;
@ExcelProperty("截止日期") @ExcelProperty("截止日期")
@ColumnWidth(value = 16)
@Colour(IndexedColors.LIGHT_YELLOW)
private LocalDateTime dueDate; private LocalDateTime dueDate;
@ExcelProperty("版本") @ExcelProperty("版本")
@Colour(IndexedColors.LIGHT_YELLOW)
private String version; private String version;
@ExcelProperty("税率") @ExcelProperty("税率")
@Colour(IndexedColors.LIGHT_YELLOW)
private BigDecimal taxRate; private BigDecimal taxRate;
@ExcelProperty("联系人姓名") @ExcelProperty("联系人姓名")
@Colour(IndexedColors.LIGHT_YELLOW)
private String contactName; private String contactName;
@ExcelProperty("联系人电话") @ExcelProperty("联系人电话")
@Colour(IndexedColors.LIGHT_YELLOW)
private String contactPhone; private String contactPhone;
@ExcelProperty("联系人电子邮件") @ExcelProperty("联系人电子邮件")
@Colour(IndexedColors.LIGHT_YELLOW)
private String contactEmail; private String contactEmail;
@ExcelProperty("单据号")
private String number;
@ExcelProperty("业务类型") @ExcelProperty("业务类型")
@Colour(IndexedColors.LIGHT_YELLOW)
private String businessType; private String businessType;
@ExcelProperty("备注") @ExcelProperty("备注")
@Colour(IndexedColors.LIGHT_YELLOW)
private String remark; private String remark;
@ExcelProperty("创建时间") @ExcelProperty("创建时间")
@ColumnWidth(value = 16)
@Colour(IndexedColors.LIGHT_YELLOW)
private LocalDateTime createTime; private LocalDateTime createTime;
@ExcelProperty("创建者用户名") @ExcelProperty("创建者用户名")
@Colour(IndexedColors.LIGHT_YELLOW)
private String creator; private String creator;
@ExcelProperty("最后更新时间") @ExcelProperty("最后更新时间")
@ColumnWidth(value = 16)
@Colour(IndexedColors.LIGHT_YELLOW)
private LocalDateTime updateTime; private LocalDateTime updateTime;
@ExcelProperty("最后更新者用户名") @ExcelProperty("最后更新者用户名")
@Colour(IndexedColors.LIGHT_YELLOW)
private String updater; private String updater;
@ExcelProperty("当前阶段") @ExcelProperty("当前阶段")
@Colour(IndexedColors.LIGHT_YELLOW)
private Integer currentStage; private Integer currentStage;
@ExcelProperty("是否可用") @ExcelProperty(value = "是否可用", converter = DictConvert.class)
@DictFormat("true_false")
@Colour(IndexedColors.LIGHT_YELLOW)
private String available; private String available;
//子表
@ExcelProperty("行号")
private String lineNumber;
@ExcelProperty("项目代码")
private String projectCode;
@ExcelProperty("包装内物品的数量")
private BigDecimal packQty;
@ExcelProperty(value = "包装规格", converter = DictConvert.class)
@DictFormat("pack_unit") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String packUnit;
@ExcelProperty("客户计量数量")
private BigDecimal customerPackQty;
@ExcelProperty(value = "客户计量单位", converter = DictConvert.class)
@DictFormat("pack_unit") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String customerPackUnit;
@ExcelProperty("转换率")
private BigDecimal convertRate;
@ExcelProperty("已发货数量")
private BigDecimal shippedQty;
@ExcelProperty("已收货数量")
private BigDecimal receivedQty;
@ExcelProperty("已退货数量")
private BigDecimal returnedQty;
@ExcelProperty("单价")
private BigDecimal singlePrice;
@ExcelProperty("金额")
private BigDecimal amount;
@ExcelProperty("物料代码")
private String itemCode;
@ExcelProperty("备注")
private String remarkDetail;
@ExcelProperty("创建时间")
@ColumnWidth(value = 16)
private LocalDateTime createTimeDetail;
@ExcelProperty("创建者用户名")
private String creatorDetail;
@ExcelProperty("订单数量")
private BigDecimal orderQty;
@ExcelProperty(value = "计量单位", converter = DictConvert.class)
@DictFormat("uom") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String uom;
@ExcelProperty("最后更新时间")
@ColumnWidth(value = 16)
private LocalDateTime updateTimeDetail;
@ExcelProperty("最后更新者用户名")
private String updaterDetail;
@ExcelProperty(value = "是否可用", converter = DictConvert.class)
@DictFormat("true_false")
private String availableDetail;
} }

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/saleprice/SalepriceController.java

@ -149,7 +149,7 @@ public class SalepriceController {
} }
@GetMapping("/get-import-template") @GetMapping("/get-import-template")
@Operation(summary = "获得导销售价格单信息模板") @Operation(summary = "获得导销售价格单信息模板")
public void importTemplate(HttpServletResponse response) throws IOException { public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo // 手动创建导出 demo
List<SalepriceImportExcelVo> list = Arrays.asList( List<SalepriceImportExcelVo> list = Arrays.asList(

73
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapJob/ScrapJobMainController.java

@ -3,6 +3,7 @@ package com.win.module.wms.controller.scrapJob;
import com.win.framework.common.pojo.CommonResult; import com.win.framework.common.pojo.CommonResult;
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.dict.core.util.DictFrameworkUtils;
import com.win.framework.excel.core.util.ExcelUtils; 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;
@ -12,6 +13,7 @@ import com.win.module.wms.convert.scrapJob.ScrapJobDetailConvert;
import com.win.module.wms.convert.scrapJob.ScrapJobMainConvert; import com.win.module.wms.convert.scrapJob.ScrapJobMainConvert;
import com.win.module.wms.dal.dataobject.scrapJob.ScrapJobDetailDO; import com.win.module.wms.dal.dataobject.scrapJob.ScrapJobDetailDO;
import com.win.module.wms.dal.dataobject.scrapJob.ScrapJobMainDO; import com.win.module.wms.dal.dataobject.scrapJob.ScrapJobMainDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.scrapJob.ScrapJobDetailService; import com.win.module.wms.service.scrapJob.ScrapJobDetailService;
import com.win.module.wms.service.scrapJob.ScrapJobMainService; import com.win.module.wms.service.scrapJob.ScrapJobMainService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
@ -26,10 +28,7 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid; import javax.validation.Valid;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.*;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import static com.win.framework.common.pojo.CommonResult.success; import static com.win.framework.common.pojo.CommonResult.success;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@ -55,19 +54,21 @@ public class ScrapJobMainController {
public CommonResult<Long> createScrapJobMain(@Valid @RequestBody ScrapJobMainCreateReqVO createReqVO) { public CommonResult<Long> createScrapJobMain(@Valid @RequestBody ScrapJobMainCreateReqVO createReqVO) {
return success(scrapJobMainService.createScrapJobMain(createReqVO)); return success(scrapJobMainService.createScrapJobMain(createReqVO));
} }
@PostMapping("/senior") @PostMapping("/senior")
@Operation(summary = "高级搜索获得物料基本信息分页") @Operation(summary = "高级搜索获得物料基本信息分页")
@PreAuthorize("@ss.hasPermission('wms:ScrapJobMain:query')") @PreAuthorize("@ss.hasPermission('wms:ScrapJobMain:query')")
public CommonResult<PageResult<ScrapJobMainRespVO>> getScrapJobMainSenior(@Valid @RequestBody CustomConditions conditions) { public CommonResult<PageResult<ScrapJobMainRespVO>> getScrapJobMainSenior(@Valid @RequestBody CustomConditions conditions) {
PageResult<ScrapJobMainDO> pageResult = scrapJobMainService.getScrapJobMainSenior(conditions); PageResult<ScrapJobMainDO> pageResult = scrapJobMainService.getScrapJobMainSenior(conditions);
PageResult<ScrapJobMainRespVO> result = ScrapJobMainConvert.INSTANCE.convertPage(pageResult); PageResult<ScrapJobMainRespVO> result = ScrapJobMainConvert.INSTANCE.convertPage(pageResult);
for(ScrapJobMainRespVO vo : result.getList()) { for (ScrapJobMainRespVO vo : result.getList()) {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段 //后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname()); vo.setCreator(user.getNickname());
} }
return success(result); return success(result);
} }
@PutMapping("/update") @PutMapping("/update")
@Operation(summary = "更新报废出库任务主") @Operation(summary = "更新报废出库任务主")
@PreAuthorize("@ss.hasPermission('wms:scrap-job-main:update')") @PreAuthorize("@ss.hasPermission('wms:scrap-job-main:update')")
@ -119,13 +120,52 @@ public class ScrapJobMainController {
HttpServletResponse response) throws IOException { HttpServletResponse response) throws IOException {
List<ScrapJobMainDO> list = scrapJobMainService.getScrapJobMainList(exportReqVO); List<ScrapJobMainDO> list = scrapJobMainService.getScrapJobMainList(exportReqVO);
// 导出 Excel // 导出 Excel
List<ScrapJobMainExcelVO> datas = ScrapJobMainConvert.INSTANCE.convertList02(list); Map<Integer, String[]> mapDropDown = new HashMap<>();
for(ScrapJobMainExcelVO vo : datas) { List<ScrapJobMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); ExcelUtils.write(response, "补料申请.xlsx", "补料申请", ScrapJobMainExcelVO.class, resultList, mapDropDown);
//后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname());
} }
ExcelUtils.write(response, "报废出库任务主.xls", "数据", ScrapJobMainExcelVO.class, datas);
@GetMapping("/export-excel-senior")
@Operation(summary = "导出补料申请主 Excel")
@PreAuthorize("@ss.hasPermission('wms:scrap-job-main:export')")
@OperateLog(type = EXPORT)
public void exportScrapJobMainExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException {
List<ScrapJobMainDO> list = scrapJobMainService.getScrapJobMainList(conditions);
//组装vo
Map<Integer, String[]> mapDropDown = new HashMap<>();
List<ScrapJobMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
ExcelUtils.write(response, "补料申请.xlsx", "补料申请", ScrapJobMainExcelVO.class, resultList, mapDropDown);
}
private List<ScrapJobMainExcelVO> getExcelVo(List<ScrapJobMainDO> list, Map<Integer, String[]> mapDropDown) {
String[] status = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.JOB_STATUS);
mapDropDown.put(5, status);
String[] locationType = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.LOCATION_TYPE);
mapDropDown.put(13, locationType);
mapDropDown.put(14, locationType);
String[] trueFalse = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(20, trueFalse);
mapDropDown.put(21, trueFalse);
mapDropDown.put(22, trueFalse);
mapDropDown.put(23, trueFalse);
mapDropDown.put(24, trueFalse);
mapDropDown.put(25, trueFalse);
mapDropDown.put(26, trueFalse);
mapDropDown.put(27, trueFalse);
mapDropDown.put(28, trueFalse);
mapDropDown.put(29, trueFalse);
List<ScrapJobMainExcelVO> resultList = new ArrayList<>();
// 导出
for (ScrapJobMainDO mainDO : list) {
List<ScrapJobDetailDO> subList = scrapJobDetailService.selectList(mainDO.getId());
for (ScrapJobDetailDO detailDO : subList) {
ScrapJobMainExcelVO vo = ScrapJobMainConvert.INSTANCE.convert(mainDO, detailDO);
vo.setCreator(userApi.getUser(Long.valueOf(vo.getCreator())).getNickname());
vo.setUpdater(userApi.getUser(Long.valueOf(vo.getUpdater())).getNickname());
resultList.add(vo);
}
}
return resultList;
} }
@GetMapping("/getScrapJobById") @GetMapping("/getScrapJobById")
@ -135,9 +175,10 @@ public class ScrapJobMainController {
public CommonResult<ScrapJobMainRespVO> getScrapJobById(@RequestParam("id") Long id) { public CommonResult<ScrapJobMainRespVO> getScrapJobById(@RequestParam("id") Long id) {
ScrapJobMainDO scrapJobMain = scrapJobMainService.getScrapJobMain(id); ScrapJobMainDO scrapJobMain = scrapJobMainService.getScrapJobMain(id);
ScrapJobMainRespVO result = ScrapJobMainConvert.INSTANCE.convert(scrapJobMain); ScrapJobMainRespVO result = ScrapJobMainConvert.INSTANCE.convert(scrapJobMain);
if(result==null) { if (result == null) {
return success(result); return success(result);
}; }
;
ScrapJobDetailExportReqVO reqVO = new ScrapJobDetailExportReqVO(); ScrapJobDetailExportReqVO reqVO = new ScrapJobDetailExportReqVO();
reqVO.setMasterId(result.getId()); reqVO.setMasterId(result.getId());
List<ScrapJobDetailDO> scrapJobDetailList = scrapJobDetailService.getScrapJobDetailList(reqVO); List<ScrapJobDetailDO> scrapJobDetailList = scrapJobDetailService.getScrapJobDetailList(reqVO);
@ -150,11 +191,11 @@ public class ScrapJobMainController {
@Operation(summary = "APP获得报废出库任务数量根据任务状态") @Operation(summary = "APP获得报废出库任务数量根据任务状态")
@Parameter(name = "types", description = "类型数组", required = false, example = "\"types\":[\"1\",\"2\"]") @Parameter(name = "types", description = "类型数组", required = false, example = "\"types\":[\"1\",\"2\"]")
@PreAuthorize("@ss.hasPermission('wms:scrap-job-main:query')") @PreAuthorize("@ss.hasPermission('wms:scrap-job-main:query')")
public CommonResult<Map<String,Integer>> getCountByStatus(@RequestBody Map<String, List<String>> map) { public CommonResult<Map<String, Integer>> getCountByStatus(@RequestBody Map<String, List<String>> map) {
List<String> list = new ArrayList<>(); List<String> list = new ArrayList<>();
if(map==null||map.get("types")==null|| StringUtil.isEmpty(map.get("types").toString())){ if (map == null || map.get("types") == null || StringUtil.isEmpty(map.get("types").toString())) {
list.add("1");//默认不传为执行中的 list.add("1");//默认不传为执行中的
}else{ } else {
list = map.get("types"); list = map.get("types");
} }
Map<String, Integer> countByStatus = scrapJobMainService.getCountByStatus(list); Map<String, Integer> countByStatus = scrapJobMainService.getCountByStatus(list);

135
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapJob/vo/ScrapJobMainExcelVO.java

@ -1,7 +1,11 @@
package com.win.module.wms.controller.scrapJob.vo; package com.win.module.wms.controller.scrapJob.vo;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.win.framework.excel.core.annotations.Colour;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.*;
import java.math.BigDecimal;
import java.util.*; import java.util.*;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@ -14,6 +18,7 @@ import java.time.LocalDateTime;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.win.framework.excel.core.annotations.DictFormat; import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.convert.DictConvert; import com.win.framework.excel.core.convert.DictConvert;
import org.apache.poi.ss.usermodel.IndexedColors;
/** /**
@ -24,110 +29,214 @@ import com.win.framework.excel.core.convert.DictConvert;
@Data @Data
public class ScrapJobMainExcelVO { public class ScrapJobMainExcelVO {
@ExcelProperty("单据号")
@Colour(IndexedColors.LIGHT_YELLOW)
private String number;
@ExcelProperty("申请单号") @ExcelProperty("申请单号")
@Colour(IndexedColors.LIGHT_YELLOW)
private String requestNumber; private String requestNumber;
@ExcelProperty("从仓库代码") @ExcelProperty("从仓库代码")
@Colour(IndexedColors.LIGHT_YELLOW)
private String fromWarehouseCode; private String fromWarehouseCode;
@ExcelProperty("申请时间") @ExcelProperty("申请时间")
@ColumnWidth(value = 16)
@Colour(IndexedColors.LIGHT_YELLOW)
private LocalDateTime requestTime; private LocalDateTime requestTime;
@ExcelProperty("要求截止时间") @ExcelProperty("要求截止时间")
@ColumnWidth(value = 16)
@Colour(IndexedColors.LIGHT_YELLOW)
private LocalDateTime requestDueTime; private LocalDateTime requestDueTime;
@ExcelProperty(value = "状态", converter = DictConvert.class) @ExcelProperty(value = "状态", converter = DictConvert.class)
@DictFormat("job_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 @DictFormat("job_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
@Colour(IndexedColors.LIGHT_YELLOW)
private String status; private String status;
@ExcelProperty("过期时间") @ExcelProperty("过期时间")
@ColumnWidth(value = 16)
@Colour(IndexedColors.LIGHT_YELLOW)
private LocalDateTime expiredTime; private LocalDateTime expiredTime;
@ExcelProperty("最后更新时间") @ExcelProperty("最后更新时间")
@ColumnWidth(value = 16)
@Colour(IndexedColors.LIGHT_YELLOW)
private LocalDateTime updateTime; private LocalDateTime updateTime;
@ExcelProperty("最后更新者名称") @ExcelProperty("最后更新者名称")
@Colour(IndexedColors.LIGHT_YELLOW)
private String updater; private String updater;
@ExcelProperty(value = "状态", converter = DictConvert.class) @ExcelProperty(value = "状态", converter = DictConvert.class)
@DictFormat("job_stage_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 @DictFormat("job_stage_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
@Colour(IndexedColors.LIGHT_YELLOW)
private String jobStageStatus; private String jobStageStatus;
@ExcelProperty("优先级") @ExcelProperty("优先级")
@Colour(IndexedColors.LIGHT_YELLOW)
private Integer priority; private Integer priority;
@ExcelProperty("优先级增量") @ExcelProperty("优先级增量")
@Colour(IndexedColors.LIGHT_YELLOW)
private Integer priorityIncrement; private Integer priorityIncrement;
@ExcelProperty("部门") @ExcelProperty("部门")
@Colour(IndexedColors.LIGHT_YELLOW)
private String departmentCode; private String departmentCode;
@ExcelProperty("承接人用户ID") @ExcelProperty("承接人用户ID")
@Colour(IndexedColors.LIGHT_YELLOW)
private String acceptUserId; private String acceptUserId;
@ExcelProperty("承接时间") @ExcelProperty("承接时间")
@ColumnWidth(value = 16)
@Colour(IndexedColors.LIGHT_YELLOW)
private LocalDateTime acceptTime; private LocalDateTime acceptTime;
@ExcelProperty("完成人用户ID") @ExcelProperty("完成人用户ID")
@Colour(IndexedColors.LIGHT_YELLOW)
private String completeUserId; private String completeUserId;
@ExcelProperty("完成时间") @ExcelProperty("完成时间")
@ColumnWidth(value = 16)
@Colour(IndexedColors.LIGHT_YELLOW)
private LocalDateTime completeTime; private LocalDateTime completeTime;
@ExcelProperty(value = "从库区类型范围", converter = DictConvert.class) @ExcelProperty(value = "从库区类型范围", converter = DictConvert.class)
@DictFormat("location_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 @DictFormat("location_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
@Colour(IndexedColors.LIGHT_YELLOW)
private String fromAreaTypes; private String fromAreaTypes;
@ExcelProperty(value = "到库区类型范围", converter = DictConvert.class) @ExcelProperty(value = "到库区类型范围", converter = DictConvert.class)
@DictFormat("location_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 @DictFormat("location_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
@Colour(IndexedColors.LIGHT_YELLOW)
private String toAreaTypes; private String toAreaTypes;
@ExcelProperty("单据号")
private String number;
@ExcelProperty("业务类型") @ExcelProperty("业务类型")
@Colour(IndexedColors.LIGHT_YELLOW)
private String businessType; private String businessType;
@ExcelProperty("备注") @ExcelProperty("备注")
@Colour(IndexedColors.LIGHT_YELLOW)
private String remark; private String remark;
@ExcelProperty("创建时间") @ExcelProperty("创建时间")
@ColumnWidth(value = 16)
@Colour(IndexedColors.LIGHT_YELLOW)
private LocalDateTime createTime; private LocalDateTime createTime;
@ExcelProperty("创建者名称") @ExcelProperty("创建者名称")
@Colour(IndexedColors.LIGHT_YELLOW)
private String creator; private String creator;
@ExcelProperty("从库区代码范围") @ExcelProperty("从库区代码范围")
@Colour(IndexedColors.LIGHT_YELLOW)
private String fromAreaCodes; private String fromAreaCodes;
@ExcelProperty("自动完成") @ExcelProperty(value = "自动完成", converter = DictConvert.class)
@DictFormat("true_false")
@Colour(IndexedColors.LIGHT_YELLOW)
private String autoComplete; private String autoComplete;
@ExcelProperty("允许修改库位") @ExcelProperty(value = "允许修改库位", converter = DictConvert.class)
@DictFormat("true_false")
@Colour(IndexedColors.LIGHT_YELLOW)
private String allowModifyLocation; private String allowModifyLocation;
@ExcelProperty("允许修改数量") @ExcelProperty(value = "允许修改数量", converter = DictConvert.class)
@DictFormat("true_false")
@Colour(IndexedColors.LIGHT_YELLOW)
private String allowModifyQty; private String allowModifyQty;
@ExcelProperty("允许大于推荐数量") @ExcelProperty(value = "允许大于推荐数量", converter = DictConvert.class)
@DictFormat("true_false")
@Colour(IndexedColors.LIGHT_YELLOW)
private String allowBiggerQty; private String allowBiggerQty;
@ExcelProperty("允许小于推荐数量") @ExcelProperty(value = "允许小于推荐数量", converter = DictConvert.class)
@DictFormat("true_false")
@Colour(IndexedColors.LIGHT_YELLOW)
private String allowSmallerQty; private String allowSmallerQty;
@ExcelProperty("允许修改库存状态") @ExcelProperty(value = "允许修改库存状态", converter = DictConvert.class)
@DictFormat("true_false")
@Colour(IndexedColors.LIGHT_YELLOW)
private String allowModifyInventoryStatus; private String allowModifyInventoryStatus;
@ExcelProperty("允许连续扫描") @ExcelProperty(value = "允许连续扫描", converter = DictConvert.class)
@DictFormat("true_false")
@Colour(IndexedColors.LIGHT_YELLOW)
private String allowContinuousScanning; private String allowContinuousScanning;
@ExcelProperty("允许部分完成") @ExcelProperty(value = "允许部分完成", converter = DictConvert.class)
@DictFormat("true_false")
@Colour(IndexedColors.LIGHT_YELLOW)
private String allowPartialComplete; private String allowPartialComplete;
@ExcelProperty("允许修改批次") @ExcelProperty(value = "允许修改批次", converter = DictConvert.class)
@DictFormat("true_false")
@Colour(IndexedColors.LIGHT_YELLOW)
private String allowModifyBatch; private String allowModifyBatch;
@ExcelProperty("允许修改箱码") @ExcelProperty(value = "允许修改箱码", converter = DictConvert.class)
@DictFormat("true_false")
@Colour(IndexedColors.LIGHT_YELLOW)
private String allowModifyPackingNumber; private String allowModifyPackingNumber;
//子表
@ExcelProperty("货主代码")
private String ownerCode;
@ExcelProperty("包装号")
private String packingNumber;
@ExcelProperty("器具号")
private String containerNumber;
@ExcelProperty("批次")
private String batch;
@ExcelProperty("从库位代码")
private String fromLocationCode;
@ExcelProperty(value = "库存状态", converter = DictConvert.class)
@DictFormat("inventory_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String inventoryStatus;
@ExcelProperty(value = "原因", converter = DictConvert.class)
@DictFormat("scrap_reason") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String reason;
@ExcelProperty("物料代码")
private String itemCode;
@ExcelProperty("物料名称")
private String itemName;
@ExcelProperty("物料描述1")
private String itemDesc1;
@ExcelProperty("物料描述2")
private String itemDesc2;
@ExcelProperty("项目代码")
private String projectCode;
@ExcelProperty("数量")
private BigDecimal qty;
@ExcelProperty(value = "计量单位", converter = DictConvert.class)
@DictFormat("uom") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String uom;
@ExcelProperty("备注")
private String remarkDetail;
@ExcelProperty("创建时间")
private LocalDateTime createTimeDetail;
@ExcelProperty("创建者名称")
private String creatorDetail;
} }

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRecord/ScrapRecordMainController.java

@ -89,13 +89,14 @@ public class ScrapRecordMainController {
PageResult<ScrapRecordMainDO> pageResult = scrapRecordMainService.getScrapRecordMainPage(pageVO); PageResult<ScrapRecordMainDO> pageResult = scrapRecordMainService.getScrapRecordMainPage(pageVO);
return success(ScrapRecordMainConvert.INSTANCE.convertPage(pageResult)); return success(ScrapRecordMainConvert.INSTANCE.convertPage(pageResult));
} }
@PostMapping("/senior") @PostMapping("/senior")
@Operation(summary = "高级搜索获得报废出库记录主信息分页") @Operation(summary = "高级搜索获得报废出库记录主信息分页")
@PreAuthorize("@ss.hasPermission('wms:ScrapRecordMain:query')") @PreAuthorize("@ss.hasPermission('wms:ScrapRecordMain:query')")
public CommonResult<PageResult<ScrapRecordMainRespVO>> getScrapRecordMainSenior(@Valid @RequestBody CustomConditions conditions) { public CommonResult<PageResult<ScrapRecordMainRespVO>> getScrapRecordMainSenior(@Valid @RequestBody CustomConditions conditions) {
PageResult<ScrapRecordMainDO> pageResult = scrapRecordMainService.getScrapRecordMainSenior(conditions); PageResult<ScrapRecordMainDO> pageResult = scrapRecordMainService.getScrapRecordMainSenior(conditions);
PageResult<ScrapRecordMainRespVO> result = ScrapRecordMainConvert.INSTANCE.convertPage(pageResult); PageResult<ScrapRecordMainRespVO> result = ScrapRecordMainConvert.INSTANCE.convertPage(pageResult);
for(ScrapRecordMainRespVO vo : result.getList()) { for (ScrapRecordMainRespVO vo : result.getList()) {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段 //后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname()); vo.setCreator(user.getNickname());

13
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/sale/SaleMainConvert.java

@ -8,7 +8,10 @@ import com.win.module.wms.controller.sale.vo.SaleMainCreateReqVO;
import com.win.module.wms.controller.sale.vo.SaleMainExcelVO; import com.win.module.wms.controller.sale.vo.SaleMainExcelVO;
import com.win.module.wms.controller.sale.vo.SaleMainRespVO; import com.win.module.wms.controller.sale.vo.SaleMainRespVO;
import com.win.module.wms.controller.sale.vo.SaleMainUpdateReqVO; import com.win.module.wms.controller.sale.vo.SaleMainUpdateReqVO;
import com.win.module.wms.dal.dataobject.sale.SaleDetailDO;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers; import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.sale.SaleMainDO; import com.win.module.wms.dal.dataobject.sale.SaleMainDO;
@ -34,4 +37,14 @@ public interface SaleMainConvert {
List<SaleMainExcelVO> convertList02(List<SaleMainDO> list); List<SaleMainExcelVO> convertList02(List<SaleMainDO> list);
@Mappings({
@Mapping(source = "mainDO.number", target = "number"),
@Mapping(source = "mainDO.remark", target = "remark"),
@Mapping(source = "mainDO.createTime", target = "createTime"),
@Mapping(source = "mainDO.creator", target = "creator"),
@Mapping(source = "mainDO.updateTime", target = "updateTime"),
@Mapping(source = "mainDO.updater", target = "updater"),
@Mapping(source = "mainDO.available", target = "available"),
})
SaleMainExcelVO convert(SaleMainDO mainDO, SaleDetailDO detailDO);
} }

13
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/scrapJob/ScrapJobMainConvert.java

@ -8,8 +8,11 @@ import com.win.module.wms.controller.scrapJob.vo.ScrapJobMainCreateReqVO;
import com.win.module.wms.controller.scrapJob.vo.ScrapJobMainExcelVO; import com.win.module.wms.controller.scrapJob.vo.ScrapJobMainExcelVO;
import com.win.module.wms.controller.scrapJob.vo.ScrapJobMainRespVO; import com.win.module.wms.controller.scrapJob.vo.ScrapJobMainRespVO;
import com.win.module.wms.controller.scrapJob.vo.ScrapJobMainUpdateReqVO; import com.win.module.wms.controller.scrapJob.vo.ScrapJobMainUpdateReqVO;
import com.win.module.wms.dal.dataobject.scrapJob.ScrapJobDetailDO;
import com.win.module.wms.dal.dataobject.scrapRequest.ScrapRequestMainDO; import com.win.module.wms.dal.dataobject.scrapRequest.ScrapRequestMainDO;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers; import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.scrapJob.ScrapJobMainDO; import com.win.module.wms.dal.dataobject.scrapJob.ScrapJobMainDO;
@ -36,4 +39,14 @@ public interface ScrapJobMainConvert {
List<ScrapJobMainExcelVO> convertList02(List<ScrapJobMainDO> list); List<ScrapJobMainExcelVO> convertList02(List<ScrapJobMainDO> list);
ScrapJobMainDO convert(ScrapRequestMainDO mainDO); ScrapJobMainDO convert(ScrapRequestMainDO mainDO);
@Mappings({
@Mapping(source = "mainDO.number", target = "number"),
@Mapping(source = "mainDO.remark", target = "remark"),
@Mapping(source = "mainDO.createTime", target = "createTime"),
@Mapping(source = "mainDO.creator", target = "creator"),
@Mapping(source = "mainDO.updateTime", target = "updateTime"),
@Mapping(source = "mainDO.updater", target = "updater"),
})
ScrapJobMainExcelVO convert(ScrapJobMainDO mainDO, ScrapJobDetailDO detailDO);
} }

11
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/sale/SaleDetailMapper.java

@ -1,17 +1,17 @@
package com.win.module.wms.dal.mysql.sale; package com.win.module.wms.dal.mysql.sale;
import java.util.*;
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.mybatis.core.query.LambdaQueryWrapperX;
import com.win.framework.mybatis.core.mapper.BaseMapperX; import com.win.framework.mybatis.core.mapper.BaseMapperX;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.sale.vo.SaleDetailExportReqVO; import com.win.module.wms.controller.sale.vo.SaleDetailExportReqVO;
import com.win.module.wms.controller.sale.vo.SaleDetailPageReqVO; import com.win.module.wms.controller.sale.vo.SaleDetailPageReqVO;
import com.win.module.wms.dal.dataobject.sale.SaleDetailDO; import com.win.module.wms.dal.dataobject.sale.SaleDetailDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/** /**
* 销售订单子 Mapper * 销售订单子 Mapper
* *
@ -47,6 +47,7 @@ public interface SaleDetailMapper extends BaseMapperX<SaleDetailDO> {
.eqIfPresent(SaleDetailDO::getAvailable, reqVO.getAvailable()) .eqIfPresent(SaleDetailDO::getAvailable, reqVO.getAvailable())
.orderByDesc(SaleDetailDO::getId)); .orderByDesc(SaleDetailDO::getId));
} }
default PageResult<SaleDetailDO> selectSenior(CustomConditions conditions) { default PageResult<SaleDetailDO> selectSenior(CustomConditions conditions) {
return selectPage(conditions, QueryWrapperUtils.structure(conditions)); return selectPage(conditions, QueryWrapperUtils.structure(conditions));
} }
@ -79,4 +80,8 @@ public interface SaleDetailMapper extends BaseMapperX<SaleDetailDO> {
.orderByDesc(SaleDetailDO::getId)); .orderByDesc(SaleDetailDO::getId));
} }
default List<SaleDetailDO> selectList(Long masterId) {
return selectList(new LambdaQueryWrapperX<SaleDetailDO>()
.eq(SaleDetailDO::getMasterId, masterId));
}
} }

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/scrapJob/ScrapJobMainMapper.java

@ -120,4 +120,8 @@ public interface ScrapJobMainMapper extends BaseMapperX<ScrapJobMainDO> {
.eq(ScrapJobMainDO::getRequestNumber, requestNumber) .eq(ScrapJobMainDO::getRequestNumber, requestNumber)
.ne(ScrapJobMainDO::getStatus, OrderStatusEnum.CLOSED.getCode())); .ne(ScrapJobMainDO::getStatus, OrderStatusEnum.CLOSED.getCode()));
} }
default List<ScrapJobMainDO> selectSeniorList(CustomConditions conditions){
return selectList(QueryWrapperUtils.structure(conditions));
}
} }

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/sale/SaleDetailService.java

@ -78,4 +78,5 @@ public interface SaleDetailService {
*/ */
List<SaleDetailDO> getSaleDetailList(SaleDetailExportReqVO exportReqVO); List<SaleDetailDO> getSaleDetailList(SaleDetailExportReqVO exportReqVO);
List<SaleDetailDO> selectList(Long masterId);
} }

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/sale/SaleDetailServiceImpl.java

@ -90,4 +90,9 @@ public class SaleDetailServiceImpl implements SaleDetailService {
return saleDetailMapper.selectList(exportReqVO); return saleDetailMapper.selectList(exportReqVO);
} }
@Override
public List<SaleDetailDO> selectList(Long masterId) {
return saleDetailMapper.selectList(masterId);
}
} }

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/scrapJob/ScrapJobDetailService.java

@ -82,8 +82,8 @@ public interface ScrapJobDetailService {
/** /**
* 查询子列表数据根据masterId * 查询子列表数据根据masterId
* @param id 查询masterId * @param masterId 查询masterId
* @return 任务数据列表 * @return 任务数据列表
*/ */
List<ScrapJobDetailDO> selectList(Long id); List<ScrapJobDetailDO> selectList(Long masterId);
} }

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/scrapJob/ScrapJobMainService.java

@ -130,4 +130,6 @@ public interface ScrapJobMainService {
* @return pda未处理的任务数 * @return pda未处理的任务数
*/ */
Long getScrapJobCountPda(); Long getScrapJobCountPda();
List<ScrapJobMainDO> getScrapJobMainList(CustomConditions conditions);
} }

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/scrapJob/ScrapJobMainServiceImpl.java

@ -355,4 +355,9 @@ public class ScrapJobMainServiceImpl implements ScrapJobMainService {
queryWrapper.eq("`status`", JobStatusEnum.PENDING.getCode()); queryWrapper.eq("`status`", JobStatusEnum.PENDING.getCode());
return scrapJobMainMapper.selectCount(queryWrapper); return scrapJobMainMapper.selectCount(queryWrapper);
} }
@Override
public List<ScrapJobMainDO> getScrapJobMainList(CustomConditions conditions) {
return scrapJobMainMapper.selectSeniorList(conditions);
}
} }

Loading…
Cancel
Save