Browse Source

车辆外采流程办理

master
yxt_djz 3 years ago
parent
commit
d3157bbe12
  1. 5
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseoutsourcingapplication/BaseOutsourcingApplicationFeign.java
  2. 2
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseoutsourcingapplication/BaseOutsourcingApplicationFeignFallback.java
  3. 3
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/flow/FlowTaskVo.java
  4. 4
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseoutsourcingapplication/BaseOutsourcingApplicationRest.java
  5. 880
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseoutsourcingapplication/BaseOutsourcingApplicationService.java
  6. 2
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow/FlowableFeign.java
  7. 2
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableRest.java
  8. 2
      anrui-scm/anrui-scm-ui/src/api/baseoutsourcingapplication/baseoutsourcingapplication.js
  9. 25
      anrui-scm/anrui-scm-ui/src/views/baseoutsourcingapplication/workflow/baseoutsourcingapplicationInfo.vue
  10. 79
      anrui-system-ui/src/views/flow/doneList.vue

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

@ -135,9 +135,8 @@ public interface BaseOutsourcingApplicationFeign {
@ApiParam(value = "工作流任务相关--请求参数") @RequestBody FlowTaskVo flowTaskVo) ;
@ApiOperation(value = "驳回任务")
@PostMapping(value = "/reject/{businessSid}")
public ResultBean taskReject(@ApiParam(value = "业务sid") @PathVariable(value = "businessSid")String businessSid,
@ApiParam(value = "工作流任务相关--请求参数")@RequestBody FlowTaskVo flowTaskVo);
@PostMapping(value = "/reject")
public ResultBean taskReject( @ApiParam(value = "工作流任务相关--请求参数")@RequestBody FlowTaskVo flowTaskVo);
@ApiOperation(value = "终止任务")
@PostMapping(value = "/breakProcess/{businessSid}")

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

