diff --git a/anrui-buscenter/anrui-finmanage-ui/src/api/anruifinmanagement/paymentInformation.js b/anrui-buscenter/anrui-finmanage-ui/src/api/anruifinmanagement/paymentInformation.js new file mode 100644 index 0000000000..d089cc3731 --- /dev/null +++ b/anrui-buscenter/anrui-finmanage-ui/src/api/anruifinmanagement/paymentInformation.js @@ -0,0 +1,38 @@ +import request from '@/utils/request' + +export default { + // 查询分页列表 + listPage: function(params) { + return request({ + url: '/fin/v1/finpayment/listPage', + method: 'post', + data: params, + headers: { 'Content-Type': 'application/json' } + }) + }, + // 保存修改记录 + saveOrUpdate: function(params) { + return request({ + url: '/fin/v1/finpayment/save', + method: 'post', + data: params, + headers: { 'Content-Type': 'application/json' } + }) + }, + // 通过sid查询一条记录 + fetchBySid: function(sid) { + return request({ + url: '/fin/v1/finpayment/fetchDetailsBySid/' + sid, + method: 'get' + }) + }, + // 通过sid删除一条或多条记录 + delBySids: function(data) { + return request({ + url: '/fin/v1/finpayment/delBySids', + method: 'DELETE', + data: data, + headers: { 'Content-Type': 'application/json' } + }) + } +} diff --git a/anrui-buscenter/anrui-finmanage-ui/src/router/modules/codemenu.js b/anrui-buscenter/anrui-finmanage-ui/src/router/modules/codemenu.js index 11bbc9a99b..8a70444d61 100644 --- a/anrui-buscenter/anrui-finmanage-ui/src/router/modules/codemenu.js +++ b/anrui-buscenter/anrui-finmanage-ui/src/router/modules/codemenu.js @@ -124,6 +124,21 @@ const codemenu = [ meta: { title: '付款申请管理', noCache: true } }] }, + // 付款单位信息管理 + { + path: '/anruifinmanagement', + component: Layout, + redirect: '/anruifinmanagement', + meta: { + title: '款项结转申请' + }, + children: [{ + path: '/anruifinmanagement/paymentInformation', + component: () => import('@/views/anruifinmanagement/paymentInformation/paymentInformation.vue'), + name: 'PaymentInformation', + meta: { title: '付款信息管理', noCache: true } + }] + }, { path: '/anruifinmanagement', component: Layout, @@ -213,7 +228,7 @@ const codemenu = [ component: Layout, redirect: '/finginvoiceapply', meta: { - title: '欠款开票申请管理' + title: '欠款领票申请管理' }, children: [{ path: '/anruifinmanagement/finginvoiceapply/arrearscollection', @@ -222,7 +237,7 @@ const codemenu = [ meta: { title: '欠款领票申请管理', noCache: true } }] }, - // 欠款领票申请管理 + // 简易订单可用订金 { path: '/moneycarriedforward', component: Layout, @@ -237,7 +252,7 @@ const codemenu = [ meta: { title: '简易订单可用订金', noCache: true } }] }, - // 欠款领票申请管理 + // 未出库车辆已认款项 { path: '/moneycarriedforward', component: Layout, @@ -252,7 +267,7 @@ const codemenu = [ meta: { title: '未出库车辆已认款项', noCache: true } }] }, - // 欠款领票申请管理 + // 款项结转申请管理 { path: '/moneycarriedforward', component: Layout, diff --git a/anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/paymentInformation/paymentInformation.vue b/anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/paymentInformation/paymentInformation.vue new file mode 100644 index 0000000000..e6c7031f36 --- /dev/null +++ b/anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/paymentInformation/paymentInformation.vue @@ -0,0 +1,387 @@ + + + + + + + + + {{ searchxianshitit }} + + + + + + + + + + + + + + 查询 + 重置 + + + + + + 付款信息列表 + + + + + + + + + + 编辑 + + + + + + + + + + + + + + + + + + + + + + + + 单位编码 + + + + 单位名称 + + + + + + 开户行 + + + + 银行账号 + + + + + + 业务类型 + + + + + + + + 备注 + + + + + + + + + + + diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeign.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeign.java index bcc4c44d2c..44b56c2605 100644 --- a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeign.java +++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeign.java @@ -83,6 +83,10 @@ public interface FinKingDeeFeign { @ResponseBody ResultBean saveJRRebatePrepareVoucher(@RequestBody @Valid GeneralVoucher voucher); + @ApiOperation("保存金融贴息差异调整凭证") + @PostMapping("/saveJRAdjustVoucher") + @ResponseBody + ResultBean saveJRAdjustVoucher(@RequestBody @Valid GeneralVoucher voucher); @ApiOperation("保存单车返利核对凭证") @PostMapping("/saveRebateReviewVoucher") diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeignFallBack.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeignFallBack.java index ddf5fab785..d9bbea601b 100644 --- a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeignFallBack.java +++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeignFallBack.java @@ -59,6 +59,11 @@ implements FinKingDeeFeign{ return null; } + @Override + public ResultBean saveJRAdjustVoucher(@Valid GeneralVoucher voucher) { + return null; + } + @Override public ResultBean saveRebateReviewVoucher(@Valid GeneralVoucher voucher) { return null; diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java index 83193370e3..25c7367741 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java @@ -312,6 +312,48 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign { return voucherService.saveVoucher(newVoucher); } + @Override + public ResultBean saveJRAdjustVoucher(@Valid GeneralVoucher voucher) { + ResultBean rb = ResultBean.fireFail(); + Voucher newVoucher = new Voucher(); + List resultDetails = new ArrayList<>(); + if (StringUtils.isNotBlank(voucher.getUseOrgCode())) { + newVoucher.setAccountBook(voucher.getUseOrgCode()); + newVoucher.setVoucherNo(voucher.getUseOrgCode()); + } + if (StringUtils.isNotBlank(voucher.getBussDate())) { + newVoucher.setBussDate(voucher.getBussDate()); + } + List voucherDetails = voucher.getVoucherDetails(); + if (!voucherDetails.isEmpty()) { + for (GeneralVoucher.GeneralVoucherDetail voucherDetail : voucherDetails) { + Voucher.VoucherResultDetailDto dto1 = new Voucher.VoucherResultDetailDto(); //借方 + Voucher.VoucherResultDetailDto dto2 = new Voucher.VoucherResultDetailDto(); //贷方 + dto1.setSummary("客户承担金融贴息差额"); + dto2.setSummary("客户承担金融贴息差额"); + if (voucherDetail.getType().equals("上年")) { + dto1.setSubjectNo("1161.02.19"); + } else if (voucherDetail.getType().equals("本年")) { + dto1.setSubjectNo("1161.01.19"); + } + dto2.setSubjectNo("1133.10.00"); + dto1.setDimensionDept(voucherDetail.getDeptCode()); + dto1.setManufacturer(voucherDetail.getManufacturer()); + dto1.setDimensionCustom(voucherDetail.getCustomerCode()); + dto1.setMaterial(voucherDetail.getMaterial()); + dto2.setDimensionDept(voucherDetail.getDeptCode()); + dto2.setDimensionCustom(voucherDetail.getCustomerCode()); + dto1.setDebit(voucherDetail.getAmount().negate().toString()); + dto2.setDebit(voucherDetail.getAmount().toString()); + resultDetails.add(dto1); + resultDetails.add(dto2); + } + newVoucher.setResultDetails(resultDetails); + } + log.info("FinKingDeeFeignRest-saveVoucher:{}", JSONObject.toJSONString(newVoucher)); + return voucherService.saveVoucher(newVoucher); + } + @Override public ResultBean saveRebateReviewVoucher(@Valid GeneralVoucher voucher) { ResultBean rb = ResultBean.fireFail(); diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysstafforg/OrgVo.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysorganization/OrgVo.java similarity index 84% rename from anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysstafforg/OrgVo.java rename to anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysorganization/OrgVo.java index 6329c6634c..83c43780ac 100644 --- a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysstafforg/OrgVo.java +++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysorganization/OrgVo.java @@ -1,4 +1,4 @@ -package com.yxt.anrui.portal.api.sysstafforg; +package com.yxt.anrui.portal.api.sysorganization; import lombok.Data; diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysorganization/SysOrganizationFeign.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysorganization/SysOrganizationFeign.java index 2e97d551d7..805c8205e5 100644 --- a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysorganization/SysOrganizationFeign.java +++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysorganization/SysOrganizationFeign.java @@ -230,4 +230,8 @@ public interface SysOrganizationFeign { @ApiOperation("当前分公司销售专员") ResultBean> selectStaffListByUseOrgSid(@RequestParam("useOrgSid") String useOrgSid); + @GetMapping("/getOrgByPath") + @ResponseBody + @ApiOperation("根据组织全路径查询组织") + ResultBean getOrgByPath(@RequestParam("orgSidPath") String orgSidPath); } diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysorganization/SysOrganizationFeignFallback.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysorganization/SysOrganizationFeignFallback.java index c05fdcbe34..13d3897069 100644 --- a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysorganization/SysOrganizationFeignFallback.java +++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysorganization/SysOrganizationFeignFallback.java @@ -236,4 +236,9 @@ public class SysOrganizationFeignFallback implements SysOrganizationFeign { public ResultBean> selectStaffListByUseOrgSid(String useOrgSid) { return null; } + + @Override + public ResultBean getOrgByPath(String orgSidPath) { + return null; + } } diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysstafforg/SysStaffOrgFeign.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysstafforg/SysStaffOrgFeign.java index ebbce096c8..a3dc63584a 100644 --- a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysstafforg/SysStaffOrgFeign.java +++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysstafforg/SysStaffOrgFeign.java @@ -127,8 +127,5 @@ public interface SysStaffOrgFeign { @ApiOperation("根据组织全路径查询当前部门下的所有员工") ResultBean> selAllByOrgSidPath(@RequestParam("orgSidPath") String orgSidPath); - @GetMapping("/getOrgByPath") - @ResponseBody - @ApiOperation("根据组织全路径查询组织") - ResultBean getOrgByPath(@RequestParam("orgSidPath") String orgSidPath); + } \ No newline at end of file diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysstafforg/SysStaffOrgFeignFallback.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysstafforg/SysStaffOrgFeignFallback.java index 2f5062ccca..094d29637b 100644 --- a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysstafforg/SysStaffOrgFeignFallback.java +++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysstafforg/SysStaffOrgFeignFallback.java @@ -1,5 +1,6 @@ package com.yxt.anrui.portal.api.sysstafforg; +import com.yxt.anrui.portal.api.sysorganization.OrgVo; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; @@ -51,7 +52,7 @@ public class SysStaffOrgFeignFallback implements SysStaffOrgFeign { public ResultBean save(SysStaffOrgDto dto){ return ResultBean.fireFail().setMsg("接口anrui_portal/sysstafforg/save无法访问"); } - + @Override public ResultBean update(SysStaffOrgDto dto,String sid){ return ResultBean.fireFail().setMsg("接口anrui_portal/sysstafforg/update无法访问"); @@ -115,11 +116,6 @@ public class SysStaffOrgFeignFallback implements SysStaffOrgFeign { return null; } - @Override - public ResultBean getOrgByPath(String orgSidPath) { - return null; - } - @Override public ResultBean selectAllByStaffSid(String staffSid) { return null; diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationRest.java b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationRest.java index 36d243e1db..4f502ea096 100644 --- a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationRest.java +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationRest.java @@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil; import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign; import com.yxt.anrui.portal.api.sysorganization.*; import com.yxt.anrui.portal.api.sysstaffinfo.SysStaffinfo; +import com.yxt.anrui.portal.api.sysorganization.OrgVo; import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg; import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgVo; import com.yxt.anrui.portal.api.sysuser.SysUser; @@ -505,4 +506,9 @@ public class SysOrganizationRest implements SysOrganizationFeign { List voList = sysOrganizationService.selectStaffListByUseOrgSid(useOrgSid); return rb.success().setData(voList); } + + @Override + public ResultBean getOrgByPath(String orgSidPath) { + return sysOrganizationService.getOrgByPath(orgSidPath); + } } diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationService.java b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationService.java index 2265b61478..2e92bb5823 100644 --- a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationService.java +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationService.java @@ -717,7 +717,7 @@ public class SysOrganizationService extends MybatisBaseService selectByOrgCodeAndPsid(String orgCode, String pSid) { - return baseMapper.selectByOrgCodeAndPsid(orgCode,pSid); + return baseMapper.selectByOrgCodeAndPsid(orgCode, pSid); } public List tranOne(String sid) { @@ -728,8 +728,8 @@ public class SysOrganizationService extends MybatisBaseService tranThree(String sid,String deptSid) { - return baseMapper.tranThree(sid,deptSid); + public List tranThree(String sid, String deptSid) { + return baseMapper.tranThree(sid, deptSid); } public List tranfour(String sid) { @@ -749,4 +749,26 @@ public class SysOrganizationService extends MybatisBaseService(); } + + public ResultBean getOrgByPath(String orgSidPath) { + ResultBean rb = ResultBean.fireFail(); + OrgVo orgVo = new OrgVo(); + String[] levels = orgSidPath.split("/"); // 将orgSidPath按'/'分割 + String orgSid = ""; + // 判断层级 + if (levels.length > 3) { + orgSid = levels[2]; // 第三层级的sid + } else { + orgSid = levels[levels.length - 2]; // 倒数第二层级的sid + } + SysOrganization sysOrganization = fetchBySid(orgSid); + orgVo.setUseOrgName(sysOrganization.getName()); + orgVo.setUseOrgSid(sysOrganization.getSid()); + orgVo.setOrgCode(sysOrganization.getOrgCode()); + String lastPart = levels[levels.length - 1]; + sysOrganization = fetchBySid(lastPart); + orgVo.setDeptName(sysOrganization.getName()); + orgVo.setDeptSid(sysOrganization.getSid()); + return rb.success().setData(orgVo); + } } diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstafforg/SysStaffOrgRest.java b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstafforg/SysStaffOrgRest.java index 7988cc6b0d..84d1057e0f 100644 --- a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstafforg/SysStaffOrgRest.java +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstafforg/SysStaffOrgRest.java @@ -1,5 +1,6 @@ package com.yxt.anrui.portal.biz.sysstafforg; +import com.yxt.anrui.portal.api.sysorganization.OrgVo; import com.yxt.anrui.portal.api.sysstafforg.*; import com.yxt.common.base.utils.StringUtils; import com.yxt.common.core.query.PagerQuery; @@ -160,8 +161,4 @@ public class SysStaffOrgRest implements SysStaffOrgFeign { return sysStaffOrgService.getPathSidByUserSid(applySid); } - @Override - public ResultBean getOrgByPath(String orgSidPath) { - return sysStaffOrgService.getOrgByPath(orgSidPath); - } } diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstafforg/SysStaffOrgService.java b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstafforg/SysStaffOrgService.java index 24ddf33dfb..e39027de16 100644 --- a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstafforg/SysStaffOrgService.java +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstafforg/SysStaffOrgService.java @@ -3,6 +3,7 @@ package com.yxt.anrui.portal.biz.sysstafforg; import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.yxt.anrui.portal.api.sysorganization.OrgVo; import com.yxt.anrui.portal.api.sysorganization.SysOrganization; import com.yxt.anrui.portal.api.sysstafforg.*; import com.yxt.anrui.portal.api.sysuser.SysUserInfoVo; @@ -341,25 +342,5 @@ public class SysStaffOrgService extends MybatisBaseService getOrgByPath(String orgSidPath) { - ResultBean rb = ResultBean.fireFail(); - OrgVo orgVo = new OrgVo(); - String[] levels = orgSidPath.split("/"); // 将orgSidPath按'/'分割 - String orgSid = ""; - // 判断层级 - if (levels.length > 3) { - orgSid = levels[2]; // 第三层级的sid - } else { - orgSid = levels[levels.length - 2]; // 倒数第二层级的sid - } - SysOrganization sysOrganization = sysOrganizationService.fetchBySid(orgSid); - orgVo.setUseOrgName(sysOrganization.getName()); - orgVo.setUseOrgSid(sysOrganization.getSid()); - orgVo.setOrgCode(sysOrganization.getOrgCode()); - String lastPart = orgSidPath.contains("/") ? orgSidPath.substring(orgSidPath.lastIndexOf("/") + 1) : orgSidPath; - sysOrganization = sysOrganizationService.fetchBySid(lastPart); - orgVo.setDeptName(sysOrganization.getName()); - orgVo.setDeptSid(sysOrganization.getSid()); - return rb.success().setData(orgVo); - } + } \ No newline at end of file diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/AdjustDetailsListVo.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/AdjustDetailsListVo.java index 435eb70867..4da284843e 100644 --- a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/AdjustDetailsListVo.java +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/AdjustDetailsListVo.java @@ -81,4 +81,7 @@ public class AdjustDetailsListVo { */ private String vinNo; + private String salesOrderSid; // 销售订单sid + private String checkApplySid; // 单车上传核对sid + } diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/AdjustVehListVo.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/AdjustVehListVo.java index c559cfd546..24574cf5cc 100644 --- a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/AdjustVehListVo.java +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/AdjustVehListVo.java @@ -47,5 +47,6 @@ public class AdjustVehListVo { @ApiModelProperty("单车返利管理sid") private String rebateSid; // 单车返利管理sid private String salesOrderSid; // 销售订单sid + private String checkApplySid; // 单车上传核对sid } diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/ScmFinanceAdjustApplyFeign.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/ScmFinanceAdjustApplyFeign.java index 54ddae8c55..ec605488c5 100644 --- a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/ScmFinanceAdjustApplyFeign.java +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/ScmFinanceAdjustApplyFeign.java @@ -25,6 +25,7 @@ *********************************************************/ package com.yxt.anrui.scm.api.scmfinanceadjustapply; +import com.yxt.anrui.scm.api.scmfinanceadjustapply.app.AppDetailsVo; import com.yxt.anrui.scm.api.scmfinanceadjustapply.flow.*; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; @@ -54,8 +55,8 @@ import java.util.List; */ @Api(tags = "金融贴息差异调整申请") @FeignClient( - contextId = "scm-ScmFinanceAdjustApply", - name = "scm", + contextId = "anrui-scm-ScmFinanceAdjustApply", + name = "anrui-scm", path = "v1/scmfinanceadjustapply", fallback = ScmFinanceAdjustApplyFeignFallback.class) public interface ScmFinanceAdjustApplyFeign { @@ -135,4 +136,20 @@ public interface ScmFinanceAdjustApplyFeign { @ApiOperation(value = "加签") @PostMapping(value = "/delegate") public ResultBean delegate(@RequestBody AdjustDelegateQuery distributorDelegateQuery); + + @ApiOperation(value = "转办") + @PutMapping(value = "/assignTask") + @ResponseBody + public ResultBean assignTask(@RequestBody AdjustDelegateQuery query); + + + + //----------------------------- app ---------------------------------- + + @ApiOperation("根据SID获取一条记录") + @GetMapping("/getAppDetails/{sid}") + @ResponseBody + public ResultBean getAppDetails(@PathVariable("sid") String sid); + + } \ No newline at end of file diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/ScmFinanceAdjustApplyFeignFallback.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/ScmFinanceAdjustApplyFeignFallback.java index acc9f84136..91a68808cb 100644 --- a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/ScmFinanceAdjustApplyFeignFallback.java +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/ScmFinanceAdjustApplyFeignFallback.java @@ -25,6 +25,7 @@ *********************************************************/ package com.yxt.anrui.scm.api.scmfinanceadjustapply; +import com.yxt.anrui.scm.api.scmfinanceadjustapply.app.AppDetailsVo; import com.yxt.anrui.scm.api.scmfinanceadjustapply.flow.*; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; @@ -131,4 +132,14 @@ public class ScmFinanceAdjustApplyFeignFallback implements ScmFinanceAdjustApply public ResultBean delegate(AdjustDelegateQuery distributorDelegateQuery) { return null; } + + @Override + public ResultBean assignTask(AdjustDelegateQuery query) { + return null; + } + + @Override + public ResultBean getAppDetails(String sid) { + return null; + } } \ No newline at end of file diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/app/AppDetailsVo.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/app/AppDetailsVo.java new file mode 100644 index 0000000000..d8fe46c4aa --- /dev/null +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/app/AppDetailsVo.java @@ -0,0 +1,78 @@ +package com.yxt.anrui.scm.api.scmfinanceadjustapply.app; + +import lombok.Data; + +import java.util.List; + +@Data +public class AppDetailsVo { + + private String sid; + /** + * 调整方式 + */ + private String adjustWay; + /** + * 申请编号 + */ + private String billNo; + /** + * 申请人姓名 + */ + private String createByName; + /** + * 申请日期 + */ + private String createTime; + /** + * 附件 + */ + private List files; + /** + * 明细列表 + */ + private List list; + private String procInsId; + /** + * 分公司-部门 + */ + private String publishInfo; + /** + * 备注 + */ + private String remarks; + /** + * 销售经理 + */ + private String salesManage; + /** + * 销售专员 + */ + private String staffName; + private String taskId; + /** + * 差额 + */ + private String adjustmentMoneyTotal; + /** + * 已调整金额 + */ + private String alreadyMoneyTotal; + /** + * 订单贴息金额 + */ + private String estimateRebateTotal; + /** + * 本次调整金额 + */ + private String nowAdjustmentMoneyTotal; + /** + * 当前差额 + */ + private String nowDiffAmountTotal; + /** + * 上传贴息金额 + */ + private String uploadMoneyTotal; + +} diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/app/AppListVo.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/app/AppListVo.java new file mode 100644 index 0000000000..214f4d0c78 --- /dev/null +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/app/AppListVo.java @@ -0,0 +1,64 @@ +package com.yxt.anrui.scm.api.scmfinanceadjustapply.app; + +import lombok.Data; + +@Data +public class AppListVo { + + + /** + * 差额 + */ + private String adjustmentMoney; + /** + * 已调整金额 + */ + private String alreadyMoney; + /** + * 品牌 + */ + private String brandName; + /** + * 合同号 + */ + private String contractNo; + /** + * 客户 + */ + private String customerName; + /** + * 订单贴息金额 + */ + private String estimateRebate; + /** + * 本次调整金额 + */ + private String nowAdjustmentMoney; + /** + * 当前差额 + */ + private String nowDiffAmount; + + /** + * 采购系统名称 + */ + private String purchaseSystemName; + /** + * 调整说明 + */ + private String remarks; + /** + * 上传贴息金额 + */ + private String uploadMoney; + /** + * 车型 + */ + private String vehModelName; + /** + * 车架号 + */ + private String vinNo; + + private String salesOrderSid; +} diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustdetails/ScmFinanceAdjustDetails.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustdetails/ScmFinanceAdjustDetails.java index cc84e7c207..bae822fdba 100644 --- a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustdetails/ScmFinanceAdjustDetails.java +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustdetails/ScmFinanceAdjustDetails.java @@ -91,5 +91,6 @@ public class ScmFinanceAdjustDetails extends BaseEntity { @ApiModelProperty("单车返利管理sid") private String rebateSid; // 单车返利管理sid private String salesOrderSid; // 销售订单sid + private String checkApplySid; // 单车上传核对sid } diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustdetails/ScmFinanceAdjustDetailsFeign.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustdetails/ScmFinanceAdjustDetailsFeign.java index 4ddc615eb2..1d3ca25520 100644 --- a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustdetails/ScmFinanceAdjustDetailsFeign.java +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustdetails/ScmFinanceAdjustDetailsFeign.java @@ -25,16 +25,14 @@ *********************************************************/ package com.yxt.anrui.scm.api.scmfinanceadjustdetails; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.*; -import java.util.List; - /** * Project: scm(金融贴息) * File: ScmFinanceAdjustDetailsFeign.java @@ -50,8 +48,8 @@ import java.util.List; */ @Api(tags = "金融贴息差异金额调整明细表") @FeignClient( - contextId = "scm-ScmFinanceAdjustDetails", - name = "scm", + contextId = "anrui-scm-ScmFinanceAdjustDetails", + name = "anrui-scm", path = "v1/scmfinanceadjustdetails", fallback = ScmFinanceAdjustDetailsFeignFallback.class) public interface ScmFinanceAdjustDetailsFeign { diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmfinanceadjustapply/ScmFinanceAdjustApplyMapper.xml b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmfinanceadjustapply/ScmFinanceAdjustApplyMapper.xml index 66c95757a8..d503b9522e 100644 --- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmfinanceadjustapply/ScmFinanceAdjustApplyMapper.xml +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmfinanceadjustapply/ScmFinanceAdjustApplyMapper.xml @@ -50,6 +50,7 @@ END AS `state` FROM (SELECT + a.sid as checkApplySid, d.vehRebateSid as rebateSid, a.useOrgSid, d.purchaseSystemSid, @@ -73,7 +74,7 @@ LEFT JOIN scm_vehrebate_checkapply as a ON d.mainSid = a.sid LEFT JOIN scm_veh_rebate as r ON d.vehRebateSid = r.sid WHERE r.adjustmentMoney < 0 AND a.nodeState = '已办结' AND d.rebateTypeValue = '金融贴息') as n - INNER JOIN anrui_buscenter.bus_sales_order as bo ON n.orderSid = bo.sid + LEFT JOIN anrui_buscenter.bus_sales_order as bo ON n.orderSid = bo.sid ${ew.sqlSegment} getAppDetails(String sid) { + return scmFinanceAdjustApplyService.getAppDetails(sid); + } } diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmfinanceadjustapply/ScmFinanceAdjustApplyService.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmfinanceadjustapply/ScmFinanceAdjustApplyService.java index 544a1d552f..2953378ec2 100644 --- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmfinanceadjustapply/ScmFinanceAdjustApplyService.java +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmfinanceadjustapply/ScmFinanceAdjustApplyService.java @@ -31,10 +31,23 @@ import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.google.common.util.concurrent.ThreadFactoryBuilder; +import com.yxt.anrui.base.api.basevehicle.BaseVehicle; +import com.yxt.anrui.base.api.basevehicle.BaseVehicleFeign; import com.yxt.anrui.base.api.commonappendix.CommonAttachTypeEnum; import com.yxt.anrui.base.common.enums.BillTypeEnum; import com.yxt.anrui.base.common.utils.Rule; import com.yxt.anrui.base.common.utils.domain.BillNo; +import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder; +import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderFeign; +import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle; +import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign; +import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTemp; +import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempFeign; +import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailedDto; +import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailedFeign; +import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign; +import com.yxt.anrui.fin.api.kingdee.costadjustmentsbill.CostAdjustmentsBill; +import com.yxt.anrui.fin.api.kingdee.voucher.GeneralVoucher; import com.yxt.anrui.flowable.api.flow.FlowableFeign; import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo; import com.yxt.anrui.flowable.api.flow2.FlowDelegateQuery; @@ -55,10 +68,17 @@ import com.yxt.anrui.portal.api.sysuser.SysUserVo; import com.yxt.anrui.scm.api.scmfile.ScmFileDto; import com.yxt.anrui.scm.api.scmfile.ScmFileVo; import com.yxt.anrui.scm.api.scmfinanceadjustapply.*; +import com.yxt.anrui.scm.api.scmfinanceadjustapply.app.AppDetailsVo; +import com.yxt.anrui.scm.api.scmfinanceadjustapply.app.AppListVo; import com.yxt.anrui.scm.api.scmfinanceadjustapply.flow.*; import com.yxt.anrui.scm.api.scmfinanceadjustdetails.ScmFinanceAdjustDetails; +import com.yxt.anrui.scm.api.scmvehrebate.ScmVehRebate; +import com.yxt.anrui.scm.api.scmvehrebatecheckapply.ScmVehrebateCheckapply; import com.yxt.anrui.scm.biz.scmfile.ScmFileService; import com.yxt.anrui.scm.biz.scmfinanceadjustdetails.ScmFinanceAdjustDetailsService; +import com.yxt.anrui.scm.biz.scmvehrebate.ScmVehRebateService; +import com.yxt.anrui.scm.biz.scmvehrebatecheckapply.ScmVehrebateCheckapplyService; +import com.yxt.anrui.scm.biz.scmvehrebatewithapply.ScmVehRebateWithApplyService; import com.yxt.common.base.config.component.DocPdfComponent; import com.yxt.common.base.config.component.FileUploadComponent; import com.yxt.common.base.service.MybatisBaseService; @@ -93,7 +113,16 @@ import java.util.stream.Collectors; */ @Service public class ScmFinanceAdjustApplyService extends MybatisBaseService { - + @Autowired + private BusSalesOrderVehicleFeign busSalesOrderVehicleFeign; + @Autowired + private FinUncollectedReceivablesDetailedFeign finUncollectedReceivablesDetailedFeign; + @Autowired + private BaseVehicleFeign baseVehicleFeign; + @Autowired + private BusSalesOrderFeign busSalesOrderFeign; + @Autowired + private ScmVehrebateCheckapplyService scmVehrebateCheckapplyService; @Autowired private MessageFeign messageFeign; @Autowired @@ -116,6 +145,14 @@ public class ScmFinanceAdjustApplyService extends MybatisBaseService createQueryWrapper(ScmFinanceAdjustApplyQuery query) { // todo: 这里根据具体业务调整查询条件 @@ -672,26 +709,172 @@ public class ScmFinanceAdjustApplyService extends MybatisBaseService details = scmFinanceAdjustDetailsService.selByMainSid(sid); + String format = scmVehRebateWithApplyService.returnBusDate(new Date()); if (!details.isEmpty() && details.size() > 0) { - for (ScmFinanceAdjustDetails detail : details) { - - - - - if (adjustWay.equals("客户交纳")) { - - - - } else if (adjustWay.equals("公司认损")) { - - + if (adjustWay.equals("客户交纳")) { + //按照采购系统分组 + if (!details.isEmpty()) { + Map> map = details.stream().collect(Collectors.groupingBy(ScmFinanceAdjustDetails::getPurchaseSystemSid)); + map.forEach((k, v) -> { + List rebates = v; + GeneralVoucher generalVoucher = new GeneralVoucher(); + generalVoucher.setBussDate(format); + List voucherDetails = new ArrayList<>(); + if (!v.isEmpty()) { + for (ScmFinanceAdjustDetails rebate : v) { + String useOrgCode = ""; + String vinCode = ""; + String deptCode = ""; + if (StringUtils.isNotBlank(adjustApply.getUseOrgSid())) { + String useOrgSid = adjustApply.getUseOrgSid(); + SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData(); + if (null != organizationVo) { + generalVoucher.setUseOrgCode(organizationVo.getOrgCode()); + useOrgCode = organizationVo.getOrgCode(); + } + } + GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail(); + String summaryTag = "";//摘要前缀 + ScmVehrebateCheckapply checkapply = scmVehrebateCheckapplyService.fetchBySid(rebate.getCheckApplySid()); + if (null != checkapply) { + if (StringUtils.isNotBlank(checkapply.getCheckApply())) { + summaryTag = checkapply.getCheckApply(); + } + } + String finalSummaryTag = summaryTag; + String[] split = finalSummaryTag.split("年"); + String y1 = split[0]; //核对申请标题年份 + ScmVehRebate scmVehRebate = scmVehRebateService.fetchBySid(rebate.getRebateSid()); + String palceGenDate = scmVehRebate.getPalceGenDate(); + String[] palceGenDateSplit = palceGenDate.split("-"); + String y2 = palceGenDateSplit[0];//所属年份 + if (y1.equals(y2)) { + voucherDetail.setType("本年"); + } else { + voucherDetail.setType("上年"); + } + BusSalesOrder salesOrder = busSalesOrderFeign.fetchBySid(rebate.getSalesOrderSid()).getData(); + if (null != salesOrder) { + SysOrganizationVo data = sysOrganizationFeign.fetchBySid(salesOrder.getOrgSid()).getData(); + if (null != data) { + voucherDetail.setDeptCode(data.getOrgCode()); //部门编码赋值 + deptCode = data.getOrgCode(); + } + } + BaseVehicle vehicle = baseVehicleFeign.fetchBySid(rebate.getVehSid()).getData(); + if (null != vehicle) { + if (StringUtils.isNotBlank(vehicle.getManufacturerCode())) { + voucherDetail.setManufacturer(vehicle.getManufacturerCode()); + } + vinCode = vehicle.getVinNo().substring(vehicle.getVinNo().length() - 8); + voucherDetail.setMaterial(vinCode); + } + if (StringUtils.isNotBlank(rebate.getCustomerSid())) { + CrmCustomerTemp customerTemp = crmCustomerTempFeign.fetchEntity(rebate.getCustomerSid()).getData(); + if (null != customerTemp) { + voucherDetail.setCustomerCode(customerTemp.getCustomerNo()); + } + } + if (null != rebate.getNowAdjustmentMoney()) { + if (rebate.getNowAdjustmentMoney().compareTo(BigDecimal.ZERO) > 0) { + voucherDetail.setAmount(rebate.getNowAdjustmentMoney()); + voucherDetails.add(voucherDetail); + } + } + //生成应收 + if (null != salesOrder) { + FinUncollectedReceivablesDetailedDto finUncollectedReceivablesDetailedDto = new FinUncollectedReceivablesDetailedDto(); + finUncollectedReceivablesDetailedDto.setCreateByName(adjustApply.getCreateByName()); + finUncollectedReceivablesDetailedDto.setCreateBySid(adjustApply.getCreateBySid()); + finUncollectedReceivablesDetailedDto.setContractNo(rebate.getContractNo()); + finUncollectedReceivablesDetailedDto.setCustomerSid(rebate.getCustomerSid()); + finUncollectedReceivablesDetailedDto.setCustomerName(rebate.getCustomerName()); + finUncollectedReceivablesDetailedDto.setVIN(rebate.getVinNo()); + if (StringUtils.isNotBlank(salesOrder.getMobile())) { + finUncollectedReceivablesDetailedDto.setCustomerPhone(salesOrder.getMobile()); + } + finUncollectedReceivablesDetailedDto.setUseOrgSid(adjustApply.getUseOrgSid()); + finUncollectedReceivablesDetailedDto.setReceivablesName("车款"); + finUncollectedReceivablesDetailedDto.setCurrentReceivableMoney(rebate.getNowAdjustmentMoney().toString()); + finUncollectedReceivablesDetailedDto.setReveivableMoney(rebate.getNowAdjustmentMoney().toString()); + BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.selectByNoAndVinSid(rebate.getContractNo(), rebate.getVehSid()).getData(); + finUncollectedReceivablesDetailedDto.setOrgSidPath(salesOrder.getOrgSidPath()); + finUncollectedReceivablesDetailedDto.setBusVinSid(busSalesOrderVehicle.getSid()); + finUncollectedReceivablesDetailedDto.setPayTypeKey(salesOrder.getPayTypeKey()); + finUncollectedReceivablesDetailedDto.setPayType(salesOrder.getPayType()); + finUncollectedReceivablesDetailedDto.setUseOrgName(adjustApply.getUseOrgName()); + finUncollectedReceivablesDetailedDto.setKxState("01"); + finUncollectedReceivablesDetailedDto.setPurchaseSystemSid(rebate.getPurchaseSystemSid()); + finUncollectedReceivablesDetailedDto.setPurchaseSystemName(rebate.getPurchaseSystemName()); + finUncollectedReceivablesDetailedDto.setStaffName(salesOrder.getStaffName()); + SysUserVo sysUserVo = sysUserFeign.selectByStaffsid(salesOrder.getStaffSid()).getData(); + finUncollectedReceivablesDetailedDto.setStaffUserSid(sysUserVo.getSid()); + finUncollectedReceivablesDetailedDto.setStaffDeptSid(salesOrder.getOrgSid()); + finUncollectedReceivablesDetailedDto.setStaffDeptName(salesOrder.getOrgName()); + finUncollectedReceivablesDetailedFeign.saveOrUpdate(finUncollectedReceivablesDetailedDto); + } + } + if (!voucherDetails.isEmpty()) { + generalVoucher.setVoucherDetails(voucherDetails); + finKingDeeFeign.saveJRAdjustVoucher(generalVoucher); + } + } + }); + } + } else if (adjustWay.equals("公司认损")) { + if (!details.isEmpty()) { + Map> map = details.stream().collect(Collectors.groupingBy(ScmFinanceAdjustDetails::getPurchaseSystemSid)); + map.forEach((k, v) -> { + List rebates = v; + CostAdjustmentsBill costAdjustmentsBill = new CostAdjustmentsBill(); + costAdjustmentsBill.setBussDate(format); + List resultDetails = new ArrayList<>(); + if (!v.isEmpty()) { + for (ScmFinanceAdjustDetails rebate : v) { + String useOrgCode = ""; + String vinCode = ""; + String deptCode = ""; + SysOrganizationVo data = sysOrganizationFeign.fetchBySid(rebate.getPurchaseSystemSid()).getData(); + if (null != data) { + deptCode = data.getOrgCode(); + } + if (StringUtils.isNotBlank(adjustApply.getUseOrgSid())) { + String useOrgSid = adjustApply.getUseOrgSid(); + SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData(); + if (null != organizationVo) { + costAdjustmentsBill.setUseOrgCode(organizationVo.getOrgCode()); + useOrgCode = organizationVo.getOrgCode(); + } + } + BaseVehicle vehicle = baseVehicleFeign.fetchBySid(rebate.getVehSid()).getData(); + if (null != vehicle) { + if (StringUtils.isNotBlank(vehicle.getManufacturerCode())) { + costAdjustmentsBill.setCommUnit(vehicle.getManufacturerCode()); + } + vinCode = vehicle.getVinNo().substring(vehicle.getVinNo().length() - 8); + } + if (null != rebate.getNowAdjustmentMoney()) { + if (rebate.getNowAdjustmentMoney().compareTo(BigDecimal.ZERO) > 0) { + //添加成本调整单 + CostAdjustmentsBill.CostAdjustmentsBillDetailDto dto = new CostAdjustmentsBill.CostAdjustmentsBillDetailDto(); + dto.setCompanyCode(useOrgCode); + dto.setMaterialID(vinCode); + dto.setDeptCode(deptCode); + dto.setAmount(rebate.getNowAdjustmentMoney().toString()); + resultDetails.add(dto); + } + } + } + if (!resultDetails.isEmpty()) { + costAdjustmentsBill.setResultDetails(resultDetails); + finKingDeeFeign.pushCostAdjustmentsBill(costAdjustmentsBill); + } + } + }); } } - } - - } @@ -939,4 +1122,78 @@ public class ScmFinanceAdjustApplyService extends MybatisBaseService getAppDetails(String sid) { + ResultBean rb = ResultBean.fireFail(); + AppDetailsVo vo = new AppDetailsVo(); + ScmFinanceAdjustApply apply = fetchBySid(sid); + BigDecimal t = BigDecimal.ZERO;//订单贴息金额合计 + BigDecimal s = BigDecimal.ZERO;//上传贴息金额合计 + BigDecimal c = BigDecimal.ZERO;//差额合计 + BigDecimal y = BigDecimal.ZERO;//已调整金额合计 + BigDecimal d = BigDecimal.ZERO;//当前差额合计 + BigDecimal b = BigDecimal.ZERO;//本次调整金额合计 + if (null != apply) { + BeanUtil.copyProperties(apply, vo); + vo.setCreateTime(DateUtil.formatDate(apply.getCreateTime())); + vo.setPublishInfo(apply.getUseOrgName() + "-" + apply.getDeptName()); + if (StringUtils.isNotBlank(apply.getProcInstId())) { + vo.setProcInsId(apply.getProcInstId()); + } + List scmFileVos = scmFileService.fetchByMainSid(sid); + if (!scmFileVos.isEmpty() && scmFileVos.size() > 0) { + List files = new ArrayList<>(); + for (ScmFileVo scmFileVo : scmFileVos) { + String filePath = scmFileVo.getFilePath(); + String urlPrefix = fileUploadComponent.getUrlPrefix(); + filePath = urlPrefix + filePath; + files.add(filePath); + } + vo.setFiles(files); + } + List details = scmFinanceAdjustDetailsService.selByMainSid(sid); + if (!details.isEmpty() && details.size() > 0) { + List list = new ArrayList<>(); + for (ScmFinanceAdjustDetails detail : details) { + AppListVo detailsListVo = new AppListVo(); + BeanUtil.copyProperties(detail, detailsListVo); + list.add(detailsListVo); + if (null != detail.getEstimateRebate()) { + t = t.add(detail.getEstimateRebate()); + } + if (null != detail.getUploadMoney()) { + s = s.add(detail.getUploadMoney()); + } + if (null != detail.getAdjustmentMoney()) { + c = c.add(detail.getAdjustmentMoney()); + } + if (null != detail.getAlreadyMoney()) { + y = y.add(detail.getAlreadyMoney()); + } + if (null != detail.getNowDiffAmount()) { + d = d.add(detail.getNowDiffAmount()); + } + if (null != detail.getNowAdjustmentMoney()) { + b = b.add(detail.getNowAdjustmentMoney()); + } + } + vo.setList(list); + } + vo.setEstimateRebateTotal(t.toString()); + vo.setUploadMoneyTotal(s.toString()); + vo.setAdjustmentMoneyTotal(c.toString()); + vo.setAlreadyMoneyTotal(y.toString()); + vo.setNowDiffAmountTotal(d.toString()); + vo.setNowAdjustmentMoneyTotal(b.toString()); + } + return rb.success().setData(vo); + } + + public ResultBean assignTask(AdjustDelegateQuery query) { + ResultBean rb = ResultBean.fireFail(); + FlowDelegateQuery delegateQuery = new + FlowDelegateQuery(); + BeanUtil.copyProperties(query, delegateQuery); + flowFeign.assignTask(delegateQuery); + return rb.success(); + } } \ No newline at end of file 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 5fc428ddcc..723747c22f 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 @@ -122,10 +122,16 @@ export default { calculationStandard: '', sid: '', vinNo: '', + brandName: '', + purchaseSystemName: '', manufactorSettlementPrice: '', freight: '', + topAmount: '', estimateRebate: '', - remarks: '' + remarks: '', + expectTreatCost: '', + expectSuppCost: '', + expectSuppRemark: '' }, rules: { rebateTypeValue: [{ required: true, message: '返利类型不能为空', trigger: 'change' }], @@ -140,9 +146,15 @@ export default { computed: { estimateRebateSum() { let estimateRebate = '0' + // 计算方式为比例时, if (this.formobj.calculationModeKey === '001') { - // 计算方式为比例时,预计返利 = (车辆入库价 - 运费) * (计算标准 / 100) - estimateRebate = Math.round(((parseFloat(this.formobj.manufactorSettlementPrice !== '' ? this.formobj.manufactorSettlementPrice : 0) - parseFloat(this.formobj.freight !== '' ? this.formobj.freight : 0)) * (parseFloat(this.formobj.calculationStandard) / 100)) * 100) / 100 + if (this.formobj.brandName === '陕汽') { + // 预计返利 = (车辆入库价 - 运费 - 上装) * (计算标准 / 100) + estimateRebate = Math.round(((parseFloat(this.formobj.manufactorSettlementPrice !== '' ? this.formobj.manufactorSettlementPrice : 0) - parseFloat(this.formobj.freight !== '' ? this.formobj.freight : 0) - parseFloat(this.formobj.topAmount !== '' ? this.formobj.topAmount : 0)) * (parseFloat(this.formobj.calculationStandard) / 100)) * 100) / 100 + } else { + // 预计返利 = (车辆入库价 - 运费) * (计算标准 / 100) + estimateRebate = Math.round(((parseFloat(this.formobj.manufactorSettlementPrice !== '' ? this.formobj.manufactorSettlementPrice : 0) - parseFloat(this.formobj.freight !== '' ? this.formobj.freight : 0)) * (parseFloat(this.formobj.calculationStandard) / 100)) * 100) / 100 + } } else if (this.formobj.calculationModeKey === '002') { // 计算方式为固定金额时,预计返利 = 计算标准 estimateRebate = this.formobj.calculationStandard @@ -243,15 +255,17 @@ export default { calculationModeValue: '', calculationStandard: '', sid: '', - createOrgSid: '', - createOrgName: '', - useOrgSid: '', - useOrgName: '', vinNo: '', + brandName: '', + purchaseSystemName: '', manufactorSettlementPrice: '', freight: '', + topAmount: '', estimateRebate: '', - remarks: '' + remarks: '', + expectTreatCost: '', + expectSuppCost: '', + expectSuppRemark: '' } this.$refs['form_obj'].resetFields() this.$emit('doback') diff --git a/anrui-scm/anrui-scm-ui/src/views/financialDiscount/differenceManagement/differenceManagementAdd.vue b/anrui-scm/anrui-scm-ui/src/views/financialDiscount/differenceManagement/differenceManagementAdd.vue index 22c3049651..dea8679124 100644 --- a/anrui-scm/anrui-scm-ui/src/views/financialDiscount/differenceManagement/differenceManagementAdd.vue +++ b/anrui-scm/anrui-scm-ui/src/views/financialDiscount/differenceManagement/differenceManagementAdd.vue @@ -307,6 +307,7 @@ export default { value.forEach((e) => { this.formobj.list.push({ rebateSid: e.rebateSid, + checkApplySid: e.checkApplySid, purchaseSystemSid: e.purchaseSystemSid, purchaseSystemName: e.purchaseSystemName, brandSid: e.brandSid, diff --git a/anrui-scm/anrui-scm-ui/src/views/workFlow/chayitiaozhengFlow/differenceManagementEdit.vue b/anrui-scm/anrui-scm-ui/src/views/workFlow/chayitiaozhengFlow/differenceManagementEdit.vue index 4b4e1fe43e..46c13a0c5a 100644 --- a/anrui-scm/anrui-scm-ui/src/views/workFlow/chayitiaozhengFlow/differenceManagementEdit.vue +++ b/anrui-scm/anrui-scm-ui/src/views/workFlow/chayitiaozhengFlow/differenceManagementEdit.vue @@ -289,6 +289,7 @@ export default { value.forEach((e) => { this.formobj.list.push({ rebateSid: e.rebateSid, + checkApplySid: e.checkApplySid, purchaseSystemSid: e.purchaseSystemSid, purchaseSystemName: e.purchaseSystemName, brandSid: e.brandSid, diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/base/common/CommonFeign.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/base/common/CommonFeign.java index ace35100df..3afe6d5cc7 100644 --- a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/base/common/CommonFeign.java +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/base/common/CommonFeign.java @@ -9,6 +9,7 @@ import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.*; import java.util.List; +import java.util.Map; /** * @Author dimengzhe @@ -53,6 +54,11 @@ public interface CommonFeign { @GetMapping("/getOrder") ResultBean getOrder(@RequestParam("saleOrderSid") String saleOrderSid); + @ApiOperation(value = "销售订单页面") + @ResponseBody + @GetMapping("/getOrderListByOrderSids") + ResultBean> getOrderListByOrderSids(@RequestBody List orderSids); + @ApiOperation(value = "金融方案详情页面") @ResponseBody @GetMapping("/getLoanSolution") diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/financeadjustapply/AdjustApplyDetailsVo.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/financeadjustapply/AdjustApplyDetailsVo.java new file mode 100644 index 0000000000..025e5c3023 --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/financeadjustapply/AdjustApplyDetailsVo.java @@ -0,0 +1,82 @@ +package com.yxt.anrui.terminal.api.supplychain.financeadjustapply; + +import com.yxt.common.core.vo.Vo; +import lombok.Data; + +import java.util.List; + +/** + * @author Administrator + * @description + * @date 2023/11/13 15:38 + */ +@Data +public class AdjustApplyDetailsVo implements Vo { + private String sid; + /** + * 调整方式 + */ + private String adjustWay; + /** + * 申请编号 + */ + private String billNo; + /** + * 申请人姓名 + */ + private String createByName; + /** + * 申请日期 + */ + private String createTime; + /** + * 附件 + */ + private List files; + /** + * 明细列表 + */ + private List list; + private String procInsId; + /** + * 分公司-部门 + */ + private String publishInfo; + /** + * 备注 + */ + private String remarks; + /** + * 销售经理 + */ + private String salesManage; + /** + * 销售专员 + */ + private String staffName; + private String taskId; + /** + * 差额 + */ + private String adjustmentMoneyTotal; + /** + * 已调整金额 + */ + private String alreadyMoneyTotal; + /** + * 订单贴息金额 + */ + private String estimateRebateTotal; + /** + * 本次调整金额 + */ + private String nowAdjustmentMoneyTotal; + /** + * 当前差额 + */ + private String nowDiffAmountTotal; + /** + * 上传贴息金额 + */ + private String uploadMoneyTotal; +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/financeadjustapply/AdjustApplyFeign.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/financeadjustapply/AdjustApplyFeign.java new file mode 100644 index 0000000000..f2c24f8ed0 --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/financeadjustapply/AdjustApplyFeign.java @@ -0,0 +1,72 @@ +package com.yxt.anrui.terminal.api.supplychain.financeadjustapply; + + +import com.yxt.anrui.terminal.api.supplychain.financeadjustapply.flow.AppAdjustApplyDelegateQuery; +import com.yxt.anrui.terminal.api.supplychain.financeadjustapply.flow.AppAdjustApplyTaskQuery; +import com.yxt.anrui.terminal.api.supplychain.financeadjustapply.flow.CompleteAdjustApplyDto; +import com.yxt.anrui.terminal.api.supplychain.financeadjustapply.flow.AdjustApplyFlowableQuery; +import com.yxt.common.core.result.ResultBean; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.cloud.openfeign.SpringQueryMap; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; + +/** + * @description: + * @author: fzz + * @date: 2023/8/8 + **/ +@Api(tags = "金融贴息差异调整") +@FeignClient( + contextId = "terminal-financeadjustapply", + name = "anrui-terminal", + path = "/v1/financeadjustapply", + fallback = AdjustApplyFeignFallback.class) +public interface AdjustApplyFeign { + + + @ApiOperation("详情") + @GetMapping("/fetchDetailsBySid/{sid}") + @ResponseBody + ResultBean fetchDetailsBySid(@PathVariable("sid") String sid); + + //-------------------------流程----------------------------------------- + + @ApiOperation("办理") + @PutMapping("/agreeCreditInfo") + @ResponseBody + ResultBean agreeCreditInfo(@Valid @RequestBody CompleteAdjustApplyDto dto); + + @ApiOperation("驳回") + @PutMapping("/rejectCreditInfo") + @ResponseBody + ResultBean rejectCreditInfo(@Valid @RequestBody AppAdjustApplyTaskQuery query); + + @ApiOperation("撤回") + @PutMapping("/recallCreditInfo") + @ResponseBody + ResultBean recallCreditInfo(@Valid @RequestBody AppAdjustApplyTaskQuery query); + + @ApiOperation("终止") + @PutMapping("/stopCreditInfo") + @ResponseBody + ResultBean stopCreditInfo(@Valid @RequestBody AppAdjustApplyTaskQuery query); + + @ApiOperation("获取流程操作标题") + @GetMapping("/getFlowOperateTitle") + @ResponseBody + ResultBean getFlowOperateTitle(@Valid @SpringQueryMap AdjustApplyFlowableQuery query); + + @ApiOperation(value = "加签") + @PutMapping(value = "/delegate") + @ResponseBody + public ResultBean delegate(@RequestBody AppAdjustApplyDelegateQuery delegateQuery); + + @ApiOperation(value = "转办") + @PutMapping(value = "/assignTask") + @ResponseBody + public ResultBean assignTask(@RequestBody AppAdjustApplyDelegateQuery delegateQuery); +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/financeadjustapply/AdjustApplyFeignFallback.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/financeadjustapply/AdjustApplyFeignFallback.java new file mode 100644 index 0000000000..e2829b701f --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/financeadjustapply/AdjustApplyFeignFallback.java @@ -0,0 +1,57 @@ +package com.yxt.anrui.terminal.api.supplychain.financeadjustapply; + +import com.yxt.anrui.terminal.api.supplychain.financeadjustapply.flow.AppAdjustApplyDelegateQuery; +import com.yxt.anrui.terminal.api.supplychain.financeadjustapply.flow.AppAdjustApplyTaskQuery; +import com.yxt.anrui.terminal.api.supplychain.financeadjustapply.flow.CompleteAdjustApplyDto; +import com.yxt.anrui.terminal.api.supplychain.financeadjustapply.flow.AdjustApplyFlowableQuery; +import com.yxt.common.core.result.ResultBean; +import org.springframework.stereotype.Component; + +/** + * @description: + * @author: fzz + * @date: + **/ +@Component +public class AdjustApplyFeignFallback implements AdjustApplyFeign { + + @Override + public ResultBean fetchDetailsBySid(String sid) { + return null; + } + + @Override + public ResultBean agreeCreditInfo(CompleteAdjustApplyDto dto) { + return null; + } + + @Override + public ResultBean rejectCreditInfo(AppAdjustApplyTaskQuery query) { + return null; + } + + @Override + public ResultBean recallCreditInfo(AppAdjustApplyTaskQuery query) { + return null; + } + + @Override + public ResultBean stopCreditInfo(AppAdjustApplyTaskQuery query) { + return null; + } + + @Override + public ResultBean getFlowOperateTitle(AdjustApplyFlowableQuery query) { + return null; + } + + @Override + public ResultBean delegate(AppAdjustApplyDelegateQuery delegateQuery) { + return null; + } + + @Override + public ResultBean assignTask(AppAdjustApplyDelegateQuery delegateQuery) { + return null; + } +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/financeadjustapply/AdjustApplyRecordVo.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/financeadjustapply/AdjustApplyRecordVo.java new file mode 100644 index 0000000000..84612c3420 --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/financeadjustapply/AdjustApplyRecordVo.java @@ -0,0 +1,72 @@ +package com.yxt.anrui.terminal.api.supplychain.financeadjustapply; + +import com.yxt.anrui.terminal.api.risk.loanhomevisitinvestigate.AppLoanHomeVisitVo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author Administrator + * @description + * @date 2023/11/13 15:45 + */ +@Data +public class AdjustApplyRecordVo { + /** + * 差额 + */ + private String adjustmentMoney; + /** + * 已调整金额 + */ + private String alreadyMoney; + /** + * 品牌 + */ + private String brandName; + /** + * 合同号 + */ + private String contractNo; + /** + * 客户 + */ + private String customerName; + /** + * 订单贴息金额 + */ + private String estimateRebate; + /** + * 本次调整金额 + */ + private String nowAdjustmentMoney; + /** + * 当前差额 + */ + private String nowDiffAmount; + + /** + * 采购系统名称 + */ + private String purchaseSystemName; + /** + * 调整说明 + */ + private String remarks; + /** + * 上传贴息金额 + */ + private String uploadMoney; + /** + * 车型 + */ + private String vehModelName; + /** + * 车架号 + */ + private String vinNo; + + private String salesOrderSid; + + @ApiModelProperty("销售订单页面") + private AppLoanHomeVisitVo orderPage; +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/financeadjustapply/flow/AdjustApplyFlowableQuery.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/financeadjustapply/flow/AdjustApplyFlowableQuery.java new file mode 100644 index 0000000000..9971ade701 --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/financeadjustapply/flow/AdjustApplyFlowableQuery.java @@ -0,0 +1,21 @@ +package com.yxt.anrui.terminal.api.supplychain.financeadjustapply.flow; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Data +public class AdjustApplyFlowableQuery implements Query { + private static final long serialVersionUID = -5879668616710833830L; + + @ApiModelProperty(value = "节点key") + private String taskDefKey; + @ApiModelProperty(value = "业务sid") + private String businessSid; + @ApiModelProperty(value = "0 上一环节 1下一环节") + @NotNull(message = "参数错误:next") + private Integer next; + +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/financeadjustapply/flow/AppAdjustApplyDelegateQuery.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/financeadjustapply/flow/AppAdjustApplyDelegateQuery.java new file mode 100644 index 0000000000..9b5ba945a6 --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/financeadjustapply/flow/AppAdjustApplyDelegateQuery.java @@ -0,0 +1,25 @@ +package com.yxt.anrui.terminal.api.supplychain.financeadjustapply.flow; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author Administrator + * @description + * @date 2023/9/28 10:16 + */ +@Data +public class AppAdjustApplyDelegateQuery { + @ApiModelProperty + private String userSid; + @ApiModelProperty("流程实例id") + @JsonProperty("procInsId") + private String instanceId; + @ApiModelProperty("任务Id") + private String taskId; + @ApiModelProperty("审批人sid") + private String assignee; + @ApiModelProperty("填写意见") + private String views; +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/financeadjustapply/flow/AppAdjustApplyTaskQuery.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/financeadjustapply/flow/AppAdjustApplyTaskQuery.java new file mode 100644 index 0000000000..c89f67f8c6 --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/financeadjustapply/flow/AppAdjustApplyTaskQuery.java @@ -0,0 +1,46 @@ +package com.yxt.anrui.terminal.api.supplychain.financeadjustapply.flow; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @author Administrator + * @description + * @date 2023/10/17 9:14 + */ +@Data +public class AppAdjustApplyTaskQuery implements Query { + /** + * 终止、驳回、撤回 + */ + @ApiModelProperty("任务Id") + @NotBlank(message = "参数错误:taskId") + private String taskId; + /** + * 终止、驳回、撤回 + */ + @ApiModelProperty("业务sid") + @NotBlank(message = "参数错误:businessSid") + private String businessSid; + /** + * 终止、驳回 + */ + @ApiModelProperty("任务意见") + private String comment; + /** + * 终止、撤回、驳回 + */ + @ApiModelProperty("用户Sid") + private String userSid; + /** + * 终止 + */ + @ApiModelProperty("流程实例Id") + @JsonProperty("procInsId") + private String instanceId; + +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/financeadjustapply/flow/CompleteAdjustApplyDto.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/financeadjustapply/flow/CompleteAdjustApplyDto.java new file mode 100644 index 0000000000..c2ac4aa89d --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/financeadjustapply/flow/CompleteAdjustApplyDto.java @@ -0,0 +1,35 @@ +package com.yxt.anrui.terminal.api.supplychain.financeadjustapply.flow; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.yxt.common.core.dto.Dto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @author Administrator + * @description + * @date 2023/10/17 9:13 + */ +@Data +public class CompleteAdjustApplyDto implements Dto { + @ApiModelProperty(value = "任务id") + @NotBlank(message = "参数错误:taskId") + private String taskId; + @ApiModelProperty(value = "流程id") + @NotBlank(message = "参数错误:procInsId") + @JsonProperty("procInsId") + private String instanceId; + @ApiModelProperty(value = "意见") + private String comment; + @ApiModelProperty(value = "业务sid") + @NotBlank(message = "参数错误:businessSid") + private String businessSid; + @ApiModelProperty(value = "用户sid") + @NotBlank(message = "参数错误:userSid") + private String userSid; + @ApiModelProperty(value = "节点id") + @NotBlank(message = "参数错误:taskDefKey") + private String taskDefKey; +} diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/base/common/CommonRest.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/base/common/CommonRest.java index 1d8a2c53cc..e625423554 100644 --- a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/base/common/CommonRest.java +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/base/common/CommonRest.java @@ -10,6 +10,7 @@ import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import java.util.List; +import java.util.Map; /** * @Author dimengzhe @@ -54,6 +55,11 @@ public class CommonRest implements CommonFeign { return commonService.getOrder(saleOrderSid); } + @Override + public ResultBean> getOrderListByOrderSids(List orderSids) { + return commonService.getOrderListByOrderSids(orderSids); + } + @Override public ResultBean getLoanSolution(String orderSid) { return commonService.getLoanSolution(orderSid); diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/base/common/CommonService.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/base/common/CommonService.java index c059b842ed..957c577dc1 100644 --- a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/base/common/CommonService.java +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/base/common/CommonService.java @@ -118,6 +118,36 @@ public class CommonService { return rb.success().setData(carModelVo); } + public ResultBean> getOrderListByOrderSids(List orderSids) { + ResultBean> rb = ResultBean.fireFail(); + String appSid = "e25e13b5-f2ed-421f-bdb3-6f2eca2a3028"; + String moduleAction = "com.anrui.android.plugin.autoservice.activity.DetailSaleOrderActivity"; + ResultBean voResultBean = appSubsetVersionFeign.getLastRiskByAppSid(appSid, moduleAction); + AppSubVersionVo appSubVersionVo = voResultBean.getData(); + Map modelMap = new HashMap<>(); + for (String saleOrderSid : orderSids) { + CarModelVo carModelVo = new CarModelVo(); + Map map = new HashMap<>(); + map.put("saleOrderSid", saleOrderSid); + appSubVersionVo.setJson(JSONObject.toJSONString(map)); + BeanUtil.copyProperties(appSubVersionVo, carModelVo); + carModelVo.setRequestCode("1002"); +// carModelVo.setPluginName("autoservice"); + carModelVo.setARouterClass("com.anrui.android.plugin.autoservice.manager.ARouterManager"); + carModelVo.setARouterMethod("DETAIL_SALE_ORDER"); + List aRouterParamType = new ArrayList<>(); + aRouterParamType.add("STRING"); + List aRouterParamValue = new ArrayList<>(); + aRouterParamValue.add(saleOrderSid); + carModelVo.setARouterParamType(aRouterParamType); + carModelVo.setARouterParamValue(aRouterParamValue); + carModelVo.setBtnName("销售订单"); + modelMap.put(saleOrderSid,carModelVo); + } + return rb.success().setData(modelMap); + } + + public ResultBean getLoanSolution(String orderSid) { ResultBean rb = ResultBean.fireFail(); String appSid = "e25e13b5-f2ed-421f-bdb3-6f2eca2a3028"; @@ -301,4 +331,6 @@ public class CommonService { carModelVo.setARouterParamValue(aRouterParamValue); return rb.success().setData(carModelVo); } + + } diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/supplychain/financeadjustapply/AdjustApplyRest.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/supplychain/financeadjustapply/AdjustApplyRest.java new file mode 100644 index 0000000000..10a2917002 --- /dev/null +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/supplychain/financeadjustapply/AdjustApplyRest.java @@ -0,0 +1,67 @@ +package com.yxt.anrui.terminal.biz.supplychain.financeadjustapply; + + +import com.yxt.anrui.terminal.api.supplychain.financeadjustapply.AdjustApplyDetailsVo; +import com.yxt.anrui.terminal.api.supplychain.financeadjustapply.AdjustApplyFeign; +import com.yxt.anrui.terminal.api.supplychain.financeadjustapply.flow.AdjustApplyFlowableQuery; +import com.yxt.anrui.terminal.api.supplychain.financeadjustapply.flow.AppAdjustApplyDelegateQuery; +import com.yxt.anrui.terminal.api.supplychain.financeadjustapply.flow.AppAdjustApplyTaskQuery; +import com.yxt.anrui.terminal.api.supplychain.financeadjustapply.flow.CompleteAdjustApplyDto; +import com.yxt.common.core.result.ResultBean; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * @description: + * @author: fzz + * @date: + **/ +@Controller +@RequestMapping("/v1/financeadjustapply") +public class AdjustApplyRest implements AdjustApplyFeign { + + @Autowired + private AdjustApplyService adjustApplyService; + + + @Override + public ResultBean fetchDetailsBySid(String sid) { + return adjustApplyService.detail(sid); + } + + @Override + public ResultBean agreeCreditInfo(CompleteAdjustApplyDto dto) { + return adjustApplyService.agreeCreditInfo(dto); + } + + @Override + public ResultBean rejectCreditInfo(AppAdjustApplyTaskQuery query) { + return adjustApplyService.rejectCreditInfo(query); + } + + @Override + public ResultBean recallCreditInfo(AppAdjustApplyTaskQuery query) { + return adjustApplyService.recallCreditInfo(query); + } + + @Override + public ResultBean stopCreditInfo(AppAdjustApplyTaskQuery query) { + return adjustApplyService.stopCreditInfo(query); + } + + @Override + public ResultBean getFlowOperateTitle(AdjustApplyFlowableQuery query) { + return adjustApplyService.getFlowOperateTitle(query); + } + + @Override + public ResultBean delegate(AppAdjustApplyDelegateQuery delegateQuery) { + return adjustApplyService.delegate(delegateQuery); + } + + @Override + public ResultBean assignTask(AppAdjustApplyDelegateQuery delegateQuery) { + return adjustApplyService.assignTask(delegateQuery); + } +} diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/supplychain/financeadjustapply/AdjustApplyService.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/supplychain/financeadjustapply/AdjustApplyService.java new file mode 100644 index 0000000000..3fd77e5618 --- /dev/null +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/supplychain/financeadjustapply/AdjustApplyService.java @@ -0,0 +1,178 @@ +package com.yxt.anrui.terminal.biz.supplychain.financeadjustapply; + + +import cn.hutool.core.bean.BeanUtil; +import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg; +import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign; +import com.yxt.anrui.portal.api.sysuser.SysUserFeign; +import com.yxt.anrui.portal.api.sysuser.SysUserVo; +import com.yxt.anrui.scm.api.scmfinanceadjustapply.ScmFinanceAdjustApplyFeign; +import com.yxt.anrui.scm.api.scmfinanceadjustapply.app.AppDetailsVo; +import com.yxt.anrui.scm.api.scmfinanceadjustapply.flow.*; +import com.yxt.anrui.terminal.api.base.common.CarModelVo; +import com.yxt.anrui.terminal.api.risk.loanhomevisitinvestigate.AppLoanHomeVisitVo; +import com.yxt.anrui.terminal.api.supplychain.financeadjustapply.AdjustApplyDetailsVo; +import com.yxt.anrui.terminal.api.supplychain.financeadjustapply.AdjustApplyRecordVo; +import com.yxt.anrui.terminal.api.supplychain.financeadjustapply.flow.AdjustApplyFlowableQuery; +import com.yxt.anrui.terminal.api.supplychain.financeadjustapply.flow.AppAdjustApplyDelegateQuery; +import com.yxt.anrui.terminal.api.supplychain.financeadjustapply.flow.AppAdjustApplyTaskQuery; +import com.yxt.anrui.terminal.api.supplychain.financeadjustapply.flow.CompleteAdjustApplyDto; +import com.yxt.anrui.terminal.biz.base.common.CommonService; +import com.yxt.common.core.result.ResultBean; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * @description: + * @author: fzz + * @date: + **/ +@Service +public class AdjustApplyService { + + @Autowired + private SysUserFeign sysUserFeign; + @Autowired + private SysStaffOrgFeign sysStaffOrgFeign; + @Autowired + private ScmFinanceAdjustApplyFeign scmFinanceAdjustApplyFeign; + @Autowired + private CommonService commonService; + public ResultBean detail(String sid) { + ResultBean rb = ResultBean.fireFail(); + AdjustApplyDetailsVo vo = new AdjustApplyDetailsVo(); + AppDetailsVo data = scmFinanceAdjustApplyFeign.getAppDetails(sid).getData(); + if (null != data) { + BeanUtil.copyProperties(data, vo); + List list = vo.getList(); + if (!list.isEmpty() && list.size() > 0) { + List orderSids = list.stream().map(AdjustApplyRecordVo::getSalesOrderSid).collect(Collectors.toList()); + Map voMap = commonService.getOrderListByOrderSids(orderSids).getData(); + if (!voMap.isEmpty()) { + for (AdjustApplyRecordVo recordVo : list) { + CarModelVo carModelVo = voMap.get(recordVo.getSalesOrderSid()); + AppLoanHomeVisitVo appOrderVo = new AppLoanHomeVisitVo(); + BeanUtil.copyProperties(carModelVo,appOrderVo); + recordVo.setOrderPage(appOrderVo); + } + } + } + } + return rb.success().setData(vo); + } + + + public ResultBean agreeCreditInfo(CompleteAdjustApplyDto dto) { + ResultBean rb = ResultBean.fireFail(); + //根据用户sid获取staffSid + ResultBean userVoResultBean = sysUserFeign.fetchBySid(dto.getUserSid()); + if (!userVoResultBean.getSuccess()) { + return rb.setMsg(userVoResultBean.getMsg()); + } + //根据staffSid获取用户的组织全路径 + ResultBean staffOrgResultBean = sysStaffOrgFeign.getOrgByStaffSid(userVoResultBean.getData().getStaffSid()); + if (!staffOrgResultBean.getSuccess()) { + return rb.setMsg(staffOrgResultBean.getMsg()); + } + //用户的组织全路径 + String orgSidPath = staffOrgResultBean.getData().getOrgSidPath(); + AdjustCompleteDto completeDto = new + AdjustCompleteDto(); + BeanUtil.copyProperties(dto, completeDto); + completeDto.setOrgSidPath(orgSidPath); + ResultBean resultBean = scmFinanceAdjustApplyFeign.complete(completeDto); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + return rb.success().setData(resultBean.getData()); + } + + public ResultBean rejectCreditInfo(AppAdjustApplyTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + AdjustTaskQuery taskQuery = new + AdjustTaskQuery(); + BeanUtil.copyProperties(query, taskQuery); + ResultBean resultBean = scmFinanceAdjustApplyFeign.taskReject(taskQuery); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + return rb.success().setData(resultBean.getData()); + } + + public ResultBean recallCreditInfo(AppAdjustApplyTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + AdjustTaskQuery taskQuery = new + AdjustTaskQuery(); + BeanUtil.copyProperties(query, taskQuery); + ResultBean resultBean = scmFinanceAdjustApplyFeign.revokeProcess(taskQuery); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + return rb.success().setData(resultBean.getData()); + } + + public ResultBean stopCreditInfo(AppAdjustApplyTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + AdjustTaskQuery taskQuery = new + AdjustTaskQuery(); + BeanUtil.copyProperties(query, taskQuery); + ResultBean resultBean = scmFinanceAdjustApplyFeign.breakProcess(taskQuery); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + return rb.success().setData(resultBean.getData()); + } + + public ResultBean getFlowOperateTitle(AdjustApplyFlowableQuery query) { + ResultBean rb = ResultBean.fireFail(); + //0 上一环节 1下一环节 + int next = query.getNext(); + AdjustGetNodeQuery getNodeQuery = new + AdjustGetNodeQuery(); + BeanUtil.copyProperties(query, getNodeQuery); + String data = ""; + if (next == 0) { + ResultBean> getPreviousNodesForReject = scmFinanceAdjustApplyFeign.getPreviousNodesForReject(getNodeQuery); + if (getPreviousNodesForReject.getSuccess()) { + getPreviousNodesForReject.getData().removeAll(Collections.singleton(null)); + data = getPreviousNodesForReject.getData().get(0).getName(); + } else { + return rb.setMsg(getPreviousNodesForReject.getMsg()); + } + } else if (next == 1) { + ResultBean> getNextNodesForSubmit = scmFinanceAdjustApplyFeign.getNextNodesForSubmit(getNodeQuery); + if (getNextNodesForSubmit.getSuccess()) { + getNextNodesForSubmit.getData().removeAll(Collections.singleton(null)); + data = getNextNodesForSubmit.getData().get(0).getName(); + } else { + return rb.setMsg(getNextNodesForSubmit.getMsg()); + } + } else { + return rb.setMsg("参数错误:next"); + } + return rb.success().setData(data); + } + + public ResultBean delegate(AppAdjustApplyDelegateQuery delegateQuery) { + ResultBean rb = ResultBean.fireFail(); + AdjustDelegateQuery delegateQuery1 = new + AdjustDelegateQuery(); + BeanUtil.copyProperties(delegateQuery, delegateQuery1); + ResultBean delegate = scmFinanceAdjustApplyFeign.delegate(delegateQuery1); + return rb.success(); + } + + public ResultBean assignTask(AppAdjustApplyDelegateQuery delegateQuery) { + ResultBean rb = ResultBean.fireFail(); + AdjustDelegateQuery delegateQuery1 = new + AdjustDelegateQuery(); + BeanUtil.copyProperties(delegateQuery, delegateQuery1); + ResultBean delegate = scmFinanceAdjustApplyFeign.assignTask(delegateQuery1); + return rb.success(); + } +} diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/api/OaMendApplyRest.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/api/OaMendApplyRest.java index 519abf6c4c..ab3827c71c 100644 --- a/yxt-oa/src/main/java/com/yxt/anrui/oa/api/OaMendApplyRest.java +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/api/OaMendApplyRest.java @@ -95,7 +95,7 @@ public class OaMendApplyRest { @ApiOperation("提交审批流程") @PostMapping("/submit") - public ResultBean submit(@RequestBody @Valid SubmitOaMendApplyDto dto) { + public ResultBean submit(@RequestBody @Valid OaMendApplyDto dto) { return oaMendApplyService.submit(dto); } diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormService.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormService.java index 893a211c04..3f67bf4dfd 100644 --- a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormService.java +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormService.java @@ -19,12 +19,14 @@ import com.yxt.anrui.oa.feign.flowable.flowtask.LatestTaskVo; import com.yxt.anrui.oa.feign.message.MessageFeign; import com.yxt.anrui.oa.feign.message.MessageFlowVo; import com.yxt.anrui.oa.feign.message.MessageFlowableQuery; +import com.yxt.anrui.oa.feign.portal.sysorganization.OrgVo; import com.yxt.anrui.oa.feign.portal.sysorganization.SysOrganizationFeign; import com.yxt.anrui.oa.feign.portal.sysorganization.SysOrganizationVo; -import com.yxt.anrui.oa.feign.portal.sysstafforg.OrgVo; import com.yxt.anrui.oa.feign.portal.sysstafforg.SysStaffOrgFeign; import com.yxt.anrui.oa.feign.sysuser.SysUserFeign; import com.yxt.anrui.oa.feign.sysuser.SysUserVo; +import com.yxt.anrui.oa.feign.sysuser.UserQuery; +import com.yxt.anrui.oa.feign.sysuser.UserRoleQuery; import com.yxt.common.base.service.MybatisBaseService; import com.yxt.common.base.utils.PagerUtil; import com.yxt.common.base.utils.StringUtils; @@ -76,7 +78,7 @@ public class OaFormService extends MybatisBaseService { BeanUtil.copyProperties(dto, oaForm, "billNo", "orgSidPath"); try { // 获取组织信息,根据orgSidPath字段调用外部服务 - OrgVo orgVo = sysStaffOrgFeign.getOrgByPath(dto.getOrgSidPath()).getData(); + OrgVo orgVo = sysOrganizationFeign.getOrgByPath(dto.getOrgSidPath()).getData(); // 如果组织信息为空,返回失败信息 if (orgVo == null) { return rb.setMsg("未找到对应的组织信息"); @@ -118,6 +120,12 @@ public class OaFormService extends MybatisBaseService { } } + /** + * 详情初始化 + * + * @param sid + * @return + */ public ResultBean fetchDetailsBySid(String sid) { ResultBean rb = ResultBean.fireFail(); OaFormDetailsVo detailsVo = baseMapper.fetchDetailsBySid(sid); @@ -127,6 +135,12 @@ public class OaFormService extends MybatisBaseService { return rb.success().setData(detailsVo); } + /** + * 分页列表 + * + * @param pq + * @return + */ public PagerVo listPageVo(PagerQuery pq) { OaFormQuery query = pq.getParams(); QueryWrapper qw = new QueryWrapper<>(); @@ -136,6 +150,12 @@ public class OaFormService extends MybatisBaseService { return p; } + /** + * 删除 + * + * @param sids + * @return + */ public ResultBean delAll(String[] sids) { ResultBean rb = ResultBean.fireFail(); delBySids(sids); @@ -159,15 +179,27 @@ public class OaFormService extends MybatisBaseService { return baseMapper.updateFlowFiled(map); } + /** + * 办理(同意) + * + * @param dto + * @return + */ public ResultBean complete(BusinessVariablesDto dto) { ResultBean rb = ResultBean.fireFail(); BusinessVariables bv = new BusinessVariables(); BeanUtil.copyProperties(dto, bv); String businessSid = bv.getBusinessSid(); OaForm oaForm = fetchBySid(businessSid); - SysOrganizationVo deptVo = sysOrganizationFeign.fetchBySid(oaForm.getDeptSid()).getData(); - bv.setOrgSidPath(deptVo.getOrgSidPath()); - bv.setModelId(oaForm.getProcDefId()); + SubmitDto submitDto = new SubmitDto(); + BeanUtil.copyProperties(dto, submitDto); + //构造参数 + ResultBean businessVariablesResultBean = getGatewayParameter(submitDto); + if (!businessVariablesResultBean.getSuccess()) { + return rb.setMsg(businessVariablesResultBean.getMsg()); + } + BeanUtil.copyProperties(businessVariablesResultBean.getData(), bv, "taskDefKey", "taskId"); + bv.setInstanceId(oaForm.getProcInstId()); if (bv.getTaskId().equals(oaForm.getTaskId())) { ResultBean resultBean = flowFeign.handleProsess(bv); if (!resultBean.getSuccess()) { @@ -216,36 +248,38 @@ public class OaFormService extends MybatisBaseService { } } + /** + * 获取上一环节 + * + * @param query + * @return + */ public ResultBean> getPreviousNodesForReject(NodeQuery query) { ResultBean> rb = ResultBean.fireFail(); BusinessVariables bv = new BusinessVariables(); BeanUtil.copyProperties(query, bv); - //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 - Map variables = new HashMap<>(); //查询业务信息 OaForm oaForm = fetchBySid(query.getBusinessSid()); - //网关 - bv.setModelId(oaForm.getProcDefId()); - bv.setFormVariables(variables); ResultBean>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv); //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), NodeVo.class)).collect(Collectors.toList()); return rb.success().setData(voList); } + /** + * 获取下一环节 + * + * @param query + * @return + */ public ResultBean> getNextNodesForSubmit(NodeQuery query) { ResultBean> rb = ResultBean.fireFail(); BusinessVariables bv = new BusinessVariables(); BeanUtil.copyProperties(query, bv); - //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 - Map variables = new HashMap<>(); //查询业务信息 OaForm oaForm = fetchBySid(query.getBusinessSid()); - //网关 - bv.setModelId(oaForm.getProcDefId()); - bv.setFormVariables(variables); //======================================= ResultBean>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv); //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo @@ -253,7 +287,12 @@ public class OaFormService extends MybatisBaseService { return rb.success().setData(voList); } - + /** + * 驳回 + * + * @param dto + * @return + */ public ResultBean reject(TaskDto dto) { ResultBean rb = ResultBean.fireFail(); String businessSid = dto.getBusinessSid(); @@ -324,6 +363,12 @@ public class OaFormService extends MybatisBaseService { return rb.setMsg("操作失败!提交的数据不一致!"); } + /** + * 撤回 + * + * @param dto + * @return + */ public ResultBean revokeProcess(TaskDto dto) { ResultBean rb = ResultBean.fireFail(); if (StringUtils.isBlank(dto.getUserSid())) { @@ -348,10 +393,16 @@ public class OaFormService extends MybatisBaseService { return rb.setMsg("操作失败,提交的数据不一致!"); } + /** + * 终止 + * + * @param dto + * @return + */ public ResultBean breakProcess(TaskDto dto) { ResultBean rb = ResultBean.fireFail(); - if (StringUtils.isBlank(dto.getInstanceId())) { - return rb.setMsg("参数错误:instanceId"); + if (StringUtils.isBlank(dto.getProcInsId())) { + return rb.setMsg("参数错误:procInsId"); } if (StringUtils.isBlank(dto.getUserSid())) { return rb.setMsg("参数错误:userSid"); @@ -391,63 +442,52 @@ public class OaFormService extends MybatisBaseService { return rb.setMsg("操作失败!提交的数据不一致!"); } + /** + * 加签 + * + * @param dto + * @return + */ public ResultBean delegate(DelegateDto dto) { ResultBean rb = ResultBean.fireFail(); FlowDelegateQuery delegateQuery = new FlowDelegateQuery(); BeanUtil.copyProperties(dto, delegateQuery); + delegateQuery.setInstanceId(dto.getProcInsId()); flowFeign.delegate(delegateQuery); return rb.success(); } + /** + * 转办 + * + * @param dto + * @return + */ public ResultBean assignTask(DelegateDto dto) { ResultBean rb = ResultBean.fireFail(); FlowDelegateQuery delegateQuery = new FlowDelegateQuery(); BeanUtil.copyProperties(dto, delegateQuery); + delegateQuery.setInstanceId(dto.getProcInsId()); flowFeign.assignTask(delegateQuery); return rb.success(); } - + /** + * 更新流程名称和标题 + * + * @param oaForm + * @return + */ public int updateFormType(OaForm oaForm) { return baseMapper.updateById(oaForm); } - - public ResultBean submit1(BusinessVariables bv) { - String businessSid = bv.getBusinessSid(); - //启动流程 - ResultBean voResultBean = flowFeign.startProcess(bv); - UpdateFlowFieldVo ufVo = voResultBean.getData(); - OaFormFlowDto oaFormFlowDto = new OaFormFlowDto(); - BeanUtil.copyProperties(ufVo, oaFormFlowDto, "sid"); - oaFormFlowDto.setSid(businessSid); - updateFlow(oaFormFlowDto); - OaForm oaForm = 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()); - Future future1 = pool.submit(() -> { - //极光推送 - MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); - MessageFlowVo messageFlowVo = new MessageFlowVo(); - BeanUtil.copyProperties(ufVo, messageFlowVo); - messageFlowableQuery.setUfVo(messageFlowVo); - messageFlowableQuery.setAppMap((Map) bv.getFormVariables().get("app")); - messageFlowableQuery.setBusinessSid(businessSid); - messageFlowableQuery.setModuleName(oaForm.getFormType()); - messageFlowableQuery.setMsgContent(oaForm.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); - messageFlowableQuery.setMsgTitle(oaForm.getFormType()); - messageFeign.pushMessage(messageFlowableQuery); - }); - } catch (Exception e) { - e.printStackTrace(); - } - return voResultBean; - } - + /** + * 提交 + * + * @param dto + * @return + */ public ResultBean submit(SubmitDto dto) { ResultBean rb = ResultBean.fireFail(); ResultBean businessVariablesResultBean = getGatewayParameter(dto); @@ -456,13 +496,13 @@ public class OaFormService extends MybatisBaseService { } BusinessVariables bv = businessVariablesResultBean.getData(); OaForm oaForm = fetchBySid(dto.getBusinessSid()); - int r = submitBusinessData(dto); + int r = submitBusinessData(dto, oaForm.getTaskId()); if (r == 1) { //启动流程 ResultBean voResultBean = flowFeign.startProcess(bv); UpdateFlowFieldVo ufVo = voResultBean.getData(); OaFormFlowDto oaFormFlowDto = new OaFormFlowDto(); - BeanUtil.copyProperties(ufVo, oaFormFlowDto, "sid"); + BeanUtil.copyProperties(ufVo, oaFormFlowDto); updateFlow(oaFormFlowDto); try { ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() @@ -488,25 +528,31 @@ public class OaFormService extends MybatisBaseService { } return voResultBean; } else if (r == 2) { - bv.setTaskId(oaForm.getTaskId()); - bv.setTaskDefKey(oaForm.getNodeId()); - bv.setComment("重新提交"); - bv.setInstanceId(oaForm.getProcInstId()); BusinessVariablesDto businessVariablesDto = new BusinessVariablesDto(); BeanUtil.copyProperties(bv, businessVariablesDto); + businessVariablesDto.setProcInsId(oaForm.getProcInstId()); + businessVariablesDto.setTaskId(oaForm.getTaskId()); + businessVariablesDto.setTaskDefKey(oaForm.getNodeId()); + businessVariablesDto.setComment("重新提交"); + businessVariablesDto.setRule(dto.getRule()); return complete(businessVariablesDto); } return rb; } - private synchronized int submitBusinessData(SubmitDto dto) { + /** + * 提交锁 + * + * @param dto + * @return + */ + private synchronized int submitBusinessData(SubmitDto dto, String currentTaskId) { int r = 0; - OaForm oaForm = fetchBySid(dto.getBusinessSid()); - if (StringUtils.isBlank(oaForm.getTaskId()) && StringUtils.isBlank(dto.getNextNodeSid())) { + if (StringUtils.isBlank(currentTaskId) && StringUtils.isBlank(dto.getNextTaskId())) { //新提交 r = 1; - } else if (StringUtils.isNotBlank(oaForm.getTaskId()) && oaForm.getTaskId().equals(dto.getNextNodeSid())) { + } else if (StringUtils.isNotBlank(currentTaskId) && currentTaskId.equals(dto.getNextTaskId())) { //二次提交//只有数据一致的时候才能进行下一步 r = 2; } @@ -529,7 +575,11 @@ public class OaFormService extends MybatisBaseService { SysOrganizationVo deptVo = sysOrganizationFeign.fetchBySid(oaForm.getDeptSid()).getData(); bv.setOrgSidPath(deptVo.getOrgSidPath()); //流程定义id - bv.setModelId(dto.getProcDefId()); + if (StringUtils.isBlank(oaForm.getProcDefId())) { + bv.setModelId(dto.getProcDefId()); + } else { + bv.setModelId(oaForm.getProcDefId()); + } int rule = dto.getRule(); if (rule == OaFormRuleEnum.DIRECTLY_UNDER.getRule()) { SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(oaForm.getDeptSid()).getData(); @@ -540,10 +590,55 @@ public class OaFormService extends MybatisBaseService { } else if (rule == OaFormRuleEnum.INSTITUTION.getRule()) { //获取本机构链(含集团、事业部、分公司部门)中角色的用户(角色sid,发起人orgsidPath) + NodeQuery query = new NodeQuery(); + query.setBusinessSid(dto.getBusinessSid()); + query.setTaskDefKey(oaForm.getNodeId()); + ResultBean> resultBean = getNextNodesForSubmit(query); + List voList = resultBean.getData(); + List candidateGroups = voList.get(0).getCandidateGroups(); + UserQuery userQuery = new UserQuery(); + userQuery.setRoleSid(candidateGroups.get(0)); + userQuery.setOrgSidPath(bv.getOrgSidPath()); + List sysUserVos = sysUserFeign.getUserByRole(userQuery).getData(); + StringBuilder nextNodeUserSids = new StringBuilder(); + if (sysUserVos.size() > 0) { + for (SysUserVo sysUserVo : sysUserVos) { + String sid = sysUserVo.getSid(); + nextNodeUserSids.append(sid).append(","); + } + } + if (StringUtils.isBlank(nextNodeUserSids)) { + bv.setNextNodeUserSids(""); + } else { + String substring = nextNodeUserSids.substring(0, nextNodeUserSids.lastIndexOf(",")); + bv.setNextNodeUserSids(substring); + } } else if (rule == OaFormRuleEnum.OTHER_INSTITUTION.getRule()) { //获取其他机构链角色的用户(角色sid,机构sid]) - + NodeQuery query = new NodeQuery(); + query.setBusinessSid(dto.getBusinessSid()); + query.setTaskDefKey(oaForm.getNodeId()); + ResultBean> resultBean = getNextNodesForSubmit(query); + List voList = resultBean.getData(); + List candidateGroups = voList.get(0).getCandidateGroups(); + UserRoleQuery userRoleQuery = new UserRoleQuery(); + userRoleQuery.setRoleSid(candidateGroups.get(0)); + userRoleQuery.setOrgSid(dto.getOrgSid()); + List sysUserVos = sysUserFeign.getOtherOrgRoleUser(userRoleQuery).getData(); + StringBuilder nextNodeUserSids = new StringBuilder(); + if (sysUserVos.size() > 0) { + for (SysUserVo sysUserVo : sysUserVos) { + String sid = sysUserVo.getSid(); + nextNodeUserSids.append(sid).append(","); + } + } + if (StringUtils.isBlank(nextNodeUserSids)) { + bv.setNextNodeUserSids(""); + } else { + String substring = nextNodeUserSids.substring(0, nextNodeUserSids.lastIndexOf(",")); + bv.setNextNodeUserSids(substring); + } } else { bv.setNextNodeUserSids(""); } diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/BusinessVariablesDto.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/BusinessVariablesDto.java index 46e2cff07c..728ceaace7 100644 --- a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/BusinessVariablesDto.java +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/BusinessVariablesDto.java @@ -1,5 +1,6 @@ package com.yxt.anrui.oa.biz.oaform.flowable; +import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -31,10 +32,8 @@ public class BusinessVariablesDto { * 审批意见 */ private String comment; - /** - * 流程实例的id - */ - private String instanceId; + @ApiModelProperty("实例id") + private String procInsId; /** * taskId */ @@ -63,4 +62,8 @@ public class BusinessVariablesDto { * 业务参数,按需传递 */ private Map formVariables = new HashMap<>(); + /** + * 规则:请查看OaFormRuleEnum + */ + private int rule; } diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/CompleteDto.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/CompleteDto.java index 6a97e80ef2..960560c76e 100644 --- a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/CompleteDto.java +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/CompleteDto.java @@ -33,7 +33,7 @@ public class CompleteDto implements Dto { @NotBlank(message = "参数错误:businessSid") private String businessSid; - private String orgPath; +// private String orgPath; private Map formVariables = new HashMap<>(); } diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/DelegateDto.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/DelegateDto.java index eb2dcbdb03..566df680e4 100644 --- a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/DelegateDto.java +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/DelegateDto.java @@ -13,8 +13,8 @@ public class DelegateDto { @ApiModelProperty private String userSid; - @ApiModelProperty("流程实例id") - private String instanceId; + @ApiModelProperty("实例id") + private String procInsId; @ApiModelProperty("任务Id") private String taskId; @ApiModelProperty("审批人sid") diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/OaFormFlowDto.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/OaFormFlowDto.java index 99e040025a..cd1a9f8c1e 100644 --- a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/OaFormFlowDto.java +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/OaFormFlowDto.java @@ -16,7 +16,7 @@ public class OaFormFlowDto { private String procDefId; @ApiModelProperty("流程状态") private String nodeState; - @ApiModelProperty("流程实例id") + @ApiModelProperty("实例id") private String procInsId; @ApiModelProperty("环节id") private String taskDefKey; diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/SubmitDto.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/SubmitDto.java index 786dbcbb0d..08e21bd19b 100644 --- a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/SubmitDto.java +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/SubmitDto.java @@ -26,8 +26,8 @@ public class SubmitDto { private String nextNodeUserSids; @ApiModelProperty("下一处理人获取规则") private int rule; -// @ApiModelProperty("是否是首次提交") -// private boolean isNew; @ApiModelProperty("任务id") - private String nextNodeSid; + private String nextTaskId; + @ApiModelProperty("若含有其他机构的sid,则传") + private String orgSid; } diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/TaskDto.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/TaskDto.java index 470bd51a08..e34931765a 100644 --- a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/TaskDto.java +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/TaskDto.java @@ -40,10 +40,10 @@ public class TaskDto { /** * 终止 */ - @ApiModelProperty("流程实例Id(PC)") - private String instanceId; + /* @ApiModelProperty("流程实例Id(PC)") + private String instanceId;*/ - @ApiModelProperty("流程实例Id(移动)") + @ApiModelProperty("实例id") private String procInsId; private Map formVariables = new HashMap<>(); diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyDto.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyDto.java index 736ecbf4e6..23cdb01970 100644 --- a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyDto.java +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyDto.java @@ -68,6 +68,9 @@ public class OaMendApplyDto implements Dto { @ApiModelProperty("图片") private List files = new ArrayList<>(); + @ApiModelProperty("任务id") + private String taskId; + /* @ApiModelProperty("单据编号") private String billNo; // 单据编号 @ApiModelProperty("申请人") diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyService.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyService.java index 15a20a8ce2..534f14a87b 100644 --- a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyService.java +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyService.java @@ -30,6 +30,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.yxt.anrui.oa.biz.oaappendix.OaAppendixService; import com.yxt.anrui.oa.biz.oaform.OaFormDto; +import com.yxt.anrui.oa.biz.oaform.OaFormRuleEnum; import com.yxt.anrui.oa.biz.oaform.OaFormService; import com.yxt.anrui.oa.biz.oaform.flowable.*; import com.yxt.anrui.oa.feign.file.OaFileEnum; @@ -144,6 +145,7 @@ public class OaMendApplyService extends MybatisBaseService resultBean = oaFormService.saveOaForm(oaFormDto); if (!resultBean.getSuccess()) { @@ -178,7 +180,25 @@ public class OaMendApplyService extends MybatisBaseService 0) { + return rb.setMsg("删除的数据中包含已提交或已办结审批的数据,删除失败"); + } + delBySids(sids); + return rb.success(); + } + + /** + * 提交 + * + * @param dto + * @return + */ + public ResultBean submit(OaMendApplyDto dto) { ResultBean rb = ResultBean.fireFail(); ResultBean stringResultBean = saveOrUpdateDto(dto); if (!stringResultBean.getSuccess()) { @@ -197,23 +217,13 @@ public class OaMendApplyService extends MybatisBaseService 0) { - return rb.setMsg("删除的数据中包含已提交或已办结审批的数据,删除失败"); - } - delBySids(sids); - return rb.success(); - } - /** * 办理(同意) * @@ -252,7 +262,12 @@ public class OaMendApplyService extends MybatisBaseService> getPreviousNodesForReject(NodeQuery query) { + /** + * 提交时获取下一环节 + * @param query + * @return + */ + public ResultBean> getNextNodesForSubmit(NodeQuery query) { Map formVariables = query.getFormVariables(); //添加网关 // formVariables.put("", ""); @@ -261,10 +276,15 @@ public class OaMendApplyService extends MybatisBaseService> getNextNodesForSubmit(NodeQuery query) { + /** + * 驳回时获取上一环节 + * @param query + * @return + */ + public ResultBean> getPreviousNodesForReject(NodeQuery query) { Map formVariables = query.getFormVariables(); //添加网关 // formVariables.put("", ""); @@ -273,6 +293,11 @@ public class OaMendApplyService extends MybatisBaseService fetchBySid(@PathVariable("sid") String sid); + + @GetMapping("/getOrgByPath") + @ResponseBody + @ApiOperation("根据用户组织全路径组织") + public ResultBean getOrgByPath(@RequestParam("orgSidPath") String orgSidPath); } \ No newline at end of file diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/feign/portal/sysstafforg/SysStaffOrgFeign.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/feign/portal/sysstafforg/SysStaffOrgFeign.java index fe8cc0043e..99ee9f9993 100644 --- a/yxt-oa/src/main/java/com/yxt/anrui/oa/feign/portal/sysstafforg/SysStaffOrgFeign.java +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/feign/portal/sysstafforg/SysStaffOrgFeign.java @@ -23,9 +23,4 @@ public interface SysStaffOrgFeign { @ApiOperation("根据用户组织全路径获取用户的分公司sid") ResultBean getOrgSidByPath(@RequestParam("orgPath") String orgPath); - @GetMapping("/getOrgByPath") - @ResponseBody - @ApiOperation("根据用户组织全路径组织") - public ResultBean getOrgByPath(@RequestParam("orgSidPath") String orgSidPath); - } diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/feign/sysuser/SysUserFeign.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/feign/sysuser/SysUserFeign.java index 1fbf4876c1..4a29b2bb13 100644 --- a/yxt-oa/src/main/java/com/yxt/anrui/oa/feign/sysuser/SysUserFeign.java +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/feign/sysuser/SysUserFeign.java @@ -5,11 +5,14 @@ import com.yxt.common.core.result.ResultBean; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.cloud.openfeign.SpringQueryMap; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; +import java.util.List; + @Api(tags = "用户表") @FeignClient( contextId = "anrui-portal-SysUser", @@ -24,4 +27,13 @@ public interface SysUserFeign { @ApiOperation("根据sid获取一条记录") @GetMapping("/fetchBySid/{sid}") public ResultBean fetchBySid(@PathVariable("sid") String sid); + + @ApiOperation(value = "获取其他机构链角色的用户") + @GetMapping(value = "getOtherOrgRoleUser") + ResultBean> getOtherOrgRoleUser(@SpringQueryMap UserRoleQuery query); + + @ApiOperation(value = "获取本机构链角色的用户") + @GetMapping(value = "getUserByRole") + ResultBean> getUserByRole(@SpringQueryMap UserQuery query); + } diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/feign/sysuser/UserQuery.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/feign/sysuser/UserQuery.java new file mode 100644 index 0000000000..3b0109c87e --- /dev/null +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/feign/sysuser/UserQuery.java @@ -0,0 +1,21 @@ +package com.yxt.anrui.oa.feign.sysuser; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author dimengzhe + * @Date 2022/6/21 8:47 + * @Description + */ +@Data +public class UserQuery implements Query { + + private static final long serialVersionUID = -3979717077029562761L; + @ApiModelProperty(value = "角色sid必传项") + private String roleSid; + @ApiModelProperty(value = "用户部门sid路径是必传项") + private String orgSidPath; + +} diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/feign/sysuser/UserRoleQuery.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/feign/sysuser/UserRoleQuery.java new file mode 100644 index 0000000000..fd3785b1e8 --- /dev/null +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/feign/sysuser/UserRoleQuery.java @@ -0,0 +1,19 @@ +package com.yxt.anrui.oa.feign.sysuser; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author dimengzhe + * @Date 2022/8/25 8:38 + * @Description + */ +@Data +public class UserRoleQuery implements Query { + private static final long serialVersionUID = 1913450300189800653L; + + @ApiModelProperty("角色sid") + private String roleSid; + private String orgSid; +}