Browse Source

发料记录

master
陈薪名 2 years ago
parent
commit
af4637b52b
  1. 24
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRecord/IssueRecordDetailController.java
  2. 76
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRecord/IssueRecordMainController.java
  3. 99
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRecord/vo/IssueRecordMainExcelVO.java
  4. 16
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRecord/IssueRecordMainConvert.java
  5. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/issueRecord/IssueRecordDetailDO.java
  6. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/issueRecord/IssueRecordDetailMapper.java
  7. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/issueRecord/IssueRecordMainMapper.java
  8. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRecord/IssueRecordDetailService.java
  9. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRecord/IssueRecordDetailServiceImpl.java
  10. 9
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRecord/IssueRecordMainService.java
  11. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRecord/IssueRecordMainServiceImpl.java

24
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRecord/IssueRecordDetailController.java

@ -41,30 +41,6 @@ public class IssueRecordDetailController {
@Resource @Resource
private AdminUserApi userApi; private AdminUserApi userApi;
@PostMapping("/create")
@Operation(summary = "创建发料记录子")
@PreAuthorize("@ss.hasPermission('wms:issue-record-detail:create')")
public CommonResult<Long> createIssueRecordDetail(@Valid @RequestBody IssueRecordDetailCreateReqVO createReqVO) {
return success(issueRecordDetailService.createIssueRecordDetail(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新发料记录子")
@PreAuthorize("@ss.hasPermission('wms:issue-record-detail:update')")
public CommonResult<Boolean> updateIssueRecordDetail(@Valid @RequestBody IssueRecordDetailUpdateReqVO updateReqVO) {
issueRecordDetailService.updateIssueRecordDetail(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除发料记录子")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:issue-record-detail:delete')")
public CommonResult<Boolean> deleteIssueRecordDetail(@RequestParam("id") Long id) {
issueRecordDetailService.deleteIssueRecordDetail(id);
return success(true);
}
@GetMapping("/get") @GetMapping("/get")
@Operation(summary = "获得发料记录子") @Operation(summary = "获得发料记录子")
@Parameter(name = "id", description = "编号", required = true, example = "1024") @Parameter(name = "id", description = "编号", required = true, example = "1024")

76
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRecord/IssueRecordMainController.java

@ -1,8 +1,12 @@
package com.win.module.wms.controller.issueRecord; package com.win.module.wms.controller.issueRecord;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.wms.dal.dataobject.issueRecord.IssueRecordDetailDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.issueRecord.IssueRecordDetailService;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -36,36 +40,14 @@ import com.win.module.wms.service.issueRecord.IssueRecordMainService;
@Validated @Validated
public class IssueRecordMainController { public class IssueRecordMainController {
@Resource
private IssueRecordDetailService issueRecordDetailService;
@Resource @Resource
private IssueRecordMainService issueRecordMainService; private IssueRecordMainService issueRecordMainService;
@Resource @Resource
private AdminUserApi userApi; private AdminUserApi userApi;
@PostMapping("/create")
@Operation(summary = "创建发料记录主")
@PreAuthorize("@ss.hasPermission('wms:issue-record-main:create')")
public CommonResult<Long> createIssueRecordMain(@Valid @RequestBody IssueRecordMainCreateReqVO createReqVO) {
return success(issueRecordMainService.createIssueRecordMain(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新发料记录主")
@PreAuthorize("@ss.hasPermission('wms:issue-record-main:update')")
public CommonResult<Boolean> updateIssueRecordMain(@Valid @RequestBody IssueRecordMainUpdateReqVO updateReqVO) {
issueRecordMainService.updateIssueRecordMain(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除发料记录主")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:issue-record-main:delete')")
public CommonResult<Boolean> deleteIssueRecordMain(@RequestParam("id") Long id) {
issueRecordMainService.deleteIssueRecordMain(id);
return success(true);
}
@GetMapping("/get") @GetMapping("/get")
@Operation(summary = "获得发料记录主") @Operation(summary = "获得发料记录主")
@Parameter(name = "id", description = "编号", required = true, example = "1024") @Parameter(name = "id", description = "编号", required = true, example = "1024")
@ -105,21 +87,53 @@ public class IssueRecordMainController {
} }
return success(result); return success(result);
} }
private List<IssueRecordMainExcelVO> getExcelVo(List<IssueRecordMainDO> list, Map<Integer, String[]> mapDropDown) {
String[] useOnTheWayLocation = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(21, useOnTheWayLocation);
String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS);
mapDropDown.put(28, inventoryStatus);
String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(49, uom);
List<IssueRecordMainExcelVO> resultList = new ArrayList<>();
// 导出
for(IssueRecordMainDO mainDO : list) {
List<IssueRecordDetailDO> subList = issueRecordDetailService.selectList(mainDO.getId());
for(IssueRecordDetailDO detailDO : subList) {
IssueRecordMainExcelVO vo = IssueRecordMainConvert.INSTANCE.convert(mainDO, detailDO);
AdminUserRespDTO user = userApi.getUser(Long.valueOf(mainDO.getCreator()));
vo.setCreator(user.getNickname());
resultList.add(vo);
}
}
return resultList;
}
@GetMapping("/export-excel") @GetMapping("/export-excel")
@Operation(summary = "导出发料记录主 Excel") @Operation(summary = "导出发料记录 Excel")
@PreAuthorize("@ss.hasPermission('wms:issue-record-main:export')") @PreAuthorize("@ss.hasPermission('wms:issue-record-main:export')")
@OperateLog(type = EXPORT) @OperateLog(type = EXPORT)
public void exportIssueRecordMainExcel(@Valid IssueRecordMainExportReqVO exportReqVO, public void exportIssueRecordMainExcel(@Valid IssueRecordMainExportReqVO exportReqVO,
HttpServletResponse response) throws IOException { HttpServletResponse response) throws IOException {
List<IssueRecordMainDO> list = issueRecordMainService.getIssueRecordMainList(exportReqVO); List<IssueRecordMainDO> list = issueRecordMainService.getIssueRecordMainList(exportReqVO);
//组装vo
Map<Integer, String[]> mapDropDown = new HashMap<>();
List<IssueRecordMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
// 导出 Excel // 导出 Excel
List<IssueRecordMainExcelVO> datas = IssueRecordMainConvert.INSTANCE.convertList02(list); ExcelUtils.write(response, "发料记录.xlsx", "发料记录", IssueRecordMainExcelVO.class, resultList, mapDropDown);
for(IssueRecordMainExcelVO vo : datas) {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname());
} }
ExcelUtils.write(response, "发料记录主.xls", "数据", IssueRecordMainExcelVO.class, datas);
@PostMapping("/export-excel-senior")
@Operation(summary = "导出发料记录 Excel")
@PreAuthorize("@ss.hasPermission('wms:issue-record-main:export')")
@OperateLog(type = EXPORT)
public void exportIssueRecordMainSeniorExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException {
List<IssueRecordMainDO> list = issueRecordMainService.getIssueRecordMainList(conditions);
//组装vo
Map<Integer, String[]> mapDropDown = new HashMap<>();
List<IssueRecordMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
// 导出 Excel
ExcelUtils.write(response, "发料记录.xlsx", "发料记录", IssueRecordMainExcelVO.class, resultList, mapDropDown);
} }
} }

99
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRecord/vo/IssueRecordMainExcelVO.java

@ -1,5 +1,6 @@
package com.win.module.wms.controller.issueRecord.vo; package com.win.module.wms.controller.issueRecord.vo;
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.*;
import java.util.*; import java.util.*;
@ -52,10 +53,6 @@ public class IssueRecordMainExcelVO {
@ExcelProperty("部门") @ExcelProperty("部门")
private String departmentCode; private String departmentCode;
@ExcelProperty(value = "接口类型", converter = DictConvert.class)
@DictFormat("interface_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String interfaceType;
@ExcelProperty("单据号") @ExcelProperty("单据号")
private String number; private String number;
@ -71,14 +68,10 @@ public class IssueRecordMainExcelVO {
@ExcelProperty("创建者Id") @ExcelProperty("创建者Id")
private String creator; private String creator;
@ExcelProperty("代码")
private String code;
@ExcelProperty("从仓库代码") @ExcelProperty("从仓库代码")
private String fromWarehouseCode; private String fromWarehouseCode;
@ExcelProperty(value = "从库位类型范围", converter = DictConvert.class) @ExcelProperty(value = "从库位类型范围")
@DictFormat("location_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String fromLocationTypes; private String fromLocationTypes;
@ExcelProperty("从库区代码范围") @ExcelProperty("从库区代码范围")
@ -87,17 +80,99 @@ public class IssueRecordMainExcelVO {
@ExcelProperty("到仓库代码") @ExcelProperty("到仓库代码")
private String toWarehouseCode; private String toWarehouseCode;
@ExcelProperty(value = "到库位类型范围", converter = DictConvert.class) @ExcelProperty(value = "到库位类型范围")
@DictFormat("location_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String toLocationTypes; private String toLocationTypes;
@ExcelProperty("到库区代码范围") @ExcelProperty("到库区代码范围")
private String toAreaCodes; private String toAreaCodes;
@ExcelProperty("使用在途库") @ExcelProperty(value = "使用在途库", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String useOnTheWayLocation; private String useOnTheWayLocation;
@ExcelProperty("是否可用") @ExcelProperty("是否可用")
private String available; private String available;
@ExcelProperty("最后更新时间")
private LocalDateTime updateTime;
@ExcelProperty("最后更新者Id")
private String updater;
@ExcelProperty("生产线代码")
private String productionLineCode;
@ExcelProperty("工位代码")
private String workStationCode;
@ExcelProperty("在途库库位")
private String onTheWayLocationCode;
@ExcelProperty(value = "库存状态", converter = DictConvert.class)
@DictFormat(DictTypeConstants.INVENTORY_STATUS)
private String inventoryStatus;
@ExcelProperty("从货主代码")
private String fromOwnerCode;
@ExcelProperty("到货主代码")
private String toOwnerCode;
@ExcelProperty("从包装号")
private String fromPackingNumber;
@ExcelProperty("到包装号")
private String toPackingNumber;
@ExcelProperty("从器具号")
private String fromContainerNumber;
@ExcelProperty("到器具号")
private String toContainerNumber;
@ExcelProperty("从批次")
private String fromBatch;
@ExcelProperty("到批次")
private String toBatch;
@ExcelProperty("从库位代码")
private String fromLocationCode;
@ExcelProperty("到库位代码")
private String toLocationCode;
@ExcelProperty("从库位组代码")
private String fromLocationGroupCode;
@ExcelProperty("到库位组代码")
private String toLocationGroupCode;
@ExcelProperty("从库区代码")
private String fromAreaCode;
@ExcelProperty("到库区代码")
private String toAreaCode;
@ExcelProperty("物品代码")
private String itemCode;
@ExcelProperty("物品名称")
private String itemName;
@ExcelProperty("物品描述1")
private String itemDesc1;
@ExcelProperty("物品描述2")
private String itemDesc2;
@ExcelProperty("项目代码")
private String projectCode;
@ExcelProperty("数量")
private String qty;
@ExcelProperty(value = "计量单位", converter = DictConvert.class)
@DictFormat(DictTypeConstants.UOM)
private String uom;
} }

16
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRecord/IssueRecordMainConvert.java

@ -8,7 +8,13 @@ import com.win.module.wms.controller.issueRecord.vo.IssueRecordMainCreateReqVO;
import com.win.module.wms.controller.issueRecord.vo.IssueRecordMainExcelVO; import com.win.module.wms.controller.issueRecord.vo.IssueRecordMainExcelVO;
import com.win.module.wms.controller.issueRecord.vo.IssueRecordMainRespVO; import com.win.module.wms.controller.issueRecord.vo.IssueRecordMainRespVO;
import com.win.module.wms.controller.issueRecord.vo.IssueRecordMainUpdateReqVO; import com.win.module.wms.controller.issueRecord.vo.IssueRecordMainUpdateReqVO;
import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobMainExcelVO;
import com.win.module.wms.dal.dataobject.issueRecord.IssueRecordDetailDO;
import com.win.module.wms.dal.dataobject.purchasereceiptJob.PurchasereceiptJobDetailDO;
import com.win.module.wms.dal.dataobject.purchasereceiptJob.PurchasereceiptJobMainDO;
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.issueRecord.IssueRecordMainDO; import com.win.module.wms.dal.dataobject.issueRecord.IssueRecordMainDO;
@ -34,4 +40,14 @@ public interface IssueRecordMainConvert {
List<IssueRecordMainExcelVO> convertList02(List<IssueRecordMainDO> list); List<IssueRecordMainExcelVO> convertList02(List<IssueRecordMainDO> 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"),
})
IssueRecordMainExcelVO convert(IssueRecordMainDO mainDO, IssueRecordDetailDO detailDO);
} }

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/issueRecord/IssueRecordDetailDO.java

@ -103,7 +103,7 @@ public class IssueRecordDetailDO extends BaseDO {
/** /**
* 主表ID * 主表ID
*/ */
private String masterId; private Long masterId;
/** /**
* 单据号 * 单据号
*/ */
@ -161,4 +161,9 @@ public class IssueRecordDetailDO extends BaseDO {
*/ */
private String jobDetailId; private String jobDetailId;
/**
* 供应商代码
*/
private String supplierCode;
} }

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/issueRecord/IssueRecordDetailMapper.java

@ -10,6 +10,7 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.issueRecord.vo.IssueRecordDetailExportReqVO; import com.win.module.wms.controller.issueRecord.vo.IssueRecordDetailExportReqVO;
import com.win.module.wms.controller.issueRecord.vo.IssueRecordDetailPageReqVO; import com.win.module.wms.controller.issueRecord.vo.IssueRecordDetailPageReqVO;
import com.win.module.wms.dal.dataobject.issueRecord.IssueRecordDetailDO; import com.win.module.wms.dal.dataobject.issueRecord.IssueRecordDetailDO;
import com.win.module.wms.dal.dataobject.purchasereceiptJob.PurchasereceiptJobDetailDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
/** /**
@ -96,4 +97,9 @@ public interface IssueRecordDetailMapper extends BaseMapperX<IssueRecordDetailDO
.orderByDesc(IssueRecordDetailDO::getId)); .orderByDesc(IssueRecordDetailDO::getId));
} }
default List<IssueRecordDetailDO> selectList(Long masterId) {
return selectList(new LambdaQueryWrapperX<IssueRecordDetailDO>()
.eq(IssueRecordDetailDO::getMasterId, masterId));
}
} }

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/issueRecord/IssueRecordMainMapper.java

@ -10,6 +10,7 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.issueRecord.vo.IssueRecordMainExportReqVO; import com.win.module.wms.controller.issueRecord.vo.IssueRecordMainExportReqVO;
import com.win.module.wms.controller.issueRecord.vo.IssueRecordMainPageReqVO; import com.win.module.wms.controller.issueRecord.vo.IssueRecordMainPageReqVO;
import com.win.module.wms.dal.dataobject.issueRecord.IssueRecordMainDO; import com.win.module.wms.dal.dataobject.issueRecord.IssueRecordMainDO;
import com.win.module.wms.dal.dataobject.purchasereceiptJob.PurchasereceiptJobMainDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
/** /**
@ -82,4 +83,8 @@ public interface IssueRecordMainMapper extends BaseMapperX<IssueRecordMainDO> {
.orderByDesc(IssueRecordMainDO::getId)); .orderByDesc(IssueRecordMainDO::getId));
} }
default List<IssueRecordMainDO> selectSeniorList(CustomConditions conditions) {
return selectList(QueryWrapperUtils.structure(conditions));
}
} }

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRecord/IssueRecordDetailService.java

@ -80,4 +80,10 @@ public interface IssueRecordDetailService {
*/ */
List<IssueRecordDetailDO> getIssueRecordDetailList(IssueRecordDetailExportReqVO exportReqVO); List<IssueRecordDetailDO> getIssueRecordDetailList(IssueRecordDetailExportReqVO exportReqVO);
/**
* 根据主表id查询
* @param id
* @return
*/
List<IssueRecordDetailDO> selectList(Long id);
} }

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRecord/IssueRecordDetailServiceImpl.java

@ -87,4 +87,9 @@ public class IssueRecordDetailServiceImpl implements IssueRecordDetailService {
return issueRecordDetailMapper.selectList(exportReqVO); return issueRecordDetailMapper.selectList(exportReqVO);
} }
@Override
public List<IssueRecordDetailDO> selectList(Long masterId) {
return issueRecordDetailMapper.selectList(masterId);
}
} }

9
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRecord/IssueRecordMainService.java

@ -10,6 +10,7 @@ import com.win.module.wms.controller.issueRecord.vo.IssueRecordMainPageReqVO;
import com.win.module.wms.controller.issueRecord.vo.IssueRecordMainUpdateReqVO; import com.win.module.wms.controller.issueRecord.vo.IssueRecordMainUpdateReqVO;
import com.win.module.wms.dal.dataobject.issueRecord.IssueRecordMainDO; import com.win.module.wms.dal.dataobject.issueRecord.IssueRecordMainDO;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.dal.dataobject.purchasereceiptJob.PurchasereceiptJobMainDO;
/** /**
* 发料记录主 Service 接口 * 发料记录主 Service 接口
@ -56,6 +57,14 @@ public interface IssueRecordMainService {
*/ */
List<IssueRecordMainDO> getIssueRecordMainList(Collection<Long> ids); List<IssueRecordMainDO> getIssueRecordMainList(Collection<Long> ids);
/**
* 获得发料记录主列表, 用于 Excel 导出
*
* @param conditions 查询条件
* @return 采购收货申请主列表
*/
List<IssueRecordMainDO> getIssueRecordMainList(CustomConditions conditions);
/** /**
* 获得发料记录主分页 * 获得发料记录主分页
* *

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRecord/IssueRecordMainServiceImpl.java

@ -74,6 +74,11 @@ public class IssueRecordMainServiceImpl implements IssueRecordMainService {
return issueRecordMainMapper.selectBatchIds(ids); return issueRecordMainMapper.selectBatchIds(ids);
} }
@Override
public List<IssueRecordMainDO> getIssueRecordMainList(CustomConditions conditions) {
return issueRecordMainMapper.selectSeniorList(conditions);
}
@Override @Override
public PageResult<IssueRecordMainDO> getIssueRecordMainPage(IssueRecordMainPageReqVO pageReqVO) { public PageResult<IssueRecordMainDO> getIssueRecordMainPage(IssueRecordMainPageReqVO pageReqVO) {
return issueRecordMainMapper.selectPage(pageReqVO); return issueRecordMainMapper.selectPage(pageReqVO);

Loading…
Cancel
Save