Browse Source

车辆未售买断申请审批同意、驳回、终止、撤回、优化未售买断申请的提交及审批通过后更新车辆的结算状态、提交和审批通过时对车辆是否已预买断作限制

master
dimengzhe 3 years ago
parent
commit
8bae4fb391
  1. 1
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleUpdateQuery.java
  2. 18
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesFeign.java
  3. 52
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesFlowDto.java
  4. 26
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesFlowQuery.java
  5. 16
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleMapper.java
  6. 19
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleMapper.xml
  7. 29
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleService.java
  8. 8
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualdetails/BaseVehicleActualDetailsMapper.java
  9. 6
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualdetails/BaseVehicleActualDetailsMapper.xml
  10. 7
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualdetails/BaseVehicleActualDetailsService.java
  11. 12
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesMapper.java
  12. 9
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesMapper.xml
  13. 20
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesRest.java
  14. 281
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesService.java
  15. 13
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java
  16. 4
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/listener/ManagerTaskListener.java

1
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleUpdateQuery.java

@ -18,4 +18,5 @@ public class BaseVehicleUpdateQuery implements Query {
private List<String> vinNoLis;
private String vehicleState;
private String vihicleStateValue;
private String settlementStatus;
}

18
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesFeign.java

@ -39,5 +39,23 @@ public interface BaseVehicleActualSalesFeign {
@ResponseBody
ResultBean<BaseVehicleActualSalesDetailsVo> details(@RequestParam(value = "sid", required = false) String sid);
@ApiOperation(value = "办理(同意)")
@PostMapping("/complete")
@ResponseBody
public ResultBean complete(@RequestBody BaseVehicleActualSalesFlowQuery baseVehicleActualSalesFlowQuery);
@ApiOperation(value = "驳回任务")
@PostMapping("/reject")
@ResponseBody
ResultBean reject(@RequestBody BaseVehicleActualSalesFlowDto dto);
@ApiOperation(value = "终止任务")
@PostMapping("/breakProcess")
@ResponseBody
ResultBean breakProcess(@RequestBody BaseVehicleActualSalesFlowDto dto);
@ApiOperation(value = "撤回任务")
@PostMapping("/revokeProcess")
@ResponseBody
ResultBean revokeProcess(@RequestBody BaseVehicleActualSalesFlowDto dto);
}

52
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesFlowDto.java

@ -0,0 +1,52 @@
package com.yxt.anrui.base.api.basevehicleactualsales;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @Author dimengzhe
* @Date 2022/4/21 11:35
* @Description
*/
@Data
public class BaseVehicleActualSalesFlowDto implements Dto {
private static final long serialVersionUID = 3748090563013456721L;
@ApiModelProperty(value = "业务sid")
private String businessSid;
@ApiModelProperty("任务Id")
private String taskId;
@ApiModelProperty("用户Id")
private String userId;
@ApiModelProperty("用户Sid")
private String userSid;
@ApiModelProperty("任务意见")
private String comment;
@ApiModelProperty("流程实例Id")
private String instanceId;
@ApiModelProperty("节点")
private String targetKey;
@ApiModelProperty("流程变量信息")
private Map<String, Object> values = new HashMap<>();
@ApiModelProperty("审批人")
private String assignee;
@ApiModelProperty("候选人")
private List<String> candidateUsers = new ArrayList<>();
@ApiModelProperty("审批组")
private List<String> candidateGroups = new ArrayList<>();
}

26
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesFlowQuery.java

@ -0,0 +1,26 @@
package com.yxt.anrui.base.api.basevehicleactualsales;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author dimengzhe
* @Date 2022/4/21 11:32
* @Description 审核相关参数
*/
@Data
public class BaseVehicleActualSalesFlowQuery implements Query {
private static final long serialVersionUID = -3729579148766080074L;
@ApiModelProperty(value = "处理意见")
private String comment;
@ApiModelProperty(value = "流程id")
private String instanceId;
@ApiModelProperty(value = "环节id")
private String taskId;
@ApiModelProperty(value = "用户sid")
private String userSid;
@ApiModelProperty(value = "业务sid")
private String businessSid;
}

16
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleMapper.java

