From bfe725eb19e4d3951dfeed1a634fecba592bd650 Mon Sep 17 00:00:00 2001 From: ligaode Date: Tue, 18 Feb 2025 10:46:14 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BaseAccadjApplyService.java | 4 +- .../portal/biz/sysuser/SysUserMapper.xml | 1 + .../api/asserviceaccomm/AsServiceAccomm.java | 3 +- .../AsServiceAccommDetailsVo.java | 3 +- .../asserviceaccomm/AsServiceAccommDto.java | 2 + .../asserviceaccomm/AsServiceAccommVo.java | 2 + .../AsServiceAccommDetail.java | 3 +- .../AsServiceAccommDetailDetailsVo.java | 2 + .../AsServiceAccommDetailDto.java | 10 +- .../anrui/as/api/astechtitle/AsTechTitle.java | 21 +- .../api/astechtitle/AsTechTitleDetailsVo.java | 7 +- .../as/api/astechtitle/AsTechTitleDto.java | 18 +- .../as/api/astechtitle/AsTechTitleVo.java | 8 +- .../AsTechTitleDetailDetailsVo.java | 10 +- .../AsTechTitleDetailDto.java | 14 +- .../AsServiceAccommMapper.java | 10 + .../asserviceaccomm/AsServiceAccommRest.java | 70 +- .../AsServiceAccommService.java | 239 ++-- .../AsServiceAccommApplyRest.java | 176 ++- .../AsServiceAccommApplyService.java | 974 +++++++------- .../as/biz/astechtitle/AsTechTitleMapper.java | 30 +- .../as/biz/astechtitle/AsTechTitleMapper.xml | 33 +- .../as/biz/astechtitle/AsTechTitleRest.java | 50 +- .../biz/astechtitle/AsTechTitleService.java | 312 ++--- .../AsTechTitleApplyService.java | 1164 +++++++++-------- .../crm/feign/flowable/flow/ProcDefEnum.java | 15 - .../anrui/oa/api/AdExpatriatesApplyRest.java | 9 - .../anrui/oa/api/AdLeasehostApplyRest.java | 105 ++ .../anrui/oa/api/AdLeasehostDetailRest.java | 36 + .../adleasehostapply/AdLeasehostApply.java | 58 + .../AdLeasehostApplyDetailsVo.java | 65 + .../adleasehostapply/AdLeasehostApplyDto.java | 54 + .../AdLeasehostApplyMapper.java | 35 + .../AdLeasehostApplyMapper.xml | 9 + .../AdLeasehostApplyService.java | 307 +++++ .../adleasehostapply/AdLeasehostApplyVo.java | 77 ++ .../adleasehostdetail/AdLeasehostDetail.java | 72 + .../AdLeasehostDetailDto.java | 56 + .../AdLeasehostDetailMapper.java | 41 + .../AdLeasehostDetailMapper.xml | 18 + .../AdLeasehostDetailService.java | 64 + .../AdLeasehostDetailVo.java | 72 + .../AdLeasehostListDetailVo.java | 52 + .../inventroy/WmsInventoryCheckbillRest.java | 13 - .../wms/feign/flowable/flow/ProcDefEnum.java | 2 +- 45 files changed, 2755 insertions(+), 1571 deletions(-) create mode 100644 yxt-oa/src/main/java/com/yxt/anrui/oa/api/AdLeasehostApplyRest.java create mode 100644 yxt-oa/src/main/java/com/yxt/anrui/oa/api/AdLeasehostDetailRest.java create mode 100644 yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostapply/AdLeasehostApply.java create mode 100644 yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostapply/AdLeasehostApplyDetailsVo.java create mode 100644 yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostapply/AdLeasehostApplyDto.java create mode 100644 yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostapply/AdLeasehostApplyMapper.java create mode 100644 yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostapply/AdLeasehostApplyMapper.xml create mode 100644 yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostapply/AdLeasehostApplyService.java create mode 100644 yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostapply/AdLeasehostApplyVo.java create mode 100644 yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostdetail/AdLeasehostDetail.java create mode 100644 yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostdetail/AdLeasehostDetailDto.java create mode 100644 yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostdetail/AdLeasehostDetailMapper.java create mode 100644 yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostdetail/AdLeasehostDetailMapper.xml create mode 100644 yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostdetail/AdLeasehostDetailService.java create mode 100644 yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostdetail/AdLeasehostDetailVo.java create mode 100644 yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostdetail/AdLeasehostListDetailVo.java diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseaccadjapply/BaseAccadjApplyService.java b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseaccadjapply/BaseAccadjApplyService.java index 5ad0ed0504..04a9222af8 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseaccadjapply/BaseAccadjApplyService.java +++ b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseaccadjapply/BaseAccadjApplyService.java @@ -139,8 +139,6 @@ public class BaseAccadjApplyService extends MybatisBaseService stringList = baseAccadjApplyeVehService.fetchCallInBuyerOrgSidByMainSid(baseAccadjApply.getSid()); List baseAccadjApplyToJDRus = new ArrayList<>(); diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserMapper.xml b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserMapper.xml index c21fe11ae9..2f582d15a9 100644 --- a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserMapper.xml +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserMapper.xml @@ -463,6 +463,7 @@ '%' ) AND sur.roleSid = 'de8bfb73-8a08-46bc-beab-f981bf8c8de8' + AND st.personTypeKey != '01' - SELECT - att.*, - attd.techName - FROM - as_tech_title att - LEFT JOIN anrui_portal.sys_organization AS s - ON att.useOrgSid = s.sid - LEFT JOIN as_tech_title_detail attd - ON att.sid = attd.titleSid - ${ew.sqlSegment} - + + + + + \ No newline at end of file diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/astechtitle/AsTechTitleRest.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/astechtitle/AsTechTitleRest.java index 4d3dbc3ee3..4047a63b48 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/astechtitle/AsTechTitleRest.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/astechtitle/AsTechTitleRest.java @@ -54,36 +54,36 @@ import com.yxt.anrui.as.api.astechtitle.AsTechTitleDto; @Api(tags = "维修技师职称") @RestController @RequestMapping("v1/astechtitle") -public class AsTechTitleRest { +public class AsTechTitleRest { - @Autowired - private AsTechTitleService asTechTitleService; + @Autowired + private AsTechTitleService asTechTitleService; - @ApiOperation("根据条件分页查询数据的列表") - @PostMapping("/listPage") - public ResultBean> listPage(@RequestBody PagerQuery pq){ - ResultBean rb = ResultBean.fireFail(); - PagerVo pv = asTechTitleService.listPageVo(pq); - return rb.success().setData(pv); - } + @ApiOperation("根据条件分页查询数据的列表") + @PostMapping("/listPage") + public ResultBean> listPage(@RequestBody PagerQuery pq) { + ResultBean rb = ResultBean.fireFail(); + PagerVo pv = asTechTitleService.listPageVo(pq); + return rb.success().setData(pv); + } - @ApiOperation("新增或修改") - @PostMapping("/save") - public ResultBean save(@RequestBody AsTechTitleDto dto){ - return asTechTitleService.saveOrUpdateDto(dto); - } + @ApiOperation("新增或修改") + @PostMapping("/save") + public ResultBean save(@RequestBody AsTechTitleDto dto) { + return asTechTitleService.saveOrUpdateDto(dto); + } - @ApiOperation("根据sid批量删除") + @ApiOperation("根据sid批量删除") @DeleteMapping("/delBySids") - public ResultBean delBySids(@RequestBody String[] sids){ - return asTechTitleService.delete(sids); - } + public ResultBean delBySids(@RequestBody String[] sids) { + return asTechTitleService.delete(sids); + } - @ApiOperation("根据SID获取一条记录") + @ApiOperation("根据SID获取一条记录") @GetMapping("/fetchDetailsBySid/{sid}") - public ResultBean fetchDetailsBySid(@PathVariable("sid") String sid){ - ResultBean rb = ResultBean.fireFail(); - AsTechTitleDetailsVo vo = asTechTitleService.fetchDetailsVoBySid(sid); - return rb.success().setData(vo); - } + public ResultBean fetchDetailsBySid(@PathVariable("sid") String sid) { + ResultBean rb = ResultBean.fireFail(); + AsTechTitleDetailsVo vo = asTechTitleService.fetchDetailsVoBySid(sid); + return rb.success().setData(vo); + } } diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/astechtitle/AsTechTitleService.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/astechtitle/AsTechTitleService.java index b36d780df7..6eeaa604eb 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/astechtitle/AsTechTitleService.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/astechtitle/AsTechTitleService.java @@ -70,163 +70,175 @@ import java.util.List; @Service public class AsTechTitleService extends MybatisBaseService { - @Autowired - private SysStaffOrgFeign sysStaffOrgFeign; - @Autowired - private SysOrganizationFeign sysOrganizationFeign; - @Autowired - private SysUserFeign sysUserFeign; - @Autowired - private AsTechTitleApplyService asTechTitleApplyService; - - public PagerVo listPageVo(PagerQuery pq) { - AsTechTitleQuery query = pq.getParams(); - QueryWrapper qw = new QueryWrapper<>(); - //========================================数据授权开始 - if (StringUtils.isNotBlank(query.getMenuUrl())) { - PrivilegeQuery privilegeQuery = new PrivilegeQuery(); - privilegeQuery.setOrgPath(query.getOrgPath()); - privilegeQuery.setMenuUrl(query.getMenuUrl()); - privilegeQuery.setUserSid(query.getUserSid()); - ResultBean defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery); - if (StringUtils.isNotBlank(defaultIdReltBean.getData())) { - //数据权限ID(1集团、2事业部、3分公司、4部门、5个人) - String orgSidPath = query.getOrgPath(); - orgSidPath = orgSidPath + "/"; - int i1 = orgSidPath.indexOf("/"); - int i2 = orgSidPath.indexOf("/", i1 + 1); - int i3 = orgSidPath.indexOf("/", i2 + 1); - int i4 = orgSidPath.indexOf("/", i3 + 1); - String orgLevelKey = defaultIdReltBean.getData(); - if ("1".equals(orgLevelKey)) { - orgSidPath = orgSidPath.substring(0, i1); - qw.like("s.orgSidPath", orgSidPath); - } else if ("2".equals(orgLevelKey)) { - orgSidPath = orgSidPath.substring(0, i2); - qw.like("s.orgSidPath", orgSidPath); - } else if ("3".equals(orgLevelKey)) { - orgSidPath = orgSidPath.substring(0, i3); - qw.like("s.orgSidPath", orgSidPath); - } else if ("4".equals(orgLevelKey)) { - orgSidPath = orgSidPath.substring(0, i4); - qw.like("s.orgSidPath", orgSidPath); - } else if ("5".equals(orgLevelKey)) { - qw.eq("att.createBySid", query.getUserSid()); - } else { - PagerVo p = new PagerVo<>(); - return p; - } - } else { - PagerVo p = new PagerVo<>(); - return p; - } - } - if (StringUtils.isNotBlank(query.getTitleNameKey())){ - qw.like("att.titleNameKey", query.getTitleNameKey()); - } - qw.groupBy("att.sid"); - qw.orderByAsc("att.sortNo"); - qw.eq("att.isDelete",0); - IPage page = PagerUtil.queryToPage(pq); - IPage pagging = baseMapper.selectPageVo(page, qw); - for (AsTechTitleVo record : pagging.getRecords()) { - if ("1".equals(record.getState())){ - record.setState("未备案"); - }else if ("2".equals(record.getState())){ - record.setState("备案中"); - }else if ("0".equals(record.getState())){ - record.setState("已备案"); - } - } - PagerVo p = PagerUtil.pageToVo(pagging, null); - return p; - } - - public ResultBean saveOrUpdateDto(AsTechTitleDto dto){ - ResultBean rb = ResultBean.fireFail(); + @Autowired + private SysStaffOrgFeign sysStaffOrgFeign; + @Autowired + private SysOrganizationFeign sysOrganizationFeign; + @Autowired + private SysUserFeign sysUserFeign; + @Autowired + private AsTechTitleApplyService asTechTitleApplyService; + + public PagerVo listPageVo(PagerQuery pq) { + AsTechTitleQuery query = pq.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + //========================================数据授权开始 + if (StringUtils.isNotBlank(query.getMenuUrl())) { + PrivilegeQuery privilegeQuery = new PrivilegeQuery(); + privilegeQuery.setOrgPath(query.getOrgPath()); + privilegeQuery.setMenuUrl(query.getMenuUrl()); + privilegeQuery.setUserSid(query.getUserSid()); + ResultBean defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery); + if (StringUtils.isNotBlank(defaultIdReltBean.getData())) { + //数据权限ID(1集团、2事业部、3分公司、4部门、5个人) + String orgSidPath = query.getOrgPath(); + orgSidPath = orgSidPath + "/"; + int i1 = orgSidPath.indexOf("/"); + int i2 = orgSidPath.indexOf("/", i1 + 1); + int i3 = orgSidPath.indexOf("/", i2 + 1); + int i4 = orgSidPath.indexOf("/", i3 + 1); + String orgLevelKey = defaultIdReltBean.getData(); + if ("1".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i1); + qw.like("s.orgSidPath", orgSidPath); + } else if ("2".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i2); + qw.like("s.orgSidPath", orgSidPath); + } else if ("3".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i3); + qw.like("s.orgSidPath", orgSidPath); + } else if ("4".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i4); + qw.like("s.orgSidPath", orgSidPath); + } else if ("5".equals(orgLevelKey)) { + qw.eq("att.createBySid", query.getUserSid()); + } else { + PagerVo p = new PagerVo<>(); + return p; + } + } else { + PagerVo p = new PagerVo<>(); + return p; + } + } + if (StringUtils.isNotBlank(query.getTitleNameKey())) { + qw.like("att.titleNameKey", query.getTitleNameKey()); + } + qw.groupBy("att.sid"); + qw.orderByAsc("att.sortNo"); + qw.eq("att.isDelete", 0); + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.selectPageVo(page, qw); + for (AsTechTitleVo record : pagging.getRecords()) { + if ("1".equals(record.getState())) { + record.setState("未备案"); + } else if ("2".equals(record.getState())) { + record.setState("备案中"); + } else if ("0".equals(record.getState())) { + record.setState("已备案"); + } + } + PagerVo p = PagerUtil.pageToVo(pagging, null); + return p; + } + + public ResultBean saveOrUpdateDto(AsTechTitleDto dto) { + ResultBean rb = ResultBean.fireFail(); String dtoSid = dto.getSid(); if (StringUtils.isBlank(dtoSid)) { - String deptName = ""; - String deptSid = ""; - String createOrgSid = ""; - String orgPath = dto.getOrgPath(); - if (StringUtils.isNotBlank(orgPath)) { - List split = Arrays.asList(orgPath.split("/")); - if (split.size() > 1) { - //获取本级sid获取本级部门信息 - SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(split.get(split.size() - 2)).getData(); - SysOrganizationVo sysOrganization1 = sysOrganizationFeign.fetchBySid(split.get(split.size() - 1)).getData(); - deptName = sysOrganization.getName() + "/" + sysOrganization1.getName(); - deptName = sysOrganization1.getName(); - deptSid = sysOrganization1.getSid(); - } else { - SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(split.get(0)).getData(); - deptName = sysOrganization.getName (); - deptName = sysOrganization.getName(); - deptSid = sysOrganization.getSid(); - } - dto.setUseOrgSid(deptSid); - dto.setUseOrgName(deptName); - createOrgSid = sysStaffOrgFeign.getOrgSidByPath(orgPath).getData(); - //创建组织使用组织 - ResultBean organizationResultBean = sysOrganizationFeign.fetchBySid(createOrgSid); - if (organizationResultBean.getData() != null) { - dto.setCreateOrgSid(createOrgSid); - dto.setCreateOrgName(organizationResultBean.getData().getName()); - } - } - int i = baseMapper.checkByNameAndUseOrgSid(dto.getTitleNameKey(), dto.getUseOrgSid()); - if (i > 0) { - return rb.setMsg("维修技师职称已存在"); - } + String deptName = ""; + String deptSid = ""; + String createOrgSid = ""; + String orgPath = dto.getOrgPath(); + if (StringUtils.isNotBlank(orgPath)) { + List split = Arrays.asList(orgPath.split("/")); + if (split.size() > 1) { + //获取本级sid获取本级部门信息 + SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(split.get(split.size() - 2)).getData(); + SysOrganizationVo sysOrganization1 = sysOrganizationFeign.fetchBySid(split.get(split.size() - 1)).getData(); + deptName = sysOrganization.getName() + "/" + sysOrganization1.getName(); + deptName = sysOrganization1.getName(); + deptSid = sysOrganization1.getSid(); + } else { + SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(split.get(0)).getData(); + deptName = sysOrganization.getName(); + deptName = sysOrganization.getName(); + deptSid = sysOrganization.getSid(); + } + dto.setUseOrgSid(deptSid); + dto.setUseOrgName(deptName); + createOrgSid = sysStaffOrgFeign.getOrgSidByPath(orgPath).getData(); + //创建组织使用组织 + ResultBean organizationResultBean = sysOrganizationFeign.fetchBySid(createOrgSid); + if (organizationResultBean.getData() != null) { + dto.setCreateOrgSid(createOrgSid); + dto.setCreateOrgName(organizationResultBean.getData().getName()); + } + } + int i = baseMapper.checkByNameAndUseOrgSid(dto.getTitleNameKey(), dto.getUseOrgSid()); + if (i > 0) { + return rb.setMsg("维修技师职称已存在"); + } this.insertByDto(dto); return rb.success(); } - int i = baseMapper.checkSidByNameAndUseOrgSid(dto.getTitleNameKey(), dto.getUseOrgSid(), dtoSid); - if (i > 0) { - return rb.setMsg("维修技师职称已存在"); - } - this.updateByDto(dto); - return rb.success(); - } - - public void insertByDto(AsTechTitleDto dto){ - AsTechTitle entity = new AsTechTitle(); - BeanUtil.copyProperties(dto, entity, "id", "sid"); - baseMapper.insert(entity); - } - - public void updateByDto(AsTechTitleDto dto){ - String dtoSid = dto.getSid(); + int i = baseMapper.checkSidByNameAndUseOrgSid(dto.getTitleNameKey(), dto.getUseOrgSid(), dtoSid); + if (i > 0) { + return rb.setMsg("维修技师职称已存在"); + } + this.updateByDto(dto); + return rb.success(); + } + + public void insertByDto(AsTechTitleDto dto) { + AsTechTitle entity = new AsTechTitle(); + BeanUtil.copyProperties(dto, entity, "id", "sid"); + baseMapper.insert(entity); + } + + public void updateByDto(AsTechTitleDto dto) { + String dtoSid = dto.getSid(); if (StringUtils.isBlank(dtoSid)) { return; - } - AsTechTitle entity = fetchBySid(dtoSid); - BeanUtil.copyProperties(dto, entity, "id", "sid"); - baseMapper.updateById(entity); - } - - public AsTechTitleDetailsVo fetchDetailsVoBySid(String sid){ - AsTechTitle entity = baseMapper.fetchIsDeleteBySid(sid); - AsTechTitleDetailsVo vo = new AsTechTitleDetailsVo(); - BeanUtil.copyProperties(entity, vo); - return vo; - } + } + AsTechTitle entity = fetchBySid(dtoSid); + BeanUtil.copyProperties(dto, entity, "id", "sid"); + baseMapper.updateById(entity); + } + + public AsTechTitleDetailsVo fetchDetailsVoBySid(String sid) { + AsTechTitle entity = baseMapper.fetchIsDeleteBySid(sid); + AsTechTitleDetailsVo vo = new AsTechTitleDetailsVo(); + BeanUtil.copyProperties(entity, vo); + return vo; + } + + public ResultBean delete(String[] sids) { + ResultBean rb = ResultBean.fireFail(); + for (String sid : sids) { + AsTechTitle asTechTitle = fetchBySid(sid); + if (asTechTitle.getState() == 1) { + baseMapper.updateIsDeleteBySid(sid); + } else { + return rb.setMsg("所选记录包含已备案或备案中的数据无法删除"); + } + } + return rb.success(); + } + + public void updateState(String sid, String state) { + baseMapper.updateState(sid, state); + } + + public void updateTech(String sid, String techSid, String techName) { + baseMapper.updateTech(sid, techSid, techName); + } - public ResultBean delete(String[] sids) { - ResultBean rb = ResultBean.fireFail(); - for (String sid : sids) { - AsTechTitle asTechTitle = fetchBySid(sid); - if (asTechTitle.getState() == 1){ - baseMapper.updateIsDeleteBySid(sid); - }else { - return rb.setMsg("所选记录包含已备案或备案中的数据无法删除"); - } - } - return rb.success(); - } + public void updateIsBa(String sid, Integer isBa) { + baseMapper.updateIsBa(sid, isBa); + } - public void updateState(String sid, String state) { - baseMapper.updateState(sid,state); - } + public AsTechTitle selLikeTechSid(String techSid) { + return baseMapper.selLikeTechSid(techSid); + } } \ No newline at end of file diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/astechtitleapply/AsTechTitleApplyService.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/astechtitleapply/AsTechTitleApplyService.java index 3d3aa11d6a..1768033e38 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/astechtitleapply/AsTechTitleApplyService.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/astechtitleapply/AsTechTitleApplyService.java @@ -28,6 +28,7 @@ package com.yxt.anrui.as.biz.astechtitleapply; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSON; +import com.alibaba.nacos.client.naming.utils.CollectionUtils; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.google.common.util.concurrent.ThreadFactoryBuilder; @@ -62,6 +63,7 @@ import com.yxt.anrui.as.feign.portal.sysorganization.SysOrganizationFeign; import com.yxt.anrui.as.feign.portal.sysorganization.SysOrganizationVo; import com.yxt.anrui.as.feign.portal.sysstafforg.SysStaffOrgFeign; import com.yxt.anrui.as.feign.portal.sysuser.SysUserFeign; +import com.yxt.anrui.as.feign.portal.sysuser.SysUserVo; import com.yxt.anrui.as.feign.portal.sysuserrole.SysUserRoleFeign; import com.yxt.common.base.config.component.FileUploadComponent; import com.yxt.common.core.result.ResultBean; @@ -95,590 +97,628 @@ import java.util.stream.Collectors; @Service public class AsTechTitleApplyService extends MybatisBaseService { - @Autowired - private FileUploadComponent fileUploadComponent; - @Autowired - private SysOrganizationFeign sysOrganizationFeign; - @Autowired - private SysStaffOrgFeign sysStaffOrgFeign; - @Autowired - private SysUserFeign sysUserFeign; - @Autowired - private FlowableFeign flowableFeign; - @Autowired - private FlowTaskFeign flowTaskFeign; - @Autowired - private FlowFeign flowFeign; - @Autowired - private MessageFeign messageFeign; - @Autowired - private AsTechTitleDetailService asTechTitleDetailService; - @Autowired - private AsTechTitleService asTechTitleService; - @Autowired - private AsAppendixService asAppendixService; - @Autowired - private SysUserRoleFeign sysUserRoleFeign; + @Autowired + private FileUploadComponent fileUploadComponent; + @Autowired + private SysOrganizationFeign sysOrganizationFeign; + @Autowired + private SysStaffOrgFeign sysStaffOrgFeign; + @Autowired + private SysUserFeign sysUserFeign; + @Autowired + private FlowableFeign flowableFeign; + @Autowired + private FlowTaskFeign flowTaskFeign; + @Autowired + private FlowFeign flowFeign; + @Autowired + private MessageFeign messageFeign; + @Autowired + private AsTechTitleDetailService asTechTitleDetailService; + @Autowired + private AsTechTitleService asTechTitleService; + @Autowired + private AsAppendixService asAppendixService; + @Autowired + private SysUserRoleFeign sysUserRoleFeign; - public PagerVo listPageVo(PagerQuery pq) { - AsTechTitleApplyQuery query = pq.getParams(); - QueryWrapper qw = new QueryWrapper<>(); - //========================================数据授权开始 - if (StringUtils.isNotBlank(query.getMenuUrl())) { - PrivilegeQuery privilegeQuery = new PrivilegeQuery(); - privilegeQuery.setOrgPath(query.getOrgPath()); - privilegeQuery.setMenuUrl(query.getMenuUrl()); - privilegeQuery.setMenuSid(query.getMenuSid()); - privilegeQuery.setUserSid(query.getUserSid()); - ResultBean defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery); - if (StringUtils.isNotBlank(defaultIdReltBean.getData())) { - //数据权限ID(1集团、2事业部、3分公司、4部门、5个人) - String orgSidPath = query.getOrgPath(); - orgSidPath = orgSidPath + "/"; - int i1 = orgSidPath.indexOf("/"); - int i2 = orgSidPath.indexOf("/", i1 + 1); - int i3 = orgSidPath.indexOf("/", i2 + 1); - int i4 = orgSidPath.indexOf("/", i3 + 1); - String orgLevelKey = defaultIdReltBean.getData(); - if ("1".equals(orgLevelKey)) { - orgSidPath = orgSidPath.substring(0, i1); - qw.like("s.orgSidPath", orgSidPath); - } else if ("2".equals(orgLevelKey)) { - orgSidPath = orgSidPath.substring(0, i2); - qw.like("s.orgSidPath", orgSidPath); - } else if ("3".equals(orgLevelKey)) { - orgSidPath = orgSidPath.substring(0, i3); - qw.like("s.orgSidPath", orgSidPath); - } else if ("4".equals(orgLevelKey)) { - orgSidPath = orgSidPath.substring(0, i4); - qw.like("s.orgSidPath", orgSidPath); - } else if ("5".equals(orgLevelKey)) { - qw.eq("tta.createBySid", query.getUserSid()); - } else { - PagerVo p = new PagerVo<>(); - return p; - } - } else { - PagerVo p = new PagerVo<>(); - return p; - } - } - if (StringUtils.isNotBlank(query.getUseOrgName())){ - qw.like("tta.useOrgName",query.getUseOrgName()); - } - if (StringUtils.isNotBlank(query.getDeptName())){ - qw.like("tta.deptName",query.getDeptName()); - } - if (StringUtils.isNotBlank(query.getCreateByName())){ - qw.like("tta.createByName",query.getCreateByName()); - } - if (StringUtils.isNotBlank(query.getBillNo())){ - qw.like("tta.billNo",query.getBillNo()); - } - String createStartTime = query.getCreateTimeStart(); - String createEndTime = query.getCreateTimeEnd(); - qw.apply(StringUtils.isNotEmpty(createStartTime), "date_format (tta.createTime,'%Y-%m-%d') >= date_format('" + createStartTime + "','%Y-%m-%d')"). - apply(StringUtils.isNotEmpty(createEndTime), "date_format (tta.createTime,'%Y-%m-%d') <= date_format('" + createEndTime + "','%Y-%m-%d')" - ); - String finishStartTime = query.getFinishTimeStart(); - String finishEndTime = query.getFinishTimeEnd(); - qw.apply(StringUtils.isNotEmpty(finishStartTime), "date_format (tta.finishTime,'%Y-%m-%d') >= date_format('" + finishStartTime + "','%Y-%m-%d')"). - apply(StringUtils.isNotEmpty(finishEndTime), "date_format (tta.finishTime,'%Y-%m-%d') <= date_format('" + finishEndTime + "','%Y-%m-%d')" - ); - qw.orderByDesc("tta.createTime"); - IPage page = PagerUtil.queryToPage(pq); - IPage pagging = baseMapper.selectPageVo(page, qw); - PagerVo p = PagerUtil.pageToVo(pagging, null); - return p; - } + public PagerVo listPageVo(PagerQuery pq) { + AsTechTitleApplyQuery query = pq.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + //========================================数据授权开始 + if (StringUtils.isNotBlank(query.getMenuUrl())) { + PrivilegeQuery privilegeQuery = new PrivilegeQuery(); + privilegeQuery.setOrgPath(query.getOrgPath()); + privilegeQuery.setMenuUrl(query.getMenuUrl()); + privilegeQuery.setMenuSid(query.getMenuSid()); + privilegeQuery.setUserSid(query.getUserSid()); + ResultBean defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery); + if (StringUtils.isNotBlank(defaultIdReltBean.getData())) { + //数据权限ID(1集团、2事业部、3分公司、4部门、5个人) + String orgSidPath = query.getOrgPath(); + orgSidPath = orgSidPath + "/"; + int i1 = orgSidPath.indexOf("/"); + int i2 = orgSidPath.indexOf("/", i1 + 1); + int i3 = orgSidPath.indexOf("/", i2 + 1); + int i4 = orgSidPath.indexOf("/", i3 + 1); + String orgLevelKey = defaultIdReltBean.getData(); + if ("1".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i1); + qw.like("s.orgSidPath", orgSidPath); + } else if ("2".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i2); + qw.like("s.orgSidPath", orgSidPath); + } else if ("3".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i3); + qw.like("s.orgSidPath", orgSidPath); + } else if ("4".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i4); + qw.like("s.orgSidPath", orgSidPath); + } else if ("5".equals(orgLevelKey)) { + qw.eq("tta.createBySid", query.getUserSid()); + } else { + PagerVo p = new PagerVo<>(); + return p; + } + } else { + PagerVo p = new PagerVo<>(); + return p; + } + } + if (StringUtils.isNotBlank(query.getUseOrgName())) { + qw.like("tta.useOrgName", query.getUseOrgName()); + } + if (StringUtils.isNotBlank(query.getDeptName())) { + qw.like("tta.deptName", query.getDeptName()); + } + if (StringUtils.isNotBlank(query.getCreateByName())) { + qw.like("tta.createByName", query.getCreateByName()); + } + if (StringUtils.isNotBlank(query.getBillNo())) { + qw.like("tta.billNo", query.getBillNo()); + } + String createStartTime = query.getCreateTimeStart(); + String createEndTime = query.getCreateTimeEnd(); + qw.apply(StringUtils.isNotEmpty(createStartTime), "date_format (tta.createTime,'%Y-%m-%d') >= date_format('" + createStartTime + "','%Y-%m-%d')"). + apply(StringUtils.isNotEmpty(createEndTime), "date_format (tta.createTime,'%Y-%m-%d') <= date_format('" + createEndTime + "','%Y-%m-%d')" + ); + String finishStartTime = query.getFinishTimeStart(); + String finishEndTime = query.getFinishTimeEnd(); + qw.apply(StringUtils.isNotEmpty(finishStartTime), "date_format (tta.finishTime,'%Y-%m-%d') >= date_format('" + finishStartTime + "','%Y-%m-%d')"). + apply(StringUtils.isNotEmpty(finishEndTime), "date_format (tta.finishTime,'%Y-%m-%d') <= date_format('" + finishEndTime + "','%Y-%m-%d')" + ); + qw.orderByDesc("tta.createTime"); + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.selectPageVo(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); + return p; + } - public ResultBean saveOrUpdateDto(AsTechTitleApplyDto dto){ - ResultBean rb = ResultBean.fireFail(); + public ResultBean saveOrUpdateDto(AsTechTitleApplyDto dto) { + ResultBean rb = ResultBean.fireFail(); String dtoSid = dto.getSid(); - List asTechTitleDetailDetailsList = dto.getAsTechTitleDetailDetailsList(); - List asTechTitleApplyFileList = dto.getAsTechTitleApplyFileList(); - String deptSid = dto.getDeptSid(); - SysOrganizationVo deptVo = sysOrganizationFeign.fetchBySid(deptSid).getData(); - String useOrgSid = sysStaffOrgFeign.getOrgSidByPath(deptVo.getOrgSidPath()).getData(); - SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData(); - dto.setUseOrgSid(useOrgSid); - dto.setUseOrgName(organizationVo.getName()); - if (StringUtils.isBlank(dtoSid)) { - //生成单据编号 - String billNo = ""; - String date = DateUtil.format(DateUtil.date(), "yyyyMM"); - billNo = "WXJSBA" + organizationVo.getOrgCode() + date; - String i = baseMapper.selectNum(billNo); - if (StringUtils.isNotBlank(i)) { - billNo = Rule.getBillNo(billNo, Integer.valueOf(i).intValue()); - } else { - billNo = Rule.getBillNo(billNo, 0); - } - dto.setBillNo(billNo); - String sid = this.insertByDto(dto); - for (AsTechTitleDetailDto asTechTitleDetailDto : asTechTitleDetailDetailsList) { - asTechTitleDetailDto.setMainSid(sid); - asTechTitleDetailService.insertByDto(asTechTitleDetailDto); - } - for (AsTechTitleApplyFile asTechTitleApplyFile : asTechTitleApplyFileList) { - String filePath = asTechTitleApplyFile.getUrl().replace(fileUploadComponent.getUrlPrefix(), ""); - AsAppendix asAppendix = new AsAppendix(); - asAppendix.setLinkSid(sid); - asAppendix.setAttachType(AsFileEnum.ASTECHTITLEAPPLY.getAttachType()); - asAppendix.setFilePath(filePath); - asAppendixService.save(asAppendix); - } - return rb.success().setData(sid); + List asTechTitleDetailDetailsList = dto.getAsTechTitleDetailDetailsList(); + List asTechTitleApplyFileList = dto.getAsTechTitleApplyFileList(); + String deptSid = dto.getDeptSid(); + SysOrganizationVo deptVo = sysOrganizationFeign.fetchBySid(deptSid).getData(); + String useOrgSid = sysStaffOrgFeign.getOrgSidByPath(deptVo.getOrgSidPath()).getData(); + SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData(); + dto.setUseOrgSid(useOrgSid); + dto.setUseOrgName(organizationVo.getName()); + if (StringUtils.isBlank(dtoSid)) { + //生成单据编号 + String billNo = ""; + String date = DateUtil.format(DateUtil.date(), "yyyyMM"); + billNo = "WXJSBA" + organizationVo.getOrgCode() + date; + String i = baseMapper.selectNum(billNo); + if (StringUtils.isNotBlank(i)) { + billNo = Rule.getBillNo(billNo, Integer.valueOf(i).intValue()); + } else { + billNo = Rule.getBillNo(billNo, 0); + } + dto.setBillNo(billNo); + String sid = this.insertByDto(dto); + for (AsTechTitleDetailDto asTechTitleDetailDto : asTechTitleDetailDetailsList) { + asTechTitleDetailDto.setMainSid(sid); + asTechTitleDetailService.insertByDto(asTechTitleDetailDto); + } + for (AsTechTitleApplyFile asTechTitleApplyFile : asTechTitleApplyFileList) { + String filePath = asTechTitleApplyFile.getUrl().replace(fileUploadComponent.getUrlPrefix(), ""); + AsAppendix asAppendix = new AsAppendix(); + asAppendix.setLinkSid(sid); + asAppendix.setAttachType(AsFileEnum.ASTECHTITLEAPPLY.getAttachType()); + asAppendix.setFilePath(filePath); + asAppendixService.save(asAppendix); + } + return rb.success().setData(sid); + } + this.updateByDto(dto); + asTechTitleDetailService.delByMainSid(dtoSid); + asAppendixService.delByLinkSid(dtoSid); + for (AsTechTitleDetailDto asTechTitleDetailDto : asTechTitleDetailDetailsList) { + asTechTitleDetailDto.setMainSid(dtoSid); + asTechTitleDetailService.insertByDto(asTechTitleDetailDto); } - this.updateByDto(dto); - asTechTitleDetailService.delByMainSid(dtoSid); - asAppendixService.delByLinkSid(dtoSid); - for (AsTechTitleDetailDto asTechTitleDetailDto : asTechTitleDetailDetailsList) { - asTechTitleDetailDto.setMainSid(dtoSid); - asTechTitleDetailService.insertByDto(asTechTitleDetailDto); - } - for (AsTechTitleApplyFile asTechTitleApplyFile : asTechTitleApplyFileList) { - String filePath = asTechTitleApplyFile.getUrl().replace(fileUploadComponent.getUrlPrefix(), ""); - AsAppendix asAppendix = new AsAppendix(); - asAppendix.setLinkSid(dtoSid); - asAppendix.setAttachType(AsFileEnum.ASTECHTITLEAPPLY.getAttachType()); - asAppendix.setFilePath(filePath); - asAppendixService.save(asAppendix); - } - return rb.success().setData(dtoSid); - } + for (AsTechTitleApplyFile asTechTitleApplyFile : asTechTitleApplyFileList) { + String filePath = asTechTitleApplyFile.getUrl().replace(fileUploadComponent.getUrlPrefix(), ""); + AsAppendix asAppendix = new AsAppendix(); + asAppendix.setLinkSid(dtoSid); + asAppendix.setAttachType(AsFileEnum.ASTECHTITLEAPPLY.getAttachType()); + asAppendix.setFilePath(filePath); + asAppendixService.save(asAppendix); + } + return rb.success().setData(dtoSid); + } - public String insertByDto(AsTechTitleApplyDto dto){ - AsTechTitleApply entity = new AsTechTitleApply(); - BeanUtil.copyProperties(dto, entity, "id", "sid"); - entity.setNodeState("待提交"); - baseMapper.insert(entity); - return entity.getSid(); - } + public String insertByDto(AsTechTitleApplyDto dto) { + AsTechTitleApply entity = new AsTechTitleApply(); + BeanUtil.copyProperties(dto, entity, "id", "sid"); + entity.setNodeState("待提交"); + baseMapper.insert(entity); + return entity.getSid(); + } - public void updateByDto(AsTechTitleApplyDto dto){ - String dtoSid = dto.getSid(); + public void updateByDto(AsTechTitleApplyDto dto) { + String dtoSid = dto.getSid(); if (StringUtils.isBlank(dtoSid)) { return; } - AsTechTitleApply entity = fetchBySid(dtoSid); - BeanUtil.copyProperties(dto, entity, "id", "sid"); - baseMapper.updateById(entity); - } + AsTechTitleApply entity = fetchBySid(dtoSid); + BeanUtil.copyProperties(dto, entity, "id", "sid"); + baseMapper.updateById(entity); + } - public AsTechTitleApplyDetailsVo fetchDetailsVoBySid(String sid){ - AsTechTitleApply entity = fetchBySid(sid); - AsTechTitleApplyDetailsVo vo = new AsTechTitleApplyDetailsVo(); - BeanUtil.copyProperties(entity, vo); - List asTechTitleDetailDetailsVos = asTechTitleDetailService.selByMainSid(sid); - for (AsTechTitleDetailDetailsVo asTechTitleDetailDetailsVo : asTechTitleDetailDetailsVos) { - AsTechTitleDetail asTechTitleDetail = asTechTitleDetailService.fetchBySid(asTechTitleDetailDetailsVo.getSid()); - String techSid = asTechTitleDetail.getTechSid(); - String techName = asTechTitleDetail.getTechName(); - asTechTitleDetailDetailsVo.setTechSids(Arrays.asList(techSid.split(","))); - asTechTitleDetailDetailsVo.setTechNames(Arrays.asList(techName.split(","))); - } - vo.setAsTechTitleDetailDetailsList(asTechTitleDetailDetailsVos); - List asAppendices = asAppendixService.fetchByLinkSid(sid); - List asTechTitleApplyFiles = new ArrayList<>(); - for (AsAppendix asAppendix : asAppendices) { - AsTechTitleApplyFile asTechTitleApplyFile = new AsTechTitleApplyFile(); - String url = fileUploadComponent.getUrlPrefix() + asAppendix.getFilePath(); - asTechTitleApplyFile.setUrl(url); - asTechTitleApplyFiles.add(asTechTitleApplyFile); - } - vo.setAsTechTitleApplyFileList(asTechTitleApplyFiles); - return vo; - } + public AsTechTitleApplyDetailsVo fetchDetailsVoBySid(String sid) { + AsTechTitleApply entity = fetchBySid(sid); + AsTechTitleApplyDetailsVo vo = new AsTechTitleApplyDetailsVo(); + BeanUtil.copyProperties(entity, vo); + List asTechTitleDetailDetailsVos = asTechTitleDetailService.selByMainSid(sid); + for (AsTechTitleDetailDetailsVo asTechTitleDetailDetailsVo : asTechTitleDetailDetailsVos) { + AsTechTitleDetail asTechTitleDetail = asTechTitleDetailService.fetchBySid(asTechTitleDetailDetailsVo.getSid()); + String techSid = asTechTitleDetail.getTechSid(); + String techName = asTechTitleDetail.getTechName(); + asTechTitleDetailDetailsVo.setTechSids(Arrays.asList(techSid.split(","))); + asTechTitleDetailDetailsVo.setTechNames(Arrays.asList(techName.split(","))); + } + vo.setAsTechTitleDetailDetailsList(asTechTitleDetailDetailsVos); + List asAppendices = asAppendixService.fetchByLinkSid(sid); + List asTechTitleApplyFiles = new ArrayList<>(); + for (AsAppendix asAppendix : asAppendices) { + AsTechTitleApplyFile asTechTitleApplyFile = new AsTechTitleApplyFile(); + String url = fileUploadComponent.getUrlPrefix() + asAppendix.getFilePath(); + asTechTitleApplyFile.setUrl(url); + asTechTitleApplyFiles.add(asTechTitleApplyFile); + } + vo.setAsTechTitleApplyFileList(asTechTitleApplyFiles); + return vo; + } - public ResultBean delAll(String[] sids) { - ResultBean rb = ResultBean.fireFail(); - //查询该sid中是否有流程不是待提交的 - int count = baseMapper.selectBySid(StringUtils.join(sids, ",")); - if (count > 0) { - return rb.setMsg("删除的数据中包含已提交或已办结审批的数据,删除失败"); - } - delBySids(sids); - for (String sid : sids) { - asTechTitleDetailService.delByMainSid(sid); - asAppendixService.delByLinkSid(sid); - } - return rb.success(); - } + public ResultBean delAll(String[] sids) { + ResultBean rb = ResultBean.fireFail(); + //查询该sid中是否有流程不是待提交的 + int count = baseMapper.selectBySid(StringUtils.join(sids, ",")); + if (count > 0) { + return rb.setMsg("删除的数据中包含已提交或已办结审批的数据,删除失败"); + } + delBySids(sids); + for (String sid : sids) { + asTechTitleDetailService.delByMainSid(sid); + asAppendixService.delByLinkSid(sid); + } + return rb.success(); + } - public AsTechTitleApplyDetailsVo init(String[] techSids) { - AsTechTitleApplyDetailsVo asTechTitleApplyDetailsVo = new AsTechTitleApplyDetailsVo(); - List asTechTitleDetailDetailsVos = new ArrayList<>(); - for (String techSid : techSids) { - AsTechTitleDetailDetailsVo asTechTitleDetailDetailsVo = new AsTechTitleDetailDetailsVo(); - AsTechTitle asTechTitle = asTechTitleService.fetchBySid(techSid); - asTechTitleDetailDetailsVo.setTitleSid(techSid); - asTechTitleDetailDetailsVo.setTitleNameKey(asTechTitle.getTitleNameKey()); - asTechTitleDetailDetailsVo.setTitleNameValue(asTechTitle.getTitleNameValue()); - asTechTitleDetailDetailsVo.setWeight(asTechTitle.getWeight()); - AsTechTitleInit asTechTitleInit = asTechTitleDetailService.selByTechSid(techSid); - if (asTechTitleInit != null){ - if (StringUtils.isNotBlank(asTechTitleInit.getTechSids())){ - asTechTitleDetailDetailsVo.setTechSids(Arrays.asList(asTechTitleInit.getTechSids().split(","))); - asTechTitleDetailDetailsVo.setTechNames(Arrays.asList(asTechTitleInit.getTechNames().split(","))); - } - } - asTechTitleDetailDetailsVos.add(asTechTitleDetailDetailsVo); - } - asTechTitleApplyDetailsVo.setAsTechTitleDetailDetailsList(asTechTitleDetailDetailsVos); - return asTechTitleApplyDetailsVo; - } + public AsTechTitleApplyDetailsVo init(String[] techSids) { + AsTechTitleApplyDetailsVo asTechTitleApplyDetailsVo = new AsTechTitleApplyDetailsVo(); + List asTechTitleDetailDetailsVos = new ArrayList<>(); + for (String techSid : techSids) { + AsTechTitleDetailDetailsVo asTechTitleDetailDetailsVo = new AsTechTitleDetailDetailsVo(); + AsTechTitle asTechTitle = asTechTitleService.fetchBySid(techSid); + asTechTitleDetailDetailsVo.setTitleSid(techSid); + asTechTitleDetailDetailsVo.setTitleNameKey(asTechTitle.getTitleNameKey()); + asTechTitleDetailDetailsVo.setTitleNameValue(asTechTitle.getTitleNameValue()); + asTechTitleDetailDetailsVo.setWeight(asTechTitle.getWeight()); + asTechTitleDetailDetailsVos.add(asTechTitleDetailDetailsVo); + } + asTechTitleApplyDetailsVo.setAsTechTitleDetailDetailsList(asTechTitleDetailDetailsVos); + return asTechTitleApplyDetailsVo; + } + + public ResultBean submitApply(SubmitTechTitleApplyDto dto) { + ResultBean rb = ResultBean.fireFail(); + AsTechTitleApply asTechTitleApply = fetchBySid(dto.getSid()); + int r = submitBusinessData(dto, asTechTitleApply); + if (r == 3) { + return rb.setMsg("该申请不存在"); + } + if (r == 0) { + return rb.setMsg("操作失败!提交的数据不一致"); + } + String businessSid = saveOrUpdateDto(dto).getData(); + asTechTitleApply = fetchBySid(businessSid); + //创建BusinessVariables实体对象 + BusinessVariables bv = new BusinessVariables(); + //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 + Map variables = new HashMap<>(); + Map appMap = new HashMap<>(); + appMap.put("sid", businessSid); + variables.put("app", appMap); + //判断发起人是否为前台主管 + String createBySid = asTechTitleApply.getCreateBySid(); + List list = sysUserRoleFeign.getUserRoleSidByUserSid(createBySid).getData(); + variables.put("iszg", list.contains("f00a7338-a6a4-4712-ab85-ca211d56fb1f")); + //用户的部门全路径sid + SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(asTechTitleApply.getDeptSid()).getData(); + if (sysOrganization != null) { + bv.setOrgSidPath(sysOrganization.getOrgSidPath()); + } + bv.setBusinessSid(businessSid); + bv.setUserSid(dto.getCreateBySid()); + bv.setFormVariables(variables); + if (r == 1) { + //ToDo:流程定义id + bv.setModelId(ProcDefEnum.ASTECHTITLEAPPLY.getProDefId()); + ResultBean voResultBean = flowFeign.startProcess(bv); + if (!voResultBean.getSuccess()) { + return rb.setMsg(voResultBean.getMsg()); + } + UpdateFlowFieldVo ufVo = voResultBean.getData(); + updateFlowFiled(BeanUtil.beanToMap(ufVo)); + //提交后修改职称管理中备案状态为备案中 + List asTechTitleDetailDetailsList = dto.getAsTechTitleDetailDetailsList(); + for (AsTechTitleDetailDto asTechTitleDetailDto : asTechTitleDetailDetailsList) { + asTechTitleService.updateState(asTechTitleDetailDto.getTitleSid(), "2"); + } + asTechTitleApply = fetchBySid(businessSid); + //==================================添加线程 + try { + ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() + .setNameFormat("demo-pool-%d").build(); + ExecutorService pool = new ThreadPoolExecutor(2, 100, + 0L, TimeUnit.MILLISECONDS, + new LinkedBlockingQueue(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); + AsTechTitleApply finalAsTechTitleApply = asTechTitleApply; + Future future1 = pool.submit(() -> { + //极光推送 + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("维修技师职称备案申请"); + messageFlowableQuery.setMsgContent(finalAsTechTitleApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + messageFlowableQuery.setMsgTitle("维修技师职称备案申请"); + ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); + }); + } catch (Exception e) { + e.printStackTrace(); + } + //==================================添加线程 + return voResultBean; + } + if (r == 2) { + // ToDo:驳回到发起人后再次提交 + if (StringUtils.isBlank(dto.getInstanceId())) { + return rb.setMsg("参数错误:instanceId"); + } + bv.setTaskId(asTechTitleApply.getTaskId()); + bv.setTaskDefKey(asTechTitleApply.getNodeId()); + bv.setComment("重新提交"); + bv.setInstanceId(dto.getInstanceId()); + return complete(bv); + } + return rb; + } + + private int updateFlowFiled(Map beanToMap) { + return baseMapper.updateFlowFiled(beanToMap); + } - public ResultBean submitApply(SubmitTechTitleApplyDto dto) { - ResultBean rb = ResultBean.fireFail(); - AsTechTitleApply asTechTitleApply = fetchBySid(dto.getSid()); - int r = submitBusinessData(dto, asTechTitleApply); - if (r == 3) { - return rb.setMsg("该申请不存在"); - } - if (r == 0) { - return rb.setMsg("操作失败!提交的数据不一致"); - } - String businessSid = saveOrUpdateDto(dto).getData(); - asTechTitleApply = fetchBySid(businessSid); - //创建BusinessVariables实体对象 - BusinessVariables bv = new BusinessVariables(); - //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 - Map variables = new HashMap<>(); - Map appMap = new HashMap<>(); - appMap.put("sid", businessSid); - variables.put("app", appMap); - //判断发起人是否为前台主管 - String createBySid = asTechTitleApply.getCreateBySid(); - List list = sysUserRoleFeign.getUserRoleSidByUserSid(createBySid).getData(); - variables.put("iszg", list.contains("f00a7338-a6a4-4712-ab85-ca211d56fb1f")); - //用户的部门全路径sid - SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(asTechTitleApply.getDeptSid()).getData(); - if (sysOrganization != null) { - bv.setOrgSidPath(sysOrganization.getOrgSidPath()); - } - bv.setBusinessSid(businessSid); - bv.setUserSid(dto.getCreateBySid()); - bv.setFormVariables(variables); - if (r == 1) { - //ToDo:流程定义id - bv.setModelId(ProcDefEnum.ASTECHTITLEAPPLY.getProDefId()); - ResultBean voResultBean = flowFeign.startProcess(bv); - if (!voResultBean.getSuccess()) { - return rb.setMsg(voResultBean.getMsg()); - } - UpdateFlowFieldVo ufVo = voResultBean.getData(); - updateFlowFiled(BeanUtil.beanToMap(ufVo)); - //提交后修改职称管理中备案状态为备案中 - List asTechTitleDetailDetailsList = dto.getAsTechTitleDetailDetailsList(); - for (AsTechTitleDetailDto asTechTitleDetailDto : asTechTitleDetailDetailsList) { - asTechTitleService.updateState(asTechTitleDetailDto.getTitleSid(),"2"); - } - asTechTitleApply = fetchBySid(businessSid); - //==================================添加线程 - try { - ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() - .setNameFormat("demo-pool-%d").build(); - ExecutorService pool = new ThreadPoolExecutor(2, 100, - 0L, TimeUnit.MILLISECONDS, - new LinkedBlockingQueue(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); - AsTechTitleApply finalAsTechTitleApply = asTechTitleApply; - Future future1 = pool.submit(() -> { - //极光推送 - MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); - MessageFlowVo messageFlowVo = new MessageFlowVo(); - BeanUtil.copyProperties(ufVo, messageFlowVo); - messageFlowableQuery.setUfVo(messageFlowVo); - messageFlowableQuery.setAppMap(appMap); - messageFlowableQuery.setBusinessSid(businessSid); - messageFlowableQuery.setModuleName("维修技师职称备案申请"); - messageFlowableQuery.setMsgContent(finalAsTechTitleApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); - messageFlowableQuery.setMsgTitle("维修技师职称备案申请"); - ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); - }); - } catch (Exception e) { - e.printStackTrace(); - } - //==================================添加线程 - return voResultBean; - } - if (r == 2) { - // ToDo:驳回到发起人后再次提交 - if (StringUtils.isBlank(dto.getInstanceId())) { - return rb.setMsg("参数错误:instanceId"); - } - bv.setTaskId(asTechTitleApply.getTaskId()); - bv.setTaskDefKey(asTechTitleApply.getNodeId()); - bv.setComment("重新提交"); - bv.setInstanceId(dto.getInstanceId()); - return complete(bv); - } - return rb; - } - private int updateFlowFiled(Map beanToMap) { - return baseMapper.updateFlowFiled(beanToMap); - } + private int submitBusinessData(SubmitTechTitleApplyDto dto, AsTechTitleApply asTechTitleApply) { + int r = 0; + if (StringUtils.isBlank(dto.getSid())) { + r = 1; + } else { + if (asTechTitleApply != null) { + String businessTaskId = asTechTitleApply.getTaskId(); + if (StringUtils.isBlank(businessTaskId) && StringUtils.isBlank(dto.getTaskId())) { + //新提交 + r = 1; + } else if (StringUtils.isNotBlank(businessTaskId) && businessTaskId.equals(dto.getTaskId())) { + //二次提交//只有数据一致的时候才能进行下一步 + r = 2; + } + } else { + r = 3; + } + } + return r; + } + + public ResultBean complete(BusinessVariables bv) { + ResultBean rb = ResultBean.fireFail(); + String businessSid = bv.getBusinessSid(); + AsTechTitleApply asTechTitleApply = fetchBySid(businessSid); + Map variables = new HashMap<>(); + //判断发起人是否为前台主管 + String createBySid = asTechTitleApply.getCreateBySid(); + List list = sysUserRoleFeign.getUserRoleSidByUserSid(createBySid).getData(); + variables.put("iszg", list.contains("f00a7338-a6a4-4712-ab85-ca211d56fb1f")); + Map appMap = new HashMap<>(); + appMap.put("sid", businessSid); + variables.put("app", appMap); + bv.setFormVariables(variables); + SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(asTechTitleApply.getDeptSid()).getData(); + if (sysOrganization != null) { + bv.setOrgSidPath(sysOrganization.getOrgSidPath()); + } + bv.setModelId(asTechTitleApply.getProcDefId()); + if (bv.getTaskId().equals(asTechTitleApply.getTaskId())) { + ResultBean resultBean = flowFeign.handleProsess(bv); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + UpdateFlowFieldVo ufVo = resultBean.getData(); + updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); + if ("Event_end".equals(resultBean.getData().getTaskDefKey())) { + //办结后修改职称管理中备案状态为已备案 + List asTechTitleDetailDetailsVos = asTechTitleDetailService.selByMainSid(businessSid); + for (AsTechTitleDetailDetailsVo asTechTitleDetailDetailsVo : asTechTitleDetailDetailsVos) { + AsTechTitleDetail asTechTitleDetail = asTechTitleDetailService.fetchBySid(asTechTitleDetailDetailsVo.getSid()); + String techSid = asTechTitleDetail.getTechSid(); + String techName = asTechTitleDetail.getTechName(); + asTechTitleDetailDetailsVo.setTechSids(Arrays.asList(techSid.split(","))); + asTechTitleDetailDetailsVo.setTechNames(Arrays.asList(techName.split(","))); + List glTechSids = new ArrayList<>(); + List glTechNames = new ArrayList<>(); + AsTechTitle asTechTitle = asTechTitleService.fetchBySid(asTechTitleDetailDetailsVo.getTitleSid()); + if (StringUtils.isNotBlank(asTechTitle.getTechSid())) { + glTechSids = Arrays.asList(asTechTitle.getTechSid().split(",")); + } + List techSids = asTechTitleDetailDetailsVo.getTechSids(); + List cyTechSids = (List) CollectionUtils.subtract(techSids, glTechSids); + glTechSids.addAll(cyTechSids); + Iterator iterator = glTechSids.iterator(); + while (iterator.hasNext()){ + String next = iterator.next(); + SysUserVo userVo = sysUserFeign.fetchBySid(next).getData(); + List roleSids = sysUserRoleFeign.getUserRoleSidByUserSid(next).getData(); + if (roleSids.contains("de8bfb73-8a08-46bc-beab-f981bf8c8de8")){ + AsTechTitle asTechTitle1 = asTechTitleService.selLikeTechSid(next); + if (asTechTitle1 != null){ + List sids = Arrays.asList(asTechTitle.getTechSid()); + List names = Arrays.asList(asTechTitle.getTechName()); + sids.remove(next); + names.remove(userVo.getName()); + asTechTitleService.updateTech(asTechTitle1.getSid(), StringUtils.join(sids, ","), StringUtils.join(names, ",")); + } + glTechNames.add(userVo.getName()); + }else { + glTechSids.remove(next); + continue; + } + } + asTechTitleService.updateTech(asTechTitleDetailDetailsVo.getTitleSid(), StringUtils.join(glTechSids, ","), StringUtils.join(glTechNames, ",")); + asTechTitleService.updateState(asTechTitleDetailDetailsVo.getTitleSid(), "0"); + asTechTitleService.updateIsBa(asTechTitleDetailDetailsVo.getTitleSid(), 1); + } + } else { + //极光推送 + asTechTitleApply = fetchBySid(businessSid); + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + messageFlowVo.setProcDefId(asTechTitleApply.getProcDefId()); + messageFlowVo.setProcInsId(asTechTitleApply.getProcInstId()); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("维修技师职称备案申请"); + messageFlowableQuery.setMsgContent(asTechTitleApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + messageFlowableQuery.setMsgTitle("维修技师职称备案申请"); + ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); + } + return rb.success().setData(resultBean.getData()); + } else { + return rb.setMsg("操作失败!提交的数据不一致"); + } + } + public static void main(String[] args) { + List glTechSids = Arrays.asList("li","wang","tt"); + List techSids = Arrays.asList("li","pp"); - private int submitBusinessData(SubmitTechTitleApplyDto dto, AsTechTitleApply asTechTitleApply) { - int r = 0; - if (StringUtils.isBlank(dto.getSid())) { - r = 1; - } else { - if (asTechTitleApply != null) { - String businessTaskId = asTechTitleApply.getTaskId(); - if (StringUtils.isBlank(businessTaskId) && StringUtils.isBlank(dto.getTaskId())) { - //新提交 - r = 1; - } else if (StringUtils.isNotBlank(businessTaskId) && businessTaskId.equals(dto.getTaskId())) { - //二次提交//只有数据一致的时候才能进行下一步 - r = 2; - } - } else { - r = 3; - } - } - return r; - } + List cyTechSids = (List) CollectionUtils.subtract(techSids, glTechSids); - public ResultBean complete(BusinessVariables bv) { - ResultBean rb = ResultBean.fireFail(); - String businessSid = bv.getBusinessSid(); - AsTechTitleApply asTechTitleApply = fetchBySid(businessSid); - Map variables = new HashMap<>(); - //判断发起人是否为前台主管 - String createBySid = asTechTitleApply.getCreateBySid(); - List list = sysUserRoleFeign.getUserRoleSidByUserSid(createBySid).getData(); - variables.put("iszg", list.contains("f00a7338-a6a4-4712-ab85-ca211d56fb1f")); - Map appMap = new HashMap<>(); - appMap.put("sid", businessSid); - variables.put("app", appMap); - bv.setFormVariables(variables); - SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(asTechTitleApply.getDeptSid()).getData(); - if (sysOrganization != null) { - bv.setOrgSidPath(sysOrganization.getOrgSidPath()); - } - bv.setModelId(asTechTitleApply.getProcDefId()); - if (bv.getTaskId().equals(asTechTitleApply.getTaskId())) { - ResultBean resultBean = flowFeign.handleProsess(bv); - if (!resultBean.getSuccess()) { - return rb.setMsg(resultBean.getMsg()); - } - UpdateFlowFieldVo ufVo = resultBean.getData(); - updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); - if ("Event_end".equals(resultBean.getData().getTaskDefKey())) { - //办结后修改职称管理中备案状态为已备案 - List asTechTitleDetailDetailsVos = asTechTitleDetailService.selByMainSid(businessSid); - for (AsTechTitleDetailDetailsVo asTechTitleDetailDetailsVo : asTechTitleDetailDetailsVos) { - asTechTitleService.updateState(asTechTitleDetailDetailsVo.getTitleSid(),"0"); - } - } else { - //极光推送 - asTechTitleApply = fetchBySid(businessSid); - MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); - MessageFlowVo messageFlowVo = new MessageFlowVo(); - BeanUtil.copyProperties(ufVo, messageFlowVo); - messageFlowVo.setProcDefId(asTechTitleApply.getProcDefId()); - messageFlowVo.setProcInsId(asTechTitleApply.getProcInstId()); - messageFlowableQuery.setUfVo(messageFlowVo); - messageFlowableQuery.setAppMap(appMap); - messageFlowableQuery.setBusinessSid(businessSid); - messageFlowableQuery.setModuleName("维修技师职称备案申请"); - messageFlowableQuery.setMsgContent(asTechTitleApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); - messageFlowableQuery.setMsgTitle("维修技师职称备案申请"); - ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); - } - return rb.success().setData(resultBean.getData()); - } else { - return rb.setMsg("操作失败!提交的数据不一致"); - } - } + System.out.println("差集为:" + cyTechSids); + } - public ResultBean> getPreviousNodesForReject(TechTitleApplyNodeQuery query) { - ResultBean> rb = ResultBean.fireFail(); - BusinessVariables bv = new BusinessVariables(); - BeanUtil.copyProperties(query, bv); - //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 - Map variables = new HashMap<>(); - //查询业务信息 - AsTechTitleApply asTechTitleApply = fetchBySid(query.getBusinessSid()); - //判断发起人是否为前台主管 - String createBySid = asTechTitleApply.getCreateBySid(); - List list = sysUserRoleFeign.getUserRoleSidByUserSid(createBySid).getData(); - variables.put("iszg", list.contains("f00a7338-a6a4-4712-ab85-ca211d56fb1f")); - bv.setModelId(asTechTitleApply.getProcDefId()); - bv.setFormVariables(variables); - //======================================= - ResultBean>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv); - //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给TemplateApplyNodeVo - List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), TechTitleApplyNodeVo.class)).collect(Collectors.toList()); - return rb.success().setData(voList); - } + public ResultBean> getPreviousNodesForReject(TechTitleApplyNodeQuery query) { + ResultBean> rb = ResultBean.fireFail(); + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 + Map variables = new HashMap<>(); + //查询业务信息 + AsTechTitleApply asTechTitleApply = fetchBySid(query.getBusinessSid()); + //判断发起人是否为前台主管 + String createBySid = asTechTitleApply.getCreateBySid(); + List list = sysUserRoleFeign.getUserRoleSidByUserSid(createBySid).getData(); + variables.put("iszg", list.contains("f00a7338-a6a4-4712-ab85-ca211d56fb1f")); + bv.setModelId(asTechTitleApply.getProcDefId()); + bv.setFormVariables(variables); + //======================================= + ResultBean>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv); + //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给TemplateApplyNodeVo + List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), TechTitleApplyNodeVo.class)).collect(Collectors.toList()); + return rb.success().setData(voList); + } - public ResultBean> getNextNodesForSubmit(TechTitleApplyNodeQuery query) { - ResultBean> rb = ResultBean.fireFail(); - BusinessVariables bv = new BusinessVariables(); - BeanUtil.copyProperties(query, bv); - //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 - Map variables = new HashMap<>(); - //查询业务信息 - AsTechTitleApply asTechTitleApply = fetchBySid(query.getBusinessSid()); - //判断发起人是否为前台主管 - String createBySid = asTechTitleApply.getCreateBySid(); - List list = sysUserRoleFeign.getUserRoleSidByUserSid(createBySid).getData(); - variables.put("iszg", list.contains("f00a7338-a6a4-4712-ab85-ca211d56fb1f")); - bv.setModelId(asTechTitleApply.getProcDefId()); - bv.setFormVariables(variables); - //======================================= - ResultBean>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv); - //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给TemplateApplyNodeVo - List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), TechTitleApplyNodeVo.class)).collect(Collectors.toList()); - return rb.success().setData(voList); - } + public ResultBean> getNextNodesForSubmit(TechTitleApplyNodeQuery query) { + ResultBean> rb = ResultBean.fireFail(); + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 + Map variables = new HashMap<>(); + //查询业务信息 + AsTechTitleApply asTechTitleApply = fetchBySid(query.getBusinessSid()); + //判断发起人是否为前台主管 + String createBySid = asTechTitleApply.getCreateBySid(); + List list = sysUserRoleFeign.getUserRoleSidByUserSid(createBySid).getData(); + variables.put("iszg", list.contains("f00a7338-a6a4-4712-ab85-ca211d56fb1f")); + bv.setModelId(asTechTitleApply.getProcDefId()); + bv.setFormVariables(variables); + //======================================= + ResultBean>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv); + //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给TemplateApplyNodeVo + List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), TechTitleApplyNodeVo.class)).collect(Collectors.toList()); + return rb.success().setData(voList); + } - public ResultBean taskReject(TechTitleApplyTaskQuery query) { - ResultBean rb = ResultBean.fireFail(); - String businessSid = query.getBusinessSid(); - AsTechTitleApply asTechTitleApply = fetchBySid(businessSid); - if (asTechTitleApply == null) { - return rb.setMsg("该申请不存在"); - } - String businessTaskId = asTechTitleApply.getTaskId(); - if (StringUtils.isNotBlank(businessTaskId)) { - if (businessTaskId.equals(query.getTaskId())) { - if (StringUtils.isBlank(query.getComment())) { - return rb.setMsg("请填写意见"); - } - if (StringUtils.isBlank(query.getUserSid())) { - return rb.setMsg("参数错误:userSid"); - } - FlowTaskVo flowTaskVo = new FlowTaskVo(); - BeanUtil.copyProperties(query, flowTaskVo); - Map variables = new HashMap<>(); - Map appMap = new HashMap<>(); - appMap.put("sid", businessSid); - variables.put("app", appMap); - //判断发起人是否为前台主管 - String createBySid = asTechTitleApply.getCreateBySid(); - List list = sysUserRoleFeign.getUserRoleSidByUserSid(createBySid).getData(); - variables.put("iszg", list.contains("f00a7338-a6a4-4712-ab85-ca211d56fb1f")); - flowTaskVo.setValues(variables); - ResultBean resultBean = flowableFeign.taskReject(flowTaskVo); - if (!resultBean.getSuccess()) { - return rb.setMsg(resultBean.getMsg()); - } - UpdateFlowFieldVo ufVo = resultBean.getData(); - Map map = BeanUtil.beanToMap(ufVo); - //更新业务中的流程相关的参数 - updateFlowFiled(map); - //极光推送 - asTechTitleApply = fetchBySid(businessSid); - MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); - MessageFlowVo messageFlowVo = new MessageFlowVo(); - BeanUtil.copyProperties(ufVo, messageFlowVo); - String procId = asTechTitleApply.getProcInstId(); - messageFlowVo.setProcInsId(procId); - messageFlowVo.setProcDefId(asTechTitleApply.getProcDefId()); - messageFlowableQuery.setUfVo(messageFlowVo); - messageFlowableQuery.setAppMap(appMap); - messageFlowableQuery.setBusinessSid(businessSid); - messageFlowableQuery.setModuleName("维修技师职称备案申请"); - ResultBean> listResultBean = flowTaskFeign.getLatestTasks(procId); - String nextName = listResultBean.getData().get(0).getName_(); - String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_(); - if ("发起申请".equals(nextName)) { - messageFlowableQuery.setMsgContent("您提交的" + messageFlowableQuery.getModuleName() + "已被驳回,请重新提交"); - } else { - messageFlowableQuery.setMsgContent(asTechTitleApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); - } + public ResultBean taskReject(TechTitleApplyTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + String businessSid = query.getBusinessSid(); + AsTechTitleApply asTechTitleApply = fetchBySid(businessSid); + if (asTechTitleApply == null) { + return rb.setMsg("该申请不存在"); + } + String businessTaskId = asTechTitleApply.getTaskId(); + if (StringUtils.isNotBlank(businessTaskId)) { + if (businessTaskId.equals(query.getTaskId())) { + if (StringUtils.isBlank(query.getComment())) { + return rb.setMsg("请填写意见"); + } + if (StringUtils.isBlank(query.getUserSid())) { + return rb.setMsg("参数错误:userSid"); + } + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + Map variables = new HashMap<>(); + Map appMap = new HashMap<>(); + appMap.put("sid", businessSid); + variables.put("app", appMap); + //判断发起人是否为前台主管 + String createBySid = asTechTitleApply.getCreateBySid(); + List list = sysUserRoleFeign.getUserRoleSidByUserSid(createBySid).getData(); + variables.put("iszg", list.contains("f00a7338-a6a4-4712-ab85-ca211d56fb1f")); + flowTaskVo.setValues(variables); + ResultBean resultBean = flowableFeign.taskReject(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + UpdateFlowFieldVo ufVo = resultBean.getData(); + Map map = BeanUtil.beanToMap(ufVo); + //更新业务中的流程相关的参数 + updateFlowFiled(map); + //极光推送 + asTechTitleApply = fetchBySid(businessSid); + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + String procId = asTechTitleApply.getProcInstId(); + messageFlowVo.setProcInsId(procId); + messageFlowVo.setProcDefId(asTechTitleApply.getProcDefId()); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("维修技师职称备案申请"); + ResultBean> listResultBean = flowTaskFeign.getLatestTasks(procId); + String nextName = listResultBean.getData().get(0).getName_(); + String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_(); + if ("发起申请".equals(nextName)) { + messageFlowableQuery.setMsgContent("您提交的" + messageFlowableQuery.getModuleName() + "已被驳回,请重新提交"); + } else { + messageFlowableQuery.setMsgContent(asTechTitleApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + } - messageFlowableQuery.setMsgTitle("维修技师职称备案申请"); - ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); - return rb.success(); - } - } - return rb.setMsg("操作失败!提交的数据不一致!"); - } + messageFlowableQuery.setMsgTitle("维修技师职称备案申请"); + ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); + return rb.success(); + } + } + return rb.setMsg("操作失败!提交的数据不一致!"); + } - public ResultBean revokeProcess(TechTitleApplyTaskQuery query) { - ResultBean rb = ResultBean.fireFail(); - if (StringUtils.isBlank(query.getUserSid())) { - return rb.setMsg("参数错误:userSid"); - } - AsTechTitleApply asTechTitleApply = fetchBySid(query.getBusinessSid()); - String businessTaskId = asTechTitleApply.getTaskId(); - if (StringUtils.isNotBlank(businessTaskId)) { - if (businessTaskId.equals(query.getTaskId())) { - FlowTaskVo flowTaskVo = new FlowTaskVo(); - BeanUtil.copyProperties(query, flowTaskVo); - ResultBean resultBean = flowableFeign.revokeProcess(flowTaskVo); - if (!resultBean.getSuccess()) { - return rb.setMsg(resultBean.getMsg()); - } - updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); - return rb.success().setData(resultBean.getData()); - } - } - return rb.setMsg("操作失败,提交的数据不一致!"); - } + public ResultBean revokeProcess(TechTitleApplyTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + if (StringUtils.isBlank(query.getUserSid())) { + return rb.setMsg("参数错误:userSid"); + } + AsTechTitleApply asTechTitleApply = fetchBySid(query.getBusinessSid()); + String businessTaskId = asTechTitleApply.getTaskId(); + if (StringUtils.isNotBlank(businessTaskId)) { + if (businessTaskId.equals(query.getTaskId())) { + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + ResultBean resultBean = flowableFeign.revokeProcess(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); + return rb.success().setData(resultBean.getData()); + } + } + return rb.setMsg("操作失败,提交的数据不一致!"); + } - public ResultBean breakProcess(TechTitleApplyTaskQuery query) { - ResultBean rb = ResultBean.fireFail(); - if (StringUtils.isBlank(query.getInstanceId())) { - return rb.setMsg("参数错误:instanceId"); - } - if (StringUtils.isBlank(query.getUserSid())) { - return rb.setMsg("参数错误:userSid"); - } - if (StringUtils.isBlank(query.getComment())) { - return rb.setMsg("请填写意见"); - } - AsTechTitleApply asTechTitleApply = fetchBySid(query.getBusinessSid()); - String businessTaskId = asTechTitleApply.getTaskId(); - if (StringUtils.isNotBlank(businessTaskId)) { - if (query.getUserSid().equals(asTechTitleApply.getCreateBySid())) { - FlowTaskVo flowTaskVo = new FlowTaskVo(); - BeanUtil.copyProperties(query, flowTaskVo); - ResultBean resultBean = flowableFeign.breakProcess(flowTaskVo); - if (!resultBean.getSuccess()) { - return rb.setMsg(resultBean.getMsg()); - } - Map map = BeanUtil.beanToMap(resultBean.getData()); - updateFlowFiled(map); - //终止后修改职称管理中备案状态为未备案 - List asTechTitleDetailDetailsVos = asTechTitleDetailService.selByMainSid(query.getBusinessSid()); - for (AsTechTitleDetailDetailsVo asTechTitleDetailDetailsVo : asTechTitleDetailDetailsVos) { - asTechTitleService.updateState(asTechTitleDetailDetailsVo.getTitleSid(),"1"); - } - return rb.success().setData(resultBean.getData()); - } else { - if (businessTaskId.equals(query.getTaskId())) { - FlowTaskVo flowTaskVo = new FlowTaskVo(); - BeanUtil.copyProperties(query, flowTaskVo); - ResultBean resultBean = flowableFeign.breakProcess(flowTaskVo); - if (!resultBean.getSuccess()) { - return rb.setMsg(resultBean.getMsg()); - } - Map map = BeanUtil.beanToMap(resultBean.getData()); - updateFlowFiled(map); - //终止后修改职称管理中备案状态为未备案 - List asTechTitleDetailDetailsVos = asTechTitleDetailService.selByMainSid(query.getBusinessSid()); - for (AsTechTitleDetailDetailsVo asTechTitleDetailDetailsVo : asTechTitleDetailDetailsVos) { - asTechTitleService.updateState(asTechTitleDetailDetailsVo.getTitleSid(),"1"); - } - return rb.success().setData(resultBean.getData()); - } - } - } - return rb.setMsg("操作失败!提交的数据不一致!"); - } + public ResultBean breakProcess(TechTitleApplyTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + if (StringUtils.isBlank(query.getInstanceId())) { + return rb.setMsg("参数错误:instanceId"); + } + if (StringUtils.isBlank(query.getUserSid())) { + return rb.setMsg("参数错误:userSid"); + } + if (StringUtils.isBlank(query.getComment())) { + return rb.setMsg("请填写意见"); + } + AsTechTitleApply asTechTitleApply = fetchBySid(query.getBusinessSid()); + String businessTaskId = asTechTitleApply.getTaskId(); + if (StringUtils.isNotBlank(businessTaskId)) { + if (query.getUserSid().equals(asTechTitleApply.getCreateBySid())) { + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + ResultBean resultBean = flowableFeign.breakProcess(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + Map map = BeanUtil.beanToMap(resultBean.getData()); + updateFlowFiled(map); + //终止后修改职称管理中备案状态为未备案 + List asTechTitleDetailDetailsVos = asTechTitleDetailService.selByMainSid(query.getBusinessSid()); + for (AsTechTitleDetailDetailsVo asTechTitleDetailDetailsVo : asTechTitleDetailDetailsVos) { + asTechTitleService.updateState(asTechTitleDetailDetailsVo.getTitleSid(), "1"); + } + return rb.success().setData(resultBean.getData()); + } else { + if (businessTaskId.equals(query.getTaskId())) { + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + ResultBean resultBean = flowableFeign.breakProcess(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + Map map = BeanUtil.beanToMap(resultBean.getData()); + updateFlowFiled(map); + //终止后修改职称管理中备案状态为未备案 + List asTechTitleDetailDetailsVos = asTechTitleDetailService.selByMainSid(query.getBusinessSid()); + for (AsTechTitleDetailDetailsVo asTechTitleDetailDetailsVo : asTechTitleDetailDetailsVos) { + asTechTitleService.updateState(asTechTitleDetailDetailsVo.getTitleSid(), "1"); + } + return rb.success().setData(resultBean.getData()); + } + } + } + return rb.setMsg("操作失败!提交的数据不一致!"); + } - public ResultBean delegate(TechTitleApplyDelegateQuery query) { - ResultBean rb = ResultBean.fireFail(); - FlowDelegateQuery delegateQuery = new FlowDelegateQuery(); - BeanUtil.copyProperties(query, delegateQuery); - flowFeign.delegate(delegateQuery); - return rb.success(); - } + public ResultBean delegate(TechTitleApplyDelegateQuery query) { + ResultBean rb = ResultBean.fireFail(); + FlowDelegateQuery delegateQuery = new FlowDelegateQuery(); + BeanUtil.copyProperties(query, delegateQuery); + flowFeign.delegate(delegateQuery); + return rb.success(); + } } \ No newline at end of file diff --git a/yxt-crm-biz/src/main/java/com/yxt/crm/feign/flowable/flow/ProcDefEnum.java b/yxt-crm-biz/src/main/java/com/yxt/crm/feign/flowable/flow/ProcDefEnum.java index bf62a2f987..67ee86cef8 100644 --- a/yxt-crm-biz/src/main/java/com/yxt/crm/feign/flowable/flow/ProcDefEnum.java +++ b/yxt-crm-biz/src/main/java/com/yxt/crm/feign/flowable/flow/ProcDefEnum.java @@ -7,22 +7,7 @@ public enum ProcDefEnum { /***************************正式流程id***********************************/ - ASARREARSOUTAPPLY("欠款出厂申请", "process_d0eyl7ep:2:14197520"), - ASOLDPARTRETURNAPPLY("旧件返厂申请", "process_9ijbdmdb:1:14177556"), - ASOLDPARTHANDLEAPPLY("旧件处理申请", "process_hxr0wezs:1:14177560"), - REVERSESETTLEAPPLY("工单反结算申请", "process_g3r02po8:3:14197552"), - ASBUSCLAIMINVOICEBILL("索赔单开票申请", "process_czty2ysj:2:14197524"), - ASBUSCLAIMCHECKAPPLY("索赔单调整申请", "process_i6ln3qcd:2:14197528"), - ASBWDIFFAPPLY("工单应收调差申请", "process_b1thoh6n:2:14197532"), - ASBWINVOICEAPPLY("工单开票申请", "process_ldw1bs5t:1:14197536"), - ASTECHTITLEAPPLY("维修技师职称备案申请", "process_kl8rqdjf:1:14197604"), - BILLSETTLEAPPLY("工单结算申请", "process_q2p7s99n:2:14900004"), - ASHOSESUPPAPPLY("工时提成抵顶配件费用申请", "process_z2d1n43e:1:14197592"), - ASSERVICEITEMAPPLY("维修项目备案申请", "process_mbiz75zg:1:14197572"), - ASSERVICEACCOMMAPPLY("配件销售提成备案申请", "process_89i56wrn:1:14197576"), - ASSTANDRECORDAPPLY("合作二级站备案申请", "process_e5yugvlx:2:14197596"), ENTERPRISEAPPLY("定点企业备案", "process_tvywp9ri:2:14197516"), - ; diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/api/AdExpatriatesApplyRest.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/api/AdExpatriatesApplyRest.java index 4dedfc8396..a01ab6771a 100644 --- a/yxt-oa/src/main/java/com/yxt/anrui/oa/api/AdExpatriatesApplyRest.java +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/api/AdExpatriatesApplyRest.java @@ -26,25 +26,16 @@ package com.yxt.anrui.oa.api; import com.yxt.anrui.oa.biz.adexpatriatesapply.*; -import com.yxt.anrui.oa.biz.hrhireapply.HrHireApplyDetailVo; -import com.yxt.anrui.oa.biz.hrhireapply.HrHireApplyDto; -import com.yxt.anrui.oa.biz.hrhireapply.HrHireApplyVo; 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.NodeVo; import com.yxt.anrui.oa.biz.oaform.flowable.TaskDto; -import com.yxt.anrui.oa.biz.oamendapply.OaMendApplyDto; -import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; -import com.yxt.common.core.vo.PagerVo; 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; -import java.util.List; @Api(tags = "驻外人员认定申请") @RestController diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/api/AdLeasehostApplyRest.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/api/AdLeasehostApplyRest.java new file mode 100644 index 0000000000..11e734911d --- /dev/null +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/api/AdLeasehostApplyRest.java @@ -0,0 +1,105 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.oa.api; + +import com.yxt.anrui.oa.biz.adexpatriatesapply.AdExpatriatesApplyDto; +import com.yxt.anrui.oa.biz.adleasehostapply.*; +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; + +@Api(tags = "宿舍租赁申请") +@RestController +@RequestMapping("v1/adleasehostapply") +public class AdLeasehostApplyRest { + + @Autowired + private AdLeasehostApplyService adLeasehostApplyService; + + @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 adLeasehostApplyService.getSaveInit(userSid, orgPath); + } else { + // 执行修改初始化 + return adLeasehostApplyService.getUpdateInit(sid); + } + } + + @ApiOperation("新增或修改") + @PostMapping("/save") + public ResultBean save(@RequestBody AdLeasehostApplyDto dto) { + return adLeasehostApplyService.saveOrUpdateDto(dto); + } + + @ApiOperation("详情") + @GetMapping("/details/{sid}") + ResultBean details(@PathVariable("sid") String sid + , @RequestParam(value = "application", required = false) String application) { + return adLeasehostApplyService.details(sid,application); + } + + @ApiOperation("提交审批流程") + @PostMapping("/submit") + public ResultBean submit(@RequestBody AdLeasehostApplyDto dto) { + return adLeasehostApplyService.submit(dto); + } + + @ApiOperation(value = "办理(同意)") + @PutMapping("/complete") + public ResultBean complete(@Valid @RequestBody CompleteDto dto) { + return adLeasehostApplyService.complete(dto); + } + + @ApiOperation(value = "驳回任务") + @PutMapping(value = "/reject") + public ResultBean reject(@Valid @RequestBody TaskDto dto) { + return adLeasehostApplyService.reject(dto); + } + + @ApiOperation("获取流程操作标题") + @GetMapping("/getFlowOperateTitle") + @ResponseBody + ResultBean getFlowOperateTitle(@SpringQueryMap NodeQuery query) { + return adLeasehostApplyService.getFlowOperateTitle(query); + } +} diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/api/AdLeasehostDetailRest.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/api/AdLeasehostDetailRest.java new file mode 100644 index 0000000000..dcb5833f03 --- /dev/null +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/api/AdLeasehostDetailRest.java @@ -0,0 +1,36 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.oa.api; + +import io.swagger.annotations.Api; +import org.springframework.web.bind.annotation.*; + +@Api(tags = "宿舍租赁列表") +@RestController +@RequestMapping("v1/adleasehostdetail") +public class AdLeasehostDetailRest { + +} diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostapply/AdLeasehostApply.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostapply/AdLeasehostApply.java new file mode 100644 index 0000000000..6ebe5df68c --- /dev/null +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostapply/AdLeasehostApply.java @@ -0,0 +1,58 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.oa.biz.adleasehostapply; + +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; + +/** + * Project: yxt-oa(宿舍租赁)
+ * File: AdLeasehostApply.java
+ * Class: com.yxt.anrui.oa.api.adleasehostapply.AdLeasehostApply
+ * Description: 宿舍租赁申请.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2025-02-17 14:11:50
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Data +@ApiModel(value = "宿舍租赁申请", description = "宿舍租赁申请") +@TableName("ad_leasehost_apply") +public class AdLeasehostApply extends BaseEntity { + private static final long serialVersionUID = 1L; + + @ApiModelProperty("基础表单sid") + private String formSid; // 基础表单sid + @ApiModelProperty("关联审批sid列表,英文逗号分隔") + private String linkFormSids; // 关联审批sid列表,英文逗号分隔 + +} diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostapply/AdLeasehostApplyDetailsVo.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostapply/AdLeasehostApplyDetailsVo.java new file mode 100644 index 0000000000..ba388c89a5 --- /dev/null +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostapply/AdLeasehostApplyDetailsVo.java @@ -0,0 +1,65 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.oa.biz.adleasehostapply; + + +import com.yxt.anrui.oa.biz.adexpatriatesdetail.AdExpatriatesListDetailVo; +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; + +/** + * Project: yxt-oa(宿舍租赁)
+ * File: AdLeasehostApplyVo.java
+ * Class: com.yxt.anrui.oa.api.adleasehostapply.AdLeasehostApplyVo
+ * Description: 宿舍租赁申请 视图数据对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2025-02-17 14:11:50
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Data +@ApiModel(value = "宿舍租赁申请 视图数据详情", description = "宿舍租赁申请 视图数据详情") +public class AdLeasehostApplyDetailsVo implements Vo { + + @ApiModelProperty("备注") + private String remarks; + + @ApiModelProperty("图片") + private List files = new ArrayList<>(); + @ApiModelProperty("附件") + private List appes = new ArrayList<>(); + + private List list = new ArrayList<>(); +} \ No newline at end of file diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostapply/AdLeasehostApplyDto.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostapply/AdLeasehostApplyDto.java new file mode 100644 index 0000000000..829d8cf770 --- /dev/null +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostapply/AdLeasehostApplyDto.java @@ -0,0 +1,54 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.oa.biz.adleasehostapply; + +import com.yxt.anrui.oa.biz.adleasehostdetail.AdLeasehostDetailDto; +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; + +@Data +@ApiModel(value = "宿舍租赁申请 数据传输对象", description = "宿舍租赁申请 数据传输对象") +public class AdLeasehostApplyDto extends OaFormDto { + + @ApiModelProperty("备注") + private String remarks; + @ApiModelProperty("基础表单sid") + private String formSid; + @ApiModelProperty("关联审批单") + private String linkFormSids; + @ApiModelProperty("图片") + private List files = new ArrayList<>(); + @ApiModelProperty("文件") + private List appes = new ArrayList<>(); + + private List list = new ArrayList<>(); +} \ No newline at end of file diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostapply/AdLeasehostApplyMapper.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostapply/AdLeasehostApplyMapper.java new file mode 100644 index 0000000000..a8bed9c5ce --- /dev/null +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostapply/AdLeasehostApplyMapper.java @@ -0,0 +1,35 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.oa.biz.adleasehostapply; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface AdLeasehostApplyMapper extends BaseMapper { + + AdLeasehostApplyDetailsVo details(String sid); +} \ No newline at end of file diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostapply/AdLeasehostApplyMapper.xml b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostapply/AdLeasehostApplyMapper.xml new file mode 100644 index 0000000000..df3e54f122 --- /dev/null +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostapply/AdLeasehostApplyMapper.xml @@ -0,0 +1,9 @@ + + + + + + + \ No newline at end of file diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostapply/AdLeasehostApplyService.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostapply/AdLeasehostApplyService.java new file mode 100644 index 0000000000..7641aecd10 --- /dev/null +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostapply/AdLeasehostApplyService.java @@ -0,0 +1,307 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.oa.biz.adleasehostapply; + +import cn.hutool.core.bean.BeanUtil; +import com.yxt.anrui.oa.biz.adleasehostdetail.AdLeasehostDetailDto; +import com.yxt.anrui.oa.biz.adleasehostdetail.AdLeasehostDetailService; +import com.yxt.anrui.oa.biz.adleasehostdetail.AdLeasehostDetailVo; +import com.yxt.anrui.oa.biz.oaappendix.OaAppendixService; +import com.yxt.anrui.oa.biz.oaform.*; +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 org.apache.commons.lang3.StringUtils; +import com.yxt.common.base.service.MybatisBaseService; +import com.yxt.common.core.result.ResultBean; +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; + +@Service +public class AdLeasehostApplyService extends MybatisBaseService { + + @Autowired + private OaAppendixService oaAppendixService; + @Autowired + private OaFormService oaFormService; + @Autowired + private AdLeasehostDetailService adLeasehostDetailService; + @Autowired + private SysOrganizationFeign sysOrganizationFeign; + + public ResultBean getSaveInit(String userSid, String orgPath) { + ResultBean rb = ResultBean.fireFail(); + AdLeasehostApplyVo adLeasehostApplyVo = new AdLeasehostApplyVo(); + adLeasehostApplyVo.setCreateBySid(userSid); + adLeasehostApplyVo.setOrgSidPath(orgPath); + return rb.success().setData(adLeasehostApplyVo); + } + + public ResultBean getUpdateInit(String sid) { + ResultBean rb = ResultBean.fireFail(); + AdLeasehostApplyVo adLeasehostApplyVo = new AdLeasehostApplyVo(); + AdLeasehostApply adLeasehostApply = fetchBySid(sid); + if (adLeasehostApply == null) { + return rb.setMsg("该申请不存在"); + } +// adExpatriatesApplyVo.setTestPage(adExpatriatesApply.getTestPage()); + OaForm oaForm = oaFormService.fetchBySid(sid); + adLeasehostApplyVo.setTaskId(oaForm.getTaskId()); + adLeasehostApplyVo.setProcInsId(oaForm.getProcInstId()); + //根据部门sid获取orgPath并赋值 + SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(oaForm.getDeptSid()).getData(); + String orgSidPath = organizationVo.getOrgSidPath(); + adLeasehostApplyVo.setOrgSidPath(orgSidPath); + adLeasehostApplyVo.setCreateBySid(oaForm.getCreateBySid()); + BeanUtil.copyProperties(adLeasehostApply, adLeasehostApplyVo); + List list = adLeasehostDetailService.getUpdateInit(sid); + list.removeAll(Collections.singleton(null)); + if (!list.isEmpty()) { + list.stream().forEach(details -> { + FormCommon housingTypeObj = FormCommon.of(details.getHousingTypeKey(), details.getHousingTypeValue()); + details.setHousingTypeObj(housingTypeObj); + }); + } + List files = oaAppendixService.selectByLinkSid(sid, "图片"); + adLeasehostApplyVo.setFiles(files); + List appes = oaAppendixService.selectByLinkSid(sid, "文件"); + adLeasehostApplyVo.setAppes(appes); + adLeasehostApplyVo.setList(list); + adLeasehostApplyVo.setSid(sid); + return rb.success().setData(adLeasehostApplyVo); + } + + public ResultBean saveOrUpdateDto(AdLeasehostApplyDto dto) { + ResultBean rb = ResultBean.fireFail(); + String sid = dto.getSid(); + List files = dto.getFiles(); + List appes = dto.getAppes(); + List list = dto.getList(); + if (StringUtils.isBlank(sid)) { + // 新建操作 + AdLeasehostApply entity = new AdLeasehostApply(); + BeanUtil.copyProperties(dto, entity, "sid"); + + dto.setBillNo("SSZLSQ"); + dto.setSid(entity.getSid()); + ResultBean resultBean = oaFormService.saveOaForm(dto); + + if (!resultBean.getSuccess()) { + return rb; + } + + entity.setFormSid(resultBean.getData()); + baseMapper.insert(entity); + sid = entity.getSid(); + } else { + // 更新操作 + AdLeasehostApply entity = fetchBySid(sid); + BeanUtil.copyProperties(dto, entity, "id", "sid"); + baseMapper.updateById(entity); + } + adLeasehostDetailService.saveDetails(list, sid); + // 处理附件 + saveFiles(sid, files, OaFileEnum.ADEXPATRIATESAPPLY.getAttachType(), "图片"); + saveFiles(sid, appes, OaFileEnum.ADEXPATRIATESAPPLY.getAttachType(), "文件"); + return rb.success().setData(sid); + } + + // 保存文件 + private void saveFiles(String sid, List files, String attachType, String fileType) { + files.removeAll(Collections.singleton(null)); + oaAppendixService.saveFile(sid, files, attachType, fileType); + } + + public ResultBean details(String sid, String application) { + ResultBean rb = ResultBean.fireFail(); + AdLeasehostApplyDetailsVo adLeasehostApplyDetailsVo = baseMapper.details(sid); + if (adLeasehostApplyDetailsVo == null) { + return rb.setMsg("该申请不存在"); + } + List files = oaAppendixService.selectByLinkSid(sid, "图片"); + List appes = oaAppendixService.selectByLinkSid(sid, "文件"); + adLeasehostApplyDetailsVo.setFiles(files); + adLeasehostApplyDetailsVo.setAppes(appes); + //基础字段赋值 + BeanUtil.copyProperties(oaFormService.getDetails(sid), adLeasehostApplyDetailsVo); + return rb.success().setData(adLeasehostApplyDetailsVo); + } + + /** + * 提交 + * + * @param dto + * @return + */ + public ResultBean submit(AdLeasehostApplyDto dto) { + ResultBean rb = ResultBean.fireFail(); + ResultBean 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 formVariables = new HashMap<>(); + 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 complete(CompleteDto dto) { + Map formVariables = dto.getFormVariables(); + formVariables = getMap(formVariables, dto.getBusinessSid()); + dto.setFormVariables(formVariables); + BusinessVariablesDto businessVariablesDto = new BusinessVariablesDto(); + BeanUtil.copyProperties(dto, businessVariablesDto); + return oaFormService.complete(businessVariablesDto); + } + + /** + * 驳回 + * + * @param dto + * @return + */ + public ResultBean reject(TaskDto dto) { + Map formVariables = dto.getFormVariables(); + formVariables = getMap(formVariables, dto.getBusinessSid()); + dto.setFormVariables(formVariables); + return oaFormService.reject(dto); + } + + public ResultBean getFlowOperateTitle(NodeQuery query) { + // 默认失败返回 + ResultBean rb = ResultBean.fireFail(); + + // 获取next值和formVariables + int next = query.getNext(); + + // 获取并更新formVariables + Map formVariables = getMap(query.getFormVariables(), query.getBusinessSid()); + query.setFormVariables(formVariables); + + // 校验next参数是否有效(只允许0或1) + if (next != 0 && next != 1) { + return rb.setMsg("参数错误:next"); // 如果next不是0或1,返回错误信息 + } + + // 获取节点名称 + String data = getNodeName(query, next); + + // 如果data为null,表示未获取到有效的节点信息 + if (data == null) { + return rb.setMsg("没有获取到节点信息"); // 返回错误消息 + } + + // 返回成功的结果和获取到的节点名称 + return rb.success().setData(data); + } + + /** + * 网关参数组成 + * + * @param formVariables + * @param sid + * @return + */ + public Map getMap(Map formVariables, String sid) { + Map 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=" + sid); + appMap.put(OaFormUrlEnum.HRHIREAPPLY_DETAIL.getType(), OaFormUrlEnum.HRHIREAPPLY_DETAIL.getUrl() + "?sid=" + 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); + AdLeasehostApply adLeasehostApply = fetchBySid(sid); + SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(oaForm.getUseOrgSid()).getData(); + //是否是分公司 + formVariables.put("isTrue", sysOrganization.getIsDept() == 0); + return formVariables; + } + + /** + * 根据next的值获取前一个节点或下一个节点的名称。 + * + * @param query 包含查询所需参数的NodeQuery对象 + * @param next 参数,0表示上一环节,1表示下一环节 + * @return 节点名称,如果失败则返回null + */ + private String getNodeName(NodeQuery query, int next) { + // 根据next值选择相应的服务方法获取节点信息 + ResultBean> resultBean = (next == 0) + ? oaFormService.getPreviousNodesForReject(query) // 获取上一环节的节点 + : oaFormService.getNextNodesForSubmit(query); // 获取下一环节的节点 + // 如果服务调用成功 + if (resultBean.getSuccess()) { + // 清除结果列表中的null值,避免空节点 + resultBean.getData().removeAll(Collections.singleton(null)); + // 如果结果列表非空,返回第一个节点的名称 + if (!resultBean.getData().isEmpty()) { + return resultBean.getData().get(0).getName(); + } + } else { + // 如果服务调用失败,返回null + return null; + } + // 如果结果为空,返回null + return null; + } +} \ No newline at end of file diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostapply/AdLeasehostApplyVo.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostapply/AdLeasehostApplyVo.java new file mode 100644 index 0000000000..899500c153 --- /dev/null +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostapply/AdLeasehostApplyVo.java @@ -0,0 +1,77 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.oa.biz.adleasehostapply; + + +import com.yxt.anrui.oa.biz.adexpatriatesdetail.AdExpatriatesDetailVo; +import com.yxt.anrui.oa.biz.adleasehostdetail.AdLeasehostDetailVo; +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; + +/** + * Project: yxt-oa(宿舍租赁)
+ * File: AdLeasehostApplyVo.java
+ * Class: com.yxt.anrui.oa.api.adleasehostapply.AdLeasehostApplyVo
+ * Description: 宿舍租赁申请 视图数据对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2025-02-17 14:11:50
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Data +@ApiModel(value = "宿舍租赁申请 视图数据对象", description = "宿舍租赁申请 视图数据对象") +public class AdLeasehostApplyVo implements Vo { + + private String sid; + /* private String userSid; + private String orgPath;*/ + private String orgSidPath; + private String createBySid; + + @ApiModelProperty("备注") + private String remarks; + @ApiModelProperty("图片") + private List files = new ArrayList<>(); + @ApiModelProperty("附件") + private List appes = new ArrayList<>(); + + private List list = new ArrayList<>(); + + private String taskId; + @ApiModelProperty("流程实例id") + private String procInsId; + +// private String testPage; +} diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostdetail/AdLeasehostDetail.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostdetail/AdLeasehostDetail.java new file mode 100644 index 0000000000..3d74e58ab5 --- /dev/null +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostdetail/AdLeasehostDetail.java @@ -0,0 +1,72 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.oa.biz.adleasehostdetail; + +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; + +import java.math.BigDecimal; + +/** + * Project: yxt-oa(宿舍租赁)
+ * File: AdLeasehostDetail.java
+ * Class: com.yxt.anrui.oa.api.adleasehostdetail.AdLeasehostDetail
+ * Description: 宿舍租赁列表.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2025-02-17 14:11:50
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Data +@ApiModel(value = "宿舍租赁列表", description = "宿舍租赁列表") +@TableName("ad_leasehost_detail") +public class AdLeasehostDetail extends BaseEntity { + private static final long serialVersionUID = 1L; + + @ApiModelProperty("申请sid") + private String mainSid; // 申请sid + @ApiModelProperty("经办人") + private String operator; // 经办人 + @ApiModelProperty("宿舍使用人") + private String dormitoryUser; // 宿舍使用人 + @ApiModelProperty("房屋类型key") + private String housingTypeKey; // 房屋类型key + @ApiModelProperty("房屋类型value") + private String housingTypeValue; // 房屋类型value + @ApiModelProperty("房屋基本信息") + private String basicHousingInformation; // 房屋基本信息 + @ApiModelProperty("租房预计费用") + private BigDecimal estimatedRentalCost; // 租房预计费用 + @ApiModelProperty("租赁期限及租房押金、支付方式") + private String leaseTermAndDeposit; // 租赁期限及租房押金、支付方式 + +} diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostdetail/AdLeasehostDetailDto.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostdetail/AdLeasehostDetailDto.java new file mode 100644 index 0000000000..f021cdf356 --- /dev/null +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostdetail/AdLeasehostDetailDto.java @@ -0,0 +1,56 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.oa.biz.adleasehostdetail; + +import com.yxt.anrui.oa.biz.oaform.FormCommon; +import com.yxt.common.core.dto.Dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +@ApiModel(value = "宿舍租赁列表 数据传输对象", description = "宿舍租赁列表 数据传输对象") +public class AdLeasehostDetailDto implements Dto { + + @ApiModelProperty("经办人") + private String operator; + @ApiModelProperty("宿舍使用人") + private String dormitoryUser; + @ApiModelProperty("房屋类型") + private FormCommon housingTypeObj; + private String housingTypeKey; + private String housingTypeValue; + @ApiModelProperty("房屋基本信息") + private String basicHousingInformation; + @ApiModelProperty("租房预计费用") + private BigDecimal estimatedRentalCost; + @ApiModelProperty("租赁期限及租房押金、支付方式") + private String leaseTermAndDeposit; + +} \ No newline at end of file diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostdetail/AdLeasehostDetailMapper.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostdetail/AdLeasehostDetailMapper.java new file mode 100644 index 0000000000..53146fef58 --- /dev/null +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostdetail/AdLeasehostDetailMapper.java @@ -0,0 +1,41 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.oa.biz.adleasehostdetail; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; + +import java.util.List; + +@Mapper +public interface AdLeasehostDetailMapper extends BaseMapper { + + List getUpdateInit(String sid); + + @Select("select * from ad_leasehost_detail where mainSid = #{mainSid}") + List selectByMainSid(String mainSid); +} \ No newline at end of file diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostdetail/AdLeasehostDetailMapper.xml b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostdetail/AdLeasehostDetailMapper.xml new file mode 100644 index 0000000000..c68e2d5a07 --- /dev/null +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostdetail/AdLeasehostDetailMapper.xml @@ -0,0 +1,18 @@ + + + + + + + \ No newline at end of file diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostdetail/AdLeasehostDetailService.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostdetail/AdLeasehostDetailService.java new file mode 100644 index 0000000000..b483eea4c8 --- /dev/null +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostdetail/AdLeasehostDetailService.java @@ -0,0 +1,64 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.oa.biz.adleasehostdetail; + +import cn.hutool.core.bean.BeanUtil; +import com.yxt.anrui.oa.biz.adexpatriatesdetail.AdExpatriatesDetail; +import com.yxt.anrui.oa.biz.adexpatriatesdetail.AdExpatriatesDetailDto; +import com.yxt.anrui.oa.biz.adexpatriatesdetail.AdExpatriatesDetailVo; +import com.yxt.common.base.service.MybatisBaseService; +import org.springframework.stereotype.Service; + +import java.util.Collections; +import java.util.List; + +@Service +public class AdLeasehostDetailService extends MybatisBaseService { + + public void saveDetails(List list, String sid) { + //根据sid查询明细并删除 + List list2 = baseMapper.selectByMainSid(sid); + list2.removeAll(Collections.singleton(null)); + if (!list2.isEmpty()) { + list2.stream().forEach(v -> { + deleteBySid(v.getSid()); + }); + } + list.removeAll(Collections.singleton(null)); + if (!list.isEmpty()) { + list.stream().forEach(details -> { + AdLeasehostDetail adLeasehostDetail = new AdLeasehostDetail(); + BeanUtil.copyProperties(details, adLeasehostDetail); + adLeasehostDetail.setMainSid(sid); + baseMapper.insert(adLeasehostDetail); + }); + } + } + + public List getUpdateInit(String sid) { + return baseMapper.getUpdateInit(sid); + } +} \ No newline at end of file diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostdetail/AdLeasehostDetailVo.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostdetail/AdLeasehostDetailVo.java new file mode 100644 index 0000000000..c08a005c03 --- /dev/null +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostdetail/AdLeasehostDetailVo.java @@ -0,0 +1,72 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.oa.biz.adleasehostdetail; + + +import com.yxt.anrui.oa.biz.oaform.FormCommon; +import com.yxt.common.core.vo.Vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * Project: yxt-oa(宿舍租赁)
+ * File: AdLeasehostDetailVo.java
+ * Class: com.yxt.anrui.oa.api.adleasehostdetail.AdLeasehostDetailVo
+ * Description: 宿舍租赁列表 视图数据对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2025-02-17 14:11:50
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Data +@ApiModel(value = "宿舍租赁列表 视图数据对象", description = "宿舍租赁列表 视图数据对象") +public class AdLeasehostDetailVo implements Vo { + + private String sid; + + @ApiModelProperty("经办人") + private String operator; + @ApiModelProperty("宿舍使用人") + private String dormitoryUser; + @ApiModelProperty("房屋类型") + private FormCommon housingTypeObj; + private String housingTypeKey; + private String housingTypeValue; + @ApiModelProperty("房屋基本信息") + private String basicHousingInformation; + @ApiModelProperty("租房预计费用") + private BigDecimal estimatedRentalCost; + @ApiModelProperty("租赁期限及租房押金、支付方式") + private String leaseTermAndDeposit; + +} diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostdetail/AdLeasehostListDetailVo.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostdetail/AdLeasehostListDetailVo.java new file mode 100644 index 0000000000..62bf95095f --- /dev/null +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adleasehostdetail/AdLeasehostListDetailVo.java @@ -0,0 +1,52 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.oa.biz.adleasehostdetail; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import java.math.BigDecimal; + +@Data +@ApiModel(value = "宿舍租赁列表 视图数据对象", description = "宿舍租赁列表 视图数据对象") +public class AdLeasehostListDetailVo implements Vo { + + private String sid; + + @ApiModelProperty("经办人") + private String operator; + @ApiModelProperty("宿舍使用人") + private String dormitoryUser; + @ApiModelProperty("房屋类型") + private String housingTypeValue; + @ApiModelProperty("房屋基本信息") + private String basicHousingInformation; + @ApiModelProperty("租房预计费用") + private BigDecimal estimatedRentalCost; + @ApiModelProperty("租赁期限及租房押金、支付方式") + private String leaseTermAndDeposit; +} diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsInventoryCheckbillRest.java b/yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsInventoryCheckbillRest.java index fa19eaae63..1860008812 100644 --- a/yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsInventoryCheckbillRest.java +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsInventoryCheckbillRest.java @@ -44,19 +44,6 @@ import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.util.List; -/** - * Project: yxt-wms(仓储)
- * File: WmsInventoryCheckbillFeignFallback.java
- * Class: com.yxt.wms.biz.wmsinventorycheckbill.WmsInventoryCheckbillRest
- * Description: 库存盘点.
- * Copyright: Copyright (c) 2011
- * Company: https://gitee.com/liuzp315
- * Makedate: 2024-03-22 09:25:02
- * - * @author liupopo - * @version 1.0 - * @since 1.0 - */ @Api(tags = "库存盘点") @RestController @RequestMapping("v1/wmsinventorycheckbill") diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/feign/flowable/flow/ProcDefEnum.java b/yxt-wms-biz/src/main/java/com/yxt/wms/feign/flowable/flow/ProcDefEnum.java index bb7e202142..74e036fe2f 100644 --- a/yxt-wms-biz/src/main/java/com/yxt/wms/feign/flowable/flow/ProcDefEnum.java +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/feign/flowable/flow/ProcDefEnum.java @@ -9,9 +9,9 @@ public enum ProcDefEnum { /***************************正式流程id***********************************/ WMSINVENCHECKREPORT("盘点报告审批", "process_wtab67fj:1:14197600"), WMSINVENTORYPROFITIN("盘盈入库申请", "process_kwd3cagu:1:14197564"), + WMSINVENTORYPROFITOUT("盘亏出库申请", "process_gmjrjghm:1:14197568"), WMSOLDINVENTORYPROFITIN("旧件盘盈入库申请", "process_kwd3cagu:2:15792504"), WMSDISINVENTORYPROFITIN("拆件盘盈入库申请", "process_kwd3cagu:3:15792508"), - WMSINVENTORYPROFITOUT("盘亏出库申请", "process_gmjrjghm:1:14197568"), WMSOLDINVENTORYPROFITOUT("旧件盘亏出库申请", "process_gmjrjghm:2:15792512"), WMSDISINVENTORYPROFITOUT("拆件盘亏出库申请", "process_gmjrjghm:3:15792516"), WMSOTHEROUTAPPLY("其他出库(报损出库)", "process_iks2hour:1:14197560"),