Browse Source

入账申请流程

zhanglei
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. 30
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInboundFeign.java
  4. 108
      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. 20
      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. 700
      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. 189
      anrui-scm/anrui-scm-ui/src/views/ruzhang/ruzhangguanli/ruzhangAdd.vue
  11. 44
      anrui-scm/anrui-scm-ui/src/views/workFlow/ruzhangguanliFlow/ruzhangguanli/ruzhangEdit.vue
  12. 477
      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;
} }

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

@ -46,7 +46,7 @@ public interface ScmApplyInboundFeign {
@ApiOperation("新增和修改车辆入账单") @ApiOperation("新增和修改车辆入账单")
@PostMapping("/saveOrUpdateApplyInBound") @PostMapping("/saveOrUpdateApplyInBound")
public ResultBean saveOrUpdateApplyInBound(@RequestBody @Valid ScmApplyInboundDto dto); public ResultBean saveOrUpdateApplyInBound(@RequestBody @Valid ScmApplyInboundDto dto);
@ApiOperation("根据sid查询车辆入账单详情") @ApiOperation("根据sid查询车辆入账单详情")
@GetMapping("/fetchSid/{sid}") @GetMapping("/fetchSid/{sid}")
public ResultBean<ScmApplyInboundVo> fetchSid(@PathVariable("sid") String sid); public ResultBean<ScmApplyInboundVo> fetchSid(@PathVariable("sid") String sid);
@ -58,29 +58,37 @@ 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}")
public ResultBean revokeProcess( public ResultBean revokeProcess(
@ApiParam(value = "用户sid") @PathVariable(value = "userSid")String userSid, @ApiParam(value = "用户sid") @PathVariable(value = "userSid") String userSid,
@ApiParam(value = "业务sid") @PathVariable(value = "businessSid")String businessSid, @ApiParam(value = "业务sid") @PathVariable(value = "businessSid") String businessSid,
@ApiParam(value = "工作流任务相关--请求参数") @RequestBody FlowTaskVo flowTaskVo) ; @ApiParam(value = "工作流任务相关--请求参数") @RequestBody FlowTaskVo flowTaskVo);
@ApiOperation(value = "驳回任务") @ApiOperation(value = "驳回任务")
@PostMapping(value = "/reject/{businessSid}") @PostMapping(value = "/reject/{businessSid}")
public ResultBean taskReject(@ApiParam(value = "业务sid") @PathVariable(value = "businessSid")String businessSid, public ResultBean taskReject(@ApiParam(value = "业务sid") @PathVariable(value = "businessSid") String businessSid,
@ApiParam(value = "工作流任务相关--请求参数")@RequestBody FlowTaskVo flowTaskVo); @ApiParam(value = "工作流任务相关--请求参数") @RequestBody FlowTaskVo flowTaskVo);
@ApiOperation(value = "终止任务") @ApiOperation(value = "终止任务")
@PostMapping(value = "/breakProcess/{businessSid}") @PostMapping(value = "/breakProcess/{businessSid}")
public ResultBean breakProcess(@ApiParam(value = "业务sid") @PathVariable(value = "businessSid")String businessSid, public ResultBean breakProcess(@ApiParam(value = "业务sid") @PathVariable(value = "businessSid") String businessSid,
@RequestBody FlowTaskVo flowTaskVo); @RequestBody FlowTaskVo flowTaskVo);
@ApiOperation(value = "流程历史流转记录" ) @ApiOperation(value = "流程历史流转记录")
@GetMapping(value = "/task/flowRecord/{procInsId}/{deployId}") @GetMapping(value = "/task/flowRecord/{procInsId}/{deployId}")
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);
/*************************************************审批流程***************************************************/ /*************************************************审批流程***************************************************/

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

@ -25,62 +25,74 @@ import java.util.Map;
@Component @Component
public class ScmApplyInboundFeignFallback implements ScmApplyInboundFeign { public class ScmApplyInboundFeignFallback implements ScmApplyInboundFeign {
@Override @Override
public ResultBean listPage(PagerQuery<ScmApplyInboundQuery> pq){ public ResultBean listPage(PagerQuery<ScmApplyInboundQuery> pq) {
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui-scm/scmapplyinbound/listPage无法访问"); return rb.setMsg("接口anrui-scm/scmapplyinbound/listPage无法访问");
} }
@Override @Override
public ResultBean<List<ScmApplyInboundVo>> listAll(ScmApplyInboundQuery query){ public ResultBean<List<ScmApplyInboundVo>> listAll(ScmApplyInboundQuery query) {
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui-scm/scmapplyinbound/listAll无法访问"); return rb.setMsg("接口anrui-scm/scmapplyinbound/listAll无法访问");
} }
@Override @Override
public ResultBean saveOrUpdateApplyInBound(ScmApplyInboundDto dto){ public ResultBean saveOrUpdateApplyInBound(ScmApplyInboundDto dto) {
return ResultBean.fireFail().setMsg("接口anrui-scm/scmapplyinbound/save无法访问"); return ResultBean.fireFail().setMsg("接口anrui-scm/scmapplyinbound/save无法访问");
} }
@Override @Override
public ResultBean<ScmApplyInboundVo> fetchSid(String sid) { public ResultBean<ScmApplyInboundVo> fetchSid(String sid) {
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui-scm/scmapplyinbound/fetchSid无法访问"); return rb.setMsg("接口anrui-scm/scmapplyinbound/fetchSid无法访问");
} }
@Override @Override
public ResultBean submitRecordApplication(SubmitScmApplyInboundDto dto) { public ResultBean submitRecordApplication(SubmitScmApplyInboundDto dto) {
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui-scm/scmapplyinbound/submitRecordApplication无法访问"); return rb.setMsg("接口anrui-scm/scmapplyinbound/submitRecordApplication无法访问");
} }
@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无法访问");
} }
@Override @Override
public ResultBean revokeProcess(String userSid, String businessSid, FlowTaskVo flowTaskVo) { public ResultBean revokeProcess(String userSid, String businessSid, FlowTaskVo flowTaskVo) {
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui-scm/scmapplyinbound/revokeProcess无法访问"); return rb.setMsg("接口anrui-scm/scmapplyinbound/revokeProcess无法访问");
} }
@Override @Override
public ResultBean taskReject(String businessSid, FlowTaskVo flowTaskVo) { public ResultBean taskReject(String businessSid, FlowTaskVo flowTaskVo) {
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui-scm/scmapplyinbound/taskReject无法访问"); return rb.setMsg("接口anrui-scm/scmapplyinbound/taskReject无法访问");
} }
@Override @Override
public ResultBean breakProcess(String businessSid, FlowTaskVo flowTaskVo) { public ResultBean breakProcess(String businessSid, FlowTaskVo flowTaskVo) {
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui-scm/scmapplyinbound/breakProcess无法访问"); return rb.setMsg("接口anrui-scm/scmapplyinbound/breakProcess无法访问");
} }
@Override
public ResultBean flowRecord(String procInsId, String deployId) {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui-scm/scmapplyinbound/flowRecord无法访问");
}
@Override @Override
public ResultBean flowRecord(String procInsId, String deployId) { public ResultBean getNextNodesForSubmit(SubmitScmApplyInboundDto dto) {
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui-scm/scmapplyinbound/flowRecord无法访问"); 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;
} }

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

