Commit 9b2dbcdd authored by 332784038@qq.com's avatar 332784038@qq.com

批量订单费用申请业务初始化提交

parent 05dfabfa
CREATE TABLE `ecw_batch_order_fee_apply` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`no` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '编号',
`details` json NOT NULL COMMENT '申请详情',
`reason` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '原因',
`state` tinyint DEFAULT 1 COMMENT '状态:0 已取消 1 申请中 2 已通过 3 已驳回',
`form_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '流程表单实例ID',
`creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `no_key` (`no`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic COMMENT = '批量费用申请' ;
\ No newline at end of file
package cn.iocoder.yudao.module.order.convert.batchOrderFeeApply;
import java.util.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import cn.iocoder.yudao.module.order.vo.batchOrderFeeApply.*;
import cn.iocoder.yudao.module.order.dal.dataobject.batchOrderFeeApply.BatchOrderFeeApplyDO;
/**
* 批量费用申请 Convert
* @author 系统管理员
*/
@Mapper
public interface BatchOrderFeeApplyConvert {
/*****转换MapStruct*****/
BatchOrderFeeApplyConvert INSTANCE = Mappers.getMapper(BatchOrderFeeApplyConvert.class);
/***
* 创建VO转实体
* @param bean
* @return
*/
BatchOrderFeeApplyDO convert(BatchOrderFeeApplyCreateReqVO bean);
/***
* 修改VO转实体
* @param bean
* @return
*/
BatchOrderFeeApplyDO convert(BatchOrderFeeApplyUpdateReqVO bean);
/***
* 实体转返回VO
* @param bean
* @return
*/
BatchOrderFeeApplyBackVO convert(BatchOrderFeeApplyDO bean);
/***
* 实体列表转返回VO列表
* @param list
* @return
*/
List<BatchOrderFeeApplyBackVO> convertList(List<BatchOrderFeeApplyDO> list);
/***
* 实体分页转返回分页
* @param page
* @return
*/
PageResult<BatchOrderFeeApplyBackVO> convertPage(PageResult<BatchOrderFeeApplyDO> page);
}
package cn.iocoder.yudao.module.order.dal.dataobject.batchOrderFeeApply;
import lombok.*;
import java.util.*;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
/**
* 批量费用申请 DO
*
* @author 系统管理员
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("ecw_batch_order_fee_apply")
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class BatchOrderFeeApplyDO extends BaseDO {
/**
* 主键
*/
@TableId
private Long id;
/**
* 编号
*/
private String no;
/**
* 申请详情
*/
private String details;
/**
* 原因
*/
private String reason;
/**
* 状态:0 已取消 1 申请中 2 已通过 3 已驳回
*/
private Integer state;
/**
* 流程表单实例ID
*/
private String formId;
}
package cn.iocoder.yudao.module.order.dal.mysql.batchOrderFeeApply;
import java.util.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQuery;
import cn.iocoder.yudao.framework.mybatis.core.mapper.AbstractMapper;
import cn.iocoder.yudao.module.order.dal.dataobject.batchOrderFeeApply.BatchOrderFeeApplyDO;
import cn.iocoder.yudao.framework.mybatis.core.vo.PageVO;
import org.apache.ibatis.annotations.Mapper;
import cn.iocoder.yudao.module.order.vo.batchOrderFeeApply.*;
/**
* 批量费用申请 Mapper
* @author 系统管理员
*/
@Mapper
public interface BatchOrderFeeApplyMapper extends AbstractMapper<BatchOrderFeeApplyDO> {
@Override
default PageResult<BatchOrderFeeApplyDO> selectPage(PageVO page, Object object) {
if (object instanceof BatchOrderFeeApplyQueryVO) {
BatchOrderFeeApplyQueryVO vo = (BatchOrderFeeApplyQueryVO)object;
return selectPage(page, new LambdaQuery<BatchOrderFeeApplyDO>()
.eqIfPresent(BatchOrderFeeApplyDO::getNo, vo.getNo())
.eqIfPresent(BatchOrderFeeApplyDO::getDetails, vo.getDetails())
.eqIfPresent(BatchOrderFeeApplyDO::getReason, vo.getReason())
.eqIfPresent(BatchOrderFeeApplyDO::getState, vo.getState())
.betweenIfPresent(BatchOrderFeeApplyDO::getCreateTime, vo.getBeginCreateTime(), vo.getEndCreateTime())
.orderByDesc(BatchOrderFeeApplyDO::getId));
}
return null;
}
@Override
default List<BatchOrderFeeApplyDO> selectList(Object object) {
if (object instanceof BatchOrderFeeApplyQueryVO) {
BatchOrderFeeApplyQueryVO vo = (BatchOrderFeeApplyQueryVO)object;
return selectList(new LambdaQuery<BatchOrderFeeApplyDO>()
.eqIfPresent(BatchOrderFeeApplyDO::getNo, vo.getNo())
.eqIfPresent(BatchOrderFeeApplyDO::getDetails, vo.getDetails())
.eqIfPresent(BatchOrderFeeApplyDO::getReason, vo.getReason())
.eqIfPresent(BatchOrderFeeApplyDO::getState, vo.getState())
.betweenIfPresent(BatchOrderFeeApplyDO::getCreateTime, vo.getBeginCreateTime(), vo.getEndCreateTime())
.orderByDesc(BatchOrderFeeApplyDO::getId));
}
return null;
}
}
...@@ -435,7 +435,7 @@ public interface ErrorCodeConstants { ...@@ -435,7 +435,7 @@ public interface ErrorCodeConstants {
ErrorCode GUAN_LIAN_ORDER_IS_APPROVAL_IN_PROCESS = new ErrorCode(1004001173, "guan.lian.order.is.approval.in.process"); ErrorCode GUAN_LIAN_ORDER_IS_APPROVAL_IN_PROCESS = new ErrorCode(1004001173, "guan.lian.order.is.approval.in.process");
ErrorCode ORDER_UPDATE_BOX_EXCEPTION = new ErrorCode(1004001174, "warehouse.in.box.exception"); ErrorCode ORDER_UPDATE_BOX_EXCEPTION = new ErrorCode(1004001174, "warehouse.in.box.exception");
ErrorCode BATCH_ORDER_FEE_APPLY_NOT_EXISTS = new ErrorCode(1004001175, "批量费用申请不存在");
//订单不是已装柜/已出货,不可操作 //订单不是已装柜/已出货,不可操作
......
package cn.iocoder.yudao.module.order.service.batchOrderFeeApply;
import java.util.*;
import javax.validation.*;
import cn.iocoder.yudao.framework.mybatis.core.vo.PageVO;
import cn.iocoder.yudao.framework.mybatis.core.service.IService;
import cn.iocoder.yudao.module.order.vo.batchOrderFeeApply.*;
import cn.iocoder.yudao.module.order.dal.dataobject.batchOrderFeeApply.BatchOrderFeeApplyDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
/**
* 批量费用申请 Service 接口
*
* @author 系统管理员
*/
public interface BatchOrderFeeApplyService extends IService<BatchOrderFeeApplyDO> {
/**
* 创建批量费用申请
* @param createReqVO 创建信息
* @return 编号
*/
Long createBatchOrderFeeApply(@Valid BatchOrderFeeApplyCreateReqVO createReqVO);
/**
* 更新批量费用申请
* @param updateReqVO 更新信息
*/
void updateBatchOrderFeeApply(@Valid BatchOrderFeeApplyUpdateReqVO updateReqVO);
/**
* 删除批量费用申请
* @param id 编号
*/
void deleteBatchOrderFeeApply(Long id);
/**
* 获得批量费用申请
* @param id 编号
* @return 批量费用申请
*/
BatchOrderFeeApplyDO getBatchOrderFeeApply(Long id);
/**
* 获得批量费用申请列表
* @param ids 编号
* @return 批量费用申请列表
*/
List<BatchOrderFeeApplyDO> getBatchOrderFeeApplyList(Collection<Long> ids);
/**
* 获得批量费用申请分页
* @param page 分页查询
* @param query 查询
* @return 批量费用申请分页
*/
PageResult<BatchOrderFeeApplyDO> getBatchOrderFeeApplyPage(BatchOrderFeeApplyQueryVO query, PageVO page);
/**
* 获得批量费用申请列表, 用于 Excel 导出
* @param query 查询
* @return 批量费用申请列表
*/
List<BatchOrderFeeApplyDO> getBatchOrderFeeApplyList(BatchOrderFeeApplyQueryVO query);
}
package cn.iocoder.yudao.module.order.service.batchOrderFeeApply;
import java.util.*;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import cn.iocoder.yudao.framework.mybatis.core.vo.PageVO;
import cn.iocoder.yudao.framework.mybatis.core.service.AbstractService;
import cn.iocoder.yudao.module.order.vo.batchOrderFeeApply.*;
import cn.iocoder.yudao.module.order.dal.dataobject.batchOrderFeeApply.BatchOrderFeeApplyDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.order.convert.batchOrderFeeApply.BatchOrderFeeApplyConvert;
import cn.iocoder.yudao.module.order.dal.mysql.batchOrderFeeApply.BatchOrderFeeApplyMapper;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.order.enums.ErrorCodeConstants.*;
/**
* 批量费用申请 Service 实现类
*
* @author 系统管理员
*/
@Service
@Validated
public class BatchOrderFeeApplyServiceImpl extends AbstractService<BatchOrderFeeApplyMapper, BatchOrderFeeApplyDO> implements BatchOrderFeeApplyService {
@Resource
private BatchOrderFeeApplyMapper batchOrderFeeApplyMapper;
@Override
public Long createBatchOrderFeeApply(BatchOrderFeeApplyCreateReqVO createReqVO) {
// 插入
BatchOrderFeeApplyDO batchOrderFeeApply = BatchOrderFeeApplyConvert.INSTANCE.convert(createReqVO);
batchOrderFeeApplyMapper.insert(batchOrderFeeApply);
// 返回
return batchOrderFeeApply.getId();
}
@Override
public void updateBatchOrderFeeApply(BatchOrderFeeApplyUpdateReqVO updateReqVO) {
// 校验存在
this.validateBatchOrderFeeApplyExists(updateReqVO.getId());
// 更新
BatchOrderFeeApplyDO updateObj = BatchOrderFeeApplyConvert.INSTANCE.convert(updateReqVO);
batchOrderFeeApplyMapper.updateById(updateObj);
}
@Override
public void deleteBatchOrderFeeApply(Long id) {
// 校验存在
this.validateBatchOrderFeeApplyExists(id);
// 删除
batchOrderFeeApplyMapper.deleteById(id);
}
private void validateBatchOrderFeeApplyExists(Long id) {
if (batchOrderFeeApplyMapper.selectById(id) == null) {
throw exception(BATCH_ORDER_FEE_APPLY_NOT_EXISTS);
}
}
@Override
public BatchOrderFeeApplyDO getBatchOrderFeeApply(Long id) {
return batchOrderFeeApplyMapper.selectById(id);
}
@Override
public List<BatchOrderFeeApplyDO> getBatchOrderFeeApplyList(Collection<Long> ids) {
return batchOrderFeeApplyMapper.selectBatchIds(ids);
}
@Override
public PageResult<BatchOrderFeeApplyDO> getBatchOrderFeeApplyPage(BatchOrderFeeApplyQueryVO query, PageVO page) {
return batchOrderFeeApplyMapper.selectPage(page, query);
}
@Override
public List<BatchOrderFeeApplyDO> getBatchOrderFeeApplyList(BatchOrderFeeApplyQueryVO query) {
return batchOrderFeeApplyMapper.selectList(query);
}
}
package cn.iocoder.yudao.module.order.vo.batchOrderFeeApply;
import lombok.*;
import java.util.*;
import io.swagger.annotations.*;
import com.alibaba.excel.annotation.ExcelProperty;
import org.springframework.format.annotation.DateTimeFormat;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
/**
* 批量费用申请 Response VO
* @author 系统管理员
*/
@Data
@ApiModel("管理后台 - 批量费用申请 Response VO")
public class BatchOrderFeeApplyBackVO {
@ExcelProperty("主键")
@ApiModelProperty(value = "主键", required = true)
private Long id;
@ExcelProperty("编号")
@ApiModelProperty(value = "编号", required = true)
private String no;
@ExcelProperty("申请详情")
@ApiModelProperty(value = "申请详情", required = true)
private String details;
@ExcelProperty("原因")
@ApiModelProperty(value = "原因")
private String reason;
@ExcelProperty("状态:0 已取消 1 申请中 2 已通过 3 已驳回")
@ApiModelProperty(value = "状态:0 已取消 1 申请中 2 已通过 3 已驳回")
private Integer state;
@ExcelProperty("流程表单实例ID")
@ApiModelProperty(value = "流程表单实例ID")
private String formId;
@ExcelProperty("创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "创建时间", required = true)
private Date createTime;
}
package cn.iocoder.yudao.module.order.vo.batchOrderFeeApply;
import lombok.*;
import io.swagger.annotations.*;
import javax.validation.constraints.*;
/**
* 批量费用申请 Base VO,提供给添加、修改、详细的子 VO 使用
* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成
*/
@Data
public class BatchOrderFeeApplyBaseVO {
@ApiModelProperty(value = "编号", required = true)
@NotNull(message = "编号不能为空")
private String no;
@ApiModelProperty(value = "申请详情", required = true)
@NotNull(message = "申请详情不能为空")
private String details;
@ApiModelProperty(value = "原因")
private String reason;
@ApiModelProperty(value = "状态:0 已取消 1 申请中 2 已通过 3 已驳回")
private Integer state;
}
package cn.iocoder.yudao.module.order.vo.batchOrderFeeApply;
import lombok.*;
import io.swagger.annotations.*;
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
@ApiModel("管理后台 - 批量费用申请创建 Request VO")
public class BatchOrderFeeApplyCreateReqVO extends BatchOrderFeeApplyBaseVO {
}
package cn.iocoder.yudao.module.order.vo.batchOrderFeeApply;
import lombok.*;
import java.util.*;
import io.swagger.annotations.*;
import org.springframework.format.annotation.DateTimeFormat;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Data
@ApiModel("管理后台 - 批量费用申请查询 VO")
public class BatchOrderFeeApplyQueryVO {
@ApiModelProperty(value = "编号")
private String no;
@ApiModelProperty(value = "申请详情")
private String details;
@ApiModelProperty(value = "原因")
private String reason;
@ApiModelProperty(value = "状态:0 已取消 1 申请中 2 已通过 3 已驳回")
private Integer state;
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "开始创建时间")
private Date beginCreateTime;
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "结束创建时间")
private Date endCreateTime;
}
package cn.iocoder.yudao.module.order.vo.batchOrderFeeApply;
import lombok.*;
import io.swagger.annotations.*;
import javax.validation.constraints.*;
@ApiModel("管理后台 - 批量费用申请更新 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class BatchOrderFeeApplyUpdateReqVO extends BatchOrderFeeApplyBaseVO {
@ApiModelProperty(value = "主键", required = true)
@NotNull(message = "主键不能为空")
private Long id;
}
package cn.iocoder.yudao.module.order.controller.admin.batchOrderFeeApply;
import cn.iocoder.yudao.framework.mybatis.core.vo.PageVO;
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.annotations.*;
import javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import cn.iocoder.yudao.framework.excel.util.ExcelUtils;
import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.*;
import cn.iocoder.yudao.module.order.vo.batchOrderFeeApply.*;
import cn.iocoder.yudao.module.order.dal.dataobject.batchOrderFeeApply.BatchOrderFeeApplyDO;
import cn.iocoder.yudao.module.order.convert.batchOrderFeeApply.BatchOrderFeeApplyConvert;
import cn.iocoder.yudao.module.order.service.batchOrderFeeApply.BatchOrderFeeApplyService;
@Validated
@RestController
@Api(tags = "管理后台 - 批量费用申请")
@RequestMapping("/ecw/batch-order-fee-apply")
public class BatchOrderFeeApplyController {
@Resource
private BatchOrderFeeApplyService batchOrderFeeApplyService;
@PostMapping("/create")
@ApiOperation("创建批量费用申请")
@PreAuthorize("@ss.hasPermission('ecw:batch-order-fee-apply:create')")
public CommonResult<Long> createBatchOrderFeeApply(@Valid @RequestBody BatchOrderFeeApplyCreateReqVO createReqVO) {
return success(batchOrderFeeApplyService.createBatchOrderFeeApply(createReqVO));
}
@GetMapping("/get")
@ApiOperation("获得批量费用申请")
@ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
@PreAuthorize("@ss.hasPermission('ecw:batch-order-fee-apply:query')")
public CommonResult<BatchOrderFeeApplyBackVO> getBatchOrderFeeApply(@RequestParam("id") Long id) {
BatchOrderFeeApplyDO batchOrderFeeApply = batchOrderFeeApplyService.getBatchOrderFeeApply(id);
return success(BatchOrderFeeApplyConvert.INSTANCE.convert(batchOrderFeeApply));
}
@GetMapping("/page")
@ApiOperation("获得批量费用申请分页")
@PreAuthorize("@ss.hasPermission('ecw:batch-order-fee-apply:query')")
public CommonResult<PageResult<BatchOrderFeeApplyBackVO>> getBatchOrderFeeApplyPage(@Valid BatchOrderFeeApplyQueryVO query, PageVO page) {
PageResult<BatchOrderFeeApplyDO> pageResult = batchOrderFeeApplyService.getBatchOrderFeeApplyPage(query, page);
return success(BatchOrderFeeApplyConvert.INSTANCE.convertPage(pageResult));
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment