Browse Source

入账申请流程

master
lzh 3 years ago
parent
commit
016ded624a
  1. 3
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java
  2. 17
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInbound.java
  3. 10
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInboundFeign.java
  4. 14
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInboundFeignFallback.java
  5. 7
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInboundVo.java
  6. 18
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/SubmitScmApplyInboundDto.java
  7. 17
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinbound/ScmApplyInboundRest.java
  8. 196
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinbound/ScmApplyInboundService.java
  9. 21
      anrui-scm/anrui-scm-ui/src/api/ruzhang/scmapplyinbound.js
  10. 103
      anrui-scm/anrui-scm-ui/src/views/ruzhang/ruzhangguanli/ruzhangAdd.vue
  11. 26
      anrui-scm/anrui-scm-ui/src/views/workFlow/ruzhangguanliFlow/ruzhangguanli/ruzhangEdit.vue
  12. 331
      anrui-scm/anrui-scm-ui/src/views/workFlow/ruzhangguanliFlow/ruzhangguanli/ruzhangInfo.vue
  13. 46
      doc/databases/anrui-scm/modify.sql

3
anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java

@ -14,7 +14,8 @@ public enum ProcDefEnum {
ADVANCEGINVOICEAPPLY("提前开票申请流程", "advance_ginvoiceapply:1:242664"), ADVANCEGINVOICEAPPLY("提前开票申请流程", "advance_ginvoiceapply:1:242664"),
ARREARSCARRYVEHICLE("欠款提车审批流程", "arrears_carryvehicle:1:232589"), ARREARSCARRYVEHICLE("欠款提车审批流程", "arrears_carryvehicle:1:232589"),
VEHICLEAPPLY("排产申请流程", "process_9egcg169:4:255004"),//TODO VEHICLEAPPLY("排产申请流程", "process_9egcg169:4:255004"),//TODO
RECORDAPPLICATION("入账申请", "record_application_7y80d4r8:1:265008"),//TODO // RECORDAPPLICATION("入账申请", "record_application_7y80d4r8:1:265008"),//TODO
RECORDAPPLICATION("入账申请", "process_xbwq2c7p:3:390012"),//TODO
SCMVEHICLERETURN("采购退库", "process_md8aeoap:4:245028"), SCMVEHICLERETURN("采购退库", "process_md8aeoap:4:245028"),
SEALAPPLY("盖章申请", "process_7h0z66tp:1:240064" ), SEALAPPLY("盖章申请", "process_7h0z66tp:1:240064" ),
BASEVEHICLEACTUALSALES("未售买断", "process_6qx07b75:3:265004"),//ToDo BASEVEHICLEACTUALSALES("未售买断", "process_6qx07b75:3:265004"),//ToDo

17
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInbound.java

@ -54,4 +54,21 @@ public class ScmApplyInbound extends BaseEntity {
@ApiModelProperty("厂家发车日期") @ApiModelProperty("厂家发车日期")
private String departureDate; private String departureDate;
@ApiModelProperty("'流程定义的id'")
private String procDefId;
@ApiModelProperty("流程实例id")
private String procInsId;
@ApiModelProperty("当前环节状态")
private String nodeState;
@ApiModelProperty("环节定义的ID")
private String taskDefKey;
@ApiModelProperty("'部门sid'")
private String orgSid;
@ApiModelProperty("'分公司sid'")
private String useOrgSid;
@ApiModelProperty("任务id")
private String taskId;
} }

10
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInboundFeign.java

@ -58,7 +58,7 @@ public interface ScmApplyInboundFeign {
@ApiOperation(value = "办理(同意)") @ApiOperation(value = "办理(同意)")
@PostMapping("/complete") @PostMapping("/complete")
public ResultBean complete(@ApiParam(value = "变量集合,json对象") @RequestBody Map<String, Object> variables); public ResultBean complete(@ApiParam(value = "变量集合,json对象") @RequestBody SubmitScmApplyInboundDto dto);
@ApiOperation(value = "撤回流程") @ApiOperation(value = "撤回流程")
@PostMapping(value = "/revokeProcess/{userSid}/{businessSid}") @PostMapping(value = "/revokeProcess/{userSid}/{businessSid}")
@ -82,6 +82,14 @@ public interface ScmApplyInboundFeign {
public ResultBean flowRecord(@ApiParam(value = "流程实例id") @PathVariable(value = "procInsId") String procInsId, public ResultBean flowRecord(@ApiParam(value = "流程实例id") @PathVariable(value = "procInsId") String procInsId,
@ApiParam(value = "目前没用") @PathVariable(value = "deployId") String deployId); @ApiParam(value = "目前没用") @PathVariable(value = "deployId") String deployId);
@ApiOperation(value = "获取下一个环节")
@PostMapping(value = "/getNextNodesForSubmit")
ResultBean getNextNodesForSubmit(@ApiParam(value = "变量集合,json对象") @RequestBody @Valid SubmitScmApplyInboundDto dto);
@ApiOperation(value = "获取上一个环节")
@PostMapping(value = "/getPreviousNodesForReject")
ResultBean getPreviousNodesForReject(@ApiParam(value = "变量集合,json对象") @RequestBody @Valid SubmitScmApplyInboundDto dto);
/*************************************************审批流程***************************************************/ /*************************************************审批流程***************************************************/

14
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInboundFeignFallback.java

@ -55,7 +55,7 @@ public class ScmApplyInboundFeignFallback implements ScmApplyInboundFeign {
} }
@Override @Override
public ResultBean complete(Map<String, Object> variables) { public ResultBean complete(SubmitScmApplyInboundDto variables) {
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui-scm/scmapplyinbound/complete无法访问"); return rb.setMsg("接口anrui-scm/scmapplyinbound/complete无法访问");
} }
@ -83,4 +83,16 @@ public class ScmApplyInboundFeignFallback implements ScmApplyInboundFeign {
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui-scm/scmapplyinbound/flowRecord无法访问"); return rb.setMsg("接口anrui-scm/scmapplyinbound/flowRecord无法访问");
} }
@Override
public ResultBean getNextNodesForSubmit(SubmitScmApplyInboundDto dto) {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui-scm/scmapplyinbound/getNextNodesForSubmit 无法访问");
}
@Override
public ResultBean getPreviousNodesForReject(SubmitScmApplyInboundDto dto) {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui-scm/scmapplyinbound/getPreviousNodesForReject 无法访问");
}
} }

7
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInboundVo.java

@ -65,4 +65,11 @@ public class ScmApplyInboundVo implements Vo {
@ApiModelProperty("车辆列表") @ApiModelProperty("车辆列表")
private List<ScmApplyInboundVehicleVo> inboundVehicleList; private List<ScmApplyInboundVehicleVo> inboundVehicleList;
@ApiModelProperty("任务id")
private String taskId;
@ApiModelProperty("环节定义的ID")
private String taskDefKey;
@ApiModelProperty("状态 ")
private String nodeState;
} }

18
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/SubmitScmApplyInboundDto.java

@ -20,9 +20,25 @@ public class SubmitScmApplyInboundDto extends ScmApplyInboundDto{
@ApiModelProperty("意见") @ApiModelProperty("意见")
private String comment; private String comment;
@ApiModelProperty("'流程定义的id'")
private String procDefId;
@ApiModelProperty("流程实例id") @ApiModelProperty("流程实例id")
private String instanceId; private String procInsId;
@ApiModelProperty("当前环节状态")
private String nodeState;
@ApiModelProperty("环节定义的ID")
private String taskDefKey;
@ApiModelProperty("'部门sid'")
private String orgSid;
@ApiModelProperty("'分公司sid'")
private String useOrgSid;
@ApiModelProperty("任务id") @ApiModelProperty("任务id")
private String taskId; private String taskId;
@ApiModelProperty("组织架构的全路径sid")
private String orgSidPath;
@ApiModelProperty("员工sid")
private String staffSid;
} }