@ -12,7 +12,7 @@ import lombok.Data;
*/ */
@ApiModel("提交") @ApiModel("提交")
@Data @Data
public class SubmitScmApplyInboundDto extends ScmApplyInboundDto{ public class SubmitScmApplyInboundDto extends ScmApplyInboundDto {
@ApiModelProperty("业务sid") @ApiModelProperty("业务sid")
private String businessSid; private String businessSid;
@ -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);
}
} }

700
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;
@ -50,308 +56,394 @@ import java.util.stream.Collectors;
@Service @Service
public class ScmApplyInboundService extends MybatisBaseService<ScmApplyInboundMapper, ScmApplyInbound> { public class ScmApplyInboundService extends MybatisBaseService<ScmApplyInboundMapper, ScmApplyInbound> {
@Autowired @Autowired
private ScmApplyInboundVehicleService scmApplyInboundVehicleService; private ScmApplyInboundVehicleService scmApplyInboundVehicleService;
@Autowired @Autowired
private SysUserFeign sysUserFeign; private SysUserFeign sysUserFeign;
@Autowired @Autowired
private SysStaffOrgFeign sysStaffOrgFeign; private SysStaffOrgFeign sysStaffOrgFeign;
@Autowired @Autowired
private FlowableService flowableService; private FlowableFeign flowableFeign;
@Autowired // private FlowableService flowableService;
private FlowTaskFeign flowTaskFeign; @Autowired
private FlowTaskFeign flowTaskFeign;
public PagerVo<ScmApplyInbound> listPage(PagerQuery<ScmApplyInboundQuery> pq) {
ScmApplyInboundQuery query = pq.getParams(); public PagerVo<ScmApplyInbound> listPage(PagerQuery<ScmApplyInboundQuery> pq) {
QueryWrapper<ScmApplyInbound> qw = createQueryWrapper(query); ScmApplyInboundQuery query = pq.getParams();
IPage<ScmApplyInbound> page = PagerUtil.queryToPage(pq); QueryWrapper<ScmApplyInbound> qw = createQueryWrapper(query);
IPage<ScmApplyInbound> pagging = baseMapper.selectPage(page, qw); IPage<ScmApplyInbound> page = PagerUtil.queryToPage(pq);
PagerVo<ScmApplyInbound> p = PagerUtil.pageToVo(pagging, null); IPage<ScmApplyInbound> pagging = baseMapper.selectPage(page, qw);
return p; PagerVo<ScmApplyInbound> p = PagerUtil.pageToVo(pagging, null);
} return p;
public List<ScmApplyInbound> listAll(ScmApplyInboundQuery query) { }
QueryWrapper<ScmApplyInbound> qw = createQueryWrapper(query);
return baseMapper.selectList(qw); public List<ScmApplyInbound> listAll(ScmApplyInboundQuery query) {
} QueryWrapper<ScmApplyInbound> qw = createQueryWrapper(query);
private QueryWrapper<ScmApplyInbound> createQueryWrapper(ScmApplyInboundQuery query) { return baseMapper.selectList(qw);
// todo: 这里根据具体业务调整查询条件 }
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<ScmApplyInbound> qw = new QueryWrapper<>(); private QueryWrapper<ScmApplyInbound> createQueryWrapper(ScmApplyInboundQuery query) {
// todo: 这里根据具体业务调整查询条件
if (StringUtils.isNotBlank(query.getPurchaseOrderNo())) { // 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
qw.like("purchaseOrderNo", query.getPurchaseOrderNo()); QueryWrapper<ScmApplyInbound> qw = new QueryWrapper<>();
}
if (StringUtils.isNotBlank(query.getPurchaseOrderNo())) {
if (StringUtils.isNotBlank(query.getModelName())) { qw.like("purchaseOrderNo", query.getPurchaseOrderNo());
qw.like("modelName", query.getModelName()); }
}
return qw; if (StringUtils.isNotBlank(query.getModelName())) {
} qw.like("modelName", query.getModelName());
}
public PagerVo<ScmApplyInboundListVo> listPageVo(PagerQuery<ScmApplyInboundQuery> pq) { return qw;
ScmApplyInboundQuery query = pq.getParams(); }
QueryWrapper<ScmApplyInbound> qw = createQueryWrapper(query);
IPage<ScmApplyInbound> page = PagerUtil.queryToPage(pq); public PagerVo<ScmApplyInboundListVo> listPageVo(PagerQuery<ScmApplyInboundQuery> pq) {
IPage<ScmApplyInboundListVo> pagging = baseMapper.selectPageVo(page, qw); ScmApplyInboundQuery query = pq.getParams();
PagerVo<ScmApplyInboundListVo> p = PagerUtil.pageToVo(pagging, null); QueryWrapper<ScmApplyInbound> qw = createQueryWrapper(query);
return p; IPage<ScmApplyInbound> page = PagerUtil.queryToPage(pq);
} IPage<ScmApplyInboundListVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<ScmApplyInboundListVo> p = PagerUtil.pageToVo(pagging, null);
public List<ScmApplyInboundVo> listAllVo(ScmApplyInboundQuery query) { return p;
QueryWrapper<ScmApplyInbound> qw = createQueryWrapper(query); }
return baseMapper.selectListAllVo(qw);
} public List<ScmApplyInboundVo> listAllVo(ScmApplyInboundQuery query) {
QueryWrapper<ScmApplyInbound> qw = createQueryWrapper(query);
public List<ScmApplyInboundVo> listVo() { return baseMapper.selectListAllVo(qw);
return baseMapper.selectListVo(); }
}
public List<ScmApplyInboundVo> listVo() {
/** return baseMapper.selectListVo();
* 新增和修改车辆入账单 }
* @param dto
*/ /**
@Transactional(rollbackFor = Exception.class) * 新增和修改车辆入账单
public ResultBean saveOrUpdateApplyInBound(ScmApplyInboundDto dto){ *
// 验证车架号:不能为空、不能重复 * @param dto
List<ScmApplyInboundVehicleDto> vehicleList = dto.getVehicleList(); */
List<String> vinNoList = vehicleList.stream().filter(vehicle -> StringUtils.isNotBlank(vehicle.getVinNo())).map(vehicle -> vehicle.getVinNo()).collect(Collectors.toList()); @Transactional(rollbackFor = Exception.class)
if (vehicleList.size() != vinNoList.size()) { public ResultBean<String> saveOrUpdateApplyInBound(ScmApplyInboundDto dto) {
return new ResultBean().fail().setMsg("车架号不能为空"); // 验证车架号:不能为空、不能重复
} List<ScmApplyInboundVehicleDto> vehicleList = dto.getVehicleList();
// 去重 List<String> vinNoList = vehicleList.stream().filter(vehicle -> StringUtils.isNotBlank(vehicle.getVinNo())).map(vehicle -> vehicle.getVinNo()).collect(Collectors.toList());
long disCount = vinNoList.stream().distinct().count(); if (vehicleList.size() != vinNoList.size()) {
if (vinNoList.size() != disCount) { return new ResultBean().fail().setMsg("车架号不能为空");
return new ResultBean().fail().setMsg("车架号不能重复"); }
} // 去重
long disCount = vinNoList.stream().distinct().count();
if (StringUtils.isBlank(dto.getSid())) { // 新增 if (vinNoList.size() != disCount) {
// 验证数据库是否重复 return new ResultBean().fail().setMsg("车架号不能重复");
for (int i = 0; i < vinNoList.size(); i++) { }
int count = scmApplyInboundVehicleService.checkVinNo(vinNoList.get(i), "");
if (count != 0) { if (StringUtils.isBlank(dto.getSid())) { // 新增
return new ResultBean().setMsg("车架号已经存在"); // 验证数据库是否重复
} for (int i = 0; i < vinNoList.size(); i++) {
} int count = scmApplyInboundVehicleService.checkVinNo(vinNoList.get(i), "");
ScmApplyInbound inboundVehicle = new ScmApplyInbound(); if (count != 0) {
BeanUtil.copyProperties(dto, inboundVehicle); return new ResultBean().setMsg("车架号已经存在");
inboundVehicle.setSid(UUID.randomUUID().toString()); }
save(inboundVehicle); }
// 保存车辆列表 ScmApplyInbound inboundVehicle = new ScmApplyInbound();
scmApplyInboundVehicleService.saveApplyInboundVehicleList(vehicleList, inboundVehicle.getSid(), inboundVehicle.getModelSid()); BeanUtil.copyProperties(dto, inboundVehicle);
return new ResultBean().success().setMsg("保存成功").setData(inboundVehicle.getSid()); inboundVehicle.setSid(UUID.randomUUID().toString());
} else { // 修改 save(inboundVehicle);
// 采购订单下线日期一旦维护,二次确认,则不能修改 TODO // 保存车辆列表
// 验证数据库是否重复 scmApplyInboundVehicleService.saveApplyInboundVehicleList(vehicleList, inboundVehicle.getSid(), inboundVehicle.getModelSid());
for (int i = 0; i < vinNoList.size(); i++) { return new ResultBean().success().setMsg("保存成功").setData(inboundVehicle.getSid());
int count = scmApplyInboundVehicleService.checkVinNo(vinNoList.get(i), dto.getSid()); } else { // 修改
if (count != 0) { // 采购订单下线日期一旦维护,二次确认,则不能修改 TODO
return new ResultBean().setMsg("车架号已经存在"); // 验证数据库是否重复
} for (int i = 0; i < vinNoList.size(); i++) {
} int count = scmApplyInboundVehicleService.checkVinNo(vinNoList.get(i), dto.getSid());
ScmApplyInbound scmApplyInbound = fetchBySid(dto.getSid()); if (count != 0) {
BeanUtil.copyProperties(dto, scmApplyInbound); return new ResultBean().setMsg("车架号已经存在");
updateById(scmApplyInbound); }
// 更新车辆列表信息 }
scmApplyInboundVehicleService.updateApplyInboundVehicleList(vehicleList); ScmApplyInbound scmApplyInbound = fetchBySid(dto.getSid());
return new ResultBean().success().setMsg("修改成功").setData(dto.getSid()); BeanUtil.copyProperties(dto, scmApplyInbound);
} updateById(scmApplyInbound);
} // 更新车辆列表信息
scmApplyInboundVehicleService.updateApplyInboundVehicleList(vehicleList);
/** return new ResultBean().success().setMsg("修改成功").setData(dto.getSid());
* 根据sid查询车辆入账单详情 }
* @param sid }
* @return
*/ /**
public ScmApplyInboundVo selectBySid(String sid) { * 根据sid查询车辆入账单详情
ScmApplyInboundVo vo = new ScmApplyInboundVo(); *
ScmApplyInbound scmApplyInbound = fetchBySid(sid); * @param sid
BeanUtil.copyProperties(scmApplyInbound, vo); * @return
List<ScmApplyInboundVehicleVo> list = scmApplyInboundVehicleService.selectListByAppSid(sid); */
vo.setInboundVehicleList(list); public ScmApplyInboundVo selectBySid(String sid) {
return vo; ScmApplyInboundVo vo = new ScmApplyInboundVo();
} ScmApplyInbound scmApplyInbound = fetchBySid(sid);
BeanUtil.copyProperties(scmApplyInbound, vo);
/** List<ScmApplyInboundVehicleVo> list = scmApplyInboundVehicleService.selectListByAppSid(sid);
* 检查用户是否设置部门 vo.setInboundVehicleList(list);
* return vo;
* @param userSid }
* @return 返回部门sid
*/ /**
private String checkUserOrg(String userSid) { * 检查用户是否设置部门
String orgSid = ""; *
String staffSid = sysUserFeign.selectBySid(userSid).getData().getStaffSid(); * @param userSid
ResultBean<String> resultBean = sysStaffOrgFeign.getSysStaffOrgSidListByStaffSid(staffSid); * @return 返回部门sid
if (resultBean.getSuccess()) { */
orgSid = resultBean.getData(); private String checkUserOrg(String userSid) {
} String orgSid = "";
return orgSid; String staffSid = sysUserFeign.selectBySid(userSid).getData().getStaffSid();
} ResultBean<String> resultBean = sysStaffOrgFeign.getSysStaffOrgSidListByStaffSid(staffSid);
if (resultBean.getSuccess()) {
/** orgSid = resultBean.getData();
* 更新流程相关的状态 }
* @param map return orgSid;
* @return }
*/
private int updateFlowFiled(Map<String, Object> map) { /**
return baseMapper.updateFlowFiled(map); * 更新流程相关的状态
} *
* @param map
/** * @return
* 提交入账申请 */
* @param dto private int updateFlowFiled(Map<String, Object> map) {
* @return return baseMapper.updateFlowFiled(map);
*/ }
public ResultBean submitRecordApplication(SubmitScmApplyInboundDto dto) {
String orgSid = checkUserOrg(dto.getUserSid()); /**
ResultBean resultBean = saveOrUpdateApplyInBound(dto); * 更新流程相关的状态
String businessSid = resultBean.getData().toString(); *
Map<String, Object> variables = new HashMap<>(); * @param updateFlowFieldVo
variables.put("businessSid", businessSid); * @return
variables.put("orgSid", orgSid); //部门sid */
if (StringUtils.isBlank(dto.getTaskId())) { // 新提交 private int updateFlowFiled(UpdateFlowFieldVo updateFlowFieldVo) {
ResultBean resultBean1 = flowableService.businessStart(ProcDefEnum.RECORDAPPLICATION.getProDefId(), dto.getUserSid(), variables); UpdateWrapper<ScmApplyInbound> uw = new UpdateWrapper<>();
if (resultBean1.getSuccess() && resultBean1.getData() != null) { uw.eq("sid", updateFlowFieldVo.getSid());
Map<String, String> map = (Map<String, String>) resultBean1.getData();
//更新业务表中的流程状态 if (StringUtils.isNotBlank(updateFlowFieldVo.getProcDefId())) {
Map<String, Object> paramMap = new HashMap<>(); uw.set("procDefId", updateFlowFieldVo.getProcDefId());
paramMap.put("sid", businessSid); }
paramMap.put("procDefId", ProcDefEnum.RECORDAPPLICATION.getProDefId()); if (StringUtils.isNotBlank(updateFlowFieldVo.getNodeState())) {
paramMap.put("nodeState", map.get("nodeState")); uw.set("nodeState", updateFlowFieldVo.getNodeState());
paramMap.put("procInsId", map.get("procInsId")); }
paramMap.put("taskDefKey", map.get("taskDefKey")); if (StringUtils.isNotBlank(updateFlowFieldVo.getProcInsId())) {
updateFlowFiled(paramMap); uw.set("procInsId", updateFlowFieldVo.getProcInsId());
} }
return resultBean1; if (StringUtils.isNotBlank(updateFlowFieldVo.getTaskDefKey())) {
} else { // 驳回到发起人后再次提交 uw.set("taskDefKey", updateFlowFieldVo.getTaskDefKey());
variables.put("comment", StringUtils.isNotBlank(dto.getComment()) ? dto.getComment() : "重新提交"); }
variables.put("instanceId", dto.getInstanceId()); if (StringUtils.isNotBlank(updateFlowFieldVo.getTaskId())) {
variables.put("taskId", dto.getTaskId()); uw.set("taskId", updateFlowFieldVo.getTaskId());
variables.put("userSid", dto.getUserSid()); }
return complete(variables); // if (StringUtils.isNotBlank(updateFlowFieldVo.getNextNodeUserSids())) {
} // uw.set("", updateFlowFieldVo.getNextNodeUserSids());
} // }
return baseMapper.update(null, uw);
/** }
* 办理
* @param variables /**
* @return * 提交入账申请
*/ *
public ResultBean complete(Map<String, Object> variables) { * @param dto
BusinessVariables bv= BusinessVariables.builder().build(); * @return
bv.setFormVariables(variables); */
ResultBean<com.yxt.anrui.flowable.api.flowtask.FlowTask> resultBean = flowTaskFeign.businessComplete(bv); public ResultBean submitRecordApplication(SubmitScmApplyInboundDto dto) {
if (!resultBean.getSuccess()) { ResultBean rb = ResultBean.fireFail();
return resultBean; //取组织架构的全路径sid
} // SysStaffOrg sysStaffOrg = sysStaffOrgFeign.getOrgByStaffSid(dto.getUserSid()).getData();
String nodeState = ""; String orgSidPath = dto.getOrgSidPath(); //sysStaffOrg.getOrgSidPath();
String taskDefKey = ""; Map<String, Object> variables = BeanUtil.beanToMap(dto);
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("sid", variables.get("businessSid").toString()); ScmApplyInbound booad = new ScmApplyInbound();
if (resultBean.getData() != null) { int r = submitBusinessData(dto, booad);
ResultBean<List<LatestTaskVo>> listResultBean = flowTaskFeign.getLatestTasks(resultBean.getData().getProcInsId()); if (r == 0) {
if (listResultBean.getSuccess() && listResultBean.getData() != null && listResultBean.getData().size() != 0) { return rb.setMsg("操作失败,提交的数据不一致!");
nodeState = listResultBean.getData().get(0).getName_(); }
taskDefKey = listResultBean.getData().get(0).getTask_def_key_();
} else { ResultBean<String> resultBean = saveOrUpdateApplyInBound(dto);
nodeState = ProcessStateEnum.FINISHED.getStateName(); String businessSid = resultBean.getData();
taskDefKey = "Event_end"; BusinessVariables bv = new BusinessVariables();
paramMap.put("flowState", SysFormLinkFlowStateEnum.FINISH.getCode()); bv.setOrgSidPath(orgSidPath);
} bv.setBusinessSid(businessSid);
} bv.setUserSid(dto.getUserSid());
paramMap.put("nodeState", nodeState); variables.put("businessSid", businessSid);
paramMap.put("taskDefKey", taskDefKey); bv.setFormVariables(variables);
updateFlowFiled(paramMap); bv.setModelId(ProcDefEnum.RECORDAPPLICATION.getProDefId());
return resultBean; if (r == 1) {
} ResultBean<UpdateFlowFieldVo> resultBean1 = flowableFeign.startProcess(bv);
UpdateFlowFieldVo uff = resultBean1.getData();
/** updateFlowFiled(uff);
* 撤回 return resultBean1;
* @param userSid } else if (r == 2) {
* @param businessSid bv.setTaskDefKey(booad.getTaskDefKey());
* @param flowTaskVo bv.setComment(StringUtils.isNotBlank(dto.getComment()) ? dto.getComment() : "重新提交");
* @return bv.setInstanceId(booad.getProcInsId());
*/ ResultBean<UpdateFlowFieldVo> rrb = flowableFeign.handleProsess(bv);
public ResultBean revokeProcess(String userSid, String businessSid, FlowTaskVo flowTaskVo) { updateFlowFiled(rrb.getData());
com.yxt.anrui.flowable.api.flowtask.FlowTaskVo fl=new com.yxt.anrui.flowable.api.flowtask.FlowTaskVo(); return rrb;
BeanUtil.copyProperties(flowTaskVo,fl); }
fl.setUserSid(userSid); return rb;
ResultBean<List<LatestTaskVo>> resultBean = flowTaskFeign.revokeProcess(fl); }
if (!resultBean.getSuccess()) {
return resultBean; private synchronized int submitBusinessData(SubmitScmApplyInboundDto dto, ScmApplyInbound booad) {
} int r = 0;
String nodeState = resultBean.getData().get(0).getName_(); booad = this.fetchBySid(dto.getSid());
String taskDefKey = resultBean.getData().get(0).getTask_def_key_(); String businessTaskid = booad.getTaskId();
String incomingSourceRef = resultBean.getData().get(0).getIncomingSourceRef(); if (StringUtils.isBlank(businessTaskid) && StringUtils.isBlank(dto.getTaskId())) {
Map<String, Object> paramMap = new HashMap<>(); // 新提交 taskid都是空的
paramMap.put("sid", businessSid); r = 1;
if (incomingSourceRef.contains("start")) { } else if (StringUtils.isNotBlank(businessTaskid) && businessTaskid.equals(dto.getTaskId())) {//只有数据一致的时候才能进行下一步
paramMap.put("nodeState", SysFormLinkFlowStateEnum.UNCOMMITTED.getState()); r = 2;
paramMap.put("taskDefKey", taskDefKey); }
paramMap.put("flowState", SysFormLinkFlowStateEnum.UNCOMMITTED.getCode()); return r;
} else { }
paramMap.put("nodeState",nodeState );
paramMap.put("taskDefKey",taskDefKey ); /**
} * 办理
updateFlowFiled(paramMap); *
return resultBean; * @param dto
} * @return
*/
/** public ResultBean complete(SubmitScmApplyInboundDto dto) {
* 驳回
* @param businessSid ResultBean rb = ResultBean.fireFail();
* @param flowTaskVo ScmApplyInbound booad = this.fetchBySid(dto.getSid());
* @return if (StringUtils.isBlank(booad.getTaskId()) || !booad.getTaskId().equals(dto.getTaskId())) {
*/ return rb.setMsg("操作失败,提交的数据不一致!");
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); //取组织架构的全路径sid
ResultBean<List<LatestTaskVo>> resultBean = flowTaskFeign.taskReject(fl); // SysStaffOrg sysStaffOrg = sysStaffOrgFeign.getOrgByStaffSid(dto.getApplicationSid()).getData();
if (!resultBean.getSuccess()) { String orgSidPath = dto.getOrgSidPath();
return resultBean; Map<String, Object> variables = BeanUtil.beanToMap(dto);
} BusinessVariables bv = new BusinessVariables();
String nodeState = resultBean.getData().get(0).getName_(); bv.setTaskId(booad.getTaskId());
String taskDefKey = resultBean.getData().get(0).getTask_def_key_(); bv.setOrgSidPath(orgSidPath);
String incomingSourceRef = resultBean.getData().get(0).getIncomingSourceRef(); bv.setBusinessSid(dto.getSid());
Map<String, Object> paramMap = new HashMap<>(); bv.setUserSid(dto.getUserSid());
paramMap.put("sid", businessSid); variables.put("businessSid", dto.getSid());
paramMap.put("nodeState", nodeState); bv.setTaskDefKey(booad.getTaskDefKey());
paramMap.put("taskDefKey", taskDefKey); bv.setComment(StringUtils.isNotBlank(dto.getComment()) ? dto.getComment() : "重新提交");
if (incomingSourceRef.contains("start")) { bv.setInstanceId(booad.getProcInsId());
paramMap.put("flowState", SysFormLinkFlowStateEnum.REJECT.getCode()); bv.setFormVariables(variables);
} bv.setModelId(ProcDefEnum.RECORDAPPLICATION.getProDefId());
updateFlowFiled(paramMap); ResultBean<UpdateFlowFieldVo> rrb = flowableFeign.handleProsess(bv);
return resultBean; updateFlowFiled(rrb.getData());
} return rrb;
}
/**
* 终止流程 /**
* @param businessSid * 撤回
* @param flowTaskVo *
* @return * @param userSid
*/ * @param businessSid
public ResultBean breakProcess(String businessSid, FlowTaskVo flowTaskVo) { * @param flowTaskVo
com.yxt.anrui.flowable.api.flowtask.FlowTaskVo fl=new com.yxt.anrui.flowable.api.flowtask.FlowTaskVo(); * @return
BeanUtil.copyProperties(flowTaskVo,fl); */
ResultBean resultBean = flowTaskFeign.breakProcess(fl); public ResultBean revokeProcess(String userSid, String businessSid, FlowTaskVo flowTaskVo) {
if (!resultBean.getSuccess()) { com.yxt.anrui.flowable.api.flowtask.FlowTaskVo fl = new com.yxt.anrui.flowable.api.flowtask.FlowTaskVo();
return resultBean; BeanUtil.copyProperties(flowTaskVo, fl);
} fl.setUserSid(userSid);
Map<String, Object> paramMap = new HashMap<>(); ResultBean<List<LatestTaskVo>> resultBean = flowTaskFeign.revokeProcess(fl);
paramMap.put("sid", businessSid); if (!resultBean.getSuccess()) {
paramMap.put("nodeState", String.valueOf(resultBean.getData())); return resultBean;
paramMap.put("taskDefKey", "Event_end"); }
paramMap.put("flowState", SysFormLinkFlowStateEnum.BREAK.getCode()); String nodeState = resultBean.getData().get(0).getName_();
updateFlowFiled(paramMap); String taskDefKey = resultBean.getData().get(0).getTask_def_key_();
return resultBean; String incomingSourceRef = resultBean.getData().get(0).getIncomingSourceRef();
} Map<String, Object> paramMap = new HashMap<>();
paramMap.put("sid", businessSid);
/** if (incomingSourceRef.contains("start")) {
* 流程历史流转记录 paramMap.put("nodeState", SysFormLinkFlowStateEnum.UNCOMMITTED.getState());
* @param procInsId paramMap.put("taskDefKey", taskDefKey);
* @param deployId paramMap.put("flowState", SysFormLinkFlowStateEnum.UNCOMMITTED.getCode());
* @return } else {
*/ paramMap.put("nodeState", nodeState);
public ResultBean flowRecord(String procInsId, String deployId) { paramMap.put("taskDefKey", taskDefKey);
return flowTaskFeign.businessFlowRecord(procInsId,deployId); }
} updateFlowFiled(paramMap);
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);
ResultBean<List<LatestTaskVo>> resultBean = flowTaskFeign.taskReject(fl);
if (!resultBean.getSuccess()) {
return resultBean;
}
String nodeState = resultBean.getData().get(0).getName_();
String taskDefKey = resultBean.getData().get(0).getTask_def_key_();
String incomingSourceRef = resultBean.getData().get(0).getIncomingSourceRef();
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("sid", businessSid);
paramMap.put("nodeState", nodeState);
paramMap.put("taskDefKey", taskDefKey);
if (incomingSourceRef.contains("start")) {
paramMap.put("flowState", SysFormLinkFlowStateEnum.REJECT.getCode());
}
updateFlowFiled(paramMap);
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);
ResultBean resultBean = flowTaskFeign.breakProcess(fl);
if (!resultBean.getSuccess()) {
return resultBean;
}
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("sid", businessSid);
paramMap.put("nodeState", String.valueOf(resultBean.getData()));
paramMap.put("taskDefKey", "Event_end");
paramMap.put("flowState", SysFormLinkFlowStateEnum.BREAK.getCode());
updateFlowFiled(paramMap);
return resultBean;
}
/**
* 流程历史流转记录
*
* @param procInsId
* @param deployId
* @return
*/
public ResultBean flowRecord(String procInsId, String 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'
}
})
} }
} }

