From 1ad83c2f78116618751abe283413817b4eac43be Mon Sep 17 00:00:00 2001 From: fanzongzhe0036 Date: Fri, 10 Jan 2025 17:38:45 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=94=E5=88=A9=E6=A8=A1=E6=9D=BF=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ScmFinanceAdjustApplyFeign.java | 6 + .../ScmFinanceAdjustApplyFeignFallback.java | 5 + .../ScmFinanceAdjustApplyRest.java | 8 + .../ScmFinanceAdjustApplyService.java | 1650 +++++++++-------- .../biz/scmvehrebate/ScmVehRebateService.java | 2 + 5 files changed, 859 insertions(+), 812 deletions(-) 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 955fc355c7..54ddae8c55 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 @@ -60,6 +60,12 @@ import java.util.List; fallback = ScmFinanceAdjustApplyFeignFallback.class) public interface ScmFinanceAdjustApplyFeign { + @ApiOperation("重推凭证单据") + @PostMapping("/rePushVoucher") + public ResultBean rePushVoucher(@RequestParam("sid") String sid); + + + @ApiOperation("根据条件分页查询数据的列表") @PostMapping("/listPage") @ResponseBody 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 b22df77d37..acc9f84136 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 @@ -50,6 +50,11 @@ import java.util.List; @Component public class ScmFinanceAdjustApplyFeignFallback implements ScmFinanceAdjustApplyFeign { + @Override + public ResultBean rePushVoucher(String sid) { + return null; + } + @Override public ResultBean> listPage(PagerQuery pq){ ResultBean rb = ResultBean.fireFail(); diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmfinanceadjustapply/ScmFinanceAdjustApplyRest.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmfinanceadjustapply/ScmFinanceAdjustApplyRest.java index 3f471a9155..02f1323ae4 100644 --- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmfinanceadjustapply/ScmFinanceAdjustApplyRest.java +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmfinanceadjustapply/ScmFinanceAdjustApplyRest.java @@ -67,6 +67,14 @@ public class ScmFinanceAdjustApplyRest implements ScmFinanceAdjustApplyFeign { private ScmFileService scmFileService; @Autowired private ScmFinanceAdjustDetailsService scmFinanceAdjustDetailsService; + + @Override + public ResultBean rePushVoucher(String sid) { + ResultBean rb = ResultBean.fireFail(); + scmFinanceAdjustApplyService.rePushVoucher(sid); + return rb.success(); + } + @Override @ApiOperation("根据条件分页查询数据的列表") @PostMapping("/listPage") 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 150df16bee..544a1d552f 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 @@ -94,823 +94,849 @@ import java.util.stream.Collectors; @Service public class ScmFinanceAdjustApplyService extends MybatisBaseService { - @Autowired - private MessageFeign messageFeign; - @Autowired - private FlowTaskFeign flowTaskFeign; - @Autowired - private FlowFeign flowFeign; - @Autowired - private FlowableFeign flowableFeign; - @Autowired - private SysStaffOrgFeign sysStaffOrgFeign; - @Autowired - private ScmFileService scmFileService; - @Autowired - private ScmFinanceAdjustDetailsService scmFinanceAdjustDetailsService; - @Autowired - private FileUploadComponent fileUploadComponent; - @Autowired - private DocPdfComponent docPdfComponent; - @Autowired - private SysUserFeign sysUserFeign; - @Autowired - private SysOrganizationFeign sysOrganizationFeign; - - private QueryWrapper createQueryWrapper(ScmFinanceAdjustApplyQuery query) { - // todo: 这里根据具体业务调整查询条件 - // 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName())); - QueryWrapper qw = new QueryWrapper<>(); - return qw; - } - - public PagerVo listPageVo(PagerQuery pq) { - ScmFinanceAdjustApplyQuery query = pq.getParams(); - QueryWrapper qw = new QueryWrapper<>(); - if (StringUtils.isNotBlank(query.getMenuUrl())) { - PrivilegeQuery privilegeQuery = new PrivilegeQuery(); - privilegeQuery.setOrgPath(query.getOrgPath()); - privilegeQuery.setMenuUrl(query.getMenuUrl()); - privilegeQuery.setUserSid(query.getUserSid()); - ResultBean defaultIdReltBean = sysUserFeign.selectPrivilegeLevelPath(privilegeQuery); - if (null != defaultIdReltBean.getData()) { - //数据权限ID(1集团、2事业部、3分公司、4部门、5个人) - PrivilegeVo privilegeVo = defaultIdReltBean.getData(); - if ("5".equals(privilegeVo.getOrgLevelKey())) { - qw.eq("a.createBySid", privilegeVo.getLevelPath()); - } else { - qw.like("s.orgSidPath", privilegeVo.getLevelPath()); - } - } else { - PagerVo p = new PagerVo<>(); - return p; - } - } - if (StringUtils.isNotBlank(query.getUseOrgName())) { - qw.like("a.useOrgName",query.getUseOrgName()); - } - if (StringUtils.isNotBlank(query.getDeptName())) { - qw.like("a.deptName",query.getDeptName()); - } - if (StringUtils.isNotBlank(query.getCreateByName())) { - qw.like("a.createByName",query.getCreateByName()); - } - if (StringUtils.isNotBlank(query.getBillNo())) { - qw.like("a.billNo",query.getBillNo()); - } - String applyStartTime = query.getCreateStartDate(); - String applyEndTime = query.getCreateEndDate(); - qw.apply(StringUtils.isNotEmpty(applyStartTime), "date_format (a.createTime,'%Y-%m-%d') >= date_format('" + applyStartTime + "','%Y-%m-%d')"). - apply(StringUtils.isNotEmpty(applyEndTime), "date_format (a.createTime,'%Y-%m-%d') <= date_format('" + applyEndTime + "','%Y-%m-%d')" - ); - String closingStartDate = query.getCloseStartDate(); - String closingEndDate = query.getCloseEndDate(); - qw.apply(StringUtils.isNotEmpty(closingStartDate), "date_format (a.closingDate,'%Y-%m-%d') >= date_format('" + closingStartDate + "','%Y-%m-%d')"). - apply(StringUtils.isNotEmpty(closingEndDate), "date_format (a.closingDate,'%Y-%m-%d') <= date_format('" + closingEndDate + "','%Y-%m-%d')" - ); - IPage page = PagerUtil.queryToPage(pq); - IPage pagging = baseMapper.selectPageVo(page, qw); - PagerVo p = PagerUtil.pageToVo(pagging, null); - return p; - } - - /** - * 生成申请单单据编号 - * - * @param orgSid - * @return - */ - public String getApplyCode(String orgSid) { - //获取分公司sid - ResultBean resultBean1 = sysOrganizationFeign.fetchBySid(orgSid); - String orgCode = resultBean1.getData().getOrgCode(); - BillNo b = new BillNo(); - b.setOrgCode(orgCode); - b.setBillType(BillTypeEnum.JRTXCY.getBillType()); - String bill = Rule.getBill(b); - int i = baseMapper.selectNum(bill); - String billNo = Rule.getBillNo(bill, i); - return billNo; - } - - public String saveBill(ScmFinanceAdjustApplyDto dto) { - String sid = ""; - if (StringUtils.isNotBlank(dto.getSid())) { - sid = dto.getSid(); - ScmFinanceAdjustApply scmFinanceAdjustApply = fetchBySid(sid); - BeanUtil.copyProperties(dto,scmFinanceAdjustApply,"id","sid"); - baseMapper.updateById(scmFinanceAdjustApply); - } else { - ScmFinanceAdjustApply entity = new ScmFinanceAdjustApply(); - sid = entity.getSid(); - BeanUtil.copyProperties(dto,entity,"id","sid"); - entity.setNodeState("待提交"); - String applyCode = getApplyCode(dto.getUseOrgSid()); - entity.setBillNo(applyCode); - baseMapper.insert(entity); - } - scmFileService.delByMainSid(sid); - if (!dto.getFilePath().isEmpty() && dto.getFilePath().size() > 0) { - for (QueryUrl scmFile : dto.getFilePath()) { - ScmFileDto scmFileDto = new ScmFileDto(); - scmFileDto.setAttachType(CommonAttachTypeEnum.JRTXCYTZ.getAttachType()); - scmFileDto.setLinkSid(sid); - String filePath = scmFile.getUrl(); - if (filePath.indexOf(fileUploadComponent.getUrlPrefix()) > -1) { - filePath = filePath.replace(fileUploadComponent.getUrlPrefix(), ""); - } - scmFileDto.setFilePath(filePath); - scmFileService.insertByDto(scmFileDto); - } - } - scmFinanceAdjustDetailsService.delByMainSid(sid); - if (!dto.getList().isEmpty() && dto.getList().size() > 0) { - for (AdjustDetailsListVo detailsListVo : dto.getList()) { - ScmFinanceAdjustDetails details = new ScmFinanceAdjustDetails(); - BeanUtil.copyProperties(detailsListVo,details,"id","sid"); - details.setMainSid(sid); - scmFinanceAdjustDetailsService.insert(details); - } - } - return sid; - } - - public void saveOrUpdateDto(ScmFinanceAdjustApplyDto dto){ + @Autowired + private MessageFeign messageFeign; + @Autowired + private FlowTaskFeign flowTaskFeign; + @Autowired + private FlowFeign flowFeign; + @Autowired + private FlowableFeign flowableFeign; + @Autowired + private SysStaffOrgFeign sysStaffOrgFeign; + @Autowired + private ScmFileService scmFileService; + @Autowired + private ScmFinanceAdjustDetailsService scmFinanceAdjustDetailsService; + @Autowired + private FileUploadComponent fileUploadComponent; + @Autowired + private DocPdfComponent docPdfComponent; + @Autowired + private SysUserFeign sysUserFeign; + @Autowired + private SysOrganizationFeign sysOrganizationFeign; + + private QueryWrapper createQueryWrapper(ScmFinanceAdjustApplyQuery query) { + // todo: 这里根据具体业务调整查询条件 + // 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName())); + QueryWrapper qw = new QueryWrapper<>(); + return qw; + } + + public PagerVo listPageVo(PagerQuery pq) { + ScmFinanceAdjustApplyQuery query = pq.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + if (StringUtils.isNotBlank(query.getMenuUrl())) { + PrivilegeQuery privilegeQuery = new PrivilegeQuery(); + privilegeQuery.setOrgPath(query.getOrgPath()); + privilegeQuery.setMenuUrl(query.getMenuUrl()); + privilegeQuery.setUserSid(query.getUserSid()); + ResultBean defaultIdReltBean = sysUserFeign.selectPrivilegeLevelPath(privilegeQuery); + if (null != defaultIdReltBean.getData()) { + //数据权限ID(1集团、2事业部、3分公司、4部门、5个人) + PrivilegeVo privilegeVo = defaultIdReltBean.getData(); + if ("5".equals(privilegeVo.getOrgLevelKey())) { + qw.eq("a.createBySid", privilegeVo.getLevelPath()); + } else { + qw.like("s.orgSidPath", privilegeVo.getLevelPath()); + } + } else { + PagerVo p = new PagerVo<>(); + return p; + } + } + if (StringUtils.isNotBlank(query.getUseOrgName())) { + qw.like("a.useOrgName", query.getUseOrgName()); + } + if (StringUtils.isNotBlank(query.getDeptName())) { + qw.like("a.deptName", query.getDeptName()); + } + if (StringUtils.isNotBlank(query.getCreateByName())) { + qw.like("a.createByName", query.getCreateByName()); + } + if (StringUtils.isNotBlank(query.getBillNo())) { + qw.like("a.billNo", query.getBillNo()); + } + String applyStartTime = query.getCreateStartDate(); + String applyEndTime = query.getCreateEndDate(); + qw.apply(StringUtils.isNotEmpty(applyStartTime), "date_format (a.createTime,'%Y-%m-%d') >= date_format('" + applyStartTime + "','%Y-%m-%d')"). + apply(StringUtils.isNotEmpty(applyEndTime), "date_format (a.createTime,'%Y-%m-%d') <= date_format('" + applyEndTime + "','%Y-%m-%d')" + ); + String closingStartDate = query.getCloseStartDate(); + String closingEndDate = query.getCloseEndDate(); + qw.apply(StringUtils.isNotEmpty(closingStartDate), "date_format (a.closingDate,'%Y-%m-%d') >= date_format('" + closingStartDate + "','%Y-%m-%d')"). + apply(StringUtils.isNotEmpty(closingEndDate), "date_format (a.closingDate,'%Y-%m-%d') <= date_format('" + closingEndDate + "','%Y-%m-%d')" + ); + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.selectPageVo(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); + return p; + } + + /** + * 生成申请单单据编号 + * + * @param orgSid + * @return + */ + public String getApplyCode(String orgSid) { + //获取分公司sid + ResultBean resultBean1 = sysOrganizationFeign.fetchBySid(orgSid); + String orgCode = resultBean1.getData().getOrgCode(); + BillNo b = new BillNo(); + b.setOrgCode(orgCode); + b.setBillType(BillTypeEnum.JRTXCY.getBillType()); + String bill = Rule.getBill(b); + int i = baseMapper.selectNum(bill); + String billNo = Rule.getBillNo(bill, i); + return billNo; + } + + public String saveBill(ScmFinanceAdjustApplyDto dto) { + String sid = ""; + if (StringUtils.isNotBlank(dto.getSid())) { + sid = dto.getSid(); + ScmFinanceAdjustApply scmFinanceAdjustApply = fetchBySid(sid); + BeanUtil.copyProperties(dto, scmFinanceAdjustApply, "id", "sid"); + baseMapper.updateById(scmFinanceAdjustApply); + } else { + ScmFinanceAdjustApply entity = new ScmFinanceAdjustApply(); + sid = entity.getSid(); + BeanUtil.copyProperties(dto, entity, "id", "sid"); + entity.setNodeState("待提交"); + String applyCode = getApplyCode(dto.getUseOrgSid()); + entity.setBillNo(applyCode); + baseMapper.insert(entity); + } + scmFileService.delByMainSid(sid); + if (!dto.getFilePath().isEmpty() && dto.getFilePath().size() > 0) { + for (QueryUrl scmFile : dto.getFilePath()) { + ScmFileDto scmFileDto = new ScmFileDto(); + scmFileDto.setAttachType(CommonAttachTypeEnum.JRTXCYTZ.getAttachType()); + scmFileDto.setLinkSid(sid); + String filePath = scmFile.getUrl(); + if (filePath.indexOf(fileUploadComponent.getUrlPrefix()) > -1) { + filePath = filePath.replace(fileUploadComponent.getUrlPrefix(), ""); + } + scmFileDto.setFilePath(filePath); + scmFileService.insertByDto(scmFileDto); + } + } + scmFinanceAdjustDetailsService.delByMainSid(sid); + if (!dto.getList().isEmpty() && dto.getList().size() > 0) { + for (AdjustDetailsListVo detailsListVo : dto.getList()) { + ScmFinanceAdjustDetails details = new ScmFinanceAdjustDetails(); + BeanUtil.copyProperties(detailsListVo, details, "id", "sid"); + details.setMainSid(sid); + scmFinanceAdjustDetailsService.insert(details); + } + } + return sid; + } + + public void saveOrUpdateDto(ScmFinanceAdjustApplyDto dto) { String dtoSid = dto.getSid(); if (StringUtils.isBlank(dtoSid)) { this.insertByDto(dto); - return; - } - this.updateByDto(dto); - } - - public void insertByDto(ScmFinanceAdjustApplyDto dto){ - ScmFinanceAdjustApply entity = new ScmFinanceAdjustApply(); - BeanUtil.copyProperties(dto, entity, "id", "sid"); - baseMapper.insert(entity); - } - - public void updateByDto(ScmFinanceAdjustApplyDto dto){ - String dtoSid = dto.getSid(); + return; + } + this.updateByDto(dto); + } + + public void insertByDto(ScmFinanceAdjustApplyDto dto) { + ScmFinanceAdjustApply entity = new ScmFinanceAdjustApply(); + BeanUtil.copyProperties(dto, entity, "id", "sid"); + baseMapper.insert(entity); + } + + public void updateByDto(ScmFinanceAdjustApplyDto dto) { + String dtoSid = dto.getSid(); if (StringUtils.isBlank(dtoSid)) { return; - } - ScmFinanceAdjustApply entity = fetchBySid(dtoSid); - BeanUtil.copyProperties(dto, entity, "id", "sid"); - baseMapper.updateById(entity); - } - - public ScmFinanceAdjustApplyDetailsVo fetchDetailsVoBySid(String sid){ - ScmFinanceAdjustApply entity = fetchBySid(sid); - ScmFinanceAdjustApplyDetailsVo vo = new ScmFinanceAdjustApplyDetailsVo(); - List filePaths = new ArrayList<>(); - List listVos = new ArrayList<>(); - if (null != entity) { - BeanUtil.copyProperties(entity, vo); - if (StringUtils.isNotBlank(entity.getProcInstId())) { - vo.setInstanceId(entity.getProcInstId()); - } - vo.setCreateTime(DateUtil.formatDate(entity.getCreateTime())); - List scmFileVos = scmFileService.fetchByMainSid(sid); - if (!scmFileVos.isEmpty() && scmFileVos.size() > 0) { - for (ScmFileVo scmFileVo : scmFileVos) { - QueryUrl url = new QueryUrl(); - String filePath = scmFileVo.getFilePath(); - String urlPrefix = fileUploadComponent.getUrlPrefix(); - filePath = urlPrefix + filePath; - url.setUrl(filePath); - filePaths.add(url); - } - vo.setFilePath(filePaths); - } - List details = scmFinanceAdjustDetailsService.selByMainSid(sid); - if (!details.isEmpty() && details.size() > 0) { - for (ScmFinanceAdjustDetails detail : details) { - AdjustDetailsListVo detailsListVo = new AdjustDetailsListVo(); - BeanUtil.copyProperties(detail,detailsListVo); - listVos.add(detailsListVo); - } - vo.setList(listVos); - } - } - return vo; - } - - public PagerVo getAdjustVehList(PagerQuery pq) { - AdjustVehListQuery query = pq.getParams(); - QueryWrapper qw = new QueryWrapper<>(); - if (StringUtils.isNotBlank(query.getPurchaseSystemName())) { - qw.like("n.purchaseSystemName",query.getPurchaseSystemName()); - } - if (StringUtils.isNotBlank(query.getBrandName())) { - qw.like("n.brandName",query.getBrandName()); - } - if (StringUtils.isNotBlank(query.getVehModel())) { - qw.like("n.vehModelName",query.getVehModel()); - } - if (StringUtils.isNotBlank(query.getVinNo())) { - qw.like("n.vinNo",query.getVinNo()); - } - if (StringUtils.isNotBlank(query.getCustomerName())) { - qw.like("bo.customerName",query.getCustomerName()); - } - if (StringUtils.isNotBlank(query.getContractNo())) { - qw.like("bo.contractNo",query.getContractNo()); - } - if (StringUtils.isNotBlank(query.getStaffSid())) { - qw.eq("bo.createBySid",query.getStaffSid()); - } - String[] sids = query.getSids(); - if (sids != null) { - for (String sid : sids) { - if (StringUtils.isNotBlank(sid)) { - qw.ne("n.vehSid", sid); - } - } - } - qw.apply("n.nowDiffAmount != 0"); - qw.eq("n.useOrgSid",query.getUseOrgSid()); - IPage page = PagerUtil.queryToPage(pq); - IPage pagging = baseMapper.getAdjustVehList(page, qw); - PagerVo p = PagerUtil.pageToVo(pagging, null); - return p; - } - - public PagerVo finAdjustList(PagerQuery pq) { - AdjustVehListQuery query = pq.getParams(); - QueryWrapper qw = new QueryWrapper<>(); - if (StringUtils.isNotBlank(query.getMenuUrl())) { - PrivilegeQuery privilegeQuery = new PrivilegeQuery(); - privilegeQuery.setOrgPath(query.getOrgPath()); - privilegeQuery.setMenuUrl(query.getMenuUrl()); - privilegeQuery.setUserSid(query.getUserSid()); - ResultBean defaultIdReltBean = sysUserFeign.selectPrivilegeLevelPath(privilegeQuery); - if (null != defaultIdReltBean.getData()) { - //数据权限ID(1集团、2事业部、3分公司、4部门、5个人) - PrivilegeVo privilegeVo = defaultIdReltBean.getData(); - if ("5".equals(privilegeVo.getOrgLevelKey())) { - qw.eq("n.createBySid", privilegeVo.getLevelPath()); - } else { - qw.like("n.orgPath", privilegeVo.getLevelPath()); - } - } else { - PagerVo p = new PagerVo<>(); - return p; - } - } - if (StringUtils.isNotBlank(query.getPurchaseSystemName())) { - qw.like("n.purchaseSystemName",query.getPurchaseSystemName()); - } - if (StringUtils.isNotBlank(query.getBrandName())) { - qw.like("n.brandName",query.getBrandName()); - } - if (StringUtils.isNotBlank(query.getVehModel())) { - qw.like("n.vehModelName",query.getVehModel()); - } - if (StringUtils.isNotBlank(query.getVinNo())) { - qw.like("n.vinNo",query.getVinNo()); - } - if (StringUtils.isNotBlank(query.getCustomerName())) { - qw.like("bo.customerName",query.getCustomerName()); - } - if (StringUtils.isNotBlank(query.getContractNo())) { - qw.like("bo.contractNo",query.getContractNo()); - } - if (StringUtils.isNotBlank(query.getStaffSid())) { - qw.eq("bo.createBySid",query.getStaffSid()); - } - if (StringUtils.isNotBlank(query.getState())) { - if (query.getState().equals("未调整")) { - qw.apply("n.alreadyMoney = 0"); - } else if (query.getState().equals("已调整")){ - qw.apply("n.nowDiffAmount = 0"); - } else { - qw.apply("n.nowDiffAmount != 0 and n.alreadyMoney != 0"); - } - } - IPage page = PagerUtil.queryToPage(pq); - IPage pagging = baseMapper.finAdjustList(page, qw); - PagerVo p = PagerUtil.pageToVo(pagging, null); - return p; - } - - public int selectBySid(String join) { - return baseMapper.selectBySid(join); - } - - - - //-------------------------------------流程------------------------------------------------/ - - /** - * 判断提交的流程是否被允许 - * - * @param dto - * @return - */ - private synchronized int submitBusinessData(SubmitAdjustDto dto, ScmFinanceAdjustApply scmFinanceAdjustApply) { - int r = 0; - if (StringUtils.isBlank(dto.getSid())) { - r = 1; - } else { - if (scmFinanceAdjustApply != null) { - String businessTaskId = scmFinanceAdjustApply.getTaskId(); - if (StringUtils.isBlank(businessTaskId) && StringUtils.isBlank(dto.getTaskId())) { - //新提交 - r = 1; - } else if (StringUtils.isNotBlank(businessTaskId) && businessTaskId.equals(dto.getTaskId())) { - //二次提交//只有数据一致的时候才能进行下一步 - r = 2; - } - } else { - r = 3; - } - } - return r; - } - - /** - * 更新流程相关的状态 - * - * @param map - * @return - */ - private int updateFlowFiled(Map map) { - return baseMapper.updateFlowFiled(map); - } - - public ResultBean submitRecordApplication(SubmitAdjustDto dto) { - ResultBean rb = ResultBean.fireFail(); - ScmFinanceAdjustApply scmFinanceAdjustApply = fetchBySid(dto.getSid()); - int r = submitBusinessData(dto, scmFinanceAdjustApply); - if (r == 3) { - return rb.setMsg("该申请不存在"); - } - if (r == 0) { - return rb.setMsg("操作失败!提交的数据不一致"); - } - //新增修改保存 - String businessSid = saveBill(dto); - ScmFinanceAdjustApply entity = fetchBySid(businessSid); - String orgSidPath = ""; - if (StringUtils.isNotBlank(entity.getDeptSid())) { - SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(entity.getDeptSid()).getData(); - if (null != organizationVo) { - orgSidPath = organizationVo.getOrgSidPath(); - } - } else { - SysUserVo data = sysUserFeign.fetchBySid(entity.getCreateBySid()).getData(); - if (null != data) { - //根据staffSid获取用户的组织全路径 - ResultBean staffOrgResultBean = sysStaffOrgFeign.getOrgByStaffSid(data.getStaffSid()); - if (!staffOrgResultBean.getSuccess()) { - return rb.setMsg(staffOrgResultBean.getMsg()); - } - //用户的组织全路径 - orgSidPath = staffOrgResultBean.getData().getOrgSidPath(); - } - } - List orgPathList = Arrays.asList(orgSidPath.split("/")); - SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(orgPathList.get(orgPathList.size() - 1)).getData(); - if (sysOrganization == null) { - return rb.setMsg("当前所在的组织机构不存在"); - } - if (StringUtils.isBlank(sysOrganization.getManagerSid())) { + } + ScmFinanceAdjustApply entity = fetchBySid(dtoSid); + BeanUtil.copyProperties(dto, entity, "id", "sid"); + baseMapper.updateById(entity); + } + + public ScmFinanceAdjustApplyDetailsVo fetchDetailsVoBySid(String sid) { + ScmFinanceAdjustApply entity = fetchBySid(sid); + ScmFinanceAdjustApplyDetailsVo vo = new ScmFinanceAdjustApplyDetailsVo(); + List filePaths = new ArrayList<>(); + List listVos = new ArrayList<>(); + if (null != entity) { + BeanUtil.copyProperties(entity, vo); + if (StringUtils.isNotBlank(entity.getProcInstId())) { + vo.setInstanceId(entity.getProcInstId()); + } + vo.setCreateTime(DateUtil.formatDate(entity.getCreateTime())); + List scmFileVos = scmFileService.fetchByMainSid(sid); + if (!scmFileVos.isEmpty() && scmFileVos.size() > 0) { + for (ScmFileVo scmFileVo : scmFileVos) { + QueryUrl url = new QueryUrl(); + String filePath = scmFileVo.getFilePath(); + String urlPrefix = fileUploadComponent.getUrlPrefix(); + filePath = urlPrefix + filePath; + url.setUrl(filePath); + filePaths.add(url); + } + vo.setFilePath(filePaths); + } + List details = scmFinanceAdjustDetailsService.selByMainSid(sid); + if (!details.isEmpty() && details.size() > 0) { + for (ScmFinanceAdjustDetails detail : details) { + AdjustDetailsListVo detailsListVo = new AdjustDetailsListVo(); + BeanUtil.copyProperties(detail, detailsListVo); + listVos.add(detailsListVo); + } + vo.setList(listVos); + } + } + return vo; + } + + public PagerVo getAdjustVehList(PagerQuery pq) { + AdjustVehListQuery query = pq.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + if (StringUtils.isNotBlank(query.getPurchaseSystemName())) { + qw.like("n.purchaseSystemName", query.getPurchaseSystemName()); + } + if (StringUtils.isNotBlank(query.getBrandName())) { + qw.like("n.brandName", query.getBrandName()); + } + if (StringUtils.isNotBlank(query.getVehModel())) { + qw.like("n.vehModelName", query.getVehModel()); + } + if (StringUtils.isNotBlank(query.getVinNo())) { + qw.like("n.vinNo", query.getVinNo()); + } + if (StringUtils.isNotBlank(query.getCustomerName())) { + qw.like("bo.customerName", query.getCustomerName()); + } + if (StringUtils.isNotBlank(query.getContractNo())) { + qw.like("bo.contractNo", query.getContractNo()); + } + if (StringUtils.isNotBlank(query.getStaffSid())) { + qw.eq("bo.createBySid", query.getStaffSid()); + } + String[] sids = query.getSids(); + if (sids != null) { + for (String sid : sids) { + if (StringUtils.isNotBlank(sid)) { + qw.ne("n.vehSid", sid); + } + } + } + qw.apply("n.nowDiffAmount != 0"); + qw.eq("n.useOrgSid", query.getUseOrgSid()); + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.getAdjustVehList(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); + return p; + } + + public PagerVo finAdjustList(PagerQuery pq) { + AdjustVehListQuery query = pq.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + if (StringUtils.isNotBlank(query.getMenuUrl())) { + PrivilegeQuery privilegeQuery = new PrivilegeQuery(); + privilegeQuery.setOrgPath(query.getOrgPath()); + privilegeQuery.setMenuUrl(query.getMenuUrl()); + privilegeQuery.setUserSid(query.getUserSid()); + ResultBean defaultIdReltBean = sysUserFeign.selectPrivilegeLevelPath(privilegeQuery); + if (null != defaultIdReltBean.getData()) { + //数据权限ID(1集团、2事业部、3分公司、4部门、5个人) + PrivilegeVo privilegeVo = defaultIdReltBean.getData(); + if ("5".equals(privilegeVo.getOrgLevelKey())) { + qw.eq("n.createBySid", privilegeVo.getLevelPath()); + } else { + qw.like("n.orgPath", privilegeVo.getLevelPath()); + } + } else { + PagerVo p = new PagerVo<>(); + return p; + } + } + if (StringUtils.isNotBlank(query.getPurchaseSystemName())) { + qw.like("n.purchaseSystemName", query.getPurchaseSystemName()); + } + if (StringUtils.isNotBlank(query.getBrandName())) { + qw.like("n.brandName", query.getBrandName()); + } + if (StringUtils.isNotBlank(query.getVehModel())) { + qw.like("n.vehModelName", query.getVehModel()); + } + if (StringUtils.isNotBlank(query.getVinNo())) { + qw.like("n.vinNo", query.getVinNo()); + } + if (StringUtils.isNotBlank(query.getCustomerName())) { + qw.like("bo.customerName", query.getCustomerName()); + } + if (StringUtils.isNotBlank(query.getContractNo())) { + qw.like("bo.contractNo", query.getContractNo()); + } + if (StringUtils.isNotBlank(query.getStaffSid())) { + qw.eq("bo.createBySid", query.getStaffSid()); + } + if (StringUtils.isNotBlank(query.getState())) { + if (query.getState().equals("未调整")) { + qw.apply("n.alreadyMoney = 0"); + } else if (query.getState().equals("已调整")) { + qw.apply("n.nowDiffAmount = 0"); + } else { + qw.apply("n.nowDiffAmount != 0 and n.alreadyMoney != 0"); + } + } + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.finAdjustList(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); + return p; + } + + public int selectBySid(String join) { + return baseMapper.selectBySid(join); + } + + + //-------------------------------------流程------------------------------------------------/ + + /** + * 判断提交的流程是否被允许 + * + * @param dto + * @return + */ + private synchronized int submitBusinessData(SubmitAdjustDto dto, ScmFinanceAdjustApply scmFinanceAdjustApply) { + int r = 0; + if (StringUtils.isBlank(dto.getSid())) { + r = 1; + } else { + if (scmFinanceAdjustApply != null) { + String businessTaskId = scmFinanceAdjustApply.getTaskId(); + if (StringUtils.isBlank(businessTaskId) && StringUtils.isBlank(dto.getTaskId())) { + //新提交 + r = 1; + } else if (StringUtils.isNotBlank(businessTaskId) && businessTaskId.equals(dto.getTaskId())) { + //二次提交//只有数据一致的时候才能进行下一步 + r = 2; + } + } else { + r = 3; + } + } + return r; + } + + /** + * 更新流程相关的状态 + * + * @param map + * @return + */ + private int updateFlowFiled(Map map) { + return baseMapper.updateFlowFiled(map); + } + + public ResultBean submitRecordApplication(SubmitAdjustDto dto) { + ResultBean rb = ResultBean.fireFail(); + ScmFinanceAdjustApply scmFinanceAdjustApply = fetchBySid(dto.getSid()); + int r = submitBusinessData(dto, scmFinanceAdjustApply); + if (r == 3) { + return rb.setMsg("该申请不存在"); + } + if (r == 0) { + return rb.setMsg("操作失败!提交的数据不一致"); + } + //新增修改保存 + String businessSid = saveBill(dto); + ScmFinanceAdjustApply entity = fetchBySid(businessSid); + String orgSidPath = ""; + if (StringUtils.isNotBlank(entity.getDeptSid())) { + SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(entity.getDeptSid()).getData(); + if (null != organizationVo) { + orgSidPath = organizationVo.getOrgSidPath(); + } + } else { + SysUserVo data = sysUserFeign.fetchBySid(entity.getCreateBySid()).getData(); + if (null != data) { + //根据staffSid获取用户的组织全路径 + ResultBean staffOrgResultBean = sysStaffOrgFeign.getOrgByStaffSid(data.getStaffSid()); + if (!staffOrgResultBean.getSuccess()) { + return rb.setMsg(staffOrgResultBean.getMsg()); + } + //用户的组织全路径 + orgSidPath = staffOrgResultBean.getData().getOrgSidPath(); + } + } + List orgPathList = Arrays.asList(orgSidPath.split("/")); + SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(orgPathList.get(orgPathList.size() - 1)).getData(); + if (sysOrganization == null) { + return rb.setMsg("当前所在的组织机构不存在"); + } + if (StringUtils.isBlank(sysOrganization.getManagerSid())) { // return rb.setMsg("当前所在的组织机构未设置主管人员"); - sysOrganization.setManagerSid(ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId()); - } - //创建BusinessVariables实体对象 - BusinessVariables bv = new BusinessVariables(); - //流程中的参数赋值 - Map variables = BeanUtil.beanToMap(dto); - Map appMap = new HashMap<>(); - //若有网关,则赋值网关中判断的字段。 - boolean isCustomer = false; //调整方式是否为客户交纳 - boolean isMoney = false;//认损金额是否>2000 - //去查询调整方式是否为客户交纳 - if (entity.getAdjustWay().equals("客户交纳")) { - isCustomer = true; - } else { - List details = scmFinanceAdjustDetailsService.selByMainSid(businessSid); - if (!details.isEmpty()) { - for (ScmFinanceAdjustDetails detail : details) { - BigDecimal rensunMoney = BigDecimal.ZERO; - if (null != detail.getNowAdjustmentMoney()) { - rensunMoney = detail.getNowAdjustmentMoney(); - } - if (rensunMoney.compareTo(new BigDecimal("2000")) > 0) { - //判断认损金额>2000 - isMoney = true; - } - } - } - } - variables.put("isCustomer", isCustomer); - variables.put("isMoney", isMoney); - variables.put("businessSid", businessSid); - appMap.put("sid", businessSid); - variables.put("app", appMap); - String orderNames = "金融贴息差异调整申请"; - variables.put("orderNames", orderNames); - ScmFinanceAdjustApply scmFinanceAdjustApply1 = fetchBySid(businessSid); - String msgBusinessSid = scmFinanceAdjustApply1.getSid(); - //用户的部门全路径sid - bv.setOrgSidPath(orgSidPath); - //业务sid - bv.setBusinessSid(businessSid); - //用户sid - bv.setUserSid(dto.getCreateBySid()); - bv.setFormVariables(variables); - String nextNodeUserSids_ = sysOrganization.getManagerSid(); - if (isCustomer) { - if (StringUtils.isNotBlank(entity.getStaffSid())) { - bv.setNextNodeUserSids(entity.getStaffSid()); - } else { - bv.setNextNodeUserSids(ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId()); - } - } - //流程定义id - bv.setModelId(ProcDefEnum.JTTXCYSQ.getProDefId()); - if (r == 1) { - //流程定义id - bv.setModelId(ProcDefEnum.JTTXCYSQ.getProDefId()); - ResultBean voResultBean = flowFeign.startProcess(bv); - if (!voResultBean.getSuccess()) { - return rb.setMsg(voResultBean.getMsg()); - } - UpdateFlowFieldVo ufVo = voResultBean.getData(); - int i = updateFlowFiled(BeanUtil.beanToMap(ufVo)); - //==================================添加线程 - 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(appMap); - messageFlowableQuery.setBusinessSid(msgBusinessSid); - messageFlowableQuery.setModuleName("金融贴息差异调整申请"); - SysUserVo userVo = sysUserFeign.fetchBySid(scmFinanceAdjustApply1.getCreateBySid()).getData(); - if (userVo != null) { - if (StringUtils.isNotBlank(userVo.getName())) { - messageFlowableQuery.setMsgContent(userVo.getName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); - } - } - messageFlowableQuery.setMsgTitle("金融贴息差异调整申请"); - ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); - }); - } catch (Exception e) { - e.printStackTrace(); - } - //==================================添加线程 - return voResultBean; - } - if (r == 2) { - // ToDo:驳回到发起人后再次提交 - if (StringUtils.isBlank(dto.getInstanceId())) { - return rb.setMsg("参数错误:instanceId"); - } - ScmFinanceAdjustApply scmFinanceAdjustApply2 = fetchBySid(dto.getSid()); - bv.setTaskId(dto.getTaskId()); - bv.setTaskDefKey(scmFinanceAdjustApply2.getNodeSid()); - bv.setComment("重新提交"); - bv.setInstanceId(dto.getInstanceId()); - return complete(bv); - } - return rb; - } - - public ResultBean complete(BusinessVariables bv) { - ResultBean rb = ResultBean.fireFail(); - String businessSid = bv.getBusinessSid(); - ScmFinanceAdjustApply entity = this.fetchBySid(businessSid); - if (bv.getTaskId().equals(entity.getTaskId())) { - String orgSidPath = ""; - if (StringUtils.isNotBlank(entity.getDeptSid())) { - SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(entity.getDeptSid()).getData(); - if (null != organizationVo) { - orgSidPath = organizationVo.getOrgSidPath(); - } - } - bv.setOrgSidPath(orgSidPath); - //流程中的参数赋值 - Map variables = new HashMap<>(); - Map appMap = new HashMap<>(); - //若有网关,则赋值网关中判断的字段。 - boolean isCustomer = false; //调整方式是否为客户交纳 - boolean isMoney = false;//认损金额是否>2000 - //去查询调整方式是否为客户交纳 - if (entity.getAdjustWay().equals("客户交纳")) { - isCustomer = true; - } else { - List details = scmFinanceAdjustDetailsService.selByMainSid(businessSid); - if (!details.isEmpty()) { - for (ScmFinanceAdjustDetails detail : details) { - BigDecimal rensunMoney = BigDecimal.ZERO; - if (null != detail.getNowAdjustmentMoney()) { - rensunMoney = detail.getNowAdjustmentMoney(); - } - if (rensunMoney.compareTo(new BigDecimal("2000")) > 0) { - //判断认损金额>2000 - isMoney = true; - } - } - } - } - variables.put("isCustomer", isCustomer); - variables.put("isMoney", isMoney); - if (bv.getTaskDefKey().equals("Activity_049lvok")) { - if (StringUtils.isNotBlank(entity.getSalesManageSid())) { - bv.setNextNodeUserSids(entity.getSalesManageSid()); - } else { - bv.setNextNodeUserSids(ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId()); - } - } - variables.put("businessSid", businessSid); - appMap.put("sid", businessSid); - variables.put("app", appMap); - bv.setFormVariables(variables); - ResultBean resultBean = flowFeign.handleProsess(bv); - if (!resultBean.getSuccess()) { - return rb.setMsg(resultBean.getMsg()); - } - UpdateFlowFieldVo ufVo = resultBean.getData(); - int i = updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); - if ("Event_end".equals(resultBean.getData().getTaskDefKey())) { - ScmFinanceAdjustApply scmFinanceAdjustApply = fetchBySid(businessSid); - scmFinanceAdjustApply.setClosingDate(new Date()); - baseMapper.updateById(scmFinanceAdjustApply); - - - } else { - //极光推送 - entity = fetchBySid(businessSid); - MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); - MessageFlowVo messageFlowVo = new MessageFlowVo(); - BeanUtil.copyProperties(ufVo, messageFlowVo); - messageFlowVo.setProcDefId(entity.getProcDefId()); - messageFlowVo.setProcInsId(entity.getProcInstId()); - messageFlowableQuery.setUfVo(messageFlowVo); - messageFlowableQuery.setAppMap(appMap); - messageFlowableQuery.setBusinessSid(businessSid); - messageFlowableQuery.setModuleName("金融贴息差异调整申请"); - messageFlowableQuery.setMsgContent(entity.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); - messageFlowableQuery.setMsgTitle("金融贴息差异调整申请"); - ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); - } - return rb.success().setData(resultBean.getData()); - } else { - return rb.setMsg("操作失败!提交的数据不一致"); - } - } - - - public ResultBean revokeProcess(AdjustTaskQuery query) { - ResultBean rb = ResultBean.fireFail(); - if (StringUtils.isBlank(query.getUserSid())) { - return rb.setMsg("参数错误:userSid"); - } - ScmFinanceAdjustApply scmFinanceAdjustApply = fetchBySid(query.getBusinessSid()); - String businessTaskId = scmFinanceAdjustApply.getTaskId(); - if (StringUtils.isNotBlank(businessTaskId)) { - if (businessTaskId.equals(query.getTaskId())) { - FlowTaskVo flowTaskVo = new FlowTaskVo(); - BeanUtil.copyProperties(query, flowTaskVo); - ResultBean resultBean = flowableFeign.revokeProcess(flowTaskVo); - if (!resultBean.getSuccess()) { - return rb.setMsg(resultBean.getMsg()); - } - updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); - return rb.success().setData(resultBean.getData()); - } - } - return rb.setMsg("操作失败,提交的数据不一致!"); - } - - public ResultBean taskReject(AdjustTaskQuery query) { - ResultBean rb = ResultBean.fireFail(); - String businessSid = query.getBusinessSid(); - ScmFinanceAdjustApply scmFinanceAdjustApply = fetchBySid(businessSid); - if (scmFinanceAdjustApply == null) { - return rb.setMsg("该申请不存在"); - } - String businessTaskId = scmFinanceAdjustApply.getTaskId(); - if (StringUtils.isNotBlank(businessTaskId)) { - if (businessTaskId.equals(query.getTaskId())) { - if (StringUtils.isBlank(query.getComment())) { - return rb.setMsg("请填写意见"); - } - if (org.apache.commons.lang3.StringUtils.isBlank(query.getUserSid())) { - return rb.setMsg("参数错误:userSid"); - } - FlowTaskVo flowTaskVo = new FlowTaskVo(); - BeanUtil.copyProperties(query, flowTaskVo); - Map variables = new HashMap<>(); - Map appMap = new HashMap<>(); - appMap.put("sid", businessSid); - variables.put("app", appMap); - //若有网关,则赋值网关中判断的字段。 - boolean isCustomer = false; //调整方式是否为客户交纳 - boolean isMoney = false;//认损金额是否>2000 - //去查询调整方式是否为客户交纳 - if (scmFinanceAdjustApply.getAdjustWay().equals("客户交纳")) { - isCustomer = true; - } else { - List details = scmFinanceAdjustDetailsService.selByMainSid(businessSid); - if (!details.isEmpty()) { - for (ScmFinanceAdjustDetails detail : details) { - BigDecimal rensunMoney = BigDecimal.ZERO; - if (null != detail.getNowAdjustmentMoney()) { - rensunMoney = detail.getNowAdjustmentMoney(); - } - if (rensunMoney.compareTo(new BigDecimal("2000")) > 0) { - //判断认损金额>2000 - isMoney = true; - } - } - } - } - variables.put("isCustomer", isCustomer); - variables.put("isMoney", isMoney); - flowTaskVo.setValues(variables); - ResultBean resultBean = flowableFeign.taskReject(flowTaskVo); - if (!resultBean.getSuccess()) { - return rb.setMsg(resultBean.getMsg()); - } - UpdateFlowFieldVo ufVo = resultBean.getData(); - Map map = BeanUtil.beanToMap(ufVo); - //更新业务中的流程相关的参数 - updateFlowFiled(map); - //极光推送 - scmFinanceAdjustApply = fetchBySid(businessSid); - MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); - MessageFlowVo messageFlowVo = new MessageFlowVo(); - BeanUtil.copyProperties(ufVo, messageFlowVo); - String procId = scmFinanceAdjustApply.getProcInstId(); - messageFlowVo.setProcInsId(procId); - messageFlowVo.setProcDefId(scmFinanceAdjustApply.getProcDefId()); - messageFlowableQuery.setUfVo(messageFlowVo); - messageFlowableQuery.setAppMap(appMap); - messageFlowableQuery.setBusinessSid(businessSid); - messageFlowableQuery.setModuleName("金融贴息差异调整申请"); - ResultBean> listResultBean = flowTaskFeign.getLatestTasks(procId); - String nextName = listResultBean.getData().get(0).getName_(); - String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_(); - List receiveSidList = Arrays.asList(nextNodeUserSids.split(",")); + sysOrganization.setManagerSid(ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId()); + } + //创建BusinessVariables实体对象 + BusinessVariables bv = new BusinessVariables(); + //流程中的参数赋值 + Map variables = BeanUtil.beanToMap(dto); + Map appMap = new HashMap<>(); + //若有网关,则赋值网关中判断的字段。 + boolean isCustomer = false; //调整方式是否为客户交纳 + boolean isMoney = false;//认损金额是否>2000 + //去查询调整方式是否为客户交纳 + if (entity.getAdjustWay().equals("客户交纳")) { + isCustomer = true; + } else { + List details = scmFinanceAdjustDetailsService.selByMainSid(businessSid); + if (!details.isEmpty()) { + for (ScmFinanceAdjustDetails detail : details) { + BigDecimal rensunMoney = BigDecimal.ZERO; + if (null != detail.getNowAdjustmentMoney()) { + rensunMoney = detail.getNowAdjustmentMoney(); + } + if (rensunMoney.compareTo(new BigDecimal("2000")) > 0) { + //判断认损金额>2000 + isMoney = true; + } + } + } + } + variables.put("isCustomer", isCustomer); + variables.put("isMoney", isMoney); + variables.put("businessSid", businessSid); + appMap.put("sid", businessSid); + variables.put("app", appMap); + String orderNames = "金融贴息差异调整申请"; + variables.put("orderNames", orderNames); + ScmFinanceAdjustApply scmFinanceAdjustApply1 = fetchBySid(businessSid); + String msgBusinessSid = scmFinanceAdjustApply1.getSid(); + //用户的部门全路径sid + bv.setOrgSidPath(orgSidPath); + //业务sid + bv.setBusinessSid(businessSid); + //用户sid + bv.setUserSid(dto.getCreateBySid()); + bv.setFormVariables(variables); + String nextNodeUserSids_ = sysOrganization.getManagerSid(); + if (isCustomer) { + if (StringUtils.isNotBlank(entity.getStaffSid())) { + bv.setNextNodeUserSids(entity.getStaffSid()); + } else { + bv.setNextNodeUserSids(ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId()); + } + } + //流程定义id + bv.setModelId(ProcDefEnum.JTTXCYSQ.getProDefId()); + if (r == 1) { + //流程定义id + bv.setModelId(ProcDefEnum.JTTXCYSQ.getProDefId()); + ResultBean voResultBean = flowFeign.startProcess(bv); + if (!voResultBean.getSuccess()) { + return rb.setMsg(voResultBean.getMsg()); + } + UpdateFlowFieldVo ufVo = voResultBean.getData(); + int i = updateFlowFiled(BeanUtil.beanToMap(ufVo)); + //==================================添加线程 + 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(appMap); + messageFlowableQuery.setBusinessSid(msgBusinessSid); + messageFlowableQuery.setModuleName("金融贴息差异调整申请"); + SysUserVo userVo = sysUserFeign.fetchBySid(scmFinanceAdjustApply1.getCreateBySid()).getData(); + if (userVo != null) { + if (StringUtils.isNotBlank(userVo.getName())) { + messageFlowableQuery.setMsgContent(userVo.getName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + } + } + messageFlowableQuery.setMsgTitle("金融贴息差异调整申请"); + ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); + }); + } catch (Exception e) { + e.printStackTrace(); + } + //==================================添加线程 + return voResultBean; + } + if (r == 2) { + // ToDo:驳回到发起人后再次提交 + if (StringUtils.isBlank(dto.getInstanceId())) { + return rb.setMsg("参数错误:instanceId"); + } + ScmFinanceAdjustApply scmFinanceAdjustApply2 = fetchBySid(dto.getSid()); + bv.setTaskId(dto.getTaskId()); + bv.setTaskDefKey(scmFinanceAdjustApply2.getNodeSid()); + bv.setComment("重新提交"); + bv.setInstanceId(dto.getInstanceId()); + return complete(bv); + } + return rb; + } + + public ResultBean complete(BusinessVariables bv) { + ResultBean rb = ResultBean.fireFail(); + String businessSid = bv.getBusinessSid(); + ScmFinanceAdjustApply entity = this.fetchBySid(businessSid); + if (bv.getTaskId().equals(entity.getTaskId())) { + String orgSidPath = ""; + if (StringUtils.isNotBlank(entity.getDeptSid())) { + SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(entity.getDeptSid()).getData(); + if (null != organizationVo) { + orgSidPath = organizationVo.getOrgSidPath(); + } + } + bv.setOrgSidPath(orgSidPath); + //流程中的参数赋值 + Map variables = new HashMap<>(); + Map appMap = new HashMap<>(); + //若有网关,则赋值网关中判断的字段。 + boolean isCustomer = false; //调整方式是否为客户交纳 + boolean isMoney = false;//认损金额是否>2000 + //去查询调整方式是否为客户交纳 + if (entity.getAdjustWay().equals("客户交纳")) { + isCustomer = true; + } else { + List details = scmFinanceAdjustDetailsService.selByMainSid(businessSid); + if (!details.isEmpty()) { + for (ScmFinanceAdjustDetails detail : details) { + BigDecimal rensunMoney = BigDecimal.ZERO; + if (null != detail.getNowAdjustmentMoney()) { + rensunMoney = detail.getNowAdjustmentMoney(); + } + if (rensunMoney.compareTo(new BigDecimal("2000")) > 0) { + //判断认损金额>2000 + isMoney = true; + } + } + } + } + variables.put("isCustomer", isCustomer); + variables.put("isMoney", isMoney); + if (bv.getTaskDefKey().equals("Activity_049lvok")) { + if (StringUtils.isNotBlank(entity.getSalesManageSid())) { + bv.setNextNodeUserSids(entity.getSalesManageSid()); + } else { + bv.setNextNodeUserSids(ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId()); + } + } + variables.put("businessSid", businessSid); + appMap.put("sid", businessSid); + variables.put("app", appMap); + bv.setFormVariables(variables); + ResultBean resultBean = flowFeign.handleProsess(bv); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + UpdateFlowFieldVo ufVo = resultBean.getData(); + int i = updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); + if ("Event_end".equals(resultBean.getData().getTaskDefKey())) { + ScmFinanceAdjustApply scmFinanceAdjustApply = fetchBySid(businessSid); + scmFinanceAdjustApply.setClosingDate(new Date()); + baseMapper.updateById(scmFinanceAdjustApply); + rePushVoucher(businessSid);//推送调整单、凭证 + } else { + //极光推送 + entity = fetchBySid(businessSid); + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + messageFlowVo.setProcDefId(entity.getProcDefId()); + messageFlowVo.setProcInsId(entity.getProcInstId()); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("金融贴息差异调整申请"); + messageFlowableQuery.setMsgContent(entity.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + messageFlowableQuery.setMsgTitle("金融贴息差异调整申请"); + ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); + } + return rb.success().setData(resultBean.getData()); + } else { + return rb.setMsg("操作失败!提交的数据不一致"); + } + } + + public void rePushVoucher(String sid) { + ScmFinanceAdjustApply adjustApply = fetchBySid(sid); + String adjustWay = adjustApply.getAdjustWay(); + List details = scmFinanceAdjustDetailsService.selByMainSid(sid); + if (!details.isEmpty() && details.size() > 0) { + for (ScmFinanceAdjustDetails detail : details) { + + + + + if (adjustWay.equals("客户交纳")) { + + + + } else if (adjustWay.equals("公司认损")) { + + + + } + } + + } + + + } + + + public ResultBean revokeProcess(AdjustTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + if (StringUtils.isBlank(query.getUserSid())) { + return rb.setMsg("参数错误:userSid"); + } + ScmFinanceAdjustApply scmFinanceAdjustApply = fetchBySid(query.getBusinessSid()); + String businessTaskId = scmFinanceAdjustApply.getTaskId(); + if (StringUtils.isNotBlank(businessTaskId)) { + if (businessTaskId.equals(query.getTaskId())) { + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + ResultBean resultBean = flowableFeign.revokeProcess(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); + return rb.success().setData(resultBean.getData()); + } + } + return rb.setMsg("操作失败,提交的数据不一致!"); + } + + public ResultBean taskReject(AdjustTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + String businessSid = query.getBusinessSid(); + ScmFinanceAdjustApply scmFinanceAdjustApply = fetchBySid(businessSid); + if (scmFinanceAdjustApply == null) { + return rb.setMsg("该申请不存在"); + } + String businessTaskId = scmFinanceAdjustApply.getTaskId(); + if (StringUtils.isNotBlank(businessTaskId)) { + if (businessTaskId.equals(query.getTaskId())) { + if (StringUtils.isBlank(query.getComment())) { + return rb.setMsg("请填写意见"); + } + if (org.apache.commons.lang3.StringUtils.isBlank(query.getUserSid())) { + return rb.setMsg("参数错误:userSid"); + } + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + Map variables = new HashMap<>(); + Map appMap = new HashMap<>(); + appMap.put("sid", businessSid); + variables.put("app", appMap); + //若有网关,则赋值网关中判断的字段。 + boolean isCustomer = false; //调整方式是否为客户交纳 + boolean isMoney = false;//认损金额是否>2000 + //去查询调整方式是否为客户交纳 + if (scmFinanceAdjustApply.getAdjustWay().equals("客户交纳")) { + isCustomer = true; + } else { + List details = scmFinanceAdjustDetailsService.selByMainSid(businessSid); + if (!details.isEmpty()) { + for (ScmFinanceAdjustDetails detail : details) { + BigDecimal rensunMoney = BigDecimal.ZERO; + if (null != detail.getNowAdjustmentMoney()) { + rensunMoney = detail.getNowAdjustmentMoney(); + } + if (rensunMoney.compareTo(new BigDecimal("2000")) > 0) { + //判断认损金额>2000 + isMoney = true; + } + } + } + } + variables.put("isCustomer", isCustomer); + variables.put("isMoney", isMoney); + flowTaskVo.setValues(variables); + ResultBean resultBean = flowableFeign.taskReject(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + UpdateFlowFieldVo ufVo = resultBean.getData(); + Map map = BeanUtil.beanToMap(ufVo); + //更新业务中的流程相关的参数 + updateFlowFiled(map); + //极光推送 + scmFinanceAdjustApply = fetchBySid(businessSid); + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + String procId = scmFinanceAdjustApply.getProcInstId(); + messageFlowVo.setProcInsId(procId); + messageFlowVo.setProcDefId(scmFinanceAdjustApply.getProcDefId()); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("金融贴息差异调整申请"); + ResultBean> listResultBean = flowTaskFeign.getLatestTasks(procId); + String nextName = listResultBean.getData().get(0).getName_(); + String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_(); + List receiveSidList = Arrays.asList(nextNodeUserSids.split(",")); // if (receiveSidList.size() == 1 && receiveSidList.get(0).equals(busVehicleApply.getCreateBySid())) { - if ("发起申请".equals(nextName)) { - messageFlowableQuery.setMsgContent("您提交的" + messageFlowableQuery.getModuleName() + "已被驳回,请重新提交"); - } else { - SysUserVo userVo = sysUserFeign.fetchBySid(scmFinanceAdjustApply.getCreateBySid()).getData(); - if (userVo != null) { - if (org.apache.commons.lang3.StringUtils.isNotBlank(userVo.getName())) { - messageFlowableQuery.setMsgContent(userVo.getName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); - } - } - } - messageFlowableQuery.setMsgTitle("金融贴息差异调整申请"); - ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); - return rb.success(); - } - } - return rb.setMsg("操作失败!提交的数据不一致!"); - } - - public ResultBean breakProcess(AdjustTaskQuery query) { - ResultBean rb = ResultBean.fireFail(); - if (org.apache.commons.lang3.StringUtils.isBlank(query.getInstanceId())) { - return rb.setMsg("参数错误:instanceId"); - } - if (org.apache.commons.lang3.StringUtils.isBlank(query.getUserSid())) { - return rb.setMsg("参数错误:userSid"); - } - if (org.apache.commons.lang3.StringUtils.isBlank(query.getComment())) { - return rb.setMsg("请填写意见"); - } - ScmFinanceAdjustApply scmFinanceAdjustApply = fetchBySid(query.getBusinessSid()); - String businessTaskId = scmFinanceAdjustApply.getTaskId(); - if (StringUtils.isNotBlank(businessTaskId)) { - if (query.getUserSid().equals(scmFinanceAdjustApply.getCreateBySid())) { - FlowTaskVo flowTaskVo = new FlowTaskVo(); - BeanUtil.copyProperties(query, flowTaskVo); - ResultBean resultBean = flowableFeign.breakProcess(flowTaskVo); - if (!resultBean.getSuccess()) { - return rb.setMsg(resultBean.getMsg()); - } - Map map = BeanUtil.beanToMap(resultBean.getData()); - updateFlowFiled(map); - return rb.success().setData(resultBean.getData()); - } else { - if (businessTaskId.equals(query.getTaskId())) { - FlowTaskVo flowTaskVo = new FlowTaskVo(); - BeanUtil.copyProperties(query, flowTaskVo); - ResultBean resultBean = flowableFeign.breakProcess(flowTaskVo); - if (!resultBean.getSuccess()) { - return rb.setMsg(resultBean.getMsg()); - } - Map map = BeanUtil.beanToMap(resultBean.getData()); - updateFlowFiled(map); - return rb.success().setData(resultBean.getData()); - } - } - - } - return rb.setMsg("操作失败!提交的数据不一致!"); - } - - public ResultBean flowRecord(String procInsId) { - return flowTaskFeign.businessFlowRecord(procInsId); - } - - public ResultBean> getNextNodesForSubmit(AdjustGetNodeQuery query) { - ResultBean> rb = ResultBean.fireFail(); - BusinessVariables bv = new BusinessVariables(); - BeanUtil.copyProperties(query, bv); - //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 - Map variables = new HashMap<>(); - //根据业务sid查询信息 - ScmFinanceAdjustApply scmFinanceAdjustApply = fetchBySid(query.getBusinessSid()); - //若有网关,则赋值网关中判断的字段。 - boolean isCustomer = false; //调整方式是否为客户交纳 - boolean isMoney = false;//认损金额是否>2000 - //去查询调整方式是否为客户交纳 - if (scmFinanceAdjustApply.getAdjustWay().equals("客户交纳")) { - isCustomer = true; - } else { - List details = scmFinanceAdjustDetailsService.selByMainSid(query.getBusinessSid()); - if (!details.isEmpty()) { - for (ScmFinanceAdjustDetails detail : details) { - BigDecimal rensunMoney = BigDecimal.ZERO; - if (null != detail.getNowAdjustmentMoney()) { - rensunMoney = detail.getNowAdjustmentMoney(); - } - if (rensunMoney.compareTo(new BigDecimal("2000")) > 0) { - //判断认损金额>2000 - isMoney = true; - } - } - } - } - variables.put("isCustomer", isCustomer); - variables.put("isMoney", isMoney); - bv.setFormVariables(variables); - bv.setModelId(scmFinanceAdjustApply.getProcDefId()); - ResultBean>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv); - //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo - List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), AdjustGetNodeVo.class)).collect(Collectors.toList()); - return rb.success().setData(voList); - } - - public ResultBean> getPreviousNodesForReject(AdjustGetNodeQuery query) { - ResultBean> rb = ResultBean.fireFail(); - BusinessVariables bv = new BusinessVariables(); - BeanUtil.copyProperties(query, bv); - //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 - Map variables = new HashMap<>(); - //根据业务sid查询排产 - ScmFinanceAdjustApply scmFinanceAdjustApply = fetchBySid(query.getBusinessSid()); - //若有网关,则赋值网关中判断的字段。 - boolean isCustomer = false; //调整方式是否为客户交纳 - boolean isMoney = false;//认损金额是否>2000 - //去查询调整方式是否为客户交纳 - if (scmFinanceAdjustApply.getAdjustWay().equals("客户交纳")) { - isCustomer = true; - } else { - List details = scmFinanceAdjustDetailsService.selByMainSid(query.getBusinessSid()); - if (!details.isEmpty()) { - for (ScmFinanceAdjustDetails detail : details) { - BigDecimal rensunMoney = BigDecimal.ZERO; - if (null != detail.getNowAdjustmentMoney()) { - rensunMoney = detail.getNowAdjustmentMoney(); - } - if (rensunMoney.compareTo(new BigDecimal("2000")) > 0) { - //判断认损金额>2000 - isMoney = true; - } - } - } - } - variables.put("isCustomer", isCustomer); - variables.put("isMoney", isMoney); - bv.setFormVariables(variables); - bv.setModelId(scmFinanceAdjustApply.getProcDefId()); - ResultBean>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv); - //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo - List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), AdjustGetNodeVo.class)).collect(Collectors.toList()); - return rb.success().setData(voList); - } - - public ResultBean delegate(AdjustDelegateQuery adjustDelegateQuery) { - ResultBean rb = ResultBean.fireFail(); - FlowDelegateQuery delegateQuery = new FlowDelegateQuery(); - BeanUtil.copyProperties(adjustDelegateQuery, delegateQuery); - flowFeign.delegate(delegateQuery); - return rb.success(); - } + if ("发起申请".equals(nextName)) { + messageFlowableQuery.setMsgContent("您提交的" + messageFlowableQuery.getModuleName() + "已被驳回,请重新提交"); + } else { + SysUserVo userVo = sysUserFeign.fetchBySid(scmFinanceAdjustApply.getCreateBySid()).getData(); + if (userVo != null) { + if (org.apache.commons.lang3.StringUtils.isNotBlank(userVo.getName())) { + messageFlowableQuery.setMsgContent(userVo.getName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + } + } + } + messageFlowableQuery.setMsgTitle("金融贴息差异调整申请"); + ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); + return rb.success(); + } + } + return rb.setMsg("操作失败!提交的数据不一致!"); + } + + public ResultBean breakProcess(AdjustTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + if (org.apache.commons.lang3.StringUtils.isBlank(query.getInstanceId())) { + return rb.setMsg("参数错误:instanceId"); + } + if (org.apache.commons.lang3.StringUtils.isBlank(query.getUserSid())) { + return rb.setMsg("参数错误:userSid"); + } + if (org.apache.commons.lang3.StringUtils.isBlank(query.getComment())) { + return rb.setMsg("请填写意见"); + } + ScmFinanceAdjustApply scmFinanceAdjustApply = fetchBySid(query.getBusinessSid()); + String businessTaskId = scmFinanceAdjustApply.getTaskId(); + if (StringUtils.isNotBlank(businessTaskId)) { + if (query.getUserSid().equals(scmFinanceAdjustApply.getCreateBySid())) { + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + ResultBean resultBean = flowableFeign.breakProcess(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + Map map = BeanUtil.beanToMap(resultBean.getData()); + updateFlowFiled(map); + return rb.success().setData(resultBean.getData()); + } else { + if (businessTaskId.equals(query.getTaskId())) { + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + ResultBean resultBean = flowableFeign.breakProcess(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + Map map = BeanUtil.beanToMap(resultBean.getData()); + updateFlowFiled(map); + return rb.success().setData(resultBean.getData()); + } + } + + } + return rb.setMsg("操作失败!提交的数据不一致!"); + } + + public ResultBean flowRecord(String procInsId) { + return flowTaskFeign.businessFlowRecord(procInsId); + } + + public ResultBean> getNextNodesForSubmit(AdjustGetNodeQuery query) { + ResultBean> rb = ResultBean.fireFail(); + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 + Map variables = new HashMap<>(); + //根据业务sid查询信息 + ScmFinanceAdjustApply scmFinanceAdjustApply = fetchBySid(query.getBusinessSid()); + //若有网关,则赋值网关中判断的字段。 + boolean isCustomer = false; //调整方式是否为客户交纳 + boolean isMoney = false;//认损金额是否>2000 + //去查询调整方式是否为客户交纳 + if (scmFinanceAdjustApply.getAdjustWay().equals("客户交纳")) { + isCustomer = true; + } else { + List details = scmFinanceAdjustDetailsService.selByMainSid(query.getBusinessSid()); + if (!details.isEmpty()) { + for (ScmFinanceAdjustDetails detail : details) { + BigDecimal rensunMoney = BigDecimal.ZERO; + if (null != detail.getNowAdjustmentMoney()) { + rensunMoney = detail.getNowAdjustmentMoney(); + } + if (rensunMoney.compareTo(new BigDecimal("2000")) > 0) { + //判断认损金额>2000 + isMoney = true; + } + } + } + } + variables.put("isCustomer", isCustomer); + variables.put("isMoney", isMoney); + bv.setFormVariables(variables); + bv.setModelId(scmFinanceAdjustApply.getProcDefId()); + ResultBean>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv); + //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo + List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), AdjustGetNodeVo.class)).collect(Collectors.toList()); + return rb.success().setData(voList); + } + + public ResultBean> getPreviousNodesForReject(AdjustGetNodeQuery query) { + ResultBean> rb = ResultBean.fireFail(); + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 + Map variables = new HashMap<>(); + //根据业务sid查询排产 + ScmFinanceAdjustApply scmFinanceAdjustApply = fetchBySid(query.getBusinessSid()); + //若有网关,则赋值网关中判断的字段。 + boolean isCustomer = false; //调整方式是否为客户交纳 + boolean isMoney = false;//认损金额是否>2000 + //去查询调整方式是否为客户交纳 + if (scmFinanceAdjustApply.getAdjustWay().equals("客户交纳")) { + isCustomer = true; + } else { + List details = scmFinanceAdjustDetailsService.selByMainSid(query.getBusinessSid()); + if (!details.isEmpty()) { + for (ScmFinanceAdjustDetails detail : details) { + BigDecimal rensunMoney = BigDecimal.ZERO; + if (null != detail.getNowAdjustmentMoney()) { + rensunMoney = detail.getNowAdjustmentMoney(); + } + if (rensunMoney.compareTo(new BigDecimal("2000")) > 0) { + //判断认损金额>2000 + isMoney = true; + } + } + } + } + variables.put("isCustomer", isCustomer); + variables.put("isMoney", isMoney); + bv.setFormVariables(variables); + bv.setModelId(scmFinanceAdjustApply.getProcDefId()); + ResultBean>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv); + //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo + List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), AdjustGetNodeVo.class)).collect(Collectors.toList()); + return rb.success().setData(voList); + } + + public ResultBean delegate(AdjustDelegateQuery adjustDelegateQuery) { + ResultBean rb = ResultBean.fireFail(); + FlowDelegateQuery delegateQuery = new FlowDelegateQuery(); + BeanUtil.copyProperties(adjustDelegateQuery, delegateQuery); + flowFeign.delegate(delegateQuery); + return rb.success(); + } + + } \ No newline at end of file diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateService.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateService.java index 72423a736b..fc53286e8a 100644 --- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateService.java +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateService.java @@ -638,6 +638,7 @@ public class ScmVehRebateService extends MybatisBaseService data = baseVehicleFeign.vehicleRebateList(pq).getData(); BaseVehicleRebateVo baseVehicleRebateVo = data.getRecords().get(0); @@ -812,6 +813,7 @@ public class ScmVehRebateService extends MybatisBaseService data = baseVehicleFeign.vehicleRebateList(pq).getData(); if (data.getRecords().size() == 0) {