Browse Source

Merge remote-tracking branch 'origin/master'

master
yunuo970428 2 years ago
parent
commit
f162729759
  1. 91
      docs/db_backup/supervise_enterprisecenter.sql
  2. 2
      supervise-report-ui/.env.development
  3. 16
      supervise-report-ui/src/api/main/main.js
  4. 2
      supervise-report-ui/src/main.js
  5. 123
      supervise-report-ui/src/views/index.vue
  6. 13
      supervise-report-ui/src/views/project/projectDaily.vue
  7. 16
      supervise-report-ui/src/views/reportCenter/thresholdAnalysis.vue
  8. 1
      yxt_supervise/supervise-flowable/supervise-flowable-biz/src/main/java/com/yxt/anrui/flowable/FlowableApplication.java
  9. 15
      yxt_supervise/supervise-flowable/supervise-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableRest.java
  10. 44
      yxt_supervise/supervise-flowable/supervise-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java
  11. 5
      yxt_supervise/supervise-flowable/supervise-flowable-biz/src/main/java/com/yxt/anrui/flowable/sqloperationsymbol/BusinessVariables.java
  12. 4
      yxt_supervise/supervise-flowable/supervise-flowable-biz/src/main/java/com/yxt/supervise/system/sysuser/SysUserFeign.java
  13. 5
      yxt_supervise/supervise-flowable/supervise-flowable-biz/src/main/java/com/yxt/supervise/system/sysuser/SysUserFeignFallback.java
  14. 3
      yxt_supervise/supervise-flowable/supervise-flowable-biz/src/main/java/com/yxt/supervise/system/sysuser/UserQuery.java
  15. 4
      yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/api/riskmessageslog/RiskMessagesLogVo.java
  16. 105
      yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/api/riskmessageslog/RiskMessagesLogVos.java
  17. 25
      yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/projectdaily/ProjectDailyService.java
  18. 5
      yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/riskmessageslog/RiskMessagesLogMapper.java
  19. 43
      yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/riskmessageslog/RiskMessagesLogMapper.xml
  20. 5
      yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/riskmessageslog/RiskMessagesLogRest.java
  21. 8
      yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/riskmessageslog/RiskMessagesLogService.java
  22. 2
      yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/sysuser/SysUserMapper.java
  23. 8
      yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/sysuser/SysUserMapper.xml
  24. 9
      yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/sysuser/SysUserRest.java
  25. 37
      yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/sysuser/SysUserService.java
  26. 3
      yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/sysuser/UserQuery.java
  27. 5
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/flowable/BusinessVariables.java
  28. 5
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/flowable/ProcDefEnum.java
  29. 44
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/paymentapply/PaymentApply.java
  30. 39
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/qualityrelease/QualityRelease.java
  31. 37
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/warehousingpledge/WarehousingPledge.java
  32. 33
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/warehousingpledge/WarehousingPledgeDetailsVo.java
  33. 31
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/warehousingpledge/WarehousingPledgeDto.java
  34. 26
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/warehousingpledge/WarehousingPledgeQuery.java
  35. 35
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/warehousingpledge/WarehousingPledgeVo.java
  36. 33
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/warehousingpledge/flowable/CompletePledgeDto.java
  37. 43
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/warehousingpledge/flowable/PledgeTaskQuery.java
  38. 20
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/warehousingpledge/flowable/SubmitPledgeDto.java
  39. 5
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/biz/feign/SysUserFeign.java
  40. 76
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/biz/sealrecord/SealRecordService.java
  41. 37
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/biz/warehousingpledge/WarehousingPledgeMapper.java
  42. 56
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/biz/warehousingpledge/WarehousingPledgeMapper.xml
  43. 106
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/biz/warehousingpledge/WarehousingPledgeRest.java
  44. 359
      yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/biz/warehousingpledge/WarehousingPledgeService.java

91
docs/db_backup/supervise_enterprisecenter.sql

@ -0,0 +1,91 @@
DROP TABLE IF EXISTS `warehousing_pledge`;
CREATE TABLE `warehousing_pledge`
(
`id` int(32) NOT NULL AUTO_INCREMENT COMMENT 'id',
`sid` varchar(64) NOT NULL COMMENT 'sid',
`lockVersion` int(32) DEFAULT '0' COMMENT '版本锁',
`createTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`modifyTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
`isEnable` int(32) DEFAULT '1' COMMENT '是否可用:1可用,0不可用',
`state` int(32) DEFAULT '1' COMMENT '状态',
`isDelete` int(32) DEFAULT '0' COMMENT '是否删除:0未删除,1已删除',
`remarks` varchar(255) DEFAULT NULL COMMENT '备注',
`createBySid` varchar(64) DEFAULT NULL COMMENT '创建人sid',
`updateBySid` varchar(64) DEFAULT NULL COMMENT '修改人sid',
`createByName` varchar(64) DEFAULT NULL COMMENT '创建人名称',
`projectName` varchar(255) DEFAULT NULL COMMENT '项目名称',
`projectSid` varchar(255) DEFAULT NULL COMMENT '项目sid',
`warehouseName` varchar(255) DEFAULT NULL COMMENT '仓库名称',
`warehouseSid` varchar(255) DEFAULT NULL COMMENT '仓库sid',
`goodsValue` varchar(255) DEFAULT NULL COMMENT '货物价值',
`procDefId` varchar(255) DEFAULT NULL COMMENT '流程id',
`procInstId` varchar(255) DEFAULT NULL COMMENT '实例id',
`taskId` varchar(255) DEFAULT NULL COMMENT '任务id',
`nodeState` varchar(255) DEFAULT NULL COMMENT '流程状态',
`taskDefKey` varchar(255) DEFAULT NULL COMMENT '环节id',
PRIMARY KEY (`id`),
KEY `id` (`id`)
) ENGINE = INNODB
DEFAULT CHARSET = utf8 COMMENT ='入库质押申请';
DROP TABLE IF EXISTS `quality_release`;
CREATE TABLE `quality_release`
(
`id` int(32) NOT NULL AUTO_INCREMENT COMMENT 'id',
`sid` varchar(64) NOT NULL COMMENT 'sid',
`lockVersion` int(32) DEFAULT '0' COMMENT '版本锁',
`createTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`modifyTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
`isEnable` int(32) DEFAULT '1' COMMENT '是否可用:1可用,0不可用',
`state` int(32) DEFAULT '1' COMMENT '状态',
`isDelete` int(32) DEFAULT '0' COMMENT '是否删除:0未删除,1已删除',
`remarks` varchar(255) DEFAULT NULL COMMENT '备注',
`createBySid` varchar(64) DEFAULT NULL COMMENT '创建人sid',
`updateBySid` varchar(64) DEFAULT NULL COMMENT '修改人sid',
`createByName` varchar(64) DEFAULT NULL COMMENT '创建人名称',
`projectName` varchar(255) DEFAULT NULL COMMENT '项目名称',
`projectSid` varchar(255) DEFAULT NULL COMMENT '项目sid',
`warehouseName` varchar(255) DEFAULT NULL COMMENT '仓库名称',
`warehouseSid` varchar(255) DEFAULT NULL COMMENT '仓库sid',
`goodsValue` varchar(255) DEFAULT NULL COMMENT '货物价值',
`procDefId` varchar(255) DEFAULT NULL COMMENT '流程id',
`procInstId` varchar(255) DEFAULT NULL COMMENT '实例id',
`taskId` varchar(255) DEFAULT NULL COMMENT '任务id',
`nodeState` varchar(255) DEFAULT NULL COMMENT '流程状态',
`taskDefKey` varchar(255) DEFAULT NULL COMMENT '环节id',
PRIMARY KEY (`id`),
KEY `id` (`id`)
) ENGINE = INNODB
DEFAULT CHARSET = utf8 COMMENT ='解质出库申请';
DROP TABLE IF EXISTS `payment_apply`;
CREATE TABLE `payment_apply`
(
`id` int(32) NOT NULL AUTO_INCREMENT COMMENT 'id',
`sid` varchar(64) NOT NULL COMMENT 'sid',
`lockVersion` int(32) DEFAULT '0' COMMENT '版本锁',
`createTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`modifyTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
`isEnable` int(32) DEFAULT '1' COMMENT '是否可用:1可用,0不可用',
`state` int(32) DEFAULT '1' COMMENT '状态',
`isDelete` int(32) DEFAULT '0' COMMENT '是否删除:0未删除,1已删除',
`remarks` varchar(255) DEFAULT NULL COMMENT '备注',
`createBySid` varchar(64) DEFAULT NULL COMMENT '创建人sid',
`updateBySid` varchar(64) DEFAULT NULL COMMENT '修改人sid',
`createByName` varchar(64) DEFAULT NULL COMMENT '创建人名称',
`projectName` varchar(255) DEFAULT NULL COMMENT '项目名称',
`projectSid` varchar(255) DEFAULT NULL COMMENT '项目sid',
`enterpriseName` varchar(255) DEFAULT NULL COMMENT '用款企业',
`enterpriseSid` varchar(255) DEFAULT NULL COMMENT '用款企业sid',
`applyUse` varchar(255) DEFAULT NULL COMMENT '用款申请用途',
`money` decimal(10, 2) DEFAULT NULL COMMENT '用款金额',
`voucherUrl` text DEFAULT NULL COMMENT '回款凭证',
`procDefId` varchar(255) DEFAULT NULL COMMENT '流程id',
`procInstId` varchar(255) DEFAULT NULL COMMENT '实例id',
`taskId` varchar(255) DEFAULT NULL COMMENT '任务id',
`nodeState` varchar(255) DEFAULT NULL COMMENT '流程状态',
`taskDefKey` varchar(255) DEFAULT NULL COMMENT '环节id',
PRIMARY KEY (`id`),
KEY `id` (`id`)
) ENGINE = INNODB
DEFAULT CHARSET = utf8 COMMENT ='用款申请';

2
supervise-report-ui/.env.development