@ -262,5 +262,21 @@ public interface BaseVehicleMapper extends BaseMapper<BaseVehicle> {
ResultBean updateByVinNo(@Param("vinNoList") List<String> stringList, @Param("vehicleState") String vehicleState, @Param("vehicleStateValue") String vehicleStateValue);
/**
* 询该车辆数组中是否包含车辆状态为采购退库状态的车辆若有返回true没有则返回false
*
* @param vinNoList 车架号数组
* @return
*/
List<Boolean> selectStateByVinNo(@Param("vinNoList") List<String> vinNoList);
/**
* 查询该车辆数组中是否包含车辆结算状态为预买断的状态
*
* @param vinNoList 车架号数组
* @return
*/
List<Boolean> selectStatusByVinNo(@Param("vinNoList") List<String> vinNoList);
int updateStatusByVinNo(@Param("vinNoList") List<String> stringList, @Param("settlementStatus") String settlementStatus);
}

19
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleMapper.xml

@ -590,10 +590,27 @@
</update>
<select id="selectStateByVinNo" resultType="java.lang.Boolean">
select if(vehicleState = '0006','true','false')
select if(vehicleState = '0006', 'true', 'false')
from base_vehicle where vinNo in
<foreach item="vinNo" collection="vinNoList" open="(" separator="," close=")">
#{vinNo}
</foreach>
</select>
<select id="selectStatusByVinNo" resultType="java.lang.Boolean">
select if(settlementStatus = '0', 'true', 'false')
from base_vehicle where vinNo in
<foreach item="vinNo" collection="vinNoList" open="(" separator="," close=")">
#{vinNo}
</foreach>
</select>
<update id="updateStatusByVinNo">
update base_vehicle
set settlementStatus = #{settlementStatus}
where vinNo in
<foreach item="vinNo" collection="vinNoList" open="(" separator="," close=")">
#{vinNo}
</foreach>
</update>
</mapper>

29
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleService.java

@ -976,6 +976,12 @@ public class BaseVehicleService extends MybatisBaseService<BaseVehicleMapper, Ba
return baseMapper.updateByVinNo(stringList, vehicleState, vehicleStateValue);
}
/**
* 查询该车辆数组中是否包含车辆状态为采购退库状态的车辆若有返回true没有则返回false
*
* @param vinNoList 车辆的车架号数组
* @return
*/
public ResultBean<Boolean> selectStateByVinNo(List<String> vinNoList) {
ResultBean<Boolean> resultBean = ResultBean.fireFail();
boolean isTrue = false;
@ -986,4 +992,27 @@ public class BaseVehicleService extends MybatisBaseService<BaseVehicleMapper, Ba
}
return resultBean.success().setData(isTrue);
}
/**
* 查询该车辆数组中是否包含车辆结算状态为预买断的状态
*
* @param vinNoList
* @return
*/
public ResultBean<Boolean> selectStatusByVinNo(List<String> vinNoList) {
ResultBean<Boolean> resultBean = ResultBean.fireFail();
boolean isTrue = false;
//查询车架号数组中是否有采购退库状态的车辆,若有则返回true,没有返回false
List<Boolean> booleanList = baseMapper.selectStatusByVinNo(vinNoList);
if (booleanList.contains(true)) {
isTrue = true;
}
return resultBean.success().setData(isTrue);
}
public int updateStatusByVinNo(BaseVehicleUpdateQuery baseVehicleUpdateQuery) {
List<String> stringList = baseVehicleUpdateQuery.getVinNoLis();
String settlementStatus = baseVehicleUpdateQuery.getSettlementStatus();
return baseMapper.updateStatusByVinNo(stringList, settlementStatus);
}
}

8
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualdetails/BaseVehicleActualDetailsMapper.java

@ -26,4 +26,12 @@ public interface BaseVehicleActualDetailsMapper extends BaseMapper<BaseVehicleAc
* @return
*/
List<BaseVehicleActualDetailsVo> detailsList(String sid);
/**
* 根据业务sid查询车辆vinNo的集合
*
* @param sid 未售买断申请sid
* @return
*/
List<String> selectVinNoList(String sid);
}

6
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualdetails/BaseVehicleActualDetailsMapper.xml

@ -18,4 +18,10 @@
from base_vehicle_actual_details
where vehicleActualSid = #{sid}
</select>
<select id="selectVinNoList" resultType="java.lang.String">
select vinNo
from base_vehicle_actual_details
where vehicleActualSid = #{sid}
</select>
</mapper>

7
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualdetails/BaseVehicleActualDetailsService.java

@ -4,6 +4,7 @@ import com.yxt.anrui.base.api.basevehicleactualdetails.BaseVehicleActualDetails;
import com.yxt.anrui.base.api.basevehicleactualdetails.BaseVehicleActualDetailsDto;
import com.yxt.anrui.base.api.basevehicleactualdetails.BaseVehicleActualDetailsVo;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.core.result.ResultBean;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -66,4 +67,10 @@ public class BaseVehicleActualDetailsService extends MybatisBaseService<BaseVehi
public List<BaseVehicleActualDetailsVo> detailsList(String sid) {
return baseMapper.detailsList(sid);
}
public ResultBean<List<String>> selectVinNoList(String sid) {
ResultBean<List<String>> rb = ResultBean.fireFail();
List<String> vinNoList = baseMapper.selectVinNoList(sid);
return rb.success().setData(vinNoList);
}
}

