Browse Source

Merge remote-tracking branch 'origin/master'

master
ligaode 3 months ago
parent
commit
00e6c92d56
  1. 38
      anrui-buscenter/anrui-finmanage-ui/src/api/anruifinmanagement/paymentInformation.js
  2. 23
      anrui-buscenter/anrui-finmanage-ui/src/router/modules/codemenu.js
  3. 387
      anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/paymentInformation/paymentInformation.vue
  4. 4
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeign.java
  5. 5
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeignFallBack.java
  6. 42
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java
  7. 2
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysorganization/OrgVo.java
  8. 4
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysorganization/SysOrganizationFeign.java
  9. 5
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysorganization/SysOrganizationFeignFallback.java
  10. 5
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysstafforg/SysStaffOrgFeign.java
  11. 8
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysstafforg/SysStaffOrgFeignFallback.java
  12. 6
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationRest.java
  13. 28
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationService.java
  14. 5
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstafforg/SysStaffOrgRest.java
  15. 23
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstafforg/SysStaffOrgService.java
  16. 3
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/AdjustDetailsListVo.java
  17. 1
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/AdjustVehListVo.java
  18. 21
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/ScmFinanceAdjustApplyFeign.java
  19. 11
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/ScmFinanceAdjustApplyFeignFallback.java
  20. 78
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/app/AppDetailsVo.java
  21. 64
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/app/AppListVo.java
  22. 1
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustdetails/ScmFinanceAdjustDetails.java
  23. 10
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustdetails/ScmFinanceAdjustDetailsFeign.java
  24. 4
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmfinanceadjustapply/ScmFinanceAdjustApplyMapper.xml
  25. 11
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmfinanceadjustapply/ScmFinanceAdjustApplyRest.java
  26. 289
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmfinanceadjustapply/ScmFinanceAdjustApplyService.java
  27. 30
      anrui-scm/anrui-scm-ui/src/views/bikerebate/bikerebatemanagement/bicyclerebatemanagementEdit.vue
  28. 1
      anrui-scm/anrui-scm-ui/src/views/financialDiscount/differenceManagement/differenceManagementAdd.vue
  29. 1
      anrui-scm/anrui-scm-ui/src/views/workFlow/chayitiaozhengFlow/differenceManagementEdit.vue
  30. 6
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/base/common/CommonFeign.java
  31. 82
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/financeadjustapply/AdjustApplyDetailsVo.java
  32. 72
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/financeadjustapply/AdjustApplyFeign.java
  33. 57
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/financeadjustapply/AdjustApplyFeignFallback.java
  34. 72
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/financeadjustapply/AdjustApplyRecordVo.java
  35. 21
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/financeadjustapply/flow/AdjustApplyFlowableQuery.java
  36. 25
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/financeadjustapply/flow/AppAdjustApplyDelegateQuery.java
  37. 46
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/financeadjustapply/flow/AppAdjustApplyTaskQuery.java
  38. 35
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/financeadjustapply/flow/CompleteAdjustApplyDto.java
  39. 6
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/base/common/CommonRest.java
  40. 32
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/base/common/CommonService.java
  41. 67
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/supplychain/financeadjustapply/AdjustApplyRest.java
  42. 178
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/supplychain/financeadjustapply/AdjustApplyService.java
  43. 2
      yxt-oa/src/main/java/com/yxt/anrui/oa/api/OaMendApplyRest.java
  44. 229
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormService.java
  45. 11
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/BusinessVariablesDto.java
  46. 2
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/CompleteDto.java
  47. 4
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/DelegateDto.java
  48. 2
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/OaFormFlowDto.java
  49. 6
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/SubmitDto.java
  50. 6
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/TaskDto.java
  51. 3
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyDto.java
  52. 63
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyService.java
  53. 26
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/SubmitOaMendApplyDto.java
  54. 2
      yxt-oa/src/main/java/com/yxt/anrui/oa/feign/portal/sysorganization/OrgVo.java
  55. 6
      yxt-oa/src/main/java/com/yxt/anrui/oa/feign/portal/sysorganization/SysOrganizationFeign.java
  56. 5
      yxt-oa/src/main/java/com/yxt/anrui/oa/feign/portal/sysstafforg/SysStaffOrgFeign.java
  57. 12
      yxt-oa/src/main/java/com/yxt/anrui/oa/feign/sysuser/SysUserFeign.java
  58. 21
      yxt-oa/src/main/java/com/yxt/anrui/oa/feign/sysuser/UserQuery.java
  59. 19
      yxt-oa/src/main/java/com/yxt/anrui/oa/feign/sysuser/UserRoleQuery.java

38
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' }
})
}
}

23
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,

387
anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/paymentInformation/paymentInformation.vue

