Browse Source

feat: 适配oa接口

master
Yen 9 months ago
parent
commit
8c7315651a
  1. 70
      src/main/java/com/qs/serve/modules/flow/model/CtpAffairQo.java
  2. 17
      src/main/java/com/qs/serve/modules/flow/model/SyAffairState.java
  3. 22
      src/main/java/com/qs/serve/modules/flow/model/SyAffairStateResult.java
  4. 40
      src/main/java/com/qs/serve/modules/flow/model/TbsAffairCommitBo.java
  5. 71
      src/main/java/com/qs/serve/modules/flow/service/SeeYonOptionService.java
  6. 4
      src/main/java/com/qs/serve/modules/flow/service/impl/SeeYonServiceImpl.java
  7. 4
      src/main/java/com/qs/serve/modules/visit/api/VisitMainOuterApi.java
  8. 19
      src/main/java/com/qs/serve/modules/visit/controller/VisitMainController.java
  9. 46
      src/main/java/com/qs/serve/modules/visit/service/impl/VisitMainServiceImpl.java

70
src/main/java/com/qs/serve/modules/flow/model/CtpAffairQo.java

@ -0,0 +1,70 @@
package com.qs.serve.modules.flow.model;
import lombok.Data;
/**
* @author YenHex
* @since 2022/11/22
*/
@Data
public class CtpAffairQo {
String memberId;
String formMainId;
/**
* 状态0-未完成与已完成(默认)1-未完成2已完成3-我发起的其它-被拦截
*/
Integer state;
Integer pageNum;
Integer pageSize;
String templateCode;
String templateId;
String applyUserCode;
String applyUserName;
String supplierName;
String supplierCode;
String title;
String rowState;
String targetId;
/**
* v2 版本接口添加
*/
String targetCode;
String startTime;
String endTime;
/**
* 标题
*/
String chargeTheme;
/**
* 记录编码
*/
String recordCode;
/**
* 申请人名称
*/
String userName;
String dataKey;
String queryBizRegion;
String querySaleRegion;
/**
* 接口版本
* v1.原始接口
* v2.添加评论拼接
*/
String ver;
}

17
src/main/java/com/qs/serve/modules/flow/model/SyAffairState.java

@ -0,0 +1,17 @@
package com.qs.serve.modules.flow.model;
/**
* @author YenHex
* @since 2023/5/23
*/
public enum SyAffairState {
//next(审批中)、backed(回退)、finished(完成)、refuse(拒绝)、error(错误)、none(不存在数据)
next,
backed,
finished,
refuse,
error,
none;
}

22
src/main/java/com/qs/serve/modules/flow/model/SyAffairStateResult.java

@ -0,0 +1,22 @@
package com.qs.serve.modules.flow.model;
import lombok.AllArgsConstructor;
import lombok.Data;
/**
* @author YenHex
* @since 2023/6/12
*/
@Data
@AllArgsConstructor
public class SyAffairStateResult {
String affairId;
String memberId;
String targetId;
SyAffairState state;
}

40
src/main/java/com/qs/serve/modules/flow/model/TbsAffairCommitBo.java

@ -0,0 +1,40 @@
package com.qs.serve.modules.flow.model;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
/**
* @author YenHex
* @since 2022/11/30
*/
@Data
public class TbsAffairCommitBo {
/** 新增所有审批业务使用该字段,作数据的目标ID */
private String targetId;
/** 状态:0-否定,1-同意,2-退回 */
@NotNull
private Integer state;
/** 流程节点id */
@NotNull
private String affairId;
/** 评论 */
@Length(max = 800,message = "备注长度限制800字")
@NotNull
private String comment;
/** 附件id */
private String[] attachIds;
/** 拓展参数 */
private Map<String,Object> extendParams;
}

71
src/main/java/com/qs/serve/modules/flow/service/SeeYonOptionService.java