12
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesMapper.java

@ -33,4 +33,16 @@ public interface BaseVehicleActualSalesMapper extends BaseMapper<BaseVehicleActu
* @return
*/
BaseVehicleActualSalesDetailsVo details(String sid);
/**
* 更新未售买断业务表中的流程状态
*
* @param businessSid 业务sid
* @param proDefId 流程定义ID
* @param nodeState 节点状态
* @param procInsId 流程实例ID
* @param taskDefKey 任务定义的ID值
*/
void modifyFlowState(@Param("businessSid") String businessSid, @Param("procDefId") String proDefId, @Param("nodeState") String nodeState,
@Param("procInstSid") String procInsId, @Param("nodeSid") String taskDefKey);
}

9
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesMapper.xml

@ -16,4 +16,13 @@
from base_vehicle_actual_sales
where sid = #{sid}
</select>
<update id="modifyFlowState">
update base_vehicle_actual_sales
set procDefId=#{procDefId},
nodeState=#{nodeState},
procInstSid=#{procInstSid},
nodeSid=#{nodeSid}
where sid = #{businessSid}
</update>
</mapper>

20
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesRest.java

@ -43,4 +43,24 @@ public class BaseVehicleActualSalesRest implements BaseVehicleActualSalesFeign {
public ResultBean<BaseVehicleActualSalesDetailsVo> details(String sid) {
return baseVehicleActualSalesService.details(sid);
}
@Override
public ResultBean complete(BaseVehicleActualSalesFlowQuery baseVehicleActualSalesFlowQuery) {
return baseVehicleActualSalesService.complete(baseVehicleActualSalesFlowQuery);
}
@Override
public ResultBean reject(BaseVehicleActualSalesFlowDto dto) {
return baseVehicleActualSalesService.reject(dto);
}
@Override
public ResultBean breakProcess(BaseVehicleActualSalesFlowDto dto) {
return baseVehicleActualSalesService.breakProcess(dto);
}
@Override
public ResultBean revokeProcess(BaseVehicleActualSalesFlowDto dto) {
return baseVehicleActualSalesService.revokeProcess(dto);
}
}

281
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesService.java

@ -1,14 +1,27 @@
package com.yxt.anrui.base.biz.basevehicleactualsales;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateUtil;
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.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.flowtask.FlowTaskFeign;
import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo;
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.sysformlink.SysFormStateVo;
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.SysStaffOrgFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.common.base.service.MybatisBaseService;
@ -22,7 +35,9 @@ 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.List;
import java.util.Map;
/**
* @Author dimengzhe
@ -41,6 +56,12 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl
private SysUserFeign sysUserFeign;
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
@Autowired
private FlowTaskFeign flowTaskFeign;
@Autowired
private BaseVehicleService baseVehicleService;
@Autowired
private FlowableFeign flowableFeign;
/**
* 分页列表
@ -68,12 +89,24 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl
return pv1;
}
/**
* 查询分页列表的数据
*
* @param pagerQuery 查询条件
* @return
*/
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<>();
if (params != null) {
@ -84,6 +117,12 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl
return qw;
}
/**
* 新增或修改未售买断申请
*
* @param scmVehicleActualSalesDto 未售买断申请新增或修改数据传输对象
* @return 未售买断申请的sid
*/
@Transactional(rollbackFor = Exception.class)
public ResultBean saveOrUpdateVehicleSales(BaseVehicleActualSalesDto scmVehicleActualSalesDto) {
ResultBean rb = ResultBean.fireFail();
@ -121,7 +160,7 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl
* 判断是否可删除
*
* @param sid sid
* @return
* @return 是否可以删除true或false
*/
private boolean checkCouldChange(String sid) {
BaseVehicleActualSales baseVehicleActualSales = fetchBySid(sid);
@ -136,7 +175,7 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl
* 查询用户是否设置了部门
*
* @param userSid 用户sid
* @return
* @return 单位sid
*/
private String checkUserOrg(String userSid) {
String orgSid = "";
@ -148,8 +187,83 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl
return orgSid;
}
/**
* 提交申请
*
* @param baseVehicleActualSalesDto 未售买断新增修改数据传输对象
* @return 未售买断申请的sid
*/
public ResultBean submitVehicleSales(BaseVehicleActualSalesDto baseVehicleActualSalesDto) {
return null;
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 = 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")
);
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);
}
/**
@ -174,4 +288,165 @@ 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) {
//结算状态设置为预买断
String settlementStatus = "1";
BaseVehicleUpdateQuery baseVehicleUpdateQuery = new BaseVehicleUpdateQuery();
baseVehicleUpdateQuery.setSettlementStatus(settlementStatus);
baseVehicleUpdateQuery.setVinNoLis(vinNoList.getData());
baseVehicleService.updateStatusByVinNo(baseVehicleUpdateQuery);
}
}
}
/**
* 查询车架号数组中是否有结算状态为预买断的车辆若有则返回true没有返回false
*
* @param businessSid 业务sid
* @return
*/
public Boolean isTrue(String businessSid) {
boolean isTrue = false;
ResultBean<List<String>> vinNoList1 = baseVehicleActualDetailsService.selectVinNoList(businessSid);
if (vinNoList1.getSuccess() && vinNoList1.getData().size() != 0) {
ResultBean<Boolean> stringResultBean = baseVehicleService.selectStatusByVinNo(vinNoList1.getData());
if (stringResultBean.getSuccess()) {
if (stringResultBean.getData()) {
isTrue = true;
}
}
}
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());
}
sysFormLinkFeign.updateFiled(map);
return new ResultBean().success();
}
public ResultBean breakProcess(BaseVehicleActualSalesFlowDto dto) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(dto, flowTaskVo);
ResultBean resultBean = flowTaskFeign.breakProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return resultBean;
}
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());
} else {
map.put("nodeState", nodeState);
map.put("taskDefKey", taskDefKey);
}
sysFormLinkFeign.updateFiled(map);
return new ResultBean().success();
}
}

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

