parent
a7b183d786
commit
add027b3e8
@ -0,0 +1,27 @@
|
||||
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, "已保存"),
|
||||
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;
|
||||
}
|
||||
}
|
@ -1,106 +1,133 @@
|
||||
package com.chanko.yunxi.mes.module.heli.controller.admin.projectorder;
|
||||
|
||||
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.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.module.heli.service.projectorder.ProjectOrderService;
|
||||
|
||||
@Tag(name = "管理后台 - 项目订单")
|
||||
@RestController
|
||||
@RequestMapping("/heli/project-order")
|
||||
@Validated
|
||||
public class ProjectOrderController {
|
||||
|
||||
@Resource
|
||||
private ProjectOrderService projectOrderService;
|
||||
|
||||
@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);
|
||||
}
|
||||
|
||||
@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));
|
||||
}
|
||||
|
||||
}
|
||||
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.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)
|
||||
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());
|
||||
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,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));
|
||||
}
|
||||
|
||||
}
|
@ -1,66 +1,71 @@
|
||||
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);
|
||||
|
||||
}
|
||||
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);
|
||||
}
|
||||
|
@ -0,0 +1,63 @@
|
||||
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 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,104 @@
|
||||
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 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, BusinesTypeEnum.PROJECT_ORDER.name());
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
}
|
Loading…
Reference in new issue