|
|
@ -110,6 +110,7 @@ import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
import java.math.BigDecimal; |
|
|
|
import java.util.*; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
/** |
|
|
|
* Project: anrui-buscenter(业务管理) <br/> |
|
|
@ -525,6 +526,8 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper |
|
|
|
baseMapper.updateById(busSalesOrder); |
|
|
|
//主车车型信息保存
|
|
|
|
busSalesOrderModelService.saveModel(busSalesOrderModelDto, dto.getSid()); |
|
|
|
busSalesOrderVehicleService.deleteByOrderSid(dto.getSid()); |
|
|
|
busSalesVehicleOrderService.deleteByOrderSid(dto.getSid()); |
|
|
|
if ("1".equals(dto.getType())) { |
|
|
|
//现车车辆信息
|
|
|
|
busSalesOrderVehicleService.saveVehicle(list, dto.getSid()); |
|
|
@ -1037,7 +1040,12 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper |
|
|
|
//查询是否有价格信息
|
|
|
|
BusSalesOrderPriceDetailsVo priceDetailsVo = busSalesOrderPriceService.details(saleOrderSid); |
|
|
|
if (priceDetailsVo != null) { |
|
|
|
vo.setPriceInfoState(1); |
|
|
|
if (priceDetailsVo.getSingleFinalPrice() != null) { |
|
|
|
vo.setPriceInfoState(1); |
|
|
|
} else { |
|
|
|
vo.setPriceInfoState(0); |
|
|
|
} |
|
|
|
|
|
|
|
} else { |
|
|
|
vo.setPriceInfoState(0); |
|
|
|
} |
|
|
@ -1178,6 +1186,9 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper |
|
|
|
//查询车型信息
|
|
|
|
AppModelInfoVo appModelInfo = baseMapper.selectModelInfoByOrderSid(record.getSaleOrderSid()); |
|
|
|
if (appModelInfo != null) { |
|
|
|
if (StringUtils.isBlank(appModelInfo.getPrice())) { |
|
|
|
appModelInfo.setPrice("-"); |
|
|
|
} |
|
|
|
record.setModelInfo(appModelInfo); |
|
|
|
} |
|
|
|
//是否保险
|
|
|
@ -1291,39 +1302,123 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper |
|
|
|
return rb.success().setData(sid); |
|
|
|
} |
|
|
|
|
|
|
|
public AppBusSaleOrderInitModelInfoVo getInitModelInfo(String saleOrderSid, String customerSid, String userSid) { |
|
|
|
public ResultBean<AppBusSaleOrderInitModelInfoVo> getInitModelInfo(AppInitModelQuery appInitModelQuery) { |
|
|
|
ResultBean<AppBusSaleOrderInitModelInfoVo> rb = ResultBean.fireFail(); |
|
|
|
String saleOrderSid = appInitModelQuery.getSalesOrderSid(); |
|
|
|
String customerSid = appInitModelQuery.getCustomerSid(); |
|
|
|
String userSid = appInitModelQuery.getUserSid(); |
|
|
|
|
|
|
|
BusSalesOrder busSalesOrder = fetchBySid(saleOrderSid); |
|
|
|
if (busSalesOrder == null) { |
|
|
|
return rb.setMsg("销售订单单据信息不存在"); |
|
|
|
} |
|
|
|
String type = ""; |
|
|
|
AppBusSaleOrderInitModelInfoVo vo = new AppBusSaleOrderInitModelInfoVo(); |
|
|
|
List<AppReadyCarList> appReadyCar = new ArrayList<>(); |
|
|
|
List<AppNowCarList> appNowCars = new ArrayList<>(); |
|
|
|
AppOrderInfo orderInfo = new AppOrderInfo(); |
|
|
|
|
|
|
|
AppOrderInfo appOrderInfo = busSalesOrderModelService.selectAppDetailsVoBySaleOrderSid(saleOrderSid); |
|
|
|
|
|
|
|
orderInfo.setNotice("提示"); |
|
|
|
orderInfo.setModelSid(appOrderInfo.getModelSid()); |
|
|
|
orderInfo.setModelName(appOrderInfo.getModelName()); |
|
|
|
orderInfo.setConfigSid(appOrderInfo.getConfigSid()); |
|
|
|
orderInfo.setCommonlyConfig(appOrderInfo.getCommonlyConfig()); |
|
|
|
orderInfo.setMoreConfig(appOrderInfo.getMoreConfig()); |
|
|
|
orderInfo.setModelName(appOrderInfo.getModelName()); |
|
|
|
|
|
|
|
//现车
|
|
|
|
List<AppNowCarList> appNowCarList = busSalesOrderVehicleService.selectAppDetailsVoBySaleOrderSid(saleOrderSid); |
|
|
|
BeanUtil.copyProperties(appNowCarList, appNowCars); |
|
|
|
orderInfo.setNowCarList(appNowCars); |
|
|
|
//排产
|
|
|
|
List<AppReadyCarList> appReadyCarList = busSalesVehicleOrderService.selectAppDetailsVoBySaleOrderSid(saleOrderSid); |
|
|
|
BeanUtil.copyProperties(appReadyCarList, appReadyCar); |
|
|
|
orderInfo.setReadyCarList(appReadyCarList); |
|
|
|
vo.setOrderInfo(orderInfo); |
|
|
|
AppCarInfo carInfo = new AppCarInfo(); |
|
|
|
List<AppReadyCarVo> readyCars = new ArrayList<>(); |
|
|
|
carInfo.setReadyCar(readyCars); |
|
|
|
List<AppNowCarVo> nowCars = new ArrayList<>(); |
|
|
|
carInfo.setNowCar(nowCars); |
|
|
|
vo.setCarInfo(carInfo); |
|
|
|
return vo; |
|
|
|
vo.setSaleOrderSid(saleOrderSid); |
|
|
|
//根据销售订单查询是否有车型信息
|
|
|
|
AppOrderInfoVo orderInfo = busSalesOrderModelService.selectAppDetailsVoBySaleOrderSid(saleOrderSid); |
|
|
|
if (orderInfo != null) { |
|
|
|
List<String> vinNoList = new ArrayList<>(); |
|
|
|
Map<String, Object> map = new HashMap<>(); |
|
|
|
String modelSid = orderInfo.getModelSid(); |
|
|
|
String configSid = orderInfo.getConfigSid(); |
|
|
|
AppCarInfo appCarInfo = new AppCarInfo(); |
|
|
|
List<AppNowCarVo> appNowCars = new ArrayList<>(); |
|
|
|
List<AppReadyCarVo> appReadyCar = new ArrayList<>(); |
|
|
|
//根据车型sid及配置sid查询现车列表
|
|
|
|
ResultBean<List<AppBaseVehicleOrderVo>> orderVoResultBean = baseVehicleFeign.selectAppList(modelSid, configSid); |
|
|
|
if (orderVoResultBean.getSuccess()) { |
|
|
|
List<AppBaseVehicleOrderVo> voList = orderVoResultBean.getData(); |
|
|
|
for (AppBaseVehicleOrderVo vehicleOrderVo : voList) { |
|
|
|
AppNowCarVo appNowCarVo = new AppNowCarVo(); |
|
|
|
BeanUtil.copyProperties(vehicleOrderVo, appNowCarVo); |
|
|
|
vinNoList.add(vehicleOrderVo.getVin()); |
|
|
|
appNowCars.add(appNowCarVo); |
|
|
|
} |
|
|
|
appCarInfo.setNowCar(appNowCars); |
|
|
|
} |
|
|
|
//排产采购订单
|
|
|
|
ResultBean<List<AppBusVehicleApplyListVo>> applyListResultBean = busVehicleApplyDetailFeign.getAppApplyList(modelSid, configSid); |
|
|
|
if (applyListResultBean.getSuccess()) { |
|
|
|
List<AppBusVehicleApplyListVo> applyListVos = applyListResultBean.getData(); |
|
|
|
for (AppBusVehicleApplyListVo applyListVo : applyListVos) { |
|
|
|
AppReadyCarVo appReadyCarVo = new AppReadyCarVo(); |
|
|
|
BeanUtil.copyProperties(applyListVo, appReadyCarVo); |
|
|
|
map.put(applyListVo.getOrderId(), applyListVo.getCanUseNum());//可使用数量
|
|
|
|
appReadyCar.add(appReadyCarVo); |
|
|
|
} |
|
|
|
appCarInfo.setReadyCar(appReadyCar); |
|
|
|
} |
|
|
|
vo.setCarInfo(appCarInfo); |
|
|
|
//查询是否有车辆信息:1现车、2采购订单、3排产。需要对应apifox中对应的类型:0现车、1采购订单、2排产
|
|
|
|
if ("1".equals(busSalesOrder.getType())) { |
|
|
|
//类型为现车,查询该销售订单的现车车辆信息
|
|
|
|
List<AppNowCarListVo> nowCarList = busSalesOrderVehicleService.selectAppDetailsVoBySaleOrderSid(saleOrderSid); |
|
|
|
nowCarList.parallelStream().filter(Objects::nonNull).collect(Collectors.toList()); |
|
|
|
if (!nowCarList.isEmpty()) { |
|
|
|
orderInfo.setNowCarList(nowCarList); |
|
|
|
boolean isCheck = isCheck(vinNoList, nowCarList); |
|
|
|
if (isCheck) { |
|
|
|
orderInfo.setNotice("当前车型已经更新,请进行确认"); |
|
|
|
} |
|
|
|
} |
|
|
|
type = "0"; |
|
|
|
} |
|
|
|
if ("2".equals(busSalesOrder.getType())) { |
|
|
|
List<AppReadyCarListVo> appReadyCarList = busSalesVehicleOrderService.selectAppDetailsVoBySaleOrderSid(saleOrderSid); |
|
|
|
appReadyCarList.parallelStream().filter(Objects::nonNull).collect(Collectors.toList()); |
|
|
|
if (!appReadyCarList.isEmpty()) { |
|
|
|
orderInfo.setReadyCarList(appReadyCarList); |
|
|
|
boolean isCheck = isCheck2(map, appReadyCarList); |
|
|
|
if (isCheck) { |
|
|
|
orderInfo.setNotice("当前车型已经更新,请进行确认"); |
|
|
|
} |
|
|
|
} |
|
|
|
type = "1"; |
|
|
|
|
|
|
|
} |
|
|
|
if ("3".equals(busSalesOrder.getType())) { |
|
|
|
type = "2"; |
|
|
|
|
|
|
|
} |
|
|
|
vo.setOrderInfo(orderInfo); |
|
|
|
vo.setState(type); |
|
|
|
|
|
|
|
} |
|
|
|
return rb.success().setData(vo); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 查询现车是否有变化 |
|
|
|
* |
|
|
|
* @param vinNoList 查询出来的车辆集合 |
|
|
|
* @param appNowCarList 选择的现车集合 |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
public Boolean isCheck(List<String> vinNoList, List<AppNowCarListVo> appNowCarList) { |
|
|
|
Boolean isCheck = false; |
|
|
|
for (AppNowCarListVo car : appNowCarList) { |
|
|
|
String vinNo = car.getVin(); |
|
|
|
if (!vinNoList.contains(vinNo)) { |
|
|
|
isCheck = true; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
return isCheck; |
|
|
|
} |
|
|
|
|
|
|
|
public Boolean isCheck2(Map<String, Object> orderIdMap, List<AppReadyCarListVo> appReadyCarList) { |
|
|
|
Boolean isCheck = false; |
|
|
|
for (AppReadyCarListVo order : appReadyCarList) { |
|
|
|
String orderId = order.getOrderId(); |
|
|
|
if (orderIdMap.containsKey(orderId)) { |
|
|
|
if (Integer.parseInt(orderIdMap.get(orderId).toString()) == 0) { |
|
|
|
isCheck = true; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
return isCheck; |
|
|
|
} |
|
|
|
|
|
|
|
public AppBusSaleOrderInitModelInfoVo getInitModelInfo2(AppBusSaleOrderInitModelInfoQuery appBusSaleOrderInitModelInfoQuery) { |
|
|
@ -1334,14 +1429,14 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper |
|
|
|
String special = appBusSaleOrderInitModelInfoQuery.getSpecial(); |
|
|
|
AppBusSaleOrderInitModelInfoVo vo = new AppBusSaleOrderInitModelInfoVo(); |
|
|
|
//选择的车型信息的数据
|
|
|
|
AppOrderInfo orderInfo = new AppOrderInfo(); |
|
|
|
AppOrderInfoVo orderInfo = new AppOrderInfoVo(); |
|
|
|
//根据车型及配置查询除的现车及排产采购订单的列表数据
|
|
|
|
AppCarInfo appCarInfo = new AppCarInfo(); |
|
|
|
//根据车型及配置查询除的现车列表
|
|
|
|
List<AppNowCarVo> appNowCars = new ArrayList<>(); |
|
|
|
List<AppReadyCarVo> appReadyCar = new ArrayList<>(); |
|
|
|
List<AppNowCarList> appNowCarLists = new ArrayList<>(); |
|
|
|
List<AppReadyCarList> appReadyCarLists = new ArrayList<>(); |
|
|
|
List<AppNowCarListVo> appNowCarLists = new ArrayList<>(); |
|
|
|
List<AppReadyCarListVo> appReadyCarLists = new ArrayList<>(); |
|
|
|
//根据车型及配置查询车型信息
|
|
|
|
ResultBean<AppCarConfigSummaryVo> appCarConfigSummaryVoResultBean = baseVehmodelConfigFeign.selectCarConfigSummary(modelSid, configSid, userSid); |
|
|
|
AppCarConfigSummaryVo data = appCarConfigSummaryVoResultBean.getData(); |
|
|
@ -1353,6 +1448,7 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper |
|
|
|
orderInfo.setSpecialInstructions(special); |
|
|
|
orderInfo.setNowCarList(appNowCarLists); |
|
|
|
orderInfo.setReadyCarList(appReadyCarLists); |
|
|
|
vo.setPrice(data.getPrice()); |
|
|
|
vo.setOrderInfo(orderInfo); |
|
|
|
//根据车型sid及配置sid查询现车列表
|
|
|
|
ResultBean<List<AppBaseVehicleOrderVo>> orderVoResultBean = baseVehicleFeign.selectAppList(modelSid, configSid); |
|
|
@ -1366,12 +1462,12 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper |
|
|
|
appCarInfo.setNowCar(appNowCars); |
|
|
|
} |
|
|
|
//排产采购订单
|
|
|
|
ResultBean<List<AppBusVehicleApplyListVo>> applyListResultBean = busVehicleApplyDetailFeign.getAppApplyList(modelSid,configSid); |
|
|
|
if(applyListResultBean.getSuccess()){ |
|
|
|
ResultBean<List<AppBusVehicleApplyListVo>> applyListResultBean = busVehicleApplyDetailFeign.getAppApplyList(modelSid, configSid); |
|
|
|
if (applyListResultBean.getSuccess()) { |
|
|
|
List<AppBusVehicleApplyListVo> applyListVos = applyListResultBean.getData(); |
|
|
|
for (AppBusVehicleApplyListVo applyListVo : applyListVos){ |
|
|
|
for (AppBusVehicleApplyListVo applyListVo : applyListVos) { |
|
|
|
AppReadyCarVo appReadyCarVo = new AppReadyCarVo(); |
|
|
|
BeanUtil.copyProperties(applyListVo,appReadyCarVo); |
|
|
|
BeanUtil.copyProperties(applyListVo, appReadyCarVo); |
|
|
|
appReadyCar.add(appReadyCarVo); |
|
|
|
} |
|
|
|
appCarInfo.setReadyCar(appReadyCar); |
|
|
@ -1531,4 +1627,8 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper |
|
|
|
public int selectCountByOrgSid(String billsType, String date, String orgSid) { |
|
|
|
return baseMapper.selectCountByOrgSid(billsType, date, orgSid); |
|
|
|
} |
|
|
|
|
|
|
|
public int updateTypeBySid(String type, String salesOrderSid) { |
|
|
|
return baseMapper.updateTypeBySid(type, salesOrderSid); |
|
|
|
} |
|
|
|
} |