Browse Source

金蝶账号权限申请

master
wangpengfei 3 months ago
parent
commit
baec9f49aa
  1. 69
      yxt-oa/src/main/java/com/yxt/anrui/oa/api/AdPermissionApplyRest.java
  2. 25
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adpermissionapply/AdPermissionApply.java
  3. 31
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adpermissionapply/AdPermissionApplyDto.java
  4. 15
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adpermissionapply/AdPermissionApplyMapper.java
  5. 12
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adpermissionapply/AdPermissionApplyMapper.xml
  6. 14
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adpermissionapply/AdPermissionApplyQuery.java
  7. 204
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adpermissionapply/AdPermissionApplyService.java
  8. 31
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adpermissionapply/AdPermissionApplyVo.java

69
yxt-oa/src/main/java/com/yxt/anrui/oa/api/AdPermissionApplyRest.java

@ -0,0 +1,69 @@
package com.yxt.anrui.oa.api;
import com.yxt.anrui.oa.biz.adexpatriatesapply.AdExpatriatesApplyVo;
import com.yxt.anrui.oa.biz.adpermissionapply.AdPermissionApply;
import com.yxt.anrui.oa.biz.adpermissionapply.AdPermissionApplyDto;
import com.yxt.anrui.oa.biz.adpermissionapply.AdPermissionApplyService;
import com.yxt.anrui.oa.biz.adpermissionapply.AdPermissionApplyVo;
import com.yxt.anrui.oa.biz.hrhireapply.HrHireApplyDto;
import com.yxt.anrui.oa.biz.oaform.flowable.CompleteDto;
import com.yxt.anrui.oa.biz.oaform.flowable.NodeQuery;
import com.yxt.anrui.oa.biz.oaform.flowable.TaskDto;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
/**
* @author wangpengfei
* @date 2025/1/22 17:12
*/
@Api(tags = "金蝶账号权限申请")
@RestController
@RequestMapping("v1/adpermissionapply")
public class AdPermissionApplyRest {
@Autowired
AdPermissionApplyService adPermissionApplyService;
@ApiOperation("新增或修改")
@PostMapping("/save")
public ResultBean<String> saveOrUpdate(@RequestBody AdPermissionApplyDto dto) {
return adPermissionApplyService.saveOrUpdateDto(dto);
}
@ApiOperation("根据SID获取一条记录")
@GetMapping("/fetchDetailsBySid/{sid}")
public ResultBean<AdPermissionApplyVo> fetchDetailsBySid(@PathVariable("sid") String sid) {
ResultBean rb = ResultBean.fireFail();
AdPermissionApplyVo vo = adPermissionApplyService.fetchDetailsVoBySid(sid);
return rb.success().setData(vo);
}
@ApiOperation("提交审批流程")
@PostMapping("/submit")
public ResultBean submit(@RequestBody AdPermissionApplyDto dto) {
return adPermissionApplyService.submit(dto);
}
@ApiOperation(value = "驳回任务")
@PutMapping(value = "/reject")
public ResultBean reject(@Valid @RequestBody TaskDto dto) {
return adPermissionApplyService.reject(dto);
}
@ApiOperation(value = "办理(同意)")
@PutMapping("/complete")
public ResultBean complete(@Valid @RequestBody CompleteDto dto) {
return adPermissionApplyService.complete(dto);
}
@ApiOperation("获取流程操作标题")
@GetMapping("/getFlowOperateTitle")
@ResponseBody
ResultBean<String> getFlowOperateTitle(@SpringQueryMap NodeQuery query) {
return adPermissionApplyService.getFlowOperateTitle(query);
}
}

25
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adpermissionapply/AdPermissionApply.java

@ -0,0 +1,25 @@
package com.yxt.anrui.oa.biz.adpermissionapply;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author wangpengfei
* @date 2025/1/23 9:18
*/
@Data
@ApiModel(value = "金蝶账号权限申请", description = "金蝶账号权限申请")
@TableName("ad_permission_apply")
public class AdPermissionApply extends BaseEntity {
@ApiModelProperty("申请权限类别Key")
private String permissionTypeKey;
@ApiModelProperty("申请权限类别")
private String permissionTypeValue;
@ApiModelProperty("权限详情")
private String permissionDetails;
@ApiModelProperty("基础表单sid")
private String formSid;
}

