123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452 |
- package com.steerinfo.dil.service.impl;
- import com.steerinfo.dil.mapper.AmsDispatchSaleOrderMapper;
- import com.steerinfo.dil.mapper.AmsSaleOrderMapper;
- import com.steerinfo.dil.mapper.AmsSaleOrderMaterialMapper;
- import com.steerinfo.dil.mapper.AmsSaleTrucknoMaterialMapper;
- import com.steerinfo.dil.model.AmsDispatchSaleOrder;
- import com.steerinfo.dil.model.AmsSaleOrder;
- import com.steerinfo.dil.model.AmsSaleOrderMaterial;
- import com.steerinfo.dil.model.AmsSaleTrucknoMaterial;
- import com.steerinfo.dil.service.IAmsSaleOrderService;
- import com.steerinfo.dil.util.DataChange;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import java.math.BigDecimal;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.*;
- /**
- * AmsSaleOrder服务实现:
- *
- * @author generator
- * @version 1.0-SNAPSHORT 2021-09-06 07:10
- * 类描述
- * 修订历史:
- * 日期:2021-09-06
- * 作者:generator
- * 参考:
- * 描述:AmsSaleOrder服务实现
- * @Copyright 湖南视拓信息技术股份有限公司. All rights reserved.
- * @see null
- */
- @Service(value = "amsSaleOrderService")
- public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
- @Autowired
- private AmsSaleOrderMapper amsSaleOrderMapper;
- @Autowired
- private AmsSaleOrderMaterialMapper amsSaleOrderMaterialMapper;
- @Autowired
- private AmsSaleTrucknoMaterialMapper trucknoMaterialMapper;
- @Autowired
- AmsDispatchSaleOrderMapper amsDispatchSaleOrderMapper;
- @Override
- public List<Map<String, Object>> getSaleOrderInfo(Map<String, Object> map) {
- return amsSaleOrderMapper.getSaleOrderInfo(map);
- }
- @Override
- public List<Map<String, Object>> getSaleOrderReported(Map<String, Object> map) {
- return amsSaleOrderMapper.getSaleOrderReported(map);
- }
- @Override
- public List<Map<String, Object>> getSaleOrderDetail(Map<String, Object> map) {
- return amsSaleOrderMapper.getSaleOrderDetail(map);
- }
- @Override
- public List<Map<String, Object>> getSalePlanName() {
- return amsSaleOrderMapper.getSalePlanName();
- }
- @Override
- public List<Map<String, Object>> getShipperName() {
- return amsSaleOrderMapper.getShipperName();
- }
- @Override
- public List<Map<String, Object>> getConsigneeCompanyName() {
- return amsSaleOrderMapper.getConsigneeCompanyName();
- }
- @Override
- /**
- * map存放为前端获取的amsSaleOrder基础数据以及selectionList物资信息
- * map1为基础数据包括,收货地址,收货人等
- * map2存放的从selectionList取出的数据,包括物资id,物资名称等。
- */
- public int addAmsSaleOrder(Map<String, Object> map) throws ParseException {
- //获取前端传过来的map,
- int i = 0;
- Map<String, Object> map1 = (Map<String, Object>) map.get("amsSaleOrder");
- AmsSaleOrder amsSaleOrder = new AmsSaleOrder();
- Integer id = (amsSaleOrderMapper.selectMaxId()).intValue();
- //生成主键id
- amsSaleOrder.setSaleOrderId(new BigDecimal(id));
- //WXSDD-年月日-8位数的顺序号
- String wxsdd = DataChange.generateEightDigitsNumber("WXSDD", id);
- amsSaleOrder.setSaleNumber(wxsdd);
- //获得是否自提
- amsSaleOrder.setSaleOrderIsselfMention((String) map1.get("saleOrderIsselfMention"));
- //获取收货地址id
- amsSaleOrder.setReceiveId(DataChange.dataToBigDecimal(map1.get("receiveId")));
- //获取发货单位id
- amsSaleOrder.setShipperId(DataChange.dataToBigDecimal(map1.get("shipperId")));
- //获取备注
- amsSaleOrder.setSaleRemark((String) map1.get("saleRemark"));
- //设置销售订单状态
- amsSaleOrder.setSaleOrderStatus(new BigDecimal(0));
- amsSaleOrder.setSaleUnitPrice(new BigDecimal(4000));
- amsSaleOrder.setSaleOrderTax("13%");
- amsSaleOrder.setInsertUsername("admin");
- amsSaleOrder.setInsertTime(new Date());
- amsSaleOrder.setUpdateUsername("admin");
- amsSaleOrder.setUpdateTime(new Date());
- amsSaleOrder.setInsertUpdateRemark("无");
- amsSaleOrder.setDeleted(new BigDecimal(0));
- amsSaleOrder.setSaleOrderStatus(new BigDecimal(0));
- //设置收款客户
- amsSaleOrder.setSaleOrderReceiveCustomer((String) map1.get("saleOrderReceiveCustomer"));
- i += amsSaleOrderMapper.insertSelective(amsSaleOrder);
- //获取车序号和物资信息进行新增车序号与物资中间表
- //一个销售订单对应多个车序号
- List<Map<String, Object>> selectionList = (List<Map<String, Object>>) map.get("selectionList");
- for (Map<String, Object> map2 : selectionList) {
- BigDecimal materialId = DataChange.dataToBigDecimal(map2.get("materialId"));
- Integer cxh = (Integer) map2.get("cxh");
- //生成车序号与物资实体
- AmsSaleOrderMaterial amsSaleOrderMaterial = new AmsSaleOrderMaterial();
- //生成主键
- amsSaleOrderMaterial.setSaleOrderMaterialId(amsSaleOrderMaterialMapper.selectMaxId());
- amsSaleOrderMaterial.setSaleOrderId(amsSaleOrder.getSaleOrderId());
- // 生成定向派单
- AmsDispatchSaleOrder amsDispatchSaleOrder = new AmsDispatchSaleOrder();
- amsDispatchSaleOrder.setDispatchId(amsDispatchSaleOrderMapper.selectOtherId());
- amsDispatchSaleOrder.setSaleOrderMaterialId(amsSaleOrderMaterial.getSaleOrderMaterialId());
- //获取收货地址
- Integer saleShipperAddressId =(Integer) map2.get("saleShipperAddressId");
- amsSaleOrderMaterial.setSaleShippingAddressId(new BigDecimal(saleShipperAddressId));
- //根据收货地址查询承运商
- Map<String,Object> map4 = amsSaleOrderMapper.selectProvince(saleShipperAddressId);
- BigDecimal carrierId = amsSaleOrderMapper.selectCarrierIdByprovince(map4);
- //获取收货方电话号码
- amsDispatchSaleOrder.setCarrierId(carrierId);
- amsDispatchSaleOrder.setDispatchTime(new Date());
- //设置成交类型
- amsDispatchSaleOrder.setDispatchType(new BigDecimal(0));
- //设置下发状态为未下发
- amsDispatchSaleOrder.setDispatchStatus(new BigDecimal(1));
- amsDispatchSaleOrder.setInsertTime(new Date());
- amsDispatchSaleOrder.setInsertUsername("admin");
- amsDispatchSaleOrderMapper.insertSelective(amsDispatchSaleOrder);
- amsSaleOrderMaterial.setSaleOrderConsigneeTel(map2.get("saleOrderConsigneeTel").toString());
- //获取收货日期
- String saleDateOfReceipt =(String) map2.get("saleDateOfReceipt");
- SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd");
- Date date = simpleDateFormat.parse(saleDateOfReceipt);
- amsSaleOrderMaterial.setSaleDateOfReceipt(date);
- //获取收货方姓名
- amsSaleOrderMaterial.setSaleOrderConsignee((String) map2.get("saleOrderConsignee"));
- //设置车序号
- amsSaleOrderMaterial.setSaleOrderMaterialTruckNo(new BigDecimal(cxh));
- //设置删除状态
- amsSaleOrderMaterial.setDeleted(new BigDecimal(0));
- i += amsSaleOrderMaterialMapper.insertSelective(amsSaleOrderMaterial);
- //新增车序号与物资中间表
- AmsSaleTrucknoMaterial trucknoMaterial = new AmsSaleTrucknoMaterial();
- trucknoMaterial.setTrucknoMaterialId(trucknoMaterialMapper.selectMaxId());
- //设置物资id
- trucknoMaterial.setMaterialId(materialId);
- //获取车序号物资id
- trucknoMaterial.setSaleOrderMaterialId(amsSaleOrderMaterial.getSaleOrderMaterialId());
- Integer orderPlanWeight = (Integer) map2.get("orderPlanWeight");
- trucknoMaterial.setSaleOrderMaterialNumber(DataChange.dataToBigDecimal(orderPlanWeight));
- //获取物资理重
- BigDecimal materialTheoreticalWeight = DataChange.dataToBigDecimal(map2.get("materialTheoreticalWeight"));
- //判断是否有物资理重
- if (materialTheoreticalWeight.intValue() != 0) {
- trucknoMaterial.setMaterialTheoreticalWeight(materialTheoreticalWeight);
- }
- //新增车序号与物资中间表
- i += trucknoMaterialMapper.insertSelective(trucknoMaterial);
- }
- return i;
- }
- @Override
- public int uploadSaleOrder(BigDecimal saleOrderId) {
- AmsSaleOrder amsSaleOrder = amsSaleOrderMapper.selectByPrimaryKey(saleOrderId);
- amsSaleOrder.setSaleOrderStatus(new BigDecimal(1));
- return amsSaleOrderMapper.updateByPrimaryKey(amsSaleOrder);
- }
- @Override
- public List<Map<String, Object>> selectBySaleOrderId(BigDecimal saleOrderId) {
- return amsSaleOrderMapper.selectBySaleOrderId(saleOrderId);
- }
- /**
- * 修改订单信息、车序号表、车序号物资中间表
- *
- * @param map
- * @return
- */
- @Override
- @Transactional
- public int updateAmsSaleOrder(Map<String, Object> map) throws ParseException {
- int i = 0;
- int j = 0;
- Map<String, Object> map1 = (Map<String, Object>) map.get("amsSaleOrder");
- AmsSaleOrder amsSaleOrder = new AmsSaleOrder();
- //修改销售订单表 更新销售订单基础信息
- amsSaleOrder.setSaleOrderId(DataChange.dataToBigDecimal(map1.get("saleOrderId")));
- amsSaleOrder.setShipperId(DataChange.dataToBigDecimal(map1.get("shipperId")));
- amsSaleOrder.setReceiveId(DataChange.dataToBigDecimal(map1.get("reciveId")));
- amsSaleOrder.setSaleOrderIsselfMention((String) map1.get("saleOrderIsselfMention"));
- amsSaleOrder.setSaleOrderReceiveCustomer((String) map1.get("saleOrderReciveCustomer"));
- amsSaleOrder.setSaleRemark((String) map1.get("saleRemark"));
- amsSaleOrder.setUpdateTime(new Date());
- i += amsSaleOrderMapper.updateByPrimaryKeySelective(amsSaleOrder);
- //根据销售订单id查找销售车序号和车序号与物资中间表主键
- List<Map<String, Object>> map2 = amsSaleOrderMapper.selectSaleOrderMaterialIdBySaleOrderId(DataChange.dataToBigDecimal(map1.get("saleOrderId")));
- for (Map<String,Object> Id:map2){
- BigDecimal truckNoMaterialId =(BigDecimal) Id.get("TruckNoMaterialId");
- BigDecimal saleOrderMaterialId=(BigDecimal) Id.get("saleOrderMaterialId");
- //删除对应的车序号表与车序号与物资中间表
- j+=amsSaleOrderMaterialMapper.deleteByPrimaryKey(saleOrderMaterialId);
- j+=trucknoMaterialMapper.deleteByPrimaryKey(truckNoMaterialId);
- }
- //新增车序号和物资中间表
- //获取车序号和物资信息进行新增车序号与物资中间表
- //一个销售订单对应多个车序号
- List<Map<String, Object>> selectionList = (List<Map<String, Object>>) map.get("selectionList");
- for (Map<String, Object> map3 : selectionList) {
- BigDecimal materialId = DataChange.dataToBigDecimal(map3.get("materialId"));
- Integer cxh = (Integer) map3.get("cxh");
- //生成车序号与物资实体
- AmsSaleOrderMaterial amsSaleOrderMaterial = new AmsSaleOrderMaterial();
- //生成主键
- amsSaleOrderMaterial.setSaleOrderMaterialId(amsSaleOrderMaterialMapper.selectMaxId());
- amsSaleOrderMaterial.setSaleOrderId(DataChange.dataToBigDecimal(map1.get("saleOrderId")));
- //获取收货地址
- amsSaleOrderMaterial.setSaleShippingAddressId(DataChange.dataToBigDecimal(map3.get("saleShipperAddressId")));
- //获取收货方电话号码
- amsSaleOrderMaterial.setSaleOrderConsigneeTel(map3.get("saleOrderConsigneeTel").toString());
- //获取收货日期
- String saleDateOfReceipt =(String) map3.get("saleDateOfReceipt");
- SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd");
- Date date = simpleDateFormat.parse(saleDateOfReceipt);
- amsSaleOrderMaterial.setSaleDateOfReceipt(date);
- //获取收货方姓名
- amsSaleOrderMaterial.setSaleOrderConsignee((String) map3.get("saleOrderConsignee"));
- //设置车序号
- amsSaleOrderMaterial.setSaleOrderMaterialTruckNo(new BigDecimal(cxh));
- //设置删除状态
- amsSaleOrderMaterial.setDeleted(new BigDecimal(0));
- i += amsSaleOrderMaterialMapper.insertSelective(amsSaleOrderMaterial);
- // 生成定向派单
- AmsDispatchSaleOrder amsDispatchSaleOrder = new AmsDispatchSaleOrder();
- amsDispatchSaleOrder.setDispatchId(amsDispatchSaleOrderMapper.selectOtherId());
- amsDispatchSaleOrder.setSaleOrderMaterialId(amsSaleOrderMaterial.getSaleOrderMaterialId());
- //获取收货地址
- Integer saleShipperAddressId =(Integer) map3.get("saleShipperAddressId");
- amsSaleOrderMaterial.setSaleShippingAddressId(new BigDecimal(saleShipperAddressId));
- //根据收货地址查询承运商
- Map<String,Object> map4 = amsSaleOrderMapper.selectProvince(saleShipperAddressId);
- BigDecimal carrierId = amsSaleOrderMapper.selectCarrierIdByprovince(map4);
- //获取收货方电话号码
- amsDispatchSaleOrder.setCarrierId(carrierId);
- amsDispatchSaleOrder.setDispatchTime(new Date());
- //设置成交类型
- amsDispatchSaleOrder.setDispatchType(new BigDecimal(0));
- //设置下发状态为已下发
- amsDispatchSaleOrder.setDispatchStatus(new BigDecimal(0));
- amsDispatchSaleOrder.setInsertTime(new Date());
- amsDispatchSaleOrder.setInsertUsername("admin");
- //新增车序号与物资中间表
- AmsSaleTrucknoMaterial trucknoMaterial = new AmsSaleTrucknoMaterial();
- trucknoMaterial.setTrucknoMaterialId(trucknoMaterialMapper.selectMaxId());
- //设置物资id
- trucknoMaterial.setMaterialId(materialId);
- //获取车序号物资id
- trucknoMaterial.setSaleOrderMaterialId(amsSaleOrderMaterial.getSaleOrderMaterialId());
- Integer orderPlanWeight = (Integer) map3.get("orderPlanWeight");
- trucknoMaterial.setSaleOrderMaterialNumber(DataChange.dataToBigDecimal(orderPlanWeight));
- //获取物资理重
- BigDecimal materialTheoreticalWeight = DataChange.dataToBigDecimal(map3.get("materialTheoreticalWeight"));
- //判断是否有物资理重
- if (materialTheoreticalWeight.intValue() != 0) {
- trucknoMaterial.setMaterialTheoreticalWeight(materialTheoreticalWeight);
- }
- //新增车序号与物资中间表
- i += trucknoMaterialMapper.insertSelective(trucknoMaterial);
- }
- // List<Map<String, Object>> mapList = (List<Map<String, Object>>) map.get("mapList");
- // ArrayList<Integer> list = new ArrayList<>();
- // for (Map<String, Object> truckMesMap : mapList) {
- // //修改车序号表
- // BigDecimal saleOrderMaterialId = DataChange.dataToBigDecimal(truckMesMap.get("saleOrderMaterialId"));
- // if (!list.contains(saleOrderMaterialId.intValue())) {
- // //车序号表专用字段
- // BigDecimal saleShipperAddressId = DataChange.dataToBigDecimal(truckMesMap.get("saleShipperAddressId"));
- // String saleDateOfReceipt =(String) truckMesMap.get("saleDateOfReceipt");
- // SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd");
- // Date date = simpleDateFormat.parse(saleDateOfReceipt);
- // String saleOrderConsignee = (String) truckMesMap.get("saleOrderConsignee");
- // String saleOrderConsigneeTel = (String) truckMesMap.get("saleOrderConsigneeTel");
- // AmsSaleOrderMaterial amsSaleOrderMaterial = new AmsSaleOrderMaterial();
- // amsSaleOrderMaterial.setSaleOrderMaterialId(saleOrderMaterialId);
- // amsSaleOrderMaterial.setSaleOrderMaterialTruckNo(DataChange.dataToBigDecimal(truckMesMap.get("cxh")));
- // amsSaleOrderMaterial.setSaleShippingAddressId(saleShipperAddressId);
- // amsSaleOrderMaterial.setSaleDateOfReceipt(date);
- // amsSaleOrderMaterial.setSaleOrderConsignee(saleOrderConsignee);
- // amsSaleOrderMaterial.setSaleOrderConsigneeTel(saleOrderConsigneeTel);
- // i += amsSaleOrderMaterialMapper.updateByPrimaryKeySelective(amsSaleOrderMaterial);
- // list.add(saleOrderMaterialId.intValue());
- // }
- // //修改车车序号物资表
- // AmsSaleTrucknoMaterial amsSaleTrucknoMaterial = new AmsSaleTrucknoMaterial();
- // amsSaleTrucknoMaterial.setTrucknoMaterialId(DataChange.dataToBigDecimal(truckMesMap.get("trucknoMaterialId")));
- // amsSaleTrucknoMaterial.setSaleOrderMaterialNumber(DataChange.dataToBigDecimal(truckMesMap.get("orderPlanWeight")));
- // amsSaleTrucknoMaterial.setMaterialId(DataChange.dataToBigDecimal(truckMesMap.get("materialId")));
- // i += trucknoMaterialMapper.updateByPrimaryKeySelective(amsSaleTrucknoMaterial);
- // }
- return i;
- }
- @Override
- public int deleteAmsSaleOrderBySaleOrderId(BigDecimal saleOrderId) {
- //删除所有从表信息
- //amsSaleOrderMapper.deleteBySaleOrderId(saleOrderId);
- AmsSaleOrder amsSaleOrder = amsSaleOrderMapper.selectByPrimaryKey(saleOrderId);
- amsSaleOrder.setDeleted(new BigDecimal(1));
- return amsSaleOrderMapper.updateByPrimaryKey(amsSaleOrder);
- }
- @Override
- public List<Map<String, Object>> getSaleOrderUpdateLog(Map<String, Object> map) {
- return amsSaleOrderMapper.getSaleOrderUpdateLog(map);
- }
- /**
- * 销售公司查询已审核的订单
- * @param map
- * @return
- */
- @Override
- public List<Map<String, Object>> getSaleOrderListBySaleCompany(Map<String, Object> map) {
- return amsSaleOrderMapper.getSaleOrderListBySaleCompany(map);
- }
- @Override
- public List<Map<String, Object>> getAmsSaleOrderApproved(Map<String, Object> map) {
- return amsSaleOrderMapper.getAmsSaleOrderApproved(map);
- }
- @Override
- public List<Map<String, Object>> getSaleOrderList(Map<String, Object> mapValue) {
- return amsSaleOrderMapper.getSaleOrderList(mapValue);
- }
- public Map<String, Object> getCarrier(Integer addressId) {
- return amsSaleOrderMapper.selectProvince(addressId);
- }
- /**
- * 根据销售订单id查找信息
- */
- @Override
- public Map<String, Object> selectInfoBySaleOrderId(BigDecimal saleOrderId) {
- return amsSaleOrderMapper.selectInfoBySaleOrderId(saleOrderId);
- }
- /**
- * 根据销售订单id查找物资信息
- *
- * @param saleOrderId
- * @return
- */
- @Override
- public List<Map<String, Object>> selectMaterialInfoBySaleOrderId(BigDecimal saleOrderId) {
- return amsSaleOrderMapper.selectMaterialInfoBySaleOrderId(saleOrderId);
- }
- @Override
- public int addAmsDispatchSaleOrder(List<Map<String, Object>> mapValue) {
- int result = 0;
- for (Map<String,Object> map : mapValue) {
- Integer dispatchId = (Integer)map.get("dispatchId");
- AmsDispatchSaleOrder amsDispatchSaleOrder = amsDispatchSaleOrderMapper.selectByPrimaryKey(new BigDecimal(dispatchId));
- amsDispatchSaleOrder.setDispatchStatus(new BigDecimal(0));
- result = amsDispatchSaleOrderMapper.updateByPrimaryKeySelective(amsDispatchSaleOrder);
- }
- return result;
- }
- @Override
- public List<Map<String, Object>> getSaleOrderInfoes(Map<String, Object> map) {
- return amsSaleOrderMapper.getSaleOrderInfoes(map);
- }
- @Override
- public List<Map<String, Object>> getSaleOrderReportedes(Map<String, Object> map) {
- return amsSaleOrderMapper.getSaleOrderReportedes(map);
- }
- @Override
- public List<Map<String, Object>> getSaleOrderListBySaleCompanyes(Map<String, Object> map) {
- List<Map<String, Object>> resultList = amsSaleOrderMapper.getSaleOrderListBySaleCompanyes(map);
- String statusStr;
- for (Map<String, Object> resultMap : resultList) {
- BigDecimal saleOrderStatus = (BigDecimal) resultMap.get("saleOrderStatus");
- // if (saleOrderStatus.intValue() == 2) {
- // statusStr = "销售公司已审核";
- // }
- // else {
- // statusStr = "财务已审核";
- // }
- statusStr = saleOrderStatus.intValue() == 2 ? "销售公司已审批" : "财务已审批";
- resultMap.put("statusStr",statusStr);
- }
- return resultList;
- }
- @Override
- public List<Map<String, Object>> getAmsSaleOrderApprovedes(Map<String, Object> map) {
- return amsSaleOrderMapper.getAmsSaleOrderApprovedes(map);
- }
- /*
- * 根据销售订单主键展示销售基本信息、物资信息
- * */
- @Override
- public List<Map<String, Object>> getSaleOrderAndMaterialById(Map<String,Object> mapValue) {
- List<Map<String, Object>> mapList=amsSaleOrderMapper.getSaleOrderAndMaterialById(mapValue);
- for (Map<String, Object> map : mapList) {
- BigDecimal number;
- BigDecimal materialNumber = (BigDecimal) map.get("materialNumber");
- BigDecimal materialWeight = (BigDecimal) map.get("materialWeight");
- if (materialNumber != null && materialNumber.toString().length() != 0) {
- number = materialNumber;
- }
- else {
- number = materialWeight;
- }
- map.put("number",number);
- }
- return mapList;
- }
- }
|