189
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,87 +18,57 @@
<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">
<template slot-scope="scope" prop="vehicleName"> <template slot-scope="scope" prop="vehicleName">
<el-input v-model="scope.row.vinNo" placeholder="" class="addinputw" clearable/> <el-input v-model="scope.row.vinNo" placeholder="" class="addinputw" clearable />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="备注" header-align="center"> <el-table-column label="备注" header-align="center">
<template slot-scope="scope" prop="remarks"> <template slot-scope="scope" prop="remarks">
<el-input v-model="scope.row.remarks" placeholder="" class="addinputw" clearable/> <el-input v-model="scope.row.remarks" placeholder="" class="addinputw" clearable />
</template> </template>
</el-table-column> </el-table-column>
</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,68 +115,77 @@ export default {
}) })
this.viewTitle = '【编辑】入账单' this.viewTitle = '【编辑】入账单'
console.log('编辑回显', sid, row) console.log('编辑回显', sid, row)
req.fetchBySid(sid).then((resp) => { req
const data = resp.data .fetchBySid(sid)
this.formobj.applicationCode = data.applicationCode .then(resp => {
this.formobj.remarks = data.remarks const data = resp.data
this.formobj.sid = sid this.formobj.applicationSid = data.applicationSid
this.formobj.configName = data.configName this.formobj.applicationName = data.applicationName
this.formobj.departureDate = data.departureDate this.formobj.applicationCode = data.applicationCode
this.formobj.modelName = data.modelName this.formobj.remarks = data.remarks
this.formobj.modelSid = data.modelSid this.formobj.sid = sid
this.formobj.purchaseOrderNo = data.purchaseOrderNo this.formobj.configName = data.configName
this.formobj.vehicleOrderSid = data.vehicleOrderSid this.formobj.departureDate = data.departureDate
if (data.inboundVehicleList.length > 0) { this.formobj.modelName = data.modelName
data.inboundVehicleList.forEach((e) => { this.formobj.modelSid = data.modelSid
this.formobj.vehicleList.push({ this.formobj.purchaseOrderNo = data.purchaseOrderNo
applySid: e.applySid, this.formobj.vehicleOrderSid = data.vehicleOrderSid
remarks: e.remarks, this.formobj.taskId = data.taskId
modelSid: e.modelSid, if (data.inboundVehicleList.length > 0) {
sid: e.sid, data.inboundVehicleList.forEach(e => {
vinNo: e.vinNo this.formobj.vehicleList.push({
applySid: e.applySid,
remarks: e.remarks,
modelSid: e.modelSid,
sid: e.sid,
vinNo: e.vinNo
})
}) })
}) }
} // else {
// else { // for (var i = 0; i < row[0].vehicleNum; i++) {
// for (var i = 0; i < row[0].vehicleNum; i++) { // this.formobj.vehicleList.push({
// this.formobj.vehicleList.push({ // applySid: '',
// applySid: '', // remarks: '',
// remarks: '', // modelSid: this.formobj.modelSid,
// modelSid: this.formobj.modelSid, // sid: '',
// sid: '', // vinNo: ''
// vinNo: '' // })
// }) // }
// } // }
// } })
}).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
this.submitdisabled = false .saveOrUpdate(this.formobj)
this.$message({ .then(resp => {
showClose: true, this.submitdisabled = false
type: 'success', this.$message({
message: resp.msg showClose: true,
type: 'success',
message: resp.msg
})
this.handleReturn('true')
})
.catch(() => {
this.submitdisabled = false
}) })
this.handleReturn('true')
}).catch(() => {
this.submitdisabled = false
})
} else { } else {
return false return false
} }
}) })
}, },
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>

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

