From 60730056854b34ac15394c20bf8e0fd7223b88ab Mon Sep 17 00:00:00 2001 From: dimengzhe Date: Tue, 21 Jan 2025 15:58:58 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=96=87=E4=BB=B6=E6=A0=B9=E6=8D=AE?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E5=9B=9E=E6=98=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../yxt/anrui/oa/biz/oaappendix/OaAppendixMapper.java | 4 ++++ .../yxt/anrui/oa/biz/oaappendix/OaAppendixService.java | 10 ++++++++++ 2 files changed, 14 insertions(+) diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaappendix/OaAppendixMapper.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaappendix/OaAppendixMapper.java index 84cbede976..6a8755a131 100644 --- a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaappendix/OaAppendixMapper.java +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaappendix/OaAppendixMapper.java @@ -27,6 +27,7 @@ package com.yxt.anrui.oa.biz.oaappendix; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import java.util.List; @@ -38,4 +39,7 @@ public interface OaAppendixMapper extends BaseMapper { List fetchByLinkSid(String linkSid); int deleteByLinkSid(String sid); + + @Select("select * from oa_appendix where linkSid = #{linkSid} and fileType = #{fileType}") + List fetchByLinkSid2(@Param("linkSid") String linkSid, @Param("fileType") String type); } \ No newline at end of file diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaappendix/OaAppendixService.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaappendix/OaAppendixService.java index 7dc206c120..6edd1b0027 100644 --- a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaappendix/OaAppendixService.java +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaappendix/OaAppendixService.java @@ -91,4 +91,14 @@ public class OaAppendixService extends MybatisBaseService selectByLinkSid(String sid, String type) { + List fileList = baseMapper.fetchByLinkSid2(sid, type); + List files = new ArrayList<>(); + for (OaAppendix oaAppendix : fileList) { + String url = fileUploadComponent.getUrlPrefix() + oaAppendix.getFilePath(); + files.add(url); + } + return files; + } } \ No newline at end of file From 1f8a6adf41d5a648bcc1b334c2028c38b4813fa3 Mon Sep 17 00:00:00 2001 From: dimengzhe Date: Tue, 21 Jan 2025 16:47:01 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/yxt/anrui/oa/api/HrHireApplyRest.java | 7 ++ .../biz/hrhireapply/HrHireApplyDetailVo.java | 21 +++++ .../oa/biz/hrhireapply/HrHireApplyMapper.java | 1 + .../oa/biz/hrhireapply/HrHireApplyMapper.xml | 28 ++++++ .../biz/hrhireapply/HrHireApplyService.java | 44 +++++++-- .../biz/hrhiredetails/HrHireListDetailVo.java | 41 +++++++++ .../com/yxt/anrui/oa/biz/oaform/OaForm.java | 1 - .../anrui/oa/biz/oaform/OaFormCommonVo.java | 32 +++++++ .../anrui/oa/biz/oaform/OaFormService.java | 8 ++ .../anrui/oa/biz/oaform/OaFormUrlEnum.java | 90 +++++++++++++++++++ 10 files changed, 265 insertions(+), 8 deletions(-) create mode 100644 yxt-oa/src/main/java/com/yxt/anrui/oa/biz/hrhireapply/HrHireApplyDetailVo.java create mode 100644 yxt-oa/src/main/java/com/yxt/anrui/oa/biz/hrhiredetails/HrHireListDetailVo.java create mode 100644 yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormCommonVo.java create mode 100644 yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormUrlEnum.java diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/api/HrHireApplyRest.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/api/HrHireApplyRest.java index bf5a4f57a0..f841a1927b 100644 --- a/yxt-oa/src/main/java/com/yxt/anrui/oa/api/HrHireApplyRest.java +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/api/HrHireApplyRest.java @@ -1,5 +1,6 @@ package com.yxt.anrui.oa.api; +import com.yxt.anrui.oa.biz.hrhireapply.HrHireApplyDetailVo; import com.yxt.anrui.oa.biz.hrhireapply.HrHireApplyDto; import com.yxt.anrui.oa.biz.hrhireapply.HrHireApplyService; import com.yxt.anrui.oa.biz.hrhireapply.HrHireApplyVo; @@ -44,6 +45,12 @@ public class HrHireApplyRest { return hrHireApplyService.saveOrUpdateDto(dto); } + @ApiOperation("详情") + @GetMapping("/details/{sid}") + ResultBean details(@PathVariable("sid") String sid) { + return hrHireApplyService.details(sid); + } + @ApiOperation("提交审批流程") @PostMapping("/submit") public ResultBean submit(@RequestBody HrHireApplyDto dto) { diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/hrhireapply/HrHireApplyDetailVo.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/hrhireapply/HrHireApplyDetailVo.java new file mode 100644 index 0000000000..1c190190e5 --- /dev/null +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/hrhireapply/HrHireApplyDetailVo.java @@ -0,0 +1,21 @@ +package com.yxt.anrui.oa.biz.hrhireapply; + +import com.yxt.anrui.oa.biz.hrhiredetails.HrHireListDetailVo; +import com.yxt.anrui.oa.biz.oaform.OaFormCommonVo; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2025/1/21 + **/ +@Data +public class HrHireApplyDetailVo extends OaFormCommonVo { + + private String isFinanceValue; + + private List list = new ArrayList<>(); +} diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/hrhireapply/HrHireApplyMapper.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/hrhireapply/HrHireApplyMapper.java index d77820c21a..f0dd2c4365 100644 --- a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/hrhireapply/HrHireApplyMapper.java +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/hrhireapply/HrHireApplyMapper.java @@ -10,4 +10,5 @@ import org.apache.ibatis.annotations.Mapper; **/ @Mapper public interface HrHireApplyMapper extends BaseMapper { + HrHireApplyDetailVo details(String sid); } diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/hrhireapply/HrHireApplyMapper.xml b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/hrhireapply/HrHireApplyMapper.xml index f4f48afff3..9b5deb8b68 100644 --- a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/hrhireapply/HrHireApplyMapper.xml +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/hrhireapply/HrHireApplyMapper.xml @@ -1,4 +1,32 @@ + + + + + + + + + \ No newline at end of file diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/hrhireapply/HrHireApplyService.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/hrhireapply/HrHireApplyService.java index 6dde456139..830acb2ab7 100644 --- a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/hrhireapply/HrHireApplyService.java +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/hrhireapply/HrHireApplyService.java @@ -4,11 +4,9 @@ import cn.hutool.core.bean.BeanUtil; import com.yxt.anrui.oa.biz.hrhiredetails.HrHireDetailsDto; import com.yxt.anrui.oa.biz.hrhiredetails.HrHireDetailsService; import com.yxt.anrui.oa.biz.hrhiredetails.HrHireDetailsVo; +import com.yxt.anrui.oa.biz.hrhiredetails.HrHireListDetailVo; import com.yxt.anrui.oa.biz.oaappendix.OaAppendixService; -import com.yxt.anrui.oa.biz.oaform.FormCommon; -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.*; import com.yxt.anrui.oa.biz.oaform.flowable.*; import com.yxt.anrui.oa.feign.flowable.flow.ProcDefEnum; import com.yxt.anrui.oa.feign.portal.sysorganization.SysOrganizationFeign; @@ -205,7 +203,7 @@ public class HrHireApplyService extends MybatisBaseService getMap(Map formVariables, String sid) { Map appMap = new HashMap<>(); appMap.put("sid", sid); - appMap.put("editUrl", "approval/#/pages/EditOnboradingApplyActivity?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"); @@ -213,7 +211,16 @@ public class HrHireApplyService extends MybatisBaseService details(String sid) { + ResultBean rb = ResultBean.fireFail(); + HrHireApplyDetailVo hrHireApplyDetailVo = baseMapper.details(sid); + if (hrHireApplyDetailVo == null) { + return rb.setMsg("该申请不存在"); + } + List list = hrHireApplyDetailVo.getList(); + list.removeAll(Collections.singleton(null)); + if (!list.isEmpty()) { + list.stream().forEach(v -> { + List files = oaAppendixService.selectByLinkSid(v.getSid(), "文件"); + v.setFiles(files); + }); + } + //基础字段赋值 + BeanUtil.copyProperties(oaFormService.getDetails(sid), hrHireApplyDetailVo); + return rb.success().setData(hrHireApplyDetailVo); + } } diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/hrhiredetails/HrHireListDetailVo.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/hrhiredetails/HrHireListDetailVo.java new file mode 100644 index 0000000000..8e3c6c346b --- /dev/null +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/hrhiredetails/HrHireListDetailVo.java @@ -0,0 +1,41 @@ +package com.yxt.anrui.oa.biz.hrhiredetails; + +import com.yxt.anrui.oa.biz.oaform.FormCommon; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2025/1/21 + **/ +@Data +public class HrHireListDetailVo { + + private String sid; + @ApiModelProperty("招聘部门") + private String deptValue; + @ApiModelProperty("招聘岗位") + private String jobValue; + @ApiModelProperty("人数") + private String memberCount; + @ApiModelProperty("学历") + private String educationValue; + @ApiModelProperty("薪资待遇") + private String formalWages; + @ApiModelProperty("职位福利") + private String benefits; + @ApiModelProperty("职位描述") + private String describes; + @ApiModelProperty("职位要求") + private String demand; + @ApiModelProperty("地址") + private String address; + @ApiModelProperty("备注") + private String remarks; + + private List files = new ArrayList<>(); +} diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaForm.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaForm.java index 6d22a8022c..80ca397570 100644 --- a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaForm.java +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaForm.java @@ -50,5 +50,4 @@ public class OaForm extends BaseEntity { @ApiModelProperty("创建组织") private String createOrgName; - } diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormCommonVo.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormCommonVo.java new file mode 100644 index 0000000000..f5025b6239 --- /dev/null +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormCommonVo.java @@ -0,0 +1,32 @@ +package com.yxt.anrui.oa.biz.oaform; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2025/1/21 + **/ +@Data +public class OaFormCommonVo { + @ApiModelProperty("申请单号") + private String billNo; + @ApiModelProperty("创建时间") + private String createTime; + @ApiModelProperty("申请人") + private String createByName; + @ApiModelProperty("组织-部门") + private String publishInfo; + + + // 静态方法,直接通过方法创建对象并赋值 + public static OaFormCommonVo of(String billNo, String createTime, String createByName, String useOrgName, String deptName) { + OaFormCommonVo formCommon = new OaFormCommonVo(); + formCommon.setBillNo(billNo); + formCommon.setCreateTime(createTime); + formCommon.setCreateByName(createByName); + formCommon.setPublishInfo(useOrgName + "-" + deptName); + return formCommon; + } +} diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormService.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormService.java index 82947cf5d8..69023e3070 100644 --- a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormService.java +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormService.java @@ -37,6 +37,7 @@ import org.apache.tomcat.util.threads.ThreadPoolExecutor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.text.SimpleDateFormat; import java.util.*; import java.util.concurrent.*; import java.util.stream.Collectors; @@ -662,4 +663,11 @@ public class OaFormService extends MybatisBaseService { return rb.success().setData(bv); } + + + public OaFormCommonVo getDetails(String sid) { + OaForm oaForm = fetchBySid(sid); + OaFormCommonVo vo = OaFormCommonVo.of(oaForm.getBillNo(), new SimpleDateFormat("yyyy-MM-dd").format(oaForm.getCreateTime()), oaForm.getCreateByName(), oaForm.getUseOrgName(), oaForm.getDeptName()); + return vo; + } } diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormUrlEnum.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormUrlEnum.java new file mode 100644 index 0000000000..2f3045b03c --- /dev/null +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormUrlEnum.java @@ -0,0 +1,90 @@ +package com.yxt.anrui.oa.biz.oaform; + +/** + * @description: + * @author: dimengzhe + * @date: 2025/1/21 + **/ +public enum OaFormUrlEnum { + + /************************招聘需求相关地址********************************/ + /** + * 编辑页面地址 + */ + HRHIREAPPLY_EDIT(InnerEnum.editUrl.printValue(), "approval/#/pages/EditOnboradingApplyActivity?sid="), + /** + * 详情页面地址 + */ + HRHIREAPPLY_DETAIL(InnerEnum.detailUrl.printValue(), "approval/#/pages/DetailOnboradingApplyActivity?sid="), + /** + * 获取操作标题接口地址 + */ + HRHIREAPPLY_FLOWOPERATEURL(InnerEnum.flowOperateUrl.printValue(), "oa/v1/HrHireApply/getFlowOperateTitle"), + /** + * 办理接口地址 + */ + HRHIREAPPLY_AGREEURL(InnerEnum.agreeUrl.printValue(), "oa/v1/HrHireApply/complete"), + /** + * 驳回接口地址 + */ + HRHIREAPPLY_REJECTURL(InnerEnum.rejectUrl.printValue(), "oa/v1/HrHireApply/reject"), + + + /*******************************审批单公共地址*********************************************/ + /** + * 审批单公共终止接口地址 + */ + STOPURL(InnerEnum.stopUrl.printValue(), "oa/v1/oaform/breakProcess"), + /** + * 审批单公共撤回接口地址 + */ + RECALLURL(InnerEnum.recallUrl.printValue(), "oa/v1/oaform/revokeProcess"), + /** + * 审批单公共加签接口地址 + */ + SIGNURL(InnerEnum.signUrl.printValue(), "oa/v1/oaform/delegate"), + /** + * 审批单公共转办接口地址 + */ + TRANSFERURL(InnerEnum.transferUrl.printValue(), "oa/v1/oaform/assignTask"), + ; + + //类型 + private String type; + //地址 + private String url; + + public String getType() { + return type; + } + + public String getUrl() { + return url; + } + + OaFormUrlEnum(String type, String url) { + this.type = type; + this.url = url; + } + + + // 静态内部枚举//地址类型 + public static enum InnerEnum { + /** + * 地址类型 + */ + editUrl, + detailUrl, + flowOperateUrl, + agreeUrl, + rejectUrl, + stopUrl, + recallUrl, + signUrl, + transferUrl; + + public String printValue() { + return this.name(); + } + } +} From d1e1588a73eba4ceb3efdd1da073bd389e5dd4af Mon Sep 17 00:00:00 2001 From: dimengzhe Date: Tue, 21 Jan 2025 17:08:30 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/yxt/anrui/oa/api/HrHireApplyRest.java | 23 ++++++++++++++++++- .../java/com/yxt/anrui/oa/api/OaFormRest.java | 6 ++--- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/api/HrHireApplyRest.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/api/HrHireApplyRest.java index f841a1927b..72b8a695d1 100644 --- a/yxt-oa/src/main/java/com/yxt/anrui/oa/api/HrHireApplyRest.java +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/api/HrHireApplyRest.java @@ -15,6 +15,8 @@ import org.springframework.web.bind.annotation.*; import javax.validation.Valid; +import static com.yxt.common.core.result.ResultBean.fireFail; + /** * @description: * @author: dimengzhe @@ -27,7 +29,7 @@ public class HrHireApplyRest { @Autowired private HrHireApplyService hrHireApplyService; - @ApiOperation("新增初始化") + /* @ApiOperation("新增初始化") @GetMapping("/getInit") ResultBean getSaveInit(@RequestParam("userSid") String userSid, @RequestParam("orgPath") String orgPath) { return hrHireApplyService.getSaveInit(userSid, orgPath); @@ -37,6 +39,25 @@ public class HrHireApplyRest { @GetMapping("/getInit/{sid}") ResultBean getUpdateInit(@PathVariable("sid") String sid) { return hrHireApplyService.getUpdateInit(sid); + }*/ + + @ApiOperation("初始化(新增或修改)") + @GetMapping({"/getInit", "/getInit/{sid}"}) + public ResultBean getInit( + @PathVariable(value = "sid", required = false) String sid, + @RequestParam(value = "userSid", required = false) String userSid, + @RequestParam(value = "orgPath", required = false) String orgPath) { + ResultBean rb = ResultBean.fireFail(); + if (sid == null || sid.isEmpty()) { + // 执行新增初始化 + if (userSid == null || orgPath == null) { + return rb.setMsg("userSid和orgPath不能为空"); + } + return hrHireApplyService.getSaveInit(userSid, orgPath); + } else { + // 执行修改初始化 + return hrHireApplyService.getUpdateInit(sid); + } } @ApiOperation("新增或修改") diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/api/OaFormRest.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/api/OaFormRest.java index 36ba330ccb..0044f471c7 100644 --- a/yxt-oa/src/main/java/com/yxt/anrui/oa/api/OaFormRest.java +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/api/OaFormRest.java @@ -55,7 +55,7 @@ public class OaFormRest { return rb.success(); } - @ApiOperation(value = "办理(同意)") + /* @ApiOperation(value = "办理(同意)") @PutMapping("/complete") public ResultBean complete(@Valid @RequestBody CompleteDto dto) { BusinessVariablesDto businessVariables = new BusinessVariablesDto(); @@ -63,7 +63,7 @@ public class OaFormRest { return oaFormService.complete(businessVariables); } - @ApiOperation(value = "获取上一个环节") + @ApiOperation(value = "获取上一个环节") @GetMapping(value = "/getPreviousNodesForReject") public ResultBean> getPreviousNodesForReject(@Valid @SpringQueryMap NodeQuery query) { return oaFormService.getPreviousNodesForReject(query); @@ -79,7 +79,7 @@ public class OaFormRest { @PutMapping(value = "/reject") public ResultBean reject(@Valid @RequestBody TaskDto dto) { return oaFormService.reject(dto); - } + }*/ @ApiOperation(value = "撤回流程") @PutMapping(value = "/revokeProcess")