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. 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"),
ARREARSCARRYVEHICLE("欠款提车审批流程", "arrears_carryvehicle:1:232589"),
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"),
SEALAPPLY("盖章申请", "process_7h0z66tp:1:240064" ),
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("厂家发车日期")
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("新增和修改车辆入账单")
@PostMapping("/saveOrUpdateApplyInBound")
public ResultBean saveOrUpdateApplyInBound(@RequestBody @Valid ScmApplyInboundDto dto);
@ApiOperation("根据sid查询车辆入账单详情")
@GetMapping("/fetchSid/{sid}")
public ResultBean<ScmApplyInboundVo> fetchSid(@PathVariable("sid") String sid);
@ -58,29 +58,37 @@ public interface ScmApplyInboundFeign {
@ApiOperation(value = "办理(同意)")
@PostMapping("/complete")
public ResultBean complete(@ApiParam(value = "变量集合,json对象") @RequestBody Map<String, Object> variables);
public ResultBean complete(@ApiParam(value = "变量集合,json对象") @RequestBody SubmitScmApplyInboundDto dto);
@ApiOperation(value = "撤回流程")
@PostMapping(value = "/revokeProcess/{userSid}/{businessSid}")
public ResultBean revokeProcess(
@ApiParam(value = "用户sid") @PathVariable(value = "userSid")String userSid,
@ApiParam(value = "业务sid") @PathVariable(value = "businessSid")String businessSid,
@ApiParam(value = "工作流任务相关--请求参数") @RequestBody FlowTaskVo flowTaskVo) ;
@ApiParam(value = "用户sid") @PathVariable(value = "userSid") String userSid,
@ApiParam(value = "业务sid") @PathVariable(value = "businessSid") String businessSid,
@ApiParam(value = "工作流任务相关--请求参数") @RequestBody FlowTaskVo flowTaskVo);
@ApiOperation(value = "驳回任务")
@PostMapping(value = "/reject/{businessSid}")
public ResultBean taskReject(@ApiParam(value = "业务sid") @PathVariable(value = "businessSid")String businessSid,
@ApiParam(value = "工作流任务相关--请求参数")@RequestBody FlowTaskVo flowTaskVo);
public ResultBean taskReject(@ApiParam(value = "业务sid") @PathVariable(value = "businessSid") String businessSid,
@ApiParam(value = "工作流任务相关--请求参数") @RequestBody FlowTaskVo flowTaskVo);
@ApiOperation(value = "终止任务")
@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);
@ApiOperation(value = "流程历史流转记录" )
@ApiOperation(value = "流程历史流转记录")
@GetMapping(value = "/task/flowRecord/{procInsId}/{deployId}")
public ResultBean flowRecord( @ApiParam(value = "流程实例id")@PathVariable(value = "procInsId")String procInsId,
@ApiParam(value = "目前没用")@PathVariable(value = "deployId")String deployId);
public ResultBean flowRecord(@ApiParam(value = "流程实例id") @PathVariable(value = "procInsId") String procInsId,
@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
public class ScmApplyInboundFeignFallback implements ScmApplyInboundFeign {
@Override
public ResultBean listPage(PagerQuery<ScmApplyInboundQuery> pq){
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui-scm/scmapplyinbound/listPage无法访问");
}
@Override
public ResultBean listPage(PagerQuery<ScmApplyInboundQuery> pq) {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui-scm/scmapplyinbound/listPage无法访问");
}
@Override
public ResultBean<List<ScmApplyInboundVo>> listAll(ScmApplyInboundQuery query){
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui-scm/scmapplyinbound/listAll无法访问");
}
public ResultBean<List<ScmApplyInboundVo>> listAll(ScmApplyInboundQuery query) {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui-scm/scmapplyinbound/listAll无法访问");
}
@Override
public ResultBean saveOrUpdateApplyInBound(ScmApplyInboundDto dto){
return ResultBean.fireFail().setMsg("接口anrui-scm/scmapplyinbound/save无法访问");
}
@Override
public ResultBean saveOrUpdateApplyInBound(ScmApplyInboundDto dto) {
return ResultBean.fireFail().setMsg("接口anrui-scm/scmapplyinbound/save无法访问");
}
@Override
public ResultBean<ScmApplyInboundVo> fetchSid(String sid) {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui-scm/scmapplyinbound/fetchSid无法访问");
}
@Override
public ResultBean<ScmApplyInboundVo> fetchSid(String sid) {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui-scm/scmapplyinbound/fetchSid无法访问");
}
@Override
public ResultBean submitRecordApplication(SubmitScmApplyInboundDto dto) {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui-scm/scmapplyinbound/submitRecordApplication无法访问");
}
@Override
public ResultBean submitRecordApplication(SubmitScmApplyInboundDto dto) {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui-scm/scmapplyinbound/submitRecordApplication无法访问");
}
@Override
public ResultBean complete(Map<String, Object> variables) {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui-scm/scmapplyinbound/complete无法访问");
}
@Override
public ResultBean complete(SubmitScmApplyInboundDto variables) {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui-scm/scmapplyinbound/complete无法访问");
}
@Override
public ResultBean revokeProcess(String userSid, String businessSid, FlowTaskVo flowTaskVo) {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui-scm/scmapplyinbound/revokeProcess无法访问");
}
@Override
public ResultBean revokeProcess(String userSid, String businessSid, FlowTaskVo flowTaskVo) {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui-scm/scmapplyinbound/revokeProcess无法访问");
}
@Override
public ResultBean taskReject(String businessSid, FlowTaskVo flowTaskVo) {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui-scm/scmapplyinbound/taskReject无法访问");
}
@Override
public ResultBean taskReject(String businessSid, FlowTaskVo flowTaskVo) {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui-scm/scmapplyinbound/taskReject无法访问");
}
@Override
public ResultBean breakProcess(String businessSid, FlowTaskVo flowTaskVo) {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui-scm/scmapplyinbound/breakProcess无法访问");
}
@Override
public ResultBean breakProcess(String businessSid, FlowTaskVo flowTaskVo) {
ResultBean rb = ResultBean.fireFail();
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
public ResultBean flowRecord(String procInsId, String deployId) {
ResultBean rb = ResultBean.fireFail();
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("车辆列表")
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("提交")
@Data
public class SubmitScmApplyInboundDto extends ScmApplyInboundDto{
public class SubmitScmApplyInboundDto extends ScmApplyInboundDto {
@ApiModelProperty("业务sid")
private String businessSid;
@ -20,9 +20,25 @@ public class SubmitScmApplyInboundDto extends ScmApplyInboundDto{
@ApiModelProperty("意见")
private String comment;
@ApiModelProperty("'流程定义的id'")
private String procDefId;
@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")
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;
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.scmapplyinbound.*;
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 java.util.List;
import java.util.Map;
/**
* Project: anrui-scm(进销存) <br/>
@ -64,8 +63,8 @@ public class ScmApplyInboundRest implements ScmApplyInboundFeign {
}
@Override
public ResultBean complete(Map<String, Object> variables) {
return scmApplyInboundService.complete(variables);
public ResultBean complete(SubmitScmApplyInboundDto dto) {
return scmApplyInboundService.complete(dto);
}
@Override
@ -87,4 +86,14 @@ public class ScmApplyInboundRest implements ScmApplyInboundFeign {
public ResultBean flowRecord(String procInsId, String 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 com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
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.LatestTaskVo;
import com.yxt.anrui.flowable.api.sysformlink.SysFormLinkFlowStateEnum;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.api.utils.ProcessStateEnum;
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.sysuser.SysUserFeign;
import com.yxt.anrui.scm.api.flow.FlowTaskVo;
@ -50,308 +56,394 @@ import java.util.stream.Collectors;
@Service
public class ScmApplyInboundService extends MybatisBaseService<ScmApplyInboundMapper, ScmApplyInbound> {
@Autowired
private ScmApplyInboundVehicleService scmApplyInboundVehicleService;
@Autowired
private SysUserFeign sysUserFeign;
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
@Autowired
private FlowableService flowableService;
@Autowired
private FlowTaskFeign flowTaskFeign;
public PagerVo<ScmApplyInbound> listPage(PagerQuery<ScmApplyInboundQuery> pq) {
ScmApplyInboundQuery query = pq.getParams();
QueryWrapper<ScmApplyInbound> qw = createQueryWrapper(query);
IPage<ScmApplyInbound> page = PagerUtil.queryToPage(pq);
IPage<ScmApplyInbound> pagging = baseMapper.selectPage(page, qw);
PagerVo<ScmApplyInbound> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<ScmApplyInbound> listAll(ScmApplyInboundQuery query) {
QueryWrapper<ScmApplyInbound> qw = createQueryWrapper(query);
return baseMapper.selectList(qw);
}
private QueryWrapper<ScmApplyInbound> createQueryWrapper(ScmApplyInboundQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<ScmApplyInbound> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getPurchaseOrderNo())) {
qw.like("purchaseOrderNo", query.getPurchaseOrderNo());
}
if (StringUtils.isNotBlank(query.getModelName())) {
qw.like("modelName", query.getModelName());
}
return qw;
}
public PagerVo<ScmApplyInboundListVo> listPageVo(PagerQuery<ScmApplyInboundQuery> pq) {
ScmApplyInboundQuery query = pq.getParams();
QueryWrapper<ScmApplyInbound> qw = createQueryWrapper(query);
IPage<ScmApplyInbound> page = PagerUtil.queryToPage(pq);
IPage<ScmApplyInboundListVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<ScmApplyInboundListVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<ScmApplyInboundVo> listAllVo(ScmApplyInboundQuery query) {
QueryWrapper<ScmApplyInbound> qw = createQueryWrapper(query);
return baseMapper.selectListAllVo(qw);
}
public List<ScmApplyInboundVo> listVo() {
return baseMapper.selectListVo();
}
/**
* 新增和修改车辆入账单
* @param dto
*/
@Transactional(rollbackFor = Exception.class)
public ResultBean saveOrUpdateApplyInBound(ScmApplyInboundDto dto){
// 验证车架号:不能为空、不能重复
List<ScmApplyInboundVehicleDto> vehicleList = dto.getVehicleList();
List<String> vinNoList = vehicleList.stream().filter(vehicle -> StringUtils.isNotBlank(vehicle.getVinNo())).map(vehicle -> vehicle.getVinNo()).collect(Collectors.toList());
if (vehicleList.size() != vinNoList.size()) {
return new ResultBean().fail().setMsg("车架号不能为空");
}
// 去重
long disCount = vinNoList.stream().distinct().count();
if (vinNoList.size() != disCount) {
return new ResultBean().fail().setMsg("车架号不能重复");
}
if (StringUtils.isBlank(dto.getSid())) { // 新增
// 验证数据库是否重复
for (int i = 0; i < vinNoList.size(); i++) {
int count = scmApplyInboundVehicleService.checkVinNo(vinNoList.get(i), "");
if (count != 0) {
return new ResultBean().setMsg("车架号已经存在");
}
}
ScmApplyInbound inboundVehicle = new ScmApplyInbound();
BeanUtil.copyProperties(dto, inboundVehicle);
inboundVehicle.setSid(UUID.randomUUID().toString());
save(inboundVehicle);
// 保存车辆列表
scmApplyInboundVehicleService.saveApplyInboundVehicleList(vehicleList, inboundVehicle.getSid(), inboundVehicle.getModelSid());
return new ResultBean().success().setMsg("保存成功").setData(inboundVehicle.getSid());
} else { // 修改
// 采购订单下线日期一旦维护,二次确认,则不能修改 TODO
// 验证数据库是否重复
for (int i = 0; i < vinNoList.size(); i++) {
int count = scmApplyInboundVehicleService.checkVinNo(vinNoList.get(i), dto.getSid());
if (count != 0) {
return new ResultBean().setMsg("车架号已经存在");
}
}
ScmApplyInbound scmApplyInbound = fetchBySid(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) {
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();
ResultBean<String> resultBean = sysStaffOrgFeign.getSysStaffOrgSidListByStaffSid(staffSid);
if (resultBean.getSuccess()) {
orgSid = resultBean.getData();
}
return orgSid;
}
/**
* 更新流程相关的状态
* @param map
* @return
*/
private int updateFlowFiled(Map<String, Object> map) {
return baseMapper.updateFlowFiled(map);
}
/**
* 提交入账申请
* @param dto
* @return
*/
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<>();
variables.put("businessSid", businessSid);
variables.put("orgSid", orgSid); //部门sid
if (StringUtils.isBlank(dto.getTaskId())) { // 新提交
ResultBean resultBean1 = flowableService.businessStart(ProcDefEnum.RECORDAPPLICATION.getProDefId(), dto.getUserSid(), variables);
if (resultBean1.getSuccess() && resultBean1.getData() != null) {
Map<String, String> map = (Map<String, String>) resultBean1.getData();
//更新业务表中的流程状态
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);
}
return resultBean1;
} else { // 驳回到发起人后再次提交
variables.put("comment", StringUtils.isNotBlank(dto.getComment()) ? dto.getComment() : "重新提交");
variables.put("instanceId", dto.getInstanceId());
variables.put("taskId", dto.getTaskId());
variables.put("userSid", dto.getUserSid());
return complete(variables);
}
}
/**
* 办理
* @param variables
* @return
*/
public ResultBean complete(Map<String, Object> variables) {
BusinessVariables bv= BusinessVariables.builder().build();
bv.setFormVariables(variables);
ResultBean<com.yxt.anrui.flowable.api.flowtask.FlowTask> resultBean = flowTaskFeign.businessComplete(bv);
if (!resultBean.getSuccess()) {
return resultBean;
}
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);
updateFlowFiled(paramMap);
return resultBean;
}
/**
* 撤回
* @param userSid
* @param businessSid
* @param flowTaskVo
* @return
*/
public ResultBean revokeProcess(String userSid, String businessSid, FlowTaskVo flowTaskVo) {
com.yxt.anrui.flowable.api.flowtask.FlowTaskVo fl=new com.yxt.anrui.flowable.api.flowtask.FlowTaskVo();
BeanUtil.copyProperties(flowTaskVo,fl);
fl.setUserSid(userSid);
ResultBean<List<LatestTaskVo>> resultBean = flowTaskFeign.revokeProcess(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);
if (incomingSourceRef.contains("start")) {
paramMap.put("nodeState", SysFormLinkFlowStateEnum.UNCOMMITTED.getState());
paramMap.put("taskDefKey", taskDefKey);
paramMap.put("flowState", SysFormLinkFlowStateEnum.UNCOMMITTED.getCode());
} else {
paramMap.put("nodeState",nodeState );
paramMap.put("taskDefKey",taskDefKey );
}
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);
}
@Autowired
private ScmApplyInboundVehicleService scmApplyInboundVehicleService;
@Autowired
private SysUserFeign sysUserFeign;
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
@Autowired
private FlowableFeign flowableFeign;
// private FlowableService flowableService;
@Autowired
private FlowTaskFeign flowTaskFeign;
public PagerVo<ScmApplyInbound> listPage(PagerQuery<ScmApplyInboundQuery> pq) {
ScmApplyInboundQuery query = pq.getParams();
QueryWrapper<ScmApplyInbound> qw = createQueryWrapper(query);
IPage<ScmApplyInbound> page = PagerUtil.queryToPage(pq);
IPage<ScmApplyInbound> pagging = baseMapper.selectPage(page, qw);
PagerVo<ScmApplyInbound> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<ScmApplyInbound> listAll(ScmApplyInboundQuery query) {
QueryWrapper<ScmApplyInbound> qw = createQueryWrapper(query);
return baseMapper.selectList(qw);
}
private QueryWrapper<ScmApplyInbound> createQueryWrapper(ScmApplyInboundQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<ScmApplyInbound> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getPurchaseOrderNo())) {
qw.like("purchaseOrderNo", query.getPurchaseOrderNo());
}
if (StringUtils.isNotBlank(query.getModelName())) {
qw.like("modelName", query.getModelName());
}
return qw;
}
public PagerVo<ScmApplyInboundListVo> listPageVo(PagerQuery<ScmApplyInboundQuery> pq) {
ScmApplyInboundQuery query = pq.getParams();
QueryWrapper<ScmApplyInbound> qw = createQueryWrapper(query);
IPage<ScmApplyInbound> page = PagerUtil.queryToPage(pq);
IPage<ScmApplyInboundListVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<ScmApplyInboundListVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<ScmApplyInboundVo> listAllVo(ScmApplyInboundQuery query) {
QueryWrapper<ScmApplyInbound> qw = createQueryWrapper(query);
return baseMapper.selectListAllVo(qw);
}
public List<ScmApplyInboundVo> listVo() {
return baseMapper.selectListVo();
}
/**
* 新增和修改车辆入账单
*
* @param dto
*/
@Transactional(rollbackFor = Exception.class)
public ResultBean<String> saveOrUpdateApplyInBound(ScmApplyInboundDto dto) {
// 验证车架号:不能为空、不能重复
List<ScmApplyInboundVehicleDto> vehicleList = dto.getVehicleList();
List<String> vinNoList = vehicleList.stream().filter(vehicle -> StringUtils.isNotBlank(vehicle.getVinNo())).map(vehicle -> vehicle.getVinNo()).collect(Collectors.toList());
if (vehicleList.size() != vinNoList.size()) {
return new ResultBean().fail().setMsg("车架号不能为空");
}
// 去重
long disCount = vinNoList.stream().distinct().count();
if (vinNoList.size() != disCount) {
return new ResultBean().fail().setMsg("车架号不能重复");
}
if (StringUtils.isBlank(dto.getSid())) { // 新增
// 验证数据库是否重复
for (int i = 0; i < vinNoList.size(); i++) {
int count = scmApplyInboundVehicleService.checkVinNo(vinNoList.get(i), "");
if (count != 0) {
return new ResultBean().setMsg("车架号已经存在");
}
}
ScmApplyInbound inboundVehicle = new ScmApplyInbound();
BeanUtil.copyProperties(dto, inboundVehicle);
inboundVehicle.setSid(UUID.randomUUID().toString());
save(inboundVehicle);
// 保存车辆列表
scmApplyInboundVehicleService.saveApplyInboundVehicleList(vehicleList, inboundVehicle.getSid(), inboundVehicle.getModelSid());
return new ResultBean().success().setMsg("保存成功").setData(inboundVehicle.getSid());
} else { // 修改
// 采购订单下线日期一旦维护,二次确认,则不能修改 TODO
// 验证数据库是否重复
for (int i = 0; i < vinNoList.size(); i++) {
int count = scmApplyInboundVehicleService.checkVinNo(vinNoList.get(i), dto.getSid());
if (count != 0) {
return new ResultBean().setMsg("车架号已经存在");
}
}
ScmApplyInbound scmApplyInbound = fetchBySid(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) {
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();
ResultBean<String> resultBean = sysStaffOrgFeign.getSysStaffOrgSidListByStaffSid(staffSid);
if (resultBean.getSuccess()) {
orgSid = resultBean.getData();
}
return orgSid;
}
/**
* 更新流程相关的状态
*
* @param map
* @return
*/
private int updateFlowFiled(Map<String, Object> 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
* @return
*/
public ResultBean submitRecordApplication(SubmitScmApplyInboundDto dto) {
ResultBean rb = ResultBean.fireFail();
//取组织架构的全路径sid
// SysStaffOrg sysStaffOrg = sysStaffOrgFeign.getOrgByStaffSid(dto.getUserSid()).getData();
String orgSidPath = dto.getOrgSidPath(); //sysStaffOrg.getOrgSidPath();
Map<String, Object> variables = BeanUtil.beanToMap(dto);
ScmApplyInbound booad = new ScmApplyInbound();
int r = submitBusinessData(dto, booad);
if (r == 0) {
return rb.setMsg("操作失败,提交的数据不一致!");
}
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;
} else if (r == 2) {
bv.setTaskDefKey(booad.getTaskDefKey());
bv.setComment(StringUtils.isNotBlank(dto.getComment()) ? dto.getComment() : "重新提交");
bv.setInstanceId(booad.getProcInsId());
ResultBean<UpdateFlowFieldVo> rrb = flowableFeign.handleProsess(bv);
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 dto
* @return
*/
public ResultBean complete(SubmitScmApplyInboundDto dto) {
ResultBean rb = ResultBean.fireFail();
ScmApplyInbound booad = this.fetchBySid(dto.getSid());
if (StringUtils.isBlank(booad.getTaskId()) || !booad.getTaskId().equals(dto.getTaskId())) {
return rb.setMsg("操作失败,提交的数据不一致!");
}
//取组织架构的全路径sid
// SysStaffOrg sysStaffOrg = sysStaffOrgFeign.getOrgByStaffSid(dto.getApplicationSid()).getData();
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 businessSid
* @param flowTaskVo
* @return
*/
public ResultBean revokeProcess(String userSid, String businessSid, FlowTaskVo flowTaskVo) {
com.yxt.anrui.flowable.api.flowtask.FlowTaskVo fl = new com.yxt.anrui.flowable.api.flowtask.FlowTaskVo();
BeanUtil.copyProperties(flowTaskVo, fl);
fl.setUserSid(userSid);
ResultBean<List<LatestTaskVo>> resultBean = flowTaskFeign.revokeProcess(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);
if (incomingSourceRef.contains("start")) {
paramMap.put("nodeState", SysFormLinkFlowStateEnum.UNCOMMITTED.getState());
paramMap.put("taskDefKey", taskDefKey);
paramMap.put("flowState", SysFormLinkFlowStateEnum.UNCOMMITTED.getCode());
} else {
paramMap.put("nodeState", nodeState);
paramMap.put("taskDefKey", taskDefKey);
}
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'
}
})
},
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>
<!--start 添加修改按钮-->
<div>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="saveEdit()">保存
</el-button>
<el-button type="primary" size="small" @click="submitVehicleApply()">提交
</el-button>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="saveEdit()">保存</el-button>
<el-button type="primary" size="small" @click="submitVehicleApply()">提交</el-button>
<el-button type="info" size="small" @click="handleReturn()">返回</el-button>
</div>
</div>
@ -20,87 +18,57 @@
<div class="wlInfo"><span>车辆入账单</span></div>
<el-form ref="form_obj" :model="formobj" :rules="rules" label-position="top">
<el-row class="lineone">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="申请编号:"></el-form-item>
</el-col>
<el-col :span="3" class="el-form-item-right"><el-form-item label="申请编号:" /></el-col>
<el-col :span="5">
<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-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-col>
<el-col :span="5">
<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-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-col>
<el-col :span="5">
<el-form-item>
<el-input v-model="formobj.applicationName" readonly/>
</el-form-item>
<el-form-item><el-input v-model="formobj.applicationName" readonly /></el-form-item>
</el-col>
</el-row>
<el-row class="linetwo">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="车型:"></el-form-item>
</el-col>
<el-col :span="3" class="el-form-item-right"><el-form-item label="车型:" /></el-col>
<el-col :span="21">
<el-form-item>
<el-input v-model="formobj.modelName" readonly/>
</el-form-item>
<el-form-item><el-input v-model="formobj.modelName" readonly /></el-form-item>
</el-col>
</el-row>
<el-row class="linetwo">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="常用配置:"></el-form-item>
</el-col>
<el-col :span="3" class="el-form-item-right"><el-form-item label="常用配置:" /></el-col>
<el-col :span="21">
<el-form-item>
<el-input v-model="formobj.configName" readonly/>
</el-form-item>
<el-form-item><el-input v-model="formobj.configName" readonly /></el-form-item>
</el-col>
</el-row>
<div class="tableStyle">
<div style="margin-left: 5px;font-weight: bold">车辆列表</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-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">
<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>
</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/>
<el-input v-model="scope.row.remarks" placeholder="" class="addinputw" clearable />
</template>
</el-table-column>
</el-table>
<el-row 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="3" class="el-form-item-right"><el-form-item label="厂家发车日期:" /></el-col>
<el-col :span="21">
<el-form-item>
<el-date-picker value-format="yyyy-MM-dd" v-model="formobj.departureDate" clearable type="date" placeholder="开始日期"/>
</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-col>
</el-col>
</el-row>
<el-row class="linethree">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="备注:"></el-form-item>
</el-col>
<el-col :span="3" class="el-form-item-right"><el-form-item label="备注:" /></el-col>
<el-col :span="21">
<el-form-item>
<el-input v-model="formobj.remarks" clearable/>
</el-form-item>
<el-form-item><el-input v-model="formobj.remarks" clearable /></el-form-item>
</el-col>
</el-row>
</el-form>
@ -113,7 +81,7 @@
<script>
import req from '@/api/ruzhang/scmapplyinbound'
export default {
name: 'ruzhangAdd',
name: 'RuzhangAdd',
data() {
return {
viewTitle: '',
@ -122,9 +90,9 @@ export default {
//
formobj: {
sid: '', // sid
applicationSid: 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: '', //
configName: '',
departureDate: '',
@ -133,6 +101,7 @@ export default {
purchaseOrderNo: '',
remarks: '', //
vehicleOrderSid: '',
taskId: '',
vehicleList: []
},
rules: {},
@ -146,68 +115,77 @@ export default {
})
this.viewTitle = '【编辑】入账单'
console.log('编辑回显', sid, row)
req.fetchBySid(sid).then((resp) => {
const data = resp.data
this.formobj.applicationCode = data.applicationCode
this.formobj.remarks = data.remarks
this.formobj.sid = sid
this.formobj.configName = data.configName
this.formobj.departureDate = data.departureDate
this.formobj.modelName = data.modelName
this.formobj.modelSid = data.modelSid
this.formobj.purchaseOrderNo = data.purchaseOrderNo
this.formobj.vehicleOrderSid = data.vehicleOrderSid
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
req
.fetchBySid(sid)
.then(resp => {
const data = resp.data
this.formobj.applicationSid = data.applicationSid
this.formobj.applicationName = data.applicationName
this.formobj.applicationCode = data.applicationCode
this.formobj.remarks = data.remarks
this.formobj.sid = sid
this.formobj.configName = data.configName
this.formobj.departureDate = data.departureDate
this.formobj.modelName = data.modelName
this.formobj.modelSid = data.modelSid
this.formobj.purchaseOrderNo = data.purchaseOrderNo
this.formobj.vehicleOrderSid = data.vehicleOrderSid
this.formobj.taskId = data.taskId
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
})
})
})
}
// else {
// for (var i = 0; i < row[0].vehicleNum; i++) {
// this.formobj.vehicleList.push({
// applySid: '',
// remarks: '',
// modelSid: this.formobj.modelSid,
// sid: '',
// vinNo: ''
// })
// }
// }
}).catch((e) => {
this.formobj = row
})
}
// else {
// for (var i = 0; i < row[0].vehicleNum; i++) {
// this.formobj.vehicleList.push({
// applySid: '',
// remarks: '',
// modelSid: this.formobj.modelSid,
// sid: '',
// vinNo: ''
// })
// }
// }
})
.catch(e => {
this.formobj = row
})
},
saveEdit() {
console.log(this.formobj, 636363)
this.$refs['form_obj'].validate((valid) => {
this.$refs['form_obj'].validate(valid => {
if (valid) {
this.submitdisabled = true
req.saveOrUpdate(this.formobj).then((resp) => {
this.submitdisabled = false
this.$message({
showClose: true,
type: 'success',
message: resp.msg
req
.saveOrUpdate(this.formobj)
.then(resp => {
this.submitdisabled = false
this.$message({
showClose: true,
type: 'success',
message: resp.msg
})
this.handleReturn('true')
})
.catch(() => {
this.submitdisabled = false
})
this.handleReturn('true')
}).catch(() => {
this.submitdisabled = false
})
} else {
return false
}
})
},
submitVehicleApply() {
req.submitVehicleApply(this.formobj).then((res) => {
req.submitVehicleApply(this.formobj).then(res => {
console.log(res.code, res.success)
if (res.code == '200' && res.success) {
if (res.code === '200' && res.success) {
this.$message({
showClose: true,
type: 'success',
@ -231,7 +209,7 @@ export default {
this.formobj.vehicleList = []
this.$refs['form_obj'].resetFields()
this.$emit('doback')
},
}
}
}
</script>
@ -264,7 +242,7 @@ export default {
margin-bottom: 0px !important;
}
.tableStyle {
background-color: #FFFFFF;
background-color: #ffffff;
display: flex;
justify-content: flex-start;
align-items: center;
@ -276,4 +254,3 @@ export default {
text-align: right;
}
</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-row class="lineone">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="申请编号:"></el-form-item>
<el-form-item label="申请编号:" />
</el-col>
<el-col :span="5">
<el-form-item>
<el-input v-model="formobj.applicationCode" readonly/>
<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-form-item label="采购订单编号:" />
</el-col>
<el-col :span="5">
<el-form-item>
<el-input v-model="formobj.purchaseOrderNo" readonly/>
<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-form-item label="申请人:" />
</el-col>
<el-col :span="5">
<el-form-item>
<el-input v-model="formobj.applicationName" readonly/>
<el-input v-model="formobj.applicationName" readonly />
</el-form-item>
</el-col>
</el-row>
<el-row class="linetwo">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="车型:"></el-form-item>
<el-form-item label="车型:" />
</el-col>
<el-col :span="21">
<el-form-item>
<el-input v-model="formobj.modelName" readonly/>
<el-input v-model="formobj.modelName" readonly />
</el-form-item>
</el-col>
</el-row>
<el-row class="linetwo">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="常用配置:"></el-form-item>
<el-form-item label="常用配置:" />
</el-col>
<el-col :span="21">
<el-form-item>
<el-input v-model="formobj.configName" readonly/>
<el-input v-model="formobj.configName" readonly />
</el-form-item>
</el-col>
</el-row>
@ -69,37 +69,37 @@
<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 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/>
<el-input v-model="scope.row.vinNo" placeholder="" class="addinputw" clearable />
</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/>
<el-input v-model="scope.row.remarks" placeholder="" class="addinputw" clearable />
</template>
</el-table-column>
</el-table>
<el-row style="margin-top: 10px">
<el-col>
<el-col :span="3" class="el-form-item-right">
<el-form-item label="厂家发车日期:"></el-form-item>
<el-form-item label="厂家发车日期:" />
</el-col>
<el-col :span="21">
<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-col>
</el-col>
</el-row>
<el-row class="linethree">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="备注:"></el-form-item>
<el-form-item label="备注:" />
</el-col>
<el-col :span="21">
<el-form-item>
<el-input v-model="formobj.remarks" clearable/>
<el-input v-model="formobj.remarks" clearable />
</el-form-item>
</el-col>
</el-row>
@ -113,7 +113,7 @@
<script>
import req from '@/api/ruzhang/scmapplyinbound'
export default {
name: 'ruzhangAdd',
name: 'RuzhangAdd',
data() {
return {
viewTitle: '',
@ -160,6 +160,14 @@ export default {
this.formobj.businessSid = sid
this.formobj.instanceId = obj.instanceId
this.formobj.taskId = obj.taskId
window.parent.postMessage({
cmd: 'returnHeight',
params: {
//
code: 2,
data: 1500 + 'px'
}
}, '*')
},
methods: {
showInfo(sid) {

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

@ -1,142 +1,144 @@
<template>
<div class="app-container">
<div>
<!--标题按钮部分开始-->
<div class="tab-header webtop">
<!--标题-->
<div>{{ viewTitle }}</div>
<!--start 添加修改按钮-->
<div>
<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="openStop"> </el-button>
<el-button v-show="transactState=='01'" type="danger" @click="openRevoke"> </el-button>
<el-button type="info"> </el-button>
</div>
<div>
<!--标题按钮部分开始-->
<div class="tab-header webtop">
<!--标题-->
<div>{{ viewTitle }}</div>
<!--start 添加修改按钮-->
<div>
<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="openStop"> </el-button>
<el-button v-show="transactState == '01'" type="danger" @click="openRevoke"> </el-button>
</div>
<!--标题按钮部分结束-->
<!--Start 新增修改部分-->
<div class="listconadd">
<div class="wlInfo"><span>车辆入账单</span></div>
<el-form ref="form_obj" :model="formobj" :rules="rules" label-position="top">
<el-row class="lineone">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="申请编号:"></el-form-item>
</el-col>
<el-col :span="5">
<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 :span="5">
<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 :span="5">
<el-form-item>
<el-input v-model="formobj.applicationName" readonly/>
</el-form-item>
</el-col>
</el-row>
<el-row class="linetwo">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="车型:"></el-form-item>
</el-col>
</div>
<!--标题按钮部分结束-->
<!--Start 新增修改部分-->
<div>
<div class="wlInfo"><span>车辆入账单</span></div>
<el-form ref="form_obj" :model="formobj" :rules="rules" label-position="top">
<el-row class="linetwo">
<el-col :span="3" class="el-form-item-right"><el-form-item label="申请编号:" /></el-col>
<el-col :span="5">
<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-col>
<el-col :span="5">
<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-col>
<el-col :span="5">
<el-form-item><el-input v-model="formobj.applicationName" readonly /></el-form-item>
</el-col>
</el-row>
<el-row class="linetwo">
<el-col :span="3" class="el-form-item-right"><el-form-item label="车型:" /></el-col>
<el-col :span="21">
<el-form-item><el-input v-model="formobj.modelName" readonly /></el-form-item>
</el-col>
</el-row>
<el-row class="linetwo">
<el-col :span="3" class="el-form-item-right"><el-form-item label="常用配置:" /></el-col>
<el-col :span="21">
<el-form-item><el-input v-model="formobj.configName" readonly /></el-form-item>
</el-col>
</el-row>
<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-col>
<el-col :span="21">
<el-form-item>
<el-input v-model="formobj.modelName" readonly/>
</el-form-item>
<el-form-item><el-input v-model="formobj.departureDate" placeholder="" class="addinputw" clearable readonly /></el-form-item>
</el-col>
</el-row>
<el-row class="linetwo">
<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.configName" readonly/>
</el-col>
</el-row>
<el-row class="linetwo">
<el-col :span="3" class="el-form-item-right"><el-form-item label="备注:" /></el-col>
<el-col :span="21">
<el-form-item><el-input v-model="formobj.remarks" clearable readonly /></el-form-item>
</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-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-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-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>
<el-row class="linetwo">
<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.remarks" clearable readonly/>
<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-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>
</el-form>
</div>
</el-dialog>
</div>
<!--End 添加修改部分-->
</div>
</template>
<script>
import req from '@/api/ruzhang/scmapplyinbound'
export default {
name: 'ruzhangInfo',
name: 'RuzhangInfo',
data() {
return {
//
nodeDialogVisible: false,
nodeDialogVisibleForReject: false,
//
nextNode: {},
viewTitle: '',
index: 0,
tableKey: 0,
//
formobj: {
sid: '', // sid
applicationSid: window.sessionStorage.getItem('userSid'), // sid
applicationName: window.sessionStorage.getItem('name'), //
applicationCode: '', //
userSid: window.sessionStorage.getItem('userSid'), // sid
orgSidPath: window.sessionStorage.getItem('orgSidPath'),
staffSid: window.sessionStorage.getItem('staffSid'),
configName: '',
departureDate: '',
modelName: '',
@ -218,112 +220,99 @@ export default {
this.revokeList.taskId = obj.taskId
//
this.transactState = obj.transactState
window.parent.postMessage(
{
cmd: 'returnHeight',
params: {
//
code: 2,
data: 600 + 'px'
}
},
'*'
)
},
methods: {
//
closeNodeDialog() {
this.nodeDialogVisible = false
this.nodeDialogVisibleForReject = false
},
showInfo(sid, row) {
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
this.viewTitle = '入账单详情'
console.log('编辑回显', sid, row)
req.fetchBySid(sid).then((resp) => {
const data = resp.data
this.formobj.applicationCode = data.applicationCode
this.formobj.remarks = data.remarks
this.formobj.sid = sid
this.formobj.configName = data.configName
this.formobj.departureDate = data.departureDate
this.formobj.modelName = data.modelName
this.formobj.modelSid = data.modelSid
this.formobj.purchaseOrderNo = data.purchaseOrderNo
this.formobj.vehicleOrderSid = data.vehicleOrderSid
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
req
.fetchBySid(sid)
.then(resp => {
const data = resp.data
this.formobj.applicationSid = data.applicationSid
this.formobj.applicationName = data.applicationName
this.formobj.applicationCode = data.applicationCode
this.formobj.remarks = data.remarks
this.formobj.sid = sid
this.formobj.configName = data.configName
this.formobj.departureDate = data.departureDate
this.formobj.modelName = data.modelName
this.formobj.modelSid = data.modelSid
this.formobj.purchaseOrderNo = data.purchaseOrderNo
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) {
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: '已取消驳回'
}
})
})
},
//
openStop() {
this.$confirm('是否确认执行终止操作', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.handleStop()
}).catch(() => {
this.$message({
type: 'info',
message: '已取消终止'
.catch(e => {
this.formobj = row
})
})
},
/** 确认撤回任务 */
openRevoke() {
this.$confirm('是否确认执行撤回操作', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.handleRevoke()
}).catch(() => {
this.$message({
type: 'info',
message: '已取消撤回'
})
//
openAgree() {
// id
req.getNextNodesForSubmit(this.formobj).then(resp => {
if (resp.success) {
var arr = resp.data
this.nextNode = arr[0]
this.nodeDialogVisible = true
}
this.submitdisabled = false
})
},
/** 同意任务 */
handleAgree() {
this.agreeList.comment = this.dialogList.comment
req.businessAgree(this.agreeList).then((response) => {
if (!this.formobj.comment) {
alert('请填写审批意见!')
return
}
//
// sid
//
req.businessAgree(this.formobj).then(response => {
if (response.code === '200') {
this.$notify({
title: '提示',
message: '执行成功',
type: 'success',
duration: 2000
})
this.refreshIt()
this.nodeDialogVisible = false
//
window.parent.postMessage(
{
cmd: 'returnHeight',
params: {
//
code: 1
}
},
'*'
)
} else {
this.$notify({
title: '提示',
@ -334,10 +323,30 @@ export default {
}
})
},
/** 终止任务 */
handleStop() {
this.stopList.comment = this.dialogList.comment
req.breakTask(this.stopList).then((response) => {
//
openReject() {
req.getPreviousNodesForReject(this.formobj).then(resp => {
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') {
this.$notify({
title: '提示',
@ -345,6 +354,17 @@ export default {
type: 'success',
duration: 2000
})
this.nodeDialogVisibleForReject = false
window.parent.postMessage(
{
cmd: 'returnHeight',
params: {
code: 1
}
},
'*'
)
// this.refreshIt()
} else {
this.$notify({
title: '提示',
@ -355,10 +375,44 @@ export default {
}
})
},
/** 驳回任务 */
handleReject() {
this.regectList.comment = this.dialogList.comment
req.rejectTask(this.regectList).then((response) => {
//
openStop() {
this.$confirm('是否确认执行终止操作', '提示', {
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') {
this.$notify({
title: '提示',
@ -379,7 +433,7 @@ export default {
/** 撤回任务 */
handleRevoke() {
this.revokeList.comment = this.dialogList.comment
req.revokeTask(this.revokeList).then((response) => {
req.revokeTask(this.revokeList).then(response => {
if (response.code === '200') {
this.$notify({
title: '提示',
@ -426,7 +480,7 @@ export default {
border: 0;
}
.tableStyle {
background-color: #FFFFFF;
background-color: #ffffff;
display: flex;
justify-content: flex-start;
align-items: center;
@ -440,4 +494,3 @@ export default {
width: 600px;
}
</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