31
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adpermissionapply/AdPermissionApplyDto.java

@ -0,0 +1,31 @@
package com.yxt.anrui.oa.biz.adpermissionapply;
import com.yxt.anrui.oa.biz.oaform.OaFormDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @author wangpengfei
* @date 2025/1/23 9:18
*/
@Data
@ApiModel(value = "金蝶账号权限申请 数据传输对象", description = "金蝶账号权限申请 数据传输对象")
public class AdPermissionApplyDto extends OaFormDto {
private String sid;
@ApiModelProperty("申请权限类别Key")
private String permissionTypeKey;
@ApiModelProperty("申请权限类别")
private String permissionTypeValue;
@ApiModelProperty("权限详情")
private String permissionDetails;
@ApiModelProperty("基础表单sid")
private String formSid;
@ApiModelProperty("图片")
private List<String> files = new ArrayList<>();
@ApiModelProperty("文件")
private List<String> appes = new ArrayList<>();
}

15
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adpermissionapply/AdPermissionApplyMapper.java

@ -0,0 +1,15 @@
package com.yxt.anrui.oa.biz.adpermissionapply;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yxt.anrui.oa.biz.adexpatriatesapply.AdExpatriatesApplyVo;
import org.apache.ibatis.annotations.Mapper;
/**
* @author wangpengfei
* @date 2025/1/23 9:18
*/
@Mapper
public interface AdPermissionApplyMapper extends BaseMapper<AdPermissionApply> {
AdPermissionApplyVo fetchDetailsVoBySid(String sid);
}

12
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adpermissionapply/AdPermissionApplyMapper.xml

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.anrui.oa.biz.adpermissionapply.AdPermissionApplyMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.anrui.oa.biz.adpermissionapply.AdPermissionApplyVo">
SELECT * from ad_fixed_asset_ledger
<where>
${ew.sqlSegment}
</where>
</select>
</mapper>

14
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adpermissionapply/AdPermissionApplyQuery.java

@ -0,0 +1,14 @@
package com.yxt.anrui.oa.biz.adpermissionapply;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModel;
import lombok.Data;
/**
* @author wangpengfei
* @date 2025/1/23 9:18
*/
@Data
@ApiModel(value = "金蝶账号权限申请 查询条件", description = "金蝶账号权限申请 查询条件")
public class AdPermissionApplyQuery implements Query {
}

204
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adpermissionapply/AdPermissionApplyService.java

