Browse Source

排产管理、未售买断

master
dimengzhe 3 years ago
parent
commit
94246dc27a
  1. 7
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/flow/SubmitActualSalesDto.java
  2. 95
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesService.java
  3. 2
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleapply/BusVehicleApplyService.java

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

@ -12,18 +12,17 @@ import lombok.Data;
@Data
public class SubmitActualSalesDto extends BaseVehicleActualSalesDto {
private static final long serialVersionUID = 3584091380240114011L;
@ApiModelProperty("业务sid")
private String businessSid;
@ApiModelProperty("意见")
private String comment;
@ApiModelProperty("流程实例id")
private String instanceId;
@ApiModelProperty("任务id")
private String taskId;
/* @ApiModelProperty("业务sid")
private String businessSid;
@ApiModelProperty("流程定义id")
private String modelId;
@ApiModelProperty("下一环节的代办人sid")
private String nextNodeUserSids;
private String nextNodeUserSids;*/
}

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

@ -8,9 +8,9 @@ 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.ActualGetNodeQuery;
import com.yxt.anrui.base.api.basevehicleactualsales.flow.ActualGetNodeVo;
import com.yxt.anrui.base.api.basevehicleactualsales.flow.BaseActualSalesTaskQuery;
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;
@ -243,17 +243,6 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl
if (dto.getDetailsList().size() == 0) {
return rb.setMsg("请选择未售买断的车辆");
}
//保存或修改未售买断申请
ResultBean<String> resultBean = saveOrUpdateVehicleSales(dto);
if (!resultBean.getSuccess()) {
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()) {
@ -266,6 +255,25 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl
}
//用户的组织全路径
String orgSidPath = staffOrgResultBean.getData().getOrgSidPath();
BaseVehicleActualSales baseVehicleActualSales = fetchBySid(dto.getSid());
int r = submitBusinessData(dto, baseVehicleActualSales);
if (r == 3) {
return rb.setMsg("该申请不存在");
}
if (r == 0) {
return rb.setMsg("操作失败!提交的数据不一致");
}
//保存或修改未售买断申请
ResultBean<String> resultBean = saveOrUpdateVehicleSales(dto);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
String businessSid = resultBean.getData();
//判断车辆的结算状态是否包含预买断的状态,如果是的话,返回提交失败
boolean isTrue = isTrue(businessSid);
if (isTrue) {
return rb.setMsg("提交失败!该申请中包含结算状态已是预买断状态的车辆");
}
//创建BusinessVariables实体对象
BusinessVariables bv = new BusinessVariables();
Map<String, Object> variables = BeanUtil.beanToMap(dto);
@ -275,29 +283,51 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl
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("操作失败");
baseVehicleActualSales = fetchBySid(dto.getSid());
if (r == 1) {
ResultBean<UpdateFlowFieldVo> voResultBean = flowableFeign.startProcess(bv);
UpdateFlowFieldVo ufVo = voResultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(ufVo));
return voResultBean;
}
if (r == 2) {
// ToDo:驳回到发起人后再次提交
bv.setTaskId(baseVehicleActualSales.getTaskId());
bv.setTaskDefKey(baseVehicleActualSales.getNodeId());
bv.setComment(StringUtils.isNotBlank(dto.getComment()) ? dto.getComment() : "重新提交");
bv.setInstanceId(dto.getInstanceId());
return complete(bv);
}
return rb;
}
/**
* 判断提交的流程是否被允许
*
* @param dto
* @return
*/
private synchronized int submitBusinessData(SubmitActualSalesDto dto, BaseVehicleActualSales baseVehicleActualSales) {
int r = 0;
if (StringUtils.isBlank(dto.getSid())) {
r = 1;
} else {
baseVehicleActualSales = fetchBySid(dto.getSid());
if (baseVehicleActualSales != null) {
String businessTaskId = baseVehicleActualSales.getTaskId();
if (StringUtils.isBlank(businessTaskId) && StringUtils.isBlank(dto.getTaskId())) {
//新提交
r = 1;
} else if (StringUtils.isNotBlank(businessTaskId) && businessTaskId.equals(dto.getTaskId())) {
//二次提交//只有数据一致的时候才能进行下一步
r = 2;
}
} 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("操作失败");
r = 3;
}
} else {
return rb.setMsg("该申请不存在");
}
return r;
}
/**
@ -318,14 +348,13 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl
}
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
//ToDo:未售买断通过后的状态更新
//查询是否是最后一个环节,若是则更新未售买断的状态为通过。
if ("Event_end".equals(resultBean.getData().getTaskDefKey())) {
//更新车辆的结算状态
updateByVinNo(bv.getBusinessSid());
}
return rb.success().setData(resultBean.getData());
} else {
return rb.setMsg("操作失败");
return rb.setMsg("操作失败!提交的数据不一致");
}
}

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

@ -207,6 +207,7 @@ public class BusVehicleApplyService extends MybatisBaseService<BusVehicleApplyMa
bv.setUserSid(dto.getCreateBySid());
bv.setFormVariables(variables);
bv.setModelId(ProcDefEnum.VEHICLEAPPLY.getProDefId());
busVehicleApply = fetchBySid(dto.getSid());
if (r == 1) {
ResultBean<UpdateFlowFieldVo> voResultBean = flowableFeign.startProcess(bv);
UpdateFlowFieldVo ufVo = voResultBean.getData();
@ -235,6 +236,7 @@ public class BusVehicleApplyService extends MybatisBaseService<BusVehicleApplyMa
if (StringUtils.isBlank(dto.getSid())) {
r = 1;
} else {
busVehicleApply = fetchBySid(dto.getSid());
if (busVehicleApply != null) {
String businessTaskId = busVehicleApply.getTaskId();
if (StringUtils.isBlank(businessTaskId) && StringUtils.isBlank(dto.getTaskId())) {

Loading…
Cancel
Save