17
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinbound/ScmApplyInboundRest.java

@ -1,6 +1,6 @@
package com.yxt.anrui.scm.biz.scmapplyinbound; package com.yxt.anrui.scm.biz.scmapplyinbound;
import cn.hutool.core.bean.BeanUtil; import com.yxt.anrui.base.api.baseoutsourcingapplication.BaseOutsourcingApplicationDto;
import com.yxt.anrui.scm.api.flow.FlowTaskVo; import com.yxt.anrui.scm.api.flow.FlowTaskVo;
import com.yxt.anrui.scm.api.scmapplyinbound.*; import com.yxt.anrui.scm.api.scmapplyinbound.*;
import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.query.PagerQuery;
@ -11,7 +11,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* Project: anrui-scm(进销存) <br/> * Project: anrui-scm(进销存) <br/>
@ -64,8 +63,8 @@ public class ScmApplyInboundRest implements ScmApplyInboundFeign {
} }
@Override @Override
public ResultBean complete(Map<String, Object> variables) { public ResultBean complete(SubmitScmApplyInboundDto dto) {
return scmApplyInboundService.complete(variables); return scmApplyInboundService.complete(dto);
} }
@Override @Override
@ -87,4 +86,14 @@ public class ScmApplyInboundRest implements ScmApplyInboundFeign {
public ResultBean flowRecord(String procInsId, String deployId) { public ResultBean flowRecord(String procInsId, String deployId) {
return scmApplyInboundService.flowRecord(procInsId, deployId); return scmApplyInboundService.flowRecord(procInsId, deployId);
} }
@Override
public ResultBean getNextNodesForSubmit(SubmitScmApplyInboundDto dto) {
return scmApplyInboundService.getNextNodesForSubmit(dto);
}
@Override
public ResultBean getPreviousNodesForReject(SubmitScmApplyInboundDto dto) {
return scmApplyInboundService.getPreviousNodesForReject(dto);
}
} }

196
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinbound/ScmApplyInboundService.java

