8 changed files with 401 additions and 0 deletions
@ -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); |
|||
} |
|||
} |
@ -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; |
|||
} |
@ -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<>(); |
|||
} |
@ -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); |
|||
} |
@ -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> |
@ -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 { |
|||
} |
@ -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; |
|||
} |
|||
} |
@ -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…
Reference in new issue