@ -0,0 +1,204 @@
package com.yxt.anrui.oa.biz.adpermissionapply;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.oa.biz.adexpatriatesapply.AdExpatriatesApplyVo;
import com.yxt.anrui.oa.biz.adexpatriatesdetail.AdExpatriatesDetailVo;
import com.yxt.anrui.oa.biz.adfixedassetledger.AdFixedAssetLedger;
import com.yxt.anrui.oa.biz.adfixedassetledger.AdFixedAssetLedgerMapper;
import com.yxt.anrui.oa.biz.hrhireapply.HrHireApply;
import com.yxt.anrui.oa.biz.hrhireapply.HrHireApplyDto;
import com.yxt.anrui.oa.biz.hrhiredetails.HrHireDetailsDto;
import com.yxt.anrui.oa.biz.oaappendix.OaAppendixService;
import com.yxt.anrui.oa.biz.oaform.OaForm;
import com.yxt.anrui.oa.biz.oaform.OaFormRuleEnum;
import com.yxt.anrui.oa.biz.oaform.OaFormService;
import com.yxt.anrui.oa.biz.oaform.OaFormUrlEnum;
import com.yxt.anrui.oa.biz.oaform.flowable.*;
import com.yxt.anrui.oa.feign.file.OaFileEnum;
import com.yxt.anrui.oa.feign.flowable.flow.ProcDefEnum;
import com.yxt.anrui.oa.feign.portal.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.oa.feign.portal.sysorganization.SysOrganizationVo;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.core.result.ResultBean;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author wangpengfei
* @date 2025/1/23 9:17
*/
@Service
public class AdPermissionApplyService extends MybatisBaseService<AdPermissionApplyMapper, AdPermissionApply> {
@Autowired
OaFormService oaFormService;
@Autowired
SysOrganizationFeign sysOrganizationFeign;
@Autowired
OaAppendixService oaAppendixService;
public ResultBean<String> saveOrUpdateDto(AdPermissionApplyDto dto) {
ResultBean<String> rb = ResultBean.fireFail();
String sid = dto.getSid();
List<String> files = dto.getFiles();
List<String> appes = dto.getAppes();
if (StringUtils.isBlank(sid)) {
// 新建操作
AdPermissionApply entity = new AdPermissionApply();
BeanUtil.copyProperties(dto, entity, "sid");
dto.setBillNo("JDZHQX");
dto.setSid(entity.getSid());
dto.setCreateBySid(dto.getCreateBySid());
ResultBean<String> resultBean = oaFormService.saveOaForm(dto);
if (!resultBean.getSuccess()) {
return rb;
}
entity.setFormSid(resultBean.getData());
entity.setCreateBySid(dto.getCreateBySid());
baseMapper.insert(entity);
sid = entity.getSid();
} else {
// 更新操作
AdPermissionApply entity = fetchBySid(sid);
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.updateById(entity);
}
saveFiles(sid, files, OaFileEnum.ADEXPATRIATESAPPLY.getAttachType(), "图片");
saveFiles(sid, appes, OaFileEnum.ADEXPATRIATESAPPLY.getAttachType(), "文件");
return rb.success().setData(sid);
}
// 保存文件
private void saveFiles(String sid, List<String> files, String attachType, String fileType) {
files.removeAll(Collections.singleton(null));
oaAppendixService.saveFile(sid, files, attachType, fileType);
}
public AdPermissionApplyVo fetchDetailsVoBySid(String sid) {
AdPermissionApplyVo vo = baseMapper.fetchDetailsVoBySid(sid);
List<String> files = oaAppendixService.selectByLinkSid(sid);
vo.setFiles(files);
return vo;
}
/**
* 提交
*
* @param dto
* @return
*/
public ResultBean submit(AdPermissionApplyDto dto) {
ResultBean rb = ResultBean.fireFail();
ResultBean<String> stringResultBean = saveOrUpdateDto(dto);
if (!stringResultBean.getSuccess()) {
return rb.setMsg(stringResultBean.getData());
}
String businessSid = stringResultBean.getData();
SubmitDto submitDto = new SubmitDto();
submitDto.setUserSid(dto.getCreateBySid());
submitDto.setBusinessSid(businessSid);
Map<String, Object> formVariables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
// appMap.put("sid", businessSid);
formVariables = getMap(formVariables, businessSid);
submitDto.setFormVariables(formVariables);
submitDto.setProcDefId(ProcDefEnum.HIHIREAPPLY.getProDefId());
submitDto.setNextTaskId(dto.getTaskId());
submitDto.setRule(OaFormRuleEnum.DIRECTLY_UNDER.getRule());
return oaFormService.submit(submitDto);
}
/**
* 驳回
*
* @param dto
* @return
*/
public ResultBean reject(TaskDto dto) {
Map<String, Object> formVariables = dto.getFormVariables();
formVariables = getMap(formVariables, dto.getBusinessSid());
dto.setFormVariables(formVariables);
return oaFormService.reject(dto);
}
/**
* 办理同意
*
* @param dto
* @return
*/
public ResultBean complete(CompleteDto dto) {
Map<String, Object> formVariables = dto.getFormVariables();
formVariables = getMap(formVariables, dto.getBusinessSid());
dto.setFormVariables(formVariables);
BusinessVariablesDto businessVariablesDto = new BusinessVariablesDto();
BeanUtil.copyProperties(dto, businessVariablesDto);
return oaFormService.complete(businessVariablesDto);
}
public ResultBean<String> getFlowOperateTitle(NodeQuery query) {
ResultBean<String> rb = ResultBean.fireFail();
//0 上一环节 1下一环节
int next = query.getNext();
Map<String, Object> formVariables = query.getFormVariables();
formVariables = getMap(formVariables, query.getBusinessSid());
query.setFormVariables(formVariables);
String data = "";
if (next == 0) {
ResultBean<List<NodeVo>> resultBean = oaFormService.getPreviousNodesForReject(query);
if (resultBean.getSuccess()) {
resultBean.getData().removeAll(Collections.singleton(null));
data = resultBean.getData().get(0).getName();
} else {
return rb.setMsg(resultBean.getMsg());
}
} else if (next == 1) {
ResultBean<List<NodeVo>> resultBean = oaFormService.getNextNodesForSubmit(query);
if (resultBean.getSuccess()) {
resultBean.getData().removeAll(Collections.singleton(null));
data = resultBean.getData().get(0).getName();
} else {
return rb.setMsg(resultBean.getMsg());
}
} else {
return rb.setMsg("参数错误:next");
}
return rb.success().setData(data);
}
public Map<String, Object> getMap(Map<String, Object> formVariables, String sid) {
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", sid);
/*appMap.put("editUrl", "approval/#/pages/EditOnboradingApplyActivity?sid=" + sid);
appMap.put("detailUrl", "approval/#/pages/DetailOnboradingApplyActivity?sid=" + sid);
appMap.put("flowOperateUrl", "oa/v1/HrHireApply/getFlowOperateTitle");
appMap.put("agreeUrl", "oa/v1/HrHireApply/complete");
appMap.put("stopUrl", "oa/v1/oaform/breakProcess");
appMap.put("rejectUrl", "oa/v1/HrHireApply/reject");
appMap.put("recallUrl", "oa/v1/oaform/revokeProcess");
appMap.put("signUrl", "oa/v1/oaform/delegate");
appMap.put("transferUrl", "oa/v1/oaform/assignTask");*/
// appMap.put(OaFormUrlEnum.HRHIREAPPLY_EDIT.getType(), OaFormUrlEnum.HRHIREAPPLY_EDIT.getUrl() + sid);
// appMap.put(OaFormUrlEnum.HRHIREAPPLY_DETAIL.getType(), OaFormUrlEnum.HRHIREAPPLY_DETAIL.getUrl() + sid);
// appMap.put(OaFormUrlEnum.HRHIREAPPLY_FLOWOPERATEURL.getType(), OaFormUrlEnum.HRHIREAPPLY_FLOWOPERATEURL.getUrl());
// appMap.put(OaFormUrlEnum.HRHIREAPPLY_AGREEURL.getType(), OaFormUrlEnum.HRHIREAPPLY_AGREEURL.getUrl());
// appMap.put(OaFormUrlEnum.STOPURL.getType(), OaFormUrlEnum.STOPURL.getUrl());
// appMap.put(OaFormUrlEnum.HRHIREAPPLY_REJECTURL.getType(), OaFormUrlEnum.HRHIREAPPLY_REJECTURL.getUrl());
// appMap.put(OaFormUrlEnum.RECALLURL.getType(), OaFormUrlEnum.RECALLURL.getUrl());
// appMap.put(OaFormUrlEnum.SIGNURL.getType(), OaFormUrlEnum.SIGNURL.getUrl());
// appMap.put(OaFormUrlEnum.TRANSFERURL.getType(), OaFormUrlEnum.TRANSFERURL.getUrl());
// formVariables.put("app", appMap);
// //根据组织查询是否是分公司
// OaForm oaForm = oaFormService.fetchBySid(sid);
// AdPermissionApply adPermissionApply = fetchBySid(sid);
// SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(oaForm.getUseOrgSid()).getData();
// //是否是分公司
// formVariables.put("isTrue", sysOrganization.getIsDept() == 0);
return formVariables;
}
}

31
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adpermissionapply/AdPermissionApplyVo.java

@ -0,0 +1,31 @@
package com.yxt.anrui.oa.biz.adpermissionapply;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @author wangpengfei
* @date 2025/1/23 9:19
*/
@Data
@ApiModel(value = "金蝶账号权限申请 视图数据对象", description = "金蝶账号权限申请 视图数据对象")
public class AdPermissionApplyVo implements Vo {
private String sid;
@ApiModelProperty("申请权限类别Key")
private String permissionTypeKey;
@ApiModelProperty("申请权限类别")
private String permissionTypeValue;
@ApiModelProperty("权限详情")
private String permissionDetails;
@ApiModelProperty("基础表单sid")
private String formSid;
@ApiModelProperty("图片")
private List<String> files = new ArrayList<>();
@ApiModelProperty("附件")
private List<String> appes = new ArrayList<>();
}
Loading…
Cancel
Save