@ -0,0 +1,387 @@
<template>
<div class="app-container">
<!--列表页面-->
<div v-show="viewState == 1">
<button-bar view-title="付款信息管理" ref="btnbar" :btndisabled="btndisabled" @btnhandle="btnHandle"/>
<!--Start查询列表部分-->
<div class="main-content">
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">{{ searchxianshitit }}</el-button>
<div v-show="isSearchShow" class="search">
<el-form ref="listQueryform" :inline="true" :model="listQuery" label-width="100px" class="tab-header">
<el-form-item label="单位名称">
<el-input v-model="listQuery.params.companyName" placeholder="" clearable/>
</el-form-item>
<el-form-item label="银行账号">
<el-input v-model="listQuery.params.receivingAccount" placeholder="" clearable/>
</el-form-item>
<el-form-item label="业务类型">
<el-input v-model="listQuery.params.businessTypeValue" placeholder="" clearable/>
</el-form-item>
</el-form>
<div class="btn" style="text-align: center;">
<el-button type="primary" icon="el-icon-search" size="small" @click="handleFilter">查询</el-button>
<el-button type="primary" icon="el-icon-refresh" size="small" @click="handleReset">重置</el-button>
</div>
</div>
</div>
<!--End查询列表部分-->
<div class="listtop">
<div class="tit">付款信息列表</div>
<pageye v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>
</div>
<!--Start 主页面主要部分 -->
<div class="">
<el-table :key="tableKey" v-loading="listLoading" :data="list" :border="true" style="width: 100%;" @selection-change="handleSelectionChange">
<el-table-column fixed type="selection" align="center" width="50"/>
<el-table-column fixed label="序号" type="index" width="80" :index="indexMethod" align="center"/>
<el-table-column fixed label="操作" width="180px" align="center">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="toEdit(scope.row)">编辑</el-button>
</template>
</el-table-column>
<el-table-column prop="companyCode" label="单位编码" align="center" />
<el-table-column prop="companyName" label="单位名称" align="center" />
<el-table-column prop="bank" label="开户行" align="center" />
<el-table-column prop="receivingAccount" label="银行账号" align="center" />
<el-table-column prop="businessTypeValue" label="业务类型" align="center" />
<el-table-column prop="remarks" label="备注" align="center" />
</el-table>
</div>
<!--End 主页面主要部分-->
<div class="pages">
<div class="tit"/>
<!-- 翻页 -->
<pagination v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>
</div>
<!--End查询列表部分-->
</div>
</div>
<el-dialog center :visible.sync="dialogVisible" width="70%">
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<el-row style="border-top: 1px solid #E0E3EB">
<el-col :span="12">
<div class="span-sty">单位编码</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.companyCode" clearable placeholder="" /></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">单位名称</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.companyName" clearable placeholder="" /></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<div class="span-sty">开户行</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.bank" clearable placeholder="" /></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">银行账号</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.receivingAccount" clearable placeholder="" /></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<div class="span-sty">业务类型</div>
<el-form-item>
<el-select class="addinputInfo" v-model="formobj.businessTypeValue" placeholder="请选择" @change="businessTypeChange" clearable filterable>
<el-option v-for="item in businessType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">备注</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.remarks" clearable placeholder="" /></el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer" style="text-align: center">
<el-button type="primary" size="small" @click="handleConfirm">确定</el-button>
<el-button size="small" @click="handleClose">取消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import ButtonBar from '@/components/ButtonBar'
import req from '@/api/anruifinmanagement/paymentInformation'
import { typeValues, getOrgSidByPath } from '@/api/jichuxinxi/dictcommons'
export default {
name: 'PaymentInformation',
components: {
Pagination,
pageye,
ButtonBar
},
data() {
return {
dialogVisible: false,
businessType_list: [],
formobj: {
companyCode: '', //
companyName: '', //
bank: '', //
receivingAccount: '', //
businessTypeKey: '', // key
businessTypeValue: '', // value
remarks: '', //
useOrgSid: '', // sid
useOrgName: ''
},
rules: {},
btndisabled: false,
btnList: [
{
type: 'primary',
size: 'small',
icon: 'plus',
btnKey: 'toAdd',
btnLabel: '新增'
},
{
type: 'danger',
size: 'small',
icon: 'del',
btnKey: 'doDel',
btnLabel: '删除'
},
{
type: 'info',
size: 'small',
icon: 'cross',
btnKey: 'doClose',
btnLabel: '关闭'
}
],
isSearchShow: false,
searchxianshitit: '显示查询条件',
viewState: 1, // 1 2 3 4
tableKey: 0,
list: [],
sids: [], // SIDs
listLoading: false,
//
listQuery: {
current: 1,
size: 5,
total: 0,
params: {
companyCode: '',
companyName: '',
businessTypeValue: '',
orgPath: '',
menuUrl: '',
userSid: ''
}
}
}
},
created() {
//
this.init()
this.getList()
},
mounted() {
this.$refs['btnbar'].setButtonList(this.btnList)
},
methods: {
init() {
typeValues({ type: 'cw_businessType' }).then((res) => {
if (res.success) {
this.businessType_list = res.data
}
})
},
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
} else {
this.searchxianshitit = '显示查询条件'
}
},
btnHandle(btnKey) {
console.log('XXXXXXXXXXXXXXX ' + btnKey)
switch (btnKey) {
case 'toAdd':
this.toAdd()
break
case 'doDel':
this.doDel()
break
case 'doClose':
this.doClose()
break
default:
break
}
},
// sid
handleSelectionChange(row) {
const aa = []
row.forEach(element => {
aa.push(element.sid)
})
this.sids = aa
},
//
indexMethod(index) {
var pagestart = (this.listQuery.current - 1) * this.listQuery.size
var pageindex = index + 1 + pagestart
return pageindex
},
//
getList() {
this.listLoading = true
this.listQuery.params.userSid = window.sessionStorage.getItem('userSid')
this.listQuery.params.menuUrl = this.$route.path
this.listQuery.params.orgPath = window.sessionStorage.getItem('defaultOrgPath')
req.listPage(this.listQuery).then(response => {
this.listLoading = false
if (response.success) {
this.list = response.data.records
this.listQuery.total = response.data.total
} else {
this.list = []
this.listQuery.total = 0
}
})
},
//
handleFilter() {
this.listQuery.current = 1
this.getList()
},
//
handleReset() {
this.listQuery = {
current: 1,
size: 5,
total: 0,
params: {
companyCode: '',
companyName: '',
businessTypeValue: '',
orgPath: '',
menuUrl: '',
userSid: ''
}
}
this.getList()
},
toAdd() {
this.dialogVisible = true
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
},
toEdit(row) {
this.dialogVisible = true
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
req.fetchBySid(row.sid).then((res) => {
if (res.success) {
this.formobj = res.data
}
})
},
businessTypeChange(value) {
const choose = this.businessType_list.filter((item) => item.dictValue === value)
if (choose !== null && choose.length > 0) {
this.formobj.businessTypeKey = choose[0].dictKey
} else {
this.formobj.businessTypeKey = ''
}
},
handleConfirm() {
this.formobj.createBySid = window.sessionStorage.getItem('userSid')
this.formobj.useOrgSid = window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage.getItem('defaultOrgPath').lastIndexOf('/') + 1)
getOrgSidByPath({ orgPath: window.sessionStorage.getItem('defaultOrgPath') }).then((res) => {
if (res.success) {
this.formobj.createOrgSid = res.data
this.$refs['form_obj'].validate((valid) => {
if (valid) {
req.saveOrUpdate(this.formobj).then((resp) => {
if (resp.success) {
this.$message({ showClose: true, type: 'success', message: '保存成功' })
this.getList()
this.handleClose()
}
})
}
})
}
})
},
handleClose() {
this.dialogVisible = false
this.$refs['form_obj'].resetFields()
this.formobj = {
companyCode: '', //
companyName: '', //
bank: '', //
receivingAccount: '', //
businessTypeKey: '', // key
businessTypeValue: '', // value
remarks: '', //
useOrgSid: '', // sid
useOrgName: ''
}
},
//
doDel() {
if (this.sids.length === 0) {
this.$message({ showClose: true, type: 'error', message: '请选择至少一条记录进行删除操作' })
return
}
const tip = '请确认是否删除所选 ' + this.sids.length + ' 条记录?'
this.$confirm(tip, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
const loading = this.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
req.delBySids(this.sids).then(resp => {
if (resp.success) {
this.$message({ type: 'success', message: resp.msg, showClose: true })
}
this.getList()
loading.close()
}).catch(e => {
loading.close()
})
}).catch(() => {
})
},
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
}
}
}
</script>
<style scoped>
.span-sty {
width: 80px !important;
}
.addinputInfo {
margin-left: 75px !important;
}
/deep/ .el-form-item__error {
margin-left: 75px !important;
}
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .addinputw {
margin-left: 75px !important;
width: calc(100% - 70px);
}
</style>