@ -21,47 +21,47 @@
<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>
<el-input v-model="formobj.applicationCode" readonly/> <el-input v-model="formobj.applicationCode" readonly />
</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>
<el-input v-model="formobj.purchaseOrderNo" readonly/> <el-input v-model="formobj.purchaseOrderNo" readonly />
</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>
<el-input v-model="formobj.applicationName" readonly/> <el-input v-model="formobj.applicationName" readonly />
</el-form-item> </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-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-input v-model="formobj.modelName" readonly/> <el-input v-model="formobj.modelName" readonly />
</el-form-item> </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-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-input v-model="formobj.configName" readonly/> <el-input v-model="formobj.configName" readonly />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -69,37 +69,37 @@
<div style="margin-left: 5px;font-weight: bold">车辆列表</div> <div style="margin-left: 5px;font-weight: bold">车辆列表</div>
</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">
<template slot-scope="scope" prop="vehicleName"> <template slot-scope="scope" prop="vehicleName">
<el-input v-model="scope.row.vinNo" placeholder="" class="addinputw" clearable/> <el-input v-model="scope.row.vinNo" placeholder="" class="addinputw" clearable />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="备注" header-align="center"> <el-table-column label="备注" header-align="center">
<template slot-scope="scope" prop="remarks"> <template slot-scope="scope" prop="remarks">
<el-input v-model="scope.row.remarks" placeholder="" class="addinputw" clearable/> <el-input v-model="scope.row.remarks" placeholder="" class="addinputw" clearable />
</template> </template>
</el-table-column> </el-table-column>
</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-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>
<el-input v-model="formobj.remarks" clearable/> <el-input v-model="formobj.remarks" clearable />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -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) {

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

@ -1,142 +1,144 @@
<template> <template>
<div class="app-container"> <div>
<div> <!--标题按钮部分开始-->
<!--标题按钮部分开始--> <div class="tab-header webtop">
<div class="tab-header webtop"> <!--标题-->
<!--标题--> <div>{{ viewTitle }}</div>
<div>{{ viewTitle }}</div> <!--start 添加修改按钮-->
<!--start 添加修改按钮--> <div>
<div> <el-button v-show="transactState == '00'" type="primary" @click="openAgree"> </el-button>
<el-button v-show="transactState=='00'" type="primary" @click="openAgree"> </el-button> <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 新增修改部分--> <!--标题按钮部分结束-->
<div class="listconadd"> <!--Start 新增修改部分-->
<div class="wlInfo"><span>车辆入账单</span></div> <div>
<el-form ref="form_obj" :model="formobj" :rules="rules" label-position="top"> <div class="wlInfo"><span>车辆入账单</span></div>
<el-row class="lineone"> <el-form ref="form_obj" :model="formobj" :rules="rules" label-position="top">
<el-col :span="3" class="el-form-item-right"> <el-row class="linetwo">
<el-form-item label="申请编号:"></el-form-item> <el-col :span="3" class="el-form-item-right"><el-form-item label="申请编号:" /></el-col>
</el-col> <el-col :span="5">
<el-col :span="5"> <el-form-item><el-input v-model="formobj.applicationCode" readonly /></el-form-item>
<el-form-item> </el-col>
<el-input v-model="formobj.applicationCode" readonly/> <el-col :span="3" class="el-form-item-right"><el-form-item label="采购订单编号:" /></el-col>
</el-form-item> <el-col :span="5">
</el-col> <el-form-item><el-input v-model="formobj.purchaseOrderNo" readonly /></el-form-item>
<el-col :span="3" class="el-form-item-right"> </el-col>
<el-form-item label="采购订单编号:"></el-form-item> <el-col :span="3" class="el-form-item-right"><el-form-item label="申请人:" /></el-col>
</el-col> <el-col :span="5">
<el-col :span="5"> <el-form-item><el-input v-model="formobj.applicationName" readonly /></el-form-item>
<el-form-item> </el-col>
<el-input v-model="formobj.purchaseOrderNo" readonly/> </el-row>
</el-form-item> <el-row class="linetwo">
</el-col> <el-col :span="3" class="el-form-item-right"><el-form-item label="车型:" /></el-col>
<el-col :span="3" class="el-form-item-right"> <el-col :span="21">
<el-form-item label="申请人:"></el-form-item> <el-form-item><el-input v-model="formobj.modelName" readonly /></el-form-item>
</el-col> </el-col>
<el-col :span="5"> </el-row>
<el-form-item> <el-row class="linetwo">
<el-input v-model="formobj.applicationName" readonly/> <el-col :span="3" class="el-form-item-right"><el-form-item label="常用配置:" /></el-col>
</el-form-item> <el-col :span="21">
</el-col> <el-form-item><el-input v-model="formobj.configName" readonly /></el-form-item>
</el-row> </el-col>
<el-row class="linetwo"> </el-row>
<el-col :span="3" class="el-form-item-right"> <div class="tableStyle"><div style="margin-left: 5px;font-weight: bold">车辆列表</div></div>
<el-form-item label="车型:"></el-form-item> <el-table :key="tableKey" :data="formobj.vehicleList" :index="index" border style="width: 100%">
</el-col> <el-table-column fixed width="80px" label="序号" type="index" :index="index + 1" align="center" />
<el-table-column label="车架号" align="left" header-align="center">
<template slot-scope="scope" prop="vehicleName">
<el-input v-model="scope.row.vinNo" placeholder="" class="addinputw" clearable readonly />
</template>
</el-table-column>
<el-table-column label="备注" header-align="center">
<template slot-scope="scope" prop="remarks">
<el-input v-model="scope.row.remarks" placeholder="" class="addinputw" clearable readonly />
</template>
</el-table-column>
</el-table>
<el-row class="linetwo" style="margin-top: 10px">
<el-col>
<el-col :span="3" class="el-form-item-right"><el-form-item label="厂家发车日期:" /></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.modelName" readonly/>
</el-form-item>
</el-col> </el-col>
</el-row> </el-col>
<el-row class="linetwo"> </el-row>
<el-col :span="3" class="el-form-item-right"> <el-row class="linetwo">
<el-form-item label="常用配置:"></el-form-item> <el-col :span="3" class="el-form-item-right"><el-form-item label="备注:" /></el-col>
</el-col> <el-col :span="21">
<el-col :span="21"> <el-form-item><el-input v-model="formobj.remarks" clearable readonly /></el-form-item>
<el-form-item> </el-col>
<el-input v-model="formobj.configName" readonly/> </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>
<div v-show="transactState=='00'"> <el-row>
<!-- <div class="diaTitle"><i class="el-icon-chat-line-square"></i><span>审批意见</span></div>--> <el-col :span="4" class="tleftb">意见</el-col>
<el-form :model="dialogList" :inline="true" label-width="80px"> <el-col :span="20" class="trightb"><el-input v-model="formobj.comment" size="small" placeholder="审批意见" class="addinputw" clearable /></el-col>
<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-row>
</el-form>
</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-column fixed width="80px" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column label="车架号" align="left" header-align="center">
<template slot-scope="scope" prop="vehicleName">
<el-input v-model="scope.row.vinNo" placeholder="" class="addinputw" clearable readonly/>
</template>
</el-table-column>
<el-table-column label="备注" header-align="center">
<template slot-scope="scope" prop="remarks">
<el-input v-model="scope.row.remarks" placeholder="" class="addinputw" clearable readonly/>
</template>
</el-table-column>
</el-table>
<el-row class="linetwo" style="margin-top: 10px">
<el-col>
<el-col :span="3" class="el-form-item-right">
<el-form-item label="厂家发车日期:"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
<el-input v-model="formobj.departureDate" placeholder="" class="addinputw" clearable readonly/>
</el-form-item>
</el-col>
</el-col>
</el-row> </el-row>
<el-row class="linetwo"> <div style="text-align:center;margin-top: 20px;">
<el-col :span="3" class="el-form-item-right"> <el-button type="primary" size="mini" @click="handleAgree"> </el-button>
<el-form-item label="备注:"></el-form-item> <el-button type="info " size="mini" @click="closeNodeDialog"> </el-button>
</el-col> </div>
<el-col :span="21"> </el-form>
<el-form-item> </el-dialog>
<el-input v-model="formobj.remarks" clearable readonly/> <!-- 选择待办人 驳回 的弹出框-->
<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-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="handleReject"> </el-button>
<el-button type="info " size="mini" @click="closeNodeDialog"> </el-button>
</div>
</el-form> </el-form>
</div> </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,112 +220,99 @@ 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
const data = resp.data .fetchBySid(sid)
this.formobj.applicationCode = data.applicationCode .then(resp => {
this.formobj.remarks = data.remarks const data = resp.data
this.formobj.sid = sid this.formobj.applicationSid = data.applicationSid
this.formobj.configName = data.configName this.formobj.applicationName = data.applicationName
this.formobj.departureDate = data.departureDate this.formobj.applicationCode = data.applicationCode
this.formobj.modelName = data.modelName this.formobj.remarks = data.remarks
this.formobj.modelSid = data.modelSid this.formobj.sid = sid
this.formobj.purchaseOrderNo = data.purchaseOrderNo this.formobj.configName = data.configName
this.formobj.vehicleOrderSid = data.vehicleOrderSid this.formobj.departureDate = data.departureDate
if (data.inboundVehicleList.length > 0) { this.formobj.modelName = data.modelName
data.inboundVehicleList.forEach((e) => { this.formobj.modelSid = data.modelSid
this.formobj.vehicleList.push({ this.formobj.purchaseOrderNo = data.purchaseOrderNo
applySid: e.applySid, this.formobj.vehicleOrderSid = data.vehicleOrderSid
remarks: e.remarks, this.formobj.taskDefKey = data.taskDefKey
modelSid: e.modelSid, this.formobj.taskId = data.taskId
sid: e.sid, this.formobj.nodeState = data.nodeState
vinNo: e.vinNo if (data.inboundVehicleList.length > 0) {
data.inboundVehicleList.forEach(e => {
this.formobj.vehicleList.push({
applySid: e.applySid,
remarks: e.remarks,
modelSid: e.modelSid,
sid: e.sid,
vinNo: e.vinNo
})
}) })
}) }
}
}).catch((e) => {
this.formobj = row
})
},
//
openAgree() {
this.$confirm('是否确认执行同意操作', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.handleAgree()
}).catch(() => {
this.$message({
type: 'info',
message: '已取消同意'
})
})
},
//
openReject() {
this.$confirm('是否确认执行驳回操作', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.handleReject()
}).catch(() => {
this.$message({
type: 'info',
message: '已取消驳回'
}) })
}) .catch(e => {
}, this.formobj = row
//
openStop() {
this.$confirm('是否确认执行终止操作', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.handleStop()
}).catch(() => {
this.$message({
type: 'info',
message: '已取消终止'
}) })
})
}, },
/** 确认撤回任务 */ //
openRevoke() { 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.handleRevoke() this.nodeDialogVisible = true
}).catch(() => { }
this.$message({ this.submitdisabled = false
type: 'info',
message: '已取消撤回'
})
}) })
}, },
/** 同意任务 */ /** 同意任务 */
handleAgree() { handleAgree() {
this.agreeList.comment = this.dialogList.comment if (!this.formobj.comment) {
req.businessAgree(this.agreeList).then((response) => { alert('请填写审批意见!')
return
}
//
// sid
//
req.businessAgree(this.formobj).then(response => {
if (response.code === '200') { if (response.code === '200') {
this.$notify({ this.nodeDialogVisible = false
title: '提示', //
message: '执行成功', window.parent.postMessage(
type: 'success', {
duration: 2000 cmd: 'returnHeight',
}) params: {
this.refreshIt() //
code: 1
}
},
'*'
)
} else { } else {
this.$notify({ this.$notify({
title: '提示', title: '提示',
@ -334,10 +323,30 @@ export default {
} }
}) })
}, },
/** 终止任务 */ //
handleStop() { openReject() {
this.stopList.comment = this.dialogList.comment req.getPreviousNodesForReject(this.formobj).then(resp => {
req.breakTask(this.stopList).then((response) => { if (resp.success) {
var arr = resp.data
//
var startTask = arr[0].startTask
if (startTask) {
alert('当前环节不能驳回!')
return
}
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') { if (response.code === '200') {
this.$notify({ this.$notify({
title: '提示', title: '提示',
@ -345,6 +354,17 @@ export default {
type: 'success', type: 'success',
duration: 2000 duration: 2000
}) })
this.nodeDialogVisibleForReject = false
window.parent.postMessage(
{
cmd: 'returnHeight',
params: {
code: 1
}
},
'*'
)
// this.refreshIt()
} else { } else {
this.$notify({ this.$notify({
title: '提示', title: '提示',
@ -355,10 +375,44 @@ export default {
} }
}) })
}, },
/** 驳回任务 */ //
handleReject() { openStop() {
this.regectList.comment = this.dialogList.comment this.$confirm('是否确认执行终止操作', '提示', {
req.rejectTask(this.regectList).then((response) => { confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
this.handleStop()
})
.catch(() => {
this.$message({
type: 'info',
message: '已取消终止'
})
})
},
/** 确认撤回任务 */
openRevoke() {
this.$confirm('是否确认执行撤回操作', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
this.handleRevoke()
})
.catch(() => {
this.$message({
type: 'info',
message: '已取消撤回'
})
})
},
/** 终止任务 */
handleStop() {
this.stopList.comment = this.dialogList.comment
req.breakTask(this.stopList).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