@ -1,5 +1,17 @@
package com.qs.serve.modules.flow.service; package com.qs.serve.modules.flow.service;
import com.alibaba.fastjson.JSONObject;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.util.JsonUtil;
import com.qs.serve.common.util.SpringUtils;
import com.qs.serve.modules.flow.common.TbsSeeYonConst;
import com.qs.serve.modules.flow.model.CtpAffairQo;
import com.qs.serve.modules.flow.model.SyAffairState;
import com.qs.serve.modules.flow.model.SyAffairStateResult;
import com.qs.serve.modules.flow.model.TbsAffairCommitBo;
import com.qs.serve.modules.flow.service.impl.SeeYonServiceImpl;
import lombok.extern.slf4j.Slf4j;
/** /**
* @author YenHex * @author YenHex
* @since 2024/9/19 * @since 2024/9/19
@ -8,4 +20,63 @@ public interface SeeYonOptionService {
String loadTemplateCode(); String loadTemplateCode();
/**
* 发送请求获取状态
* @param targetId
* @param templateCode
* @return
*/
default SyAffairStateResult checkAffairState(String targetId, String templateCode){
CtpAffairQo param = new CtpAffairQo();
param.setTargetId(targetId);
param.setTemplateCode(templateCode);
SeeYonServiceImpl seeYonService = new SeeYonServiceImpl();
R<String> result = seeYonService.postBase(TbsSeeYonConst.API_CHECK_AFFAIR,param,"补偿回调");
if(result.getStatus()==200){
String resultString = result.getData();
JSONObject jsonObject = JSONObject.parseObject(resultString);
String resultName = jsonObject.getString("result");
String resultMemberId = jsonObject.getString("memberId");
String resultTargetId = jsonObject.getString("targetId");
String resultAffairId = jsonObject.getString("affairId");
for (SyAffairState value : SyAffairState.values()) {
if (value.name().equals(resultName)){
return new SyAffairStateResult(resultAffairId,resultMemberId,resultTargetId,value);
}
}
}
return new SyAffairStateResult(null,null,null,SyAffairState.error);
};
/**
* 执行的主要方法
* @param targetId
* @return
*/
default R<?> runCompensate(String targetId){
String templateCode = loadTemplateCode();
SyAffairStateResult stateResult = checkAffairState(targetId,templateCode);
SyAffairState affairState = stateResult.getState();
if(affairState.equals(SyAffairState.next)){
return R.ok(doNext(targetId,null));
}else if(affairState.equals(SyAffairState.backed)){
return R.ok(doBack(targetId,null));
}else if(affairState.equals(SyAffairState.finished)){
return R.ok(doFinish(targetId,null));
}else if(affairState.equals(SyAffairState.refuse)){
return R.ok(doRefuse(targetId,null));
}else if(affairState.equals(SyAffairState.error)){
return R.error("数据异常请联系管理员");
}else{
return R.error("OA无相关审批数据");
}
}
Object doNext(String targetId, TbsAffairCommitBo commit);
Object doBack(String targetId, TbsAffairCommitBo commit);
Object doFinish(String targetId, TbsAffairCommitBo commit);
Object doRefuse(String targetId, TbsAffairCommitBo commit);
} }

4
src/main/java/com/qs/serve/modules/flow/service/impl/SeeYonServiceImpl.java