4
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<String> saveJRRebatePrepareVoucher(@RequestBody @Valid GeneralVoucher voucher);
@ApiOperation("保存金融贴息差异调整凭证")
@PostMapping("/saveJRAdjustVoucher")
@ResponseBody
ResultBean<String> saveJRAdjustVoucher(@RequestBody @Valid GeneralVoucher voucher);
@ApiOperation("保存单车返利核对凭证")
@PostMapping("/saveRebateReviewVoucher")

5
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<String> saveJRAdjustVoucher(@Valid GeneralVoucher voucher) {
return null;
}
@Override
public ResultBean<String> saveRebateReviewVoucher(@Valid GeneralVoucher voucher) {
return null;

42
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<String> saveJRAdjustVoucher(@Valid GeneralVoucher voucher) {
ResultBean rb = ResultBean.fireFail();
Voucher newVoucher = new Voucher();
List<Voucher.VoucherResultDetailDto> 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<GeneralVoucher.GeneralVoucherDetail> 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<String> saveRebateReviewVoucher(@Valid GeneralVoucher voucher) {
ResultBean rb = ResultBean.fireFail();

2
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysstafforg/OrgVo.java → 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;

4
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<List<SysFinanceVo>> selectStaffListByUseOrgSid(@RequestParam("useOrgSid") String useOrgSid);
@GetMapping("/getOrgByPath")
@ResponseBody
@ApiOperation("根据组织全路径查询组织")
ResultBean<OrgVo> getOrgByPath(@RequestParam("orgSidPath") String orgSidPath);
}

5
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<List<SysFinanceVo>> selectStaffListByUseOrgSid(String useOrgSid) {
return null;
}
@Override
public ResultBean<OrgVo> getOrgByPath(String orgSidPath) {
return null;
}
}

5
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<List<SysStaffOrgByUserVo>> selAllByOrgSidPath(@RequestParam("orgSidPath") String orgSidPath);
@GetMapping("/getOrgByPath")
@ResponseBody
@ApiOperation("根据组织全路径查询组织")
ResultBean<OrgVo> getOrgByPath(@RequestParam("orgSidPath") String orgSidPath);
}