@ -9,13 +9,14 @@ public enum ProcDefEnum {
ORDERDEPOSITVEHICLEAPPROVE("虚拟订单(预订车辆)审批", "order_deposit_vehicle_approve_bsf3sgwd:1:230016"),
ORDERAPPROVE("订单审批", "order_approve_96asleqi:1:227504"),
CARSALECONTRACTAPPROVE("新车买卖合同审批", "car_sale_contract_asbspcvd:1:230020"),
SALESPOLICY("销售政策审批流程","sales_policy_oxeeyzhr:1:247508"),
INVOICEAPPLY("开票申请流程","invoice_apply_ul4vx0oi:1:247512"),
ADVANCEGINVOICEAPPLY("提前开票申请流程","advance_ginvoiceapply:1:242664"),
ARREARSCARRYVEHICLE("欠款提车审批流程","arrears_carryvehicle:1:232589"),
VEHICLEAPPLY("排产申请流程","process_9egcg169:1:242660"),
RECORDAPPLICATION("入账申请","record_application_7y80d4r8:1:265008"),
SALESPOLICY("销售政策审批流程", "sales_policy_oxeeyzhr:1:247508"),
INVOICEAPPLY("开票申请流程", "invoice_apply_ul4vx0oi:1:247512"),
ADVANCEGINVOICEAPPLY("提前开票申请流程", "advance_ginvoiceapply:1:242664"),
ARREARSCARRYVEHICLE("欠款提车审批流程", "arrears_carryvehicle:1:232589"),
VEHICLEAPPLY("排产申请流程", "process_9egcg169:1:242660"),
RECORDAPPLICATION("入账申请", "record_application_7y80d4r8:1:265008"),
SCMVEHICLERETURN("采购退库", "process_md8aeoap:4:245028"),
BASEVEHICLEACTUALSALES("未售买断", ""),//ToDo
;
ProcDefEnum(String proDefName, String proDefId) {

4
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/listener/ManagerTaskListener.java

@ -85,7 +85,7 @@ public class ManagerTaskListener implements TaskListener {
// String obj2String = JSONObject.toJSONString(obj);
log.info("准备发送消息为:{}", obj2String);
//发送消息
ListenableFuture<SendResult<String, Object>> future = kafkaTemplate.send("aaa", obj2String);
/* ListenableFuture<SendResult<String, Object>> future = kafkaTemplate.send("aaa", obj2String);
future.addCallback(new ListenableFutureCallback<SendResult<String, Object>>() {
@Override
public void onFailure(Throwable throwable) {
@ -98,7 +98,7 @@ public class ManagerTaskListener implements TaskListener {
//成功的处理
log.info("aaa" + " - 生产者 发送消息成功:" + stringObjectSendResult.toString());
}
});
});*/
}

Loading…
Cancel
Save