diff --git a/anrui-scm/anrui-scm-ui/src/views/bikerebate/bikerebatemanagement/bicyclerebatemanagementAdd.vue b/anrui-scm/anrui-scm-ui/src/views/bikerebate/bikerebatemanagement/bicyclerebatemanagementAdd.vue index 56029a8292..fc98b5c66c 100644 --- a/anrui-scm/anrui-scm-ui/src/views/bikerebate/bikerebatemanagement/bicyclerebatemanagementAdd.vue +++ b/anrui-scm/anrui-scm-ui/src/views/bikerebate/bikerebatemanagement/bicyclerebatemanagementAdd.vue @@ -50,7 +50,7 @@ (%) (元) - +
@@ -158,6 +158,26 @@ export default { } }) }, + getSpecialNumber(val, limit) { + val = val.replace(/[^0-9.-]/g, '') // 保留数字 + val = val.replace(/^00/, '0.') // 开头不能有两个0 + val = val.replace(/^\./g, '0.') // 开头为小数点转换为0. + val = val.replace(/\.{2,}/g, '.') // 两个以上的小数点转换成一个 + val = val.replace(/\-{2,}/g, '.') // 两个以上的“-”号转换成一个 + val = val.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.') // 只保留一个小数点 + val = val.replace('-', '$#$').replace(/\-/g, '').replace('$#$', '-'); // 只保留一个"-"号 + /^0\d+/.test(val) ? val = val.slice(1) : '' // 两位以上数字开头不能为0 + const str = '^(\\d+)\\.(\\d{' + limit + '}).*$' + const reg = new RegExp(str) + if (limit === 0) { + // 不需要小数点 + val = val.replace(reg, '$1') + } else { + // 通过正则保留小数点后指定的位数 + val = val.replace(reg, '$1.$2') + } + return val + }, getNumber(val, limit) { val = val.replace(/[^0-9.]/g, '') // 保留数字 val = val.replace(/^00/, '0.') // 开头不能有两个0 diff --git a/anrui-scm/anrui-scm-ui/src/views/bikerebate/bikerebatemanagement/bicyclerebatemanagementEdit.vue b/anrui-scm/anrui-scm-ui/src/views/bikerebate/bikerebatemanagement/bicyclerebatemanagementEdit.vue index 723747c22f..60911e589c 100644 --- a/anrui-scm/anrui-scm-ui/src/views/bikerebate/bikerebatemanagement/bicyclerebatemanagementEdit.vue +++ b/anrui-scm/anrui-scm-ui/src/views/bikerebate/bikerebatemanagement/bicyclerebatemanagementEdit.vue @@ -49,7 +49,7 @@ (%) (元)
- +
车辆信息({{ formobj.vinNo }} — {{ formobj.purchaseSystemName }} — {{ formobj.brandName }})
@@ -175,6 +175,26 @@ export default { } }) }, + getSpecialNumber(val, limit) { + val = val.replace(/[^0-9.-]/g, '') // 保留数字 + val = val.replace(/^00/, '0.') // 开头不能有两个0 + val = val.replace(/^\./g, '0.') // 开头为小数点转换为0. + val = val.replace(/\.{2,}/g, '.') // 两个以上的小数点转换成一个 + val = val.replace(/\-{2,}/g, '.') // 两个以上的“-”号转换成一个 + val = val.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.') // 只保留一个小数点 + val = val.replace('-', '$#$').replace(/\-/g, '').replace('$#$', '-'); // 只保留一个"-"号 + /^0\d+/.test(val) ? val = val.slice(1) : '' // 两位以上数字开头不能为0 + const str = '^(\\d+)\\.(\\d{' + limit + '}).*$' + const reg = new RegExp(str) + if (limit === 0) { + // 不需要小数点 + val = val.replace(reg, '$1') + } else { + // 通过正则保留小数点后指定的位数 + val = val.replace(reg, '$1.$2') + } + return val + }, getNumber(val, limit) { val = val.replace(/[^0-9.]/g, '') // 保留数字 val = val.replace(/^00/, '0.') // 开头不能有两个0 diff --git a/anrui-scm/anrui-scm-ui/src/views/specialrebate/specialrebatemanagement/specialrebatemanagementAdd.vue b/anrui-scm/anrui-scm-ui/src/views/specialrebate/specialrebatemanagement/specialrebatemanagementAdd.vue index d75ae3d003..e52b9ae67e 100644 --- a/anrui-scm/anrui-scm-ui/src/views/specialrebate/specialrebatemanagement/specialrebatemanagementAdd.vue +++ b/anrui-scm/anrui-scm-ui/src/views/specialrebate/specialrebatemanagement/specialrebatemanagementAdd.vue @@ -64,7 +64,7 @@
*预计返利
- +
@@ -151,6 +151,26 @@ export default { } }, methods: { + getSpecialNumber(val, limit) { + val = val.replace(/[^0-9.-]/g, '') // 保留数字 + val = val.replace(/^00/, '0.') // 开头不能有两个0 + val = val.replace(/^\./g, '0.') // 开头为小数点转换为0. + val = val.replace(/\.{2,}/g, '.') // 两个以上的小数点转换成一个 + val = val.replace(/\-{2,}/g, '.') // 两个以上的“-”号转换成一个 + val = val.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.') // 只保留一个小数点 + val = val.replace('-', '$#$').replace(/\-/g, '').replace('$#$', '-'); // 只保留一个"-"号 + /^0\d+/.test(val) ? val = val.slice(1) : '' // 两位以上数字开头不能为0 + const str = '^(\\d+)\\.(\\d{' + limit + '}).*$' + const reg = new RegExp(str) + if (limit === 0) { + // 不需要小数点 + val = val.replace(reg, '$1') + } else { + // 通过正则保留小数点后指定的位数 + val = val.replace(reg, '$1.$2') + } + return val + }, getNumber(val, limit) { val = val.replace(/[^0-9.]/g, '') // 保留数字 val = val.replace(/^00/, '0.') // 开头不能有两个0 diff --git a/yxt-as-ui/src/views/operation/workorderinvoicing/relation/chooseRepairbill.vue b/yxt-as-ui/src/views/operation/workorderinvoicing/relation/chooseRepairbill.vue index 7684bc378d..b1015c8b8d 100644 --- a/yxt-as-ui/src/views/operation/workorderinvoicing/relation/chooseRepairbill.vue +++ b/yxt-as-ui/src/views/operation/workorderinvoicing/relation/chooseRepairbill.vue @@ -101,7 +101,8 @@ export default { vinNo: '', settleTimeStart: '', settleTimeEnd: '', - deptSid: '' + deptSid: '', + sids: [] }, total: 0 } @@ -159,15 +160,15 @@ export default { this.sids = row }, showData(value, deptSid) { - // const aa = [] - // if (value.length > 0) { - // for (var i = 0; i < value.length; i++) { - // aa.push(value[i].saleVehSid) - // } - // this.listQuery.params.saleVehSids = aa - // } else { - // this.listQuery.params.saleVehSids = [] - // }`` + const aa = [] + if (value.length > 0) { + for (var i = 0; i < value.length; i++) { + aa.push(value[i].sourceBillSid) + } + this.listQuery.params.sids = aa + } else { + this.listQuery.params.sids = [] + }`` this.listQuery.params.deptSid = deptSid this.listQuery.current = 1 this.listQuery.size = 5 diff --git a/yxt-as-ui/src/views/operation/workorderinvoicing/workorderinvoicingAdd.vue b/yxt-as-ui/src/views/operation/workorderinvoicing/workorderinvoicingAdd.vue index 7e1c057d4d..0939ba3e44 100644 --- a/yxt-as-ui/src/views/operation/workorderinvoicing/workorderinvoicingAdd.vue +++ b/yxt-as-ui/src/views/operation/workorderinvoicing/workorderinvoicingAdd.vue @@ -240,8 +240,7 @@ export default { }, chooseGd() { this.viewState = 2 - const aa = [] - this.$refs['divGD'].showData(aa, this.formobj.deptSid) + this.$refs['divGD'].showData(this.formobj.asBwinvoiceapplyDetailList, this.formobj.deptSid) }, handleDelete(index) { this.formobj.asBwinvoiceapplyDetailList.splice(index, 1) diff --git a/yxt-as-ui/src/views/workFlow/gongdankaipiaoFlow/relation/chooseRepairbill.vue b/yxt-as-ui/src/views/workFlow/gongdankaipiaoFlow/relation/chooseRepairbill.vue index 0ed0aff36c..93f9bec721 100644 --- a/yxt-as-ui/src/views/workFlow/gongdankaipiaoFlow/relation/chooseRepairbill.vue +++ b/yxt-as-ui/src/views/workFlow/gongdankaipiaoFlow/relation/chooseRepairbill.vue @@ -101,7 +101,8 @@ export default { vinNo: '', settleTimeStart: '', settleTimeEnd: '', - deptSid: '' + deptSid: '', + sids: [] }, total: 0 } @@ -159,15 +160,15 @@ export default { this.sids = row }, showData(value, deptSid) { - // const aa = [] - // if (value.length > 0) { - // for (var i = 0; i < value.length; i++) { - // aa.push(value[i].saleVehSid) - // } - // this.listQuery.params.saleVehSids = aa - // } else { - // this.listQuery.params.saleVehSids = [] - // }`` + const aa = [] + if (value.length > 0) { + for (var i = 0; i < value.length; i++) { + aa.push(value[i].sourceBillSid) + } + this.listQuery.params.sids = aa + } else { + this.listQuery.params.sids = [] + } this.listQuery.params.deptSid = deptSid this.listQuery.current = 1 this.listQuery.size = 5 diff --git a/yxt-as-ui/src/views/workFlow/gongdankaipiaoFlow/workorderinvoicingEdit.vue b/yxt-as-ui/src/views/workFlow/gongdankaipiaoFlow/workorderinvoicingEdit.vue index 1869887be2..9209d6744d 100644 --- a/yxt-as-ui/src/views/workFlow/gongdankaipiaoFlow/workorderinvoicingEdit.vue +++ b/yxt-as-ui/src/views/workFlow/gongdankaipiaoFlow/workorderinvoicingEdit.vue @@ -234,8 +234,7 @@ export default { }, chooseGd() { this.viewState = 2 - const aa = [] - this.$refs['divGD'].showData(aa, this.formobj.deptSid) + this.$refs['divGD'].showData(this.formobj.asBwinvoiceapplyDetailList, this.formobj.deptSid) }, handleDelete(index) { this.formobj.asBwinvoiceapplyDetailList.splice(index, 1) 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 fc94882891..4e44026b6f 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..c73502b058 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,565 @@ 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')" + ); + qw.orderByDesc("ab.createTime"); + 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); + if (asBwinvoiceapply == null){ + return rb.setMsg(saveOrUpdateDto(dto).getMsg()); + } + //创建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 diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/api/AdNoexpatriatesHostelApplyRest.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/api/AdNoexpatriatesHostelApplyRest.java index 5589e45413..a4fe928cff 100644 --- a/yxt-oa/src/main/java/com/yxt/anrui/oa/api/AdNoexpatriatesHostelApplyRest.java +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/api/AdNoexpatriatesHostelApplyRest.java @@ -95,6 +95,7 @@ public class AdNoexpatriatesHostelApplyRest { public ResultBean reject(@Valid @RequestBody TaskDto dto) { return adNoexpatriatesHostelApplyService.reject(dto); } + @ApiOperation("获取流程操作标题") @GetMapping("/getFlowOperateTitle") @ResponseBody diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adexpatriateshomeapply/AdExpatriatesHomeApply.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adexpatriateshomeapply/AdExpatriatesHomeApply.java index 669a61abe6..c83157a549 100644 --- a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adexpatriateshomeapply/AdExpatriatesHomeApply.java +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adexpatriateshomeapply/AdExpatriatesHomeApply.java @@ -31,6 +31,8 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.math.BigDecimal; + @Data @ApiModel(value = "驻外人员探亲申请", description = "驻外人员探亲申请") @TableName("ad_expatriates_home_apply") @@ -61,6 +63,10 @@ public class AdExpatriatesHomeApply extends BaseEntity { @ApiModelProperty("探亲类型") private String homeTypeKey; private String homeTypeValue; + @ApiModelProperty("预计费用") + private BigDecimal expectCost; + @ApiModelProperty("费用明细") + private String costRemarks; @ApiModelProperty("基础表单sid") private String formSid; // 基础表单sid @ApiModelProperty("关联审批sid列表,英文逗号分隔") diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adexpatriateshomeapply/AdExpatriatesHomeApplyDetailVo.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adexpatriateshomeapply/AdExpatriatesHomeApplyDetailVo.java index 3ef2e850d3..52e3798179 100644 --- a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adexpatriateshomeapply/AdExpatriatesHomeApplyDetailVo.java +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adexpatriateshomeapply/AdExpatriatesHomeApplyDetailVo.java @@ -30,6 +30,7 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; @@ -57,6 +58,10 @@ public class AdExpatriatesHomeApplyDetailVo implements Vo { private String peoNum; @ApiModelProperty("探亲类型") private String homeTypeValue; + @ApiModelProperty("预计费用") + private BigDecimal expectCost; + @ApiModelProperty("费用明细") + private String costRemarks; @ApiModelProperty("备注") private String remarks; diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adexpatriateshomeapply/AdExpatriatesHomeApplyDto.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adexpatriateshomeapply/AdExpatriatesHomeApplyDto.java index 5d30b07c13..c6dca589d0 100644 --- a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adexpatriateshomeapply/AdExpatriatesHomeApplyDto.java +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adexpatriateshomeapply/AdExpatriatesHomeApplyDto.java @@ -32,6 +32,7 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; @@ -65,6 +66,10 @@ public class AdExpatriatesHomeApplyDto extends OaFormDto { private FormCommon homeTypeObj; private String homeTypeKey; private String homeTypeValue; + @ApiModelProperty("预计费用") + private BigDecimal expectCost; + @ApiModelProperty("费用明细") + private String costRemarks; @ApiModelProperty("备注") private String remarks; @ApiModelProperty("基础表单sid") diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adexpatriateshomeapply/AdExpatriatesHomeApplyMapper.xml b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adexpatriateshomeapply/AdExpatriatesHomeApplyMapper.xml index 45676c8a0e..9b1c15e492 100644 --- a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adexpatriateshomeapply/AdExpatriatesHomeApplyMapper.xml +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adexpatriateshomeapply/AdExpatriatesHomeApplyMapper.xml @@ -23,7 +23,9 @@ thisEndDate, relationValue, peoNum, - homeTypeValue + homeTypeValue, + expectCost, + costRemarks from ad_expatriates_home_apply where sid = #{sid} diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adexpatriateshomeapply/AdExpatriatesHomeApplyVo.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adexpatriateshomeapply/AdExpatriatesHomeApplyVo.java index 78fed5a156..43c29b36e3 100644 --- a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adexpatriateshomeapply/AdExpatriatesHomeApplyVo.java +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adexpatriateshomeapply/AdExpatriatesHomeApplyVo.java @@ -32,6 +32,7 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; @@ -71,6 +72,10 @@ public class AdExpatriatesHomeApplyVo implements Vo { private FormCommon homeTypeObj; private String homeTypeKey; private String homeTypeValue; + @ApiModelProperty("预计费用") + private BigDecimal expectCost; + @ApiModelProperty("费用明细") + private String costRemarks; @ApiModelProperty("备注") private String remarks; diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adnoexpatriateshostelapply/AdNoexpatriatesHostelApplyDto.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adnoexpatriateshostelapply/AdNoexpatriatesHostelApplyDto.java index 8d352f4a4f..35e8b5cda5 100644 --- a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adnoexpatriateshostelapply/AdNoexpatriatesHostelApplyDto.java +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adnoexpatriateshostelapply/AdNoexpatriatesHostelApplyDto.java @@ -27,6 +27,7 @@ package com.yxt.anrui.oa.biz.adnoexpatriateshostelapply; import com.yxt.anrui.oa.biz.adexpatriatesdetail.AdExpatriatesDetailDto; +import com.yxt.anrui.oa.biz.adnoexpatriateshosteldetail.AdNoexpatriatesHostelDetailDto; import com.yxt.anrui.oa.biz.adnoexpatriateshosteldetail.AdNoexpatriatesHostelDetailVo; import com.yxt.anrui.oa.biz.oaform.FormCommon; import com.yxt.anrui.oa.biz.oaform.OaFormDto; @@ -68,5 +69,5 @@ public class AdNoexpatriatesHostelApplyDto extends OaFormDto { @ApiModelProperty("文件") private List appes = new ArrayList<>(); - private List list = 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/adnoexpatriateshostelapply/AdNoexpatriatesHostelApplyMapper.xml b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adnoexpatriateshostelapply/AdNoexpatriatesHostelApplyMapper.xml index eb0116b51e..52090cbe47 100644 --- a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adnoexpatriateshostelapply/AdNoexpatriatesHostelApplyMapper.xml +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adnoexpatriateshostelapply/AdNoexpatriatesHostelApplyMapper.xml @@ -1,8 +1,8 @@ - - + + - + - - select sid, + userName userValue, + deptName deptValue, postName jobValue, remarks from ad_noexpatriates_hostel_detail diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adnoexpatriateshostelapply/AdNoexpatriatesHostelApplyService.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adnoexpatriateshostelapply/AdNoexpatriatesHostelApplyService.java index 2a8b5e4bec..715a071374 100644 --- a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adnoexpatriateshostelapply/AdNoexpatriatesHostelApplyService.java +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adnoexpatriateshostelapply/AdNoexpatriatesHostelApplyService.java @@ -27,6 +27,7 @@ package com.yxt.anrui.oa.biz.adnoexpatriateshostelapply; import cn.hutool.core.bean.BeanUtil; import com.yxt.anrui.oa.biz.adexpatriatesdetail.AdExpatriatesDetailVo; +import com.yxt.anrui.oa.biz.adnoexpatriateshosteldetail.AdNoexpatriatesHostelDetailDto; import com.yxt.anrui.oa.biz.adnoexpatriateshosteldetail.AdNoexpatriatesHostelDetailService; import com.yxt.anrui.oa.biz.adnoexpatriateshosteldetail.AdNoexpatriatesHostelDetailVo; import com.yxt.anrui.oa.biz.oaappendix.OaAppendixService; @@ -89,6 +90,10 @@ public class AdNoexpatriatesHostelApplyService extends MybatisBaseService { + FormCommon userObj = FormCommon.of(details.getUserKey(), details.getUserValue()); + details.setUserObj(userObj); + FormCommon deptObj = FormCommon.of(details.getDeptKey(), details.getDeptValue()); + details.setDeptObj(deptObj); FormCommon jobObj = FormCommon.of(details.getJobKey(), details.getJobValue()); details.setJobObj(jobObj); }); @@ -106,7 +111,7 @@ public class AdNoexpatriatesHostelApplyService extends MybatisBaseService files = dto.getFiles(); List appes = dto.getAppes(); - List list = dto.getList(); + List list = dto.getList(); if (StringUtils.isBlank(sid)) { // 新建操作 AdNoexpatriatesHostelApply entity = new AdNoexpatriatesHostelApply(); diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adnoexpatriateshosteldetail/AdNoexpatriatesHostelDetail.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adnoexpatriateshosteldetail/AdNoexpatriatesHostelDetail.java index 529c28deb9..823852e29f 100644 --- a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adnoexpatriateshosteldetail/AdNoexpatriatesHostelDetail.java +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adnoexpatriateshosteldetail/AdNoexpatriatesHostelDetail.java @@ -38,9 +38,17 @@ public class AdNoexpatriatesHostelDetail extends BaseEntity { @ApiModelProperty("申请sid") private String mainSid; - @ApiModelProperty("申请人岗位sid") - private String postSid; // 申请人岗位sid - @ApiModelProperty("申请人岗位名称") - private String postName; // 申请人岗位名称 + @ApiModelProperty("人员sid") + private String userSid; + @ApiModelProperty("人员姓名") + private String userName; + @ApiModelProperty("部门sid") + private String deptSid; + @ApiModelProperty("部门名称") + private String deptName; + @ApiModelProperty("岗位sid") + private String postSid; + @ApiModelProperty("岗位名称") + private String postName; } diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adnoexpatriateshosteldetail/AdNoexpatriatesHostelDetailDto.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adnoexpatriateshosteldetail/AdNoexpatriatesHostelDetailDto.java index 13f48fb2cd..8ac399ce3e 100644 --- a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adnoexpatriateshosteldetail/AdNoexpatriatesHostelDetailDto.java +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adnoexpatriateshosteldetail/AdNoexpatriatesHostelDetailDto.java @@ -38,7 +38,15 @@ public class AdNoexpatriatesHostelDetailDto implements Dto { @ApiModelProperty("申请事由及详情") private String remarks; - @ApiModelProperty("申请人职位") + @ApiModelProperty("人员") + private FormCommon userObj; + private String userKey; + private String userValue; + @ApiModelProperty("部门") + private FormCommon deptObj; + private String deptKey; + private String deptValue; + @ApiModelProperty("岗位") private FormCommon jobObj; private String jobKey; private String jobValue; diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adnoexpatriateshosteldetail/AdNoexpatriatesHostelDetailMapper.xml b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adnoexpatriateshosteldetail/AdNoexpatriatesHostelDetailMapper.xml index b114b5b467..4618783da7 100644 --- a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adnoexpatriateshosteldetail/AdNoexpatriatesHostelDetailMapper.xml +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adnoexpatriateshosteldetail/AdNoexpatriatesHostelDetailMapper.xml @@ -7,6 +7,10 @@