8
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<OrgVo> getOrgByPath(String orgSidPath) {
return null;
}
@Override
public ResultBean<SysStaffOrg> selectAllByStaffSid(String staffSid) {
return null;

6
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<SysFinanceVo> voList = sysOrganizationService.selectStaffListByUseOrgSid(useOrgSid);
return rb.success().setData(voList);
}
@Override
public ResultBean<OrgVo> getOrgByPath(String orgSidPath) {
return sysOrganizationService.getOrgByPath(orgSidPath);
}
}

28
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<SysOrganizationMa
}
public List<SysOrganization> selectByOrgCodeAndPsid(String orgCode, String pSid) {
return baseMapper.selectByOrgCodeAndPsid(orgCode,pSid);
return baseMapper.selectByOrgCodeAndPsid(orgCode, pSid);
}
public List<SysOrganizationVo> tranOne(String sid) {
@ -728,8 +728,8 @@ public class SysOrganizationService extends MybatisBaseService<SysOrganizationMa
return baseMapper.tranTwo(sid);
}
public List<SysOrganizationVo> tranThree(String sid,String deptSid) {
return baseMapper.tranThree(sid,deptSid);
public List<SysOrganizationVo> tranThree(String sid, String deptSid) {
return baseMapper.tranThree(sid, deptSid);
}
public List<SysOrganizationVo> tranfour(String sid) {
@ -749,4 +749,26 @@ public class SysOrganizationService extends MybatisBaseService<SysOrganizationMa
}
return new ArrayList<>();
}
public ResultBean<OrgVo> getOrgByPath(String orgSidPath) {
ResultBean<OrgVo> 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);
}
}

5
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<OrgVo> getOrgByPath(String orgSidPath) {
return sysStaffOrgService.getOrgByPath(orgSidPath);
}
}

23
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<SysStaffOrgMapper, Sy
return rb.success().setData(sysStaffOrgByUserVoList);
}
public ResultBean<OrgVo> getOrgByPath(String orgSidPath) {
ResultBean<OrgVo> 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);
}
}

3
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
}

1
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
}

21
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<AppDetailsVo> getAppDetails(@PathVariable("sid") String sid);
}

11
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<AppDetailsVo> getAppDetails(String sid) {
return null;
}
}

78
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<String> files;
/**
* 明细列表
*/
private List<AppListVo> 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;
}

64
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;
}

1
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
}

