Browse Source

车辆外采流程办理

master
yxt_djz 3 years ago
parent
commit
1517079245
  1. 12
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseoutsourcingapplication/BaseOutsourcingApplicationFeign.java
  2. 4
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseoutsourcingapplication/BaseOutsourcingApplicationFeignFallback.java
  3. 8
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseoutsourcingapplication/BaseOutsourcingApplicationRest.java
  4. 74
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseoutsourcingapplication/BaseOutsourcingApplicationService.java
  5. 10
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableRest.java
  6. 25
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java
  7. 4
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuser/SysUserFeign.java
  8. 5
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuser/SysUserFeignFallback.java
  9. 2
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserMapper.java
  10. 9
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserMapper.xml
  11. 7
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserRest.java
  12. 6
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserService.java
  13. 4
      anrui-scm/anrui-scm-ui/src/api/baseoutsourcingapplication/baseoutsourcingapplication.js
  14. 3
      anrui-scm/anrui-scm-ui/src/views/baseoutsourcingapplication/workflow/baseoutsourcingapplicationInfo.vue
  15. 55
      anrui-system-ui/src/views/flow/todoList.vue

12
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseoutsourcingapplication/BaseOutsourcingApplicationFeign.java

@ -128,20 +128,16 @@ public interface BaseOutsourcingApplicationFeign {
ResultBean getPreviousNodesForReject(@ApiParam(value = "变量集合,json对象") @RequestBody GetNextNodeDto gnnd);
@ApiOperation(value = "撤回流程")
@PostMapping(value = "/revokeProcess/{userSid}/{businessSid}")
public ResultBean revokeProcess(
@ApiParam(value = "用户sid") @PathVariable(value = "userSid")String userSid,
@ApiParam(value = "业务sid") @PathVariable(value = "businessSid")String businessSid,
@ApiParam(value = "工作流任务相关--请求参数") @RequestBody FlowTaskVo flowTaskVo) ;
@PostMapping(value = "/revokeProcess")
public ResultBean revokeProcess( @ApiParam(value = "工作流任务相关--请求参数") @RequestBody FlowTaskVo flowTaskVo) ;
@ApiOperation(value = "驳回任务")
@PostMapping(value = "/reject")
public ResultBean taskReject( @ApiParam(value = "工作流任务相关--请求参数")@RequestBody FlowTaskVo flowTaskVo);
@ApiOperation(value = "终止任务")
@PostMapping(value = "/breakProcess/{businessSid}")
public ResultBean breakProcess(@ApiParam(value = "业务sid") @PathVariable(value = "businessSid")String businessSid,
@RequestBody FlowTaskVo flowTaskVo);
@PostMapping(value = "/breakProcess")
public ResultBean breakProcess(@RequestBody FlowTaskVo flowTaskVo);
@ApiOperation(value = "流程历史流转记录" )
@GetMapping(value = "/task/flowRecord/{procInsId}/{deployId}")

4
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseoutsourcingapplication/BaseOutsourcingApplicationFeignFallback.java

@ -108,7 +108,7 @@ public class BaseOutsourcingApplicationFeignFallback implements BaseOutsourcingA
}
@Override
public ResultBean revokeProcess(String userSid, String businessSid, FlowTaskVo flowTaskVo) {
public ResultBean revokeProcess(FlowTaskVo flowTaskVo) {
return null;
}
@ -118,7 +118,7 @@ public class BaseOutsourcingApplicationFeignFallback implements BaseOutsourcingA
}
@Override
public ResultBean breakProcess(String businessSid, FlowTaskVo flowTaskVo) {
public ResultBean breakProcess( FlowTaskVo flowTaskVo) {
return null;
}

8
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseoutsourcingapplication/BaseOutsourcingApplicationRest.java

@ -144,8 +144,8 @@ public class BaseOutsourcingApplicationRest implements BaseOutsourcingApplicatio
}
@Override
public ResultBean revokeProcess(String userSid, String businessSid, FlowTaskVo flowTaskVo) {
return baseOutsourcingApplicationService.revokeProcess(userSid, businessSid, flowTaskVo);
public ResultBean revokeProcess( FlowTaskVo flowTaskVo) {
return baseOutsourcingApplicationService.revokeProcess(flowTaskVo);
}
@Override
@ -154,8 +154,8 @@ public class BaseOutsourcingApplicationRest implements BaseOutsourcingApplicatio
}
@Override
public ResultBean breakProcess(String businessSid, FlowTaskVo flowTaskVo) {
return baseOutsourcingApplicationService.breakProcess(businessSid, flowTaskVo);
public ResultBean breakProcess(FlowTaskVo flowTaskVo) {
return baseOutsourcingApplicationService.breakProcess(flowTaskVo);
}
@Override

74
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseoutsourcingapplication/BaseOutsourcingApplicationService.java

@ -437,60 +437,72 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOu
/**
* 撤回
*
* @param userSid
* @param businessSid
* @param flowTaskVo
* @return
*/
public ResultBean revokeProcess(String userSid, String businessSid, FlowTaskVo flowTaskVo) {
public ResultBean revokeProcess( FlowTaskVo flowTaskVo) {
BaseOutsourcingApplicationDto booad = baseMapper.getBySid(flowTaskVo.getBusinessSid());
String businessTaskid = booad.getTaskId();
com.yxt.anrui.flowable.api.flowtask.FlowTaskVo fl = new com.yxt.anrui.flowable.api.flowtask.FlowTaskVo();
BeanUtil.copyProperties(flowTaskVo, fl);
fl.setBusinessSid(businessSid);
fl.setUserSid(userSid);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.revokeProcess(fl);
Map<String, Object> stringObjectMap = BeanUtil.beanToMap(resultBean.getData());
updateFlowFiled(stringObjectMap);
return resultBean;
if (businessTaskid.equals(flowTaskVo.getTaskId())) { //只有数据一致的时候才能进行下一步
BeanUtil.copyProperties(flowTaskVo, fl);
fl.setBusinessSid(flowTaskVo.getBusinessSid());
fl.setUserSid(flowTaskVo.getUserSid());
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.revokeProcess(fl);
Map<String, Object> stringObjectMap = BeanUtil.beanToMap(resultBean.getData());
updateFlowFiled(stringObjectMap);
return resultBean;
}else{
return ResultBean.fireFail().setMsg("操作失败,提交的数据不一致!");
}
}
/**
* 驳回
*
* @param businessSid
* @param flowTaskVo
* @return
*/
public ResultBean taskReject(FlowTaskVo flowTaskVo) {
com.yxt.anrui.flowable.api.flowtask.FlowTaskVo fl = new com.yxt.anrui.flowable.api.flowtask.FlowTaskVo();
BeanUtil.copyProperties(flowTaskVo, fl);
BaseOutsourcingApplicationDto boad = baseMapper.getBySid(flowTaskVo.getBusinessSid());
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.taskReject(fl);
UpdateFlowFieldVo data = resultBean.getData();
Map<String, Object> stringObjectMap = BeanUtil.beanToMap(resultBean.getData());
stringObjectMap.put("taskDefKey", data.getTaskDefKey());
stringObjectMap.put("procInstSid", boad.getProcInstSid());
stringObjectMap.put("procDefId", boad.getProcDefId());
stringObjectMap.put("nodeState", data.getNodeState());
//stringObjectMap.put("taskId",resultBean.getData().getTaskId());
updateFlowFiled(stringObjectMap);
return resultBean;
BaseOutsourcingApplicationDto booad = baseMapper.getBySid(flowTaskVo.getBusinessSid());
String businessTaskid = booad.getTaskId();
if (businessTaskid.equals(flowTaskVo.getTaskId())) { //只有数据一致的时候才能进行下一步
BeanUtil.copyProperties(flowTaskVo, fl);
BaseOutsourcingApplicationDto boad = baseMapper.getBySid(flowTaskVo.getBusinessSid());
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.taskReject(fl);
UpdateFlowFieldVo data = resultBean.getData();
Map<String, Object> stringObjectMap = BeanUtil.beanToMap(resultBean.getData());
stringObjectMap.put("taskDefKey", data.getTaskDefKey());
stringObjectMap.put("procInstSid", boad.getProcInstSid());
stringObjectMap.put("procDefId", boad.getProcDefId());
stringObjectMap.put("nodeState", data.getNodeState());
updateFlowFiled(stringObjectMap);
return resultBean;
}else{
return ResultBean.fireFail().setMsg("操作失败,提交的数据不一致!");
}
}
/**
* 终止流程
*
* @param businessSid
* @param flowTaskVo
* @return
*/
public ResultBean breakProcess(String businessSid, FlowTaskVo flowTaskVo) {
public ResultBean breakProcess( FlowTaskVo flowTaskVo) {
com.yxt.anrui.flowable.api.flowtask.FlowTaskVo fl = new com.yxt.anrui.flowable.api.flowtask.FlowTaskVo();
BeanUtil.copyProperties(flowTaskVo, fl);
fl.setBusinessSid(businessSid);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.breakProcess(fl);
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
return resultBean;
BaseOutsourcingApplicationDto booad = baseMapper.getBySid(flowTaskVo.getBusinessSid());
String businessTaskid = booad.getTaskId();
if (businessTaskid.equals(flowTaskVo.getTaskId())) { //只有数据一致的时候才能进行下一步
BeanUtil.copyProperties(flowTaskVo, fl);
fl.setBusinessSid(flowTaskVo.getBusinessSid());
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.breakProcess(fl);
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
return resultBean;
}else{
return ResultBean.fireFail().setMsg("操作失败,提交的数据不一致!");
}
}
/**

10
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableRest.java

@ -282,7 +282,7 @@ public class FlowableRest implements FlowableFeign {
vo.setNodeState(nodeState);
vo.setTaskDefKey(taskDefKey);
vo.setNextNodeUserSids(nextUserSid);
return rb.setData(vo).success();
return rb.success().setData(vo);
}
@Override
@ -297,6 +297,7 @@ public class FlowableRest implements FlowableFeign {
String taskDefKey = resultBean.getData().get(0).getTask_def_key_();
String incomingSourceRef = resultBean.getData().get(0).getIncomingSourceRef();
vo.setSid(fl.getBusinessSid());
vo.setTaskId(resultBean.getData().get(0).getId_());
if (incomingSourceRef.contains("start")) {
vo.setNodeState(SysFormLinkFlowStateEnum.UNCOMMITTED.getState());
vo.setTaskDefKey(taskDefKey);
@ -304,7 +305,7 @@ public class FlowableRest implements FlowableFeign {
vo.setNodeState( nodeState);
vo.setTaskDefKey( taskDefKey);
}
return rb.setData(vo).setSuccess(true);
return rb.success().setData(vo);
}
@Override
@ -327,8 +328,7 @@ public class FlowableRest implements FlowableFeign {
vo.setNodeState( SysFormLinkFlowStateEnum.REJECT.getCode());
}*/
ResultBean resultBean1 = ResultBean.fireSuccess();
resultBean1.setData(vo).setSuccess(true);
return resultBean1;
return resultBean1.success().setData(vo);
}
@Override
@ -342,6 +342,6 @@ public class FlowableRest implements FlowableFeign {
vo.setSid(fl.getBusinessSid());
vo.setNodeState( String.valueOf(resultBean.getData()));
vo.setTaskDefKey( "Event_end");
return rb.setData(vo).setSuccess(true);
return rb.success().setData(vo);
}
}

25
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java

@ -250,11 +250,22 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
flowTask.setCreateTime(histIns.getStartTime());
flowTask.setFinishTime(histIns.getEndTime());
if (StringUtils.isNotBlank(histIns.getAssignee())) {
ResultBean<SysUserVo> sysUserVoResultBean = sysUserFeign.fetchBySid(histIns.getAssignee());// sysUserService.selectUserById(Long.parseLong(histIns.getAssignee()));
SysUserVo data = sysUserVoResultBean.getData();
ResultBean<List<SysUserVo>> sysUserVoResultBean = sysUserFeign.fetchBySids(histIns.getAssignee());// sysUserService.selectUserById(Long.parseLong(histIns.getAssignee()));
StringBuilder userName=new StringBuilder();
StringBuilder userImage=new StringBuilder();
List<SysUserVo> data1 = sysUserVoResultBean.getData();
for( SysUserVo data:data1){
userName.append(data.getName()).append(",");
userImage.append(fileUploadComponent.getUrlPrefix() ).append(data.getHeadImage()).append(",");
}
String userName_str="";
String userImage_str="";
userName_str=userName.substring(0,userName.length()-1);
userImage_str=userImage.substring(0,userImage.length()-1);
// SysUserVo data = sysUserVoResultBean.getData();
// flowTask.setAssigneeId(data.getSid());
flowTask.setAssigneeName(data.getName());
flowTask.setAssigneeHeadImage(fileUploadComponent.getUrlPrefix() + data.getHeadImage());
flowTask.setAssigneeName(userName_str);
flowTask.setAssigneeHeadImage(userImage_str);
//flowTask.setDeptName(sysUser.getDept().getDeptName());
}
// 展示审批人员
@ -1367,13 +1378,15 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
parentUserTaskList.forEach(item -> {
LatestTaskVo latestTaskVo = new LatestTaskVo();
latestTaskVo.setASSIGNEE_(item.getAssignee());
latestTaskVo.setId_(item.getId());
latestTaskVo.setName_(item.getName());
latestTaskVo.setTask_def_key_(item.getId());
latestTaskVo.setIncomingSourceRef(item.getIncomingFlows().get(0).getSourceRef());
latestTaskList.add(latestTaskVo);
Map<String, Object> task_map = flowTaskMapper.getTaskByDefKey(historicTaskInstance.getProcessInstanceId(), item.getId());
taskService.setAssignee(task_map.get("id_").toString(), userSid);
latestTaskVo.setId_(task_map.get("id_").toString());
latestTaskList.add(latestTaskVo);
});
} catch (FlowableObjectNotFoundException e) {
throw new CustomException("未找到流程实例,流程可能已发生变化");

4
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuser/SysUserFeign.java

@ -104,6 +104,10 @@ public interface SysUserFeign {
@GetMapping("/fetchBySid/{sid}")
public ResultBean<SysUserVo> fetchBySid(@PathVariable("sid") String sid);
@ApiOperation("根据多个或者一个sid获取对应的用户集合")
@GetMapping("/fetchBySids/{sids}")
public ResultBean<List<SysUserVo>> fetchBySids(@PathVariable("sids") String sids);
/**
* 客户端找回密码
*

5
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuser/SysUserFeignFallback.java

@ -98,6 +98,11 @@ public class SysUserFeignFallback implements SysUserFeign {
return rb.setMsg("接口anrui_portal/sysuser/fetchBySid无法访问");
}
@Override
public ResultBean<List<SysUserVo>> fetchBySids(String sids) {
return null;
}
@Override
public ResultBean reGetPwd(String userName, String userPhone) {
return null;

2
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserMapper.java

@ -162,4 +162,6 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
List<SysUserVo> getUserByRole(@Param("roleSid") String roleSid, @Param("levelOrgSid") String levelOrgSid);
List<Map<String,String>> getUserByOrgSid(@Param("userSid") String userSid);
List<SysUserVo> fetchBySids(@Param("sids")List<String> sids);
}

9
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserMapper.xml

@ -228,4 +228,13 @@
ON su.`staffSid` = st.`sid`
WHERE su.sid != #{userSid}
</select>
<select id="fetchBySids" resultType="com.yxt.anrui.portal.api.sysuser.SysUserVo">
select su.*,ss.name from sys_user su
left join sys_staffinfo ss on su.staffSid=ss.sid
where su.sid in
<foreach collection="sids" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</select>
</mapper>

7
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserRest.java

@ -297,6 +297,13 @@ public class SysUserRest implements SysUserFeign {
return rb.success().setData(vo);
}
@Override
public ResultBean<List<SysUserVo>> fetchBySids(String sids) {
ResultBean rb = ResultBean.fireFail();
List<SysUserVo> vo = sysUserService.fetchBySidSVo(sids);
return rb.success().setData(vo);
}
@Override
public ResultBean reGetPwd(String userName, String userPhone) {
return sysUserService.reGetPwd(userName, userPhone);

6
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserService.java

@ -916,4 +916,10 @@ public class SysUserService extends MybatisBaseService<SysUserMapper, SysUser> {
}
return rb.success().setData(user);
}
public List<SysUserVo> fetchBySidSVo(String sids) {
List<String> list = Arrays.asList(sids.split(","));
List<SysUserVo> entity = baseMapper.fetchBySids(list);
return entity;
}
}

4
anrui-scm/anrui-scm-ui/src/api/baseoutsourcingapplication/baseoutsourcingapplication.js

@ -103,7 +103,7 @@ export default {
// 终止任务
breakTask: function(params) {
return request({
url: '/base/baseoutsourcingapplication/' + params.businessSid,
url: '/base/baseoutsourcingapplication/breakProcess',
method: 'post',
data: params,
headers: {
@ -114,7 +114,7 @@ export default {
// 撤回任务
revokeTask: function (params) {
return request({
url: '/base/baseoutsourcingapplication/' + params.userSid + '/' + params.businessSid,
url: '/base/baseoutsourcingapplication/revokeProcess',
method: 'post',
data: params,
headers: {

3
anrui-scm/anrui-scm-ui/src/views/baseoutsourcingapplication/workflow/baseoutsourcingapplicationInfo.vue

@ -78,7 +78,6 @@
<script>
import req from '@/api/baseoutsourcingapplication/baseoutsourcingapplication'
import request from "@/api/flow/vehicleReturn";
export default {
name: 'BaseOutsourcingApplicationInfo',
data() {
@ -161,7 +160,7 @@ export default {
},
/** 撤回任务 */
handleRevoke() {
request.revokeTask(this.revokeList).then((response) => {
req.revokeTask(this.revokeList).then((response) => {
if (response.code === '200') {
window.parent.postMessage({
cmd: 'returnHeight',

55
anrui-system-ui/src/views/flow/todoList.vue

@ -97,65 +97,10 @@
height="1%"
:before-close="closeIt"
center>
<!-- <div class="scroll_div">-->
<iframe frameborder="0" id="iframe"
style="width:100%;"
:src="this.centerDialogVisible === true ? url :''"
></iframe>
<!--意见要移进具体的表单页面里-->
<!-- <div class="diaTitle"><i class="el-icon-chat-line-square"></i><span>审批意见</span></div>
<el-form :model="dialogList" :inline="true" label-width="80px">
<el-form-item label="审批意见" class="searchlist">
<el-input v-model="dialogList.comment" type="textarea" maxlength="20" placeholder="请输入审批意见"
class="inputType"
clearable/>
</el-form-item>
</el-form>
<div class="diaTitle"><i class="el-icon-notebook-2"></i><span>审批记录</span></div>
<div>
<el-card class="box-card" v-if="flowRecordList">
<el-col :span="16" :offset="4">
<div class="block">
<el-timeline>
<el-timeline-item
v-for="(item,index ) in flowRecordList"
:key="index"
:icon="setIcon(item.finishTime)"
:color="setColor(item.finishTime)"
>
<p style="font-weight: 700">{{item.taskName}}</p>
<el-card :body-style="{ padding: '10px' }">
<label v-if="item.assigneeName" style="font-weight: normal;margin-right: 30px;">实际办理
{{item.assigneeName}}
<el-tag type="info" size="mini">{{item.deptName}}</el-tag>
</label>
<label v-if="item.candidate"
style="font-weight: normal;margin-right: 30px;">候选办理{{item.candidate}}</label><br>
<label style="font-weight: normal">接收时间 </label><label style="color:#8a909c;font-weight: normal">{{item.createTime}}</label><br>
<label v-if="item.finishTime" style="font-weight: normal">办结时间 </label>
<label style="color:#8a909c;font-weight: normal">{{item.finishTime}}</label><br>
<label v-if="item.duration" style="font-weight: normal">耗时</label>
<label style="color:#8a909c;font-weight: normal">{{item.duration}}</label>
<p v-if="item.comment">
<el-tag type="success" v-if="item.comment.type === '1'"> {{item.comment.comment}}</el-tag>
<el-tag type="warning" v-if="item.comment.type === '2'"> {{item.comment.comment}}</el-tag>
<el-tag type="danger" v-if="item.comment.type === '3'"> {{item.comment.comment}}</el-tag>
<el-tag type="danger" v-if="item.comment.type === '7'"> {{item.comment.comment}}</el-tag>
</p>
</el-card>
</el-timeline-item>
</el-timeline>
</div>
</el-col>
</el-card>
</div>-->
<!--</div>-->
<!-- <span slot="footer" class="dialog-footer"> -->
<!-- <el-button type="primary" v-show="this.taskName_now == '发起订单'?false:true" @click="openAgree"> </el-button>-->
<!-- <el-button type="danger" v-show="this.taskName_now == '发起订单'?false:true" @click="openReject"> </el-button>-->
<!-- <el-button type="danger" @click="openStop"> </el-button>-->
<!-- <el-button type="info" @click="centerDialogVisible = false"> </el-button>-->
<!-- </span>-->
</el-dialog>
<!-- End办理页面-->

Loading…
Cancel
Save