21 changed files with 401 additions and 101 deletions
@ -0,0 +1,108 @@ |
|||||
|
package com.qs.serve.modules.tbs.controller; |
||||
|
|
||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
||||
|
import com.qs.serve.common.model.annotation.LimitSubmit; |
||||
|
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.AuthContextUtils; |
||||
|
import com.qs.serve.common.util.PageUtil; |
||||
|
import com.qs.serve.common.util.StringUtils; |
||||
|
import com.qs.serve.modules.seeyon.entity.CtpAffairQo; |
||||
|
import com.qs.serve.modules.seeyon.entity.bo.CtpAddNodeParam; |
||||
|
import com.qs.serve.modules.tbs.entity.TbsCostTodo; |
||||
|
import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo; |
||||
|
import com.qs.serve.modules.tbs.entity.vo.CtpAffairVo; |
||||
|
import com.qs.serve.modules.tbs.service.TbsCostTodoService; |
||||
|
import com.qs.serve.modules.tbs.service.impl.TbsCostApplyOperationServiceImpl; |
||||
|
import com.qs.serve.modules.tbs.service.impl.TbsCostTodoOperationServiceImpl; |
||||
|
import lombok.AllArgsConstructor; |
||||
|
import lombok.extern.slf4j.Slf4j; |
||||
|
import org.springframework.security.access.prepost.PreAuthorize; |
||||
|
import org.springframework.web.bind.annotation.*; |
||||
|
|
||||
|
import javax.validation.Valid; |
||||
|
import java.util.List; |
||||
|
|
||||
|
/** |
||||
|
* 预算 协议条款(审批) |
||||
|
* @author YenHex |
||||
|
* @since 2023-02-17 |
||||
|
*/ |
||||
|
@Slf4j |
||||
|
@AllArgsConstructor |
||||
|
@RestController |
||||
|
@RequestMapping("tbs/costTodo") |
||||
|
public class TbsCostTodoCheckController { |
||||
|
|
||||
|
private TbsCostApplyOperationServiceImpl tbsCostApplyOperationServiceImpl; |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 审批列表(用于详情页) |
||||
|
* @param costApplyId |
||||
|
* @return |
||||
|
*/ |
||||
|
@GetMapping("/ListAffairs") |
||||
|
public R<List<CtpAffairVo>> pageAffair(String costApplyId){ |
||||
|
return tbsCostApplyOperationServiceImpl.pageAffair(costApplyId); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 审批列表(翻页) |
||||
|
* @param param |
||||
|
* @return |
||||
|
*/ |
||||
|
@GetMapping("/pageMemberAffair") |
||||
|
public R<PageVo<CtpAffairVo>> pageMemberAffair(CtpAffairQo param){ |
||||
|
return tbsCostApplyOperationServiceImpl.pageMemberAffair(param); |
||||
|
} |
||||
|
/** |
||||
|
* 提交审批节点 |
||||
|
* @return |
||||
|
*/ |
||||
|
@LimitSubmit |
||||
|
@PostMapping("/commitAffair") |
||||
|
@SysLog(module = SystemModule.Budget, title = "费用申请", biz = BizType.DELETE) |
||||
|
@PreAuthorize("hasRole('tbs:costApply:commit')") |
||||
|
public R<?> commitAffair(@RequestBody @Valid TbsAffairCommitBo affairCommit){ |
||||
|
return tbsCostApplyOperationServiceImpl.commitAffair(affairCommit); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 补偿按钮 |
||||
|
* @param id |
||||
|
* @return |
||||
|
*/ |
||||
|
@LimitSubmit |
||||
|
@PostMapping("/compensate/{id}") |
||||
|
@SysLog(module = SystemModule.Budget, title = "费用申请", biz = BizType.UPDATE) |
||||
|
public R<?> compensate(@PathVariable("id") String id){ |
||||
|
return tbsCostApplyOperationServiceImpl.runCompensate(id); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 加签 |
||||
|
* @param param |
||||
|
* @return |
||||
|
*/ |
||||
|
@LimitSubmit |
||||
|
@PostMapping("/addNode") |
||||
|
@SysLog(module = SystemModule.Budget, title = "费用申请", biz = BizType.DELETE) |
||||
|
public R<String> addNode(@RequestBody CtpAddNodeParam param){ |
||||
|
return tbsCostApplyOperationServiceImpl.addNode(param); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 获取未完成审批统计(个人) |
||||
|
* @return |
||||
|
*/ |
||||
|
@PostMapping("/getAffairUnfinished") |
||||
|
public R<Long> getUnfinished(){ |
||||
|
return tbsCostApplyOperationServiceImpl.getUnfinished(); |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
@ -0,0 +1,166 @@ |
|||||
|
package com.qs.serve.modules.tbs.service.impl; |
||||
|
|
||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
||||
|
import com.qs.serve.common.config.properties.ProjectProperties; |
||||
|
import com.qs.serve.common.model.dto.R; |
||||
|
import com.qs.serve.common.util.*; |
||||
|
import com.qs.serve.common.util.model.DateFormatString; |
||||
|
import com.qs.serve.modules.data.service.DataAffairCommitService; |
||||
|
import com.qs.serve.modules.seeyon.entity.BaseCreateProcessBo; |
||||
|
import com.qs.serve.modules.seeyon.service.SeeYonOperationService; |
||||
|
import com.qs.serve.modules.seeyon.service.SeeYonRequestService; |
||||
|
import com.qs.serve.modules.sys.entity.SysUser; |
||||
|
import com.qs.serve.modules.sys.mapper.SysUserMapper; |
||||
|
import com.qs.serve.modules.tbs.common.TbsCommonCheckState; |
||||
|
import com.qs.serve.modules.tbs.common.TbsSeeYonConst; |
||||
|
import com.qs.serve.modules.tbs.entity.TbsBudget; |
||||
|
import com.qs.serve.modules.tbs.entity.TbsCostTodo; |
||||
|
import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo; |
||||
|
import com.qs.serve.modules.tbs.mapper.TbsCostTodoMapper; |
||||
|
import com.qs.serve.modules.tbs.service.TbsCostTodoService; |
||||
|
import lombok.AllArgsConstructor; |
||||
|
import lombok.extern.slf4j.Slf4j; |
||||
|
import org.springframework.stereotype.Service; |
||||
|
import org.springframework.transaction.annotation.Transactional; |
||||
|
|
||||
|
import java.time.LocalDateTime; |
||||
|
import java.util.HashMap; |
||||
|
import java.util.Map; |
||||
|
|
||||
|
/** |
||||
|
* 费用申请代办 服务实现类 |
||||
|
* @author YenHex |
||||
|
* @since 2023-02-17 |
||||
|
*/ |
||||
|
@Slf4j |
||||
|
@Service |
||||
|
@AllArgsConstructor |
||||
|
public class TbsCostTodoOperationServiceImpl implements SeeYonOperationService { |
||||
|
|
||||
|
private final TbsCostTodoMapper tbsCostTodoMapper; |
||||
|
private final SysUserMapper sysUserMapper; |
||||
|
private final ProjectProperties projectProperties; |
||||
|
private final SeeYonRequestService seeYonService; |
||||
|
|
||||
|
/** |
||||
|
* 提交 |
||||
|
* @param costTodo |
||||
|
*/ |
||||
|
@Transactional(rollbackFor = Exception.class) |
||||
|
public void submit(TbsCostTodo costTodo){ |
||||
|
String templateCode = this.getTemplateCode(); |
||||
|
SysUser sysUser = sysUserMapper.selectById(AuthContextUtils.getSysUserId()); |
||||
|
Map<String,Object> data = new HashMap<>(); |
||||
|
String todoCode = "XY"+ CodeGenUtil.generate(CodeGenUtil.SourceKey.AgreeCheck); |
||||
|
costTodo.setTodoCode(todoCode); |
||||
|
tbsCostTodoMapper.insert(costTodo); |
||||
|
Long todoId = costTodo.getId(); |
||||
|
data.put("exsp5", todoCode); |
||||
|
data.put("orgId", todoId); |
||||
|
data.put("applyUserCode", sysUser.getCode()); |
||||
|
data.put("applyUserName", sysUser.getName()); |
||||
|
data.put("empId", sysUser.getSyUserId()); |
||||
|
data.put("targetId", todoId); |
||||
|
data.put("targetCode", todoCode); |
||||
|
data.put("exsp1", templateCode); |
||||
|
//添加跳转地址业务
|
||||
|
String baseJumpUrl = JumpToUtil.getJumpUrl(projectProperties.getWebUrl(),templateCode,todoId+""); |
||||
|
data.put("cmsLink",baseJumpUrl); |
||||
|
data.put("rowDate", DateUtils.format(LocalDateTime.now(), DateFormatString.DATE_TIME)); |
||||
|
data.put("rowState","03"); |
||||
|
|
||||
|
BaseCreateProcessBo createProcess = new BaseCreateProcessBo(); |
||||
|
createProcess.setTemplateCode(templateCode); |
||||
|
createProcess.setMemberLoginName(sysUser.getSyAccount()); |
||||
|
createProcess.setSubjectTitle("[协议条款]"+costTodo.getDescr().substring(0,30)); |
||||
|
createProcess.setTargetId(todoId+""); |
||||
|
createProcess.setDataJson(JsonUtil.objectToJson(data)); |
||||
|
R<String> flowIdResult = seeYonService.baseCreateProcess(createProcess); |
||||
|
if(flowIdResult.getStatus()!=200){ |
||||
|
Assert.throwEx("远程服务调用失败"); |
||||
|
} |
||||
|
String formId = null; |
||||
|
R<String> formIdResult = seeYonService.getFormId(templateCode,todoId); |
||||
|
if(formIdResult.getStatus()==200){ |
||||
|
formId = formIdResult.getData(); |
||||
|
} |
||||
|
costTodo.setSubmitTime(LocalDateTime.now()); |
||||
|
costTodo.setSyFormId(formId); |
||||
|
tbsCostTodoMapper.updateById(costTodo); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public String getTemplateCode() { |
||||
|
return TbsSeeYonConst.CheckCostAgreeConf.Code(); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public String getSyFormIdByTargetInfo(TbsAffairCommitBo affairCommit) { |
||||
|
TbsCostTodo obj = tbsCostTodoMapper.selectById(affairCommit.getTargetId()); |
||||
|
if(!obj.getCheckStatus().equals(TbsCommonCheckState.State_1_apply)){ |
||||
|
Assert.throwEx("操作失败,条款处于非审批状态"); |
||||
|
} |
||||
|
return obj.getSyFormId(); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public Object doBacked(TbsAffairCommitBo param) { |
||||
|
TbsCostTodo costTodo = new TbsCostTodo(); |
||||
|
costTodo.setId(Long.parseLong(param.getTargetId())); |
||||
|
costTodo.setCheckStatus(TbsCommonCheckState.State_3_setback); |
||||
|
tbsCostTodoMapper.updateById(costTodo); |
||||
|
return null; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public Object doFinished(TbsAffairCommitBo param) { |
||||
|
TbsCostTodo costTodo = new TbsCostTodo(); |
||||
|
costTodo.setId(Long.parseLong(param.getTargetId())); |
||||
|
costTodo.setFinishedTime(LocalDateTime.now()); |
||||
|
costTodo.setFinishedFlag(1); |
||||
|
costTodo.setCheckStatus(TbsCommonCheckState.State_2_finished); |
||||
|
tbsCostTodoMapper.updateById(costTodo); |
||||
|
return null; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public Object doRefuse(TbsAffairCommitBo param) { |
||||
|
TbsCostTodo costTodo = new TbsCostTodo(); |
||||
|
costTodo.setId(Long.parseLong(param.getTargetId())); |
||||
|
costTodo.setCheckStatus(TbsCommonCheckState.State_4_stop); |
||||
|
tbsCostTodoMapper.updateById(costTodo); |
||||
|
return null; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public boolean checkSyFormIdIsNotNull(String targetId) { |
||||
|
TbsCostTodo obj = tbsCostTodoMapper.selectById(targetId); |
||||
|
return obj.getSyFormId()!=null; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public void doCommitBacked(String targetId) { |
||||
|
String summeryResult = this.checkAffairSummery(targetId); |
||||
|
if(summeryResult.equals(TbsCostApplyOperationServiceImpl.SummeryState_Success)){ |
||||
|
DataAffairCommitService commitService = SpringUtils.getBean(DataAffairCommitService.class); |
||||
|
// TbsAffairCommitBo.state 0-否定,1-同意,2-退回
|
||||
|
Integer state = commitService.getState(this.getTemplateCode(),targetId+""); |
||||
|
//获取最后一条审批判断结果
|
||||
|
if(state==null){ |
||||
|
return; |
||||
|
} |
||||
|
TbsAffairCommitBo doParam = new TbsAffairCommitBo(); |
||||
|
doParam.setTargetId(targetId); |
||||
|
if (state == 1){ |
||||
|
this.doFinished(doParam); |
||||
|
}else if (state==2){ |
||||
|
this.doCommitBacked(targetId); |
||||
|
}else if (state==0){ |
||||
|
this.doRefuse(doParam); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
Loading…
Reference in new issue