From 060f174276824de777ec1d41a6beb1634e44b9d0 Mon Sep 17 00:00:00 2001 From: ligaode Date: Wed, 5 Feb 2025 14:06:54 +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 --- .../AsBusrepairBwBillPageListQuery.java | 4 + .../AsBusrepairBillService.java | 5 + .../AsBwinvoiceapplyRest.java | 160 ++- .../AsBwinvoiceapplyService.java | 1072 +++++++++-------- .../AsBwinvoiceapplyDetailMapper.java | 3 + .../AsBwinvoiceapplyDetailService.java | 4 + 6 files changed, 635 insertions(+), 613 deletions(-) diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBwBillPageListQuery.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBwBillPageListQuery.java index ce0002aa09..c0e222e742 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBwBillPageListQuery.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBwBillPageListQuery.java @@ -4,6 +4,8 @@ import com.yxt.common.core.query.Query; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.List; + /** * @description: * @author: dimengzhe @@ -25,4 +27,6 @@ public class AsBusrepairBwBillPageListQuery implements Query { @ApiModelProperty("结算日期") private String settleTimeStart; private String settleTimeEnd; + + private List sids; } diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java index d7ae07c44e..7b20f8359a 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java @@ -1656,6 +1656,11 @@ public class AsBusrepairBillService extends MybatisBaseService 0) { + qw.notIn("a.sid", query.getSids()); + } + } //维修工单编号 if (StringUtils.isNotBlank(query.getBillNo())) { qw.like("a.billNo", query.getBillNo()); diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbwinvoiceapply/AsBwinvoiceapplyRest.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbwinvoiceapply/AsBwinvoiceapplyRest.java index 3eafa1c436..d4708c49bf 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbwinvoiceapply/AsBwinvoiceapplyRest.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbwinvoiceapply/AsBwinvoiceapplyRest.java @@ -48,88 +48,86 @@ import java.util.List; @RequestMapping("v1/asbwinvoiceapply") public class AsBwinvoiceapplyRest { - @Autowired - private AsBwinvoiceapplyService asBwinvoiceapplyService; - - @ApiOperation("根据条件分页查询数据的列表") - @PostMapping("/listPage") - public ResultBean> listPage(@RequestBody PagerQuery pq){ - ResultBean rb = ResultBean.fireFail(); - PagerVo pv = asBwinvoiceapplyService.listPageVo(pq); - return rb.success().setData(pv); - } - - @ApiOperation("新增或修改") - @PostMapping("/save") - public ResultBean save(@RequestBody AsBwinvoiceapplyDto dto){ - ResultBean rb = ResultBean.fireFail(); - asBwinvoiceapplyService.saveOrUpdateDto(dto); - return rb.success(); - } - - @ApiOperation("根据sid批量删除") + @Autowired + private AsBwinvoiceapplyService asBwinvoiceapplyService; + + @ApiOperation("根据条件分页查询数据的列表") + @PostMapping("/listPage") + public ResultBean> listPage(@RequestBody PagerQuery pq) { + ResultBean rb = ResultBean.fireFail(); + PagerVo pv = asBwinvoiceapplyService.listPageVo(pq); + return rb.success().setData(pv); + } + + @ApiOperation("新增或修改") + @PostMapping("/save") + public ResultBean save(@RequestBody AsBwinvoiceapplyDto dto) { + return asBwinvoiceapplyService.saveOrUpdateDto(dto); + } + + @ApiOperation("根据sid批量删除") @DeleteMapping("/delBySids") - public ResultBean delBySids(@RequestBody String[] sids){ - return asBwinvoiceapplyService.delAll(sids); - } + public ResultBean delBySids(@RequestBody String[] sids) { + return asBwinvoiceapplyService.delAll(sids); + } - @ApiOperation("根据SID获取一条记录") + @ApiOperation("根据SID获取一条记录") @GetMapping("/fetchDetailsBySid/{sid}") - public ResultBean fetchDetailsBySid(@PathVariable("sid") String sid){ - ResultBean rb = ResultBean.fireFail(); - AsBwinvoiceapplyDetailsVo vo = asBwinvoiceapplyService.fetchDetailsVoBySid(sid); - return rb.success().setData(vo); - } - - @ApiOperation("提交") - @PostMapping("/submitApply") - public ResultBean submitApply(@Valid @RequestBody SubmitBwinvoiceApplyDto dto) { - return asBwinvoiceapplyService.submitApply(dto); - } - - @ApiOperation(value = "办理(同意)") - @PostMapping("/complete") - public ResultBean complete(@Valid @RequestBody CompleteBwinvoiceApplyDto query) { - BusinessVariables bv = new BusinessVariables(); - BeanUtil.copyProperties(query, bv); - bv.setModelId(""); - return asBwinvoiceapplyService.complete(bv); - } - - @ApiOperation(value = "获取上一个环节") - @GetMapping(value = "/getPreviousNodesForReject") - ResultBean> getPreviousNodesForReject(@Valid @SpringQueryMap BwinvoiceApplyNodeQuery query) { - return asBwinvoiceapplyService.getPreviousNodesForReject(query); - } - - @ApiOperation(value = "获取下一个环节") - @GetMapping(value = "/getNextNodesForSubmit") - ResultBean> getNextNodesForSubmit(@Valid @SpringQueryMap BwinvoiceApplyNodeQuery query) { - return asBwinvoiceapplyService.getNextNodesForSubmit(query); - } - - @ApiOperation(value = "驳回任务") - @PostMapping(value = "/reject") - public ResultBean taskReject(@Valid @RequestBody BwinvoiceApplyTaskQuery query) { - return asBwinvoiceapplyService.taskReject(query); - } - - @ApiOperation(value = "撤回流程") - @PostMapping(value = "/revokeProcess") - public ResultBean revokeProcess(@Valid @RequestBody BwinvoiceApplyTaskQuery query) { - return asBwinvoiceapplyService.revokeProcess(query); - } - - @ApiOperation(value = "终止任务") - @PostMapping(value = "/breakProcess") - public ResultBean breakProcess(@Valid @RequestBody BwinvoiceApplyTaskQuery query) { - return asBwinvoiceapplyService.breakProcess(query); - } - - @ApiOperation(value = "加签") - @PostMapping(value = "/delegate") - @ResponseBody - public ResultBean delegate(@RequestBody BwinvoiceApplyDelegateQuery query) { - return asBwinvoiceapplyService.delegate(query); - } + public ResultBean fetchDetailsBySid(@PathVariable("sid") String sid) { + ResultBean rb = ResultBean.fireFail(); + AsBwinvoiceapplyDetailsVo vo = asBwinvoiceapplyService.fetchDetailsVoBySid(sid); + return rb.success().setData(vo); + } + + @ApiOperation("提交") + @PostMapping("/submitApply") + public ResultBean submitApply(@Valid @RequestBody SubmitBwinvoiceApplyDto dto) { + return asBwinvoiceapplyService.submitApply(dto); + } + + @ApiOperation(value = "办理(同意)") + @PostMapping("/complete") + public ResultBean complete(@Valid @RequestBody CompleteBwinvoiceApplyDto query) { + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + bv.setModelId(""); + return asBwinvoiceapplyService.complete(bv); + } + + @ApiOperation(value = "获取上一个环节") + @GetMapping(value = "/getPreviousNodesForReject") + ResultBean> getPreviousNodesForReject(@Valid @SpringQueryMap BwinvoiceApplyNodeQuery query) { + return asBwinvoiceapplyService.getPreviousNodesForReject(query); + } + + @ApiOperation(value = "获取下一个环节") + @GetMapping(value = "/getNextNodesForSubmit") + ResultBean> getNextNodesForSubmit(@Valid @SpringQueryMap BwinvoiceApplyNodeQuery query) { + return asBwinvoiceapplyService.getNextNodesForSubmit(query); + } + + @ApiOperation(value = "驳回任务") + @PostMapping(value = "/reject") + public ResultBean taskReject(@Valid @RequestBody BwinvoiceApplyTaskQuery query) { + return asBwinvoiceapplyService.taskReject(query); + } + + @ApiOperation(value = "撤回流程") + @PostMapping(value = "/revokeProcess") + public ResultBean revokeProcess(@Valid @RequestBody BwinvoiceApplyTaskQuery query) { + return asBwinvoiceapplyService.revokeProcess(query); + } + + @ApiOperation(value = "终止任务") + @PostMapping(value = "/breakProcess") + public ResultBean breakProcess(@Valid @RequestBody BwinvoiceApplyTaskQuery query) { + return asBwinvoiceapplyService.breakProcess(query); + } + + @ApiOperation(value = "加签") + @PostMapping(value = "/delegate") + @ResponseBody + public ResultBean delegate(@RequestBody BwinvoiceApplyDelegateQuery query) { + return asBwinvoiceapplyService.delegate(query); + } } diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbwinvoiceapply/AsBwinvoiceapplyService.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbwinvoiceapply/AsBwinvoiceapplyService.java index 673eaa5e76..1e3a848cde 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbwinvoiceapply/AsBwinvoiceapplyService.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbwinvoiceapply/AsBwinvoiceapplyService.java @@ -93,553 +93,561 @@ import java.util.stream.Collectors; @Service public class AsBwinvoiceapplyService extends MybatisBaseService { - @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 FileUploadComponent fileUploadComponent; - @Autowired - private AsAppendixService asAppendixService; - @Autowired - private AsBwinvoiceapplyDetailService asBwinvoiceapplyDetailService; - @Autowired - private SysUserRoleFeign sysUserRoleFeign; - - public PagerVo listPageVo(PagerQuery pq) { - AsBwinvoiceapplyQuery 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("ab.createBySid", query.getUserSid()); - } else { - PagerVo p = new PagerVo<>(); - return p; - } - } else { - PagerVo p = new PagerVo<>(); - return p; - } - } - if (StringUtils.isNotBlank(query.getUseOrgName())) { - qw.like("ab.useOrgName", query.getUseOrgName()); - } - if (StringUtils.isNotBlank(query.getDeptName())) { - qw.like("ab.deptName", query.getDeptName()); - } - if (StringUtils.isNotBlank(query.getCreateByName())) { - qw.like("ab.createByName", query.getCreateByName()); - } - if (StringUtils.isNotBlank(query.getBillNo())) { - qw.like("ab.billNo", query.getBillNo()); - } - if (StringUtils.isNotBlank(query.getInvoiceTitle())){ - qw.like("ab.invoiceTitle",query.getInvoiceTitle()); - } - if (StringUtils.isNotBlank(query.getInvoiceTypeKey())){ - qw.eq("ab.invoiceTypeKey",query.getInvoiceTypeKey()); - } - String createTimeStart = query.getCreateTimeStart(); - String createTimeEnd = query.getCreateTimeEnd(); - qw.apply(StringUtils.isNotEmpty(createTimeStart), "date_format (ab.createTime,'%Y-%m-%d') >= date_format('" + createTimeStart + "','%Y-%m-%d')"). - apply(StringUtils.isNotEmpty(createTimeEnd), "date_format (ab.createTime,'%Y-%m-%d') <= date_format('" + createTimeEnd + "','%Y-%m-%d')" - ); - String finishTimeStart = query.getFinishTimeStart(); - String finishTimeEnd = query.getFinishTimeEnd(); - qw.apply(StringUtils.isNotEmpty(finishTimeStart), "date_format (ab.finishTime,'%Y-%m-%d') >= date_format('" + finishTimeStart + "','%Y-%m-%d')"). - apply(StringUtils.isNotEmpty(finishTimeEnd), "date_format (ab.finishTime,'%Y-%m-%d') <= date_format('" + finishTimeEnd + "','%Y-%m-%d')" - ); - IPage page = PagerUtil.queryToPage(pq); - IPage pagging = baseMapper.selectPageVo(page, qw); - for (AsBwinvoiceapplyVo record : pagging.getRecords()) { - List asBwinvoiceapplyFiles = new ArrayList<>(); - List asAppendices = asAppendixService.fetchByLinkSid(record.getSid()); - for (AsAppendix asAppendix : asAppendices) { - AsBwinvoiceapplyFile asBwinvoiceapplyFile = new AsBwinvoiceapplyFile(); - String url = fileUploadComponent.getUrlPrefix() + asAppendix.getFilePath(); - asBwinvoiceapplyFile.setUrl(url); - asBwinvoiceapplyFiles.add(asBwinvoiceapplyFile); - } - record.setFileList(asBwinvoiceapplyFiles); - } - PagerVo p = PagerUtil.pageToVo(pagging, null); - return p; - } - - public String saveOrUpdateDto(AsBwinvoiceapplyDto dto){ + @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 FileUploadComponent fileUploadComponent; + @Autowired + private AsAppendixService asAppendixService; + @Autowired + private AsBwinvoiceapplyDetailService asBwinvoiceapplyDetailService; + @Autowired + private SysUserRoleFeign sysUserRoleFeign; + + public PagerVo listPageVo(PagerQuery pq) { + AsBwinvoiceapplyQuery 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("ab.createBySid", query.getUserSid()); + } else { + PagerVo p = new PagerVo<>(); + return p; + } + } else { + PagerVo p = new PagerVo<>(); + return p; + } + } + if (StringUtils.isNotBlank(query.getUseOrgName())) { + qw.like("ab.useOrgName", query.getUseOrgName()); + } + if (StringUtils.isNotBlank(query.getDeptName())) { + qw.like("ab.deptName", query.getDeptName()); + } + if (StringUtils.isNotBlank(query.getCreateByName())) { + qw.like("ab.createByName", query.getCreateByName()); + } + if (StringUtils.isNotBlank(query.getBillNo())) { + qw.like("ab.billNo", query.getBillNo()); + } + if (StringUtils.isNotBlank(query.getInvoiceTitle())) { + qw.like("ab.invoiceTitle", query.getInvoiceTitle()); + } + if (StringUtils.isNotBlank(query.getInvoiceTypeKey())) { + qw.eq("ab.invoiceTypeKey", query.getInvoiceTypeKey()); + } + String createTimeStart = query.getCreateTimeStart(); + String createTimeEnd = query.getCreateTimeEnd(); + qw.apply(StringUtils.isNotEmpty(createTimeStart), "date_format (ab.createTime,'%Y-%m-%d') >= date_format('" + createTimeStart + "','%Y-%m-%d')"). + apply(StringUtils.isNotEmpty(createTimeEnd), "date_format (ab.createTime,'%Y-%m-%d') <= date_format('" + createTimeEnd + "','%Y-%m-%d')" + ); + String finishTimeStart = query.getFinishTimeStart(); + String finishTimeEnd = query.getFinishTimeEnd(); + qw.apply(StringUtils.isNotEmpty(finishTimeStart), "date_format (ab.finishTime,'%Y-%m-%d') >= date_format('" + finishTimeStart + "','%Y-%m-%d')"). + apply(StringUtils.isNotEmpty(finishTimeEnd), "date_format (ab.finishTime,'%Y-%m-%d') <= date_format('" + finishTimeEnd + "','%Y-%m-%d')" + ); + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.selectPageVo(page, qw); + for (AsBwinvoiceapplyVo record : pagging.getRecords()) { + List asBwinvoiceapplyFiles = new ArrayList<>(); + List asAppendices = asAppendixService.fetchByLinkSid(record.getSid()); + for (AsAppendix asAppendix : asAppendices) { + AsBwinvoiceapplyFile asBwinvoiceapplyFile = new AsBwinvoiceapplyFile(); + String url = fileUploadComponent.getUrlPrefix() + asAppendix.getFilePath(); + asBwinvoiceapplyFile.setUrl(url); + asBwinvoiceapplyFiles.add(asBwinvoiceapplyFile); + } + record.setFileList(asBwinvoiceapplyFiles); + } + PagerVo p = PagerUtil.pageToVo(pagging, null); + return p; + } + + public ResultBean saveOrUpdateDto(AsBwinvoiceapplyDto dto) { + ResultBean rb = ResultBean.fireFail(); + String dtoSid = dto.getSid(); + List fileList = dto.getFileList(); + List asBwinvoiceapplyDetailList = dto.getAsBwinvoiceapplyDetailList(); + 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)) { + for (AsBwinvoiceapplyDetailDto asBwinvoiceapplyDetailDto : asBwinvoiceapplyDetailList) { + String sourceBillSid = asBwinvoiceapplyDetailDto.getSourceBillSid(); + int i = asBwinvoiceapplyDetailService.selBySourceBillSid(sourceBillSid); + if (i > 0){ + return rb.setMsg("维修单编号" + asBwinvoiceapplyDetailDto.getSourceBillNo() + "已存在"); + } + } + //生成单据编号 + String billNo = ""; + String date = DateUtil.format(DateUtil.date(), "yyyyMM"); + billNo = "BWGDKP" + 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 (AsBwinvoiceapplyFile asBwinvoiceapplyFile : fileList) { + String filePath = asBwinvoiceapplyFile.getUrl().replace(fileUploadComponent.getUrlPrefix(), ""); + AsAppendix asAppendix = new AsAppendix(); + asAppendix.setLinkSid(sid); + asAppendix.setAttachType(AsFileEnum.ASBWINVOICEAPPLY.getAttachType()); + asAppendix.setFilePath(filePath); + asAppendixService.save(asAppendix); + } + for (AsBwinvoiceapplyDetailDto asBwinvoiceapplyDetailDto : asBwinvoiceapplyDetailList) { + asBwinvoiceapplyDetailDto.setMainSid(sid); + asBwinvoiceapplyDetailService.insertByDto(asBwinvoiceapplyDetailDto); + } + return rb.success().setData(sid); + } + this.updateByDto(dto); + asAppendixService.delByLinkSid(dtoSid); + for (AsBwinvoiceapplyFile asBwinvoiceapplyFile : fileList) { + String filePath = asBwinvoiceapplyFile.getUrl().replace(fileUploadComponent.getUrlPrefix(), ""); + AsAppendix asAppendix = new AsAppendix(); + asAppendix.setLinkSid(dtoSid); + asAppendix.setAttachType(AsFileEnum.ASBWINVOICEAPPLY.getAttachType()); + asAppendix.setFilePath(filePath); + asAppendixService.save(asAppendix); + } + asBwinvoiceapplyDetailService.delByMainSid(dtoSid); + for (AsBwinvoiceapplyDetailDto asBwinvoiceapplyDetailDto : asBwinvoiceapplyDetailList) { + asBwinvoiceapplyDetailDto.setMainSid(dtoSid); + asBwinvoiceapplyDetailService.insertByDto(asBwinvoiceapplyDetailDto); + } + return rb.success().setData(dtoSid); + } + + public String insertByDto(AsBwinvoiceapplyDto dto) { + AsBwinvoiceapply entity = new AsBwinvoiceapply(); + BeanUtil.copyProperties(dto, entity, "id", "sid"); + entity.setNodeState("待提交"); + baseMapper.insert(entity); + return entity.getSid(); + } + + public void updateByDto(AsBwinvoiceapplyDto dto) { String dtoSid = dto.getSid(); - List fileList = dto.getFileList(); - List asBwinvoiceapplyDetailList = dto.getAsBwinvoiceapplyDetailList(); - 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 = "BWGDKP" + 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 (AsBwinvoiceapplyFile asBwinvoiceapplyFile : fileList) { - String filePath = asBwinvoiceapplyFile.getUrl().replace(fileUploadComponent.getUrlPrefix(), ""); - AsAppendix asAppendix = new AsAppendix(); - asAppendix.setLinkSid(sid); - asAppendix.setAttachType(AsFileEnum.ASBWINVOICEAPPLY.getAttachType()); - asAppendix.setFilePath(filePath); - asAppendixService.save(asAppendix); - } - for (AsBwinvoiceapplyDetailDto asBwinvoiceapplyDetailDto : asBwinvoiceapplyDetailList) { - asBwinvoiceapplyDetailDto.setMainSid(sid); - asBwinvoiceapplyDetailService.insertByDto(asBwinvoiceapplyDetailDto); - } - return sid; - } - this.updateByDto(dto); - asAppendixService.delByLinkSid(dtoSid); - for (AsBwinvoiceapplyFile asBwinvoiceapplyFile : fileList) { - String filePath = asBwinvoiceapplyFile.getUrl().replace(fileUploadComponent.getUrlPrefix(), ""); - AsAppendix asAppendix = new AsAppendix(); - asAppendix.setLinkSid(dtoSid); - asAppendix.setAttachType(AsFileEnum.ASBWINVOICEAPPLY.getAttachType()); - asAppendix.setFilePath(filePath); - asAppendixService.save(asAppendix); - } - asBwinvoiceapplyDetailService.delByMainSid(dtoSid); - for (AsBwinvoiceapplyDetailDto asBwinvoiceapplyDetailDto : asBwinvoiceapplyDetailList) { - asBwinvoiceapplyDetailDto.setMainSid(dtoSid); - asBwinvoiceapplyDetailService.insertByDto(asBwinvoiceapplyDetailDto); - } - return dtoSid; - } - - public String insertByDto(AsBwinvoiceapplyDto dto){ - AsBwinvoiceapply entity = new AsBwinvoiceapply(); - BeanUtil.copyProperties(dto, entity, "id", "sid"); - entity.setNodeState("待提交"); - baseMapper.insert(entity); - return entity.getSid(); - } - - public void updateByDto(AsBwinvoiceapplyDto dto){ - String dtoSid = dto.getSid(); if (StringUtils.isBlank(dtoSid)) { return; - } - AsBwinvoiceapply entity = fetchBySid(dtoSid); - BeanUtil.copyProperties(dto, entity, "id", "sid"); - baseMapper.updateById(entity); - } - - public AsBwinvoiceapplyDetailsVo fetchDetailsVoBySid(String sid){ - AsBwinvoiceapply entity = fetchBySid(sid); - AsBwinvoiceapplyDetailsVo vo = new AsBwinvoiceapplyDetailsVo(); - BeanUtil.copyProperties(entity, vo); - List asAppendices = asAppendixService.fetchByLinkSid(sid); - List asBwinvoiceapplyFiles = new ArrayList<>(); - for (AsAppendix asAppendix : asAppendices) { - AsBwinvoiceapplyFile asBwinvoiceapplyFile = new AsBwinvoiceapplyFile(); - String url = fileUploadComponent.getUrlPrefix() + asAppendix.getFilePath(); - asBwinvoiceapplyFile.setUrl(url); - asBwinvoiceapplyFiles.add(asBwinvoiceapplyFile); - } - vo.setFileList(asBwinvoiceapplyFiles); - List asBwinvoiceapplyDetailDetailsVos = asBwinvoiceapplyDetailService.fetchByMainSid(sid); - vo.setAsBwinvoiceapplyDetailList(asBwinvoiceapplyDetailDetailsVos); - return vo; - } + } + AsBwinvoiceapply entity = fetchBySid(dtoSid); + BeanUtil.copyProperties(dto, entity, "id", "sid"); + baseMapper.updateById(entity); + } + + public AsBwinvoiceapplyDetailsVo fetchDetailsVoBySid(String sid) { + AsBwinvoiceapply entity = fetchBySid(sid); + AsBwinvoiceapplyDetailsVo vo = new AsBwinvoiceapplyDetailsVo(); + BeanUtil.copyProperties(entity, vo); + List asAppendices = asAppendixService.fetchByLinkSid(sid); + List asBwinvoiceapplyFiles = new ArrayList<>(); + for (AsAppendix asAppendix : asAppendices) { + AsBwinvoiceapplyFile asBwinvoiceapplyFile = new AsBwinvoiceapplyFile(); + String url = fileUploadComponent.getUrlPrefix() + asAppendix.getFilePath(); + asBwinvoiceapplyFile.setUrl(url); + asBwinvoiceapplyFiles.add(asBwinvoiceapplyFile); + } + vo.setFileList(asBwinvoiceapplyFiles); + List asBwinvoiceapplyDetailDetailsVos = asBwinvoiceapplyDetailService.fetchByMainSid(sid); + vo.setAsBwinvoiceapplyDetailList(asBwinvoiceapplyDetailDetailsVos); + 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) { - asAppendixService.delByLinkSid(sid); - asBwinvoiceapplyDetailService.delByMainSid(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) { + asAppendixService.delByLinkSid(sid); + asBwinvoiceapplyDetailService.delByMainSid(sid); + } + return rb.success(); + } - public ResultBean submitApply(SubmitBwinvoiceApplyDto dto) { - ResultBean rb = ResultBean.fireFail(); - AsBwinvoiceapply asBwinvoiceapply = fetchBySid(dto.getSid()); - int r = submitBusinessData(dto, asBwinvoiceapply); - if (r == 3) { - return rb.setMsg("该申请不存在"); - } - if (r == 0) { - return rb.setMsg("操作失败!提交的数据不一致"); - } - String businessSid = saveOrUpdateDto(dto); - asBwinvoiceapply = 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 = asBwinvoiceapply.getCreateBySid(); - List list = sysUserRoleFeign.getUserRoleSidByUserSid(createBySid).getData(); - variables.put("iszg", list.contains("f00a7338-a6a4-4712-ab85-ca211d56fb1f")); - //用户的部门全路径sid - SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(asBwinvoiceapply.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.ASBWINVOICEAPPLY.getProDefId()); - ResultBean voResultBean = flowFeign.startProcess(bv); - if (!voResultBean.getSuccess()) { - return rb.setMsg(voResultBean.getMsg()); - } - UpdateFlowFieldVo ufVo = voResultBean.getData(); - updateFlowFiled(BeanUtil.beanToMap(ufVo)); - asBwinvoiceapply = 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()); - AsBwinvoiceapply finalAsBwinvoiceapply = asBwinvoiceapply; - 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(finalAsBwinvoiceapply.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(asBwinvoiceapply.getTaskId()); - bv.setTaskDefKey(asBwinvoiceapply.getNodeId()); - bv.setComment("重新提交"); - bv.setInstanceId(dto.getInstanceId()); - return complete(bv); - } - return rb; - } + public ResultBean submitApply(SubmitBwinvoiceApplyDto dto) { + ResultBean rb = ResultBean.fireFail(); + AsBwinvoiceapply asBwinvoiceapply = fetchBySid(dto.getSid()); + int r = submitBusinessData(dto, asBwinvoiceapply); + if (r == 3) { + return rb.setMsg("该申请不存在"); + } + if (r == 0) { + return rb.setMsg("操作失败!提交的数据不一致"); + } + String businessSid = saveOrUpdateDto(dto).getData(); + asBwinvoiceapply = 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 = asBwinvoiceapply.getCreateBySid(); + List list = sysUserRoleFeign.getUserRoleSidByUserSid(createBySid).getData(); + variables.put("iszg", list.contains("f00a7338-a6a4-4712-ab85-ca211d56fb1f")); + //用户的部门全路径sid + SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(asBwinvoiceapply.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.ASBWINVOICEAPPLY.getProDefId()); + ResultBean voResultBean = flowFeign.startProcess(bv); + if (!voResultBean.getSuccess()) { + return rb.setMsg(voResultBean.getMsg()); + } + UpdateFlowFieldVo ufVo = voResultBean.getData(); + updateFlowFiled(BeanUtil.beanToMap(ufVo)); + asBwinvoiceapply = 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()); + AsBwinvoiceapply finalAsBwinvoiceapply = asBwinvoiceapply; + 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(finalAsBwinvoiceapply.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(asBwinvoiceapply.getTaskId()); + bv.setTaskDefKey(asBwinvoiceapply.getNodeId()); + bv.setComment("重新提交"); + bv.setInstanceId(dto.getInstanceId()); + return complete(bv); + } + return rb; + } - private int updateFlowFiled(Map beanToMap) { - return baseMapper.updateFlowFiled(beanToMap); - } + private int updateFlowFiled(Map beanToMap) { + return baseMapper.updateFlowFiled(beanToMap); + } - private int submitBusinessData(SubmitBwinvoiceApplyDto dto, AsBwinvoiceapply asBwinvoiceapply) { - int r = 0; - if (StringUtils.isBlank(dto.getSid())) { - r = 1; - } else { - if (asBwinvoiceapply != null) { - String businessTaskId = asBwinvoiceapply.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; - } + private int submitBusinessData(SubmitBwinvoiceApplyDto dto, AsBwinvoiceapply asBwinvoiceapply) { + int r = 0; + if (StringUtils.isBlank(dto.getSid())) { + r = 1; + } else { + if (asBwinvoiceapply != null) { + String businessTaskId = asBwinvoiceapply.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(); - AsBwinvoiceapply asBwinvoiceapply = fetchBySid(businessSid); - Map variables = new HashMap<>(); - //判断发起人是否为前台主管 - String createBySid = asBwinvoiceapply.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(asBwinvoiceapply.getDeptSid()).getData(); - if (sysOrganization != null) { - bv.setOrgSidPath(sysOrganization.getOrgSidPath()); - } - bv.setModelId(asBwinvoiceapply.getProcDefId()); - if (bv.getTaskId().equals(asBwinvoiceapply.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())) { + public ResultBean complete(BusinessVariables bv) { + ResultBean rb = ResultBean.fireFail(); + String businessSid = bv.getBusinessSid(); + AsBwinvoiceapply asBwinvoiceapply = fetchBySid(businessSid); + Map variables = new HashMap<>(); + //判断发起人是否为前台主管 + String createBySid = asBwinvoiceapply.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(asBwinvoiceapply.getDeptSid()).getData(); + if (sysOrganization != null) { + bv.setOrgSidPath(sysOrganization.getOrgSidPath()); + } + bv.setModelId(asBwinvoiceapply.getProcDefId()); + if (bv.getTaskId().equals(asBwinvoiceapply.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())) { - } else { - //极光推送 - asBwinvoiceapply = fetchBySid(businessSid); - MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); - MessageFlowVo messageFlowVo = new MessageFlowVo(); - BeanUtil.copyProperties(ufVo, messageFlowVo); - messageFlowVo.setProcDefId(asBwinvoiceapply.getProcDefId()); - messageFlowVo.setProcInsId(asBwinvoiceapply.getProcInstId()); - messageFlowableQuery.setUfVo(messageFlowVo); - messageFlowableQuery.setAppMap(appMap); - messageFlowableQuery.setBusinessSid(businessSid); - messageFlowableQuery.setModuleName("工单开票申请"); - messageFlowableQuery.setMsgContent(asBwinvoiceapply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); - messageFlowableQuery.setMsgTitle("工单开票申请"); - ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); - } - return rb.success().setData(resultBean.getData()); - } else { - return rb.setMsg("操作失败!提交的数据不一致"); - } - } + } else { + //极光推送 + asBwinvoiceapply = fetchBySid(businessSid); + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + messageFlowVo.setProcDefId(asBwinvoiceapply.getProcDefId()); + messageFlowVo.setProcInsId(asBwinvoiceapply.getProcInstId()); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("工单开票申请"); + messageFlowableQuery.setMsgContent(asBwinvoiceapply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + messageFlowableQuery.setMsgTitle("工单开票申请"); + ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); + } + return rb.success().setData(resultBean.getData()); + } else { + return rb.setMsg("操作失败!提交的数据不一致"); + } + } - public ResultBean> getPreviousNodesForReject(BwinvoiceApplyNodeQuery query) { - ResultBean> rb = ResultBean.fireFail(); - BusinessVariables bv = new BusinessVariables(); - BeanUtil.copyProperties(query, bv); - //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 - Map variables = new HashMap<>(); - //查询业务信息 - AsBwinvoiceapply asBwinvoiceapply = fetchBySid(query.getBusinessSid()); - //判断发起人是否为前台主管 - String createBySid = asBwinvoiceapply.getCreateBySid(); - List list = sysUserRoleFeign.getUserRoleSidByUserSid(createBySid).getData(); - variables.put("iszg", list.contains("f00a7338-a6a4-4712-ab85-ca211d56fb1f")); - bv.setModelId(asBwinvoiceapply.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), BwinvoiceApplyNodeVo.class)).collect(Collectors.toList()); - return rb.success().setData(voList); - } + public ResultBean> getPreviousNodesForReject(BwinvoiceApplyNodeQuery query) { + ResultBean> rb = ResultBean.fireFail(); + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 + Map variables = new HashMap<>(); + //查询业务信息 + AsBwinvoiceapply asBwinvoiceapply = fetchBySid(query.getBusinessSid()); + //判断发起人是否为前台主管 + String createBySid = asBwinvoiceapply.getCreateBySid(); + List list = sysUserRoleFeign.getUserRoleSidByUserSid(createBySid).getData(); + variables.put("iszg", list.contains("f00a7338-a6a4-4712-ab85-ca211d56fb1f")); + bv.setModelId(asBwinvoiceapply.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), BwinvoiceApplyNodeVo.class)).collect(Collectors.toList()); + return rb.success().setData(voList); + } - public ResultBean> getNextNodesForSubmit(BwinvoiceApplyNodeQuery query) { - ResultBean> rb = ResultBean.fireFail(); - BusinessVariables bv = new BusinessVariables(); - BeanUtil.copyProperties(query, bv); - //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 - Map variables = new HashMap<>(); - //查询业务信息 - AsBwinvoiceapply asBwinvoiceapply = fetchBySid(query.getBusinessSid()); - //判断发起人是否为前台主管 - String createBySid = asBwinvoiceapply.getCreateBySid(); - List list = sysUserRoleFeign.getUserRoleSidByUserSid(createBySid).getData(); - variables.put("iszg", list.contains("f00a7338-a6a4-4712-ab85-ca211d56fb1f")); - bv.setModelId(asBwinvoiceapply.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), BwinvoiceApplyNodeVo.class)).collect(Collectors.toList()); - return rb.success().setData(voList); - } + public ResultBean> getNextNodesForSubmit(BwinvoiceApplyNodeQuery query) { + ResultBean> rb = ResultBean.fireFail(); + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 + Map variables = new HashMap<>(); + //查询业务信息 + AsBwinvoiceapply asBwinvoiceapply = fetchBySid(query.getBusinessSid()); + //判断发起人是否为前台主管 + String createBySid = asBwinvoiceapply.getCreateBySid(); + List list = sysUserRoleFeign.getUserRoleSidByUserSid(createBySid).getData(); + variables.put("iszg", list.contains("f00a7338-a6a4-4712-ab85-ca211d56fb1f")); + bv.setModelId(asBwinvoiceapply.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), BwinvoiceApplyNodeVo.class)).collect(Collectors.toList()); + return rb.success().setData(voList); + } - public ResultBean taskReject(BwinvoiceApplyTaskQuery query) { - ResultBean rb = ResultBean.fireFail(); - String businessSid = query.getBusinessSid(); - AsBwinvoiceapply asBwinvoiceapply = fetchBySid(businessSid); - if (asBwinvoiceapply == null) { - return rb.setMsg("该申请不存在"); - } - String businessTaskId = asBwinvoiceapply.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 = asBwinvoiceapply.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); - //极光推送 - asBwinvoiceapply = fetchBySid(businessSid); - MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); - MessageFlowVo messageFlowVo = new MessageFlowVo(); - BeanUtil.copyProperties(ufVo, messageFlowVo); - String procId = asBwinvoiceapply.getProcInstId(); - messageFlowVo.setProcInsId(procId); - messageFlowVo.setProcDefId(asBwinvoiceapply.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(asBwinvoiceapply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); - } + public ResultBean taskReject(BwinvoiceApplyTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + String businessSid = query.getBusinessSid(); + AsBwinvoiceapply asBwinvoiceapply = fetchBySid(businessSid); + if (asBwinvoiceapply == null) { + return rb.setMsg("该申请不存在"); + } + String businessTaskId = asBwinvoiceapply.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 = asBwinvoiceapply.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); + //极光推送 + asBwinvoiceapply = fetchBySid(businessSid); + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + String procId = asBwinvoiceapply.getProcInstId(); + messageFlowVo.setProcInsId(procId); + messageFlowVo.setProcDefId(asBwinvoiceapply.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(asBwinvoiceapply.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(BwinvoiceApplyTaskQuery query) { - ResultBean rb = ResultBean.fireFail(); - if (StringUtils.isBlank(query.getUserSid())) { - return rb.setMsg("参数错误:userSid"); - } - AsBwinvoiceapply asBwinvoiceapply = fetchBySid(query.getBusinessSid()); - String businessTaskId = asBwinvoiceapply.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(BwinvoiceApplyTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + if (StringUtils.isBlank(query.getUserSid())) { + return rb.setMsg("参数错误:userSid"); + } + AsBwinvoiceapply asBwinvoiceapply = fetchBySid(query.getBusinessSid()); + String businessTaskId = asBwinvoiceapply.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(BwinvoiceApplyTaskQuery 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("请填写意见"); - } - AsBwinvoiceapply asBwinvoiceapply = fetchBySid(query.getBusinessSid()); - String businessTaskId = asBwinvoiceapply.getTaskId(); - if (StringUtils.isNotBlank(businessTaskId)) { - if (query.getUserSid().equals(asBwinvoiceapply.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); - 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); - return rb.success().setData(resultBean.getData()); - } - } - } - return rb.setMsg("操作失败!提交的数据不一致!"); - } + public ResultBean breakProcess(BwinvoiceApplyTaskQuery 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("请填写意见"); + } + AsBwinvoiceapply asBwinvoiceapply = fetchBySid(query.getBusinessSid()); + String businessTaskId = asBwinvoiceapply.getTaskId(); + if (StringUtils.isNotBlank(businessTaskId)) { + if (query.getUserSid().equals(asBwinvoiceapply.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); + 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); + return rb.success().setData(resultBean.getData()); + } + } + } + return rb.setMsg("操作失败!提交的数据不一致!"); + } - public ResultBean delegate(BwinvoiceApplyDelegateQuery query) { - ResultBean rb = ResultBean.fireFail(); - FlowDelegateQuery delegateQuery = new FlowDelegateQuery(); - BeanUtil.copyProperties(query, delegateQuery); - flowFeign.delegate(delegateQuery); - return rb.success(); - } + public ResultBean delegate(BwinvoiceApplyDelegateQuery 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-as/src/main/java/com/yxt/anrui/as/biz/asbwinvoiceapplydetail/AsBwinvoiceapplyDetailMapper.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbwinvoiceapplydetail/AsBwinvoiceapplyDetailMapper.java index cda2f7f9b4..c99a10653a 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbwinvoiceapplydetail/AsBwinvoiceapplyDetailMapper.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbwinvoiceapplydetail/AsBwinvoiceapplyDetailMapper.java @@ -59,4 +59,7 @@ public interface AsBwinvoiceapplyDetailMapper extends BaseMapper fetchByMainSid(String mainSid); + + @Select("select count(*) from as_bwinvoiceapply_detail where sourceBillSid = #{sourceBillSid}") + int selBySourceBillSid(String sourceBillSid); } \ No newline at end of file diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbwinvoiceapplydetail/AsBwinvoiceapplyDetailService.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbwinvoiceapplydetail/AsBwinvoiceapplyDetailService.java index 1e4cb5da98..0cbe2ae203 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbwinvoiceapplydetail/AsBwinvoiceapplyDetailService.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbwinvoiceapplydetail/AsBwinvoiceapplyDetailService.java @@ -92,4 +92,8 @@ public class AsBwinvoiceapplyDetailService extends MybatisBaseService fetchByMainSid(String mainSid) { return baseMapper.fetchByMainSid(mainSid); } + + public int selBySourceBillSid(String sourceBillSid) { + return baseMapper.selBySourceBillSid(sourceBillSid); + } } \ No newline at end of file