Browse Source

交车准备和交车提交添加修改车辆持久状态的逻辑

zhanglei
dimengzhe 2 years ago
parent
commit
37c10d9121
  1. 2
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclestate/BaseVehicleStateEnum.java
  2. 4
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehiclestate/BaseVehicleStateService.java
  3. 2
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandover/BusHandoverMapper.java
  4. 9
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandover/BusHandoverMapper.xml
  5. 168
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandover/BusHandoverService.java
  6. 2
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandoverprepare/BusHandoverPrepareMapper.java
  7. 9
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandoverprepare/BusHandoverPrepareMapper.xml
  8. 33
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandoverprepare/BusHandoverPrepareService.java
  9. 1
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderService.java

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

@ -77,6 +77,8 @@ public class BaseVehicleStateEnum {
QKTCZZ("12", "欠款提车终止"),
QKTCTG("13", "欠款提车审核通过"),
TC("14", "退车"),
JCZBTIJ("15", "交车准备提交"),
JCTJ("16", "交车提交"),
;

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

@ -85,6 +85,10 @@ public class BaseVehicleStateService extends MybatisBaseService<BaseVehicleState
//如果为终止或作废,则更新小状态为业务终止602
baseVehicleState.setBusState(BaseVehicleStateEnum.BusStateEnum.YWJS_STATE_2.getStateKey());
baseVehicleState.setRemarks("退车");
}else if(BaseVehicleStateEnum.OperateTypeEnum.JCZBTIJ.getTypeKey().equals(operateType)){
//交车准备提交后,则更新小状态为502待交车
baseVehicleState.setBusState(BaseVehicleStateEnum.BusStateEnum.JC_STATE_2.getStateKey());
}
baseMapper.updateById(baseVehicleState);
}else{

2
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandover/BusHandoverMapper.java

@ -45,6 +45,8 @@ public interface BusHandoverMapper extends BaseMapper<BusHandover> {
int updateFlowFiled(Map<String, Object> map);
List<String> selectVinSidByApplySid(String sid);
/*//@Update("update bus_handover set name=#{msg} where id=#{id}")
//IPage<BusHandoverVo> voPage(IPage<BusHandover> page, @Param(Constants.WRAPPER) QueryWrapper<BusHandover> qw);

9
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandover/BusHandoverMapper.xml

@ -162,4 +162,13 @@
ORDER BY createTime DESC ,id
</where>
</select>
<select id="selectVinSidByApplySid" resultType="java.lang.String">
select bv.sid
from bus_handover_items bis
left join bus_handover bh on bh.sid = bis.handoverSid
left join bus_sales_order_vehicle bv on bv.linkSid = bis.vinSid
left join bus_sales_order bo on bo.sid = bv.salesOrderSid
where bis.handoverSid = #{sid} and bo.contractNo = bh.contractNo
</select>
</mapper>

168
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandover/BusHandoverService.java

@ -16,6 +16,9 @@ import com.yxt.anrui.base.api.basetrailermodel.BaseTrailerModelFeign;
import com.yxt.anrui.base.api.basevehicle.BaseVehicleFeign;
import com.yxt.anrui.base.api.basevehicle.BaseVehicleSelectVo;
import com.yxt.anrui.base.api.basevehiclemodel.BaseVehicleModel;
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.commoncontract.CommonContract;
import com.yxt.anrui.base.api.commoncontract.CommonContractFeign;
import com.yxt.anrui.base.common.enums.BillTypeEnum;
@ -24,6 +27,7 @@ import com.yxt.anrui.base.common.utils.Rule;
import com.yxt.anrui.base.common.utils.domain.BillNo;
import com.yxt.anrui.buscenter.api.buscenterfile.BuscenterFile;
import com.yxt.anrui.buscenter.api.buscenterfile.BuscenterFileEnum;
import com.yxt.anrui.buscenter.api.busdeliveredapply.BusDeliveredApply;
import com.yxt.anrui.buscenter.api.bushandover.*;
import com.yxt.anrui.buscenter.api.bushandover.app.*;
import com.yxt.anrui.buscenter.api.bushandover.flow.BusHandoverTaskQuery;
@ -166,6 +170,8 @@ public class BusHandoverService extends MybatisBaseService<BusHandoverMapper, Bu
@Autowired
private BusVehicleDataHandoverService busVehicleDataHandoverService;
@Autowired
private BaseVehicleStateFeign baseVehicleStateFeign;
// @Transactional(rollbackFor = Exception.class)
@ -1975,9 +1981,9 @@ public class BusHandoverService extends MybatisBaseService<BusHandoverMapper, Bu
ExecutorService pool = new ThreadPoolExecutor(2, 100,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
BusHandover finalBusHandover1 = busHandover;
Future future1 = pool.submit(() -> {
//极光推送
// busVehicleApply.set(fetchBySid(businessSid));
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
@ -1985,7 +1991,7 @@ public class BusHandoverService extends MybatisBaseService<BusHandoverMapper, Bu
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("交车确认申请");
SysUserVo userVo = sysUserFeign.fetchBySid(busHandover.getCreateBySid()).getData();
SysUserVo userVo = sysUserFeign.fetchBySid(finalBusHandover1.getCreateBySid()).getData();
if (userVo != null) {
if (StringUtils.isNotBlank(userVo.getName())) {
messageFlowableQuery.setMsgContent(userVo.getName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
@ -1998,6 +2004,32 @@ public class BusHandoverService extends MybatisBaseService<BusHandoverMapper, Bu
e.printStackTrace();
}
//==================================添加线程
//==============================修改车辆的持久状态组装数据
busHandover = fetchBySid(businessSid);
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());
BusHandover finalBusHandover = busHandover;
Future future1 = pool.submit(() -> {
List<BaseVehicleStateDto> dtoList = new ArrayList<>();
List<String> vinSidList = baseMapper.selectVinSidByApplySid(finalBusHandover.getSid());
vinSidList.removeAll(Collections.singleton(null));
if (!vinSidList.isEmpty()) {
vinSidList.stream().forEach(v -> {
BaseVehicleStateDto baseVehicleStateDto = new BaseVehicleStateDto();
baseVehicleStateDto.setOperateType(BaseVehicleStateEnum.OperateTypeEnum.JCTJ.getTypeKey());
baseVehicleStateDto.setBusSid(v);
dtoList.add(baseVehicleStateDto);
});
ResultBean busVehicleStateResultBean = baseVehicleStateFeign.saveOrUpdate(dtoList);
}
});
} catch (Exception e) {
e.printStackTrace();
}
return voResultBean;
}
if (r == 2) {
@ -2083,6 +2115,32 @@ public class BusHandoverService extends MybatisBaseService<BusHandoverMapper, Bu
busVehicleDataHandoverService.saveData(dto);
}
}
//==============================修改车辆的持久状态组装数据
busHandover = fetchBySid(businessSid);
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());
BusHandover finalBusHandover = busHandover;
Future future1 = pool.submit(() -> {
List<BaseVehicleStateDto> dtoList = new ArrayList<>();
List<String> vinSidList = baseMapper.selectVinSidByApplySid(finalBusHandover.getSid());
vinSidList.removeAll(Collections.singleton(null));
if (!vinSidList.isEmpty()) {
vinSidList.stream().forEach(v -> {
BaseVehicleStateDto baseVehicleStateDto = new BaseVehicleStateDto();
baseVehicleStateDto.setOperateType(BaseVehicleStateEnum.OperateTypeEnum.JC_PASS.getTypeKey());
baseVehicleStateDto.setBusSid(v);
dtoList.add(baseVehicleStateDto);
});
ResultBean busVehicleStateResultBean = baseVehicleStateFeign.saveOrUpdate(dtoList);
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
return rb.success().setData(resultBean.getData());
} else {
@ -2113,6 +2171,37 @@ public class BusHandoverService extends MybatisBaseService<BusHandoverMapper, Bu
return rb.setMsg(resultBean.getMsg());
}
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
busHandover = fetchBySid(query.getBusinessSid());
ResultBean<List<LatestTaskVo>> listResultBean = flowTaskFeign.getLatestTasks(busHandover.getProcInstId());
String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_();
String nextName = listResultBean.getData().get(0).getName_();
List<String> receiveSidList = Arrays.asList(nextNodeUserSids.split(","));
if ("发起申请".equals(nextName)) {
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());
BusHandover finalBusHandover = busHandover;
Future future1 = pool.submit(() -> {
List<BaseVehicleStateDto> dtoList = new ArrayList<>();
List<String> vinSidList = baseMapper.selectVinSidByApplySid(finalBusHandover.getSid());
vinSidList.removeAll(Collections.singleton(null));
if (!vinSidList.isEmpty()) {
vinSidList.stream().forEach(v -> {
BaseVehicleStateDto baseVehicleStateDto = new BaseVehicleStateDto();
baseVehicleStateDto.setOperateType(BaseVehicleStateEnum.OperateTypeEnum.JCZBTIJ.getTypeKey());
baseVehicleStateDto.setBusSid(v);
dtoList.add(baseVehicleStateDto);
});
ResultBean busVehicleStateResultBean = baseVehicleStateFeign.saveOrUpdate(dtoList);
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
return rb.success().setData(resultBean.getData());
}
}
@ -2204,9 +2293,32 @@ public class BusHandoverService extends MybatisBaseService<BusHandoverMapper, Bu
String nextName = listResultBean.getData().get(0).getName_();
String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_();
List<String> receiveSidList = Arrays.asList(nextNodeUserSids.split(","));
// if (receiveSidList.size() == 1 && receiveSidList.get(0).equals(busVehicleApply.getCreateBySid())) {
if ("发起申请".equals(nextName)) {
messageFlowableQuery.setMsgContent("您提交的" + messageFlowableQuery.getModuleName() + "已被驳回,请重新提交");
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());
BusHandover finalBusHandover = busHandover;
Future future1 = pool.submit(() -> {
List<BaseVehicleStateDto> dtoList = new ArrayList<>();
List<String> vinSidList = baseMapper.selectVinSidByApplySid(finalBusHandover.getSid());
vinSidList.removeAll(Collections.singleton(null));
if (!vinSidList.isEmpty()) {
vinSidList.stream().forEach(v -> {
BaseVehicleStateDto baseVehicleStateDto = new BaseVehicleStateDto();
baseVehicleStateDto.setOperateType(BaseVehicleStateEnum.OperateTypeEnum.JCZBTIJ.getTypeKey());
baseVehicleStateDto.setBusSid(v);
dtoList.add(baseVehicleStateDto);
});
ResultBean busVehicleStateResultBean = baseVehicleStateFeign.saveOrUpdate(dtoList);
}
});
} catch (Exception e) {
e.printStackTrace();
}
} else {
SysUserVo userVo = sysUserFeign.fetchBySid(busHandover.getCreateBySid()).getData();
if (userVo != null) {
@ -2306,6 +2418,31 @@ public class BusHandoverService extends MybatisBaseService<BusHandoverMapper, Bu
}
Map<String, Object> map = BeanUtil.beanToMap(resultBean.getData());
updateFlowFiled(map);
//==============================修改车辆的持久状态组装数据
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());
BusHandover finalBusHandover = busHandover;
Future future1 = pool.submit(() -> {
List<BaseVehicleStateDto> dtoList = new ArrayList<>();
List<String> vinSidList = baseMapper.selectVinSidByApplySid(finalBusHandover.getSid());
vinSidList.removeAll(Collections.singleton(null));
if (!vinSidList.isEmpty()) {
vinSidList.stream().forEach(v -> {
BaseVehicleStateDto baseVehicleStateDto = new BaseVehicleStateDto();
baseVehicleStateDto.setOperateType(BaseVehicleStateEnum.OperateTypeEnum.BUS_STOP.getTypeKey());
baseVehicleStateDto.setBusSid(v);
dtoList.add(baseVehicleStateDto);
});
ResultBean busVehicleStateResultBean = baseVehicleStateFeign.saveOrUpdate(dtoList);
}
});
} catch (Exception e) {
e.printStackTrace();
}
return rb.success().setData(resultBean.getData());
} else {
if (businessTaskId.equals(query.getTaskId())) {
@ -2317,6 +2454,31 @@ public class BusHandoverService extends MybatisBaseService<BusHandoverMapper, Bu
}
Map<String, Object> map = BeanUtil.beanToMap(resultBean.getData());
updateFlowFiled(map);
//==============================修改车辆的持久状态组装数据
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());
BusHandover finalBusHandover = busHandover;
Future future1 = pool.submit(() -> {
List<BaseVehicleStateDto> dtoList = new ArrayList<>();
List<String> vinSidList = baseMapper.selectVinSidByApplySid(finalBusHandover.getSid());
vinSidList.removeAll(Collections.singleton(null));
if (!vinSidList.isEmpty()) {
vinSidList.stream().forEach(v -> {
BaseVehicleStateDto baseVehicleStateDto = new BaseVehicleStateDto();
baseVehicleStateDto.setOperateType(BaseVehicleStateEnum.OperateTypeEnum.BUS_STOP.getTypeKey());
baseVehicleStateDto.setBusSid(v);
dtoList.add(baseVehicleStateDto);
});
ResultBean busVehicleStateResultBean = baseVehicleStateFeign.saveOrUpdate(dtoList);
}
});
} catch (Exception e) {
e.printStackTrace();
}
return rb.success().setData(resultBean.getData());
}
}

2
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandoverprepare/BusHandoverPrepareMapper.java

@ -67,4 +67,6 @@ public interface BusHandoverPrepareMapper extends BaseMapper<BusHandoverPrepare>
List<BusHandoverPrepareVo> selectListVo();
IPage<AppHandoverPreparePageVo> getDeliveryPlanList(IPage<AppHandoverPreparePageQuery> page, @Param(Constants.WRAPPER) QueryWrapper<AppHandoverPreparePageVo> qw, @Param("name") String name);
List<String> selectVinSidByApplySid(String sid);
}

9
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandoverprepare/BusHandoverPrepareMapper.xml

@ -37,4 +37,13 @@
</if>
</where>
</select>
<select id="selectVinSidByApplySid" resultType="java.lang.String">
select bv.sid
from bus_handover_prepare_vehicle bpv
left join bus_handover_prepare bp on bp.sid = bpv.mainSid
left join bus_sales_order_vehicle bv on bv.linkSid = bpv.vinSid
left join bus_sales_order bo on bo.sid = bv.salesOrderSid
where bpv.mainSid = #{sid} and bo.contractNo = bp.contractNo
</select>
</mapper>

33
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandoverprepare/BusHandoverPrepareService.java

@ -29,10 +29,14 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
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.basevehicle.BaseVehicleFeign;
import com.yxt.anrui.base.api.basevehiclecertificate.BaseVehicleCertificateFeign;
import com.yxt.anrui.base.api.basevehiclecertificate.CertificateStateQuery;
import com.yxt.anrui.base.api.basevehiclecertificate.HandoverCertVo;
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.common.enums.CertificState;
import com.yxt.anrui.buscenter.api.buscenterfile.BuscenterFile;
import com.yxt.anrui.buscenter.api.buscenterfile.BuscenterFileEnum;
@ -42,6 +46,7 @@ import com.yxt.anrui.buscenter.api.bushandoverpreparevehicle.AppBusHandoverPrepa
import com.yxt.anrui.buscenter.api.bushandoverpreparevehicle.AppBusHandoverPrepareVehicleInfoVo;
import com.yxt.anrui.buscenter.api.bushandoverpreparevehicle.BusHandoverPrepareVehicle;
import com.yxt.anrui.buscenter.api.bushandoverwait.BusHandoverWaitDto;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle;
import com.yxt.anrui.buscenter.api.bustransferrecords.BusTransferRecordEnum;
import com.yxt.anrui.buscenter.api.bustransferrecords.BusTransferRecords;
import com.yxt.anrui.buscenter.api.busvehicleinformation.BusVehicleInformation;
@ -66,10 +71,12 @@ import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.apache.commons.lang3.StringUtils;
import org.apache.tomcat.util.threads.ThreadPoolExecutor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.concurrent.*;
import java.util.stream.Collectors;
/**
@ -113,6 +120,8 @@ public class BusHandoverPrepareService extends MybatisBaseService<BusHandoverPre
private BusVehicleInformationService busVehicleInformationService;
@Autowired
private BusTransferRecordsService busTransferRecordsService;
@Autowired
private BaseVehicleStateFeign baseVehicleStateFeign;
/* private QueryWrapper<BusHandoverPrepare> createQueryWrapper(BusHandoverPrepareQuery query) {
// todo: 这里根据具体业务调整查询条件
@ -567,6 +576,30 @@ public class BusHandoverPrepareService extends MybatisBaseService<BusHandoverPre
busHandoverPrepare.setHandoverPrepareState("已准备");
busHandoverPrepare.setHandoverPrepareStateKey("2");
updateById(busHandoverPrepare);
//==============================修改车辆的持久状态组装数据
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<String> vinSidList = baseMapper.selectVinSidByApplySid(dto.getSid());
vinSidList.removeAll(Collections.singleton(null));
if (!vinSidList.isEmpty()) {
vinSidList.stream().forEach(v -> {
BaseVehicleStateDto baseVehicleStateDto = new BaseVehicleStateDto();
baseVehicleStateDto.setOperateType(BaseVehicleStateEnum.OperateTypeEnum.JCZBTIJ.getTypeKey());
baseVehicleStateDto.setBusSid(v);
dtoList.add(baseVehicleStateDto);
});
ResultBean busVehicleStateResultBean = baseVehicleStateFeign.saveOrUpdate(dtoList);
}
});
} catch (Exception e) {
e.printStackTrace();
}
return rb.success();
}

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

@ -5252,7 +5252,6 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
} catch (Exception e) {
e.printStackTrace();
}
//-----------------推送车款款项结束
//推送采购渠道待选择
if ("3".equals(busSalesOrder.getType())) {
ScmPurchaseChannelPush scmPurchaseChannelPush = new ScmPurchaseChannelPush();

Loading…
Cancel
Save