@ -24,9 +24,9 @@ import java.util.HashMap;
public class SeeYonServiceImpl implements SeeYonService { public class SeeYonServiceImpl implements SeeYonService {
@Value("${apis.host.seeyon}") @Value("${apis.host.seeyon}")
public static String baseUrl; public String baseUrl;
private R<String> postBase(String url, Object param, String title){ public R<String> postBase(String url, Object param, String title){
String token = SecureUtil.md5(LocalDate.now().getDayOfYear()+"000"+LocalDate.now().getYear()); String token = SecureUtil.md5(LocalDate.now().getDayOfYear()+"000"+LocalDate.now().getYear());
HashMap<String,String> headers = new HashMap<>(); HashMap<String,String> headers = new HashMap<>();
headers.put("token",token); headers.put("token",token);

4
src/main/java/com/qs/serve/modules/visit/api/VisitMainOuterApi.java

@ -116,9 +116,9 @@ public class VisitMainOuterApi {
param.setSyFormId("test"); param.setSyFormId("test");
param.setSubmitTime(LocalDateTime.now()); param.setSubmitTime(LocalDateTime.now());
param.setCheckState(VisitMainConst.CheckState_0); param.setCheckState(VisitMainConst.CheckState_0);
visitMainService.updateById(param);
boolean result = visitMainService.updateById(param); visitMainService.submitOaFlow(param.getId());
//visitMainService.submitOaFlow(param.getId());
return R.ok(); return R.ok();
} }
return R.error("用户角色暂不支持"); return R.error("用户角色暂不支持");

19
src/main/java/com/qs/serve/modules/visit/controller/VisitMainController.java

@ -10,6 +10,7 @@ import com.qs.serve.common.util.*;
import com.qs.serve.modules.sys.entity.SysUser; import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.service.SysUserService; import com.qs.serve.modules.sys.service.SysUserService;
import com.qs.serve.modules.visit.common.VisitMainConst; import com.qs.serve.modules.visit.common.VisitMainConst;
import com.qs.serve.modules.visit.service.impl.VisitMainServiceImpl;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
@ -32,7 +33,7 @@ import java.util.List;
@RequestMapping("visit/main") @RequestMapping("visit/main")
public class VisitMainController { public class VisitMainController {
private VisitMainService visitMainService; private VisitMainServiceImpl visitMainService;
private SysUserService sysUserService; private SysUserService sysUserService;
/** /**
@ -45,6 +46,16 @@ public class VisitMainController {
LambdaQueryWrapper<VisitMain> lqw = new LambdaQueryWrapper<>(param); LambdaQueryWrapper<VisitMain> lqw = new LambdaQueryWrapper<>(param);
PageUtil.startPage(); PageUtil.startPage();
List<VisitMain> list = visitMainService.list(lqw); List<VisitMain> list = visitMainService.list(lqw);
for (VisitMain visit : list) {
// 仅审批中数据进行补偿
if(visit.getCheckState().equals(VisitMainConst.CheckState_0)){
try {
visitMainService.runCompensate(visit.getId());
} catch (Exception e) {
e.printStackTrace();
}
}
}
return R.byPageHelperList(list); return R.byPageHelperList(list);
} }
@ -59,6 +70,12 @@ public class VisitMainController {
lqw.eq(VisitMain::getUserId,AuthContextUtils.getSysUserId()); lqw.eq(VisitMain::getUserId,AuthContextUtils.getSysUserId());
PageUtil.startPage(); PageUtil.startPage();
List<VisitMain> list = visitMainService.list(lqw); List<VisitMain> list = visitMainService.list(lqw);
for (VisitMain visit : list) {
// 仅审批中数据进行补偿
if(visit.getCheckState().equals(VisitMainConst.CheckState_0)){
visitMainService.runCompensate(visit.getId());
}
}
return R.byPageHelperList(list); return R.byPageHelperList(list);
} }

46
src/main/java/com/qs/serve/modules/visit/service/impl/VisitMainServiceImpl.java

@ -7,6 +7,7 @@ import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.oa.BaseCreateCallbackBo; import com.qs.serve.common.model.oa.BaseCreateCallbackBo;
import com.qs.serve.common.model.oa.OaFormMainProcess; import com.qs.serve.common.model.oa.OaFormMainProcess;
import com.qs.serve.common.util.Assert; import com.qs.serve.common.util.Assert;
import com.qs.serve.modules.flow.model.TbsAffairCommitBo;
import com.qs.serve.modules.flow.service.SeeYonOptionService; import com.qs.serve.modules.flow.service.SeeYonOptionService;
import com.qs.serve.modules.flow.service.SeeYonService; import com.qs.serve.modules.flow.service.SeeYonService;
import com.qs.serve.modules.visit.common.VisitMainConst; import com.qs.serve.modules.visit.common.VisitMainConst;
@ -18,6 +19,7 @@ import com.qs.serve.modules.visit.entity.VisitMain;
import com.qs.serve.modules.visit.service.VisitMainService; import com.qs.serve.modules.visit.service.VisitMainService;
import com.qs.serve.modules.visit.mapper.VisitMainMapper; import com.qs.serve.modules.visit.mapper.VisitMainMapper;
import javax.annotation.Resource;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
@ -30,13 +32,13 @@ import java.util.Map;
*/ */
@Slf4j @Slf4j
@Service @Service
@AllArgsConstructor
public class VisitMainServiceImpl extends ServiceImpl<VisitMainMapper,VisitMain> implements VisitMainService, SeeYonOptionService { public class VisitMainServiceImpl extends ServiceImpl<VisitMainMapper,VisitMain> implements VisitMainService, SeeYonOptionService {
private final SeeYonService seeYonService; @Resource
private SeeYonService seeYonService;
@Value("${project.flow-dev}") @Value("${project.flowTest}")
private static Boolean flowDev; private Boolean flowDev;
@Override @Override
public String loadTemplateCode(){ public String loadTemplateCode(){
@ -48,7 +50,12 @@ public class VisitMainServiceImpl extends ServiceImpl<VisitMainMapper,VisitMain>
String templateCode = loadTemplateCode(); String templateCode = loadTemplateCode();
VisitMain visitMain = this.getById(id); VisitMain visitMain = this.getById(id);
Map<String, Object> mainData = new HashMap<>(); Map<String, Object> mainData = new HashMap<>();
mainData.put("deptName",visitMain.getDeptName());
mainData.put("target_id",id);
mainData.put("target_code",visitMain.getVisitCode());
mainData.put("template_code",templateCode);
mainData.put("rowState","03");
mainData.put("userCode",visitMain.getUserCode()); mainData.put("userCode",visitMain.getUserCode());
mainData.put("userName",visitMain.getUserName()); mainData.put("userName",visitMain.getUserName());
mainData.put("preVisitDate",visitMain.getPreVisitDate()); mainData.put("preVisitDate",visitMain.getPreVisitDate());
@ -93,5 +100,34 @@ public class VisitMainServiceImpl extends ServiceImpl<VisitMainMapper,VisitMain>
seeYonService.createCallbackStatus(callbackBo); seeYonService.createCallbackStatus(callbackBo);
} }
@Override
public Object doNext(String targetId, TbsAffairCommitBo commit) {
return null;
}
@Override
public Object doBack(String targetId, TbsAffairCommitBo commit) {
VisitMain visitMain = this.getById(targetId);
visitMain.setCheckState(VisitMainConst.CheckState_3);
this.updateById(visitMain);
return null;
}
@Override
public Object doFinish(String targetId, TbsAffairCommitBo commit) {
VisitMain visitMain = this.getById(targetId);
visitMain.setCheckState(VisitMainConst.CheckState_1);
this.updateById(visitMain);
return null;
}
@Override
public Object doRefuse(String targetId, TbsAffairCommitBo commit) {
VisitMain visitMain = this.getById(targetId);
visitMain.setCheckState(VisitMainConst.CheckState_2);
this.updateById(visitMain);
return null;
}
} }

Loading…
Cancel
Save