@ -0,0 +1,21 @@
|
||||
package com.chanko.yunxi.mes.module.heli.enums;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 业务类型枚举
|
||||
* @author chenxi
|
||||
* @date 2024-01-15 05:39
|
||||
*/
|
||||
@Getter
|
||||
public enum BusinesTypeEnum {
|
||||
|
||||
PROJECT_ORDER("销售订单"),
|
||||
PROJECT_ORDER_SNAPSHOT("销售订单快照");
|
||||
|
||||
private String description;
|
||||
|
||||
BusinesTypeEnum(String description) {
|
||||
this.description = description;
|
||||
}
|
||||
}
|
@ -0,0 +1,21 @@
|
||||
package com.chanko.yunxi.mes.module.heli.enums;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 业务文件类型
|
||||
* @author chenxi
|
||||
* @date 2024-01-16 10:38
|
||||
*/
|
||||
@Getter
|
||||
public enum BusinessFileTypeEnum {
|
||||
|
||||
CONTRACT("合同"),
|
||||
TECHNOLOGY_PROTOCOL("技术协议");
|
||||
|
||||
private String description;
|
||||
|
||||
BusinessFileTypeEnum(String description) {
|
||||
this.description = description;
|
||||
}
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
package com.chanko.yunxi.mes.module.heli.enums;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 项目订单状态枚举
|
||||
* @author chenxi
|
||||
* @date 2024-01-18 01:19
|
||||
*/
|
||||
@Getter
|
||||
public enum ProjectOrderStatusEnum {
|
||||
REPULSE(3, "已打回"),
|
||||
SAVE(4, "已保存"),
|
||||
ALTER(8, "发起变更"),
|
||||
SUBMIT_AUDIT(8, "已送审"),
|
||||
AUDIT(16, "已审核"),
|
||||
APPROVE(32, "已启动"),
|
||||
TERMINATE(64, "已终止")
|
||||
;
|
||||
|
||||
private int code;
|
||||
private String description;
|
||||
|
||||
ProjectOrderStatusEnum(int code, String description) {
|
||||
this.code = code;
|
||||
this.description = description;
|
||||
}
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
package com.chanko.yunxi.mes.module.heli.enums;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 是否枚举
|
||||
* @author chenxi
|
||||
* @date 2024-01-18 02:31
|
||||
*/
|
||||
@Getter
|
||||
public enum YesOrNoEnum {
|
||||
|
||||
YES(1), NO(0);
|
||||
|
||||
private int code;
|
||||
|
||||
YesOrNoEnum(int code) {
|
||||
this.code = code;
|
||||
}
|
||||
}
|
@ -0,0 +1,143 @@
|
||||
package com.chanko.yunxi.mes.module.heli.controller.admin.projectorder;
|
||||
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.CommonResult;
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
|
||||
import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils;
|
||||
import com.chanko.yunxi.mes.framework.excel.core.util.ExcelUtils;
|
||||
import com.chanko.yunxi.mes.framework.operatelog.core.annotations.OperateLog;
|
||||
import com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum;
|
||||
import com.chanko.yunxi.mes.framework.operatelog.core.service.OperateLogFrameworkService;
|
||||
import com.chanko.yunxi.mes.module.heli.controller.admin.projectorder.vo.ProjectOrderPageReqVO;
|
||||
import com.chanko.yunxi.mes.module.heli.controller.admin.projectorder.vo.ProjectOrderRespVO;
|
||||
import com.chanko.yunxi.mes.module.heli.controller.admin.projectorder.vo.ProjectOrderSaveReqVO;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderDO;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectordersub.ProjectOrderSubDO;
|
||||
import com.chanko.yunxi.mes.module.heli.enums.BusinesTypeEnum;
|
||||
import com.chanko.yunxi.mes.module.heli.service.projectorder.ProjectOrderService;
|
||||
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.transaction.annotation.Transactional;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.Valid;
|
||||
import java.io.IOException;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
import static com.chanko.yunxi.mes.framework.common.pojo.CommonResult.success;
|
||||
import static com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
|
||||
|
||||
@Tag(name = "管理后台 - 项目订单")
|
||||
@RestController
|
||||
@RequestMapping("/heli/project-order")
|
||||
@Validated
|
||||
public class ProjectOrderController {
|
||||
|
||||
@Resource
|
||||
private ProjectOrderService projectOrderService;
|
||||
|
||||
@Resource
|
||||
private OperateLogFrameworkService operateLogFrameworkService;
|
||||
|
||||
@Resource
|
||||
private HttpServletRequest request;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建项目订单")
|
||||
@PreAuthorize("@ss.hasPermission('heli:project-order:create')")
|
||||
public CommonResult<Long> createProjectOrder(@Valid @RequestBody ProjectOrderSaveReqVO createReqVO) {
|
||||
return success(projectOrderService.createProjectOrder(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新项目订单")
|
||||
@PreAuthorize("@ss.hasPermission('heli:project-order:update')")
|
||||
public CommonResult<Boolean> updateProjectOrder(@Valid @RequestBody ProjectOrderSaveReqVO updateReqVO) {
|
||||
projectOrderService.updateProjectOrder(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@PostMapping("/operate")
|
||||
@Operation(summary = "操作项目订单")
|
||||
@PreAuthorize("@ss.hasPermission('heli:project-order:update')")
|
||||
@OperateLog(enable = false)
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public CommonResult<Long> operateProjectOrder(@Valid @RequestBody ProjectOrderSaveReqVO operateReqVO) {
|
||||
LocalDateTime startTime = LocalDateTime.now();
|
||||
projectOrderService.operateProjectOrder(operateReqVO);
|
||||
|
||||
// 手动记录日志
|
||||
operateLogFrameworkService.createOperateLog(request,
|
||||
startTime,
|
||||
BusinesTypeEnum.PROJECT_ORDER.name(),
|
||||
operateReqVO.getId(),
|
||||
OperateTypeEnum.valueOf(operateReqVO.getActive()).getType(),
|
||||
operateReqVO.getActiveOpinion());
|
||||
|
||||
// 批准、终止记录快照
|
||||
switch (OperateTypeEnum.valueOf(operateReqVO.getActive())){
|
||||
case APPROVE:
|
||||
case TERMINATE:
|
||||
projectOrderService.createProjectOrderSnapshot(operateReqVO);
|
||||
break;
|
||||
}
|
||||
return success(operateReqVO.getId());
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除项目订单")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('heli:project-order:delete')")
|
||||
public CommonResult<Boolean> deleteProjectOrder(@RequestParam("id") Long id) {
|
||||
projectOrderService.deleteProjectOrder(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得项目订单")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('heli:project-order:query')")
|
||||
public CommonResult<ProjectOrderRespVO> getProjectOrder(@RequestParam("id") Long id) {
|
||||
ProjectOrderDO projectOrder = projectOrderService.getProjectOrder(id);
|
||||
return success(BeanUtils.toBean(projectOrder, ProjectOrderRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得项目订单分页")
|
||||
@PreAuthorize("@ss.hasPermission('heli:project-order:query')")
|
||||
public CommonResult<PageResult<ProjectOrderRespVO>> getProjectOrderPage(@Valid ProjectOrderPageReqVO pageReqVO) {
|
||||
PageResult<ProjectOrderDO> pageResult = projectOrderService.getProjectOrderPage(pageReqVO);
|
||||
return success(BeanUtils.toBean(pageResult, ProjectOrderRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出项目订单 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('heli:project-order:export')")
|
||||
@OperateLog(type = EXPORT)
|
||||
public void exportProjectOrderExcel(@Valid ProjectOrderPageReqVO pageReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||
List<ProjectOrderDO> list = projectOrderService.getProjectOrderPage(pageReqVO).getList();
|
||||
// 导出 Excel
|
||||
ExcelUtils.write(response, "项目订单.xls", "数据", ProjectOrderRespVO.class,
|
||||
BeanUtils.toBean(list, ProjectOrderRespVO.class));
|
||||
}
|
||||
|
||||
// ==================== 子表(项目订单子项目) ====================
|
||||
|
||||
@GetMapping("/project-order-sub/list-by-project-order-id")
|
||||
@Operation(summary = "获得项目订单子项目列表")
|
||||
@Parameter(name = "projectOrderId", description = "项目订单id")
|
||||
@PreAuthorize("@ss.hasPermission('heli:project-order:query')")
|
||||
public CommonResult<List<ProjectOrderSubDO>> getProjectOrderSubListByProjectOrderId(@RequestParam("projectOrderId") Long projectOrderId) {
|
||||
return success(projectOrderService.getProjectOrderSubListByProjectOrderId(projectOrderId));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,95 @@
|
||||
package com.chanko.yunxi.mes.module.heli.controller.admin.serialnumber;
|
||||
|
||||
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 io.swagger.v3.oas.annotations.Operation;
|
||||
|
||||
import javax.validation.constraints.*;
|
||||
import javax.validation.*;
|
||||
import javax.servlet.http.*;
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.CommonResult;
|
||||
import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils;
|
||||
import static com.chanko.yunxi.mes.framework.common.pojo.CommonResult.success;
|
||||
|
||||
import com.chanko.yunxi.mes.framework.excel.core.util.ExcelUtils;
|
||||
|
||||
import com.chanko.yunxi.mes.framework.operatelog.core.annotations.OperateLog;
|
||||
import static com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum.*;
|
||||
|
||||
import com.chanko.yunxi.mes.module.heli.controller.admin.serialnumber.vo.*;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.serialnumber.SerialNumberDO;
|
||||
import com.chanko.yunxi.mes.module.heli.service.serialnumber.SerialNumberService;
|
||||
|
||||
@Tag(name = "管理后台 - 序列号记录")
|
||||
@RestController
|
||||
@RequestMapping("/heli/serial-number")
|
||||
@Validated
|
||||
public class SerialNumberController {
|
||||
|
||||
@Resource
|
||||
private SerialNumberService serialNumberService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建序列号记录")
|
||||
@PreAuthorize("@ss.hasPermission('heli:serial-number:create')")
|
||||
public CommonResult<Long> createSerialNumber(@Valid @RequestBody SerialNumberSaveReqVO createReqVO) {
|
||||
return success(serialNumberService.createSerialNumber(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新序列号记录")
|
||||
@PreAuthorize("@ss.hasPermission('heli:serial-number:update')")
|
||||
public CommonResult<Boolean> updateSerialNumber(@Valid @RequestBody SerialNumberSaveReqVO updateReqVO) {
|
||||
serialNumberService.updateSerialNumber(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除序列号记录")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('heli:serial-number:delete')")
|
||||
public CommonResult<Boolean> deleteSerialNumber(@RequestParam("id") Long id) {
|
||||
serialNumberService.deleteSerialNumber(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得序列号记录")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('heli:serial-number:query')")
|
||||
public CommonResult<SerialNumberRespVO> getSerialNumber(@RequestParam("id") Long id) {
|
||||
SerialNumberDO serialNumber = serialNumberService.getSerialNumber(id);
|
||||
return success(BeanUtils.toBean(serialNumber, SerialNumberRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得序列号记录分页")
|
||||
@PreAuthorize("@ss.hasPermission('heli:serial-number:query')")
|
||||
public CommonResult<PageResult<SerialNumberRespVO>> getSerialNumberPage(@Valid SerialNumberPageReqVO pageReqVO) {
|
||||
PageResult<SerialNumberDO> pageResult = serialNumberService.getSerialNumberPage(pageReqVO);
|
||||
return success(BeanUtils.toBean(pageResult, SerialNumberRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出序列号记录 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('heli:serial-number:export')")
|
||||
@OperateLog(type = EXPORT)
|
||||
public void exportSerialNumberExcel(@Valid SerialNumberPageReqVO pageReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||
List<SerialNumberDO> list = serialNumberService.getSerialNumberPage(pageReqVO).getList();
|
||||
// 导出 Excel
|
||||
ExcelUtils.write(response, "序列号记录.xls", "数据", SerialNumberRespVO.class,
|
||||
BeanUtils.toBean(list, SerialNumberRespVO.class));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,119 @@
|
||||
package com.chanko.yunxi.mes.module.heli.controller.admin.storage;
|
||||
|
||||
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 io.swagger.v3.oas.annotations.Operation;
|
||||
|
||||
import javax.validation.constraints.*;
|
||||
import javax.validation.*;
|
||||
import javax.servlet.http.*;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.CommonResult;
|
||||
import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils;
|
||||
import static com.chanko.yunxi.mes.framework.common.pojo.CommonResult.success;
|
||||
|
||||
import com.chanko.yunxi.mes.framework.excel.core.util.ExcelUtils;
|
||||
|
||||
import com.chanko.yunxi.mes.framework.operatelog.core.annotations.OperateLog;
|
||||
import static com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum.*;
|
||||
|
||||
import com.chanko.yunxi.mes.module.heli.controller.admin.storage.vo.*;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storage.StorageDO;
|
||||
import com.chanko.yunxi.mes.module.heli.service.storage.StorageService;
|
||||
|
||||
@Tag(name = "管理后台 - 入/出库")
|
||||
@RestController
|
||||
@RequestMapping("/heli/storage")
|
||||
@Validated
|
||||
public class StorageController {
|
||||
|
||||
@Resource
|
||||
private StorageService storageService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建入/出库")
|
||||
@PreAuthorize("@ss.hasPermission('heli:storage:create')")
|
||||
public CommonResult<Long> createStorage(@Valid @RequestBody StorageSaveReqVO createReqVO) {
|
||||
return success(storageService.createStorage(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新入/出库")
|
||||
@PreAuthorize("@ss.hasPermission('heli:storage:update')")
|
||||
public CommonResult<Boolean> updateStorage(@Valid @RequestBody StorageSaveReqVO updateReqVO) {
|
||||
storageService.updateStorage(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
@PutMapping("/update-status")
|
||||
@Operation(summary = "更新入/出库")
|
||||
@PreAuthorize("@ss.hasPermission('heli:storage:update')")
|
||||
public CommonResult<Boolean> updateStorageStatus(@Valid @RequestBody StorageSaveReqVO updateReqVO) {
|
||||
StorageDO targetDo = storageService.getStorage(updateReqVO.getId());
|
||||
targetDo.setStatus(updateReqVO.getStatus());
|
||||
|
||||
LocalDateTime currTime = LocalDateTime.now();
|
||||
if(updateReqVO.getStatus().equals(2) && updateReqVO.getStockType().equals(1)){
|
||||
targetDo.setKeeper(updateReqVO.getKeeper());
|
||||
targetDo.setKeeperTime(currTime);
|
||||
} else if(updateReqVO.getStatus().equals(2) && updateReqVO.getStockType().equals(2)){
|
||||
targetDo.setOutbound(updateReqVO.getOutbound());
|
||||
targetDo.setOutboundTime(currTime);
|
||||
}else{
|
||||
targetDo.setCancel(updateReqVO.getCancel());
|
||||
targetDo.setCancelTime(currTime);
|
||||
}
|
||||
updateReqVO = BeanUtils.toBean(targetDo, StorageSaveReqVO.class);
|
||||
|
||||
storageService.updateStorage(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除入/出库")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('heli:storage:delete')")
|
||||
public CommonResult<Boolean> deleteStorage(@RequestParam("id") Long id) {
|
||||
storageService.deleteStorage(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得入/出库")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('heli:storage:query')")
|
||||
public CommonResult<StorageRespVO> getStorage(@RequestParam("id") Long id) {
|
||||
StorageDO storage = storageService.getStorage(id);
|
||||
return success(BeanUtils.toBean(storage, StorageRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得入/出库分页")
|
||||
@PreAuthorize("@ss.hasPermission('heli:storage:query')")
|
||||
public CommonResult<PageResult<StorageRespVO>> getStoragePage(@Valid StoragePageReqVO pageReqVO) {
|
||||
PageResult<StorageDO> pageResult = storageService.getStoragePage(pageReqVO);
|
||||
return success(BeanUtils.toBean(pageResult, StorageRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出入/出库 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('heli:storage:export')")
|
||||
@OperateLog(type = EXPORT)
|
||||
public void exportStorageExcel(@Valid StoragePageReqVO pageReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||
List<StorageDO> list = storageService.getStoragePage(pageReqVO).getList();
|
||||
// 导出 Excel
|
||||
ExcelUtils.write(response, "入/出库.xls", "数据", StorageRespVO.class,
|
||||
BeanUtils.toBean(list, StorageRespVO.class));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,95 @@
|
||||
package com.chanko.yunxi.mes.module.heli.controller.admin.storagelog;
|
||||
|
||||
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 io.swagger.v3.oas.annotations.Operation;
|
||||
|
||||
import javax.validation.constraints.*;
|
||||
import javax.validation.*;
|
||||
import javax.servlet.http.*;
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.CommonResult;
|
||||
import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils;
|
||||
import static com.chanko.yunxi.mes.framework.common.pojo.CommonResult.success;
|
||||
|
||||
import com.chanko.yunxi.mes.framework.excel.core.util.ExcelUtils;
|
||||
|
||||
import com.chanko.yunxi.mes.framework.operatelog.core.annotations.OperateLog;
|
||||
import static com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum.*;
|
||||
|
||||
import com.chanko.yunxi.mes.module.heli.controller.admin.storagelog.vo.*;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelog.StorageLogDO;
|
||||
import com.chanko.yunxi.mes.module.heli.service.storagelog.StorageLogService;
|
||||
|
||||
@Tag(name = "管理后台 - 入/出库日志")
|
||||
@RestController
|
||||
@RequestMapping("/heli/storage-log")
|
||||
@Validated
|
||||
public class StorageLogController {
|
||||
|
||||
@Resource
|
||||
private StorageLogService storageLogService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建入/出库日志")
|
||||
@PreAuthorize("@ss.hasPermission('heli:storage-log:create')")
|
||||
public CommonResult<Long> createStorageLog(@Valid @RequestBody StorageLogSaveReqVO createReqVO) {
|
||||
return success(storageLogService.createStorageLog(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新入/出库日志")
|
||||
@PreAuthorize("@ss.hasPermission('heli:storage-log:update')")
|
||||
public CommonResult<Boolean> updateStorageLog(@Valid @RequestBody StorageLogSaveReqVO updateReqVO) {
|
||||
storageLogService.updateStorageLog(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除入/出库日志")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('heli:storage-log:delete')")
|
||||
public CommonResult<Boolean> deleteStorageLog(@RequestParam("id") Long id) {
|
||||
storageLogService.deleteStorageLog(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得入/出库日志")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('heli:storage-log:query')")
|
||||
public CommonResult<StorageLogRespVO> getStorageLog(@RequestParam("id") Long id) {
|
||||
StorageLogDO storageLog = storageLogService.getStorageLog(id);
|
||||
return success(BeanUtils.toBean(storageLog, StorageLogRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得入/出库日志分页")
|
||||
@PreAuthorize("@ss.hasPermission('heli:storage-log:query')")
|
||||
public CommonResult<PageResult<StorageLogRespVO>> getStorageLogPage(@Valid StorageLogPageReqVO pageReqVO) {
|
||||
PageResult<StorageLogDO> pageResult = storageLogService.getStorageLogPage(pageReqVO);
|
||||
return success(BeanUtils.toBean(pageResult, StorageLogRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出入/出库日志 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('heli:storage-log:export')")
|
||||
@OperateLog(type = EXPORT)
|
||||
public void exportStorageLogExcel(@Valid StorageLogPageReqVO pageReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||
List<StorageLogDO> list = storageLogService.getStorageLogPage(pageReqVO).getList();
|
||||
// 导出 Excel
|
||||
ExcelUtils.write(response, "入/出库日志.xls", "数据", StorageLogRespVO.class,
|
||||
BeanUtils.toBean(list, StorageLogRespVO.class));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,118 @@
|
||||
package com.chanko.yunxi.mes.module.heli.controller.admin.storagemat;
|
||||
|
||||
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 io.swagger.v3.oas.annotations.Operation;
|
||||
|
||||
import javax.validation.constraints.*;
|
||||
import javax.validation.*;
|
||||
import javax.servlet.http.*;
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.CommonResult;
|
||||
import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils;
|
||||
import static com.chanko.yunxi.mes.framework.common.pojo.CommonResult.success;
|
||||
|
||||
import com.chanko.yunxi.mes.framework.excel.core.util.ExcelUtils;
|
||||
|
||||
import com.chanko.yunxi.mes.framework.operatelog.core.annotations.OperateLog;
|
||||
import static com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum.*;
|
||||
|
||||
import com.chanko.yunxi.mes.module.heli.controller.admin.storagemat.vo.*;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagemat.StorageMatDO;
|
||||
import com.chanko.yunxi.mes.module.heli.service.storagemat.StorageMatService;
|
||||
|
||||
@Tag(name = "管理后台 - 入/出库物料")
|
||||
@RestController
|
||||
@RequestMapping("/heli/storage-mat")
|
||||
@Validated
|
||||
public class StorageMatController {
|
||||
|
||||
@Resource
|
||||
private StorageMatService storageMatService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建入/出库物料")
|
||||
@PreAuthorize("@ss.hasPermission('heli:storage-mat:create')")
|
||||
public CommonResult<Long> createStorageMat(@Valid @RequestBody StorageMatSaveReqVO createReqVO) {
|
||||
return success(storageMatService.createStorageMat(createReqVO));
|
||||
}
|
||||
|
||||
@PostMapping("/create-batch")
|
||||
@Operation(summary = "批量创建入/出库物料")
|
||||
@PreAuthorize("@ss.hasPermission('heli:storage-mat:create')")
|
||||
public CommonResult<Long> createStorageMat(@Valid @RequestBody List<StorageMatSaveReqVO> createReqVO,@RequestParam("stockid") Long stockid) {
|
||||
|
||||
storageMatService.deleteStorageMatList(stockid);
|
||||
for (StorageMatSaveReqVO item : createReqVO) {
|
||||
item.setId(null);
|
||||
storageMatService.createStorageMat(item);
|
||||
}
|
||||
return success(1L);
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新入/出库物料")
|
||||
@PreAuthorize("@ss.hasPermission('heli:storage-mat:update')")
|
||||
public CommonResult<Boolean> updateStorageMat(@Valid @RequestBody StorageMatSaveReqVO updateReqVO) {
|
||||
storageMatService.updateStorageMat(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除入/出库物料")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('heli:storage-mat:delete')")
|
||||
public CommonResult<Boolean> deleteStorageMat(@RequestParam("id") Long id) {
|
||||
storageMatService.deleteStorageMat(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得入/出库物料")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('heli:storage-mat:query')")
|
||||
public CommonResult<StorageMatRespVO> getStorageMat(@RequestParam("id") Long id) {
|
||||
StorageMatDO storageMat = storageMatService.getStorageMat(id);
|
||||
return success(BeanUtils.toBean(storageMat, StorageMatRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得入/出库物料分页")
|
||||
@PreAuthorize("@ss.hasPermission('heli:storage-mat:query')")
|
||||
public CommonResult<PageResult<StorageMatRespVO>> getStorageMatPage(@Valid StorageMatPageReqVO pageReqVO) {
|
||||
PageResult<StorageMatDO> pageResult = storageMatService.getStorageMatPage(pageReqVO);
|
||||
return success(BeanUtils.toBean(pageResult, StorageMatRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出入/出库物料 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('heli:storage-mat:export')")
|
||||
@OperateLog(type = EXPORT)
|
||||
public void exportStorageMatExcel(@Valid StorageMatPageReqVO pageReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||
List<StorageMatDO> list = storageMatService.getStorageMatPage(pageReqVO).getList();
|
||||
// 导出 Excel
|
||||
ExcelUtils.write(response, "入/出库物料.xls", "数据", StorageMatRespVO.class,
|
||||
BeanUtils.toBean(list, StorageMatRespVO.class));
|
||||
}
|
||||
|
||||
|
||||
@GetMapping("/get-materials")
|
||||
@Operation(summary = "获得入/出库物料")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('heli:storage-mat:query')")
|
||||
public CommonResult<List<StorageMatValidRespVO>> getStorageMatList() {
|
||||
List<StorageMatValidRespVO> list = storageMatService.getStorageMatList();
|
||||
return success(BeanUtils.toBean(list, StorageMatValidRespVO.class));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,39 @@
|
||||
package com.chanko.yunxi.mes.module.heli.controller.admin.storagemat.vo;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
@Data
|
||||
public class StorageMatValidRespVO {
|
||||
|
||||
private Long matId;
|
||||
|
||||
private String matName;
|
||||
|
||||
private String matCode;
|
||||
|
||||
private String materialType;
|
||||
|
||||
private Long whId;
|
||||
|
||||
private Long rgId;
|
||||
|
||||
private Long pnId;
|
||||
|
||||
private BigDecimal matRest;
|
||||
|
||||
private String lotNo;
|
||||
|
||||
private String matSpec;
|
||||
|
||||
private String matUnit;
|
||||
|
||||
private String storageOkQty;
|
||||
|
||||
private String description;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,59 @@
|
||||
package com.chanko.yunxi.mes.module.heli.dal.mysql.projectorder;
|
||||
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
|
||||
import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import com.chanko.yunxi.mes.module.heli.controller.admin.projectorder.vo.ProjectOrderPageReqVO;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.composition.CompositionDO;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.customer.CustomerDO;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderDO;
|
||||
import com.chanko.yunxi.mes.module.system.dal.dataobject.dept.DeptDO;
|
||||
import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO;
|
||||
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
/**
|
||||
* 项目订单 Mapper
|
||||
*
|
||||
* @author 管理员
|
||||
*/
|
||||
@Mapper
|
||||
public interface ProjectOrderMapper extends BaseMapperX<ProjectOrderDO> {
|
||||
|
||||
default PageResult<ProjectOrderDO> selectPage(ProjectOrderPageReqVO reqVO) {
|
||||
MPJLambdaWrapper<ProjectOrderDO> query = new MPJLambdaWrapper<>();
|
||||
query.selectAll(ProjectOrderDO.class)
|
||||
.select("u.nickname as businessManName", "d.name as businessDeptName", "e.name as customerName")
|
||||
.leftJoin(AdminUserDO.class, "u", AdminUserDO::getId, ProjectOrderDO::getBusinessMan)
|
||||
.leftJoin(DeptDO.class, "d", DeptDO::getId, ProjectOrderDO::getBusinessDeptId)
|
||||
.leftJoin(CustomerDO.class, "e", CustomerDO::getId, ProjectOrderDO::getCustomerId)
|
||||
.disableSubLogicDel()
|
||||
.orderByDesc(ProjectOrderDO::getId);
|
||||
query.like(!StringUtils.isEmpty(reqVO.getCode()), ProjectOrderDO::getCode, reqVO.getCode())
|
||||
.like(!StringUtils.isEmpty(reqVO.getCustomerName()), "e.name", reqVO.getCustomerName())
|
||||
.like(!StringUtils.isEmpty(reqVO.getBusinessManName()), "u.nickname", reqVO.getBusinessManName())
|
||||
.like(!StringUtils.isEmpty(reqVO.getMouldName()), ProjectOrderDO::getMouldName, reqVO.getMouldName())
|
||||
.eq(reqVO.getHasPrice() != null, ProjectOrderDO::getHasPrice, reqVO.getHasPrice())
|
||||
.eq(reqVO.getOrderStatus() != null, ProjectOrderDO::getOrderStatus, reqVO.getOrderStatus())
|
||||
.eq(reqVO.getDeliveryStatus() != null, ProjectOrderDO::getDeliveryStatus, reqVO.getDeliveryStatus())
|
||||
.in(reqVO.getOrderStatusList() != null && !reqVO.getOrderStatusList().isEmpty(), ProjectOrderDO::getOrderStatus, reqVO.getOrderStatusList())
|
||||
.eq(reqVO.getIsSnapshot() != null, ProjectOrderDO::getIsSnapshot, reqVO.getIsSnapshot())
|
||||
.like(!StringUtils.isEmpty(reqVO.getSnapshotCode()), ProjectOrderDO::getSnapshotCode, reqVO.getSnapshotCode());
|
||||
;
|
||||
return selectPage(reqVO, query);
|
||||
}
|
||||
|
||||
default ProjectOrderDO selectById(Long id) {
|
||||
MPJLambdaWrapper<ProjectOrderDO> query = new MPJLambdaWrapper<>();
|
||||
query.selectAll(ProjectOrderDO.class)
|
||||
.select("u.nickname as businessManName", "d.name as businessDeptName", "u1.nickname as creatorName")
|
||||
.leftJoin(AdminUserDO.class, "u", AdminUserDO::getId, ProjectOrderDO::getBusinessMan)
|
||||
.leftJoin(AdminUserDO.class, "u1", AdminUserDO::getId, ProjectOrderDO::getCreator)
|
||||
.leftJoin(DeptDO.class, "d", DeptDO::getId, ProjectOrderDO::getBusinessDeptId)
|
||||
.eq(ProjectOrderDO::getId, id)
|
||||
.last("LIMIT 1")
|
||||
.disableSubLogicDel();
|
||||
return selectOne(query);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,36 @@
|
||||
package com.chanko.yunxi.mes.module.heli.dal.mysql.projectorder;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
|
||||
import com.chanko.yunxi.mes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.composition.CompositionDO;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectordersub.ProjectOrderSubDO;
|
||||
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* 项目订单子项目 Mapper
|
||||
*
|
||||
* @author 管理员
|
||||
*/
|
||||
@Mapper
|
||||
public interface ProjectOrderSubMapper extends BaseMapperX<ProjectOrderSubDO> {
|
||||
|
||||
default List<ProjectOrderSubDO> selectListByProjectOrderId(Long projectOrderId) {
|
||||
MPJLambdaWrapper<ProjectOrderSubDO> query = new MPJLambdaWrapper<>();
|
||||
query.selectAll(ProjectOrderSubDO.class)
|
||||
.select("b.name as compositionName")
|
||||
.leftJoin(CompositionDO.class, "b", CompositionDO::getId, ProjectOrderSubDO::getCompositionId)
|
||||
.disableSubLogicDel()
|
||||
.eq(ProjectOrderSubDO::getProjectOrderId, projectOrderId);
|
||||
return selectList(query);
|
||||
}
|
||||
|
||||
default int deleteByProjectOrderId(Long projectOrderId) {
|
||||
return delete(ProjectOrderSubDO::getProjectOrderId, projectOrderId);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,30 @@
|
||||
package com.chanko.yunxi.mes.module.heli.dal.mysql.serialnumber;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
|
||||
import com.chanko.yunxi.mes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.serialnumber.SerialNumberDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import com.chanko.yunxi.mes.module.heli.controller.admin.serialnumber.vo.*;
|
||||
|
||||
/**
|
||||
* 序列号记录 Mapper
|
||||
*
|
||||
* @author 管理员
|
||||
*/
|
||||
@Mapper
|
||||
public interface SerialNumberMapper extends BaseMapperX<SerialNumberDO> {
|
||||
|
||||
default PageResult<SerialNumberDO> selectPage(SerialNumberPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<SerialNumberDO>()
|
||||
.eqIfPresent(SerialNumberDO::getBusinessType, reqVO.getBusinessType())
|
||||
.eqIfPresent(SerialNumberDO::getSegment, reqVO.getSegment())
|
||||
.eqIfPresent(SerialNumberDO::getSerialNumber, reqVO.getSerialNumber())
|
||||
.eqIfPresent(SerialNumberDO::getStatus, reqVO.getStatus())
|
||||
.betweenIfPresent(SerialNumberDO::getCreateTime, reqVO.getCreateTime())
|
||||
.orderByDesc(SerialNumberDO::getId));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,67 @@
|
||||
package com.chanko.yunxi.mes.module.heli.dal.mysql.storage;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
|
||||
import com.chanko.yunxi.mes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.customer.CustomerDO;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.material.MaterialDO;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderDO;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storage.StorageDO;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagemat.StorageMatDO;
|
||||
import com.chanko.yunxi.mes.module.system.dal.dataobject.dept.DeptDO;
|
||||
import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO;
|
||||
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import com.chanko.yunxi.mes.module.heli.controller.admin.storage.vo.*;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
/**
|
||||
* 入/出库 Mapper
|
||||
*
|
||||
* @author 管理员
|
||||
*/
|
||||
@Mapper
|
||||
public interface StorageMapper extends BaseMapperX<StorageDO> {
|
||||
|
||||
default PageResult<StorageDO> selectPage(StoragePageReqVO reqVO) {
|
||||
MPJLambdaWrapper<StorageDO> query = new MPJLambdaWrapper<>();
|
||||
query.selectAll(StorageDO.class)
|
||||
.leftJoin(StorageMatDO.class, "sm", StorageMatDO::getStockId, StorageDO::getId)
|
||||
.leftJoin(MaterialDO.class, "mat", MaterialDO::getId, StorageMatDO::getMatId)
|
||||
.orderByDesc(StorageDO::getId);
|
||||
|
||||
query.like(!StringUtils.isEmpty(reqVO.getMatNo()), MaterialDO::getCode, reqVO.getMatNo())
|
||||
.like(!StringUtils.isEmpty(reqVO.getMatName()), MaterialDO::getName, reqVO.getMatName())
|
||||
.like(!StringUtils.isEmpty(reqVO.getStockNo()),StorageDO::getStockNo, reqVO.getStockNo())
|
||||
.like(!StringUtils.isEmpty(reqVO.getHeaderNo()),StorageDO::getHeaderNo, reqVO.getHeaderNo())
|
||||
.eq(reqVO.getStockType() != null,StorageDO::getStockType, reqVO.getStockType())
|
||||
.eq(reqVO.getStockInType() != null,StorageDO::getStockInType, reqVO.getStockInType())
|
||||
.eq(reqVO.getWhId() != null,StorageDO::getWhId, reqVO.getWhId())
|
||||
.eq(reqVO.getStatus() != null,StorageDO::getStatus, reqVO.getStatus()).distinct();
|
||||
|
||||
return selectPage(reqVO,query);
|
||||
// return selectPage(reqVO, new LambdaQueryWrapperX<StorageDO>()
|
||||
// .eqIfPresent(StorageDO::getStockType, reqVO.getStockType())
|
||||
// .eqIfPresent(StorageDO::getStockInType, reqVO.getStockInType())
|
||||
// .eqIfPresent(StorageDO::getStockOutType, reqVO.getStockOutType())
|
||||
// .eqIfPresent(StorageDO::getStockNo, reqVO.getStockNo())
|
||||
// .eqIfPresent(StorageDO::getHeaderNo, reqVO.getHeaderNo())
|
||||
// .eqIfPresent(StorageDO::getDescription, reqVO.getDescription())
|
||||
// .eqIfPresent(StorageDO::getStatus, reqVO.getStatus())
|
||||
// .eqIfPresent(StorageDO::getWhId, reqVO.getWhId())
|
||||
// .eqIfPresent(StorageDO::getCreator, reqVO.getCreator())
|
||||
// .betweenIfPresent(StorageDO::getCreateTime, reqVO.getCreateTime())
|
||||
// .eqIfPresent(StorageDO::getUpdater, reqVO.getUpdater())
|
||||
// .betweenIfPresent(StorageDO::getUpdateTime, reqVO.getUpdateTime())
|
||||
// .eqIfPresent(StorageDO::getKeeper, reqVO.getKeeper())
|
||||
// .betweenIfPresent(StorageDO::getKeeperTime, reqVO.getKeeperTime())
|
||||
// .eqIfPresent(StorageDO::getOutbound, reqVO.getOutbound())
|
||||
// .betweenIfPresent(StorageDO::getOutboundTime, reqVO.getOutboundTime())
|
||||
// .eqIfPresent(StorageDO::getCancel, reqVO.getCancel())
|
||||
// .betweenIfPresent(StorageDO::getCancelTime, reqVO.getCancelTime())
|
||||
// .orderByDesc(StorageDO::getId));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,37 @@
|
||||
package com.chanko.yunxi.mes.module.heli.dal.mysql.storagelog;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
|
||||
import com.chanko.yunxi.mes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelog.StorageLogDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import com.chanko.yunxi.mes.module.heli.controller.admin.storagelog.vo.*;
|
||||
|
||||
/**
|
||||
* 入/出库日志 Mapper
|
||||
*
|
||||
* @author 管理员
|
||||
*/
|
||||
@Mapper
|
||||
public interface StorageLogMapper extends BaseMapperX<StorageLogDO> {
|
||||
|
||||
default PageResult<StorageLogDO> selectPage(StorageLogPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<StorageLogDO>()
|
||||
.eqIfPresent(StorageLogDO::getStockId, reqVO.getStockId())
|
||||
.eqIfPresent(StorageLogDO::getMatId, reqVO.getMatId())
|
||||
.eqIfPresent(StorageLogDO::getWhId, reqVO.getWhId())
|
||||
.eqIfPresent(StorageLogDO::getRgId, reqVO.getRgId())
|
||||
.eqIfPresent(StorageLogDO::getPnId, reqVO.getPnId())
|
||||
.eqIfPresent(StorageLogDO::getStorageOkQty, reqVO.getStorageOkQty())
|
||||
.eqIfPresent(StorageLogDO::getLotNo, reqVO.getLotNo())
|
||||
.eqIfPresent(StorageLogDO::getDescription, reqVO.getDescription())
|
||||
.eqIfPresent(StorageLogDO::getCreator, reqVO.getCreator())
|
||||
.betweenIfPresent(StorageLogDO::getCreateTime, reqVO.getCreateTime())
|
||||
.eqIfPresent(StorageLogDO::getUpdater, reqVO.getUpdater())
|
||||
.betweenIfPresent(StorageLogDO::getUpdateTime, reqVO.getUpdateTime())
|
||||
.orderByDesc(StorageLogDO::getId));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,37 @@
|
||||
package com.chanko.yunxi.mes.module.heli.dal.mysql.storagemat;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
|
||||
import com.chanko.yunxi.mes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagemat.StorageMatDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import com.chanko.yunxi.mes.module.heli.controller.admin.storagemat.vo.*;
|
||||
|
||||
/**
|
||||
* 入/出库物料 Mapper
|
||||
*
|
||||
* @author 管理员
|
||||
*/
|
||||
@Mapper
|
||||
public interface StorageMatMapper extends BaseMapperX<StorageMatDO> {
|
||||
|
||||
default PageResult<StorageMatDO> selectPage(StorageMatPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<StorageMatDO>()
|
||||
.eqIfPresent(StorageMatDO::getStockId, reqVO.getStockId())
|
||||
.eqIfPresent(StorageMatDO::getMatId, reqVO.getMatId())
|
||||
.eqIfPresent(StorageMatDO::getWhId, reqVO.getWhId())
|
||||
.eqIfPresent(StorageMatDO::getRgId, reqVO.getRgId())
|
||||
.eqIfPresent(StorageMatDO::getPnId, reqVO.getPnId())
|
||||
.eqIfPresent(StorageMatDO::getStorageOkQty, reqVO.getStorageOkQty())
|
||||
.eqIfPresent(StorageMatDO::getLotNo, reqVO.getLotNo())
|
||||
.eqIfPresent(StorageMatDO::getDescription, reqVO.getDescription())
|
||||
.eqIfPresent(StorageMatDO::getCreator, reqVO.getCreator())
|
||||
.betweenIfPresent(StorageMatDO::getCreateTime, reqVO.getCreateTime())
|
||||
.eqIfPresent(StorageMatDO::getUpdater, reqVO.getUpdater())
|
||||
.betweenIfPresent(StorageMatDO::getUpdateTime, reqVO.getUpdateTime())
|
||||
.orderByDesc(StorageMatDO::getId));
|
||||
}
|
||||
List<StorageMatValidRespVO> selectStorageMatValid();
|
||||
}
|
@ -0,0 +1,77 @@
|
||||
package com.chanko.yunxi.mes.module.heli.service.projectorder;
|
||||
|
||||
import java.util.*;
|
||||
import javax.validation.*;
|
||||
import com.chanko.yunxi.mes.module.heli.controller.admin.projectorder.vo.*;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderDO;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectordersub.ProjectOrderSubDO;
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
|
||||
|
||||
/**
|
||||
* 项目订单 Service 接口
|
||||
*
|
||||
* @author 管理员
|
||||
*/
|
||||
public interface ProjectOrderService {
|
||||
|
||||
/**
|
||||
* 创建项目订单
|
||||
*
|
||||
* @param createReqVO 创建信息
|
||||
* @return 编号
|
||||
*/
|
||||
Long createProjectOrder(@Valid ProjectOrderSaveReqVO createReqVO);
|
||||
|
||||
/**
|
||||
* 更新项目订单
|
||||
*
|
||||
* @param updateReqVO 更新信息
|
||||
*/
|
||||
void updateProjectOrder(@Valid ProjectOrderSaveReqVO updateReqVO);
|
||||
|
||||
/**
|
||||
* 删除项目订单
|
||||
*
|
||||
* @param id 编号
|
||||
*/
|
||||
void deleteProjectOrder(Long id);
|
||||
|
||||
/**
|
||||
* 获得项目订单
|
||||
*
|
||||
* @param id 编号
|
||||
* @return 项目订单
|
||||
*/
|
||||
ProjectOrderDO getProjectOrder(Long id);
|
||||
|
||||
/**
|
||||
* 获得项目订单分页
|
||||
*
|
||||
* @param pageReqVO 分页查询
|
||||
* @return 项目订单分页
|
||||
*/
|
||||
PageResult<ProjectOrderDO> getProjectOrderPage(ProjectOrderPageReqVO pageReqVO);
|
||||
|
||||
// ==================== 子表(项目订单子项目) ====================
|
||||
|
||||
/**
|
||||
* 获得项目订单子项目列表
|
||||
*
|
||||
* @param projectOrderId 项目订单id
|
||||
* @return 项目订单子项目列表
|
||||
*/
|
||||
List<ProjectOrderSubDO> getProjectOrderSubListByProjectOrderId(Long projectOrderId);
|
||||
|
||||
/**
|
||||
* 操作 项目订单
|
||||
* @param operateReqVO
|
||||
*/
|
||||
void operateProjectOrder(ProjectOrderSaveReqVO operateReqVO);
|
||||
|
||||
/**
|
||||
* 记录快照
|
||||
* @param operateReqVO
|
||||
*/
|
||||
void createProjectOrderSnapshot(ProjectOrderSaveReqVO operateReqVO);
|
||||
}
|
@ -0,0 +1,70 @@
|
||||
package com.chanko.yunxi.mes.module.heli.service.serialnumber;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import javax.validation.*;
|
||||
import com.chanko.yunxi.mes.module.heli.controller.admin.serialnumber.vo.*;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.serialnumber.SerialNumberDO;
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
|
||||
|
||||
/**
|
||||
* 序列号记录 Service 接口
|
||||
*
|
||||
* @author 管理员
|
||||
*/
|
||||
public interface SerialNumberService {
|
||||
|
||||
/**
|
||||
* 创建序列号记录
|
||||
*
|
||||
* @param createReqVO 创建信息
|
||||
* @return 编号
|
||||
*/
|
||||
Long createSerialNumber(@Valid SerialNumberSaveReqVO createReqVO);
|
||||
|
||||
/**
|
||||
* 更新序列号记录
|
||||
*
|
||||
* @param updateReqVO 更新信息
|
||||
*/
|
||||
void updateSerialNumber(@Valid SerialNumberSaveReqVO updateReqVO);
|
||||
|
||||
/**
|
||||
* 更新序列号记录
|
||||
*
|
||||
* @param serialNumberDO 更新信息
|
||||
*/
|
||||
void updateSerialNumber(SerialNumberDO serialNumberDO);
|
||||
|
||||
/**
|
||||
* 删除序列号记录
|
||||
*
|
||||
* @param id 编号
|
||||
*/
|
||||
void deleteSerialNumber(Long id);
|
||||
|
||||
/**
|
||||
* 获得序列号记录
|
||||
*
|
||||
* @param id 编号
|
||||
* @return 序列号记录
|
||||
*/
|
||||
SerialNumberDO getSerialNumber(Long id);
|
||||
|
||||
/**
|
||||
* 获得序列号记录分页
|
||||
*
|
||||
* @param pageReqVO 分页查询
|
||||
* @return 序列号记录分页
|
||||
*/
|
||||
PageResult<SerialNumberDO> getSerialNumberPage(SerialNumberPageReqVO pageReqVO);
|
||||
|
||||
/**
|
||||
* 获取序列号记录
|
||||
* @param businessType
|
||||
* @param segment
|
||||
* @return
|
||||
*/
|
||||
SerialNumberDO getSerialNumber(String businessType, String segment);
|
||||
}
|
@ -0,0 +1,109 @@
|
||||
package com.chanko.yunxi.mes.module.heli.service.serialnumber;
|
||||
|
||||
import com.chanko.yunxi.mes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.chanko.yunxi.mes.module.heli.enums.BusinesTypeEnum;
|
||||
import org.springframework.stereotype.Service;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import com.chanko.yunxi.mes.module.heli.controller.admin.serialnumber.vo.*;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.serialnumber.SerialNumberDO;
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
|
||||
import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils;
|
||||
|
||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.serialnumber.SerialNumberMapper;
|
||||
|
||||
import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static com.chanko.yunxi.mes.module.heli.enums.ErrorCodeConstants.*;
|
||||
|
||||
/**
|
||||
* 序列号记录 Service 实现类
|
||||
*
|
||||
* @author 管理员
|
||||
*/
|
||||
@Service
|
||||
@Validated
|
||||
public class SerialNumberServiceImpl implements SerialNumberService {
|
||||
|
||||
@Resource
|
||||
private SerialNumberMapper serialNumberMapper;
|
||||
|
||||
@Override
|
||||
public Long createSerialNumber(SerialNumberSaveReqVO createReqVO) {
|
||||
// 插入
|
||||
SerialNumberDO serialNumber = BeanUtils.toBean(createReqVO, SerialNumberDO.class);
|
||||
serialNumberMapper.insert(serialNumber);
|
||||
// 返回
|
||||
return serialNumber.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateSerialNumber(SerialNumberSaveReqVO updateReqVO) {
|
||||
// 校验存在
|
||||
validateSerialNumberExists(updateReqVO.getId());
|
||||
// 更新
|
||||
SerialNumberDO updateObj = BeanUtils.toBean(updateReqVO, SerialNumberDO.class);
|
||||
serialNumberMapper.updateById(updateObj);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateSerialNumber(SerialNumberDO serialNumberDO) {
|
||||
serialNumberMapper.updateById(serialNumberDO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteSerialNumber(Long id) {
|
||||
// 校验存在
|
||||
validateSerialNumberExists(id);
|
||||
// 删除
|
||||
serialNumberMapper.deleteById(id);
|
||||
}
|
||||
|
||||
private void validateSerialNumberExists(Long id) {
|
||||
if (serialNumberMapper.selectById(id) == null) {
|
||||
throw exception(SERIAL_NUMBER_NOT_EXISTS);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public SerialNumberDO getSerialNumber(Long id) {
|
||||
return serialNumberMapper.selectById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<SerialNumberDO> getSerialNumberPage(SerialNumberPageReqVO pageReqVO) {
|
||||
return serialNumberMapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public SerialNumberDO getSerialNumber(String businessType, String segment) {
|
||||
LambdaQueryWrapperX<SerialNumberDO> query = new LambdaQueryWrapperX<SerialNumberDO>() {{
|
||||
eq(SerialNumberDO::getBusinessType, businessType);
|
||||
eq(SerialNumberDO::getSegment, segment);
|
||||
last("LIMIT 1 FOR UPDATE");
|
||||
}};
|
||||
SerialNumberDO serialNumberDO = serialNumberMapper.selectOne(query);
|
||||
if(serialNumberDO == null){
|
||||
// 初始化一条数据
|
||||
try {
|
||||
serialNumberDO = new SerialNumberDO();
|
||||
serialNumberDO.setBusinessType(businessType)
|
||||
.setSegment(segment)
|
||||
.setSerialNumber(0l);
|
||||
serialNumberMapper.insert(serialNumberDO);
|
||||
}catch (Exception e){
|
||||
// do nothing
|
||||
}
|
||||
// 二次获取
|
||||
serialNumberDO = serialNumberMapper.selectOne(query);
|
||||
}
|
||||
return serialNumberDO;
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
package com.chanko.yunxi.mes.module.heli.service.storage;
|
||||
|
||||
import java.util.*;
|
||||
import javax.validation.*;
|
||||
import com.chanko.yunxi.mes.module.heli.controller.admin.storage.vo.*;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storage.StorageDO;
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
|
||||
|
||||
/**
|
||||
* 入/出库 Service 接口
|
||||
*
|
||||
* @author 管理员
|
||||
*/
|
||||
public interface StorageService {
|
||||
|
||||
/**
|
||||
* 创建入/出库
|
||||
*
|
||||
* @param createReqVO 创建信息
|
||||
* @return 编号
|
||||
*/
|
||||
Long createStorage(@Valid StorageSaveReqVO createReqVO);
|
||||
|
||||
/**
|
||||
* 更新入/出库
|
||||
*
|
||||
* @param updateReqVO 更新信息
|
||||
*/
|
||||
void updateStorage(@Valid StorageSaveReqVO updateReqVO);
|
||||
|
||||
/**
|
||||
* 删除入/出库
|
||||
*
|
||||
* @param id 编号
|
||||
*/
|
||||
void deleteStorage(Long id);
|
||||
|
||||
/**
|
||||
* 获得入/出库
|
||||
*
|
||||
* @param id 编号
|
||||
* @return 入/出库
|
||||
*/
|
||||
StorageDO getStorage(Long id);
|
||||
|
||||
/**
|
||||
* 获得入/出库分页
|
||||
*
|
||||
* @param pageReqVO 分页查询
|
||||
* @return 入/出库分页
|
||||
*/
|
||||
PageResult<StorageDO> getStoragePage(StoragePageReqVO pageReqVO);
|
||||
|
||||
}
|
@ -0,0 +1,81 @@
|
||||
package com.chanko.yunxi.mes.module.heli.service.storage;
|
||||
|
||||
import cn.hutool.core.lang.UUID;
|
||||
import org.springframework.stereotype.Service;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.*;
|
||||
import com.chanko.yunxi.mes.module.heli.controller.admin.storage.vo.*;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storage.StorageDO;
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
|
||||
import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils;
|
||||
|
||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.storage.StorageMapper;
|
||||
|
||||
import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static com.chanko.yunxi.mes.module.heli.enums.CodeEnum.STOCK_IN;
|
||||
import static com.chanko.yunxi.mes.module.heli.enums.CodeEnum.WAREHOUSE;
|
||||
import static com.chanko.yunxi.mes.module.heli.enums.ErrorCodeConstants.*;
|
||||
|
||||
/**
|
||||
* 入/出库 Service 实现类
|
||||
*
|
||||
* @author 管理员
|
||||
*/
|
||||
@Service
|
||||
@Validated
|
||||
public class StorageServiceImpl implements StorageService {
|
||||
|
||||
@Resource
|
||||
private StorageMapper storageMapper;
|
||||
|
||||
@Override
|
||||
public Long createStorage(StorageSaveReqVO createReqVO) {
|
||||
// 插入
|
||||
StorageDO storage = BeanUtils.toBean(createReqVO, StorageDO.class);
|
||||
storage.setStockNo(UUID.fastUUID().toString(true));
|
||||
storageMapper.insert(storage);
|
||||
|
||||
storage.setStockNo(STOCK_IN.getCode(storage.getId().toString()));
|
||||
storageMapper.updateById(storage);
|
||||
// 返回
|
||||
return storage.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateStorage(StorageSaveReqVO updateReqVO) {
|
||||
// 校验存在
|
||||
validateStorageExists(updateReqVO.getId());
|
||||
// 更新
|
||||
StorageDO updateObj = BeanUtils.toBean(updateReqVO, StorageDO.class);
|
||||
storageMapper.updateById(updateObj);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteStorage(Long id) {
|
||||
// 校验存在
|
||||
validateStorageExists(id);
|
||||
// 删除
|
||||
storageMapper.deleteById(id);
|
||||
}
|
||||
|
||||
private void validateStorageExists(Long id) {
|
||||
if (storageMapper.selectById(id) == null) {
|
||||
throw exception(STORAGE_NOT_EXISTS);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public StorageDO getStorage(Long id) {
|
||||
return storageMapper.selectById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<StorageDO> getStoragePage(StoragePageReqVO pageReqVO) {
|
||||
return storageMapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
package com.chanko.yunxi.mes.module.heli.service.storagelog;
|
||||
|
||||
import java.util.*;
|
||||
import javax.validation.*;
|
||||
import com.chanko.yunxi.mes.module.heli.controller.admin.storagelog.vo.*;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelog.StorageLogDO;
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
|
||||
|
||||
/**
|
||||
* 入/出库日志 Service 接口
|
||||
*
|
||||
* @author 管理员
|
||||
*/
|
||||
public interface StorageLogService {
|
||||
|
||||
/**
|
||||
* 创建入/出库日志
|
||||
*
|
||||
* @param createReqVO 创建信息
|
||||
* @return 编号
|
||||
*/
|
||||
Long createStorageLog(@Valid StorageLogSaveReqVO createReqVO);
|
||||
|
||||
/**
|
||||
* 更新入/出库日志
|
||||
*
|
||||
* @param updateReqVO 更新信息
|
||||
*/
|
||||
void updateStorageLog(@Valid StorageLogSaveReqVO updateReqVO);
|
||||
|
||||
/**
|
||||
* 删除入/出库日志
|
||||
*
|
||||
* @param id 编号
|
||||
*/
|
||||
void deleteStorageLog(Long id);
|
||||
|
||||
/**
|
||||
* 获得入/出库日志
|
||||
*
|
||||
* @param id 编号
|
||||
* @return 入/出库日志
|
||||
*/
|
||||
StorageLogDO getStorageLog(Long id);
|
||||
|
||||
/**
|
||||
* 获得入/出库日志分页
|
||||
*
|
||||
* @param pageReqVO 分页查询
|
||||
* @return 入/出库日志分页
|
||||
*/
|
||||
PageResult<StorageLogDO> getStorageLogPage(StorageLogPageReqVO pageReqVO);
|
||||
|
||||
}
|
@ -0,0 +1,74 @@
|
||||
package com.chanko.yunxi.mes.module.heli.service.storagelog;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.*;
|
||||
import com.chanko.yunxi.mes.module.heli.controller.admin.storagelog.vo.*;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelog.StorageLogDO;
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
|
||||
import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils;
|
||||
|
||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.storagelog.StorageLogMapper;
|
||||
|
||||
import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static com.chanko.yunxi.mes.module.heli.enums.ErrorCodeConstants.*;
|
||||
|
||||
/**
|
||||
* 入/出库日志 Service 实现类
|
||||
*
|
||||
* @author 管理员
|
||||
*/
|
||||
@Service
|
||||
@Validated
|
||||
public class StorageLogServiceImpl implements StorageLogService {
|
||||
|
||||
@Resource
|
||||
private StorageLogMapper storageLogMapper;
|
||||
|
||||
@Override
|
||||
public Long createStorageLog(StorageLogSaveReqVO createReqVO) {
|
||||
// 插入
|
||||
StorageLogDO storageLog = BeanUtils.toBean(createReqVO, StorageLogDO.class);
|
||||
storageLogMapper.insert(storageLog);
|
||||
// 返回
|
||||
return storageLog.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateStorageLog(StorageLogSaveReqVO updateReqVO) {
|
||||
// 校验存在
|
||||
validateStorageLogExists(updateReqVO.getId());
|
||||
// 更新
|
||||
StorageLogDO updateObj = BeanUtils.toBean(updateReqVO, StorageLogDO.class);
|
||||
storageLogMapper.updateById(updateObj);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteStorageLog(Long id) {
|
||||
// 校验存在
|
||||
validateStorageLogExists(id);
|
||||
// 删除
|
||||
storageLogMapper.deleteById(id);
|
||||
}
|
||||
|
||||
private void validateStorageLogExists(Long id) {
|
||||
if (storageLogMapper.selectById(id) == null) {
|
||||
throw exception(STORAGE_LOG_NOT_EXISTS);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public StorageLogDO getStorageLog(Long id) {
|
||||
return storageLogMapper.selectById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<StorageLogDO> getStorageLogPage(StorageLogPageReqVO pageReqVO) {
|
||||
return storageLogMapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,64 @@
|
||||
package com.chanko.yunxi.mes.module.heli.service.storagemat;
|
||||
|
||||
import java.util.*;
|
||||
import javax.validation.*;
|
||||
import com.chanko.yunxi.mes.module.heli.controller.admin.storagemat.vo.*;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagemat.StorageMatDO;
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
|
||||
|
||||
/**
|
||||
* 入/出库物料 Service 接口
|
||||
*
|
||||
* @author 管理员
|
||||
*/
|
||||
public interface StorageMatService {
|
||||
|
||||
/**
|
||||
* 创建入/出库物料
|
||||
*
|
||||
* @param createReqVO 创建信息
|
||||
* @return 编号
|
||||
*/
|
||||
Long createStorageMat(@Valid StorageMatSaveReqVO createReqVO);
|
||||
|
||||
/**
|
||||
* 更新入/出库物料
|
||||
*
|
||||
* @param updateReqVO 更新信息
|
||||
*/
|
||||
void updateStorageMat(@Valid StorageMatSaveReqVO updateReqVO);
|
||||
|
||||
/**
|
||||
* 删除入/出库物料
|
||||
*
|
||||
* @param id 编号
|
||||
*/
|
||||
void deleteStorageMat(Long id);
|
||||
|
||||
/**
|
||||
* 获得入/出库物料
|
||||
*
|
||||
* @param id 编号
|
||||
* @return 入/出库物料
|
||||
*/
|
||||
StorageMatDO getStorageMat(Long id);
|
||||
|
||||
/**
|
||||
* 获得入/出库物料分页
|
||||
*
|
||||
* @param pageReqVO 分页查询
|
||||
* @return 入/出库物料分页
|
||||
*/
|
||||
PageResult<StorageMatDO> getStorageMatPage(StorageMatPageReqVO pageReqVO);
|
||||
|
||||
/**
|
||||
* 获得入/出库物料列表
|
||||
*
|
||||
* @return 入/出库物料分页
|
||||
*/
|
||||
List<StorageMatValidRespVO> getStorageMatList();
|
||||
|
||||
int deleteStorageMatList(Long stockid);
|
||||
|
||||
}
|
@ -0,0 +1,94 @@
|
||||
package com.chanko.yunxi.mes.module.heli.service.storagemat;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderDO;
|
||||
import com.google.common.collect.Maps;
|
||||
import org.springframework.stereotype.Service;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.*;
|
||||
import com.chanko.yunxi.mes.module.heli.controller.admin.storagemat.vo.*;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagemat.StorageMatDO;
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
|
||||
import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils;
|
||||
|
||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.storagemat.StorageMatMapper;
|
||||
|
||||
import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static com.chanko.yunxi.mes.module.heli.enums.ErrorCodeConstants.*;
|
||||
|
||||
/**
|
||||
* 入/出库物料 Service 实现类
|
||||
*
|
||||
* @author 管理员
|
||||
*/
|
||||
@Service
|
||||
@Validated
|
||||
public class StorageMatServiceImpl implements StorageMatService {
|
||||
|
||||
@Resource
|
||||
private StorageMatMapper storageMatMapper;
|
||||
|
||||
@Resource
|
||||
private StorageMatMapper storageMatGlobalMapper;
|
||||
|
||||
@Override
|
||||
public Long createStorageMat(StorageMatSaveReqVO createReqVO) {
|
||||
// 插入
|
||||
StorageMatDO storageMat = BeanUtils.toBean(createReqVO, StorageMatDO.class);
|
||||
storageMatMapper.insert(storageMat);
|
||||
// 返回
|
||||
return storageMat.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateStorageMat(StorageMatSaveReqVO updateReqVO) {
|
||||
// 校验存在
|
||||
validateStorageMatExists(updateReqVO.getId());
|
||||
// 更新
|
||||
StorageMatDO updateObj = BeanUtils.toBean(updateReqVO, StorageMatDO.class);
|
||||
storageMatMapper.updateById(updateObj);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteStorageMat(Long id) {
|
||||
// 校验存在
|
||||
validateStorageMatExists(id);
|
||||
// 删除
|
||||
storageMatMapper.deleteById(id);
|
||||
}
|
||||
|
||||
private void validateStorageMatExists(Long id) {
|
||||
if (storageMatMapper.selectById(id) == null) {
|
||||
throw exception(STORAGE_MAT_NOT_EXISTS);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public StorageMatDO getStorageMat(Long id) {
|
||||
return storageMatMapper.selectById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<StorageMatDO> getStorageMatPage(StorageMatPageReqVO pageReqVO) {
|
||||
return storageMatMapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<StorageMatValidRespVO> getStorageMatList() {
|
||||
return storageMatMapper.selectStorageMatValid();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int deleteStorageMatList(Long stockid) {
|
||||
//删除条件
|
||||
Map<String, Object> columnMap = Maps.newHashMap();
|
||||
columnMap.put("stock_id", stockid);
|
||||
|
||||
return storageMatMapper.deleteByMap(columnMap);
|
||||
}
|
||||
|
||||
}
|
@ -1,174 +0,0 @@
|
||||
package com.chanko.yunxi.mes.module.heli.service.procedure;
|
||||
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.boot.test.mock.mockito.MockBean;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import com.chanko.yunxi.mes.framework.test.core.ut.BaseDbUnitTest;
|
||||
|
||||
import com.chanko.yunxi.mes.module.heli.controller.admin.procedure.vo.*;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.procedure.ProcedureDO;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.procedure.ProcedureMapper;
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.context.annotation.Import;
|
||||
import java.util.*;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static cn.hutool.core.util.RandomUtil.*;
|
||||
import static com.chanko.yunxi.mes.module.heli.enums.ErrorCodeConstants.*;
|
||||
import static com.chanko.yunxi.mes.framework.test.core.util.AssertUtils.*;
|
||||
import static com.chanko.yunxi.mes.framework.test.core.util.RandomUtils.*;
|
||||
import static com.chanko.yunxi.mes.framework.common.util.date.LocalDateTimeUtils.*;
|
||||
import static com.chanko.yunxi.mes.framework.common.util.object.ObjectUtils.*;
|
||||
import static com.chanko.yunxi.mes.framework.common.util.date.DateUtils.*;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
import static org.mockito.Mockito.*;
|
||||
|
||||
/**
|
||||
* {@link ProcedureServiceImpl} 的单元测试类
|
||||
*
|
||||
* @author 管理员
|
||||
*/
|
||||
@Import(ProcedureServiceImpl.class)
|
||||
public class ProcedureServiceImplTest extends BaseDbUnitTest {
|
||||
|
||||
@Resource
|
||||
private ProcedureServiceImpl procedureService;
|
||||
|
||||
@Resource
|
||||
private ProcedureMapper procedureMapper;
|
||||
|
||||
@Test
|
||||
public void testCreateProcedure_success() {
|
||||
// 准备参数
|
||||
ProcedureSaveReqVO createReqVO = randomPojo(ProcedureSaveReqVO.class).setId(null);
|
||||
|
||||
// 调用
|
||||
Long procedureId = procedureService.createProcedure(createReqVO);
|
||||
// 断言
|
||||
assertNotNull(procedureId);
|
||||
// 校验记录的属性是否正确
|
||||
ProcedureDO procedure = procedureMapper.selectById(procedureId);
|
||||
assertPojoEquals(createReqVO, procedure, "id");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpdateProcedure_success() {
|
||||
// mock 数据
|
||||
ProcedureDO dbProcedure = randomPojo(ProcedureDO.class);
|
||||
procedureMapper.insert(dbProcedure);// @Sql: 先插入出一条存在的数据
|
||||
// 准备参数
|
||||
ProcedureSaveReqVO updateReqVO = randomPojo(ProcedureSaveReqVO.class, o -> {
|
||||
o.setId(dbProcedure.getId()); // 设置更新的 ID
|
||||
});
|
||||
|
||||
// 调用
|
||||
procedureService.updateProcedure(updateReqVO);
|
||||
// 校验是否更新正确
|
||||
ProcedureDO procedure = procedureMapper.selectById(updateReqVO.getId()); // 获取最新的
|
||||
assertPojoEquals(updateReqVO, procedure);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpdateProcedure_notExists() {
|
||||
// 准备参数
|
||||
ProcedureSaveReqVO updateReqVO = randomPojo(ProcedureSaveReqVO.class);
|
||||
|
||||
// 调用, 并断言异常
|
||||
assertServiceException(() -> procedureService.updateProcedure(updateReqVO), PROCEDURE_NOT_EXISTS);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeleteProcedure_success() {
|
||||
// mock 数据
|
||||
ProcedureDO dbProcedure = randomPojo(ProcedureDO.class);
|
||||
procedureMapper.insert(dbProcedure);// @Sql: 先插入出一条存在的数据
|
||||
// 准备参数
|
||||
Long id = dbProcedure.getId();
|
||||
|
||||
// 调用
|
||||
procedureService.deleteProcedure(id);
|
||||
// 校验数据不存在了
|
||||
assertNull(procedureMapper.selectById(id));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeleteProcedure_notExists() {
|
||||
// 准备参数
|
||||
Long id = randomLongId();
|
||||
|
||||
// 调用, 并断言异常
|
||||
assertServiceException(() -> procedureService.deleteProcedure(id), PROCEDURE_NOT_EXISTS);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
|
||||
public void testGetProcedurePage() {
|
||||
// mock 数据
|
||||
ProcedureDO dbProcedure = randomPojo(ProcedureDO.class, o -> { // 等会查询到
|
||||
o.setCode(null);
|
||||
o.setName(null);
|
||||
o.setDescription(null);
|
||||
o.setStatus(null);
|
||||
o.setCreator(null);
|
||||
o.setCreateTime(null);
|
||||
o.setUpdater(null);
|
||||
o.setUpdateTime(null);
|
||||
o.setDeleted(null);
|
||||
o.setTenantId(null);
|
||||
o.setIsReport(null);
|
||||
o.setWid(null);
|
||||
});
|
||||
procedureMapper.insert(dbProcedure);
|
||||
// 测试 code 不匹配
|
||||
procedureMapper.insert(cloneIgnoreId(dbProcedure, o -> o.setCode(null)));
|
||||
// 测试 name 不匹配
|
||||
procedureMapper.insert(cloneIgnoreId(dbProcedure, o -> o.setName(null)));
|
||||
// 测试 description 不匹配
|
||||
procedureMapper.insert(cloneIgnoreId(dbProcedure, o -> o.setDescription(null)));
|
||||
// 测试 status 不匹配
|
||||
procedureMapper.insert(cloneIgnoreId(dbProcedure, o -> o.setStatus(null)));
|
||||
// 测试 creator 不匹配
|
||||
procedureMapper.insert(cloneIgnoreId(dbProcedure, o -> o.setCreator(null)));
|
||||
// 测试 createTime 不匹配
|
||||
procedureMapper.insert(cloneIgnoreId(dbProcedure, o -> o.setCreateTime(null)));
|
||||
// 测试 updater 不匹配
|
||||
procedureMapper.insert(cloneIgnoreId(dbProcedure, o -> o.setUpdater(null)));
|
||||
// 测试 updateTime 不匹配
|
||||
procedureMapper.insert(cloneIgnoreId(dbProcedure, o -> o.setUpdateTime(null)));
|
||||
// 测试 deleted 不匹配
|
||||
procedureMapper.insert(cloneIgnoreId(dbProcedure, o -> o.setDeleted(null)));
|
||||
// 测试 tenantId 不匹配
|
||||
procedureMapper.insert(cloneIgnoreId(dbProcedure, o -> o.setTenantId(null)));
|
||||
// 测试 isReport 不匹配
|
||||
procedureMapper.insert(cloneIgnoreId(dbProcedure, o -> o.setIsReport(null)));
|
||||
// 测试 wid 不匹配
|
||||
procedureMapper.insert(cloneIgnoreId(dbProcedure, o -> o.setWid(null)));
|
||||
// 准备参数
|
||||
ProcedurePageReqVO reqVO = new ProcedurePageReqVO();
|
||||
reqVO.setCode(null);
|
||||
reqVO.setName(null);
|
||||
reqVO.setDescription(null);
|
||||
reqVO.setStatus(null);
|
||||
reqVO.setCreator(null);
|
||||
reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||
reqVO.setUpdater(null);
|
||||
reqVO.setUpdateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||
reqVO.setDeleted(null);
|
||||
reqVO.setTenantId(null);
|
||||
reqVO.setIsReport(null);
|
||||
reqVO.setWid(null);
|
||||
|
||||
// 调用
|
||||
PageResult<ProcedureDO> pageResult = procedureService.getProcedurePage(reqVO);
|
||||
// 断言
|
||||
assertEquals(1, pageResult.getTotal());
|
||||
assertEquals(1, pageResult.getList().size());
|
||||
assertPojoEquals(dbProcedure, pageResult.getList().get(0));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,81 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
export interface ProjectOrderVO {
|
||||
id: number
|
||||
code: string
|
||||
orderStatus: number
|
||||
deliveryStatus: number
|
||||
businessDeptId: number
|
||||
customerId: number
|
||||
mouldName: string
|
||||
businessLine: string
|
||||
blueprintNo: string
|
||||
hasPrice: number
|
||||
price: number
|
||||
currency: string
|
||||
projectStartTime: Date
|
||||
projectEndTime: Date
|
||||
isUrgency: number
|
||||
property: number
|
||||
referenceTechnology: string
|
||||
hasAlter: number
|
||||
lastAlterTime: Date
|
||||
qualityRequirement: string
|
||||
remark: string
|
||||
hasContract: number
|
||||
hasTechnologyProtocol: number
|
||||
hasBlueprint: number
|
||||
blueprintRemark: string
|
||||
status: number
|
||||
businessMan: number
|
||||
contractNo: string
|
||||
active: string
|
||||
activeOpinion: string
|
||||
projectOrderSubs: any
|
||||
isSnapshot: number
|
||||
snapshotId: number
|
||||
snapshotCode: string
|
||||
orderTime: Date
|
||||
snapshotOrderTime: Date
|
||||
}
|
||||
|
||||
// 查询项目订单分页
|
||||
export const getProjectOrderPage = async (params) => {
|
||||
return await request.get({ url: `/heli/project-order/page`, params })
|
||||
}
|
||||
|
||||
// 查询项目订单详情
|
||||
export const getProjectOrder = async (id: number) => {
|
||||
return await request.get({ url: `/heli/project-order/get?id=` + id })
|
||||
}
|
||||
|
||||
// 新增项目订单
|
||||
export const createProjectOrder = async (data: ProjectOrderVO) => {
|
||||
return await request.post({ url: `/heli/project-order/create`, data })
|
||||
}
|
||||
|
||||
// 修改项目订单
|
||||
export const updateProjectOrder = async (data: ProjectOrderVO) => {
|
||||
return await request.put({ url: `/heli/project-order/update`, data })
|
||||
}
|
||||
|
||||
// 删除项目订单
|
||||
export const deleteProjectOrder = async (id: number) => {
|
||||
return await request.delete({ url: `/heli/project-order/delete?id=` + id })
|
||||
}
|
||||
|
||||
// 导出项目订单 Excel
|
||||
export const exportProjectOrder = async (params) => {
|
||||
return await request.download({ url: `/heli/project-order/export-excel`, params })
|
||||
}
|
||||
|
||||
// ==================== 子表(项目订单子项目) ====================
|
||||
|
||||
// 获得项目订单子项目列表
|
||||
export const getProjectOrderSubListByProjectOrderId = async (projectOrderId) => {
|
||||
return await request.get({ url: `/heli/project-order/project-order-sub/list-by-project-order-id?projectOrderId=` + projectOrderId })
|
||||
}
|
||||
|
||||
export async function operateProjectOrder(data: ProjectOrderVO) {
|
||||
return await request.post({ url: `/heli/project-order/operate`, data })
|
||||
}
|
@ -0,0 +1,53 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
export interface StorageVO {
|
||||
id: number
|
||||
stockType: number
|
||||
stockInType: number
|
||||
stockOutType: number
|
||||
stockNo: string
|
||||
headerNo: number
|
||||
description: string
|
||||
status: number
|
||||
whId: number
|
||||
keeper: number
|
||||
keeperTime: Date
|
||||
outbound: number
|
||||
outboundTime: Date
|
||||
cancel: number
|
||||
cancelTime: Date
|
||||
}
|
||||
|
||||
// 查询入/出库分页
|
||||
export const getStoragePage = async (params) => {
|
||||
return await request.get({ url: `/heli/storage/page`, params })
|
||||
}
|
||||
|
||||
// 查询入/出库详情
|
||||
export const getStorage = async (id: number) => {
|
||||
return await request.get({ url: `/heli/storage/get?id=` + id })
|
||||
}
|
||||
|
||||
// 新增入/出库
|
||||
export const createStorage = async (data: StorageVO) => {
|
||||
return await request.post({ url: `/heli/storage/create`, data })
|
||||
}
|
||||
|
||||
// 修改入/出库
|
||||
export const updateStorage = async (data: StorageVO) => {
|
||||
return await request.put({ url: `/heli/storage/update`, data })
|
||||
}
|
||||
// 修改入/出库
|
||||
export const updateStorageStatus = async (data: StorageVO) => {
|
||||
return await request.put({ url: `/heli/storage/update-status`, data })
|
||||
}
|
||||
|
||||
// 删除入/出库
|
||||
export const deleteStorage = async (id: number) => {
|
||||
return await request.delete({ url: `/heli/storage/delete?id=` + id })
|
||||
}
|
||||
|
||||
// 导出入/出库 Excel
|
||||
export const exportStorage = async (params) => {
|
||||
return await request.download({ url: `/heli/storage/export-excel`, params })
|
||||
}
|
@ -0,0 +1,43 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
export interface StorageLogVO {
|
||||
id: number
|
||||
stockId: number
|
||||
matId: number
|
||||
whId: number
|
||||
rgId: number
|
||||
pnId: number
|
||||
storageOkQty: number
|
||||
lotNo: string
|
||||
description: string
|
||||
}
|
||||
|
||||
// 查询入/出库日志分页
|
||||
export const getStorageLogPage = async (params) => {
|
||||
return await request.get({ url: `/heli/storage-log/page`, params })
|
||||
}
|
||||
|
||||
// 查询入/出库日志详情
|
||||
export const getStorageLog = async (id: number) => {
|
||||
return await request.get({ url: `/heli/storage-log/get?id=` + id })
|
||||
}
|
||||
|
||||
// 新增入/出库日志
|
||||
export const createStorageLog = async (data: StorageLogVO) => {
|
||||
return await request.post({ url: `/heli/storage-log/create`, data })
|
||||
}
|
||||
|
||||
// 修改入/出库日志
|
||||
export const updateStorageLog = async (data: StorageLogVO) => {
|
||||
return await request.put({ url: `/heli/storage-log/update`, data })
|
||||
}
|
||||
|
||||
// 删除入/出库日志
|
||||
export const deleteStorageLog = async (id: number) => {
|
||||
return await request.delete({ url: `/heli/storage-log/delete?id=` + id })
|
||||
}
|
||||
|
||||
// 导出入/出库日志 Excel
|
||||
export const exportStorageLog = async (params) => {
|
||||
return await request.download({ url: `/heli/storage-log/export-excel`, params })
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
export interface StorageMatVO {
|
||||
id: number
|
||||
stockId: number
|
||||
matId: number
|
||||
whId: number
|
||||
rgId: number
|
||||
pnId: number
|
||||
storageOkQty: number
|
||||
lotNo: string
|
||||
projectNo: string
|
||||
description: string
|
||||
}
|
||||
|
||||
// 查询入/出库物料详情
|
||||
export const getStorageMatList = async () => {
|
||||
return await request.get({ url: `/heli/storage-mat/get-materials`})
|
||||
}
|
||||
|
||||
// 查询入/出库物料分页
|
||||
export const getStorageMatPage = async (params) => {
|
||||
return await request.get({ url: `/heli/storage-mat/page`, params })
|
||||
}
|
||||
|
||||
// 查询入/出库物料详情
|
||||
export const getStorageMat = async (id: number) => {
|
||||
return await request.get({ url: `/heli/storage-mat/get?id=` + id })
|
||||
}
|
||||
|
||||
// 新增入/出库物料
|
||||
export const createStorageMat = async (data: StorageMatVO) => {
|
||||
return await request.post({ url: `/heli/storage-mat/create`, data })
|
||||
}
|
||||
|
||||
// 批量新增入/出库物料
|
||||
export const createStorageMatBatch = async (data: StorageMatVO[],id:number) => {
|
||||
return await request.post({ url: `/heli/storage-mat/create-batch?stockid=`+id, data })
|
||||
}
|
||||
|
||||
|
||||
// 修改入/出库物料
|
||||
export const updateStorageMat = async (data: StorageMatVO) => {
|
||||
return await request.put({ url: `/heli/storage-mat/update`, data })
|
||||
}
|
||||
|
||||
// 删除入/出库物料
|
||||
export const deleteStorageMat = async (id: number) => {
|
||||
return await request.delete({ url: `/heli/storage-mat/delete?id=` + id })
|
||||
}
|
||||
|
||||
// 导出入/出库物料 Excel
|
||||
export const exportStorageMat = async (params) => {
|
||||
return await request.download({ url: `/heli/storage-mat/export-excel`, params })
|
||||
}
|
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 16 KiB |
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue