diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclestate/BaseVehicleStateDto.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclestate/BaseVehicleStateDto.java index 118370190c..8f61d8d56c 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclestate/BaseVehicleStateDto.java +++ b/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; } diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclestate/BaseVehicleStateEnum.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclestate/BaseVehicleStateEnum.java index dc46946853..589f8caba6 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclestate/BaseVehicleStateEnum.java +++ b/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", "业务终止"), ; diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclestate/BaseVehicleStateFeign.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclestate/BaseVehicleStateFeign.java index 41d100c14f..66b362d31d 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclestate/BaseVehicleStateFeign.java +++ b/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 dto); } diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehiclestate/BaseVehicleStateRest.java b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehiclestate/BaseVehicleStateRest.java index b80b3bf285..cae9e58a94 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehiclestate/BaseVehicleStateRest.java +++ b/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 dto) { return baseVehicleStateService.saveOrUpdateState(dto); } } diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehiclestate/BaseVehicleStateService.java b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehiclestate/BaseVehicleStateService.java index 97c4a3ef70..a30fa14473 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehiclestate/BaseVehicleStateService.java +++ b/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 { - public ResultBean saveOrUpdateState(BaseVehicleStateDto dto) { + public ResultBean saveOrUpdateState(List 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(); } } diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderService.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderService.java index caf7535667..296666bd55 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderService.java +++ b/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(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); + Future future1 = pool.submit(() -> { + List dtoList = new ArrayList<>(); + List 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) variables.get("app")); - messageFlowableQuery.setBusinessSid(businessSid); - messageFlowableQuery.setModuleName("销售订单申请"); - messageFlowableQuery.setMsgContent(busSalesOrder.get().getStaffName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); - messageFlowableQuery.setMsgTitle("销售订单"); - ResultBean 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(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) variables.get("app")); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("销售订单申请"); + messageFlowableQuery.setMsgContent(busSalesOrder.get().getStaffName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + messageFlowableQuery.setMsgTitle("销售订单"); + ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); + }); + } catch (Exception e) { + e.printStackTrace(); + } return voResultBean; } if (r == 2) {