10
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(金融贴息) <br/>
* File: ScmFinanceAdjustDetailsFeign.java <br/>
@ -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 {

4
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 &lt; 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
<where> ${ew.sqlSegment} </where>
</select>
<select id="finAdjustList"
@ -87,6 +88,7 @@
END AS `state`
FROM
(SELECT
a.sid as checkApplySid,
d.vehRebateSid as rebateSid,
a.createBySid,
a.orgPath,

11
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmfinanceadjustapply/ScmFinanceAdjustApplyRest.java

@ -29,6 +29,7 @@ import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import 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.anrui.scm.biz.scmfile.ScmFileService;
import com.yxt.anrui.scm.biz.scmfinanceadjustdetails.ScmFinanceAdjustDetailsService;
@ -187,4 +188,14 @@ public class ScmFinanceAdjustApplyRest implements ScmFinanceAdjustApplyFeign {
public ResultBean delegate(AdjustDelegateQuery delegateQuery) {
return scmFinanceAdjustApplyService.delegate(delegateQuery);
}
@Override
public ResultBean assignTask(AdjustDelegateQuery query) {
return scmFinanceAdjustApplyService.assignTask(query);
}
@Override
public ResultBean<AppDetailsVo> getAppDetails(String sid) {
return scmFinanceAdjustApplyService.getAppDetails(sid);
}
}

289
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<ScmFinanceAdjustApplyMapper, ScmFinanceAdjustApply> {
@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<ScmFinanceA
private SysUserFeign sysUserFeign;
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
@Autowired
private CrmCustomerTempFeign crmCustomerTempFeign;
@Autowired
private ScmVehRebateWithApplyService scmVehRebateWithApplyService;
@Autowired
private ScmVehRebateService scmVehRebateService;
@Autowired
private FinKingDeeFeign finKingDeeFeign;
private QueryWrapper<ScmFinanceAdjustApply> createQueryWrapper(ScmFinanceAdjustApplyQuery query) {
// todo: 这里根据具体业务调整查询条件
@ -672,26 +709,172 @@ public class ScmFinanceAdjustApplyService extends MybatisBaseService<ScmFinanceA
ScmFinanceAdjustApply adjustApply = fetchBySid(sid);
String adjustWay = adjustApply.getAdjustWay();
List<ScmFinanceAdjustDetails> 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<String, List<ScmFinanceAdjustDetails>> map = details.stream().collect(Collectors.groupingBy(ScmFinanceAdjustDetails::getPurchaseSystemSid));
map.forEach((k, v) -> {
List<ScmFinanceAdjustDetails> rebates = v;
GeneralVoucher generalVoucher = new GeneralVoucher();
generalVoucher.setBussDate(format);
List<GeneralVoucher.GeneralVoucherDetail> 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<String, List<ScmFinanceAdjustDetails>> map = details.stream().collect(Collectors.groupingBy(ScmFinanceAdjustDetails::getPurchaseSystemSid));
map.forEach((k, v) -> {
List<ScmFinanceAdjustDetails> rebates = v;
CostAdjustmentsBill costAdjustmentsBill = new CostAdjustmentsBill();
costAdjustmentsBill.setBussDate(format);
List<CostAdjustmentsBill.CostAdjustmentsBillDetailDto> 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<ScmFinanceA
}
public ResultBean<AppDetailsVo> 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<ScmFileVo> scmFileVos = scmFileService.fetchByMainSid(sid);
if (!scmFileVos.isEmpty() && scmFileVos.size() > 0) {
List<String> 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<ScmFinanceAdjustDetails> details = scmFinanceAdjustDetailsService.selByMainSid(sid);
if (!details.isEmpty() && details.size() > 0) {
List<AppListVo> 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();
}
}

30
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')

1
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,

1
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,

6
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<CarModelVo> getOrder(@RequestParam("saleOrderSid") String saleOrderSid);
@ApiOperation(value = "销售订单页面")
@ResponseBody
@GetMapping("/getOrderListByOrderSids")
ResultBean<Map<String,CarModelVo>> getOrderListByOrderSids(@RequestBody List<String> orderSids);
@ApiOperation(value = "金融方案详情页面")
@ResponseBody
@GetMapping("/getLoanSolution")

82
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<String> files;
/**
* 明细列表
*/
private List<AdjustApplyRecordVo> 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;
}

72
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<AdjustApplyDetailsVo> 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<String> 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);
}

57
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<AdjustApplyDetailsVo> 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<String> getFlowOperateTitle(AdjustApplyFlowableQuery query) {
return null;
}
@Override
public ResultBean delegate(AppAdjustApplyDelegateQuery delegateQuery) {
return null;
}
@Override
public ResultBean assignTask(AppAdjustApplyDelegateQuery delegateQuery) {
return null;
}
}

72
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;
}

21
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;
}

25
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;
}

46
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;
}

35
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;
}

6
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<Map<String, CarModelVo>> getOrderListByOrderSids(List<String> orderSids) {
return commonService.getOrderListByOrderSids(orderSids);
}
@Override
public ResultBean<CarModelVo> getLoanSolution(String orderSid) {
return commonService.getLoanSolution(orderSid);

32
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<Map<String, CarModelVo>> getOrderListByOrderSids(List<String> orderSids) {
ResultBean<Map<String, CarModelVo>> rb = ResultBean.fireFail();
String appSid = "e25e13b5-f2ed-421f-bdb3-6f2eca2a3028";
String moduleAction = "com.anrui.android.plugin.autoservice.activity.DetailSaleOrderActivity";
ResultBean<AppSubVersionVo> voResultBean = appSubsetVersionFeign.getLastRiskByAppSid(appSid, moduleAction);
AppSubVersionVo appSubVersionVo = voResultBean.getData();
Map<String, CarModelVo> modelMap = new HashMap<>();
for (String saleOrderSid : orderSids) {
CarModelVo carModelVo = new CarModelVo();
Map<String, Object> 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<String> aRouterParamType = new ArrayList<>();
aRouterParamType.add("STRING");
List<String> 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<CarModelVo> getLoanSolution(String orderSid) {
ResultBean<CarModelVo> 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);
}
}

67
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<AdjustApplyDetailsVo> 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<String> 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);
}
}

