diff --git a/src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java b/src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java index 7a97a286..4d814d05 100644 --- a/src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java +++ b/src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java @@ -52,6 +52,12 @@ public interface TbsSeeYonConst { } } + class BudgetBatchApplyConf{ + public static String Code(){ + return DevEnvironmentConfig.isDev()?"budgetBatch_Test":"budgetBatch"; + } + } + String API_TEST = "/testConnection"; String API_PROCESS_CREATE = "/process/create"; String API_PROCESS_CREATE_CALLBACK = "/process/createCallback"; diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetBatchController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetBatchController.java new file mode 100644 index 00000000..26c43a0b --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetBatchController.java @@ -0,0 +1,92 @@ +package com.qs.serve.modules.tbs.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.qs.serve.common.model.annotation.SysLog; +import com.qs.serve.common.model.dto.PageVo; +import com.qs.serve.common.model.dto.R; +import com.qs.serve.common.model.enums.BizType; +import com.qs.serve.common.model.enums.SystemModule; +import com.qs.serve.common.util.PageUtil; +import com.qs.serve.common.util.CopierUtil; +import com.qs.serve.common.util.StringUtils; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import com.qs.serve.modules.tbs.entity.TbsBudgetBatch; +import com.qs.serve.modules.tbs.service.TbsBudgetBatchService; + +import javax.validation.Valid; +import java.util.List; + +/** + * 预算 批量申请 + * @author YenHex + * @since 2023-08-24 + */ +@Slf4j +@AllArgsConstructor +@RestController +@RequestMapping("tbs/budgetBatch") +public class TbsBudgetBatchController { + + private TbsBudgetBatchService tbsBudgetBatchService; + + /** + * 列表 + * @param param + * @return + */ + //@GetMapping("/list") + //@PreAuthorize("hasRole('tbs:budgetBatch:query')") + public R> getList(TbsBudgetBatch param){ + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(param); + List list = tbsBudgetBatchService.list(lqw); + return R.ok(list); + } + + /** + * 翻页 + * @param param + * @return + */ + //@GetMapping("/page") + //@PreAuthorize("hasRole('tbs:budgetBatch:query')") + public R> getPage(TbsBudgetBatch param){ + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(param); + PageUtil.startPage(); + List list = tbsBudgetBatchService.list(lqw); + return R.byPageHelperList(list); + } + + /** + * ID查询 + * @param id + * @return + */ + @GetMapping("/getById/{id}") + @SysLog(module = SystemModule.Budget, title = "批量申请", biz = BizType.QUERY) + @PreAuthorize("hasRole('tbs:budgetBatch:query')") + public R getById(@PathVariable("id") String id){ + TbsBudgetBatch tbsBudgetBatch = tbsBudgetBatchService.getById(id); + return R.ok(tbsBudgetBatch); + } + + + /** + * 新增 + * @param param + * @return + */ + @PostMapping("/commit") + @SysLog(module = SystemModule.Budget, title = "批量申请", biz = BizType.INSERT) + public R commit(@RequestBody @Valid TbsBudgetBatch param){ + TbsBudgetBatch entity = CopierUtil.copy(param,new TbsBudgetBatch()); + boolean result = tbsBudgetBatchService.save(entity); + return R.isTrue(result); + } + + +} + diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetBatchItem.java b/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetBatchItem.java new file mode 100644 index 00000000..802e32f1 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetBatchItem.java @@ -0,0 +1,122 @@ +package com.qs.serve.modules.tbs.entity; + +import java.time.LocalDate; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; +import org.hibernate.validator.constraints.Length; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotNull; +import javax.validation.constraints.NotBlank; + +/** + * 批量申请项 实体类 + * @author YenHex + * @since 2023-08-24 + */ +@Data +@TableName("tbs_budget_batch_item") +public class TbsBudgetBatchItem implements Serializable { + + private static final long serialVersionUID = 1L; + + /** id */ + @TableId(type = IdType.AUTO) + private Long id; + + /** 批次id */ + private Long batchId; + + /** 预算id */ + @NotNull(message = "预算id不能为空") + private Long budgetId; + + /** 预算更变记录id */ + private Long changeId; + + /** 状态 */ + @NotNull(message = "状态不能为空") + private Integer batchState; + + /** 用户id */ + @Length(max = 255,message = "用户id长度不能超过255字") + private String userId; + + /** 用户编码 */ + @Length(max = 255,message = "用户编码长度不能超过255字") + private String userCode; + + /** 用户 */ + @Length(max = 255,message = "用户长度不能超过255字") + private String userName; + + /** 提交审批时间 */ + @Length(max = 0,message = "提交审批时间长度不能超过0字") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private LocalDateTime submitTime; + + /** 备注 */ + @Length(max = 255,message = "备注长度不能超过255字") + private String remark; + + /** 创建时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + /** 最后更新时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField(fill = FieldFill.UPDATE) + private LocalDateTime updateTime; + + /** 所属租户 */ + @JsonIgnore + @JsonProperty + private String tenantId; + + /** 创建人 */ + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** 更新人 */ + @TableField(fill = FieldFill.UPDATE) + private String updateBy; + + /** 逻辑删除标记(0:显示;1:隐藏) */ + @JsonIgnore + @JsonProperty + private String delFlag; + + + public static TbsBudgetBatchItem toNewObject(TbsBudgetBatchItem source){ + TbsBudgetBatchItem budgetBatchItem = new TbsBudgetBatchItem(); + budgetBatchItem.setId(source.getId()); + budgetBatchItem.setBudgetId(source.getBudgetId()); + budgetBatchItem.setChangeId(source.getChangeId()); + budgetBatchItem.setBatchState(source.getBatchState()); + budgetBatchItem.setUserId(source.getUserId()); + budgetBatchItem.setUserCode(source.getUserCode()); + budgetBatchItem.setUserName(source.getUserName()); + budgetBatchItem.setSubmitTime(source.getSubmitTime()); + budgetBatchItem.setRemark(source.getRemark()); + budgetBatchItem.setCreateTime(source.getCreateTime()); + budgetBatchItem.setUpdateTime(source.getUpdateTime()); + budgetBatchItem.setTenantId(source.getTenantId()); + budgetBatchItem.setCreateBy(source.getCreateBy()); + budgetBatchItem.setUpdateBy(source.getUpdateBy()); + budgetBatchItem.setDelFlag(source.getDelFlag()); + return budgetBatchItem; + } + +} + diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetBatchBo.java b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetBatchBo.java new file mode 100644 index 00000000..421455f1 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetBatchBo.java @@ -0,0 +1,8 @@ +package com.qs.serve.modules.tbs.entity.bo; + +/** + * @author YenHex + * @since 2023/8/24 + */ +public class TbsBudgetBatchBo { +} diff --git a/src/main/java/com/qs/serve/modules/tbs/mapper/TbsBudgetBatchItemMapper.java b/src/main/java/com/qs/serve/modules/tbs/mapper/TbsBudgetBatchItemMapper.java new file mode 100644 index 00000000..d7f86f1a --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tbs/mapper/TbsBudgetBatchItemMapper.java @@ -0,0 +1,14 @@ +package com.qs.serve.modules.tbs.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.qs.serve.modules.tbs.entity.TbsBudgetBatchItem; + +/** + * 批量申请项 Mapper + * @author YenHex + * @date 2023-08-24 + */ +public interface TbsBudgetBatchItemMapper extends BaseMapper { + +} + diff --git a/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetBatchItemService.java b/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetBatchItemService.java new file mode 100644 index 00000000..354e5b95 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetBatchItemService.java @@ -0,0 +1,14 @@ +package com.qs.serve.modules.tbs.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.qs.serve.modules.tbs.entity.TbsBudgetBatchItem; + +/** + * 批量申请项 服务接口 + * @author YenHex + * @date 2023-08-24 + */ +public interface TbsBudgetBatchItemService extends IService { + +} + diff --git a/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetBatchService.java b/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetBatchService.java index f111367e..5e0ad1c9 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetBatchService.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetBatchService.java @@ -2,6 +2,7 @@ package com.qs.serve.modules.tbs.service; import com.baomidou.mybatisplus.extension.service.IService; import com.qs.serve.modules.tbs.entity.TbsBudgetBatch; +import com.qs.serve.modules.tbs.entity.bo.TbsBudgetBatchBo; /** * 批量申请 服务接口 @@ -10,5 +11,7 @@ import com.qs.serve.modules.tbs.entity.TbsBudgetBatch; */ public interface TbsBudgetBatchService extends IService { + Object commit(TbsBudgetBatchBo param); + } diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetBatchItemServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetBatchItemServiceImpl.java new file mode 100644 index 00000000..caebbe79 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetBatchItemServiceImpl.java @@ -0,0 +1,22 @@ +package com.qs.serve.modules.tbs.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import com.qs.serve.modules.tbs.entity.TbsBudgetBatchItem; +import com.qs.serve.modules.tbs.service.TbsBudgetBatchItemService; +import com.qs.serve.modules.tbs.mapper.TbsBudgetBatchItemMapper; + +/** + * 批量申请项 服务实现类 + * @author YenHex + * @since 2023-08-24 + */ +@Slf4j +@Service +@AllArgsConstructor +public class TbsBudgetBatchItemServiceImpl extends ServiceImpl implements TbsBudgetBatchItemService { + +} + diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetBatchOperationServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetBatchOperationServiceImpl.java new file mode 100644 index 00000000..86ed892d --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetBatchOperationServiceImpl.java @@ -0,0 +1,71 @@ +package com.qs.serve.modules.tbs.service.impl; + +import com.qs.serve.common.util.Assert; +import com.qs.serve.modules.seeyon.service.SeeYonOperationService; +import com.qs.serve.modules.tbs.common.TbsBudgetCheckState; +import com.qs.serve.modules.tbs.common.TbsSeeYonConst; +import com.qs.serve.modules.tbs.entity.TbsBudgetBatch; +import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo; +import com.qs.serve.modules.tbs.service.TbsBudgetBatchService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +/** + * 预算导入申请底层方法 + * @author YenHex + * @since 2023/8/24 + */ +@Slf4j +@Service +@AllArgsConstructor +public class TbsBudgetBatchOperationServiceImpl implements SeeYonOperationService { + + private final TbsBudgetBatchService budgetBatchService; + + @Override + public String getTemplateCode() { + return TbsSeeYonConst.BudgetBatchApplyConf.Code(); + } + + @Override + public String getSyFormIdByTargetInfo(TbsAffairCommitBo affairCommit) { + TbsBudgetBatch budgetBatch = budgetBatchService.getById(affairCommit.getTargetId()); + if (!budgetBatch.getBatchState().equals(TbsBudgetCheckState.State_1_apply)) { + Assert.throwEx("操作失败,预算处于非审批状态"); + } + return budgetBatch.getSyFormId(); + } + + @Override + public Object doBacked(TbsAffairCommitBo param) { + //业务待定 + return null; + } + + @Override + public Object doFinished(TbsAffairCommitBo param) { + return null; + } + + @Override + public Object doRefuse(TbsAffairCommitBo param) { + TbsBudgetBatch budgetBatch = budgetBatchService.getById(param.getTargetId()); + budgetBatch.setBatchState(TbsBudgetCheckState.State_4_stop); + //退回草稿 + + return null; + } + + @Override + public boolean checkSyFormIdIsNotNull(String targetId) { + TbsBudgetBatch budgetBatch = budgetBatchService.getById(targetId); + return budgetBatch.getSyFormId()!=null; + } + + @Override + public void doCommitBacked(String targetId) { + + } + +} diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetBatchServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetBatchServiceImpl.java index aa277829..f6dc33cd 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetBatchServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetBatchServiceImpl.java @@ -1,6 +1,7 @@ package com.qs.serve.modules.tbs.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.qs.serve.modules.tbs.entity.bo.TbsBudgetBatchBo; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -18,5 +19,10 @@ import com.qs.serve.modules.tbs.mapper.TbsBudgetBatchMapper; @AllArgsConstructor public class TbsBudgetBatchServiceImpl extends ServiceImpl implements TbsBudgetBatchService { + + @Override + public Object commit(TbsBudgetBatchBo param) { + return null; + } }