Browse Source

车辆持久状态修改及销售订单提交时保存订单备案的状态码

master
dimengzhe 2 years ago
parent
commit
2171d68561
  1. 5
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclestate/BaseVehicleStateDto.java
  2. 10
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclestate/BaseVehicleStateEnum.java
  3. 4
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclestate/BaseVehicleStateFeign.java
  4. 4
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehiclestate/BaseVehicleStateRest.java
  5. 76
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehiclestate/BaseVehicleStateService.java
  6. 72
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderService.java

5
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclestate/BaseVehicleStateDto.java

@ -12,16 +12,13 @@ import lombok.Data;
@Data
public class BaseVehicleStateDto implements Dto {
private static final long serialVersionUID = -3250371728132610725L;
@ApiModelProperty("车辆sid")
private String vinSid;
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("销售订单车辆sid")
private String busSid;
@ApiModelProperty("业务阶段序号")
private String busNo;
@ApiModelProperty("业务阶段名称")
private String busName;
@ApiModelProperty("操作类型")
private String operateType;
}

10
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclestate/BaseVehicleStateEnum.java

@ -59,11 +59,11 @@ public class BaseVehicleStateEnum {
/**
* 操作类型
*/
DDBA_SUBMIT("201", "订单提交"),
DDBA_PASS("202", "订单审核通过"),
CKKP_PASS("401", "出库开票审核通过"),
JC_PASS("402", "交车审核通过"),
BUS_STOP("602", "业务终止"),
DDBA_SUBMIT("1", "订单提交"),
DDBA_PASS("2", "订单审核通过"),
CKKP_PASS("3", "出库开票审核通过"),
JC_PASS("4", "交车审核通过"),
BUS_STOP("5", "业务终止"),
;

4
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclestate/BaseVehicleStateFeign.java

@ -6,6 +6,8 @@ import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
/**
* @description:
* @author: dimengzhe
@ -20,5 +22,5 @@ import org.springframework.web.bind.annotation.RequestBody;
public interface BaseVehicleStateFeign {
@PostMapping("saveOrUpdate")
ResultBean saveOrUpdate(@RequestBody BaseVehicleStateDto dto);
ResultBean saveOrUpdate(@RequestBody List<BaseVehicleStateDto> dto);
}

4
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehiclestate/BaseVehicleStateRest.java

@ -8,6 +8,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @description:
* @author: dimengzhe
@ -23,7 +25,7 @@ public class BaseVehicleStateRest implements BaseVehicleStateFeign {
private BaseVehicleStateService baseVehicleStateService;
@Override
public ResultBean saveOrUpdate(BaseVehicleStateDto dto) {
public ResultBean saveOrUpdate(List<BaseVehicleStateDto> dto) {
return baseVehicleStateService.saveOrUpdateState(dto);
}
}

76
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehiclestate/BaseVehicleStateService.java

@ -8,6 +8,8 @@ import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.core.result.ResultBean;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @description:
* @author: dimengzhe
@ -16,41 +18,47 @@ import org.springframework.stereotype.Service;
@Service
public class BaseVehicleStateService extends MybatisBaseService<BaseVehicleStateMapper, BaseVehicleState> {
public ResultBean saveOrUpdateState(BaseVehicleStateDto dto) {
public ResultBean saveOrUpdateState(List<BaseVehicleStateDto> dtoList) {
ResultBean rb = ResultBean.fireFail();
String operateType = dto.getOperateType();
String busSid = dto.getBusSid();
BaseVehicleState baseVehicleState = baseMapper.selectOnes(busSid);
if (BaseVehicleStateEnum.OperateTypeEnum.DDBA_SUBMIT.equals(operateType)) {
//销售订单提交时
baseVehicleState = new BaseVehicleState();
BeanUtil.copyProperties(dto, baseVehicleState, "sid");
baseMapper.insert(baseVehicleState);
} else if (BaseVehicleStateEnum.OperateTypeEnum.DDBA_PASS.equals(operateType)) {
//销售订单办理通过后更新业务阶段为出库开票、小状态为待出库,款项状态为0
baseVehicleState.setFinState("0");
baseVehicleState.setBusNo(BaseVehicleStateEnum.BusNoEnum.CKKP.getBusNoKey());
baseVehicleState.setBusName(BaseVehicleStateEnum.BusNoEnum.CKKP.getBusNoValue());
baseVehicleState.setBusState(BaseVehicleStateEnum.BusStateEnum.CKKP_STATE_1.getStateKey());
} else if (BaseVehicleStateEnum.OperateTypeEnum.CKKP_PASS.equals(operateType)) {
//出库通过后更新业务阶段为交车,小状态为待准备501
baseVehicleState.setBusNo(BaseVehicleStateEnum.BusNoEnum.JC.getBusNoKey());
baseVehicleState.setBusName(BaseVehicleStateEnum.BusNoEnum.JC.getBusNoValue());
baseVehicleState.setBusState(BaseVehicleStateEnum.BusStateEnum.JC_STATE_1.getStateKey());
} else if (BaseVehicleStateEnum.OperateTypeEnum.JC_PASS.equals(operateType)) {
//交车确认通过后更新业务状态为业务结束,小状态为业务完成601
baseVehicleState.setBusNo(BaseVehicleStateEnum.BusNoEnum.YWJS.getBusNoKey());
baseVehicleState.setBusName(BaseVehicleStateEnum.BusNoEnum.YWJS.getBusNoValue());
baseVehicleState.setBusState(BaseVehicleStateEnum.BusStateEnum.YWJS_STATE_1.getStateKey());
} else if (BaseVehicleStateEnum.OperateTypeEnum.BUS_STOP.equals(operateType)) {
//如果为终止或作废,则更新小状态为业务终止602
baseVehicleState.setBusState(BaseVehicleStateEnum.BusStateEnum.YWJS_STATE_2.getStateKey());
}
//认款办理确认以及结转审核通过的更新款项状态为1,否则为0
baseMapper.updateById(baseVehicleState);
dtoList.stream().forEach(dto -> {
String operateType = dto.getOperateType();
String busSid = dto.getBusSid();
BaseVehicleState baseVehicleState = baseMapper.selectOnes(busSid);
if (BaseVehicleStateEnum.OperateTypeEnum.DDBA_SUBMIT.getTypeKey().equals(operateType)) {
//销售订单提交时
baseVehicleState = new BaseVehicleState();
BeanUtil.copyProperties(dto, baseVehicleState, "sid");
baseVehicleState.setBusNo(BaseVehicleStateEnum.BusNoEnum.DDBA.getBusNoKey());
baseVehicleState.setBusName(BaseVehicleStateEnum.BusNoEnum.DDBA.getBusNoValue());
baseMapper.insert(baseVehicleState);
} else if (BaseVehicleStateEnum.OperateTypeEnum.DDBA_PASS.getTypeKey().equals(operateType)) {
//销售订单办理通过后更新业务阶段为出库开票、小状态为待出库,款项状态为0
baseVehicleState.setFinState("0");
baseVehicleState.setBusNo(BaseVehicleStateEnum.BusNoEnum.CKKP.getBusNoKey());
baseVehicleState.setBusName(BaseVehicleStateEnum.BusNoEnum.CKKP.getBusNoValue());
baseVehicleState.setBusState(BaseVehicleStateEnum.BusStateEnum.CKKP_STATE_1.getStateKey());
} else if (BaseVehicleStateEnum.OperateTypeEnum.CKKP_PASS.getTypeKey().equals(operateType)) {
//出库通过后更新业务阶段为交车,小状态为待准备501
baseVehicleState.setBusNo(BaseVehicleStateEnum.BusNoEnum.JC.getBusNoKey());
baseVehicleState.setBusName(BaseVehicleStateEnum.BusNoEnum.JC.getBusNoValue());
baseVehicleState.setBusState(BaseVehicleStateEnum.BusStateEnum.JC_STATE_1.getStateKey());
} else if (BaseVehicleStateEnum.OperateTypeEnum.JC_PASS.getTypeKey().equals(operateType)) {
//交车确认通过后更新业务状态为业务结束,小状态为业务完成601
baseVehicleState.setBusNo(BaseVehicleStateEnum.BusNoEnum.YWJS.getBusNoKey());
baseVehicleState.setBusName(BaseVehicleStateEnum.BusNoEnum.YWJS.getBusNoValue());
baseVehicleState.setBusState(BaseVehicleStateEnum.BusStateEnum.YWJS_STATE_1.getStateKey());
} else if (BaseVehicleStateEnum.OperateTypeEnum.BUS_STOP.getTypeKey().equals(operateType)) {
//如果为终止或作废,则更新小状态为业务终止602
baseVehicleState.setBusState(BaseVehicleStateEnum.BusStateEnum.YWJS_STATE_2.getStateKey());
}
//认款办理确认以及结转审核通过的更新款项状态为1,否则为0
baseMapper.updateById(baseVehicleState);
});
return rb.success();
}
}

72
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderService.java

@ -31,6 +31,7 @@ import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.yxt.anrui.base.api.basebrandletpricepowimit.BaseBrandMitQuery;
import com.yxt.anrui.base.api.basebrandletpricepowimit.BaseBrandletpricepowimitFeign;
import com.yxt.anrui.base.api.basediscountpackage.BaseDiscountpackageFeign;
@ -46,6 +47,9 @@ import com.yxt.anrui.base.api.basevehicle.app.AppBaseVehicleOrderVo;
import com.yxt.anrui.base.api.basevehiclemodel.BaseVehicleModel;
import com.yxt.anrui.base.api.basevehiclemodel.BaseVehicleModelFeign;
import com.yxt.anrui.base.api.basevehiclemodelappendix.BaseVehicleModelAppendixFeign;
import com.yxt.anrui.base.api.basevehiclestate.BaseVehicleStateDto;
import com.yxt.anrui.base.api.basevehiclestate.BaseVehicleStateEnum;
import com.yxt.anrui.base.api.basevehiclestate.BaseVehicleStateFeign;
import com.yxt.anrui.base.api.basevehicletempstate.BaseVehicleTempstate;
import com.yxt.anrui.base.api.basevehicletempstate.BaseVehicleTempstateFeign;
import com.yxt.anrui.base.api.basevehmodelconfig.BaseVehmodelConfigFeign;
@ -180,6 +184,7 @@ import com.yxt.messagecenter.api.messagelist.MessageList;
import com.yxt.messagecenter.api.messagelist.MessageListFeign;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.tomcat.util.threads.ThreadPoolExecutor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@ -197,6 +202,7 @@ import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.*;
import java.util.concurrent.*;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;
@ -314,6 +320,8 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
private BaseDiscountpackageFeign baseDiscountpackageFeign;
@Autowired
private DocPdfComponent docPdfComponent;
@Autowired
private BaseVehicleStateFeign baseVehicleStateFeign;
/**
* 构造查询条件
@ -4783,6 +4791,35 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
ResultBean resultBeanOrder = busVehicleOrderFeign.updateLockNum(linkSid, String.valueOf(count));
}
}
//==============================新增车辆的持久状态组装数据
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new ThreadPoolExecutor(2, 100,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
Future future1 = pool.submit(() -> {
List<BaseVehicleStateDto> dtoList = new ArrayList<>();
List<BusSalesOrderVehicle> vehicleList = busSalesOrderVehicleService.selectListByOrderSid(businessSid);
vehicleList.removeAll(Collections.singleton(null));
if (!vehicleList.isEmpty()) {
vehicleList.stream().forEach(v -> {
BaseVehicleStateDto baseVehicleStateDto = new BaseVehicleStateDto();
baseVehicleStateDto.setOperateType(BaseVehicleStateEnum.OperateTypeEnum.DDBA_SUBMIT.getTypeKey());
if (StringUtils.isNotBlank(v.getLinkSid())) {
baseVehicleStateDto.setVinSid(v.getLinkSid());
baseVehicleStateDto.setVinNo(v.getLinkNo());
}
baseVehicleStateDto.setBusSid(v.getSid());
dtoList.add(baseVehicleStateDto);
});
ResultBean busVehicleStateResultBean = baseVehicleStateFeign.saveOrUpdate(dtoList);
}
});
} catch (Exception e) {
e.printStackTrace();
}
//==============================
//如果创建人与部门主管一样,则自动到下一环节。
if (busSalesOrder.get().getCreateBySid().equals(nextNodeUserSids_)) {
busSalesOrderOne = fetchBySid(businessSid);
@ -4799,18 +4836,29 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
bv.setComment("因与申请人相同,系统自动处理,需以下一级审批人审批意见为准!");
return complete(bv);
}
//极光推送
busSalesOrder.set(fetchBySid(businessSid));
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap((Map<String, Object>) variables.get("app"));
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("销售订单申请");
messageFlowableQuery.setMsgContent(busSalesOrder.get().getStaffName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("销售订单");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new ThreadPoolExecutor(2, 100,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
Future future1 = pool.submit(() -> {
//极光推送
busSalesOrder.set(fetchBySid(businessSid));
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap((Map<String, Object>) variables.get("app"));
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("销售订单申请");
messageFlowableQuery.setMsgContent(busSalesOrder.get().getStaffName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("销售订单");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
});
} catch (Exception e) {
e.printStackTrace();
}
return voResultBean;
}
if (r == 2) {

Loading…
Cancel
Save