Browse Source

未售买断撤回、终止

master
dimengzhe 3 years ago
parent
commit
1009cefbe2
  1. 2
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesDto.java
  2. 20
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesFeign.java
  3. 10
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesFeignFallback.java
  4. 10
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/flow/BaseActualSalesCompleteDto.java
  5. 7
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/flow/BaseActualSalesTaskQuery.java
  6. 6
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/flow/SubmitActualSalesDto.java
  7. 4
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleapply/BusVehicleApplyDto.java
  8. 2
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleapply/flow/BusVehicleApplyCompleteDto.java
  9. 11
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualdetails/BaseVehicleActualDetailsService.java
  10. 10
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesRest.java
  11. 92
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesService.java
  12. 2
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleapply/BusVehicleApplyMapper.java
  13. 19
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleapply/BusVehicleApplyMapper.xml
  14. 4
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleapply/BusVehicleApplyRest.java
  15. 46
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleapply/BusVehicleApplyService.java
  16. 11
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleapplydetail/BusVehicleApplyDetailService.java

2
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesDto.java

@ -6,6 +6,7 @@ import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.util.Date;
import java.util.List;
@ -21,6 +22,7 @@ public class BaseVehicleActualSalesDto implements Dto {
@ApiModelProperty(value = "sid")
private String sid;
@ApiModelProperty(value = "申请人sid")
@NotBlank(message = "参数错误:userSid")
private String userSid;
@ApiModelProperty(value = "申请人")
private String applicationName;

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

@ -1,15 +1,16 @@
package com.yxt.anrui.base.api.basevehicleactualsales;
import com.yxt.anrui.base.api.basevehicleactualsales.flow.*;
import com.yxt.anrui.base.api.busvehicleapply.flow.BusVehicleApplyTaskQuery;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
/**
@ -48,23 +49,30 @@ public interface BaseVehicleActualSalesFeign {
@ApiOperation("提交")
@PostMapping("/submitVehicleSales")
@ResponseBody
ResultBean submitVehicleSales(@RequestBody SubmitActualSalesDto dto);
ResultBean submitVehicleSales(@Valid @RequestBody SubmitActualSalesDto dto);
@ApiOperation(value = "办理(同意)")
@PostMapping("/complete")
@ResponseBody
public ResultBean complete(@RequestBody BaseActualSalesCompleteDto dto);
public ResultBean complete(@Valid @RequestBody BaseActualSalesCompleteDto dto);
@ApiOperation(value = "获取上一个环节")
@GetMapping(value = "/getPreviousNodesForReject")
ResultBean<List<ActualGetNodeVo>> getPreviousNodesForReject(@SpringQueryMap ActualGetNodeQuery query);
ResultBean<List<ActualGetNodeVo>> getPreviousNodesForReject(@Valid @SpringQueryMap ActualGetNodeQuery query);
@ApiOperation(value = "获取下一个环节")
@GetMapping(value = "/getNextNodesForSubmit")
ResultBean<List<ActualGetNodeVo>> getNextNodesForSubmit(@SpringQueryMap ActualGetNodeQuery query);
ResultBean<List<ActualGetNodeVo>> getNextNodesForSubmit(@Valid @SpringQueryMap ActualGetNodeQuery query);
@ApiOperation(value = "驳回任务")
@PostMapping(value = "/reject")
public ResultBean taskReject(@ApiParam(value = "工作流任务相关--请求参数") @RequestBody BaseActualSalesTaskQuery query);
public ResultBean taskReject(@Valid @RequestBody BaseActualSalesTaskQuery query);
@ApiOperation(value = "撤回流程")
@PostMapping(value = "/revokeProcess")
public ResultBean revokeProcess(@Valid @RequestBody BaseActualSalesTaskQuery query);
@ApiOperation(value = "终止任务")
@PostMapping(value = "/breakProcess")
public ResultBean breakProcess(@Valid @RequestBody BaseActualSalesTaskQuery query);
}

10
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesFeignFallback.java

@ -59,4 +59,14 @@ public class BaseVehicleActualSalesFeignFallback implements BaseVehicleActualSal
public ResultBean taskReject(BaseActualSalesTaskQuery query) {
return null;
}
@Override
public ResultBean revokeProcess(BaseActualSalesTaskQuery query) {
return null;
}
@Override
public ResultBean breakProcess(BaseActualSalesTaskQuery query) {
return null;
}
}

10
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/flow/BaseActualSalesCompleteDto.java

@ -4,6 +4,7 @@ import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.util.Map;
/**
@ -16,19 +17,26 @@ public class BaseActualSalesCompleteDto implements Dto {
private static final long serialVersionUID = 9219201125285862470L;
@ApiModelProperty(value = "用户sid")
@NotBlank(message = "参数错误:userSid")
private String userSid;
@ApiModelProperty(value = "用户全路径sid")
@NotBlank(message = "参数错误:orgSidPath")
private String orgSidPath;
@ApiModelProperty(value = "节点id")
@NotBlank(message = "参数错误:taskDefKey")
private String taskDefKey;
@ApiModelProperty(value = "任务id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
@ApiModelProperty(value = "流程id")
@NotBlank(message = "参数错误:instanceId")
private String instanceId;
@ApiModelProperty(value = "意见")
@NotBlank(message = "参数错误:comment")
private String comment;
@ApiModelProperty(value = "业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
@ApiModelProperty(value = "暂不确定是不是后端需要的:有分支的时候传")
@ApiModelProperty(value = "暂不确定是不是需要前端传的:还是有分支的时候传????")
private Map<String, Object> formVariables;
}

7
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/flow/BaseActualSalesTaskQuery.java

@ -16,10 +16,15 @@ public class BaseActualSalesTaskQuery implements Query {
private static final long serialVersionUID = 7371888548849601582L;
@ApiModelProperty("任务Id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
@ApiModelProperty("业务sid")
@NotBlank(message = "参数错误:业务sid是必传项")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
@ApiModelProperty("任务意见")
private String comment;
@ApiModelProperty("用户Sid")
private String userSid;
@ApiModelProperty("流程实例Id")
private String instanceId;
}

6
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/flow/SubmitActualSalesDto.java

@ -18,11 +18,5 @@ public class SubmitActualSalesDto extends BaseVehicleActualSalesDto {
private String instanceId;
@ApiModelProperty("任务id")
private String taskId;
/* @ApiModelProperty("业务sid")
private String businessSid;
@ApiModelProperty("流程定义id")
private String modelId;
@ApiModelProperty("下一环节的代办人sid")
private String nextNodeUserSids;*/
}