@ -6,4 +6,4 @@ VUE_APP_BASE_API = '/api'
## 配置测试和本地开发时的 接口地址
##VUE_APP_URL = "http://8.130.39.13:8112"
VUE_APP_URL = "http://192.168.0.104:7009"
VUE_APP_URL = "http://192.168.0.108:7009"

16
supervise-report-ui/src/api/main/main.js

@ -0,0 +1,16 @@
import request from '@/utils/request'
// 主页
// 列表
export default {
getProjectDailys(data) {
return request({
url: '/projectdaily/getProjectDailys',
method: 'post',
data: data
})
},
}

2
supervise-report-ui/src/main.js

@ -50,7 +50,7 @@ VueAMap.initAMapApiLoader({
Vue.config.productionTip = false
let token = null
// let token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTm8iOiI4NWUwYWY0Yi1lMGJhLTQyM2UtOTIxMS1kYjI2MDg2NTgwM2YiLCJpc3MiOiJXQksiLCJleHAiOjE3MDA0NDI3NDF9.ofDoXvqN58tdWomVV70gwpRxjYn6qeaNlbnd7qyy0AI'
// let token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTm8iOiI4NWUwYWY0Yi1lMGJhLTQyM2UtOTIxMS1kYjI2MDg2NTgwM2YiLCJpc3MiOiJXQksiLCJleHAiOjE3MDA2NDM3OTN9.a9Zmp99E33LC4fCVSwD5rDpiivzQCXRShw8p8voL4OQ'
token = GetQueryString('token')
if (token) {
setStorage(token)

123
supervise-report-ui/src/views/index.vue

@ -9,8 +9,9 @@
<div class="title-select">
<el-select v-model="wareValue" placeholder="请选择仓库" style="width: 250px;margin-right: 50px;">
<el-option v-for="item in warehouse" :key="item.value" :label="item.label" :value="item.value">
<el-select v-model="projectValue" placeholder="请选择项目" style="width: 250px;margin-right: 50px;"
@change="projectSelect">
<el-option v-for="item in projectList" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
@ -143,11 +144,16 @@
<div class="bom">
<el-table v-loading="tableLoading" :data="listSalesChannelData" border style="width: 100%;">
<el-table-column width="200" label="销售渠道类别" prop="salesChannelCategory" align="center" />
<el-table-column label="总额" prop="totalAmount" align="center" />
<el-table-column label="应收帐款" prop="accountsReceivable" align="center" />
<el-table-column label="扣除应收" prop="deductionAccountsReceivable" align="center" />
<el-table v-loading="tableLoading" :data="projectlistlData" border style="width: 100%;" :row-style="{height: '50px'}">
<el-table-column width="200" label="项目名称" prop="projectName" align="center" />
<el-table-column label="授信额度(元)" prop="totalLoan" align="center" />
<el-table-column label="用信额度(元)" prop="useLimit" align="center" />
<el-table-column label="账户余额(元)" prop="accountsBalance" align="center" />
<el-table-column label="应收账款(元)" prop="accountsReceivable" align="center" />
<el-table-column label="库存货值(元)" prop="stockAmount" align="center" />
<el-table-column label="在途货值(元)" prop="transitAmount" align="center" />
<el-table-column label="预付款(元)" prop="advancePayment" align="center" />
<el-table-column label="质押率" prop="pledgeRatePercent" align="center" />
</el-table>
@ -161,6 +167,7 @@
</div>
<script>
import * as echarts from 'echarts'
import req from '@/api/main/main'
import {
getDateRang
} from '@/utils/index'
@ -168,9 +175,10 @@
name: '',
data() {
return {
tableLoading: false,
times: getDateRang('yesterday'),
wareValue: "",
warehouse: [
projectValue: "全部项目",
projectList: [
{
label: "111111111",
@ -185,66 +193,7 @@
value: "项目3"
}
],
listSalesChannelData: [{
salesChannelCategory: '连网连锁店',
totalAmount: '2000000',
accountsReceivable: '31,914',
deductionAccountsReceivable: '35,793'
},
{
salesChannelCategory: '连锁内加盟',
totalAmount: '28,700',
accountsReceivable: '28,749',
deductionAccountsReceivable: '58,339'
},
{
salesChannelCategory: '配送中心',
totalAmount: '-1241.81',
accountsReceivable: '28,749',
deductionAccountsReceivable: '58,339'
},
{
salesChannelCategory: '连锁外加盟',
totalAmount: '29822.44',
accountsReceivable: '28,749',
deductionAccountsReceivable: '58,339'
},
{
salesChannelCategory: '配送中心',
totalAmount: '-1241.81',
accountsReceivable: '28,749',
deductionAccountsReceivable: '58,339'
},
{
salesChannelCategory: '连锁外加盟',
totalAmount: '29822.44',
accountsReceivable: '28,749',
deductionAccountsReceivable: '58,339'
},
{
salesChannelCategory: '配送中心',
totalAmount: '-1241.81',
accountsReceivable: '28,749',
deductionAccountsReceivable: '58,339'
},
{
salesChannelCategory: '连锁外加盟',
totalAmount: '29822.44',
accountsReceivable: '28,749',
deductionAccountsReceivable: '58,339'
},
{
salesChannelCategory: '配送中心',
totalAmount: '-1241.81',
accountsReceivable: '28,749',
deductionAccountsReceivable: '58,339'
},
{
salesChannelCategory: '连锁外加盟',
totalAmount: '29822.44',
accountsReceivable: '28,749',
deductionAccountsReceivable: '58,339'
}
projectlistlData: [
],
}
@ -253,12 +202,39 @@
this.drawLine()
},
created() {
this.init()
},
methods: {
init() {
//
let params = {
orderDate: this.times,
projectSid: "",
}
req.getProjectDailys(params).then(res => {
console.log('getProjectDailys:', res)
this.projectlistlData = res.data
})
},
projectSelect(val) {
console.log('projectSelect:', val)
},
selectTime(val) {
console.log('val:', val)
console.log('selectTime:', val)
this.times = val
this.init()
},
// 线
@ -359,10 +335,11 @@
text-align: right;
padding-right: 40px;
}
.mains{
.mains {
overflow-x: hidden;
overflow-y: auto;
height: 100%;
overflow-y: auto;
height: 100%;
}
.index {

13
supervise-report-ui/src/views/project/projectDaily.vue

@ -258,7 +258,8 @@
import pageye from '@/components/pagination/pageye'
import req from '@/api/project/projectDaily'
import {
parseTime
parseTime,
getDateRang
} from '@/utils/index'
export default {
name: 'DaydatauploadCash',
@ -272,15 +273,15 @@
banInfo: false,
btndisabled: false,
viewState: 1, // 1 2 3 4
isSearchShow: false,
searchxianshitit: '显示查询条件',
isSearchShow: true,
searchxianshitit: '隐藏查询条件',
queryParams: {
current: 1,
size: 10,
total: 0,
params: {
dataDateStart: '',
dataDateEnd: '',
dataDateStart: getDateRang('yesterday'),
dataDateEnd: getDateRang('yesterday'),
projectSid: ''
}
},
@ -632,6 +633,8 @@
window.open('/map365/#/allData?projectSid=' + projectSid + '&projectName=' + projectName +
'&orderDate=' + orderDate);
// window.open('http://192.168.0.117:9533/map365/#/allData?projectSid=' + projectSid + '&projectName=' + projectName +
// '&orderDate=' + orderDate);
},
sendMess(row) {
req.sendMess(row.projectSid, row.orderDate).then(res => {

16
supervise-report-ui/src/views/reportCenter/thresholdAnalysis.vue

@ -11,7 +11,7 @@
<div v-show="isSearchShow" class="search">
<el-form ref="queryParams" :model="queryParams" :inline="true" class="tab-header">
<el-form-item label="日期">
<el-date-picker v-model="queryParams.date" type="date" clearable value-format="yyyy-MM-dd"
<el-date-picker v-model="queryParams.params.date" type="date" clearable value-format="yyyy-MM-dd"
placeholder="选择日期" />
</el-form-item>
<el-form-item label="类别">
@ -66,7 +66,9 @@
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import * as echarts from 'echarts';
import {
getDateRang
} from '@/utils/index'
export default {
components: {
ButtonBar,
@ -78,8 +80,8 @@
return {
btndisabled: false,
viewState: 1, // 1 2 3 4
isSearchShow: false,
searchxianshitit: '显示查询条件',
isSearchShow: true,
searchxianshitit: '隐藏查询条件',
tableLoading: false,
tableKey: 0,
// 1.,2.3.
@ -117,11 +119,11 @@
total: 0,
params: {
customerSid: '',
date: this.getDate(),
date: getDateRang('yesterday'),
type: '',
} // key
},
nowDate: new Date().getFullYear() + "-" + (new Date().getMonth() + 1) + "-" + new Date().getDate(),
// nowDate: new Date().getFullYear() + "-" + (new Date().getMonth() + 1) + "-" + new Date().getDate(),
thresholdAnalysisTable: [{
num: '1',
date: '2023-01-01',
@ -435,7 +437,7 @@
dosearch() {
this.nowDate = this.queryParams.date;
this.queryParams.date=getDateRang('yesterday'),
this.loadList();
},

1
yxt_supervise/supervise-flowable/supervise-flowable-biz/src/main/java/com/yxt/anrui/flowable/FlowableApplication.java

@ -16,6 +16,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
}, scanBasePackages = {
"com.yxt.common.base.config",
"org.flowable.ui.modeler", "org.flowable.ui.common","com.yxt.anrui.flowable.*"
,"com.yxt.supervise.flowable.*"
})
@EnableDiscoveryClient
@EnableFeignClients(basePackages = {"com.yxt.anrui.*","com.yxt.supervise.*"})

15
yxt_supervise/supervise-flowable/supervise-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableRest.java

@ -322,11 +322,6 @@ public class FlowableRest implements FlowableFeign {
log.error("taskid:{},userSid:{}",taskId, userSid);
log.error("formVariables:{}",JSON.toJSONString(formVariables));
taskService.setAssignee(taskId, userSid);
//formVariables.remove("userSid");
/*for(Map.Entry<String, Object> entry:formVariables.entrySet()){
taskService.setVariable(taskId,entry.getKey(),entry.getValue());
System.out.println(entry.getKey()+"--->"+entry.getValue());
}*/
taskService.complete(taskId, formVariables);
//根据流程实例的id取最新的待办环节,给环节设置上用户sid
ResultBean<List<LatestTaskVo>> ll = flowtaskService.getLatestTasksNew(instanceId);
@ -335,13 +330,6 @@ public class FlowableRest implements FlowableFeign {
String id_ = latestTaskVo.getId_();
taskService.setAssignee(id_, nextUserSid);
vo.setTaskId(id_);
/* for(Map.Entry<String, Object> entry:formVariables.entrySet()){
taskService.setVariable(id_,entry.getKey(),entry.getValue());
taskService.setVariableLocal(id_,entry.getKey(),entry.getValue());
System.out.println(entry.getKey()+"--->"+entry.getValue());
}*/
// taskService.setVariables(id_,formVariables);
//在act_ru_variable表中增加环节上的业务参数的变量
taskService.setVariablesLocal(id_,formVariables);
nodeState = latestTaskVo.getName_();
@ -352,7 +340,6 @@ public class FlowableRest implements FlowableFeign {
vo.setNodeState(FlowComment.SETTLE.getRemark());
}
}
//ResultBean<FlowRecordVo> flowRecordVoResultBean = flowableService.flowRecord(dto.getInstanceId(), dto.getModelId());
List<FlowElement> flowElements = processService.calApprovePath(dto.getModelId(), dto.getModelId(),
dto.getFormVariables());
boolean contains=false;
@ -424,7 +411,7 @@ public class FlowableRest implements FlowableFeign {
return rb.setData(new UserAndOrgPath());
}else{
Object o = task_map.get("candidateGroups");
return flowtaskService.getNextUserSidsNoOrgPath(rb, o);
return flowtaskService.getNextUserSidsNoOrgPath(rb, o,bv.getProjectSid());
}
}

44
yxt_supervise/supervise-flowable/supervise-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java

@ -742,7 +742,10 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
userName.append(data.getName()).append(",");
}
String userName_str="";
userName_str=userName.substring(0,userName.length()-1);
if(StringUtils.isNotBlank(userName)){
userName_str=userName.substring(0,userName.length()-1);
}
flowTask.setAssigneeName(userName_str);
}
flowTask.setPreviousPersonSid(histTask.get("previousPersonSid")==null?"":histTask.get("previousPersonSid").toString());
@ -750,42 +753,22 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
flowTask.setProcDefId(histTask.get("PROC_DEF_ID_") == null ? "" : histTask.get("PROC_DEF_ID_").toString());
flowTask.setTaskDefKey(histTask.get("taskDefKey") == null ? "" : histTask.get("taskDefKey").toString());
flowTask.setTaskName(histTask.get("NAME_") == null ? "" : histTask.get("NAME_").toString());
// 判断是否办结
/*Object end_act_id_ = histTask.get("END_ACT_ID_");
if (end_act_id_ != null) {
flowTask.setTaskName(ProcessStateEnum.FINISHED.getStateName());
}*/
// 流程定义信息
// ProcessDefinition pd = repositoryService.createProcessDefinitionQuery()
// .processDefinitionId(histTask.get("PROC_DEF_ID_").toString())
// .singleResult();
flowTask.setDeployId(histTask.get("DEPLOYMENT_ID_") == null ? "" : histTask.get("DEPLOYMENT_ID_").toString());
flowTask.setProcDefName(histTask.get("PROC_DEF_NAME_") == null ? "" : histTask.get("PROC_DEF_NAME_").toString());
flowTask.setProcDefVersion(histTask.get("PROC_DEF_VERSION_") == null ? 0 : Integer.parseInt(histTask.get("PROC_DEF_VERSION_").toString()));
flowTask.setProcInsId(histTask.get("PROC_INST_ID_").toString());
flowTask.setHisProcInsId(histTask.get("PROC_INST_ID_").toString());
// 流程发起人信息
// HistoricProcessInstance hi = historyService.createHistoricProcessInstanceQuery()
// .processInstanceId(histTask.get("PROC_INST_ID_").toString())
// .singleResult();
ResultBean<SysUserVo> sysUserVoResultBean = sysUserFeign.fetchBySid(histTask.get("START_USER_ID_").toString());
if(!sysUserVoResultBean.getSuccess()){
continue;
}
flowTask.setStartUserSid(sysUserVoResultBean.getData().getSid());
flowTask.setStartUserName(sysUserVoResultBean.getData().getName());
// ResultBean<SysUserVo> sysUserVoResultBean = sysUserFeign.fetchBySid(historicProcessInstance.getStartUserId());
if(sysUserVoResultBean.getData()!=null){
flowTask.setStartUserSid(sysUserVoResultBean.getData().getSid());
flowTask.setStartUserName(sysUserVoResultBean.getData().getName());
/*ResultBean<String> pathSidByUserSid = sysStaffOrgFeign.getPathSidByUserSid(sysUserVoResultBean.getData().getSid());
String ogrName="";
if(pathSidByUserSid.getData()!=null){
ResultBean<SysOrganizationVo> sysOrganizationVoResultBean = sysOrganizationFeign.fetchBySid(pathSidByUserSid.getData());
ogrName=sysOrganizationVoResultBean.getData().getName();
}
flowTask.setStartDeptName(ogrName+"-"+sysUserVoResultBean.getData().getOrganizationName());*/
}
// flowTask.setStartDeptName(sysUserVoResultBean.getData().getOrganizationName());
HistoricTaskInstance historicTaskInstance = historyService.createHistoricTaskInstanceQuery().includeProcessVariables().taskId(flowTask.getTaskId()).singleResult();
flowTask.setProcessVariables(historicTaskInstance.getProcessVariables());
Object end_act_id = histTask.get("end_act_id_");
@ -2101,20 +2084,21 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
if(o==null){
return rb.setMsg("流程设计问题");
}
String projectSid = dto.getProjectSid();
//log.info("getNextNodeUserSidsOfCreate3:{}",JSONObject.toJSONString(o));
return getNextUserSidsNoOrgPath(rb, o);
return getNextUserSidsNoOrgPath(rb, o,projectSid);
}
public ResultBean<UserAndOrgPath> getNextUserSidsNoOrgPath(ResultBean rb, Object o) {
public ResultBean<UserAndOrgPath> getNextUserSidsNoOrgPath(ResultBean rb, Object o,String projectSid) {
UserAndOrgPath mapParam=new UserAndOrgPath();
JSONArray jsonArray = JSONArray.parseArray(JSON.toJSONString(o));
String roleSid = jsonArray.get(0).toString();
//根据组织架构、角色两个参数取相关符合条件的用户信息
UserQuery userQuery = new UserQuery();
userQuery.setRoleSid(roleSid);
//log.info("getNextUserSids0:{}",JSONObject.toJSONString(userQuery));
List<SysUserVo> sysUserVos = sysUserFeign.getUserByRoleNoOrgPath(userQuery).getData();
//log.info("getNextUserSids1:{}",JSONObject.toJSONString(sysUserVos));
userQuery.setProjectSid(projectSid);
// List<SysUserVo> sysUserVos = sysUserFeign.getUserByRoleNoOrgPath(userQuery).getData();
List<SysUserVo> sysUserVos = sysUserFeign.getUserByRoleAndProject(userQuery).getData();
if(sysUserVos==null||sysUserVos.size()<1){
return rb.fail().setMsg("环节没有用户");
}
@ -2127,12 +2111,10 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
}
//符合条件的用户的sid,拼接的字符串
String nextNodeUserSids_ = nextNodeUserSids.toString();
//log.info("getNextUserSids2:{}",nextNodeUserSids_);
if(StringUtils.isBlank(nextNodeUserSids_))
return rb.fail().setMsg("环节没有用户");
nextNodeUserSids_ = nextNodeUserSids_.substring(0, nextNodeUserSids_.length() - 1);
mapParam.setUserSid(nextNodeUserSids_);
//log.info("getNextUserSids3:{}",JSONObject.toJSONString(mapParam));
return rb.success().setData(mapParam);
}
}

5
yxt_supervise/supervise-flowable/supervise-flowable-biz/src/main/java/com/yxt/anrui/flowable/sqloperationsymbol/BusinessVariables.java

@ -62,6 +62,7 @@ public class BusinessVariables {
* 业务参数按需传递
*/
private Map<String, Object> formVariables =new HashMap<>();
/* @ApiModelProperty("机构sid:切换结构使用")
private String orgPath;*/
@ApiModelProperty("项目sid")
private String projectSid;
}

4
yxt_supervise/supervise-flowable/supervise-flowable-biz/src/main/java/com/yxt/supervise/system/sysuser/SysUserFeign.java

@ -7,6 +7,7 @@ import com.yxt.common.core.vo.PagerVo;
import com.yxt.supervise.system.sysstaffinfo.SysStaffinfoVo;
import com.yxt.supervise.system.sysuser.app.AppUserOrgInfoVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.cloud.openfeign.FeignClient;
@ -231,4 +232,7 @@ public interface SysUserFeign {
@ApiOperation(value = "获取角色的用户")
@GetMapping(value = "getUserByRoleNoOrgPath")
ResultBean<List<SysUserVo>> getUserByRoleNoOrgPath(@SpringQueryMap UserQuery userQuery);
@ApiModelProperty("根据项目和角色获取用户")
@GetMapping("getUserByRoleAndProject")
public ResultBean<List<SysUserVo>> getUserByRoleAndProject(@SpringQueryMap UserQuery userQuery);
}

5
yxt_supervise/supervise-flowable/supervise-flowable-biz/src/main/java/com/yxt/supervise/system/sysuser/SysUserFeignFallback.java

@ -219,4 +219,9 @@ public class SysUserFeignFallback implements SysUserFeign {
public ResultBean<List<SysUserVo>> getUserByRoleNoOrgPath(UserQuery userQuery) {
return null;
}
@Override
public ResultBean<List<SysUserVo>> getUserByRoleAndProject(UserQuery userQuery) {
return null;
}
}

3
yxt_supervise/supervise-flowable/supervise-flowable-biz/src/main/java/com/yxt/supervise/system/sysuser/UserQuery.java

@ -12,10 +12,11 @@ import lombok.Data;
@Data
public class UserQuery implements Query {
private static final long serialVersionUID = -3979717077029562761L;
@ApiModelProperty(value = "角色sid必传项")
private String roleSid;
@ApiModelProperty(value = "用户部门sid路径是必传项")
private String orgSidPath;
private String projectSid;
}

4
yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/api/riskmessageslog/RiskMessagesLogVo.java

@ -59,6 +59,10 @@ public class RiskMessagesLogVo implements Vo {
//{thing3=瀚川商贸仓库, thing4=图片对比异常, time5=2023-11-06 05:04:08}
vo.setTime(map.get("time5"));
vo.setShName(map.get("thing3"));
}else if(type.equals("每日数据上报")){
//{time1=2023-08-15 09:57, thing3=赵丽晓, thing2=监管数据总览(喜相随生产加工动产质押项…}
vo.setTime(map.get("time1"));
vo.setShName(map.get("thing2"));
}
}
this.templateMessageVo=vo;

105
yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/api/riskmessageslog/RiskMessagesLogVos.java

@ -0,0 +1,105 @@
package com.yxt.supervise.report.api.riskmessageslog;
import cn.hutool.core.util.StrUtil;
import com.yxt.common.core.vo.Vo;
import com.yxt.supervise.report.api.imgmessageslog.Linkers;
import lombok.Data;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author wangpengfei
* @date 2023/11/22 8:46
*/
@Data
public class RiskMessagesLogVos implements Vo {
private String id;
private String sid;
private String messageTime;
private String pagepath;
private String content;
//消息状态
private String oState;
private Map<String,String> map;
private String riskSid;
private String shName;
private List<String> devices;
private String text;
List<Linkers> linkers;
private String shSid;
private Integer count;
private List<String> message;
private String type;
private TemplateMessageVo templateMessageVo;
private String isImg;
private String riskLevel="二级风险";
//{time4=2023-09-14 17:17:35, thing8=中通樊家屯仓, thing2=东北角的摄像头,111,22,33}
//{thing3=中通樊家屯仓, thing2=东北角的摄像头,111,22,33, time5=2023-09-14 17:18:00}
public TemplateMessageVo getTemplateMessageVo() {
TemplateMessageVo vo=new TemplateMessageVo();
//{time4=2023-09-14 17:17:35, thing8=中通樊家屯仓, thing2=东北角的摄像头,111,22,33}
//{thing3=中通樊家屯仓, thing2=东北角的摄像头,111,22,33, time5=2023-09-14 17:18:00}
if(StrUtil.isNotEmpty(type)){
if(type.equals("设备离线")){
vo.setTime(map.get("time4"));
vo.setShName(map.get("thing8")+"设备离线");
}else if(type.equals("设备离线解除")){
vo.setTime(map.get("time5"));
vo.setShName(map.get("thing3")+"设备离线解除");
}else if(type.equals("系统异常")){
vo.setTime(map.get("time4"));
vo.setShName("环境监控未向平台推送数据");
}else if(type.equals("系统异常解除")){
vo.setTime(map.get("time5"));
vo.setShName("环境监控已正常推送数据");
}else if(type.equals("图片对比异常")){
//{thing3=瀚川商贸仓库, thing4=图片对比异常, time5=2023-11-06 05:04:08}
vo.setTime(map.get("time5"));
vo.setShName(map.get("thing3")+"图片对比异常");
}else if(type.equals("每日数据上报")){
//{time1=2023-08-15 09:57, thing3=赵丽晓, thing2=监管数据总览(喜相随生产加工动产质押项…}
vo.setTime(map.get("time1"));
vo.setShName(map.get("thing2")+")每日数据上报");
}
}
this.templateMessageVo=vo;
return templateMessageVo;
}
public List<String> getMessage() {
List<String> l=new ArrayList<>();
String[] keyValuePairs = content.split("[{;,}]");
for (String pair : keyValuePairs) {
// 按照等号拆分键和值
String[] keyValue = pair.split("=");
if (keyValue.length == 2) {
String key = keyValue[0].trim();
String value = keyValue[1].trim();
l.add(value);
}
}
this.message=l;
return message;
}
public Map<String, String> getMap() {
Map<String, String> strMap = new HashMap<>();
String[] keyValuePairs = content.split("[{;,}]");
for (String pair : keyValuePairs) {
// 按照等号拆分键和值
String[] keyValue = pair.split("=");
if (keyValue.length == 2) {
String key = keyValue[0].trim();
String value = keyValue[1].trim();
strMap.put(key, value);
}
}
this.map = strMap;
return map;
}
}

25
yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/projectdaily/ProjectDailyService.java

@ -350,10 +350,13 @@ public class ProjectDailyService extends ServiceImpl<ProjectDailyMapper, Project
public ResultBean<List<ProjectDailyVos>> getProjectDailys(ProjectDailyQuery query) {
ResultBean rb=new ResultBean().fail();
ProjectDailyQuery params = query;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
QueryWrapper<ProjectDaily> qw = new QueryWrapper<>();
if (params != null) {
if (com.yxt.common.base.utils.StringUtils.isNotBlank(params.getOrderDate())) {
qw.eq("orderDate", params.getOrderDate());
}else{
qw.eq("orderDate",sdf.format(DateUtil.yesterday()));
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(params.getProjectSid())) {
@ -367,10 +370,12 @@ public class ProjectDailyService extends ServiceImpl<ProjectDailyMapper, Project
ResultBean rb=new ResultBean().fail();
ProjectDailyQuery params = query;
QueryWrapper<ProjectDaily> qw = new QueryWrapper<>();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
if (params != null) {
if (com.yxt.common.base.utils.StringUtils.isNotBlank(params.getOrderDate())) {
qw.eq("orderDate", params.getOrderDate());
}else{
qw.eq("orderDate",sdf.format(DateUtil.yesterday()));
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(params.getProjectSid())) {
@ -410,29 +415,27 @@ public class ProjectDailyService extends ServiceImpl<ProjectDailyMapper, Project
public ResultBean<Map<String,Object>> getProjectDailyZx(ProjectDailyQuery query) {
ResultBean rb=new ResultBean().fail();
Map<String,Object> m=new HashMap<>();
ProjectDailyQuery params = query;
// ProjectDailyQuery params = query;
QueryWrapper<ProjectDaily> qw = new QueryWrapper<>();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String startDate="";
if(com.yxt.common.base.utils.StringUtils.isBlank(params.getOrderDate())){
if(com.yxt.common.base.utils.StringUtils.isBlank(query.getOrderDate())){
startDate=sdf.format(DateUtil.yesterday());
}else{
startDate=params.getOrderDate();
startDate=query.getOrderDate();
}
String EndDate=sdf.format(DateUtil.offsetDay(DateUtil.parse(startDate),-Integer.parseInt(params.getIntervalTime())+1));
String EndDate=sdf.format(DateUtil.offsetDay(DateUtil.parse(startDate),-Integer.parseInt(query.getIntervalTime())+1));
long i=DateUtil.between(DateUtil.parse(startDate),DateUtil.parse(EndDate), DateUnit.DAY);
if (params != null) {
if (com.yxt.common.base.utils.StringUtils.isNotBlank(startDate)) {
if (com.yxt.common.base.utils.StringUtils.isNotBlank(startDate)) {
qw.le("STR_TO_DATE(orderDate,'%Y-%m-%d')",startDate);
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(EndDate)) {
if (com.yxt.common.base.utils.StringUtils.isNotBlank(EndDate)) {
qw.ge("STR_TO_DATE(orderDate,'%Y-%m-%d')",EndDate);
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(params.getProjectSid())) {
qw.eq("projectSid", params.getProjectSid());
if (com.yxt.common.base.utils.StringUtils.isNotBlank(query.getProjectSid())) {
qw.eq("projectSid", query.getProjectSid());
}
}
List<ProjectDailyVos> projectDailyVos=baseMapper.getProjectDailys(qw);
List<String> a=new ArrayList<>();
List<String> b=new ArrayList<>();

5
yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/riskmessageslog/RiskMessagesLogMapper.java

@ -7,10 +7,13 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.supervise.report.api.riskmessageslog.RiskMessagesLog;
import com.yxt.supervise.report.api.riskmessageslog.RiskMessagesLogVo;
import com.yxt.supervise.report.api.riskmessageslog.RiskMessagesLogVos;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
* @author wangpengfei
* @date 2023/7/27 9:56
@ -27,4 +30,6 @@ public interface RiskMessagesLogMapper extends BaseMapper<RiskMessagesLog> {
RiskMessagesLogVo getMessage();
@Select("select count(*) from risk_messages_log i left join risk_message_user m on m.messageSid=i.sid where m.state='0' and m.openId =#{openId}")
Integer getMessageCount(@Param("openId") String openId);
List<RiskMessagesLogVos> messageNotice(@Param(Constants.WRAPPER) Wrapper<RiskMessagesLog> qw);
}

43
yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/riskmessageslog/RiskMessagesLogMapper.xml

@ -67,4 +67,47 @@
report_sales_day_store
<where> ${ew.sqlSegment} </where>
</select>
<select id="messageNotice" resultType="com.yxt.supervise.report.api.riskmessageslog.RiskMessagesLogVos">
SELECT
log.messageTime,
log.content,
CASE
log.state
WHEN '1' THEN '设备离线'
WHEN '2' THEN '设备离线解除'
WHEN '3' THEN '系统异常'
WHEN '4' THEN '系统异常解除'
END AS type
FROM
risk_messages_log log
LEFT JOIN risk_message_user message ON log.sid =message.messageSid
<where> ${ew.sqlSegment} </where>
UNION
SELECT
log.messageTime,
log.content,
CASE
log.state
WHEN '1' THEN '每日数据上报'
END AS type
FROM
message_push_log log
LEFT JOIN message_openid message ON log.sid = message.messageSid
<where> ${ew.sqlSegment} </where>
UNION
SELECT
log.messageTime,
log.content,
CASE
log.state
WHEN '1' THEN '图片对比异常'
END AS type
FROM
img_messages_log log
LEFT JOIN img_message_user message ON log.sid = message.messageSid
<where> ${ew.sqlSegment} </where>
ORDER BY
messageTime DESC
LIMIT 4
</select>
</mapper>

5
yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/riskmessageslog/RiskMessagesLogRest.java

@ -41,5 +41,8 @@ public class RiskMessagesLogRest {
public ResultBean getMessageBySid(@PathVariable("sid") String sid,@PathVariable("wxCode") String wxCode ){
return RiskMessagesLogService.getMessageBySid(sid,wxCode);
}
@GetMapping("/messageNotice/{userSid}")
public ResultBean messageNotice(@PathVariable("userSid") String userSid){
return RiskMessagesLogService.messageNotice(userSid);
}
}

8
yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/riskmessageslog/RiskMessagesLogService.java

@ -140,4 +140,12 @@ public class RiskMessagesLogService extends MybatisBaseService<RiskMessagesLogMa
PagerVo<RiskMessagesLogVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public ResultBean messageNotice(String userSid){
ResultBean rb=new ResultBean();
SysUser sysUser=systemMapper.getAppletOpenidByUsersid(userSid);
QueryWrapper<RiskMessagesLog> qw = new QueryWrapper<>();
qw.eq("message.openId",sysUser.getOpenId());
// qw.orderByDesc("messageTime");
return rb.success().setData(baseMapper.messageNotice(qw));
}
}

2
yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/sysuser/SysUserMapper.java

@ -183,4 +183,6 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
String fetchByUserNameAndUserPhone(@Param("userName") String userName, @Param("userPhone") String userPhone);
List<SysUserVo> getUserByType(@Param("userType")String userType);
List<SysUserVo> getUserOrgBySid(@Param("sid")String sid);
SysUserVo getUserByUserSid(String sid);
}

8
yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/sysuser/SysUserMapper.xml

@ -294,7 +294,7 @@
and si.personTypeKey != '01'
</select>
<select id="getUserByRoleNoOrgPath" resultType="com.yxt.supervise.system.sysuser.SysUserVo">
select distinct si.name, su.sid, su.staffSid<!--, so.orgSidPath-->
select distinct si.name, su.sid, su.staffSid
from sys_user_role sr
left join sys_user su on sr.userSid = su.sid
left join sys_staffinfo si on si.sid = su.staffSid
@ -396,4 +396,10 @@
WHERE ss.name = #{userName}
AND su.mobile = #{userPhone}
</select>
<select id="getUserByUserSid" resultType="com.yxt.supervise.system.sysuser.SysUserVo">
select su.*,si.name from sys_user su
left join sys_staffinfo si on si.sid = su.staffSid
where su.sid = #{sid}
</select>
</mapper>

9
yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/sysuser/SysUserRest.java

@ -728,6 +728,11 @@ public class SysUserRest implements SysUserFeign {
return sysUserService.getUserByRoleNoOrgPath(userQuery);
}
@GetMapping("getUserByRoleAndProject")
public ResultBean<List<SysUserVo>> getUserByRoleAndProject(@SpringQueryMap UserQuery userQuery) {
return sysUserService.getUserByRoleAndProject(userQuery);
}
@GetMapping("getUserByType")
public ResultBean getUserByType(@RequestParam("userType") String userType) {
return sysUserService.getUserByType(userType);
@ -757,4 +762,8 @@ public class SysUserRest implements SysUserFeign {
public ResultBean<List<SysUser>> getUsersBySid(@RequestBody List<String> list) {
return sysUserService.getUsersBySid(list);
}
@GetMapping("/getUserByUserSid")
ResultBean<SysUserVo> getUserByUserSid(@RequestParam("sid")String sid){
return sysUserService.getUserByUserSid(sid);
}
}

37
yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/sysuser/SysUserService.java

@ -5,7 +5,9 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.supervise.feign.crm.UserProjectVo;
import com.yxt.supervise.feign.crm.userproject.ProjectInformationFeign;
import com.yxt.supervise.feign.crm.userproject.UserProjectFeign;
import com.yxt.supervise.feign.report.WxUserFeign;
import com.yxt.supervise.system.config.DictCommonType;
import com.yxt.supervise.system.sysorganization.SysOrganization;
@ -122,6 +124,8 @@ public class SysUserService extends MybatisBaseService<SysUserMapper, SysUser> {
private WxUserFeign wxUserFeign;
@Autowired
private WxUserService wxUserService;
@Autowired
private UserProjectFeign userProjectFeign;
public PagerVo<SysUser> listPage(PagerQuery<SysUserQuery> pq) {
@ -1570,4 +1574,37 @@ public class SysUserService extends MybatisBaseService<SysUserMapper, SysUser> {
sysUserVoList = baseMapper.getUserByRoleNoOrgPath(query.getRoleSid());
return rb.success().setData(sysUserVoList);
}
public ResultBean<List<SysUserVo>> getUserByRoleAndProject(UserQuery query) {
ResultBean<List<SysUserVo>> rb = ResultBean.fireFail();
List<SysUserVo> sysUserVoList = new ArrayList<>();
if (StringUtils.isBlank(query.getRoleSid())) {
return rb.setMsg("角色sid不能为空");
}
//根据角色sid获取角色的层级
sysUserVoList = baseMapper.getUserByRoleNoOrgPath(query.getRoleSid());
sysUserVoList.removeAll(Collections.singleton(null));
List<String> stringList = new ArrayList<>();
//根据项目sid查询用户
List<UserProjectVo> sidsList = userProjectFeign.getWarehouse(query.getProjectSid()).getData();
if(sidsList != null){
sidsList.removeAll(Collections.singleton(null));
if(!sidsList.isEmpty()){
stringList = sidsList.stream().map(v->v.getUserSid()).collect(Collectors.toList());
}
}
if(!stringList.isEmpty()){
List<String> finalStringList = stringList;
sysUserVoList = sysUserVoList.stream().filter(v-> finalStringList.contains(v.getSid())).collect(Collectors.toList());
}else{
return rb.setMsg("请设置项目相关人员");
}
return rb.success().setData(sysUserVoList);
}
public ResultBean<SysUserVo> getUserByUserSid(String sid) {
ResultBean<SysUserVo> rb = ResultBean.fireFail();
SysUserVo sysUserVo = baseMapper.getUserByUserSid(sid);
return rb.success().setData(sysUserVo);
}
}

3
yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/sysuser/UserQuery.java

@ -12,10 +12,11 @@ import lombok.Data;
@Data
public class UserQuery implements Query {
private static final long serialVersionUID = -3979717077029562761L;
@ApiModelProperty(value = "角色sid必传项")
private String roleSid;
@ApiModelProperty(value = "用户部门sid路径是必传项")
private String orgSidPath;
private String projectSid;
}

5
yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/flowable/BusinessVariables.java

@ -1,5 +1,6 @@
package com.yxt.supervise.enterprisecentre.api.flowable;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@ -60,6 +61,6 @@ public class BusinessVariables {
* 业务参数按需传递
*/
private Map<String, Object> formVariables =new HashMap<>();
/* @ApiModelProperty("机构sid:切换结构使用")
private String orgPath;*/
@ApiModelProperty("项目sid")
private String projectSid;
}

5
yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/flowable/ProcDefEnum.java

@ -7,7 +7,10 @@ public enum ProcDefEnum {
/***************************正式流程id***********************************/
SEALSONAPPLICATION("用章申请", "process_itrg7ohf:5:1340012");
SEALSONAPPLICATION("用章申请", "process_itrg7ohf:5:1340012"),
WAREHOUSINGPLEDGE("入库质押申请","process_2bquol0n:1:1367504"),
;
ProcDefEnum(String proDefName, String proDefId) {
this.proDefName = proDefName;

44
yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/paymentapply/PaymentApply.java

@ -0,0 +1,44 @@
package com.yxt.supervise.enterprisecentre.api.paymentapply;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/21
**/
@Data
public class PaymentApply extends BaseEntity {
private static final long serialVersionUID = 5724305377756638094L;
@ApiModelProperty("创建人名称")
private String createByName;
@ApiModelProperty("项目名称")
private String projectName;
@ApiModelProperty("项目sid")
private String projectSid;
@ApiModelProperty("用款企业")
private String enterpriseName;
@ApiModelProperty("用款企业sid")
private String enterpriseSid;
@ApiModelProperty("用款申请用途")
private String applyUse;
@ApiModelProperty("用款金额")
private BigDecimal money;
@ApiModelProperty("回款凭证")
private String voucherUrl;
@ApiModelProperty("流程id")
private String procDefId;
@ApiModelProperty("实例id")
private String procInstId;
@ApiModelProperty("任务id")
private String taskId;
@ApiModelProperty("流程环节")
private String nodeState;
@ApiModelProperty("环节id")
private String taskDefKey;
}

39
yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/qualityrelease/QualityRelease.java

@ -0,0 +1,39 @@
package com.yxt.supervise.enterprisecentre.api.qualityrelease;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/21
**/
@Data
public class QualityRelease extends BaseEntity {
private static final long serialVersionUID = 1491905607832350029L;
@ApiModelProperty("创建人名称")
private String createByName;
@ApiModelProperty("项目名称")
private String projectName;
@ApiModelProperty("项目sid")
private String projectSid;
@ApiModelProperty("仓库名称")
private String warehouseName;
@ApiModelProperty("仓库sid")
private String warehouseSid;
@ApiModelProperty("货物价值")
private String goodsValue;
@ApiModelProperty("流程id")
private String procDefId;
@ApiModelProperty("实例id")
private String procInstId;
@ApiModelProperty("任务id")
private String taskId;
@ApiModelProperty("流程环节")
private String nodeState;
@ApiModelProperty("环节id")
private String taskDefKey;
}

37
yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/warehousingpledge/WarehousingPledge.java

@ -0,0 +1,37 @@
package com.yxt.supervise.enterprisecentre.api.warehousingpledge;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/21
**/
@Data
public class WarehousingPledge extends BaseEntity {
private static final long serialVersionUID = -4271197867978438659L;
@ApiModelProperty("创建人名称")
private String createByName;
@ApiModelProperty("项目名称")
private String projectName;
@ApiModelProperty("项目sid")
private String projectSid;
@ApiModelProperty("仓库名称")
private String warehouseName;
@ApiModelProperty("仓库sid")
private String warehouseSid;
@ApiModelProperty("货物价值")
private String goodsValue;
@ApiModelProperty("流程id")
private String procDefId;
@ApiModelProperty("实例id")
private String procInstId;
@ApiModelProperty("任务id")
private String taskId;
@ApiModelProperty("流程环节")
private String nodeState;
@ApiModelProperty("环节id")
private String taskDefKey;
}

33
yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/warehousingpledge/WarehousingPledgeDetailsVo.java

@ -0,0 +1,33 @@
package com.yxt.supervise.enterprisecentre.api.warehousingpledge;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/21
**/
@Data
public class WarehousingPledgeDetailsVo implements Vo {
private static final long serialVersionUID = -1952900512756836125L;
private String sid;
private String userSid;
@ApiModelProperty("创建人名称")
private String createByName;
@ApiModelProperty("项目名称")
private String projectName;
@ApiModelProperty("项目sid")
private String projectSid;
@ApiModelProperty("仓库名称")
private String warehouseName;
@ApiModelProperty("仓库sid")
private String warehouseSid;
@ApiModelProperty("货物价值")
private String goodsValue;
@ApiModelProperty("实例id")
private String procInstId;
@ApiModelProperty("任务id")
private String taskId;
}

31
yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/warehousingpledge/WarehousingPledgeDto.java

@ -0,0 +1,31 @@
package com.yxt.supervise.enterprisecentre.api.warehousingpledge;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/21
**/
@Data
public class WarehousingPledgeDto implements Dto {
private static final long serialVersionUID = -7783276640547964225L;
private String sid;
@ApiModelProperty("用户sid")
private String userSid;
@ApiModelProperty("创建人名称")
private String createByName;
@ApiModelProperty("项目名称")
private String projectName;
@ApiModelProperty("项目sid")
private String projectSid;
@ApiModelProperty("仓库名称")
private String warehouseName;
@ApiModelProperty("仓库sid")
private String warehouseSid;
@ApiModelProperty("货物价值")
private String goodsValue;
}

26
yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/warehousingpledge/WarehousingPledgeQuery.java

@ -0,0 +1,26 @@
package com.yxt.supervise.enterprisecentre.api.warehousingpledge;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/21
**/
@Data
public class WarehousingPledgeQuery implements Query {
private static final long serialVersionUID = -8106702755592169951L;
@ApiModelProperty("项目名称")
private String projectName;
@ApiModelProperty("仓库名称")
private String warehouseName;
@ApiModelProperty("创建时间开始")
private String createTimeStart;
@ApiModelProperty("创建时间结束")
private String createTimeEnd;
@ApiModelProperty("用户sid")
private String userSid;
}

35
yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/warehousingpledge/WarehousingPledgeVo.java

@ -0,0 +1,35 @@
package com.yxt.supervise.enterprisecentre.api.warehousingpledge;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/21
**/
@Data
public class WarehousingPledgeVo implements Vo {
private static final long serialVersionUID = -5939570054956972879L;
private String sid;
@ApiModelProperty("流程状态")
private String nodeState;
@ApiModelProperty("申请人")
private String createByName;
@ApiModelProperty("项目名称")
private String projectName;
@ApiModelProperty("仓库名称")
private String warehouseName;
@ApiModelProperty("货物价值")
private String goodsValue;
@ApiModelProperty("创建时间")
private String createTime;
}

33
yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/warehousingpledge/flowable/CompletePledgeDto.java

@ -0,0 +1,33 @@
package com.yxt.supervise.enterprisecentre.api.warehousingpledge.flowable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/21
**/
@Data
public class CompletePledgeDto {
@ApiModelProperty(value = "用户sid")
@NotBlank(message = "参数错误:userSid")
private String userSid;
@ApiModelProperty(value = "节点id")
@NotBlank(message = "参数错误:taskDefKey")
private String taskDefKey;
@ApiModelProperty(value = "任务id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
@ApiModelProperty(value = "流程id")
@NotBlank(message = "参数错误:instanceId")
private String instanceId;
@ApiModelProperty(value = "意见")
private String comment;
@ApiModelProperty(value = "业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
}

43
yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/warehousingpledge/flowable/PledgeTaskQuery.java

@ -0,0 +1,43 @@
package com.yxt.supervise.enterprisecentre.api.warehousingpledge.flowable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/21
**/
@Data
public class PledgeTaskQuery {
/**
* 终止驳回撤回
*/
@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")
private String instanceId;
}

20
yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/api/warehousingpledge/flowable/SubmitPledgeDto.java

@ -0,0 +1,20 @@
package com.yxt.supervise.enterprisecentre.api.warehousingpledge.flowable;
import com.yxt.supervise.enterprisecentre.api.warehousingpledge.WarehousingPledgeDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/21
**/
@Data
public class SubmitPledgeDto extends WarehousingPledgeDto {
private static final long serialVersionUID = -2202726987908396889L;
@ApiModelProperty("流程实例id")
private String instanceId;
@ApiModelProperty("任务id")
private String taskId;
}

5
yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/biz/feign/SysUserFeign.java

@ -2,6 +2,7 @@ package com.yxt.supervise.enterprisecentre.biz.feign;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.yxt.common.core.result.ResultBean;
import com.yxt.supervise.enterprisecentre.api.sealrecord.SysUserVo;
import com.yxt.supervise.enterprisecentre.biz.feign.fallback.SysUserFeignFallback;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -40,4 +41,8 @@ public interface SysUserFeign {
@GetMapping("/getUsersByRoleSid/{roleSid}")
ResultBean< List<Map<String, Object>>> getUsersByRoleSid(@PathVariable("roleSid") String roleSid);
@ApiOperation("根据用户sid查询用户部分信息")
@GetMapping("/getUserByUserSid")
ResultBean<SysUserVo> getUserByUserSid(@RequestParam("sid")String sid);
}

76
yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/biz/sealrecord/SealRecordService.java

@ -139,7 +139,7 @@ public class SealRecordService extends MybatisBaseService<SealRecordMapper, Seal
qw.orderByDesc("id");
return qw;
}
public PagerVo<SealRecordVo> listPageVo(PagerQuery<SealRecordQuery> pq) {
SealRecordQuery query = pq.getParams();
QueryWrapper<SealRecord> qw = createQueryWrapper(query);
@ -148,7 +148,7 @@ public class SealRecordService extends MybatisBaseService<SealRecordMapper, Seal
PagerVo<SealRecordVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public ResultBean saveOrUpdateDto(SealRecordDto dto){
ResultBean rb = ResultBean.fireFail();
String dtoSid = dto.getSid();
@ -190,11 +190,11 @@ public class SealRecordService extends MybatisBaseService<SealRecordMapper, Seal
if (StringUtils.isBlank(dtoSid)) {
SealRecord sealRecord = this.insertByDto(dto);
return rb.success().setData(sealRecord.getSid());
}
}
this.updateByDto(dto);
return rb.success().setData(dto.getSid());
}
public SealRecord insertByDto(SealRecordDto dto){
SealRecord entity = new SealRecord();
StringBuilder files=new StringBuilder();
@ -208,7 +208,7 @@ public class SealRecordService extends MybatisBaseService<SealRecordMapper, Seal
baseMapper.insert(entity);
return entity;
}
public void updateByDto(SealRecordDto dto){
String dtoSid = dto.getSid();
if (StringUtils.isBlank(dtoSid)) {
@ -225,7 +225,7 @@ public class SealRecordService extends MybatisBaseService<SealRecordMapper, Seal
entity.setFile_path(paths);
baseMapper.updateById(entity);
}
public SealRecordDetailsVo fetchDetailsVoBySid(String sid){
SealRecord entity = fetchBySid(sid);
if(entity==null){
@ -249,7 +249,7 @@ public class SealRecordService extends MybatisBaseService<SealRecordMapper, Seal
return vo;
}
public ResultBean submit(SealRecordDto dto) {
public ResultBean submitOld(SealRecordDto dto) {
ResultBean resultBean = this.saveOrUpdateDto(dto);
boolean success = resultBean.getSuccess();
if(!success){
@ -264,8 +264,7 @@ public class SealRecordService extends MybatisBaseService<SealRecordMapper, Seal
BeanUtil.copyProperties(dto, bv);
bv.setOrgSidPath(dto.getCreaterOrgPath()==null?"":dto.getCreaterOrgPath());
bv.setBusinessSid(businessSid);
bv.setUserSid(dto.getUser_sid());//"0331e5b5-9d60-11ed-87ce-525401028fe8");
//variables.put("businessSid", businessSid);
bv.setUserSid(dto.getUser_sid());
String project_sid = dto.getProject_sid();
if(StringUtils.isBlank(project_sid)){
return resultBean.setMsg("project_sid不能为空!");
@ -338,6 +337,41 @@ public class SealRecordService extends MybatisBaseService<SealRecordMapper, Seal
return resultBean.success();
}
public ResultBean submit(SealRecordDto dto) {
ResultBean resultBean = this.saveOrUpdateDto(dto);
boolean success = resultBean.getSuccess();
if(!success){
return resultBean;
}
String user_sid = dto.getUser_sid();
// String user_sid = "4ee0138e-7b10-4ca1-a9a3-71ff94066a73";
String project_sid = dto.getProject_sid();
dto.setUser_sid(user_sid);
if(StringUtils.isBlank(user_sid)){
return resultBean.setMsg("用户sid不能为空!");
}
if(StringUtils.isBlank(project_sid)){
return resultBean.setMsg("项目不能为空!");
}
//创建BusinessVariables实体对象
BusinessVariables bv = new BusinessVariables();
String businessSid= (String) resultBean.getData();
Map<String, Object> variables = new HashMap<>();
variables.put("projectName", dto.getProject_name());
bv.setProjectSid(project_sid);
bv.setBusinessSid(businessSid);
bv.setUserSid(dto.getUser_sid());
bv.setFormVariables(variables);
bv.setModelId(ProcDefEnum.SEALSONAPPLICATION.getProDefId());
ResultBean<UpdateFlowFieldVo> resultBean1 = flowableFeign.startProcess(bv);
if(!resultBean1.getSuccess()){
return resultBean1;
}
UpdateFlowFieldVo uff = resultBean1.getData();
updateFlowFiled(uff);
return resultBean.success();
}
private int updateFlowFiled(UpdateFlowFieldVo updateFlowFieldVo) {
UpdateWrapper<SealRecord> uw = new UpdateWrapper<>();
uw.eq("sid", updateFlowFieldVo.getSid());
@ -360,7 +394,7 @@ public class SealRecordService extends MybatisBaseService<SealRecordMapper, Seal
return baseMapper.update(null, uw);
}
public ResultBean complete(BusinessVariables bv) {
public ResultBean completeOld(BusinessVariables bv) {
ResultBean rb = ResultBean.fireFail();
String businessSid = bv.getBusinessSid();
SealRecord sealRecord = this.fetchBySid(businessSid);
@ -447,6 +481,28 @@ public class SealRecordService extends MybatisBaseService<SealRecordMapper, Seal
}
}
public ResultBean complete(BusinessVariables bv) {
ResultBean rb = ResultBean.fireFail();
String businessSid = bv.getBusinessSid();
SealRecord sealRecord = this.fetchBySid(businessSid);
String project_sid = sealRecord.getProject_sid();
bv.setModelId(sealRecord.getProcDefId());
bv.setProjectSid(sealRecord.getProject_sid());
if(StringUtils.isBlank(project_sid)){
return rb.setMsg("project_sid不能为空!");
}
if (bv.getTaskId().equals(sealRecord.getTaskId())) {
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.handleProsess(bv);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
updateFlowFiled( resultBean.getData());
return rb.success().setData(resultBean.getData());
} else {
return rb.setMsg("操作失败!提交的数据不一致");
}
}
public ResultBean revokeProcess(String userSid, String businessSid, FlowTaskVo flowTaskVo) {
FlowTaskVo fl = new FlowTaskVo();
BeanUtil.copyProperties(flowTaskVo, fl);

37
yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/biz/warehousingpledge/WarehousingPledgeMapper.java

@ -0,0 +1,37 @@
package com.yxt.supervise.enterprisecentre.biz.warehousingpledge;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.supervise.enterprisecentre.api.warehousingpledge.WarehousingPledge;
import com.yxt.supervise.enterprisecentre.api.warehousingpledge.WarehousingPledgeDetailsVo;
import com.yxt.supervise.enterprisecentre.api.warehousingpledge.WarehousingPledgeVo;
import io.swagger.annotations.ApiOperation;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.Map;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/21
**/
@Mapper
public interface WarehousingPledgeMapper extends BaseMapper<WarehousingPledge> {
/**
* 分页列表
*
* @param page
* @param qw
* @return
*/
IPage<WarehousingPledgeVo> selectPageVo(IPage<WarehousingPledge> page, @Param(Constants.WRAPPER) QueryWrapper<WarehousingPledge> qw);
WarehousingPledgeDetailsVo details(String sid);
int selectBySid(String join);
int updateFlowFiled(Map<String, Object> map);
}

56
yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/biz/warehousingpledge/WarehousingPledgeMapper.xml

@ -0,0 +1,56 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.supervise.enterprisecentre.biz.warehousingpledge.WarehousingPledgeMapper">
<select id="selectPageVo" resultType="com.yxt.supervise.enterprisecentre.api.warehousingpledge.WarehousingPledgeVo">
select sid,
warehouseName,
projectName,
createByName,
DATE_FORMAT(createTime, '%Y-%m-%d') as createTime,
if(length(nodeState) > 0, nodeState, '待提交') as nodeState
from warehousing_pledge
<where>
${ew.sqlSegment}
</where>
order by id desc
</select>
<select id="details"
resultType="com.yxt.supervise.enterprisecentre.api.warehousingpledge.WarehousingPledgeDetailsVo">
select sid,
createBySid as userSid,
projectName,
projectSid,
warehouseName,
warehouseSid,
procInstId,
taskId,
createByName,
goodsValue
from warehousing_pledge
where sid = #{sid}
</select>
<select id="selectBySid" resultType="int">
select count(*)
from warehousing_pledge
where length(nodeState) > 0
and find_in_set(sid, #{list})
</select>
<update id="updateFlowFiled">
UPDATE warehousing_pledge
SET nodeState=#{nodeState}
, taskDefKey=#{taskDefKey}
<if test="procDefId != null and procDefId != ''">
, procDefId=#{procDefId}
</if>
<if test="procInsId != null and procInsId != ''">
, procInstId=#{procInsId}
</if>
<if test="taskId != null and taskId != ''">
, taskId=#{taskId}
</if>
WHERE sid = #{sid}
</update>
</mapper>

106
yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/biz/warehousingpledge/WarehousingPledgeRest.java

@ -0,0 +1,106 @@
package com.yxt.supervise.enterprisecentre.biz.warehousingpledge;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.supervise.enterprisecentre.api.flowable.BusinessVariables;
import com.yxt.supervise.enterprisecentre.api.flowable.GetNodeQuery;
import com.yxt.supervise.enterprisecentre.api.flowable.GetNodeVo;
import com.yxt.supervise.enterprisecentre.api.warehousingpledge.WarehousingPledgeDetailsVo;
import com.yxt.supervise.enterprisecentre.api.warehousingpledge.WarehousingPledgeDto;
import com.yxt.supervise.enterprisecentre.api.warehousingpledge.WarehousingPledgeQuery;
import com.yxt.supervise.enterprisecentre.api.warehousingpledge.WarehousingPledgeVo;
import com.yxt.supervise.enterprisecentre.api.warehousingpledge.flowable.CompletePledgeDto;
import com.yxt.supervise.enterprisecentre.api.warehousingpledge.flowable.PledgeTaskQuery;
import com.yxt.supervise.enterprisecentre.api.warehousingpledge.flowable.SubmitPledgeDto;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/21
**/
@RestController
@RequestMapping("v1/WarehousingPledge")
public class WarehousingPledgeRest {
@Autowired
private WarehousingPledgeService warehousingPledgeService;
@ApiOperation("新增或修改")
@PostMapping("/saveorUpdate")
ResultBean<String> saveorUpdate(@RequestBody WarehousingPledgeDto dto) {
return warehousingPledgeService.saveorUpdatePledge(dto);
}
@ApiOperation("分页列表")
@PostMapping("/listPage")
ResultBean<PagerVo<WarehousingPledgeVo>> listPage(PagerQuery<WarehousingPledgeQuery> pagerQuery) {
ResultBean rb = ResultBean.fireFail();
PagerVo<WarehousingPledgeVo> pv = warehousingPledgeService.listPageVo(pagerQuery);
return rb.success().setData(pv);
}
@ApiOperation("详情")
@GetMapping("/details")
ResultBean<WarehousingPledgeDetailsVo> details(@RequestParam("sid") String sid) {
return warehousingPledgeService.details(sid);
}
@ApiOperation("删除")
@DeleteMapping("/delete")
ResultBean delete(@RequestBody String[] sids) {
return warehousingPledgeService.delete(sids);
}
@ApiOperation("提交")
@PostMapping("/submit")
ResultBean submit(@RequestBody SubmitPledgeDto dto) {
return warehousingPledgeService.submit(dto);
}
@ApiOperation("办理")
@PostMapping("/complete")
ResultBean complete(@RequestBody CompletePledgeDto dto) {
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(dto, bv);
return warehousingPledgeService.complete(bv);
}
@ApiOperation("获取上一环节")
@GetMapping(value = "/getPreviousNodesForReject")
ResultBean<List<GetNodeVo>> getPreviousNodesForReject(@SpringQueryMap GetNodeQuery query) {
return warehousingPledgeService.getPreviousNodesForReject(query);
}
@ApiOperation("获取下一环节")
@GetMapping(value = "/getNextNodesForSubmit")
ResultBean<List<GetNodeVo>> getNextNodesForSubmit(@SpringQueryMap GetNodeQuery query) {
return warehousingPledgeService.getNextNodesForSubmit(query);
}
@ApiOperation("驳回")
@PostMapping(value = "/taskReject")
public ResultBean taskReject(PledgeTaskQuery query) {
return warehousingPledgeService.taskReject(query);
}
@ApiOperation("撤回")
@PostMapping(value = "/revokeProcess")
public ResultBean revokeProcess(PledgeTaskQuery query) {
return warehousingPledgeService.revokeProcess(query);
}
@ApiOperation("终止")
@PostMapping(value = "/breakProcess")
public ResultBean breakProcess(PledgeTaskQuery query) {
return warehousingPledgeService.breakProcess(query);
}
}

359
yxt_supervise/yxt-supervise-enterprisecentre/yxt-supervise-enterprisecentre-biz/src/main/java/com/yxt/supervise/enterprisecentre/biz/warehousingpledge/WarehousingPledgeService.java

@ -0,0 +1,359 @@
package com.yxt.supervise.enterprisecentre.biz.warehousingpledge;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.supervise.enterprisecentre.api.flowable.*;
import com.yxt.supervise.enterprisecentre.api.sealrecord.SysUserVo;
import com.yxt.supervise.enterprisecentre.api.warehousingpledge.*;
import com.yxt.supervise.enterprisecentre.api.warehousingpledge.flowable.PledgeTaskQuery;
import com.yxt.supervise.enterprisecentre.api.warehousingpledge.flowable.SubmitPledgeDto;
import com.yxt.supervise.enterprisecentre.biz.feign.FlowTaskFeign;
import com.yxt.supervise.enterprisecentre.biz.feign.FlowableFeign;
import com.yxt.supervise.enterprisecentre.biz.feign.SysUserFeign;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.stream.Collectors;
/**
* @description:
* @author: dimengzhe
* @date: 2023/11/21
**/
@Service
public class WarehousingPledgeService extends MybatisBaseService<WarehousingPledgeMapper, WarehousingPledge> {
@Autowired
private SysUserFeign sysUserFeign;
@Autowired
private FlowableFeign flowableFeign;
@Autowired
private FlowTaskFeign flowTaskFeign;
/**
* 新增修改
*
* @param dto
* @return
*/
public ResultBean<String> saveorUpdatePledge(WarehousingPledgeDto dto) {
ResultBean<String> rb = ResultBean.fireFail();
String sid = dto.getSid();
if (StringUtils.isBlank(sid)) {//新增
WarehousingPledge warehousingPledge = new WarehousingPledge();
BeanUtil.copyProperties(dto, warehousingPledge, "sid");
String userSid = dto.getUserSid();
warehousingPledge.setCreateBySid(userSid);
//根据userSid查询申请人的名称
ResultBean<SysUserVo> resultBean = sysUserFeign.getUserByUserSid(userSid);
if (resultBean.getData() != null) {
SysUserVo sysUserVo = resultBean.getData();
String name = sysUserVo.getName();
warehousingPledge.setCreateByName(name);
}
baseMapper.insert(warehousingPledge);
sid = warehousingPledge.getSid();
} else {//修改
WarehousingPledge warehousingPledge = fetchBySid(sid);
if (warehousingPledge == null) {
return rb.setMsg("该入库质押申请不存在");
}
BeanUtil.copyProperties(dto, warehousingPledge, "sid");
baseMapper.updateById(warehousingPledge);
}
return rb.success().setData(sid);
}
/**
* 分页列表
*
* @param pagerQuery
* @return
*/
public PagerVo<WarehousingPledgeVo> listPageVo(PagerQuery<WarehousingPledgeQuery> pagerQuery) {
WarehousingPledgeQuery query = pagerQuery.getParams();
QueryWrapper<WarehousingPledge> qw = new QueryWrapper<>();
if (query != null) {
if (StringUtils.isNotBlank(query.getUserSid())) {
qw.eq("createBySid", query.getUserSid());
}
//仓库名称
if (StringUtils.isNotBlank(query.getWarehouseName())) {
qw.like("warehouseName", query.getWarehouseName());
}
//项目名称
if (StringUtils.isNotBlank(query.getProjectName())) {
qw.like("projectName", query.getProjectName());
}
//创建时间开始、创建时间结束
qw.apply(StringUtils.isNotBlank(query.getCreateTimeStart()), "date_format (createTime,'%Y-%m-%d') >= date_format('" + query.getCreateTimeStart() + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(query.getCreateTimeEnd()), "date_format (createTime,'%Y-%m-%d') <= date_format('" + query.getCreateTimeEnd() + "','%Y-%m-%d')"
);
}
IPage<WarehousingPledge> page = PagerUtil.queryToPage(pagerQuery);
IPage<WarehousingPledgeVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<WarehousingPledgeVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public ResultBean<WarehousingPledgeDetailsVo> details(String sid) {
ResultBean<WarehousingPledgeDetailsVo> rb = ResultBean.fireFail();
WarehousingPledge warehousingPledge = fetchBySid(sid);
if (warehousingPledge == null) {
return rb.setMsg("该入库质押申请不存在");
}
WarehousingPledgeDetailsVo warehousingPledgeDetailsVo = baseMapper.details(sid);
return rb.success().setData(warehousingPledgeDetailsVo);
}
public ResultBean delete(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();
}
public ResultBean submit(SubmitPledgeDto dto) {
ResultBean rb = ResultBean.fireFail();
WarehousingPledge warehousingPledge = fetchBySid(dto.getSid());
int r = submitBusinessData(dto, warehousingPledge);
if (r == 3) {
return rb.setMsg("该申请不存在");
}
if (r == 0) {
return rb.setMsg("操作失败!提交的数据不一致");
}
ResultBean<String> resultBean = saveorUpdatePledge(dto);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
String businessSid = resultBean.getData();
//创建BusinessVariables实体对象
BusinessVariables bv = new BusinessVariables();
//业务sid
bv.setBusinessSid(businessSid);
//用户sid
bv.setUserSid(dto.getUserSid());
bv.setProjectSid(dto.getProjectSid());
if (r == 1) {
bv.setModelId(ProcDefEnum.WAREHOUSINGPLEDGE.getProDefId());
ResultBean<UpdateFlowFieldVo> voResultBean = flowableFeign.startProcess(bv);
if (!voResultBean.getSuccess()) {
return rb.setMsg(voResultBean.getMsg());
}
UpdateFlowFieldVo ufVo = voResultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(ufVo));
return voResultBean;
}
if (r == 2) {
warehousingPledge = fetchBySid(businessSid);
// ToDo:驳回到发起人后再次提交
if (StringUtils.isBlank(dto.getInstanceId())) {
return rb.setMsg("参数错误:procInstId");
}
bv.setTaskId(warehousingPledge.getTaskId());
bv.setTaskDefKey(warehousingPledge.getTaskDefKey());
bv.setComment("重新提交");
bv.setInstanceId(dto.getInstanceId());
return complete(bv);
}
return rb;
}
public ResultBean complete(BusinessVariables bv) {
ResultBean rb = ResultBean.fireFail();
String businessSid = bv.getBusinessSid();
WarehousingPledge warehousingPledge = fetchBySid(businessSid);
if (warehousingPledge == null) {
return rb.setMsg("该入库质押申请不存在");
}
Map<String, Object> variables = new HashMap<>();
bv.setModelId(warehousingPledge.getProcDefId());
bv.setProjectSid(warehousingPledge.getProjectSid());
if (bv.getTaskId().equals(warehousingPledge.getTaskId())) {
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.handleProsess(bv);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
UpdateFlowFieldVo ufVo = resultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
return rb.success().setData(resultBean.getData());
} else {
return rb.setMsg("操作失败!提交的数据不一致");
}
}
/**
* 更新流程相关的状态
*
* @param map
* @return
*/
private int updateFlowFiled(Map<String, Object> map) {
return baseMapper.updateFlowFiled(map);
}
/**
* 判断提交的流程是否被允许
*
* @param dto
* @return
*/
private synchronized int submitBusinessData(SubmitPledgeDto dto, WarehousingPledge warehousingPledge) {
int r = 0;
if (StringUtils.isBlank(dto.getSid())) {
r = 1;
} else {
if (warehousingPledge != null) {
String businessTaskId = warehousingPledge.getTaskId();
if (StringUtils.isBlank(businessTaskId) && StringUtils.isBlank(dto.getTaskId())) {
//新提交
r = 1;
} else if (StringUtils.isNotBlank(businessTaskId) && businessTaskId.equals(dto.getTaskId())) {
//二次提交//只有数据一致的时候才能进行下一步
r = 2;
}
} else {
r = 3;
}
}
return r;
}
public ResultBean<List<GetNodeVo>> getPreviousNodesForReject(GetNodeQuery query) {
ResultBean<List<GetNodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
WarehousingPledge warehousingPledge = fetchBySid(query.getBusinessSid());
bv.setModelId(warehousingPledge.getProcDefId());
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
List<GetNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), GetNodeVo.class)).collect(Collectors.toList());
return rb.success().setData(voList);
}
public ResultBean<List<GetNodeVo>> getNextNodesForSubmit(GetNodeQuery query) {
ResultBean<List<GetNodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
WarehousingPledge warehousingPledge = fetchBySid(query.getBusinessSid());
bv.setModelId(warehousingPledge.getProcDefId());
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
List<GetNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), GetNodeVo.class)).collect(Collectors.toList());
return rb.success().setData(voList);
}
public ResultBean taskReject(PledgeTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
String businessSid = query.getBusinessSid();
WarehousingPledge warehousingPledge = fetchBySid(businessSid);
if (warehousingPledge == null) {
return rb.setMsg("该入库质押申请不存在");
}
String businessTaskId = warehousingPledge.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (businessTaskId.equals(query.getTaskId())) {
if (StringUtils.isBlank(query.getComment())) {
return rb.setMsg("请填写意见");
}
if (StringUtils.isBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
Map<String, Object> variables = new HashMap<>();
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.taskReject(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
UpdateFlowFieldVo ufVo = resultBean.getData();
Map<String, Object> map = BeanUtil.beanToMap(ufVo);
//更新业务中的流程相关的参数
updateFlowFiled(map);
return rb.success();
}
}
return rb.setMsg("操作失败!提交的数据不一致!");
}
public ResultBean revokeProcess(PledgeTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
if (StringUtils.isNotBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
WarehousingPledge warehousingPledge = fetchBySid(query.getBusinessSid());
String businessTaskId = warehousingPledge.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (businessTaskId.equals(query.getTaskId())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.revokeProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
return rb.success().setData(resultBean.getData());
}
}
return rb.setMsg("操作失败,提交的数据不一致!");
}
public ResultBean breakProcess(PledgeTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
if (StringUtils.isBlank(query.getInstanceId())) {
return rb.setMsg("参数错误:instanceId");
}
if (StringUtils.isBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
if (StringUtils.isBlank(query.getComment())) {
return rb.setMsg("请填写意见");
}
WarehousingPledge warehousingPledge = fetchBySid(query.getBusinessSid());
String businessTaskId = warehousingPledge.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (query.getUserSid().equals(warehousingPledge.getCreateBySid())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.breakProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
Map<String, Object> map = BeanUtil.beanToMap(resultBean.getData());
updateFlowFiled(map);
return rb.success().setData(resultBean.getData());
} else {
if (businessTaskId.equals(query.getTaskId())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.breakProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
Map<String, Object> map = BeanUtil.beanToMap(resultBean.getData());
updateFlowFiled(map);
return rb.success().setData(resultBean.getData());
}
}
}
return rb.setMsg("操作失败!提交的数据不一致!");
}
}
Loading…
Cancel
Save