@ -2,13 +2,19 @@ package com.yxt.anrui.scm.biz.scmapplyinbound;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.base.api.baseoutsourcingapplication.BaseOutsourcingApplicationDto;
import com.yxt.anrui.base.api.baseoutsourcingapplication.SubmitBaseOutSourcingApplicationDto;
import com.yxt.anrui.flowable.api.flow.FlowableFeign;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign; import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign;
import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo; import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo;
import com.yxt.anrui.flowable.api.sysformlink.SysFormLinkFlowStateEnum; import com.yxt.anrui.flowable.api.sysformlink.SysFormLinkFlowStateEnum;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum; import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.api.utils.ProcessStateEnum; import com.yxt.anrui.flowable.api.utils.ProcessStateEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign; import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign; import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.scm.api.flow.FlowTaskVo; import com.yxt.anrui.scm.api.flow.FlowTaskVo;
@ -57,7 +63,8 @@ public class ScmApplyInboundService extends MybatisBaseService<ScmApplyInboundMa
@Autowired @Autowired
private SysStaffOrgFeign sysStaffOrgFeign; private SysStaffOrgFeign sysStaffOrgFeign;
@Autowired @Autowired
private FlowableService flowableService; private FlowableFeign flowableFeign;
// private FlowableService flowableService;
@Autowired @Autowired
private FlowTaskFeign flowTaskFeign; private FlowTaskFeign flowTaskFeign;
@ -69,10 +76,12 @@ public class ScmApplyInboundService extends MybatisBaseService<ScmApplyInboundMa
PagerVo<ScmApplyInbound> p = PagerUtil.pageToVo(pagging, null); PagerVo<ScmApplyInbound> p = PagerUtil.pageToVo(pagging, null);
return p; return p;
} }
public List<ScmApplyInbound> listAll(ScmApplyInboundQuery query) { public List<ScmApplyInbound> listAll(ScmApplyInboundQuery query) {
QueryWrapper<ScmApplyInbound> qw = createQueryWrapper(query); QueryWrapper<ScmApplyInbound> qw = createQueryWrapper(query);
return baseMapper.selectList(qw); return baseMapper.selectList(qw);
} }
private QueryWrapper<ScmApplyInbound> createQueryWrapper(ScmApplyInboundQuery query) { private QueryWrapper<ScmApplyInbound> createQueryWrapper(ScmApplyInboundQuery query) {
// todo: 这里根据具体业务调整查询条件 // todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName())); // 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
@ -108,10 +117,11 @@ public class ScmApplyInboundService extends MybatisBaseService<ScmApplyInboundMa
/** /**
* 新增和修改车辆入账单 * 新增和修改车辆入账单
*
* @param dto * @param dto
*/ */
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public ResultBean saveOrUpdateApplyInBound(ScmApplyInboundDto dto){ public ResultBean<String> saveOrUpdateApplyInBound(ScmApplyInboundDto dto) {
// 验证车架号:不能为空、不能重复 // 验证车架号:不能为空、不能重复
List<ScmApplyInboundVehicleDto> vehicleList = dto.getVehicleList(); List<ScmApplyInboundVehicleDto> vehicleList = dto.getVehicleList();
List<String> vinNoList = vehicleList.stream().filter(vehicle -> StringUtils.isNotBlank(vehicle.getVinNo())).map(vehicle -> vehicle.getVinNo()).collect(Collectors.toList()); List<String> vinNoList = vehicleList.stream().filter(vehicle -> StringUtils.isNotBlank(vehicle.getVinNo())).map(vehicle -> vehicle.getVinNo()).collect(Collectors.toList());
@ -159,6 +169,7 @@ public class ScmApplyInboundService extends MybatisBaseService<ScmApplyInboundMa
/** /**
* 根据sid查询车辆入账单详情 * 根据sid查询车辆入账单详情
*
* @param sid * @param sid
* @return * @return
*/ */
@ -189,6 +200,7 @@ public class ScmApplyInboundService extends MybatisBaseService<ScmApplyInboundMa
/** /**
* 更新流程相关的状态 * 更新流程相关的状态
*
* @param map * @param map
* @return * @return
*/ */
@ -196,76 +208,131 @@ public class ScmApplyInboundService extends MybatisBaseService<ScmApplyInboundMa
return baseMapper.updateFlowFiled(map); return baseMapper.updateFlowFiled(map);
} }
/**
* 更新流程相关的状态
*
* @param updateFlowFieldVo
* @return
*/
private int updateFlowFiled(UpdateFlowFieldVo updateFlowFieldVo) {
UpdateWrapper<ScmApplyInbound> uw = new UpdateWrapper<>();
uw.eq("sid", updateFlowFieldVo.getSid());
if (StringUtils.isNotBlank(updateFlowFieldVo.getProcDefId())) {
uw.set("procDefId", updateFlowFieldVo.getProcDefId());
}
if (StringUtils.isNotBlank(updateFlowFieldVo.getNodeState())) {
uw.set("nodeState", updateFlowFieldVo.getNodeState());
}
if (StringUtils.isNotBlank(updateFlowFieldVo.getProcInsId())) {
uw.set("procInsId", updateFlowFieldVo.getProcInsId());
}
if (StringUtils.isNotBlank(updateFlowFieldVo.getTaskDefKey())) {
uw.set("taskDefKey", updateFlowFieldVo.getTaskDefKey());
}
if (StringUtils.isNotBlank(updateFlowFieldVo.getTaskId())) {
uw.set("taskId", updateFlowFieldVo.getTaskId());
}
// if (StringUtils.isNotBlank(updateFlowFieldVo.getNextNodeUserSids())) {
// uw.set("", updateFlowFieldVo.getNextNodeUserSids());
// }
return baseMapper.update(null, uw);
}
/** /**
* 提交入账申请 * 提交入账申请
*
* @param dto * @param dto
* @return * @return
*/ */
public ResultBean submitRecordApplication(SubmitScmApplyInboundDto dto) { public ResultBean submitRecordApplication(SubmitScmApplyInboundDto dto) {
String orgSid = checkUserOrg(dto.getUserSid()); ResultBean rb = ResultBean.fireFail();
ResultBean resultBean = saveOrUpdateApplyInBound(dto); //取组织架构的全路径sid
String businessSid = resultBean.getData().toString(); // SysStaffOrg sysStaffOrg = sysStaffOrgFeign.getOrgByStaffSid(dto.getUserSid()).getData();
Map<String, Object> variables = new HashMap<>(); String orgSidPath = dto.getOrgSidPath(); //sysStaffOrg.getOrgSidPath();
variables.put("businessSid", businessSid); Map<String, Object> variables = BeanUtil.beanToMap(dto);
variables.put("orgSid", orgSid); //部门sid
if (StringUtils.isBlank(dto.getTaskId())) { // 新提交 ScmApplyInbound booad = new ScmApplyInbound();
ResultBean resultBean1 = flowableService.businessStart(ProcDefEnum.RECORDAPPLICATION.getProDefId(), dto.getUserSid(), variables); int r = submitBusinessData(dto, booad);
if (resultBean1.getSuccess() && resultBean1.getData() != null) { if (r == 0) {
Map<String, String> map = (Map<String, String>) resultBean1.getData(); return rb.setMsg("操作失败,提交的数据不一致!");
//更新业务表中的流程状态
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("sid", businessSid);
paramMap.put("procDefId", ProcDefEnum.RECORDAPPLICATION.getProDefId());
paramMap.put("nodeState", map.get("nodeState"));
paramMap.put("procInsId", map.get("procInsId"));
paramMap.put("taskDefKey", map.get("taskDefKey"));
updateFlowFiled(paramMap);
} }
ResultBean<String> resultBean = saveOrUpdateApplyInBound(dto);
String businessSid = resultBean.getData();
BusinessVariables bv = new BusinessVariables();
bv.setOrgSidPath(orgSidPath);
bv.setBusinessSid(businessSid);
bv.setUserSid(dto.getUserSid());
variables.put("businessSid", businessSid);
bv.setFormVariables(variables);
bv.setModelId(ProcDefEnum.RECORDAPPLICATION.getProDefId());
if (r == 1) {
ResultBean<UpdateFlowFieldVo> resultBean1 = flowableFeign.startProcess(bv);
UpdateFlowFieldVo uff = resultBean1.getData();
updateFlowFiled(uff);
return resultBean1; return resultBean1;
} else { // 驳回到发起人后再次提交 } else if (r == 2) {
variables.put("comment", StringUtils.isNotBlank(dto.getComment()) ? dto.getComment() : "重新提交"); bv.setTaskDefKey(booad.getTaskDefKey());
variables.put("instanceId", dto.getInstanceId()); bv.setComment(StringUtils.isNotBlank(dto.getComment()) ? dto.getComment() : "重新提交");
variables.put("taskId", dto.getTaskId()); bv.setInstanceId(booad.getProcInsId());
variables.put("userSid", dto.getUserSid()); ResultBean<UpdateFlowFieldVo> rrb = flowableFeign.handleProsess(bv);
return complete(variables); updateFlowFiled(rrb.getData());
return rrb;
} }
return rb;
}
private synchronized int submitBusinessData(SubmitScmApplyInboundDto dto, ScmApplyInbound booad) {
int r = 0;
booad = this.fetchBySid(dto.getSid());
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 variables *
* @param dto
* @return * @return
*/ */
public ResultBean complete(Map<String, Object> variables) { public ResultBean complete(SubmitScmApplyInboundDto dto) {
BusinessVariables bv= BusinessVariables.builder().build();
bv.setFormVariables(variables); ResultBean rb = ResultBean.fireFail();
ResultBean<com.yxt.anrui.flowable.api.flowtask.FlowTask> resultBean = flowTaskFeign.businessComplete(bv); ScmApplyInbound booad = this.fetchBySid(dto.getSid());
if (!resultBean.getSuccess()) { if (StringUtils.isBlank(booad.getTaskId()) || !booad.getTaskId().equals(dto.getTaskId())) {
return resultBean; return rb.setMsg("操作失败,提交的数据不一致!");
}
String nodeState = "";
String taskDefKey = "";
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("sid", variables.get("businessSid").toString());
if (resultBean.getData() != null) {
ResultBean<List<LatestTaskVo>> listResultBean = flowTaskFeign.getLatestTasks(resultBean.getData().getProcInsId());
if (listResultBean.getSuccess() && listResultBean.getData() != null && listResultBean.getData().size() != 0) {
nodeState = listResultBean.getData().get(0).getName_();
taskDefKey = listResultBean.getData().get(0).getTask_def_key_();
} else {
nodeState = ProcessStateEnum.FINISHED.getStateName();
taskDefKey = "Event_end";
paramMap.put("flowState", SysFormLinkFlowStateEnum.FINISH.getCode());
}
} }
paramMap.put("nodeState", nodeState);
paramMap.put("taskDefKey", taskDefKey); //取组织架构的全路径sid
updateFlowFiled(paramMap); // SysStaffOrg sysStaffOrg = sysStaffOrgFeign.getOrgByStaffSid(dto.getApplicationSid()).getData();
return resultBean; String orgSidPath = dto.getOrgSidPath();
Map<String, Object> variables = BeanUtil.beanToMap(dto);
BusinessVariables bv = new BusinessVariables();
bv.setTaskId(booad.getTaskId());
bv.setOrgSidPath(orgSidPath);
bv.setBusinessSid(dto.getSid());
bv.setUserSid(dto.getUserSid());
variables.put("businessSid", dto.getSid());
bv.setTaskDefKey(booad.getTaskDefKey());
bv.setComment(StringUtils.isNotBlank(dto.getComment()) ? dto.getComment() : "重新提交");
bv.setInstanceId(booad.getProcInsId());
bv.setFormVariables(variables);
bv.setModelId(ProcDefEnum.RECORDAPPLICATION.getProDefId());
ResultBean<UpdateFlowFieldVo> rrb = flowableFeign.handleProsess(bv);
updateFlowFiled(rrb.getData());
return rrb;
} }
/** /**
* 撤回 * 撤回
*
* @param userSid * @param userSid
* @param businessSid * @param businessSid
* @param flowTaskVo * @param flowTaskVo
@ -298,6 +365,7 @@ public class ScmApplyInboundService extends MybatisBaseService<ScmApplyInboundMa
/** /**
* 驳回 * 驳回
*
* @param businessSid * @param businessSid
* @param flowTaskVo * @param flowTaskVo
* @return * @return
@ -325,6 +393,7 @@ public class ScmApplyInboundService extends MybatisBaseService<ScmApplyInboundMa
/** /**
* 终止流程 * 终止流程
*
* @param businessSid * @param businessSid
* @param flowTaskVo * @param flowTaskVo
* @return * @return
@ -347,6 +416,7 @@ public class ScmApplyInboundService extends MybatisBaseService<ScmApplyInboundMa
/** /**
* 流程历史流转记录 * 流程历史流转记录
*
* @param procInsId * @param procInsId
* @param deployId * @param deployId
* @return * @return
@ -354,4 +424,26 @@ public class ScmApplyInboundService extends MybatisBaseService<ScmApplyInboundMa
public ResultBean flowRecord(String procInsId, String deployId) { public ResultBean flowRecord(String procInsId, String deployId) {
return flowTaskFeign.businessFlowRecord(procInsId, deployId); return flowTaskFeign.businessFlowRecord(procInsId, deployId);
} }
public ResultBean getNextNodesForSubmit(SubmitScmApplyInboundDto dto) {
BusinessVariables bv = new BusinessVariables();
bv.setModelId(ProcDefEnum.RECORDAPPLICATION.getProDefId());
bv.setTaskDefKey(dto.getTaskDefKey());
bv.setFormVariables(BeanUtil.beanToMap(dto));
ResultBean processCirculationNodesByMap = flowTaskFeign.getNextNodesForSubmit(bv);
processCirculationNodesByMap.setCode("200");
processCirculationNodesByMap.setSuccess(true);
return processCirculationNodesByMap;
}
public ResultBean getPreviousNodesForReject(SubmitScmApplyInboundDto dto) {
BusinessVariables bv = new BusinessVariables();
bv.setTaskDefKey(dto.getTaskDefKey());
bv.setModelId(ProcDefEnum.RECORDAPPLICATION.getProDefId());
bv.setFormVariables(BeanUtil.beanToMap(dto));
ResultBean processCirculationNodesByMap = flowTaskFeign.getPreviousNodesForReject(bv);
processCirculationNodesByMap.setCode("200");
processCirculationNodesByMap.setSuccess(true);
return processCirculationNodesByMap;
}
} }

21
anrui-scm/anrui-scm-ui/src/api/ruzhang/scmapplyinbound.js

@ -78,5 +78,26 @@ export default {
'Content-Type': 'application/json' 'Content-Type': 'application/json'
} }
}) })
},
getNextNodesForSubmit: function(data) {
return request({
url: '/scm/v1/scmapplyinbound/getNextNodesForSubmit',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json'
}
})
},
getPreviousNodesForReject(formobj) {
return request({
url: '/scm/v1/scmapplyinbound/getPreviousNodesForReject',
method: 'post',
data: formobj,
headers: {
'Content-Type': 'application/json'
}
})
} }
} }

103
anrui-scm/anrui-scm-ui/src/views/ruzhang/ruzhangguanli/ruzhangAdd.vue

@ -7,10 +7,8 @@
<div>{{ viewTitle }}</div> <div>{{ viewTitle }}</div>
<!--start 添加修改按钮--> <!--start 添加修改按钮-->
<div> <div>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="saveEdit()">保存 <el-button type="primary" size="small" :disabled="submitdisabled" @click="saveEdit()">保存</el-button>
</el-button> <el-button type="primary" size="small" @click="submitVehicleApply()">提交</el-button>
<el-button type="primary" size="small" @click="submitVehicleApply()">提交
</el-button>
<el-button type="info" size="small" @click="handleReturn()">返回</el-button> <el-button type="info" size="small" @click="handleReturn()">返回</el-button>
</div> </div>
</div> </div>
@ -20,54 +18,32 @@
<div class="wlInfo"><span>车辆入账单</span></div> <div class="wlInfo"><span>车辆入账单</span></div>
<el-form ref="form_obj" :model="formobj" :rules="rules" label-position="top"> <el-form ref="form_obj" :model="formobj" :rules="rules" label-position="top">
<el-row class="lineone"> <el-row class="lineone">
<el-col :span="3" class="el-form-item-right"> <el-col :span="3" class="el-form-item-right"><el-form-item label="申请编号:" /></el-col>
<el-form-item label="申请编号:"></el-form-item>
</el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item> <el-form-item><el-input v-model="formobj.applicationCode" readonly /></el-form-item>
<el-input v-model="formobj.applicationCode" readonly/>
</el-form-item>
</el-col>
<el-col :span="3" class="el-form-item-right">
<el-form-item label="采购订单编号:"></el-form-item>
</el-col> </el-col>
<el-col :span="3" class="el-form-item-right"><el-form-item label="采购订单编号:" /></el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item> <el-form-item><el-input v-model="formobj.purchaseOrderNo" readonly /></el-form-item>
<el-input v-model="formobj.purchaseOrderNo" readonly/>
</el-form-item>
</el-col>
<el-col :span="3" class="el-form-item-right">
<el-form-item label="申请人:"></el-form-item>
</el-col> </el-col>
<el-col :span="3" class="el-form-item-right"><el-form-item label="申请人:" /></el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item> <el-form-item><el-input v-model="formobj.applicationName" readonly /></el-form-item>
<el-input v-model="formobj.applicationName" readonly/>
</el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row class="linetwo"> <el-row class="linetwo">
<el-col :span="3" class="el-form-item-right"> <el-col :span="3" class="el-form-item-right"><el-form-item label="车型:" /></el-col>
<el-form-item label="车型:"></el-form-item>
</el-col>
<el-col :span="21"> <el-col :span="21">
<el-form-item> <el-form-item><el-input v-model="formobj.modelName" readonly /></el-form-item>
<el-input v-model="formobj.modelName" readonly/>
</el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row class="linetwo"> <el-row class="linetwo">
<el-col :span="3" class="el-form-item-right"> <el-col :span="3" class="el-form-item-right"><el-form-item label="常用配置:" /></el-col>
<el-form-item label="常用配置:"></el-form-item>
</el-col>
<el-col :span="21"> <el-col :span="21">
<el-form-item> <el-form-item><el-input v-model="formobj.configName" readonly /></el-form-item>
<el-input v-model="formobj.configName" readonly/>
</el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<div class="tableStyle"> <div class="tableStyle"><div style="margin-left: 5px;font-weight: bold">车辆列表</div></div>
<div style="margin-left: 5px;font-weight: bold">车辆列表</div>
</div>
<el-table :key="tableKey" :data="formobj.vehicleList" :index="index" border style="width: 100%"> <el-table :key="tableKey" :data="formobj.vehicleList" :index="index" border style="width: 100%">
<el-table-column fixed width="80px" label="序号" type="index" :index="index + 1" align="center" /> <el-table-column fixed width="80px" label="序号" type="index" :index="index + 1" align="center" />
<el-table-column label="车架号" align="left" header-align="center"> <el-table-column label="车架号" align="left" header-align="center">
@ -83,24 +59,16 @@
</el-table> </el-table>
<el-row style="margin-top: 10px"> <el-row style="margin-top: 10px">
<el-col> <el-col>
<el-col :span="3" class="el-form-item-right"> <el-col :span="3" class="el-form-item-right"><el-form-item label="厂家发车日期:" /></el-col>
<el-form-item label="厂家发车日期:"></el-form-item>
</el-col>
<el-col :span="21"> <el-col :span="21">
<el-form-item> <el-form-item><el-date-picker v-model="formobj.departureDate" value-format="yyyy-MM-dd" clearable type="date" placeholder="开始日期" /></el-form-item>
<el-date-picker value-format="yyyy-MM-dd" v-model="formobj.departureDate" clearable type="date" placeholder="开始日期"/>
</el-form-item>
</el-col> </el-col>
</el-col> </el-col>
</el-row> </el-row>
<el-row class="linethree"> <el-row class="linethree">
<el-col :span="3" class="el-form-item-right"> <el-col :span="3" class="el-form-item-right"><el-form-item label="备注:" /></el-col>
<el-form-item label="备注:"></el-form-item>
</el-col>
<el-col :span="21"> <el-col :span="21">
<el-form-item> <el-form-item><el-input v-model="formobj.remarks" clearable /></el-form-item>
<el-input v-model="formobj.remarks" clearable/>
</el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
@ -113,7 +81,7 @@
<script> <script>
import req from '@/api/ruzhang/scmapplyinbound' import req from '@/api/ruzhang/scmapplyinbound'
export default { export default {
name: 'ruzhangAdd', name: 'RuzhangAdd',
data() { data() {
return { return {
viewTitle: '', viewTitle: '',
@ -122,9 +90,9 @@ export default {
// //
formobj: { formobj: {
sid: '', // sid sid: '', // sid
applicationSid: window.sessionStorage.getItem('userSid'), // sid
userSid: window.sessionStorage.getItem('userSid'), // sid userSid: window.sessionStorage.getItem('userSid'), // sid
applicationName: window.sessionStorage.getItem('name'), // orgSidPath: window.sessionStorage.getItem('orgSidPath'),
staffSid: window.sessionStorage.getItem('staffSid'),
applicationCode: '', // applicationCode: '', //
configName: '', configName: '',
departureDate: '', departureDate: '',
@ -133,6 +101,7 @@ export default {
purchaseOrderNo: '', purchaseOrderNo: '',
remarks: '', // remarks: '', //
vehicleOrderSid: '', vehicleOrderSid: '',
taskId: '',
vehicleList: [] vehicleList: []
}, },
rules: {}, rules: {},
@ -146,8 +115,12 @@ export default {
}) })
this.viewTitle = '【编辑】入账单' this.viewTitle = '【编辑】入账单'
console.log('编辑回显', sid, row) console.log('编辑回显', sid, row)
req.fetchBySid(sid).then((resp) => { req
.fetchBySid(sid)
.then(resp => {
const data = resp.data const data = resp.data
this.formobj.applicationSid = data.applicationSid
this.formobj.applicationName = data.applicationName
this.formobj.applicationCode = data.applicationCode this.formobj.applicationCode = data.applicationCode
this.formobj.remarks = data.remarks this.formobj.remarks = data.remarks
this.formobj.sid = sid this.formobj.sid = sid
@ -157,8 +130,9 @@ export default {
this.formobj.modelSid = data.modelSid this.formobj.modelSid = data.modelSid
this.formobj.purchaseOrderNo = data.purchaseOrderNo this.formobj.purchaseOrderNo = data.purchaseOrderNo
this.formobj.vehicleOrderSid = data.vehicleOrderSid this.formobj.vehicleOrderSid = data.vehicleOrderSid
this.formobj.taskId = data.taskId
if (data.inboundVehicleList.length > 0) { if (data.inboundVehicleList.length > 0) {
data.inboundVehicleList.forEach((e) => { data.inboundVehicleList.forEach(e => {
this.formobj.vehicleList.push({ this.formobj.vehicleList.push({
applySid: e.applySid, applySid: e.applySid,
remarks: e.remarks, remarks: e.remarks,
@ -179,16 +153,19 @@ export default {
// }) // })
// } // }
// } // }
}).catch((e) => { })
.catch(e => {
this.formobj = row this.formobj = row
}) })
}, },
saveEdit() { saveEdit() {
console.log(this.formobj, 636363) console.log(this.formobj, 636363)
this.$refs['form_obj'].validate((valid) => { this.$refs['form_obj'].validate(valid => {
if (valid) { if (valid) {
this.submitdisabled = true this.submitdisabled = true
req.saveOrUpdate(this.formobj).then((resp) => { req
.saveOrUpdate(this.formobj)
.then(resp => {
this.submitdisabled = false this.submitdisabled = false
this.$message({ this.$message({
showClose: true, showClose: true,
@ -196,7 +173,8 @@ export default {
message: resp.msg message: resp.msg
}) })
this.handleReturn('true') this.handleReturn('true')
}).catch(() => { })
.catch(() => {
this.submitdisabled = false this.submitdisabled = false
}) })
} else { } else {
@ -205,9 +183,9 @@ export default {
}) })
}, },
submitVehicleApply() { submitVehicleApply() {
req.submitVehicleApply(this.formobj).then((res) => { req.submitVehicleApply(this.formobj).then(res => {
console.log(res.code, res.success) console.log(res.code, res.success)
if (res.code == '200' && res.success) { if (res.code === '200' && res.success) {
this.$message({ this.$message({
showClose: true, showClose: true,
type: 'success', type: 'success',
@ -231,7 +209,7 @@ export default {
this.formobj.vehicleList = [] this.formobj.vehicleList = []
this.$refs['form_obj'].resetFields() this.$refs['form_obj'].resetFields()
this.$emit('doback') this.$emit('doback')
}, }
} }
} }
</script> </script>
@ -264,7 +242,7 @@ export default {
margin-bottom: 0px !important; margin-bottom: 0px !important;
} }
.tableStyle { .tableStyle {
background-color: #FFFFFF; background-color: #ffffff;
display: flex; display: flex;
justify-content: flex-start; justify-content: flex-start;
align-items: center; align-items: center;
@ -276,4 +254,3 @@ export default {
text-align: right; text-align: right;
} }
</style> </style>

26
anrui-scm/anrui-scm-ui/src/views/workFlow/ruzhangguanliFlow/ruzhangguanli/ruzhangEdit.vue

@ -21,7 +21,7 @@
<el-form ref="form_obj" :model="formobj" :rules="rules" label-position="top"> <el-form ref="form_obj" :model="formobj" :rules="rules" label-position="top">
<el-row class="lineone"> <el-row class="lineone">
<el-col :span="3" class="el-form-item-right"> <el-col :span="3" class="el-form-item-right">
<el-form-item label="申请编号:"></el-form-item> <el-form-item label="申请编号:" />
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item> <el-form-item>
@ -29,7 +29,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="3" class="el-form-item-right"> <el-col :span="3" class="el-form-item-right">
<el-form-item label="采购订单编号:"></el-form-item> <el-form-item label="采购订单编号:" />
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item> <el-form-item>
@ -37,7 +37,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="3" class="el-form-item-right"> <el-col :span="3" class="el-form-item-right">
<el-form-item label="申请人:"></el-form-item> <el-form-item label="申请人:" />
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item> <el-form-item>
@ -47,7 +47,7 @@
</el-row> </el-row>
<el-row class="linetwo"> <el-row class="linetwo">
<el-col :span="3" class="el-form-item-right"> <el-col :span="3" class="el-form-item-right">
<el-form-item label="车型:"></el-form-item> <el-form-item label="车型:" />
</el-col> </el-col>
<el-col :span="21"> <el-col :span="21">
<el-form-item> <el-form-item>
@ -57,7 +57,7 @@
</el-row> </el-row>
<el-row class="linetwo"> <el-row class="linetwo">
<el-col :span="3" class="el-form-item-right"> <el-col :span="3" class="el-form-item-right">
<el-form-item label="常用配置:"></el-form-item> <el-form-item label="常用配置:" />
</el-col> </el-col>
<el-col :span="21"> <el-col :span="21">
<el-form-item> <el-form-item>
@ -84,18 +84,18 @@
<el-row style="margin-top: 10px"> <el-row style="margin-top: 10px">
<el-col> <el-col>
<el-col :span="3" class="el-form-item-right"> <el-col :span="3" class="el-form-item-right">
<el-form-item label="厂家发车日期:"></el-form-item> <el-form-item label="厂家发车日期:" />
</el-col> </el-col>
<el-col :span="21"> <el-col :span="21">
<el-form-item> <el-form-item>
<el-date-picker value-format="yyyy-MM-dd" v-model="formobj.departureDate" clearable type="date" placeholder="开始日期"/> <el-date-picker v-model="formobj.departureDate" value-format="yyyy-MM-dd" clearable type="date" placeholder="开始日期" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-col> </el-col>
</el-row> </el-row>
<el-row class="linethree"> <el-row class="linethree">
<el-col :span="3" class="el-form-item-right"> <el-col :span="3" class="el-form-item-right">
<el-form-item label="备注:"></el-form-item> <el-form-item label="备注:" />
</el-col> </el-col>
<el-col :span="21"> <el-col :span="21">
<el-form-item> <el-form-item>
@ -113,7 +113,7 @@
<script> <script>
import req from '@/api/ruzhang/scmapplyinbound' import req from '@/api/ruzhang/scmapplyinbound'
export default { export default {
name: 'ruzhangAdd', name: 'RuzhangAdd',
data() { data() {
return { return {
viewTitle: '', viewTitle: '',
@ -160,6 +160,14 @@ export default {
this.formobj.businessSid = sid this.formobj.businessSid = sid
this.formobj.instanceId = obj.instanceId this.formobj.instanceId = obj.instanceId
this.formobj.taskId = obj.taskId this.formobj.taskId = obj.taskId
window.parent.postMessage({
cmd: 'returnHeight',
params: {
//
code: 2,
data: 1500 + 'px'
}
}, '*')
}, },
methods: { methods: {
showInfo(sid) { showInfo(sid) {

331
anrui-scm/anrui-scm-ui/src/views/workFlow/ruzhangguanliFlow/ruzhangguanli/ruzhangInfo.vue

@ -1,5 +1,4 @@
<template> <template>
<div class="app-container">
<div> <div>
<!--标题按钮部分开始--> <!--标题按钮部分开始-->
<div class="tab-header webtop"> <div class="tab-header webtop">
@ -11,75 +10,40 @@
<el-button v-show="transactState == '00'" type="danger" @click="openReject"> </el-button> <el-button v-show="transactState == '00'" type="danger" @click="openReject"> </el-button>
<el-button v-show="transactState == '00'" type="danger" @click="openStop"> </el-button> <el-button v-show="transactState == '00'" type="danger" @click="openStop"> </el-button>
<el-button v-show="transactState == '01'" type="danger" @click="openRevoke"> </el-button> <el-button v-show="transactState == '01'" type="danger" @click="openRevoke"> </el-button>
<el-button type="info"> </el-button>
</div> </div>
</div> </div>
<!--标题按钮部分结束--> <!--标题按钮部分结束-->
<!--Start 新增修改部分--> <!--Start 新增修改部分-->
<div class="listconadd"> <div>
<div class="wlInfo"><span>车辆入账单</span></div> <div class="wlInfo"><span>车辆入账单</span></div>
<el-form ref="form_obj" :model="formobj" :rules="rules" label-position="top"> <el-form ref="form_obj" :model="formobj" :rules="rules" label-position="top">
<el-row class="lineone"> <el-row class="linetwo">
<el-col :span="3" class="el-form-item-right"> <el-col :span="3" class="el-form-item-right"><el-form-item label="申请编号:" /></el-col>
<el-form-item label="申请编号:"></el-form-item>
</el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item> <el-form-item><el-input v-model="formobj.applicationCode" readonly /></el-form-item>
<el-input v-model="formobj.applicationCode" readonly/>
</el-form-item>
</el-col>
<el-col :span="3" class="el-form-item-right">
<el-form-item label="采购订单编号:"></el-form-item>
</el-col> </el-col>
<el-col :span="3" class="el-form-item-right"><el-form-item label="采购订单编号:" /></el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item> <el-form-item><el-input v-model="formobj.purchaseOrderNo" readonly /></el-form-item>
<el-input v-model="formobj.purchaseOrderNo" readonly/>
</el-form-item>
</el-col>
<el-col :span="3" class="el-form-item-right">
<el-form-item label="申请人:"></el-form-item>
</el-col> </el-col>
<el-col :span="3" class="el-form-item-right"><el-form-item label="申请人:" /></el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item> <el-form-item><el-input v-model="formobj.applicationName" readonly /></el-form-item>
<el-input v-model="formobj.applicationName" readonly/>
</el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row class="linetwo"> <el-row class="linetwo">
<el-col :span="3" class="el-form-item-right"> <el-col :span="3" class="el-form-item-right"><el-form-item label="车型:" /></el-col>
<el-form-item label="车型:"></el-form-item>
</el-col>
<el-col :span="21"> <el-col :span="21">
<el-form-item> <el-form-item><el-input v-model="formobj.modelName" readonly /></el-form-item>
<el-input v-model="formobj.modelName" readonly/>
</el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row class="linetwo"> <el-row class="linetwo">
<el-col :span="3" class="el-form-item-right"> <el-col :span="3" class="el-form-item-right"><el-form-item label="常用配置:" /></el-col>
<el-form-item label="常用配置:"></el-form-item>
</el-col>
<el-col :span="21"> <el-col :span="21">
<el-form-item> <el-form-item><el-input v-model="formobj.configName" readonly /></el-form-item>
<el-input v-model="formobj.configName" readonly/>
</el-form-item>
</el-col>
</el-row>
<div v-show="transactState=='00'">
<!-- <div class="diaTitle"><i class="el-icon-chat-line-square"></i><span>审批意见</span></div>-->
<el-form :model="dialogList" :inline="true" label-width="80px">
<el-row>
<el-col>
<el-form-item label="审批意见">
<el-input v-model="dialogList.comment" type="textarea" maxlength="20" placeholder="请输入审批意见" class="inputType" clearable/>
</el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-form> <div class="tableStyle"><div style="margin-left: 5px;font-weight: bold">车辆列表</div></div>
</div>
<div class="tableStyle">
<div style="margin-left: 5px;font-weight: bold">车辆列表</div>
</div>
<el-table :key="tableKey" :data="formobj.vehicleList" :index="index" border style="width: 100%"> <el-table :key="tableKey" :data="formobj.vehicleList" :index="index" border style="width: 100%">
<el-table-column fixed width="80px" label="序号" type="index" :index="index + 1" align="center" /> <el-table-column fixed width="80px" label="序号" type="index" :index="index + 1" align="center" />
<el-table-column label="车架号" align="left" header-align="center"> <el-table-column label="车架号" align="left" header-align="center">
@ -95,48 +59,86 @@
</el-table> </el-table>
<el-row class="linetwo" style="margin-top: 10px"> <el-row class="linetwo" style="margin-top: 10px">
<el-col> <el-col>
<el-col :span="3" class="el-form-item-right"> <el-col :span="3" class="el-form-item-right"><el-form-item label="厂家发车日期:" /></el-col>
<el-form-item label="厂家发车日期:"></el-form-item>
</el-col>
<el-col :span="21"> <el-col :span="21">
<el-form-item> <el-form-item><el-input v-model="formobj.departureDate" placeholder="" class="addinputw" clearable readonly /></el-form-item>
<el-input v-model="formobj.departureDate" placeholder="" class="addinputw" clearable readonly/>
</el-form-item>
</el-col> </el-col>
</el-col> </el-col>
</el-row> </el-row>
<el-row class="linetwo"> <el-row class="linetwo">
<el-col :span="3" class="el-form-item-right"> <el-col :span="3" class="el-form-item-right"><el-form-item label="备注:" /></el-col>
<el-form-item label="备注:"></el-form-item>
</el-col>
<el-col :span="21"> <el-col :span="21">
<el-form-item> <el-form-item><el-input v-model="formobj.remarks" clearable readonly /></el-form-item>
<el-input v-model="formobj.remarks" clearable readonly/> </el-col>
</el-row>
</el-form>
<!-- 选择待办人 同意 的弹出框-->
<el-dialog title="同意" :visible.sync="nodeDialogVisible" width="80%">
<el-form label-position="right" class="formadd">
<el-row>
<el-col :span="4" class="tleftb">当前环节</el-col>
<el-col :span="20" class="trightb">
<el-form-item prop="purchasingUnitName">
<span>{{ formobj.nodeState }}->{{ nextNode.name }}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row>
<el-col :span="4" class="tleftb">意见</el-col>
<el-col :span="20" class="trightb"><el-input v-model="formobj.comment" size="small" placeholder="审批意见" class="addinputw" clearable /></el-col>
</el-row>
<div style="text-align:center;margin-top: 20px;">
<el-button type="primary" size="mini" @click="handleAgree"> </el-button>
<el-button type="info " size="mini" @click="closeNodeDialog"> </el-button>
</div>
</el-form> </el-form>
</el-dialog>
<!-- 选择待办人 驳回 的弹出框-->
<el-dialog title="驳回" :visible.sync="nodeDialogVisibleForReject" width="80%">
<el-form label-position="right" class="formadd">
<el-row>
<el-col :span="4" class="tleftb">当前环节</el-col>
<el-col :span="20" class="trightb">
<el-form-item prop="purchasingUnitName">
<span>{{ formobj.nodeState }}->{{ nextNode.name }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">原因</el-col>
<el-col :span="20" class="trightb"><el-input v-model="formobj.comment" size="small" placeholder="驳回原因" class="addinputw" clearable /></el-col>
</el-row>
<div style="text-align:center;margin-top: 20px;">
<el-button type="primary" size="mini" @click="handleReject"> </el-button>
<el-button type="info " size="mini" @click="closeNodeDialog"> </el-button>
</div> </div>
</el-form>
</el-dialog>
</div> </div>
<!--End 添加修改部分-->
</div> </div>
</template> </template>
<script> <script>
import req from '@/api/ruzhang/scmapplyinbound' import req from '@/api/ruzhang/scmapplyinbound'
export default { export default {
name: 'ruzhangInfo', name: 'RuzhangInfo',
data() { data() {
return { return {
//
nodeDialogVisible: false,
nodeDialogVisibleForReject: false,
//
nextNode: {},
viewTitle: '', viewTitle: '',
index: 0, index: 0,
tableKey: 0, tableKey: 0,
// //
formobj: { formobj: {
sid: '', // sid sid: '', // sid
applicationSid: window.sessionStorage.getItem('userSid'), // sid userSid: window.sessionStorage.getItem('userSid'), // sid
applicationName: window.sessionStorage.getItem('name'), // orgSidPath: window.sessionStorage.getItem('orgSidPath'),
applicationCode: '', // staffSid: window.sessionStorage.getItem('staffSid'),
configName: '', configName: '',
departureDate: '', departureDate: '',
modelName: '', modelName: '',
@ -218,16 +220,36 @@ export default {
this.revokeList.taskId = obj.taskId this.revokeList.taskId = obj.taskId
// //
this.transactState = obj.transactState this.transactState = obj.transactState
window.parent.postMessage(
{
cmd: 'returnHeight',
params: {
//
code: 2,
data: 600 + 'px'
}
},
'*'
)
}, },
methods: { methods: {
//
closeNodeDialog() {
this.nodeDialogVisible = false
this.nodeDialogVisibleForReject = false
},
showInfo(sid, row) { showInfo(sid, row) {
this.$nextTick(() => { this.$nextTick(() => {
this.$refs['form_obj'].clearValidate() this.$refs['form_obj'].clearValidate()
}) })
this.viewTitle = '入账单详情' this.viewTitle = '入账单详情'
console.log('编辑回显', sid, row) console.log('编辑回显', sid, row)
req.fetchBySid(sid).then((resp) => { req
.fetchBySid(sid)
.then(resp => {
const data = resp.data const data = resp.data
this.formobj.applicationSid = data.applicationSid
this.formobj.applicationName = data.applicationName
this.formobj.applicationCode = data.applicationCode this.formobj.applicationCode = data.applicationCode
this.formobj.remarks = data.remarks this.formobj.remarks = data.remarks
this.formobj.sid = sid this.formobj.sid = sid
@ -237,8 +259,11 @@ export default {
this.formobj.modelSid = data.modelSid this.formobj.modelSid = data.modelSid
this.formobj.purchaseOrderNo = data.purchaseOrderNo this.formobj.purchaseOrderNo = data.purchaseOrderNo
this.formobj.vehicleOrderSid = data.vehicleOrderSid this.formobj.vehicleOrderSid = data.vehicleOrderSid
this.formobj.taskDefKey = data.taskDefKey
this.formobj.taskId = data.taskId
this.formobj.nodeState = data.nodeState
if (data.inboundVehicleList.length > 0) { if (data.inboundVehicleList.length > 0) {
data.inboundVehicleList.forEach((e) => { data.inboundVehicleList.forEach(e => {
this.formobj.vehicleList.push({ this.formobj.vehicleList.push({
applySid: e.applySid, applySid: e.applySid,
remarks: e.remarks, remarks: e.remarks,
@ -248,38 +273,106 @@ export default {
}) })
}) })
} }
}).catch((e) => { })
.catch(e => {
this.formobj = row this.formobj = row
}) })
}, },
// //
openAgree() { openAgree() {
this.$confirm('是否确认执行同意操作', '提示', { // id
confirmButtonText: '确定', req.getNextNodesForSubmit(this.formobj).then(resp => {
cancelButtonText: '取消', if (resp.success) {
type: 'warning' var arr = resp.data
}).then(() => { this.nextNode = arr[0]
this.handleAgree() this.nodeDialogVisible = true
}).catch(() => { }
this.$message({ this.submitdisabled = false
type: 'info', })
message: '已取消同意' },
/** 同意任务 */
handleAgree() {
if (!this.formobj.comment) {
alert('请填写审批意见!')
return
}
//
// sid
//
req.businessAgree(this.formobj).then(response => {
if (response.code === '200') {
this.nodeDialogVisible = false
//
window.parent.postMessage(
{
cmd: 'returnHeight',
params: {
//
code: 1
}
},
'*'
)
} else {
this.$notify({
title: '提示',
message: '执行失败',
type: 'error',
duration: 2000
}) })
}
}) })
}, },
// //
openReject() { openReject() {
this.$confirm('是否确认执行驳回操作', '提示', { req.getPreviousNodesForReject(this.formobj).then(resp => {
confirmButtonText: '确定', if (resp.success) {
cancelButtonText: '取消', var arr = resp.data
type: 'warning' //
}).then(() => { var startTask = arr[0].startTask
this.handleReject() if (startTask) {
}).catch(() => { alert('当前环节不能驳回!')
this.$message({ return
type: 'info', }
message: '已取消驳回' this.nextNode = arr[0]
this.nodeDialogVisibleForReject = true
}
})
},
/** 驳回任务 */
handleReject() {
if (!this.formobj.comment) {
alert('请填写审批意见!')
return
}
this.regectList.comment = this.dialogList.comment
req.rejectTask(this.regectList).then(response => {
if (response.code === '200') {
this.$notify({
title: '提示',
message: '执行成功',
type: 'success',
duration: 2000
})
this.nodeDialogVisibleForReject = false
window.parent.postMessage(
{
cmd: 'returnHeight',
params: {
code: 1
}
},
'*'
)
// this.refreshIt()
} else {
this.$notify({
title: '提示',
message: '执行失败',
type: 'error',
duration: 2000
}) })
}
}) })
}, },
// //
@ -288,9 +381,11 @@ export default {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning' type: 'warning'
}).then(() => { })
.then(() => {
this.handleStop() this.handleStop()
}).catch(() => { })
.catch(() => {
this.$message({ this.$message({
type: 'info', type: 'info',
message: '已取消终止' message: '已取消终止'
@ -303,62 +398,21 @@ export default {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning' type: 'warning'
}).then(() => { })
.then(() => {
this.handleRevoke() this.handleRevoke()
}).catch(() => { })
.catch(() => {
this.$message({ this.$message({
type: 'info', type: 'info',
message: '已取消撤回' message: '已取消撤回'
}) })
}) })
}, },
/** 同意任务 */
handleAgree() {
this.agreeList.comment = this.dialogList.comment
req.businessAgree(this.agreeList).then((response) => {
if (response.code === '200') {
this.$notify({
title: '提示',
message: '执行成功',
type: 'success',
duration: 2000
})
this.refreshIt()
} else {
this.$notify({
title: '提示',
message: '执行失败',
type: 'error',
duration: 2000
})
}
})
},
/** 终止任务 */ /** 终止任务 */
handleStop() { handleStop() {
this.stopList.comment = this.dialogList.comment this.stopList.comment = this.dialogList.comment
req.breakTask(this.stopList).then((response) => { req.breakTask(this.stopList).then(response => {
if (response.code === '200') {
this.$notify({
title: '提示',
message: '执行成功',
type: 'success',
duration: 2000
})
} else {
this.$notify({
title: '提示',
message: '执行失败',
type: 'error',
duration: 2000
})
}
})
},
/** 驳回任务 */
handleReject() {
this.regectList.comment = this.dialogList.comment
req.rejectTask(this.regectList).then((response) => {
if (response.code === '200') { if (response.code === '200') {
this.$notify({ this.$notify({
title: '提示', title: '提示',
@ -379,7 +433,7 @@ export default {
/** 撤回任务 */ /** 撤回任务 */
handleRevoke() { handleRevoke() {
this.revokeList.comment = this.dialogList.comment this.revokeList.comment = this.dialogList.comment
req.revokeTask(this.revokeList).then((response) => { req.revokeTask(this.revokeList).then(response => {
if (response.code === '200') { if (response.code === '200') {
this.$notify({ this.$notify({
title: '提示', title: '提示',
@ -426,7 +480,7 @@ export default {
border: 0; border: 0;
} }
.tableStyle { .tableStyle {
background-color: #FFFFFF; background-color: #ffffff;
display: flex; display: flex;
justify-content: flex-start; justify-content: flex-start;
align-items: center; align-items: center;
@ -440,4 +494,3 @@ export default {
width: 600px; width: 600px;
} }
</style> </style>

46
doc/databases/anrui-scm/modify.sql

@ -0,0 +1,46 @@
set @@GLOBAL.sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
DROP TABLE IF EXISTS `scm_apply_inbound`;
CREATE TABLE `scm_apply_inbound` (
`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
`sid` VARCHAR(64) NOT NULL COMMENT 'sid' ,
`lockVersion` INT(11) NULL DEFAULT '0' COMMENT '版本锁',
`createTime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`modifyTime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
`isEnable` INT(11) NULL DEFAULT '1' COMMENT '是否可用:1可用,0不可用',
`state` INT(11) NULL DEFAULT '1' COMMENT '状态',
`isDelete` INT(11) NULL DEFAULT '0' COMMENT '是否删除:0未删除,1已删除',
`remarks` VARCHAR(255) NULL DEFAULT NULL COMMENT '备注' ,
`createBySid` VARCHAR(64) NULL DEFAULT NULL COMMENT '创建人sid' ,
`updateBySid` VARCHAR(64) NULL DEFAULT NULL COMMENT '修改人sid' ,
`applicationCode` VARCHAR(64) NULL DEFAULT NULL COMMENT '申请编号' ,
`applicationSid` VARCHAR(64) NULL DEFAULT NULL COMMENT '申请人sid' ,
`applicationName` VARCHAR(64) NULL DEFAULT NULL COMMENT '申请人名称' ,
`applicationDate` VARCHAR(64) NULL DEFAULT NULL COMMENT '申请日期' ,
`vehicleOrderSid` VARCHAR(64) NULL DEFAULT NULL COMMENT '采购订单sid' ,
`purchaseOrderNo` VARCHAR(64) NULL DEFAULT NULL COMMENT '采购订单编号' ,
`modelSid` VARCHAR(64) NULL DEFAULT NULL COMMENT '车型sid ' ,
`modelName` VARCHAR(255) NULL DEFAULT NULL COMMENT '车型名称' ,
`configName` TEXT NULL DEFAULT NULL COMMENT '常用配置' ,
`departureDate` VARCHAR(64) NULL DEFAULT NULL COMMENT '厂家发车日期' ,
`procDefId` VARCHAR(40) NULL DEFAULT NULL COMMENT '流程定义的id' ,
`procInsId` VARCHAR(40) NULL DEFAULT NULL COMMENT '流程实例的id' ,
`nodeState` VARCHAR(12) NULL DEFAULT NULL COMMENT '当前环节状态' ,
`taskDefKey` VARCHAR(60) NULL DEFAULT NULL COMMENT '环节定义的ID' ,
`orgSid` VARCHAR(64) NULL DEFAULT NULL COMMENT '部门sid' ,
`useOrgSid` VARCHAR(64) NULL DEFAULT NULL COMMENT '分公司sid',
`taskId` VARCHAR(64) NULL DEFAULT NULL COMMENT 'taskId' ,
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB COMMENT='车辆入账单' ;
INSERT INTO `scm_apply_inbound` (`sid`, `createTime`, `applicationCode`, `applicationSid`, `applicationName`, `applicationDate`, `vehicleOrderSid`, `purchaseOrderNo`, `modelSid`, `modelName`, `configName`, `departureDate`, `nodeState` ) VALUES
('11',NOW(), '1', '0d8d8119-d476-47ce-89c2-075cd809dda6', '董建钊', '1', '1', '1', '1', '1', '1', '1', '待提交' );
INSERT INTO `scm_apply_inbound` (`sid`, `createTime`, `applicationCode`, `applicationSid`, `applicationName`, `applicationDate`, `vehicleOrderSid`, `purchaseOrderNo`, `modelSid`, `modelName`, `configName`, `departureDate`, `nodeState` ) VALUES
('22',NOW(), '1', '0d8d8119-d476-47ce-89c2-075cd809dda6', '董建钊', '2', '2', '2', '2', '2', '2', '2', '待提交' );
Loading…
Cancel
Save