@ -113,7 +113,7 @@ public class BaseOutsourcingApplicationFeignFallback implements BaseOutsourcingA
}
@Override
public ResultBean taskReject(String businessSid, FlowTaskVo flowTaskVo) {
public ResultBean taskReject( FlowTaskVo flowTaskVo) {
return null;
}

3
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/flow/FlowTaskVo.java

@ -21,7 +21,8 @@ public class FlowTaskVo {
@ApiModelProperty("任务Id")
private String taskId;
@ApiModelProperty("businessSid ")
private String businessSid;
@ApiModelProperty("用户Id")
private String userId;
@ApiModelProperty("用户Sid")

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

@ -149,8 +149,8 @@ public class BaseOutsourcingApplicationRest implements BaseOutsourcingApplicatio
}
@Override
public ResultBean taskReject(String businessSid, FlowTaskVo flowTaskVo) {
return baseOutsourcingApplicationService.taskReject(businessSid, flowTaskVo);
public ResultBean taskReject( FlowTaskVo flowTaskVo) {
return baseOutsourcingApplicationService.taskReject( flowTaskVo);
}
@Override

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

@ -88,420 +88,470 @@ import java.util.Map;
@Service
public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOutsourcingApplicationMapper, BaseOutsourcingApplication> {
@Autowired
private SysFormLinkFeign sysFormLinkFeign;
@Autowired
private BaseOutsourcingApplicationVehicleService baseOutsourcingApplicationVehicleService;
@Autowired
private DictCommonFeign dictCommonFeign;
@Autowired
private SysUserFeign sysUserFeign;
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
@Autowired
private FlowTaskFeign flowTaskFeign;
@Autowired
private FlowableFeign flowableFeign;
private QueryWrapper<BaseOutsourcingApplication> createQueryWrapper(BaseOutsourcingApplicationQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<BaseOutsourcingApplication> qw = new QueryWrapper<>();
String applicationStartDate = query.getApplicationStartDate();
String applicationEndDate = query.getApplicationEndDate();
qw.apply(StringUtils.isNotEmpty(applicationStartDate), "date_format (applicationDate,'%Y-%m-%d') >= date_format('" + applicationStartDate + "','%Y-%m-%d')").
apply(StringUtils.isNotEmpty(applicationEndDate), "date_format (applicationDate,'%Y-%m-%d') <= date_format('" + applicationEndDate + "','%Y-%m-%d')"
);
if (StringUtils.isNotBlank(query.getModelName())) {
qw.like("modelName", query.getModelName());
}
qw.eq("useOrgSid",query.getUseOrgSid());
qw.eq("createBySid",query.getUserSid());
@Autowired
private SysFormLinkFeign sysFormLinkFeign;
@Autowired
private BaseOutsourcingApplicationVehicleService baseOutsourcingApplicationVehicleService;
@Autowired
private DictCommonFeign dictCommonFeign;
@Autowired
private SysUserFeign sysUserFeign;
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
@Autowired
private FlowTaskFeign flowTaskFeign;
@Autowired
private FlowableFeign flowableFeign;
private QueryWrapper<BaseOutsourcingApplication> createQueryWrapper(BaseOutsourcingApplicationQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<BaseOutsourcingApplication> qw = new QueryWrapper<>();
String applicationStartDate = query.getApplicationStartDate();
String applicationEndDate = query.getApplicationEndDate();
qw.apply(StringUtils.isNotEmpty(applicationStartDate), "date_format (applicationDate,'%Y-%m-%d') >= date_format('" + applicationStartDate + "','%Y-%m-%d')").
apply(StringUtils.isNotEmpty(applicationEndDate), "date_format (applicationDate,'%Y-%m-%d') <= date_format('" + applicationEndDate + "','%Y-%m-%d')"
);
if (StringUtils.isNotBlank(query.getModelName())) {
qw.like("modelName", query.getModelName());
}
qw.eq("useOrgSid", query.getUseOrgSid());
qw.eq("createBySid", query.getUserSid());
// qw.eq("createBySid",query.getUserSid());
return qw;
}
public PagerVo<BaseOutsourcingApplicationVo> listPageVo(PagerQuery<BaseOutsourcingApplicationQuery> pq) {
BaseOutsourcingApplicationQuery query = pq.getParams();
String staffSid = query.getStaffSid();
ResultBean<List<SysStaffOrgVo>> sysStaffOrgListByStaffSid = sysStaffOrgFeign.getSysStaffOrgListByStaffSid(staffSid);
List<SysStaffOrgVo> data = sysStaffOrgListByStaffSid.getData();
String orgSidPath = "";
for (SysStaffOrgVo datum : data) {
orgSidPath = datum.getOrgSidPath();
String[] split = orgSidPath.split("/");
for (String s : split) {
ResultBean<SysOrganizationVo> sysOrganizationVoResultBean = sysOrganizationFeign.fetchBySid(s);
SysOrganizationVo data1 = sysOrganizationVoResultBean.getData();
Integer isDept = data1.getIsDept();
String psid = data1.getPsid();
if (isDept != null){
if (isDept == 0 && !psid.equals(0)) {
orgSidPath = s;
break;
}
}
}
}
query.setUseOrgSid(orgSidPath);
QueryWrapper<BaseOutsourcingApplication> qw = createQueryWrapper(query);
IPage<BaseOutsourcingApplication> page = PagerUtil.queryToPage(pq);
IPage<BaseOutsourcingApplicationVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<BaseOutsourcingApplicationVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public ResultBean saveOrUpdateDto(BaseOutsourcingApplicationDto dto){
ResultBean rb = ResultBean.fireFail();
BaseOutsourcingApplication entity = new BaseOutsourcingApplication();
List<BaseOutsourcingApplicationVehicleDto> baseOutsourcingApplicationVehicleDtos = dto.getBaseOutsourcingApplicationVehicleDtos();
String sid1 = entity.getSid();
String sid = dto.getSid();
if (StringUtils.isBlank(sid)){//新增
BeanUtil.copyProperties(dto,entity);
entity.setSid(sid1);
entity.setApplicationDate(new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
entity.setApplicationCode(generateBillNo(dto.getUserSid()).get("billNo_Num"));
String staffSid = dto.getStaffSid();
ResultBean<List<SysStaffOrgVo>> sysStaffOrgListByStaffSid = sysStaffOrgFeign.getSysStaffOrgListByStaffSid(staffSid);
List<SysStaffOrgVo> data = sysStaffOrgListByStaffSid.getData();
String orgSidPath = "";
for (SysStaffOrgVo datum : data) {
orgSidPath = datum.getOrgSidPath();
String[] split = orgSidPath.split("/");
for (String s : split) {
ResultBean<SysOrganizationVo> sysOrganizationVoResultBean = sysOrganizationFeign.fetchBySid(s);
SysOrganizationVo data1 = sysOrganizationVoResultBean.getData();
Integer isDept = data1.getIsDept();
String psid = data1.getPsid();
if (isDept != null){
if (isDept == 0 && !psid.equals(0)) {
orgSidPath = s;
break;
}
}
}
}
entity.setUseOrgSid(orgSidPath);
entity.setCreateBySid(dto.getUserSid());
save(entity);
for (BaseOutsourcingApplicationVehicleDto baseOutsourcingApplicationVehicleDto : baseOutsourcingApplicationVehicleDtos) {
BaseOutsourcingApplicationVehicle baseOutsourcingApplicationVehicle = new BaseOutsourcingApplicationVehicle();
BeanUtil.copyProperties(baseOutsourcingApplicationVehicleDto,baseOutsourcingApplicationVehicle);
baseOutsourcingApplicationVehicle.setOutAppSid(sid1);
baseOutsourcingApplicationVehicleService.save(baseOutsourcingApplicationVehicle);
}
return rb.success().setMsg("添加成功").setData(entity.getSid());
}
updateBySid(dto,sid);
baseOutsourcingApplicationVehicleService.deleteByOutAppSid(sid);
for (BaseOutsourcingApplicationVehicleDto baseOutsourcingApplicationVehicleDto : baseOutsourcingApplicationVehicleDtos) {
BaseOutsourcingApplicationVehicle baseOutsourcingApplicationVehicle = new BaseOutsourcingApplicationVehicle();
BeanUtil.copyProperties(baseOutsourcingApplicationVehicleDto,baseOutsourcingApplicationVehicle);
baseOutsourcingApplicationVehicle.setOutAppSid(sid);
baseOutsourcingApplicationVehicleService.save(baseOutsourcingApplicationVehicle);
}
return rb.success().setMsg("修改成功").setData(sid);
}
public ResultBean delAllBySids(String[] sids) {
ResultBean rb = ResultBean.fireFail();
delBySids(sids);
for (String sid : sids) {
baseOutsourcingApplicationVehicleService.deleteByOutAppSid(sid);
}
return rb.success().setMsg("删除成功");
}
public ResultBean<BaseOutsourcingApplicationDetailsVo> fetchAllBySid(String sid) {
ResultBean rb = ResultBean.fireFail();
BaseOutsourcingApplicationDetailsVo baseOutsourcingApplicationDetailsVo = new BaseOutsourcingApplicationDetailsVo();
BaseOutsourcingApplication baseOutsourcingApplication = fetchBySid(sid);
BeanUtil.copyProperties(baseOutsourcingApplication,baseOutsourcingApplicationDetailsVo);
List<BaseOutsourcingApplicationVehicleVo> baseOutsourcingApplicationVehicleVos = baseOutsourcingApplicationVehicleService.fetchByOutAppSid(sid);
baseOutsourcingApplicationDetailsVo.setBaseOutsourcingApplicationVehicleVos(baseOutsourcingApplicationVehicleVos);
return rb.success().setData(baseOutsourcingApplicationDetailsVo);
}
/**
* 生成单据编号制定编号规则:单据类型编号数据字典key+部门编码+yyyyMMDD+0000
* @param userSid
* @return
*/
public Map<String, String> generateBillNo(String userSid){
List<DictCommonVo> commonVoList = dictCommonFeign.getTypeValues(DictCommonType.BILLSTYPE, "0").getData();
String billsType = "";
if (commonVoList.size() > 0) {
for (int i = 0; i < commonVoList.size(); i++) {
if (commonVoList.get(i).getDictValue().contains("外采申请单")) {
billsType = commonVoList.get(i).getDictKey();
}
}
}
SysUserVo user = sysUserFeign.fetchBySid(userSid).getData();
ResultBean<List<SysStaffOrgVo>> org = sysStaffOrgFeign.getSysStaffOrgListByStaffSid(user.getStaffSid());
SysStaffOrgVo sysStaffOrgVo = null;
String orgCode = "";
String orgSid = "";
String orgName = "";
if (org.getSuccess() && org.getData() != null && org.getData().size() > 0) {
List<SysStaffOrgVo> list = org.getData();
sysStaffOrgVo = list.get(0);
orgSid = sysStaffOrgVo.getOrgSid();
orgName = sysStaffOrgVo.getOrgName();
ResultBean<SysOrganizationVo> resultBean = sysOrganizationFeign.fetchBySid(orgSid);
if (resultBean.getSuccess() && resultBean.getData() != null) {
SysOrganizationVo sysOrganizationVo = resultBean.getData();
orgCode = sysOrganizationVo.getOrgCode();
}
}
String date = DateUtils.dateConvertStr(new Date(), "yyyy-MM-dd");
// 流水号
int i = selectCountByOrgSid(billsType, date, orgSid);
String num = String.format("%04d", i + 1); // 不足4位补0
Map<String, String> map = new HashMap<>();
map.put("billNo_Num", billsType + orgCode + date.replaceAll("-","") + num);
map.put("billNo", billsType + orgCode + date.replaceAll("-",""));
map.put("staffSid", user.getStaffSid());
map.put("staffName", user.getName());
map.put("orgSid", orgSid);
map.put("orgName", orgName);
return map;
}
/**
* 根据 单据类型编号+部门编码+日期 查询
*
* @param billsType
* @param date
* @param orgSid
* @return
*/
public int selectCountByOrgSid(String billsType, String date, String orgSid) {
return baseMapper.selectCountByOrgSid(billsType, date, orgSid);
}
public ResultBean submitBaseOutSourcingApplication(SubmitBaseOutSourcingApplicationDto dto) {
//取组织架构的全路径sid
SysStaffOrg sysStaffOrg=sysStaffOrgFeign.getOrgByStaffSid(dto.getStaffSid()).getData();
String orgSidPath=sysStaffOrg.getOrgSidPath();
Map<String, Object> variables=BeanUtil.beanToMap(dto);
ResultBean resultBean = saveOrUpdateDto(dto);
String businessSid = resultBean.getData().toString();
BusinessVariables bv= new BusinessVariables();
BeanUtil.copyProperties(dto,bv);
bv.setOrgSidPath(orgSidPath);
bv.setBusinessSid(businessSid);
bv.setUserSid(dto.getUserSid());
variables.put("businessSid",businessSid);
bv.setFormVariables(variables);
bv.setModelId(ProcDefEnum.BASEOUTSOURCINGAPPLICATION.getProDefId());
//如果taskid从业务的数据库中查询出来,那这个taskid 和当前的关系是什么 如果数据库中查询出来的taskid是第四个环节的id,但是目前是做的第一次的提交操作。
// 应该是也不允许走if 也不运行走else 那应该如何验证这个id是否允许走else呢?
// 取出来业务数据的taskid和前端传递的taskid作比较 来判断数据的是否有效 本质上是数据版本一致性的问题
BaseOutsourcingApplicationDto booad=baseMapper.getBySid(businessSid);
String businessTaskid=booad.getTaskId();
if(StringUtils.isBlank(businessTaskid)&&StringUtils.isBlank(dto.getTaskId())){
// 新提交 taskid都是空的
ResultBean<UpdateFlowFieldVo> resultBean1 = flowableFeign.startProcess(bv);
UpdateFlowFieldVo uff=resultBean1.getData();
updateFlowFiled(BeanUtil.beanToMap(uff));
return resultBean1;
}else if(businessTaskid.equals(dto.getTaskId())){//只有数据一致的时候才能进行下一步
bv.setTaskDefKey(booad.getTaskDefKey());
bv.setComment(StringUtils.isNotBlank(dto.getComment()) ? dto.getComment() : "重新提交");
bv.setInstanceId(dto.getInstanceId());
return complete(bv);
}else{
return ResultBean.fireFail().setMsg("操作失败,提交的数据不一致!");
}
}
/**
* 检查用户是否设置部门
*
* @param staffSid
* @return 返回部门sid
*/
private String checkUserOrg(String staffSid) {
String orgSid = "";
ResultBean<String> resultBean = sysStaffOrgFeign.getSysStaffOrgSidListByStaffSid(staffSid);
if (resultBean.getSuccess()) {
orgSid = resultBean.getData();
}
return orgSid;
}
/**
* 保存流程业务关联表 数据
*
* @param map
*/
private void saveSysFormLink(Map<String, String> map) {
String sid = map.get("sid");
ResultBean resultBean = sysFormLinkFeign.selectByBusinessSid(sid);
if (!resultBean.getSuccess()) { // 新增
SysFormLinkDto sysFormLinkDto = new SysFormLinkDto();
sysFormLinkDto.setBusinessSid(map.get("sid"));
sysFormLinkDto.setProcInsId(map.get("procInsId"));
sysFormLinkDto.setTaskDefKey(map.get("taskDefKey"));
sysFormLinkDto.setNodeState(map.get("nodeState"));
sysFormLinkDto.setFormType(SysFormLinkTypeEnum.ORDER_DEPOSIT_VEHICLE.getCode());
sysFormLinkDto.setFlowState(Integer.parseInt(SysFormLinkFlowStateEnum.PROCESSING.getCode()));
sysFormLinkFeign.save(sysFormLinkDto);
} else { // 更新
Map<String, Object> updateMap = new HashMap<>();
updateMap.put("businessSid", sid);
updateMap.put("nodeState", map.get("nodeState"));
updateMap.put("taskDefKey", map.get("taskDefKey"));
updateMap.put("flowState", SysFormLinkFlowStateEnum.PROCESSING.getCode());
sysFormLinkFeign.updateFiled(updateMap);
}
}
/**
* 办理
* @param bv
* @return
*/
public ResultBean complete(BusinessVariables bv) {
BaseOutsourcingApplicationDto booad=baseMapper.getBySid(bv.getBusinessSid());
String businessTaskid=booad.getTaskId();
if(businessTaskid.equals(bv.getTaskId())){ //只有数据一致的时候才能进行下一步
ResultBean<UpdateFlowFieldVo> rb = flowableFeign.handleProsess(bv);
Map<String, Object> stringObjectMap = BeanUtil.beanToMap(rb.getData());
updateFlowFiled(stringObjectMap);
return rb;
}else{
return ResultBean.fireFail().setMsg("操作失败,提交的数据不一致!");
}
}
/**
* 更新流程相关的状态
* @param map
* @return
*/
private int updateFlowFiled(Map<String, Object> map) {
return baseMapper.updateFlowFiled(map);
}
/**
* 撤回
* @param userSid
* @param businessSid
* @param flowTaskVo
* @return
*/
public ResultBean revokeProcess(String userSid, String businessSid, 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);
fl.setUserSid(userSid);
ResultBean<UpdateFlowFieldVo> resultBean =flowableFeign.revokeProcess(fl);
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
return resultBean;
}
/**
* 驳回
* @param businessSid
* @param flowTaskVo
* @return
*/
public ResultBean taskReject(String businessSid, 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);
BaseOutsourcingApplicationDto boad = baseMapper.getBySid(businessSid);
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;
}
/**
* 终止流程
* @param businessSid
* @param flowTaskVo
* @return
*/
public ResultBean breakProcess(String businessSid, 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;
}
/**
* 流程历史流转记录
* @param procInsId
* @param deployId
* @return
*/
public ResultBean flowRecord(String procInsId, String deployId) {
return flowTaskFeign.businessFlowRecord(procInsId,deployId);
}
public ResultBean readXml(String deployId) {
return flowTaskFeign.readXml(deployId);
}
public ResultBean getFlowViewer(String procInsId) {
return flowTaskFeign.getFlowViewer(procInsId);
}
public ResultBean getNextTasks(String taskId) {
return flowTaskFeign.getNextTasks(taskId);
}
public ResultBean<List<SysUserVo>> getUsersByRoleSid(String orgSid,String roleSid) {
UserQuery userQuery=new UserQuery();
userQuery.setRoleSid(roleSid);
userQuery.setOrgSidPath(orgSid);
return sysUserFeign.getUserByRole(userQuery);
}
public ResultBean getProcessCirculationNodesByMap(BaseOutsourcingApplicationDto dto) {
BusinessVariables bv=new BusinessVariables();
bv.setModelId(ProcDefEnum.BASEOUTSOURCINGAPPLICATION.getProDefId());
bv.setFormVariables(BeanUtil.beanToMap(dto));
ResultBean processCirculationNodesByMap =flowTaskFeign.getProcessCirculationNodesByMap(bv);
processCirculationNodesByMap.setCode("200");
processCirculationNodesByMap.setSuccess(true);
return processCirculationNodesByMap;
}
public ResultBean getNextNodesForSubmit(GetNextNodeDto gnnd) {
BusinessVariables bv=new BusinessVariables();
bv.setModelId(ProcDefEnum.BASEOUTSOURCINGAPPLICATION.getProDefId());
bv.setTaskDefKey(gnnd.getTaskDefKey());
bv.setFormVariables(gnnd.getFormVariables());
ResultBean processCirculationNodesByMap =flowTaskFeign.getNextNodesForSubmit(bv);
processCirculationNodesByMap.setCode("200");
processCirculationNodesByMap.setSuccess(true);
return processCirculationNodesByMap;
}
public ResultBean getPreviousNodesForReject(GetNextNodeDto gnnd) {
BusinessVariables bv=new BusinessVariables();
bv.setTaskDefKey(gnnd.getTaskDefKey());
bv.setModelId(ProcDefEnum.BASEOUTSOURCINGAPPLICATION.getProDefId());
bv.setFormVariables(gnnd.getFormVariables());
ResultBean processCirculationNodesByMap =flowTaskFeign.getPreviousNodesForReject(bv);
processCirculationNodesByMap.setCode("200");
processCirculationNodesByMap.setSuccess(true);
return processCirculationNodesByMap;
}
return qw;
}
public PagerVo<BaseOutsourcingApplicationVo> listPageVo(PagerQuery<BaseOutsourcingApplicationQuery> pq) {
BaseOutsourcingApplicationQuery query = pq.getParams();
String staffSid = query.getStaffSid();
ResultBean<List<SysStaffOrgVo>> sysStaffOrgListByStaffSid = sysStaffOrgFeign.getSysStaffOrgListByStaffSid(staffSid);
List<SysStaffOrgVo> data = sysStaffOrgListByStaffSid.getData();
String orgSidPath = "";
for (SysStaffOrgVo datum : data) {
orgSidPath = datum.getOrgSidPath();
String[] split = orgSidPath.split("/");
for (String s : split) {
ResultBean<SysOrganizationVo> sysOrganizationVoResultBean = sysOrganizationFeign.fetchBySid(s);
SysOrganizationVo data1 = sysOrganizationVoResultBean.getData();
Integer isDept = data1.getIsDept();
String psid = data1.getPsid();
if (isDept != null) {
if (isDept == 0 && !psid.equals(0)) {
orgSidPath = s;
break;
}
}
}
}
query.setUseOrgSid(orgSidPath);
QueryWrapper<BaseOutsourcingApplication> qw = createQueryWrapper(query);
IPage<BaseOutsourcingApplication> page = PagerUtil.queryToPage(pq);
IPage<BaseOutsourcingApplicationVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<BaseOutsourcingApplicationVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public ResultBean saveOrUpdateDto(BaseOutsourcingApplicationDto dto) {
ResultBean rb = ResultBean.fireFail();
BaseOutsourcingApplication entity = new BaseOutsourcingApplication();
List<BaseOutsourcingApplicationVehicleDto> baseOutsourcingApplicationVehicleDtos = dto.getBaseOutsourcingApplicationVehicleDtos();
String sid1 = entity.getSid();
String sid = dto.getSid();
if (StringUtils.isBlank(sid)) {//新增
BeanUtil.copyProperties(dto, entity);
entity.setSid(sid1);
entity.setApplicationDate(new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
entity.setApplicationCode(generateBillNo(dto.getUserSid()).get("billNo_Num"));
String staffSid = dto.getStaffSid();
ResultBean<List<SysStaffOrgVo>> sysStaffOrgListByStaffSid = sysStaffOrgFeign.getSysStaffOrgListByStaffSid(staffSid);
List<SysStaffOrgVo> data = sysStaffOrgListByStaffSid.getData();
String orgSidPath = "";
for (SysStaffOrgVo datum : data) {
orgSidPath = datum.getOrgSidPath();
String[] split = orgSidPath.split("/");
for (String s : split) {//TODO 封装到组织架构的feign中
ResultBean<SysOrganizationVo> sysOrganizationVoResultBean = sysOrganizationFeign.fetchBySid(s);
SysOrganizationVo data1 = sysOrganizationVoResultBean.getData();
Integer isDept = data1.getIsDept();
String psid = data1.getPsid();
if (isDept != null) {
if (isDept == 0 && !psid.equals(0)) {
orgSidPath = s;
break;
}
}
}
}
entity.setUseOrgSid(orgSidPath);
entity.setCreateBySid(dto.getUserSid());
save(entity);
for (BaseOutsourcingApplicationVehicleDto baseOutsourcingApplicationVehicleDto : baseOutsourcingApplicationVehicleDtos) {
BaseOutsourcingApplicationVehicle baseOutsourcingApplicationVehicle = new BaseOutsourcingApplicationVehicle();
BeanUtil.copyProperties(baseOutsourcingApplicationVehicleDto, baseOutsourcingApplicationVehicle);
baseOutsourcingApplicationVehicle.setOutAppSid(sid1);
baseOutsourcingApplicationVehicleService.save(baseOutsourcingApplicationVehicle);
}
return rb.success().setMsg("添加成功").setData(entity.getSid());
}
updateBySid(dto, sid);
baseOutsourcingApplicationVehicleService.deleteByOutAppSid(sid);
for (BaseOutsourcingApplicationVehicleDto baseOutsourcingApplicationVehicleDto : baseOutsourcingApplicationVehicleDtos) {
BaseOutsourcingApplicationVehicle baseOutsourcingApplicationVehicle = new BaseOutsourcingApplicationVehicle();
BeanUtil.copyProperties(baseOutsourcingApplicationVehicleDto, baseOutsourcingApplicationVehicle);
baseOutsourcingApplicationVehicle.setOutAppSid(sid);
baseOutsourcingApplicationVehicleService.save(baseOutsourcingApplicationVehicle);
}
return rb.success().setMsg("修改成功").setData(sid);
}
public ResultBean delAllBySids(String[] sids) {
ResultBean rb = ResultBean.fireFail();
delBySids(sids);
for (String sid : sids) {
baseOutsourcingApplicationVehicleService.deleteByOutAppSid(sid);
}
return rb.success().setMsg("删除成功");
}
public ResultBean<BaseOutsourcingApplicationDetailsVo> fetchAllBySid(String sid) {
ResultBean rb = ResultBean.fireFail();
BaseOutsourcingApplicationDetailsVo baseOutsourcingApplicationDetailsVo = new BaseOutsourcingApplicationDetailsVo();
BaseOutsourcingApplication baseOutsourcingApplication = fetchBySid(sid);
BeanUtil.copyProperties(baseOutsourcingApplication, baseOutsourcingApplicationDetailsVo);
List<BaseOutsourcingApplicationVehicleVo> baseOutsourcingApplicationVehicleVos = baseOutsourcingApplicationVehicleService.fetchByOutAppSid(sid);
baseOutsourcingApplicationDetailsVo.setBaseOutsourcingApplicationVehicleVos(baseOutsourcingApplicationVehicleVos);
return rb.success().setData(baseOutsourcingApplicationDetailsVo);
}
/**
* 生成单据编号制定编号规则:单据类型编号数据字典key+部门编码+yyyyMMDD+0000
*
* @param userSid
* @return
*/
public Map<String, String> generateBillNo(String userSid) {
List<DictCommonVo> commonVoList = dictCommonFeign.getTypeValues(DictCommonType.BILLSTYPE, "0").getData();
String billsType = "";
if (commonVoList.size() > 0) {
for (int i = 0; i < commonVoList.size(); i++) {
if (commonVoList.get(i).getDictValue().contains("外采申请单")) {
billsType = commonVoList.get(i).getDictKey();
}
}
}
SysUserVo user = sysUserFeign.fetchBySid(userSid).getData();
ResultBean<List<SysStaffOrgVo>> org = sysStaffOrgFeign.getSysStaffOrgListByStaffSid(user.getStaffSid());
SysStaffOrgVo sysStaffOrgVo = null;
String orgCode = "";
String orgSid = "";
String orgName = "";
if (org.getSuccess() && org.getData() != null && org.getData().size() > 0) {
List<SysStaffOrgVo> list = org.getData();
sysStaffOrgVo = list.get(0);
orgSid = sysStaffOrgVo.getOrgSid();
orgName = sysStaffOrgVo.getOrgName();
ResultBean<SysOrganizationVo> resultBean = sysOrganizationFeign.fetchBySid(orgSid);
if (resultBean.getSuccess() && resultBean.getData() != null) {
SysOrganizationVo sysOrganizationVo = resultBean.getData();
orgCode = sysOrganizationVo.getOrgCode();
}
}
String date = DateUtils.dateConvertStr(new Date(), "yyyy-MM-dd");
// 流水号
int i = selectCountByOrgSid(billsType, date, orgSid);
String num = String.format("%04d", i + 1); // 不足4位补0
Map<String, String> map = new HashMap<>();
map.put("billNo_Num", billsType + orgCode + date.replaceAll("-", "") + num);
map.put("billNo", billsType + orgCode + date.replaceAll("-", ""));
map.put("staffSid", user.getStaffSid());
map.put("staffName", user.getName());
map.put("orgSid", orgSid);
map.put("orgName", orgName);
return map;
}
/**
* 根据 单据类型编号+部门编码+日期 查询
*
* @param billsType
* @param date
* @param orgSid
* @return
*/
public int selectCountByOrgSid(String billsType, String date, String orgSid) {
return baseMapper.selectCountByOrgSid(billsType, date, orgSid);
}
public ResultBean submitBaseOutSourcingApplication(SubmitBaseOutSourcingApplicationDto dto) {
//取组织架构的全路径sid
SysStaffOrg sysStaffOrg = sysStaffOrgFeign.getOrgByStaffSid(dto.getStaffSid()).getData();
String orgSidPath = sysStaffOrg.getOrgSidPath();
Map<String, Object> variables = BeanUtil.beanToMap(dto);
String busSid = dto.getBusinessSid();
if (StringUtils.isBlank(busSid)) {
ResultBean resultBean = saveOrUpdateDto(dto);//insert
String businessSid = resultBean.getData().toString();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(dto, bv);
bv.setOrgSidPath(orgSidPath);
bv.setBusinessSid(businessSid);
bv.setUserSid(dto.getUserSid());
variables.put("businessSid", businessSid);
bv.setFormVariables(variables);
bv.setModelId(ProcDefEnum.BASEOUTSOURCINGAPPLICATION.getProDefId());
//如果taskid从业务的数据库中查询出来,那这个taskid 和当前的关系是什么 如果数据库中查询出来的taskid是第四个环节的id,但是目前是做的第一次的提交操作。
// 应该是也不允许走if 也不运行走else 那应该如何验证这个id是否允许走else呢?
// 取出来业务数据的taskid和前端传递的taskid作比较 来判断数据的是否有效 本质上是数据版本一致性的问题
ResultBean<UpdateFlowFieldVo> resultBean1 = flowableFeign.startProcess(bv);
UpdateFlowFieldVo uff = resultBean1.getData();
updateFlowFiled(BeanUtil.beanToMap(uff));
return resultBean1;
}
BaseOutsourcingApplicationDto booad = new BaseOutsourcingApplicationDto();
int r = submitBusinessData(dto, busSid, booad);
if (r == 0) {
return ResultBean.fireFail().setMsg("操作失败,提交的数据不一致!");
}
ResultBean resultBean = saveOrUpdateDto(dto);//update
String businessSid = resultBean.getData().toString();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(dto, bv);
bv.setOrgSidPath(orgSidPath);
bv.setBusinessSid(businessSid);
bv.setUserSid(dto.getUserSid());
variables.put("businessSid", businessSid);
bv.setFormVariables(variables);
bv.setModelId(ProcDefEnum.BASEOUTSOURCINGAPPLICATION.getProDefId());
//如果taskid从业务的数据库中查询出来,那这个taskid 和当前的关系是什么 如果数据库中查询出来的taskid是第四个环节的id,但是目前是做的第一次的提交操作。
// 应该是也不允许走if 也不运行走else 那应该如何验证这个id是否允许走else呢?
// 取出来业务数据的taskid和前端传递的taskid作比较 来判断数据的是否有效 本质上是数据版本一致性的问题
if (r == 1) {
ResultBean<UpdateFlowFieldVo> resultBean1 = flowableFeign.startProcess(bv);
UpdateFlowFieldVo uff = resultBean1.getData();
updateFlowFiled(BeanUtil.beanToMap(uff));
return resultBean1;
} else if (r == 2) {
bv.setTaskDefKey(booad.getTaskDefKey());
bv.setComment(StringUtils.isNotBlank(dto.getComment()) ? dto.getComment() : "重新提交");
bv.setInstanceId(dto.getInstanceId());
return complete(bv);
}
return ResultBean.fireFail();
}
private synchronized int submitBusinessData(SubmitBaseOutSourcingApplicationDto dto,
String businessSid, BaseOutsourcingApplicationDto booad) {
int r = 0;
booad = baseMapper.getBySid(businessSid);
String businessTaskid = booad.getTaskId();
if (StringUtils.isBlank(businessTaskid) && StringUtils.isBlank(dto.getTaskId())) {
// 新提交 taskid都是空的
r = 1;
} else if (StringUtils.isNotBlank(businessTaskid) && businessTaskid.equals(dto.getTaskId())) {//只有数据一致的时候才能进行下一步
r = 2;
}
return r;
}
/**
* 检查用户是否设置部门
*
* @param staffSid
* @return 返回部门sid
*/
private String checkUserOrg(String staffSid) {
String orgSid = "";
ResultBean<String> resultBean = sysStaffOrgFeign.getSysStaffOrgSidListByStaffSid(staffSid);
if (resultBean.getSuccess()) {
orgSid = resultBean.getData();
}
return orgSid;
}
/**
* 保存流程业务关联表 数据
*
* @param map
*/
private void saveSysFormLink(Map<String, String> map) {
String sid = map.get("sid");
ResultBean resultBean = sysFormLinkFeign.selectByBusinessSid(sid);
if (!resultBean.getSuccess()) { // 新增
SysFormLinkDto sysFormLinkDto = new SysFormLinkDto();
sysFormLinkDto.setBusinessSid(map.get("sid"));
sysFormLinkDto.setProcInsId(map.get("procInsId"));
sysFormLinkDto.setTaskDefKey(map.get("taskDefKey"));
sysFormLinkDto.setNodeState(map.get("nodeState"));
sysFormLinkDto.setFormType(SysFormLinkTypeEnum.ORDER_DEPOSIT_VEHICLE.getCode());
sysFormLinkDto.setFlowState(Integer.parseInt(SysFormLinkFlowStateEnum.PROCESSING.getCode()));
sysFormLinkFeign.save(sysFormLinkDto);
} else { // 更新
Map<String, Object> updateMap = new HashMap<>();
updateMap.put("businessSid", sid);
updateMap.put("nodeState", map.get("nodeState"));
updateMap.put("taskDefKey", map.get("taskDefKey"));
updateMap.put("flowState", SysFormLinkFlowStateEnum.PROCESSING.getCode());
sysFormLinkFeign.updateFiled(updateMap);
}
}
/**
* 办理
*
* @param bv
* @return
*/
public ResultBean complete(BusinessVariables bv) {
BaseOutsourcingApplicationDto booad = baseMapper.getBySid(bv.getBusinessSid());
String businessTaskid = booad.getTaskId();
if (businessTaskid.equals(bv.getTaskId())) { //只有数据一致的时候才能进行下一步
ResultBean<UpdateFlowFieldVo> rb = flowableFeign.handleProsess(bv);
Map<String, Object> stringObjectMap = BeanUtil.beanToMap(rb.getData());
updateFlowFiled(stringObjectMap);
return rb;
} else {
return ResultBean.fireFail().setMsg("操作失败,提交的数据不一致!");
}
}
/**
* 更新流程相关的状态
*
* @param map
* @return
*/
private int updateFlowFiled(Map<String, Object> map) {
return baseMapper.updateFlowFiled(map);
}
/**
* 撤回
*
* @param userSid
* @param businessSid
* @param flowTaskVo
* @return
*/
public ResultBean revokeProcess(String userSid, String businessSid, 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);
fl.setUserSid(userSid);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.revokeProcess(fl);
Map<String, Object> stringObjectMap = BeanUtil.beanToMap(resultBean.getData());
updateFlowFiled(stringObjectMap);
return resultBean;
}
/**
* 驳回
*
* @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;
}
/**
* 终止流程
*
* @param businessSid
* @param flowTaskVo
* @return
*/
public ResultBean breakProcess(String businessSid, 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;
}
/**
* 流程历史流转记录
*
* @param procInsId
* @param deployId
* @return
*/
public ResultBean flowRecord(String procInsId, String deployId) {
return flowTaskFeign.businessFlowRecord(procInsId, deployId);
}
public ResultBean readXml(String deployId) {
return flowTaskFeign.readXml(deployId);
}
public ResultBean getFlowViewer(String procInsId) {
return flowTaskFeign.getFlowViewer(procInsId);
}
public ResultBean getNextTasks(String taskId) {
return flowTaskFeign.getNextTasks(taskId);
}
public ResultBean<List<SysUserVo>> getUsersByRoleSid(String orgSid, String roleSid) {
UserQuery userQuery = new UserQuery();
userQuery.setRoleSid(roleSid);
userQuery.setOrgSidPath(orgSid);
return sysUserFeign.getUserByRole(userQuery);
}
public ResultBean getProcessCirculationNodesByMap(BaseOutsourcingApplicationDto dto) {
BusinessVariables bv = new BusinessVariables();
bv.setModelId(ProcDefEnum.BASEOUTSOURCINGAPPLICATION.getProDefId());
bv.setFormVariables(BeanUtil.beanToMap(dto));
ResultBean processCirculationNodesByMap = flowTaskFeign.getProcessCirculationNodesByMap(bv);
processCirculationNodesByMap.setCode("200");
processCirculationNodesByMap.setSuccess(true);
return processCirculationNodesByMap;
}
public ResultBean getNextNodesForSubmit(GetNextNodeDto gnnd) {
BusinessVariables bv = new BusinessVariables();
bv.setModelId(ProcDefEnum.BASEOUTSOURCINGAPPLICATION.getProDefId());
bv.setTaskDefKey(gnnd.getTaskDefKey());
bv.setFormVariables(gnnd.getFormVariables());
ResultBean processCirculationNodesByMap = flowTaskFeign.getNextNodesForSubmit(bv);
processCirculationNodesByMap.setCode("200");
processCirculationNodesByMap.setSuccess(true);
return processCirculationNodesByMap;
}
public ResultBean getPreviousNodesForReject(GetNextNodeDto gnnd) {
BusinessVariables bv = new BusinessVariables();
bv.setTaskDefKey(gnnd.getTaskDefKey());
bv.setModelId(ProcDefEnum.BASEOUTSOURCINGAPPLICATION.getProDefId());
bv.setFormVariables(gnnd.getFormVariables());
ResultBean processCirculationNodesByMap = flowTaskFeign.getPreviousNodesForReject(bv);
processCirculationNodesByMap.setCode("200");
processCirculationNodesByMap.setSuccess(true);
return processCirculationNodesByMap;
}
}

2
anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow/FlowableFeign.java

@ -102,7 +102,7 @@ public interface FlowableFeign {
@ApiOperation(value = "撤回流程")
@PostMapping(value = "/revokeProcess")
@ResponseBody
ResultBean revokeProcess(@RequestBody com.yxt.anrui.flowable.api.flowtask.FlowTaskVo fl);
ResultBean<UpdateFlowFieldVo> revokeProcess(@RequestBody com.yxt.anrui.flowable.api.flowtask.FlowTaskVo fl);
@ApiOperation(value = "驳回流程")
@PostMapping(value = "/taskReject")

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

@ -284,7 +284,7 @@ public class FlowableRest implements FlowableFeign {
}
@Override
public ResultBean revokeProcess(com.yxt.anrui.flowable.api.flowtask.FlowTaskVo fl) {
public ResultBean<UpdateFlowFieldVo> revokeProcess(com.yxt.anrui.flowable.api.flowtask.FlowTaskVo fl) {
ResultBean rb = ResultBean.fireFail();
UpdateFlowFieldVo vo = new UpdateFlowFieldVo();
ResultBean<List<LatestTaskVo>> resultBean = flowtaskService.revokeProcess(fl);

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

@ -92,7 +92,7 @@ export default {
// 驳回任务
rejectTask: function(params) {
return request({
url: '/base/baseoutsourcingapplication/reject/' + params.businessSid,
url: '/base/baseoutsourcingapplication/reject',
method: 'post',
data: params,
headers: {

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

@ -10,7 +10,7 @@
</div>
</div>
<!-- 标题按钮部分结束 -->
<div class="listconadd">
<div >
<el-form ref="form_obj" :model="formobj" label-position="right" class="formadd">
<el-row>
<el-col :span="3" class="tleftb">申请编号</el-col>
@ -72,7 +72,6 @@
</el-table>
</div>
</el-form>
</div>
</div>
</template>
@ -135,6 +134,14 @@ export default {
this.revokeList.businessSid = sid
this.revokeList.instanceId = obj.instanceId
this.revokeList.taskId = obj.taskId
window.parent.postMessage({
cmd: 'returnHeight',
params: {
//
code: 2,
data: 600 + 'px'
}
}, '*')
},
methods: {
//
@ -153,15 +160,15 @@ export default {
})
},
/** 撤回任务 */
handleRevoke() {alert(1);
handleRevoke() {
request.revokeTask(this.revokeList).then((response) => {
if (response.code === '200') {
this.$notify({
title: '提示',
message: '执行成功',
type: 'success',
duration: 2000
})
window.parent.postMessage({
cmd: 'returnHeight',
params: {
code: 1,
}
}, '*')
} else {
this.$notify({
title: '提示',

79
anrui-system-ui/src/views/flow/doneList.vue

@ -92,58 +92,16 @@
</div>
<!-- Start查看页面 -->
<el-dialog
title=""
:visible.sync="centerDialogVisible"
width="85%"
height="100%"
width="78%"
height="1%"
:before-close="closeIt"
center><!--src="http://localhost:9531/#/xiaoshouguanliFlow/dingjinshouqu" closeIt -->
<div class="scroll_div">
<iframe id="iframe_done" height="1000px" width="100%"
:src="this.centerDialogVisible === true ? url :''"
scrolling="no"></iframe>
<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="danger" :disabled="this.taskName_now == '已办结'?true:false" @click="openRevoke"> </el-button>-->
<!-- <el-button type="info" @click="centerDialogVisible = false"> </el-button>-->
</span>
center>
<iframe frameborder="0" id="iframe_done"
style="width:100%;"
:src="this.centerDialogVisible === true ? url :''"
></iframe>
</el-dialog>
<!-- End查看页面-->
@ -203,6 +161,7 @@
},
data() {
return {
dialogHeight:'80%',
isDialogVisible: false, //
centerDialogVisible: false, //
editDialog: false,
@ -245,6 +204,10 @@
}
}
},
mounted() {
// vuewindowpostMessagehandleMessage
window.addEventListener('message', this.handleMessage)
},
created() {
//
// this.getList()
@ -268,12 +231,24 @@
}
},
methods: {
setIframeHeight(iframe) {
iframe.height = this.dialogHeight;//iframeWin.document.documentElement.scrollHeight || iframeWin.document.body.scrollHeight;
},
async handleMessage (event) {
var code= event.data.params.code;
if(code==1){
this.init()
this.centerDialogVisible=false
}else if(code==2){
this.dialogHeight = event.data.params.data
this.setIframeHeight(document.getElementById('iframe_done'));
}
},
init() {
var token = getStorage();
loginDetails(token).then((response) => {
if (response.code === '200') {
this.loginInfo = response.data;
console.log(this.loginInfo)
this.revokeList.userSid = this.loginInfo.sid
this.listQuery.params.userSid = this.loginInfo.sid
this.getList()
@ -282,7 +257,6 @@
},
/** 打开详情 */
handleCheck(row) {
console.log('row', row)
this.selectUrl_list.proc_def_id = row.procDefId
this.selectUrl_list.taskDefKey = row.taskDefKey
this.selectUrl_list.type = 2 //
@ -297,7 +271,6 @@
if (response.code === '200') {
// this.url = 'http://120.46.131.15' + response.data.url + '?row=' + row.processVariables.businessSid + '#data=' + JSON.stringify(parameter_list) + '?token=' + getStorage()
this.url = 'http://localhost:9531' + response.data.url + '?row=' + row.processVariables.businessSid + '#data=' + JSON.stringify(parameter_list) + '?token=123456abc'
console.log('页面url', this.url)
} else {
this.$notify({
title: '提示',

Loading…
Cancel
Save