178
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<AdjustApplyDetailsVo> detail(String sid) {
ResultBean<AdjustApplyDetailsVo> rb = ResultBean.fireFail();
AdjustApplyDetailsVo vo = new AdjustApplyDetailsVo();
AppDetailsVo data = scmFinanceAdjustApplyFeign.getAppDetails(sid).getData();
if (null != data) {
BeanUtil.copyProperties(data, vo);
List<AdjustApplyRecordVo> list = vo.getList();
if (!list.isEmpty() && list.size() > 0) {
List<String> orderSids = list.stream().map(AdjustApplyRecordVo::getSalesOrderSid).collect(Collectors.toList());
Map<String, CarModelVo> 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<SysUserVo> userVoResultBean = sysUserFeign.fetchBySid(dto.getUserSid());
if (!userVoResultBean.getSuccess()) {
return rb.setMsg(userVoResultBean.getMsg());
}
//根据staffSid获取用户的组织全路径
ResultBean<SysStaffOrg> 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<String> getFlowOperateTitle(AdjustApplyFlowableQuery query) {
ResultBean<String> rb = ResultBean.fireFail();
//0 上一环节 1下一环节
int next = query.getNext();
AdjustGetNodeQuery getNodeQuery = new
AdjustGetNodeQuery();
BeanUtil.copyProperties(query, getNodeQuery);
String data = "";
if (next == 0) {
ResultBean<List<AdjustGetNodeVo>> 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<List<AdjustGetNodeVo>> 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();
}
}

2
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);
}

229
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<OaFormMapper, OaForm> {
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<OaFormMapper, OaForm> {
}
}
/**
* 详情初始化
*
* @param sid
* @return
*/
public ResultBean<OaFormDetailsVo> fetchDetailsBySid(String sid) {
ResultBean<OaFormDetailsVo> rb = ResultBean.fireFail();
OaFormDetailsVo detailsVo = baseMapper.fetchDetailsBySid(sid);
@ -127,6 +135,12 @@ public class OaFormService extends MybatisBaseService<OaFormMapper, OaForm> {
return rb.success().setData(detailsVo);
}
/**
* 分页列表
*
* @param pq
* @return
*/
public PagerVo<OaFormVo> listPageVo(PagerQuery<OaFormQuery> pq) {
OaFormQuery query = pq.getParams();
QueryWrapper<OaForm> qw = new QueryWrapper<>();
@ -136,6 +150,12 @@ public class OaFormService extends MybatisBaseService<OaFormMapper, OaForm> {
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<OaFormMapper, OaForm> {
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<BusinessVariables> 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<UpdateFlowFieldVo> resultBean = flowFeign.handleProsess(bv);
if (!resultBean.getSuccess()) {
@ -216,36 +248,38 @@ public class OaFormService extends MybatisBaseService<OaFormMapper, OaForm> {
}
}
/**
* 获取上一环节
*
* @param query
* @return
*/
public ResultBean<List<NodeVo>> getPreviousNodesForReject(NodeQuery query) {
ResultBean<List<NodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
//流程中的参数赋值、若有网关,则赋值网关中判断的字段。
Map<String, Object> variables = new HashMap<>();
//查询业务信息
OaForm oaForm = fetchBySid(query.getBusinessSid());
//网关
bv.setModelId(oaForm.getProcDefId());
bv.setFormVariables(variables);
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
List<NodeVo> 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<List<NodeVo>> getNextNodesForSubmit(NodeQuery query) {
ResultBean<List<NodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
//流程中的参数赋值、若有网关,则赋值网关中判断的字段。
Map<String, Object> variables = new HashMap<>();
//查询业务信息
OaForm oaForm = fetchBySid(query.getBusinessSid());
//网关
bv.setModelId(oaForm.getProcDefId());
bv.setFormVariables(variables);
//=======================================
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
@ -253,7 +287,12 @@ public class OaFormService extends MybatisBaseService<OaFormMapper, OaForm> {
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<OaFormMapper, OaForm> {
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<OaFormMapper, OaForm> {
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<OaFormMapper, OaForm> {
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<UpdateFlowFieldVo> 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<Runnable>(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<String, Object>) 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<BusinessVariables> businessVariablesResultBean = getGatewayParameter(dto);
@ -456,13 +496,13 @@ public class OaFormService extends MybatisBaseService<OaFormMapper, OaForm> {
}
BusinessVariables bv = businessVariablesResultBean.getData();
OaForm oaForm = fetchBySid(dto.getBusinessSid());
int r = submitBusinessData(dto);
int r = submitBusinessData(dto, oaForm.getTaskId());
if (r == 1) {
//启动流程
ResultBean<UpdateFlowFieldVo> 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<OaFormMapper, OaForm> {
}
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<OaFormMapper, OaForm> {
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<OaFormMapper, OaForm> {
} else if (rule == OaFormRuleEnum.INSTITUTION.getRule()) {
//获取本机构链(含集团、事业部、分公司部门)中角色的用户(角色sid,发起人orgsidPath)
NodeQuery query = new NodeQuery();
query.setBusinessSid(dto.getBusinessSid());
query.setTaskDefKey(oaForm.getNodeId());
ResultBean<List<NodeVo>> resultBean = getNextNodesForSubmit(query);
List<NodeVo> voList = resultBean.getData();
List<String> candidateGroups = voList.get(0).getCandidateGroups();
UserQuery userQuery = new UserQuery();
userQuery.setRoleSid(candidateGroups.get(0));
userQuery.setOrgSidPath(bv.getOrgSidPath());
List<SysUserVo> 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<List<NodeVo>> resultBean = getNextNodesForSubmit(query);
List<NodeVo> voList = resultBean.getData();
List<String> candidateGroups = voList.get(0).getCandidateGroups();
UserRoleQuery userRoleQuery = new UserRoleQuery();
userRoleQuery.setRoleSid(candidateGroups.get(0));
userRoleQuery.setOrgSid(dto.getOrgSid());
List<SysUserVo> 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("");
}

11
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<String, Object> formVariables = new HashMap<>();
/**
* 规则请查看OaFormRuleEnum
*/
private int rule;
}

2
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<String, Object> formVariables = new HashMap<>();
}

4
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")

2
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;

6
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;
}

6
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<String, Object> formVariables = new HashMap<>();

3
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<String> files = new ArrayList<>();
@ApiModelProperty("任务id")
private String taskId;
/* @ApiModelProperty("单据编号")
private String billNo; // 单据编号
@ApiModelProperty("申请人")

63
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<OaMendApplyMapper, Oa
OaFormDto oaFormDto = new OaFormDto();
BeanUtil.copyProperties(dto, oaFormDto);
oaFormDto.setBillNo("BKSQ");
oaFormDto.setSid(entity.getSid());
ResultBean<String> resultBean = oaFormService.saveOaForm(oaFormDto);
if (!resultBean.getSuccess()) {
@ -178,7 +180,25 @@ public class OaMendApplyService extends MybatisBaseService<OaMendApplyMapper, Oa
return vo;
}
public ResultBean submit(SubmitOaMendApplyDto dto) {
public ResultBean delAll(String[] sids) {
ResultBean rb = ResultBean.fireFail();
//查询该sid中是否有流程不是待提交的
int count = baseMapper.selectBySid(StringUtils.join(sids, ","));
if (count > 0) {
return rb.setMsg("删除的数据中包含已提交或已办结审批的数据,删除失败");
}
delBySids(sids);
return rb.success();
}
/**
* 提交
*
* @param dto
* @return
*/
public ResultBean submit(OaMendApplyDto dto) {
ResultBean rb = ResultBean.fireFail();
ResultBean<String> stringResultBean = saveOrUpdateDto(dto);
if (!stringResultBean.getSuccess()) {
@ -197,23 +217,13 @@ public class OaMendApplyService extends MybatisBaseService<OaMendApplyMapper, Oa
formVariables.put("app", appMap);
submitDto.setFormVariables(formVariables);
submitDto.setProcDefId(ProcDefEnum.OAMENDAPPLY.getProDefId());
//若申请单中选择了下一处理人,则需赋值给下一处理人字段
submitDto.setNextNodeUserSids("");
submitDto.setNextNodeSid(dto.getTaskId());
//若申请单中选择了下一处理人,则需赋值给下一处理人字段,若没有则删除
// submitDto.setNextNodeUserSids("");
submitDto.setNextTaskId(dto.getTaskId());
submitDto.setRule(OaFormRuleEnum.DIRECTLY_UNDER.getRule());
return oaFormService.submit(submitDto);
}
public ResultBean delAll(String[] sids) {
ResultBean rb = ResultBean.fireFail();
//查询该sid中是否有流程不是待提交的
int count = baseMapper.selectBySid(StringUtils.join(sids, ","));
if (count > 0) {
return rb.setMsg("删除的数据中包含已提交或已办结审批的数据,删除失败");
}
delBySids(sids);
return rb.success();
}
/**
* 办理同意
*
@ -252,7 +262,12 @@ public class OaMendApplyService extends MybatisBaseService<OaMendApplyMapper, Oa
return oaFormService.reject(dto);
}
public ResultBean<List<NodeVo>> getPreviousNodesForReject(NodeQuery query) {
/**
* 提交时获取下一环节
* @param query
* @return
*/
public ResultBean<List<NodeVo>> getNextNodesForSubmit(NodeQuery query) {
Map<String, Object> formVariables = query.getFormVariables();
//添加网关
// formVariables.put("", "");
@ -261,10 +276,15 @@ public class OaMendApplyService extends MybatisBaseService<OaMendApplyMapper, Oa
appMap.put("sid", query.getBusinessSid());
formVariables.put("app", appMap);
query.setFormVariables(formVariables);
return oaFormService.getPreviousNodesForReject(query);
return oaFormService.getNextNodesForSubmit(query);
}
public ResultBean<List<NodeVo>> getNextNodesForSubmit(NodeQuery query) {
/**
* 驳回时获取上一环节
* @param query
* @return
*/
public ResultBean<List<NodeVo>> getPreviousNodesForReject(NodeQuery query) {
Map<String, Object> formVariables = query.getFormVariables();
//添加网关
// formVariables.put("", "");
@ -273,6 +293,11 @@ public class OaMendApplyService extends MybatisBaseService<OaMendApplyMapper, Oa
appMap.put("sid", query.getBusinessSid());
formVariables.put("app", appMap);
query.setFormVariables(formVariables);
return oaFormService.getNextNodesForSubmit(query);
return oaFormService.getPreviousNodesForReject(query);
}
/**
* 具体申请设置网关参数的统一方法
*/
}

26
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/SubmitOaMendApplyDto.java

@ -1,26 +0,0 @@
package com.yxt.anrui.oa.biz.oamendapply;
import com.yxt.anrui.oa.biz.oaleaveapply.OaLeaveApplyDto;
import com.yxt.anrui.oa.biz.oamendapply.OaMendApplyDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author liuguohui
* @version 1.0
* @description
* @date 2022/04/13
*/
@ApiModel("提交")
@Data
public class SubmitOaMendApplyDto extends OaMendApplyDto {
private static final long serialVersionUID = 8607710587497609779L;
@ApiModelProperty("意见")
private String comment;
@ApiModelProperty("流程实例id")
private String instanceId;
@ApiModelProperty("任务id")
private String taskId;
}

2
yxt-oa/src/main/java/com/yxt/anrui/oa/feign/portal/sysstafforg/OrgVo.java → yxt-oa/src/main/java/com/yxt/anrui/oa/feign/portal/sysorganization/OrgVo.java

@ -1,4 +1,4 @@
package com.yxt.anrui.oa.feign.portal.sysstafforg;
package com.yxt.anrui.oa.feign.portal.sysorganization;
import lombok.Data;

6
yxt-oa/src/main/java/com/yxt/anrui/oa/feign/portal/sysorganization/SysOrganizationFeign.java

@ -6,6 +6,7 @@ import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
/**
@ -32,4 +33,9 @@ public interface SysOrganizationFeign {
@ResponseBody
@GetMapping("/fetchBySid/{sid}")
public ResultBean<SysOrganizationVo> fetchBySid(@PathVariable("sid") String sid);
@GetMapping("/getOrgByPath")
@ResponseBody
@ApiOperation("根据用户组织全路径组织")
public ResultBean<OrgVo> getOrgByPath(@RequestParam("orgSidPath") String orgSidPath);
}

5
yxt-oa/src/main/java/com/yxt/anrui/oa/feign/portal/sysstafforg/SysStaffOrgFeign.java

@ -23,9 +23,4 @@ public interface SysStaffOrgFeign {
@ApiOperation("根据用户组织全路径获取用户的分公司sid")
ResultBean<String> getOrgSidByPath(@RequestParam("orgPath") String orgPath);
@GetMapping("/getOrgByPath")
@ResponseBody
@ApiOperation("根据用户组织全路径组织")
public ResultBean<OrgVo> getOrgByPath(@RequestParam("orgSidPath") String orgSidPath);
}

12
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<SysUserVo> fetchBySid(@PathVariable("sid") String sid);
@ApiOperation(value = "获取其他机构链角色的用户")
@GetMapping(value = "getOtherOrgRoleUser")
ResultBean<List<SysUserVo>> getOtherOrgRoleUser(@SpringQueryMap UserRoleQuery query);
@ApiOperation(value = "获取本机构链角色的用户")
@GetMapping(value = "getUserByRole")
ResultBean<List<SysUserVo>> getUserByRole(@SpringQueryMap UserQuery query);
}

21
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;
}

19
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;
}
Loading…
Cancel
Save