|
|
@ -1,39 +1,45 @@ |
|
|
|
package com.yxt.anrui.base.biz.basevehicleactualsales; |
|
|
|
|
|
|
|
import cn.hutool.core.convert.Convert; |
|
|
|
import cn.hutool.core.bean.BeanUtil; |
|
|
|
import com.alibaba.fastjson.JSON; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
import com.yxt.anrui.base.api.basevehicle.BaseVehicleUpdateQuery; |
|
|
|
import com.yxt.anrui.base.api.basevehicleactualdetails.BaseVehicleActualDetails; |
|
|
|
import com.yxt.anrui.base.api.basevehicleactualdetails.BaseVehicleActualDetailsVo; |
|
|
|
import com.yxt.anrui.base.api.basevehicleactualsales.*; |
|
|
|
import com.yxt.anrui.base.api.basevehicleactualsales.flow.BaseActualSalesTaskQuery; |
|
|
|
import com.yxt.anrui.base.api.basevehicleactualsales.flow.GetNodeQuery; |
|
|
|
import com.yxt.anrui.base.api.basevehicleactualsales.flow.GetNodeVo; |
|
|
|
import com.yxt.anrui.base.api.basevehicleactualsales.flow.SubmitActualSalesDto; |
|
|
|
import com.yxt.anrui.base.biz.basevehicle.BaseVehicleService; |
|
|
|
import com.yxt.anrui.base.biz.basevehicleactualdetails.BaseVehicleActualDetailsService; |
|
|
|
import com.yxt.anrui.flowable.api.flow.FlowableFeign; |
|
|
|
import com.yxt.anrui.flowable.api.flowtask.FlowTask; |
|
|
|
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.SysFormLinkFeign; |
|
|
|
import com.yxt.anrui.flowable.api.sysformlink.SysFormLinkFlowStateEnum; |
|
|
|
import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo; |
|
|
|
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.portal.api.sysuser.SysUserVo; |
|
|
|
import com.yxt.common.base.service.MybatisBaseService; |
|
|
|
import com.yxt.common.base.utils.PagerUtil; |
|
|
|
import com.yxt.common.base.utils.StringUtils; |
|
|
|
import com.yxt.common.core.query.PagerQuery; |
|
|
|
import com.yxt.common.core.result.ResultBean; |
|
|
|
import com.yxt.common.core.vo.PagerVo; |
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
|
import org.springframework.beans.BeanUtils; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
import java.util.HashMap; |
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Map; |
|
|
|
import java.util.Optional; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
/** |
|
|
|
* @Author dimengzhe |
|
|
@ -43,8 +49,6 @@ import java.util.Map; |
|
|
|
@Service |
|
|
|
public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicleActualSalesMapper, BaseVehicleActualSales> { |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private SysFormLinkFeign sysFormLinkFeign; |
|
|
|
@Autowired |
|
|
|
private BaseVehicleActualDetailsService baseVehicleActualDetailsService; |
|
|
|
|
|
|
@ -69,16 +73,6 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl |
|
|
|
IPage<BaseVehicleActualSalesVo> page = pagerList(pagerQuery); |
|
|
|
PagerVo<BaseVehicleActualSalesVo> pv = new PagerVo<>(); |
|
|
|
PagerVo<BaseVehicleActualSalesVo> pv1 = PagerUtil.pageToVo(page, pv); |
|
|
|
List<BaseVehicleActualSalesVo> voList = pv1.getRecords(); |
|
|
|
if (voList.size() > 0) { |
|
|
|
for (BaseVehicleActualSalesVo vo : voList) { |
|
|
|
if (StringUtils.isNotBlank(vo.getNodeState())) { |
|
|
|
vo.setNodeState(vo.getNodeState()); |
|
|
|
} else { |
|
|
|
vo.setNodeState("待提交"); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
return pv1; |
|
|
|
} |
|
|
|
|
|
|
@ -90,18 +84,8 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl |
|
|
|
*/ |
|
|
|
private IPage<BaseVehicleActualSalesVo> pagerList(PagerQuery<BaseVehicleActualSalesQuery> pagerQuery) { |
|
|
|
IPage<?> page = PagerUtil.queryToPage(pagerQuery); |
|
|
|
QueryWrapper<BaseVehicleActualSales> qw = buildQueryWrapper(pagerQuery.getParams()); |
|
|
|
return baseMapper.pagerList(page, qw); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 构造查询条件 |
|
|
|
* |
|
|
|
* @param params 查询条件 |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
private QueryWrapper<BaseVehicleActualSales> buildQueryWrapper(BaseVehicleActualSalesQuery params) { |
|
|
|
QueryWrapper<BaseVehicleActualSales> qw = new QueryWrapper<>(); |
|
|
|
BaseVehicleActualSalesQuery params = pagerQuery.getParams(); |
|
|
|
if (params != null) { |
|
|
|
//申请日期
|
|
|
|
qw.apply(StringUtils.isNotBlank(params.getApplyStartDate()), "date_format (sv.createTime,'%Y-%m-%d') >= date_format('" + params.getApplyStartDate() + "','%Y-%m-%d')"). |
|
|
@ -122,7 +106,7 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl |
|
|
|
} |
|
|
|
} |
|
|
|
qw.eq("sv.createBySid", params.getUserSid()); |
|
|
|
return qw; |
|
|
|
return baseMapper.pagerList(page, qw); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
@ -132,8 +116,8 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl |
|
|
|
* @return 未售买断申请的sid |
|
|
|
*/ |
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
public ResultBean saveOrUpdateVehicleSales(BaseVehicleActualSalesDto scmVehicleActualSalesDto) { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
public ResultBean<String> saveOrUpdateVehicleSales(BaseVehicleActualSalesDto scmVehicleActualSalesDto) { |
|
|
|
ResultBean<String> rb = ResultBean.fireFail(); |
|
|
|
String sid = scmVehicleActualSalesDto.getSid(); |
|
|
|
if (StringUtils.isBlank(sid)) { |
|
|
|
//新增
|
|
|
@ -180,115 +164,6 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl |
|
|
|
return false; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 查询用户是否设置了部门 |
|
|
|
* |
|
|
|
* @param userSid 用户sid |
|
|
|
* @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 baseVehicleActualSalesDto 未售买断新增修改数据传输对象 |
|
|
|
* @return 未售买断申请的sid |
|
|
|
*/ |
|
|
|
public ResultBean submitVehicleSales(BaseVehicleActualSalesDto baseVehicleActualSalesDto) { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
String orgSid = checkUserOrg(baseVehicleActualSalesDto.getUserSid()); |
|
|
|
if (baseVehicleActualSalesDto.getDetailsList().size() == 0) { |
|
|
|
return rb.setMsg("请选择未售买断的车辆"); |
|
|
|
} |
|
|
|
//保存或修改未售买断申请
|
|
|
|
ResultBean resultBean = saveOrUpdateVehicleSales(baseVehicleActualSalesDto); |
|
|
|
if (!resultBean.getSuccess()) { |
|
|
|
return rb.setMsg(resultBean.getMsg()); |
|
|
|
} |
|
|
|
//判断车辆的结算状态是否包含预买断的状态,如果是的话,返回提交失败
|
|
|
|
boolean isTrue = isTrue(resultBean.getData().toString()); |
|
|
|
if (isTrue) { |
|
|
|
return rb.setMsg("提交失败!该申请中包含结算状态已是预买断状态的车辆"); |
|
|
|
} |
|
|
|
//开启流程
|
|
|
|
ResultBean resultBean1 = businessStart(baseVehicleActualSalesDto.getUserSid(), resultBean.getData().toString(), orgSid); |
|
|
|
if (!resultBean1.getSuccess()) { |
|
|
|
log.error("开启流程失败"); |
|
|
|
return rb.setMsg("提交失败"); |
|
|
|
} |
|
|
|
return resultBean; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 开启流程 |
|
|
|
* |
|
|
|
* @param userSid 用户sid |
|
|
|
* @param businessSid 业务sid |
|
|
|
* @param orgSid 单位sid |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
public ResultBean businessStart(String userSid, String businessSid, String orgSid) { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
Map<String, Object> variables = new HashMap<>(); |
|
|
|
variables.put("businessSid", businessSid); |
|
|
|
variables.put("orgSid", orgSid); |
|
|
|
ResultBean businessResultBean = null;// flowableFeign.businessStart(ProcDefEnum.BASEVEHICLEACTUALSALES.getProDefId(), userSid, variables);
|
|
|
|
if (businessResultBean.getSuccess() && businessResultBean.getData() != null) { |
|
|
|
Map<String, String> map = (Map<String, String>) businessResultBean.getData(); |
|
|
|
//更新未售买断业务表中的流程状态
|
|
|
|
/* modifyFlowState(businessSid, |
|
|
|
ProcDefEnum.SCMVEHICLERETURN.getProDefId(), |
|
|
|
map.get("nodeState"), |
|
|
|
map.get("procInsId"), |
|
|
|
map.get("taskDefKey") |
|
|
|
);*/ |
|
|
|
modifyFlowState(businessSid, |
|
|
|
ProcDefEnum.SALESORDER.getProDefId(), |
|
|
|
map.get("nodeState"), |
|
|
|
map.get("procInsId"), |
|
|
|
map.get("taskDefKey"), |
|
|
|
map.get("taskId")); |
|
|
|
return rb.success(); |
|
|
|
} else { |
|
|
|
return rb.setMsg(businessResultBean.getMsg()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 更新未售买断业务表中的流程状态 |
|
|
|
* |
|
|
|
* @param businessSid 业务sid |
|
|
|
* @param proDefId 流程定义ID |
|
|
|
* @param nodeState 节点状态 |
|
|
|
* @param procInsId 流程实例ID |
|
|
|
* @param taskDefKey 任务定义的ID值 |
|
|
|
*/ |
|
|
|
/*private void modifyFlowState(String businessSid, String proDefId, String nodeState, |
|
|
|
String procInsId, |
|
|
|
String taskDefKey) { |
|
|
|
baseMapper.modifyFlowState(businessSid, |
|
|
|
proDefId, |
|
|
|
nodeState, |
|
|
|
procInsId, |
|
|
|
taskDefKey); |
|
|
|
}*/ |
|
|
|
private void modifyFlowState(String businessSid, String proDefId, String nodeState, |
|
|
|
String procInsId, |
|
|
|
String taskDefKey, String taskId) { |
|
|
|
baseMapper.modifyFlowState(businessSid, |
|
|
|
proDefId, |
|
|
|
nodeState, |
|
|
|
procInsId, |
|
|
|
taskDefKey, taskId); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 初始化 |
|
|
@ -309,73 +184,12 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl |
|
|
|
return rb.success().setData(vo); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 审批同意 |
|
|
|
* |
|
|
|
* @param baseVehicleActualSalesFlowQuery 审批相关参数 |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
public ResultBean complete(BaseVehicleActualSalesFlowQuery baseVehicleActualSalesFlowQuery) { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
//查询对象转换为map集合
|
|
|
|
Map<String, Object> variables = Convert.toMap(String.class, Object.class, baseVehicleActualSalesFlowQuery); |
|
|
|
BusinessVariables bv = BusinessVariables.builder().build(); |
|
|
|
bv.setFormVariables(variables); |
|
|
|
//判断车辆的结算状态是否包含预买断的状态,如果是的话,返回审核失败
|
|
|
|
boolean isTrue = isTrue(baseVehicleActualSalesFlowQuery.getBusinessSid()); |
|
|
|
if (isTrue) { |
|
|
|
return rb.setMsg("审核失败!该申请中包含结算状态已是预买断状态的车辆"); |
|
|
|
} |
|
|
|
//审批
|
|
|
|
ResultBean<FlowTask> resultBean = flowTaskFeign.businessComplete(bv); |
|
|
|
if (!resultBean.getSuccess()) { |
|
|
|
return rb.setMsg(resultBean.getMsg()); |
|
|
|
} |
|
|
|
Map<String, Object> map = getMap(variables.get("businessSid").toString(), resultBean.getData()); |
|
|
|
//更新关联表节点状态属性
|
|
|
|
sysFormLinkFeign.updateFiled(map); |
|
|
|
if ("Event_end".equals(map.get("taskDefKey"))) { |
|
|
|
//更新车辆的结算状态
|
|
|
|
updateByVinNo(variables.get("businessSid").toString()); |
|
|
|
} |
|
|
|
return rb.success(); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 获取关联表节点状态属性 |
|
|
|
* |
|
|
|
* @param businessSid 业务sid |
|
|
|
* @param flowTask 工作流任务相关参数 |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
public Map<String, Object> getMap(String businessSid, FlowTask flowTask) { |
|
|
|
String nodeState = ""; |
|
|
|
String taskDefKey = ""; |
|
|
|
Map<String, Object> map = new HashMap<>(); |
|
|
|
map.put("businessSid", businessSid); |
|
|
|
if (flowTask != null) { |
|
|
|
ResultBean<List<LatestTaskVo>> listResultBean = flowTaskFeign.getLatestTasks(flowTask.getProcInsId()); |
|
|
|
if (listResultBean.getSuccess() && 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"; |
|
|
|
map.put("flowState", SysFormLinkFlowStateEnum.FINISH.getCode()); |
|
|
|
} |
|
|
|
} |
|
|
|
map.put("nodeState", nodeState); |
|
|
|
map.put("taskDefKey", taskDefKey); |
|
|
|
return map; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 批量更新车辆的结算状态为1预买断状态 |
|
|
|
* |
|
|
|
* @param businessSid 业务sid |
|
|
|
*/ |
|
|
|
public void updateByVinNo(String businessSid) { |
|
|
|
//更新车辆状态为采购退库中
|
|
|
|
ResultBean<List<String>> vinNoList = baseVehicleActualDetailsService.selectVinNoList(businessSid); |
|
|
|
if (vinNoList.getSuccess()) { |
|
|
|
if (vinNoList.getData().size() != 0) { |
|
|
@ -409,76 +223,181 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl |
|
|
|
return isTrue; |
|
|
|
} |
|
|
|
|
|
|
|
/* public ResultBean reject(BaseVehicleActualSalesFlowDto dto) { |
|
|
|
FlowTaskVo flowTaskVo = new FlowTaskVo(); |
|
|
|
BeanUtil.copyProperties(dto, flowTaskVo); |
|
|
|
ResultBean<List<LatestTaskVo>> resultBean = flowTaskFeign.taskReject(flowTaskVo); |
|
|
|
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> map = new HashMap<>(); |
|
|
|
map.put("businessSid", dto.getBusinessSid()); |
|
|
|
map.put("nodeState", nodeState); |
|
|
|
map.put("taskDefKey", taskDefKey); |
|
|
|
if (incomingSourceRef.contains("start")) { |
|
|
|
map.put("flowState", SysFormLinkFlowStateEnum.REJECT.getCode()); |
|
|
|
public ResultBean delete(String[] sidsList) { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
baseVehicleActualDetailsService.deleteByActualSid(sidsList); |
|
|
|
//查询该sid中是否有流程不是待提交的
|
|
|
|
int count = baseMapper.selectBySid(StringUtils.join(sidsList, ",")); |
|
|
|
if (count > 0) { |
|
|
|
return rb.setMsg("删除的数据中包含已经提交审批的数据,删除失败"); |
|
|
|
} |
|
|
|
sysFormLinkFeign.updateFiled(map); |
|
|
|
return new ResultBean().success(); |
|
|
|
delBySids(sidsList); |
|
|
|
return rb.success().setMsg("删除成功"); |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean breakProcess(BaseVehicleActualSalesFlowDto dto) { |
|
|
|
FlowTaskVo flowTaskVo = new FlowTaskVo(); |
|
|
|
BeanUtil.copyProperties(dto, flowTaskVo); |
|
|
|
ResultBean resultBean = flowTaskFeign.breakProcess(flowTaskVo); |
|
|
|
/** |
|
|
|
* 提交申请 |
|
|
|
*/ |
|
|
|
public ResultBean submitVehicleSales(SubmitActualSalesDto dto) { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
if (dto.getDetailsList().size() == 0) { |
|
|
|
return rb.setMsg("请选择未售买断的车辆"); |
|
|
|
} |
|
|
|
//保存或修改未售买断申请
|
|
|
|
ResultBean<String> resultBean = saveOrUpdateVehicleSales(dto); |
|
|
|
if (!resultBean.getSuccess()) { |
|
|
|
return resultBean; |
|
|
|
return rb.setMsg(resultBean.getMsg()); |
|
|
|
} |
|
|
|
//判断车辆的结算状态是否包含预买断的状态,如果是的话,返回提交失败
|
|
|
|
boolean isTrue = isTrue(resultBean.getData().toString()); |
|
|
|
if (isTrue) { |
|
|
|
return rb.setMsg("提交失败!该申请中包含结算状态已是预买断状态的车辆"); |
|
|
|
} |
|
|
|
String businessSid = resultBean.getData(); |
|
|
|
//根据用户sid获取staffSid
|
|
|
|
ResultBean<SysUserVo> userVoResultBean = sysUserFeign.fetchBySid(dto.getUserSid()); |
|
|
|
if (!userVoResultBean.getSuccess()) { |
|
|
|
return rb.setMsg(userVoResultBean.getMsg()); |
|
|
|
} |
|
|
|
//根据staffSid获取用户的组织全路径
|
|
|
|
ResultBean<SysStaffOrg> staffOrgResultBean = sysStaffOrgFeign.getOrgByStaffSid(userVoResultBean.getData().getStaffSid()); |
|
|
|
if (!staffOrgResultBean.getSuccess()) { |
|
|
|
return rb.setMsg(staffOrgResultBean.getMsg()); |
|
|
|
} |
|
|
|
//用户的组织全路径
|
|
|
|
String orgSidPath = staffOrgResultBean.getData().getOrgSidPath(); |
|
|
|
//创建BusinessVariables实体对象
|
|
|
|
BusinessVariables bv = new BusinessVariables(); |
|
|
|
Map<String, Object> variables = BeanUtil.beanToMap(dto); |
|
|
|
variables.put("businessSid", businessSid); |
|
|
|
bv.setOrgSidPath(orgSidPath); |
|
|
|
bv.setBusinessSid(businessSid); |
|
|
|
bv.setUserSid(dto.getUserSid()); |
|
|
|
bv.setFormVariables(variables); |
|
|
|
bv.setModelId(ProcDefEnum.BASEVEHICLEACTUALSALES.getProDefId()); |
|
|
|
BaseVehicleActualSales baseVehicleActualSales = fetchBySid(businessSid); |
|
|
|
if (baseVehicleActualSales != null) { |
|
|
|
if (StringUtils.isBlank(dto.getTaskId())) { |
|
|
|
// 新提交//启动流程
|
|
|
|
if (StringUtils.isBlank(baseVehicleActualSales.getTaskId())) { |
|
|
|
ResultBean<UpdateFlowFieldVo> voResultBean = flowableFeign.startProcess(bv); |
|
|
|
UpdateFlowFieldVo ufVo = voResultBean.getData(); |
|
|
|
updateFlowFiled(BeanUtil.beanToMap(ufVo)); |
|
|
|
return voResultBean; |
|
|
|
} else { |
|
|
|
return rb.setMsg("操作失败"); |
|
|
|
} |
|
|
|
} else if (dto.getTaskId().equals(baseVehicleActualSales.getTaskId())) { |
|
|
|
// ToDo:驳回到发起人后再次提交
|
|
|
|
bv.setComment(StringUtils.isNotBlank(dto.getComment()) ? dto.getComment() : "重新提交"); |
|
|
|
bv.setInstanceId(dto.getInstanceId()); |
|
|
|
return complete(bv); |
|
|
|
} else { |
|
|
|
return rb.setMsg("操作失败"); |
|
|
|
} |
|
|
|
} else { |
|
|
|
return rb.setMsg("该申请不存在"); |
|
|
|
} |
|
|
|
Map<String, Object> map = new HashMap<>(); |
|
|
|
map.put("businessSid", dto.getBusinessSid()); |
|
|
|
map.put("nodeState", String.valueOf(resultBean.getData())); |
|
|
|
map.put("taskDefKey", "Event_end"); |
|
|
|
map.put("flowState", SysFormLinkFlowStateEnum.BREAK.getCode()); |
|
|
|
sysFormLinkFeign.updateFiled(map); |
|
|
|
return resultBean.success(); |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean revokeProcess(BaseVehicleActualSalesFlowDto dto) { |
|
|
|
FlowTaskVo flowTaskVo = new FlowTaskVo(); |
|
|
|
BeanUtil.copyProperties(dto, flowTaskVo); |
|
|
|
ResultBean<List<LatestTaskVo>> resultBean = flowTaskFeign.revokeProcess(flowTaskVo); |
|
|
|
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> map = new HashMap<>(); |
|
|
|
map.put("businessSid", dto.getBusinessSid()); |
|
|
|
if (inComingSourceRef.contains("start")) { |
|
|
|
map.put("nodeState", SysFormLinkFlowStateEnum.UNCOMMITTED.getState()); |
|
|
|
map.put("taskDefKey", taskDefKey); |
|
|
|
map.put("flowState", SysFormLinkFlowStateEnum.UNCOMMITTED.getCode()); |
|
|
|
/** |
|
|
|
* 办理 |
|
|
|
*/ |
|
|
|
public ResultBean complete(BusinessVariables bv) { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
BaseVehicleActualSales baseVehicleActualSales = fetchBySid(bv.getBusinessSid()); |
|
|
|
if (bv.getTaskId().equals(baseVehicleActualSales.getTaskId())) { |
|
|
|
//判断车辆的结算状态是否包含预买断的状态,如果是的话,返回审核失败
|
|
|
|
boolean isTrue = isTrue(bv.getBusinessSid()); |
|
|
|
if (isTrue) { |
|
|
|
return rb.setMsg("审核失败!该申请中包含结算状态已是预买断状态的车辆"); |
|
|
|
} |
|
|
|
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.handleProsess(bv); |
|
|
|
if (!resultBean.getSuccess()) { |
|
|
|
return rb.setMsg(resultBean.getMsg()); |
|
|
|
} |
|
|
|
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); |
|
|
|
//ToDo:未售买断通过后的状态更新
|
|
|
|
//查询是否是最后一个环节,若是则更新未售买断的状态为通过。
|
|
|
|
if ("Event_end".equals(resultBean.getData().getTaskDefKey())) { |
|
|
|
//更新车辆的结算状态
|
|
|
|
updateByVinNo(bv.getBusinessSid()); |
|
|
|
} |
|
|
|
return rb.success().setData(resultBean.getData()); |
|
|
|
} else { |
|
|
|
map.put("nodeState", nodeState); |
|
|
|
map.put("taskDefKey", taskDefKey); |
|
|
|
return rb.setMsg("操作失败"); |
|
|
|
} |
|
|
|
sysFormLinkFeign.updateFiled(map); |
|
|
|
return new ResultBean().success(); |
|
|
|
}*/ |
|
|
|
|
|
|
|
public ResultBean delete(String[] sidsList) { |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 更新流程相关的状态 |
|
|
|
* |
|
|
|
* @param map |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
private int updateFlowFiled(Map<String, Object> map) { |
|
|
|
return baseMapper.updateFlowFiled(map); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* 获取上一环节 |
|
|
|
* |
|
|
|
* @param query |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
public ResultBean<List<GetNodeVo>> getPreviousNodesForReject(GetNodeQuery query) { |
|
|
|
ResultBean<List<GetNodeVo>> rb = ResultBean.fireFail(); |
|
|
|
BusinessVariables bv = new BusinessVariables(); |
|
|
|
BeanUtil.copyProperties(query, bv); |
|
|
|
bv.setModelId(ProcDefEnum.BASEVEHICLEACTUALSALES.getProDefId()); |
|
|
|
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv); |
|
|
|
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
|
|
|
|
List<GetNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), GetNodeVo.class)).collect(Collectors.toList()); |
|
|
|
return rb.success().setData(voList); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 获取下一环节 |
|
|
|
* |
|
|
|
* @param query |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
public ResultBean<List<GetNodeVo>> getNextNodesForSubmit(GetNodeQuery query) { |
|
|
|
ResultBean<List<GetNodeVo>> rb = ResultBean.fireFail(); |
|
|
|
BusinessVariables bv = new BusinessVariables(); |
|
|
|
BeanUtil.copyProperties(query, bv); |
|
|
|
bv.setModelId(ProcDefEnum.BASEVEHICLEACTUALSALES.getProDefId()); |
|
|
|
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv); |
|
|
|
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
|
|
|
|
List<GetNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), GetNodeVo.class)).collect(Collectors.toList()); |
|
|
|
return rb.success().setData(voList); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 驳回任务 |
|
|
|
* |
|
|
|
* @param query |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
public ResultBean taskReject(BaseActualSalesTaskQuery query) { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
baseVehicleActualDetailsService.deleteByActualSid(sidsList); |
|
|
|
//查询该sid中是否有流程不是待提交的
|
|
|
|
int count = baseMapper.selectBySid(StringUtils.join(sidsList, ",")); |
|
|
|
if (count > 0) { |
|
|
|
return rb.setMsg("删除的数据中包含已经提交审批的数据,删除失败"); |
|
|
|
FlowTaskVo flowTaskVo = new FlowTaskVo(); |
|
|
|
BeanUtil.copyProperties(query, flowTaskVo); |
|
|
|
BaseVehicleActualSales baseVehicleActualSales = fetchBySid(query.getBusinessSid()); |
|
|
|
if (baseVehicleActualSales == null) { |
|
|
|
return rb.setMsg("该申请不存在"); |
|
|
|
} |
|
|
|
delBySids(sidsList); |
|
|
|
return rb.success().setMsg("删除成功"); |
|
|
|
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.taskReject(flowTaskVo); |
|
|
|
if (!resultBean.getSuccess()) { |
|
|
|
return rb.setMsg(resultBean.getMsg()); |
|
|
|
} |
|
|
|
Map<String, Object> map = BeanUtil.beanToMap(resultBean.getData()); |
|
|
|
map.put("procInstSid", baseVehicleActualSales.getProcInstId()); |
|
|
|
map.put("procDefId", baseVehicleActualSales.getProcDefId()); |
|
|
|
//更新业务中的流程相关的参数
|
|
|
|
updateFlowFiled(map); |
|
|
|
return rb.success(); |
|
|
|
} |
|
|
|
} |
|
|
|