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 PACK_UNIT_TYPE="pack_unit_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;
import com.win.framework.common.pojo.CommonResult;
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.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog;
import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.wms.controller.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.RepleinshRecordMainDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.repleinshRecord.RepleinshRecordDetailService;
import org.springframework.web.bind.annotation.*;
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 com.win.module.wms.service.repleinshRecord.RepleinshRecordMainService;
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.validation.*;
import javax.servlet.http.*;
import java.util.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
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 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;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@Tag(name = "管理后台 - 补料记录主")
@RestController
@ -64,7 +59,7 @@ public class RepleinshRecordMainController {
public CommonResult<PageResult<RepleinshRecordMainRespVO>> getRepleinshRecordMainSenior(@Valid @RequestBody CustomConditions conditions) {
PageResult<RepleinshRecordMainDO> pageResult = repleinshRecordMainService.getRepleinshRecordMainSenior(conditions);
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()));
//后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname());
@ -96,7 +91,7 @@ public class RepleinshRecordMainController {
public CommonResult<PageResult<RepleinshRecordMainRespVO>> getRepleinshRecordMainPage(@Valid RepleinshRecordMainPageReqVO pageVO) {
PageResult<RepleinshRecordMainDO> pageResult = repleinshRecordMainService.getRepleinshRecordMainPage(pageVO);
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()));
//后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname());
@ -116,9 +111,9 @@ public class RepleinshRecordMainController {
mapDropDown.put(41, uom);
List<RepleinshRecordMainExcelVO> resultList = new ArrayList<>();
// 导出
for(RepleinshRecordMainDO mainDO : list) {
for (RepleinshRecordMainDO mainDO : list) {
List<RepleinshRecordDetailDO> subList = repleinshRecordDetailService.selectList(mainDO.getId());
for(RepleinshRecordDetailDO detailDO : subList) {
for (RepleinshRecordDetailDO detailDO : subList) {
RepleinshRecordMainExcelVO vo = RepleinshRecordMainConvert.INSTANCE.convert(mainDO, detailDO);
AdminUserRespDTO user = userApi.getUser(Long.valueOf(mainDO.getCreator()));
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;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.win.module.wms.enums.DictTypeConstants;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
@ -23,6 +24,9 @@ import com.win.framework.excel.core.convert.DictConvert;
@Data
public class RepleinshRecordMainExcelVO {
@ExcelProperty("单据号")
private String number;
@ExcelProperty("申请单号")
private String requestNumber;
@ -36,23 +40,24 @@ public class RepleinshRecordMainExcelVO {
private String inTransactionType;
@ExcelProperty("执行时间")
@ColumnWidth(value = 16)
private LocalDateTime executeTime;
@ExcelProperty("生效日期")
@ColumnWidth(value = 16)
private LocalDateTime activeDate;
@ExcelProperty("申请时间")
@ColumnWidth(value = 16)
private LocalDateTime requestTime;
@ExcelProperty("截止时间")
@ColumnWidth(value = 16)
private LocalDateTime dueTime;
@ExcelProperty("部门")
private String departmentCode;
@ExcelProperty("单据号")
private String number;
@ExcelProperty("业务类型")
private String businessType;
@ -60,6 +65,7 @@ public class RepleinshRecordMainExcelVO {
private String remark;
@ExcelProperty("创建时间")
@ColumnWidth(value = 16)
private LocalDateTime createTime;
@ExcelProperty("创建者名称")
@ -82,8 +88,6 @@ public class RepleinshRecordMainExcelVO {
@ExcelProperty("到仓库代码")
private String toWarehouseCode;
@ExcelProperty("到库区代码范围")
private String toAreaCodes;
@ -92,6 +96,7 @@ public class RepleinshRecordMainExcelVO {
private String available;
@ExcelProperty("修改时间")
@ColumnWidth(value = 16)
private LocalDateTime updateTime;
@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.module.system.api.user.AdminUserApi;
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.convert.issueRequest.IssueRequestMainConvert;
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.RepleinshRequestMainDO;
import com.win.module.wms.enums.DictTypeConstants;
@ -77,13 +73,14 @@ public class RepleinshRequestMainController {
repleinshRequestMainService.deleteRepleinshRequestMain(id);
return success(true);
}
@PostMapping("/senior")
@Operation(summary = "高级搜索获得物料基本信息分页")
@PreAuthorize("@ss.hasPermission('wms:repleinsh-request-main:query')")
public CommonResult<PageResult<RepleinshRequestMainRespVO>> getRepleinshRequestMainSenior(@Valid @RequestBody CustomConditions conditions) {
PageResult<RepleinshRequestMainDO> pageResult = repleinshRequestMainService.getRepleinshRequestMainSenior(conditions);
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()));
//后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname());
@ -116,7 +113,7 @@ public class RepleinshRequestMainController {
public CommonResult<PageResult<RepleinshRequestMainRespVO>> getRepleinshRequestMainPage(@Valid RepleinshRequestMainPageReqVO pageVO) {
PageResult<RepleinshRequestMainDO> pageResult = repleinshRequestMainService.getRepleinshRequestMainPage(pageVO);
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()));
//后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname());
@ -134,11 +131,6 @@ public class RepleinshRequestMainController {
//组装vo
Map<Integer, String[]> mapDropDown = new HashMap<>();
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);
}
@ -152,23 +144,32 @@ public class RepleinshRequestMainController {
//组装vo
Map<Integer, String[]> mapDropDown = new HashMap<>();
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);
}
private List<RepleinshRequestMainExcelVO> getExcelVo(List<RepleinshRequestMainDO> list, Map<Integer, String[]> mapDropDown) {
// String[] available = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
// mapDropDown.put(13, available);
String[] locationType = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.LOCATION_TYPE);
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<>();
// 导出
for(RepleinshRequestMainDO mainDO : list) {
for (RepleinshRequestMainDO mainDO : list) {
List<RepleinshRequestDetailDO> subList = repleinshRequestDetailService.selectList(mainDO.getId());
for(RepleinshRequestDetailDO detailDO : subList) {
for (RepleinshRequestDetailDO detailDO : subList) {
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);
}
}
@ -205,7 +206,7 @@ public class RepleinshRequestMainController {
List<RepleinshRequestMainImportErrorVO> errorList = repleinshRequestMainService.importRepleinshRequestMainList(createReqVOList, mode, updatePart);
Map<String, Object> returnMap = new HashMap<>();
returnMap.put("errorCount", errorList.size());
if(!errorList.isEmpty()) {
if (!errorList.isEmpty()) {
String url = ExcelUtils.writeLocalFile("补料申请基本信息导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xlsx", "错误列表", errorList);
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;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.win.framework.excel.core.annotations.Colour;
import com.win.module.wms.enums.DictTypeConstants;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
@ -12,6 +14,7 @@ import java.time.LocalDateTime;
import com.alibaba.excel.annotation.ExcelProperty;
import com.win.framework.excel.core.annotations.DictFormat;
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
public class RepleinshRequestMainExcelVO {
@ExcelProperty("单据号")
@Colour(IndexedColors.LIGHT_YELLOW)
private String number;
@ExcelProperty("从仓库代码")
@Colour(IndexedColors.LIGHT_YELLOW)
private String fromWarehouseCode;
@ExcelProperty(value = "从库区类型范围", converter = DictConvert.class)
@DictFormat("location_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
@Colour(IndexedColors.LIGHT_YELLOW)
private String fromAreaTypes;
@ExcelProperty("从库区代码范围")
@Colour(IndexedColors.LIGHT_YELLOW)
private String fromAreaCodes;
@ExcelProperty("单据号")
private String number;
@ExcelProperty("业务类型")
@Colour(IndexedColors.LIGHT_YELLOW)
private String businessType;
@ExcelProperty("备注")
@Colour(IndexedColors.LIGHT_YELLOW)
private String remark;
@ExcelProperty("创建时间")
@ColumnWidth(value = 16)
@Colour(IndexedColors.LIGHT_YELLOW)
private LocalDateTime createTime;
@ExcelProperty("创建者用户名")
@Colour(IndexedColors.LIGHT_YELLOW)
private String creator;
@ExcelProperty("申请时间")
@ColumnWidth(value = 16)
@Colour(IndexedColors.LIGHT_YELLOW)
private LocalDateTime requestTime;
@ExcelProperty("截止时间")
@ColumnWidth(value = 16)
@Colour(IndexedColors.LIGHT_YELLOW)
private LocalDateTime dueTime;
@ExcelProperty("部门")
@Colour(IndexedColors.LIGHT_YELLOW)
private String departmentCode;
@ExcelProperty(value = "状态", converter = DictConvert.class)
@DictFormat("request_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
@Colour(IndexedColors.LIGHT_YELLOW)
private String status;
@ExcelProperty("最后更新时间")
@ColumnWidth(value = 16)
@Colour(IndexedColors.LIGHT_YELLOW)
private LocalDateTime updateTime;
@ExcelProperty("最后更新者用户名")
@Colour(IndexedColors.LIGHT_YELLOW)
private String updater;
@ExcelProperty("到仓库代码")
@Colour(IndexedColors.LIGHT_YELLOW)
private String toWarehouseCode;
@ExcelProperty(value = "到库区类型范围", converter = DictConvert.class)
@DictFormat(DictTypeConstants.LOCATION_TYPE)
@Colour(IndexedColors.LIGHT_YELLOW)
private String toAreaTypes;
@ExcelProperty("到库区代码范围")
@Colour(IndexedColors.LIGHT_YELLOW)
private String toAreaCodes;
@ExcelProperty(value = "自动提交", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
@Colour(IndexedColors.LIGHT_YELLOW)
private String autoCommit;
@ExcelProperty(value = "自动通过", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
@Colour(IndexedColors.LIGHT_YELLOW)
private String autoAgree;
@ExcelProperty(value = "自动执行", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
@Colour(IndexedColors.LIGHT_YELLOW)
private String autoExecute;
@ExcelProperty(value = "直接生成记录", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
@Colour(IndexedColors.LIGHT_YELLOW)
private String directCreateRecord;
//子表
@ExcelProperty(value = "库存状态", converter = DictConvert.class)
@DictFormat(DictTypeConstants.INVENTORY_STATUS)
private String inventoryStatus;
@ -127,6 +155,4 @@ public class RepleinshRequestMainExcelVO {
@ExcelProperty("到货主代码")
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;
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.OnlyOne;
import com.win.framework.excel.core.annotations.ExcelValid;
import com.win.framework.excel.core.convert.DictConvert;
import com.win.module.wms.enums.DictTypeConstants;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@ -32,26 +31,37 @@ public class RepleinshRequestMainImportVO {
//主表数据
@ExcelProperty("单据号")
@ExcelValid(message = "必填")
@Colour(IndexedColors.LIGHT_YELLOW)
private String number;
@ExcelProperty("截止时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ExcelValid(message = "必填")
@Colour(IndexedColors.LIGHT_YELLOW)
private LocalDateTime dueTime;
@ExcelProperty("从仓库代码")
@ExcelValid(message = "必填")
@Colour(IndexedColors.LIGHT_YELLOW)
private String fromWarehouseCode;
//子表数据
@ExcelProperty("到库位代码")
@ExcelValid(message = "必填")
private String toLocationCode;
@ExcelProperty("物料代码")
@ExcelValid(message = "必填")
private String itemCode;
@ExcelProperty("数量")
@ExcelValid(message = "必填")
private String qty;
@ExcelProperty(value = "计量单位", converter = DictConvert.class)
@DictFormat(DictTypeConstants.UOM)
@ExcelValid(message = "必填")
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) {
PageResult<RuleDO> pageResult = ruleService.getRuleSenior(conditions);
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()));
//后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname());
@ -117,7 +117,7 @@ public class RuleController {
@PreAuthorize("@ss.hasPermission('wms:rule:export')")
@OperateLog(type = EXPORT)
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<>();
List<RuleExcelVO> resultList = this.getExcelVo(list, 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) {
// 导出 Excel
List<RuleExcelVO> resultList = RuleConvert.INSTANCE.convertList02(list);
for(RuleExcelVO vo : resultList) {
for (RuleExcelVO vo : resultList) {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段
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.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 java.time.LocalDateTime;
@ -17,6 +14,7 @@ import java.time.LocalDateTime;
*/
@Data
public class RuleExcelVO {
@ExcelProperty("策略代码")
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.CustomConditions;
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.ExcelUtils;
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.wms.controller.sale.vo.*;
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.enums.DictTypeConstants;
import com.win.module.wms.service.sale.SaleDetailService;
import com.win.module.wms.service.sale.SaleMainService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
@ -40,6 +44,8 @@ public class SaleMainController {
@Resource
private SaleMainService saleMainService;
@Resource
private SaleDetailService saleDetailService;
@Resource
private AdminUserApi userApi;
@ -58,13 +64,14 @@ public class SaleMainController {
saleMainService.updateSaleMain(updateReqVO);
return success(true);
}
@PostMapping("/senior")
@Operation(summary = "高级搜索获得销售订单主信息分页")
@PreAuthorize("@ss.hasPermission('wms:sale-main:query')")
public CommonResult<PageResult<SaleMainRespVO>> getSaleMainSenior(@Valid @RequestBody CustomConditions conditions) {
PageResult<SaleMainDO> pageResult = saleMainService.getSaleMainSenior(conditions);
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()));
//后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname());
@ -115,13 +122,50 @@ public class SaleMainController {
HttpServletResponse response) throws IOException {
List<SaleMainDO> list = saleMainService.getSaleMainList(exportReqVO);
// 导出 Excel
List<SaleMainExcelVO> datas = SaleMainConvert.INSTANCE.convertList02(list);
for(SaleMainExcelVO vo : datas) {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname());
Map<Integer, String[]> mapDropDown = new HashMap<>();
List<SaleMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
ExcelUtils.write(response, "销售订单主.xls", "数据", SaleMainExcelVO.class, resultList, mapDropDown);
}
// @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")
@ -156,7 +200,7 @@ public class SaleMainController {
List<SaleMainImportErrorVO> errorList = saleMainService.importSaleMainList(createReqVOList, mode, updatePart);
Map<String, Object> returnMap = new HashMap<>();
returnMap.put("errorCount", errorList.size());
if(!errorList.isEmpty()) {
if (!errorList.isEmpty()) {
String url = ExcelUtils.writeLocalFile("销售订单基本信息导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xlsx", "错误列表", errorList);
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;
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 lombok.*;
import java.util.*;
@ -12,6 +14,7 @@ import java.time.LocalDateTime;
import com.alibaba.excel.annotation.ExcelProperty;
import com.win.framework.excel.core.annotations.DictFormat;
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
public class SaleMainExcelVO {
@ExcelProperty("单据号")
@Colour(IndexedColors.LIGHT_YELLOW)
private String number;
@ExcelProperty("供应商代码")
@Colour(IndexedColors.LIGHT_YELLOW)
private String customerCode;
@ExcelProperty(value = "订单类型", converter = DictConvert.class)
@DictFormat("sale_order_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
@Colour(IndexedColors.LIGHT_YELLOW)
private String type;
@ExcelProperty("订单日期")
@ColumnWidth(value = 16)
@Colour(IndexedColors.LIGHT_YELLOW)
private LocalDateTime orderDate;
@ExcelProperty("截止日期")
@ColumnWidth(value = 16)
@Colour(IndexedColors.LIGHT_YELLOW)
private LocalDateTime dueDate;
@ExcelProperty("版本")
@Colour(IndexedColors.LIGHT_YELLOW)
private String version;
@ExcelProperty("税率")
@Colour(IndexedColors.LIGHT_YELLOW)
private BigDecimal taxRate;
@ExcelProperty("联系人姓名")
@Colour(IndexedColors.LIGHT_YELLOW)
private String contactName;
@ExcelProperty("联系人电话")
@Colour(IndexedColors.LIGHT_YELLOW)
private String contactPhone;
@ExcelProperty("联系人电子邮件")
@Colour(IndexedColors.LIGHT_YELLOW)
private String contactEmail;
@ExcelProperty("单据号")
private String number;
@ExcelProperty("业务类型")
@Colour(IndexedColors.LIGHT_YELLOW)
private String businessType;
@ExcelProperty("备注")
@Colour(IndexedColors.LIGHT_YELLOW)
private String remark;
@ExcelProperty("创建时间")
@ColumnWidth(value = 16)
@Colour(IndexedColors.LIGHT_YELLOW)
private LocalDateTime createTime;
@ExcelProperty("创建者用户名")
@Colour(IndexedColors.LIGHT_YELLOW)
private String creator;
@ExcelProperty("最后更新时间")
@ColumnWidth(value = 16)
@Colour(IndexedColors.LIGHT_YELLOW)
private LocalDateTime updateTime;
@ExcelProperty("最后更新者用户名")
@Colour(IndexedColors.LIGHT_YELLOW)
private String updater;
@ExcelProperty("当前阶段")
@Colour(IndexedColors.LIGHT_YELLOW)
private Integer currentStage;
@ExcelProperty("是否可用")
@ExcelProperty(value = "是否可用", converter = DictConvert.class)
@DictFormat("true_false")
@Colour(IndexedColors.LIGHT_YELLOW)
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")
@Operation(summary = "获得导销售价格单信息模板")
@Operation(summary = "获得导销售价格单信息模板")
public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo
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.CustomConditions;
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.operatelog.core.annotations.OperateLog;
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.dal.dataobject.scrapJob.ScrapJobDetailDO;
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.ScrapJobMainService;
import io.swagger.v3.oas.annotations.Operation;
@ -26,10 +28,7 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.*;
import static com.win.framework.common.pojo.CommonResult.success;
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) {
return success(scrapJobMainService.createScrapJobMain(createReqVO));
}
@PostMapping("/senior")
@Operation(summary = "高级搜索获得物料基本信息分页")
@PreAuthorize("@ss.hasPermission('wms:ScrapJobMain:query')")
public CommonResult<PageResult<ScrapJobMainRespVO>> getScrapJobMainSenior(@Valid @RequestBody CustomConditions conditions) {
PageResult<ScrapJobMainDO> pageResult = scrapJobMainService.getScrapJobMainSenior(conditions);
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()));
//后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname());
}
return success(result);
}
@PutMapping("/update")
@Operation(summary = "更新报废出库任务主")
@PreAuthorize("@ss.hasPermission('wms:scrap-job-main:update')")
@ -119,13 +120,52 @@ public class ScrapJobMainController {
HttpServletResponse response) throws IOException {
List<ScrapJobMainDO> list = scrapJobMainService.getScrapJobMainList(exportReqVO);
// 导出 Excel
List<ScrapJobMainExcelVO> datas = ScrapJobMainConvert.INSTANCE.convertList02(list);
for(ScrapJobMainExcelVO vo : datas) {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname());
Map<Integer, String[]> mapDropDown = new HashMap<>();
List<ScrapJobMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
ExcelUtils.write(response, "补料申请.xlsx", "补料申请", ScrapJobMainExcelVO.class, resultList, mapDropDown);
}
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")
@ -135,9 +175,10 @@ public class ScrapJobMainController {
public CommonResult<ScrapJobMainRespVO> getScrapJobById(@RequestParam("id") Long id) {
ScrapJobMainDO scrapJobMain = scrapJobMainService.getScrapJobMain(id);
ScrapJobMainRespVO result = ScrapJobMainConvert.INSTANCE.convert(scrapJobMain);
if(result==null) {
if (result == null) {
return success(result);
};
}
;
ScrapJobDetailExportReqVO reqVO = new ScrapJobDetailExportReqVO();
reqVO.setMasterId(result.getId());
List<ScrapJobDetailDO> scrapJobDetailList = scrapJobDetailService.getScrapJobDetailList(reqVO);
@ -150,11 +191,11 @@ public class ScrapJobMainController {
@Operation(summary = "APP获得报废出库任务数量根据任务状态")
@Parameter(name = "types", description = "类型数组", required = false, example = "\"types\":[\"1\",\"2\"]")
@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<>();
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");//默认不传为执行中的
}else{
} else {
list = map.get("types");
}
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;
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 lombok.*;
import java.math.BigDecimal;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
@ -14,6 +18,7 @@ import java.time.LocalDateTime;
import com.alibaba.excel.annotation.ExcelProperty;
import com.win.framework.excel.core.annotations.DictFormat;
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
public class ScrapJobMainExcelVO {
@ExcelProperty("单据号")
@Colour(IndexedColors.LIGHT_YELLOW)
private String number;
@ExcelProperty("申请单号")
@Colour(IndexedColors.LIGHT_YELLOW)
private String requestNumber;
@ExcelProperty("从仓库代码")
@Colour(IndexedColors.LIGHT_YELLOW)
private String fromWarehouseCode;
@ExcelProperty("申请时间")
@ColumnWidth(value = 16)
@Colour(IndexedColors.LIGHT_YELLOW)
private LocalDateTime requestTime;
@ExcelProperty("要求截止时间")
@ColumnWidth(value = 16)
@Colour(IndexedColors.LIGHT_YELLOW)
private LocalDateTime requestDueTime;
@ExcelProperty(value = "状态", converter = DictConvert.class)
@DictFormat("job_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
@Colour(IndexedColors.LIGHT_YELLOW)
private String status;
@ExcelProperty("过期时间")
@ColumnWidth(value = 16)
@Colour(IndexedColors.LIGHT_YELLOW)
private LocalDateTime expiredTime;
@ExcelProperty("最后更新时间")
@ColumnWidth(value = 16)
@Colour(IndexedColors.LIGHT_YELLOW)
private LocalDateTime updateTime;
@ExcelProperty("最后更新者名称")
@Colour(IndexedColors.LIGHT_YELLOW)
private String updater;
@ExcelProperty(value = "状态", converter = DictConvert.class)
@DictFormat("job_stage_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
@Colour(IndexedColors.LIGHT_YELLOW)
private String jobStageStatus;
@ExcelProperty("优先级")
@Colour(IndexedColors.LIGHT_YELLOW)
private Integer priority;
@ExcelProperty("优先级增量")
@Colour(IndexedColors.LIGHT_YELLOW)
private Integer priorityIncrement;
@ExcelProperty("部门")
@Colour(IndexedColors.LIGHT_YELLOW)
private String departmentCode;
@ExcelProperty("承接人用户ID")
@Colour(IndexedColors.LIGHT_YELLOW)
private String acceptUserId;
@ExcelProperty("承接时间")
@ColumnWidth(value = 16)
@Colour(IndexedColors.LIGHT_YELLOW)
private LocalDateTime acceptTime;
@ExcelProperty("完成人用户ID")
@Colour(IndexedColors.LIGHT_YELLOW)
private String completeUserId;
@ExcelProperty("完成时间")
@ColumnWidth(value = 16)
@Colour(IndexedColors.LIGHT_YELLOW)
private LocalDateTime completeTime;
@ExcelProperty(value = "从库区类型范围", converter = DictConvert.class)
@DictFormat("location_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
@Colour(IndexedColors.LIGHT_YELLOW)
private String fromAreaTypes;
@ExcelProperty(value = "到库区类型范围", converter = DictConvert.class)
@DictFormat("location_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
@Colour(IndexedColors.LIGHT_YELLOW)
private String toAreaTypes;
@ExcelProperty("单据号")
private String number;
@ExcelProperty("业务类型")
@Colour(IndexedColors.LIGHT_YELLOW)
private String businessType;
@ExcelProperty("备注")
@Colour(IndexedColors.LIGHT_YELLOW)
private String remark;
@ExcelProperty("创建时间")
@ColumnWidth(value = 16)
@Colour(IndexedColors.LIGHT_YELLOW)
private LocalDateTime createTime;
@ExcelProperty("创建者名称")
@Colour(IndexedColors.LIGHT_YELLOW)
private String creator;
@ExcelProperty("从库区代码范围")
@Colour(IndexedColors.LIGHT_YELLOW)
private String fromAreaCodes;
@ExcelProperty("自动完成")
@ExcelProperty(value = "自动完成", converter = DictConvert.class)
@DictFormat("true_false")
@Colour(IndexedColors.LIGHT_YELLOW)
private String autoComplete;
@ExcelProperty("允许修改库位")
@ExcelProperty(value = "允许修改库位", converter = DictConvert.class)
@DictFormat("true_false")
@Colour(IndexedColors.LIGHT_YELLOW)
private String allowModifyLocation;
@ExcelProperty("允许修改数量")
@ExcelProperty(value = "允许修改数量", converter = DictConvert.class)
@DictFormat("true_false")
@Colour(IndexedColors.LIGHT_YELLOW)
private String allowModifyQty;
@ExcelProperty("允许大于推荐数量")
@ExcelProperty(value = "允许大于推荐数量", converter = DictConvert.class)
@DictFormat("true_false")
@Colour(IndexedColors.LIGHT_YELLOW)
private String allowBiggerQty;
@ExcelProperty("允许小于推荐数量")
@ExcelProperty(value = "允许小于推荐数量", converter = DictConvert.class)
@DictFormat("true_false")
@Colour(IndexedColors.LIGHT_YELLOW)
private String allowSmallerQty;
@ExcelProperty("允许修改库存状态")
@ExcelProperty(value = "允许修改库存状态", converter = DictConvert.class)
@DictFormat("true_false")
@Colour(IndexedColors.LIGHT_YELLOW)
private String allowModifyInventoryStatus;
@ExcelProperty("允许连续扫描")
@ExcelProperty(value = "允许连续扫描", converter = DictConvert.class)
@DictFormat("true_false")
@Colour(IndexedColors.LIGHT_YELLOW)
private String allowContinuousScanning;
@ExcelProperty("允许部分完成")
@ExcelProperty(value = "允许部分完成", converter = DictConvert.class)
@DictFormat("true_false")
@Colour(IndexedColors.LIGHT_YELLOW)
private String allowPartialComplete;
@ExcelProperty("允许修改批次")
@ExcelProperty(value = "允许修改批次", converter = DictConvert.class)
@DictFormat("true_false")
@Colour(IndexedColors.LIGHT_YELLOW)
private String allowModifyBatch;
@ExcelProperty("允许修改箱码")
@ExcelProperty(value = "允许修改箱码", converter = DictConvert.class)
@DictFormat("true_false")
@Colour(IndexedColors.LIGHT_YELLOW)
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);
return success(ScrapRecordMainConvert.INSTANCE.convertPage(pageResult));
}
@PostMapping("/senior")
@Operation(summary = "高级搜索获得报废出库记录主信息分页")
@PreAuthorize("@ss.hasPermission('wms:ScrapRecordMain:query')")
public CommonResult<PageResult<ScrapRecordMainRespVO>> getScrapRecordMainSenior(@Valid @RequestBody CustomConditions conditions) {
PageResult<ScrapRecordMainDO> pageResult = scrapRecordMainService.getScrapRecordMainSenior(conditions);
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()));
//后端创建个字段作为前端展示的虚拟字段
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.SaleMainRespVO;
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.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.sale.SaleMainDO;
@ -34,4 +37,14 @@ public interface SaleMainConvert {
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.ScrapJobMainRespVO;
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 org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.scrapJob.ScrapJobMainDO;
@ -36,4 +39,14 @@ public interface ScrapJobMainConvert {
List<ScrapJobMainExcelVO> convertList02(List<ScrapJobMainDO> list);
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;
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.query.LambdaQueryWrapperX;
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.SaleDetailPageReqVO;
import com.win.module.wms.dal.dataobject.sale.SaleDetailDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 销售订单子 Mapper
*
@ -47,6 +47,7 @@ public interface SaleDetailMapper extends BaseMapperX<SaleDetailDO> {
.eqIfPresent(SaleDetailDO::getAvailable, reqVO.getAvailable())
.orderByDesc(SaleDetailDO::getId));
}
default PageResult<SaleDetailDO> selectSenior(CustomConditions conditions) {
return selectPage(conditions, QueryWrapperUtils.structure(conditions));
}
@ -79,4 +80,8 @@ public interface SaleDetailMapper extends BaseMapperX<SaleDetailDO> {
.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)
.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> 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);
}
@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
* @param id 查询masterId
* @param masterId 查询masterId
* @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未处理的任务数
*/
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());
return scrapJobMainMapper.selectCount(queryWrapper);
}
@Override
public List<ScrapJobMainDO> getScrapJobMainList(CustomConditions conditions) {
return scrapJobMainMapper.selectSeniorList(conditions);
}
}

Loading…
Cancel
Save