4
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleapply/BusVehicleApplyDto.java

@ -50,9 +50,5 @@ public class BusVehicleApplyDto implements Dto {
@ApiModelProperty("销售订单sid 可为空,只有客户订单时才有")
private String salesSid;
/* @ApiModelProperty("创建组织sid")
private String createByDeptSid;*/
// @ApiModelProperty("申请编号")
// private String applicationCode;
}

2
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleapply/flow/BusVehicleApplyCompleteDto.java

@ -36,6 +36,6 @@ public class BusVehicleApplyCompleteDto implements Dto {
@ApiModelProperty(value = "业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
@ApiModelProperty(value = "暂不确定是不是前端需要传的:还是有分支的时候传??")
@ApiModelProperty(value = "暂不确定是不是需要前端传的:还是有分支的时候传??")
private Map<String, Object> formVariables;
}

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

@ -69,12 +69,23 @@ public class BaseVehicleActualDetailsService extends MybatisBaseService<BaseVehi
return baseMapper.detailsList(sid);
}
/**
* 根据业务sid查询车辆vinNo的集合
*
* @param sid 未售买断申请sid
* @return
*/
public ResultBean<List<String>> selectVinNoList(String sid) {
ResultBean<List<String>> rb = ResultBean.fireFail();
List<String> vinNoList = baseMapper.selectVinNoList(sid);
return rb.success().setData(vinNoList);
}
/**
* 根据未售买断申请sid删除未售买断车辆
*
* @param sidsList 未售买断申请sid集合
*/
public void deleteByActualSid(String[] sidsList) {
List<String> stringList = Arrays.asList(sidsList);
for (int i = 0; i < stringList.size(); i++) {

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

@ -77,4 +77,14 @@ public class BaseVehicleActualSalesRest implements BaseVehicleActualSalesFeign {
public ResultBean taskReject(BaseActualSalesTaskQuery query) {
return baseVehicleActualSalesService.taskReject(query);
}
@Override
public ResultBean revokeProcess(BaseActualSalesTaskQuery query) {
return baseVehicleActualSalesService.revokeProcess(query);
}
@Override
public ResultBean breakProcess(BaseActualSalesTaskQuery query) {
return baseVehicleActualSalesService.breakProcess(query);
}
}

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

@ -223,6 +223,7 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl
return isTrue;
}
@Transactional(rollbackFor = Exception.class)
public ResultBean delete(String[] sidsList) {
ResultBean rb = ResultBean.fireFail();
baseVehicleActualDetailsService.deleteByActualSid(sidsList);
@ -291,6 +292,9 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl
}
if (r == 2) {
// ToDo:驳回到发起人后再次提交
if (StringUtils.isBlank(dto.getInstanceId())) {
return rb.setMsg("参数错误:instanceId");
}
bv.setTaskId(baseVehicleActualSales.getTaskId());
bv.setTaskDefKey(baseVehicleActualSales.getNodeId());
bv.setComment(StringUtils.isNotBlank(dto.getComment()) ? dto.getComment() : "重新提交");
@ -410,21 +414,87 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl
*/
public ResultBean taskReject(BaseActualSalesTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
BaseVehicleActualSales baseVehicleActualSales = fetchBySid(query.getBusinessSid());
if (baseVehicleActualSales == null) {
return rb.setMsg("该申请不存在");
}
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.taskReject(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
String businessTaskId = baseVehicleActualSales.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (businessTaskId.equals(query.getTaskId())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.taskReject(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
Map<String, Object> map = BeanUtil.beanToMap(resultBean.getData());
//更新业务中的流程相关的参数
updateFlowFiled(map);
return rb.success();
}
}
return rb.setMsg("操作失败!提交的数据不一致!");
}
/**
* 撤回
*
* @param query
* @return
*/
public ResultBean revokeProcess(BaseActualSalesTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
if (StringUtils.isBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
//根据业务sid查询未售买断
BaseVehicleActualSales baseVehicleActualSales = fetchBySid(query.getBusinessSid());
String businessTaskId = baseVehicleActualSales.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (businessTaskId.equals(query.getTaskId())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.revokeProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
return rb.success().setData(resultBean.getData());
}
}
return rb.setMsg("操作失败,提交的数据不一致!");
}
/**
* 终止流程
*
* @param query
* @return
*/
public ResultBean breakProcess(BaseActualSalesTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
if (StringUtils.isBlank(query.getInstanceId())) {
return rb.setMsg("参数错误:instanceId");
}
if (StringUtils.isBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
//根据业务sid查询未售买断
BaseVehicleActualSales baseVehicleActualSales = fetchBySid(query.getBusinessSid());
String businessTaskId = baseVehicleActualSales.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (businessTaskId.equals(query.getTaskId())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.breakProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
return rb.success().setData(resultBean.getData());
}
}
Map<String, Object> map = BeanUtil.beanToMap(resultBean.getData());
map.put("procInstSid", baseVehicleActualSales.getProcInstId());
map.put("procDefId", baseVehicleActualSales.getProcDefId());
//更新业务中的流程相关的参数
updateFlowFiled(map);
return rb.success();
return rb.setMsg("操作失败!提交的数据不一致!");
}
}

2
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleapply/BusVehicleApplyMapper.java

@ -30,4 +30,6 @@ public interface BusVehicleApplyMapper extends BaseMapper<BusVehicleApply> {
IPage<BusVehicleApplyVo> selectPageVo(IPage<BusVehicleApply> page, @Param(Constants.WRAPPER) Wrapper<BusVehicleApply> qw);
int updateFlowFiled(Map<String, Object> map);
int selectBySid(String list);
}

19
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleapply/BusVehicleApplyMapper.xml

@ -5,12 +5,12 @@
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.anrui.base.api.busvehicleapply.BusVehicleApplyVo">
SELECT distinct bva.sid,
bva.schedulingType,
bva.applicationCode,
bva.applicationDate,
bva.createByName,
bva.remarks,
if(length(nodeState) > 0, nodeState, '待提交') as nodeState
bva.schedulingType,
bva.applicationCode,
bva.applicationDate,
bva.createByName,
bva.remarks,
if(length(nodeState) > 0, nodeState, '待提交') as nodeState
FROM bus_vehicle_apply bva
LEFT JOIN bus_vehicle_apply_detail bvad
ON bva.sid = bvad.`applySid`
@ -34,4 +34,11 @@
</if>
WHERE sid = #{sid}
</update>
<select id="selectBySid" resultType="int">
select count(*)
from bus_vehicle_apply
where length(nodeState) > 0
and find_in_set(sid, #{list})
</select>
</mapper>

4
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleapply/BusVehicleApplyRest.java

@ -51,9 +51,7 @@ public class BusVehicleApplyRest implements BusVehicleApplyFeign {
@Override
public ResultBean delBySids(@RequestBody String[] sids) {
ResultBean rb = ResultBean.fireFail();
busVehicleApplyService.delAllBySids(sids);
return rb.success();
return busVehicleApplyService.delAllBySids(sids);
}
@Override

46
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleapply/BusVehicleApplyService.java

@ -99,11 +99,16 @@ public class BusVehicleApplyService extends MybatisBaseService<BusVehicleApplyMa
* @param sids 排产申请sid数组
*/
@Transactional(rollbackFor = Exception.class)
public void delAllBySids(String[] sids) {
this.delBySids(sids);
for (String sid : sids) {
busVehicleApplyDetailService.delByApplySid(sid);
public ResultBean delAllBySids(String[] sids) {
ResultBean rb = ResultBean.fireFail();
busVehicleApplyDetailService.deleteByApplySid(sids);
//查询该sid中是否有流程不是待提交的
int count = baseMapper.selectBySid(StringUtils.join(sids, ","));
if (count > 0) {
return rb.setMsg("删除的数据中包含已经提交审批的数据,删除失败");
}
delBySids(sids);
return rb.success().setMsg("删除失败");
}
/**
@ -335,24 +340,35 @@ public class BusVehicleApplyService extends MybatisBaseService<BusVehicleApplyMa
*/
public ResultBean taskReject(BusVehicleApplyTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
BusVehicleApply busVehicleApply = fetchBySid(query.getBusinessSid());
if (busVehicleApply == null) {
return rb.setMsg("该申请不存在");
}
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.taskReject(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
String businessTaskId = busVehicleApply.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (businessTaskId.equals(query.getTaskId())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.taskReject(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
Map<String, Object> map = BeanUtil.beanToMap(resultBean.getData());
//更新业务中的流程相关的参数
updateFlowFiled(map);
return rb.success();
}
}
Map<String, Object> map = BeanUtil.beanToMap(resultBean.getData());
map.put("procInstSid", busVehicleApply.getProcInstId());
map.put("procDefId", busVehicleApply.getProcDefId());
//更新业务中的流程相关的参数
updateFlowFiled(map);
return rb.success();
return rb.setMsg("操作失败!提交的数据不一致!");
}
/**
* 撤回
*
* @param query
* @return
*/
public ResultBean revokeProcess(BusVehicleApplyTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
if (StringUtils.isBlank(query.getUserSid())) {

11
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleapplydetail/BusVehicleApplyDetailService.java

@ -16,6 +16,7 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
@ -210,9 +211,17 @@ public class BusVehicleApplyDetailService extends MybatisBaseService<BusVehicleA
public ResultBean<List<AppBusVehicleApplyListVo>> getAppApplyList(String modelSid, String configSid) {
ResultBean<List<AppBusVehicleApplyListVo>> rb = ResultBean.fireFail();
List<AppBusVehicleApplyListVo> voList = baseMapper.getAppApplyList(modelSid, configSid);
if(voList.isEmpty()){
if (voList.isEmpty()) {
return rb.setData(new ArrayList<>());
}
return rb.success().setData(voList);
}
public void deleteByApplySid(String[] sids) {
List<String> stringList = Arrays.asList(sids);
for (int i = 0; i < stringList.size(); i++) {
baseMapper.delByApplySid(stringList.get(i));
}
}
}
Loading…
Cancel
Save