123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503 |
- package com.huimv.receive.service.impl;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.baomidou.mybatisplus.core.toolkit.StringUtils;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import com.huimv.receive.common.token.TokenSign;
- import com.huimv.receive.common.utils.DataUill;
- import com.huimv.receive.common.utils.Print;
- import com.huimv.receive.common.utils.Result;
- import com.huimv.receive.common.utils.ResultCode;
- import com.huimv.receive.entity.*;
- import com.huimv.receive.entity.dto.PcrDto;
- import com.huimv.receive.entity.vo.PcrVo;
- import com.huimv.receive.entity.vo.PcrVo1;
- import com.huimv.receive.mapper.*;
- import com.huimv.receive.service.IBillPcrService;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import javax.annotation.Resource;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.time.LocalDateTime;
- import java.util.*;
- import java.util.concurrent.Executors;
- import java.util.concurrent.ScheduledExecutorService;
- import java.util.concurrent.TimeUnit;
- /**
- * <p>
- * pcr 表 服务实现类
- * </p>
- *
- * @author author
- * @since 2023-07-21
- */
- @Service
- public class BillPcrServiceImpl extends ServiceImpl<BillPcrMapper, BillPcr> implements IBillPcrService {
- @Resource
- private BillPcrMapper billPcrMapper;
- @Override
- public Result listPersonalPcr(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
- String pageNo = paramsMap.get("pageNum");
- String pageSize = paramsMap.get("pageSize");
- String vistitType = paramsMap.get("vistitType");
- Page<BillPcr> page = new Page<>(Integer.parseInt(pageNo), Integer.parseInt(pageSize));
- Page<BillPcr> billPcrPage = billPcrMapper.selectPage(page, new QueryWrapper<BillPcr>().eq(StringUtils.isNotBlank(vistitType),"vistit_type",vistitType).eq("admission_user_id", TokenSign.getMemberIdByJwtToken(httpServletRequest)).orderByDesc("sub_date"));
- QueryWrapper<BillPcr> queryWrapper=new QueryWrapper<>();
- queryWrapper.eq(StringUtils.isNotBlank(vistitType),"vistit_type",vistitType).eq("admission_user_id", TokenSign.getMemberIdByJwtToken(httpServletRequest)).orderByDesc("sub_date");
- return new Result(ResultCode.SUCCESS, billPcrPage,billPcrMapper.selectCount(queryWrapper));
- }
- @Override
- public Result pcrWhole(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
- String farmId = paramsMap.get("farmId");
- Date timesmorning = DataUill.getTimesmorning();
- QueryWrapper<BillPcr> queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("farm_id", farmId).eq("bill_status", 1).ge("sub_date", timesmorning);//今日合格
- Integer count = billPcrMapper.selectCount(queryWrapper);
- QueryWrapper<BillPcr> queryWrapper1 = new QueryWrapper<>();
- queryWrapper1.eq("farm_id", farmId).eq("bill_status", 2).ge("sub_date", timesmorning);//今日异常
- Integer count1 = billPcrMapper.selectCount(queryWrapper1);
- QueryWrapper<BillPcr> queryWrapper2 = new QueryWrapper<>();
- queryWrapper2.eq("farm_id", farmId).eq("bill_status", 3).ge("sub_date", timesmorning);//今日失效
- Integer count2 = billPcrMapper.selectCount(queryWrapper2);
- PcrDto dto = new PcrDto();
- dto.setWholeCount(count + count1);
- dto.setPassCount(count);
- dto.setRefuseCount(count1);
- dto.setLoseCount(count2);
- return new Result(ResultCode.SUCCESS, dto);
- }
- @Override
- public Result listType(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
- String farmId = paramsMap.get("farmId");
- String type = paramsMap.get("type");
- if ("".equals(type) || null == type) {
- type = "1";
- }
- List<PcrVo> pcrVos = null;
- QueryWrapper<BillPcr> queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("farm_id", farmId).in("bill_status", 1, 2);
- if ("1".equals(type)) {
- Date timesmorning = DataUill.getTimesmorning();
- queryWrapper.ge("sub_date", timesmorning);
- } else if ("2".equals(type)) {
- Calendar calendar = Calendar.getInstance();
- calendar.set(Calendar.DATE,calendar.get(Calendar.DATE)-7);
- queryWrapper.ge("sub_date", calendar.getTime());
- } else if ("3".equals(type)) {
- Date monthmorning = DataUill.getTimesMonthmorning();
- queryWrapper.ge("sub_date",monthmorning);
- }
- pcrVos = billPcrMapper.listPcr(queryWrapper);
- return new Result(ResultCode.SUCCESS, pcrVos);
- }
- @Override
- public Result listLocation(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
- String farmId = paramsMap.get("farmId");
- String type = paramsMap.get("type");
- if ("".equals(type) || null == type) {
- type = "1";
- }
- List<PcrVo> pcrVos = null;
- QueryWrapper<BillPcr> queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("farm_id", farmId).in("bill_status", 1, 2);
- if ("1".equals(type)) {
- Date timesmorning = DataUill.getTimesmorning();
- queryWrapper.ge("sub_date", timesmorning);
- } else if ("2".equals(type)) {
- Calendar calendar = Calendar.getInstance();
- calendar.set(Calendar.DATE,calendar.get(Calendar.DATE)-7);
- queryWrapper.ge("sub_date", calendar.getTime());
- } else if ("3".equals(type)) {
- Date monthmorning = DataUill.getTimesMonthmorning();
- queryWrapper.ge("sub_date",monthmorning);
- }
- pcrVos = billPcrMapper.listLocation(queryWrapper);
- return new Result(ResultCode.SUCCESS, pcrVos);
- }
- @Override
- public Result listAll(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
- String farmId = paramsMap.get("farmId");
- String personType = paramsMap.get("personType");
- String type = paramsMap.get("type");
- if ("".equals(type) || null == type) {
- type = "1";
- }
- List<PcrVo1> pcrVos = null;
- QueryWrapper<BillPcr> queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("farm_id", farmId).in("bill_status", 1, 2);
- if ("".equals(personType) || null == personType) {
- }else {
- queryWrapper.eq("vistit_type", personType);
- }
- if ("1".equals(type)) {
- Date timesmorning = DataUill.getTimesmorning();
- queryWrapper.ge("sub_date", timesmorning);
- } else if ("2".equals(type)) {
- Calendar calendar = Calendar.getInstance();
- calendar.set(Calendar.DATE,calendar.get(Calendar.DATE)-7);
- queryWrapper.ge("sub_date", calendar.getTime());
- } else if ("3".equals(type)) {
- Date monthmorning = DataUill.getTimesMonthmorning();
- queryWrapper.ge("sub_date",monthmorning);
- }
- pcrVos = billPcrMapper.listAll(queryWrapper);
- for (PcrVo1 pcrVo : pcrVos) {
- pcrVo.setAllCount(pcrVo.getPassCount() + pcrVo.getRefuseCount());
- }
- return new Result(ResultCode.SUCCESS, pcrVos);
- }
- @Override
- public Result selectList(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
- String farmId = paramsMap.get("farmId");
- String type = paramsMap.get("type");//来访类型
- String destId = paramsMap.get("destId");//目的地
- String startTime = paramsMap.get("startTime");
- String endTime = paramsMap.get("endTime");
- String pageNum = paramsMap.get("pageNum");
- String pageSize = paramsMap.get("pageSize");
- if ("".equals(pageNum) || null == pageNum) {
- pageNum = "1";
- }
- if ("".equals(pageSize) || null == pageSize) {
- pageSize = "10";
- }
- if ("".equals(startTime) || null == startTime) {
- startTime = DataUill.getTimesmorning().toString();
- endTime = LocalDateTime.now() + " 23:59:59";
- }
- QueryWrapper<BillPcr> queryWrapper = new QueryWrapper<>();
- queryWrapper.in("bill_status", 1, 2);
- queryWrapper.eq("farm_id", farmId).eq(StringUtils.isNotBlank(destId),"dest_id", destId).eq(StringUtils.isNotBlank(type),"vistit_type",type);
- queryWrapper.between("check_date", startTime, endTime);
- Page<BillPcr> page = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
- return new Result(ResultCode.SUCCESS, billPcrMapper.selectPage(page, queryWrapper));
- }
- @Override
- public void printPcr(HttpServletResponse httpServletRequest, Map<String, String> paramsMap) throws Exception {
- String ids = paramsMap.get("ids");
- String[] split = ids.split(",");
- List<BillPcr> list = new ArrayList<>();
- for (String s : split) {
- BillPcr admission = billPcrMapper.selectById(s);
- list.add(admission);
- }
- Print.printPcr(list);
- }
- @Autowired
- private BillPcrMapper pcrMapper;
- @Autowired
- private BaseProcessMapper processMapper;
- @Autowired
- private BaseLocationMapper locationMapper;
- @Autowired
- private BillCleanMapper cleanMapper;
- @Autowired
- private BillGoodsInventoryMapper goodsInventoryMapper;
- @Autowired
- private ConfigurationMapper configurationMapper;
- @Override
- public Result list(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
- String farmId = paramsMap.get("farmId");
- String type = paramsMap.get("type");//展示类型
- String pageNum = paramsMap.get("pageNum");
- String pageSize = paramsMap.get("pageSize");
- if ("".equals(pageNum) || null == pageNum) {
- pageNum = "1";
- }
- if ("".equals(pageSize) || null == pageSize) {
- pageSize = "20";
- }
- Page<BillPcr> page = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
- QueryWrapper<BaseLocation> queryWrapper1 = new QueryWrapper<>();
- queryWrapper1.eq("farm_id", farmId).eq("location_type", TokenSign.getWorkIdByJwtToken(httpServletRequest));
- List<BaseLocation> baseLocations = locationMapper.selectList(queryWrapper1);
- List<Integer> ids = new ArrayList<>();
- for (BaseLocation baseLocation : baseLocations) {
- ids.add(baseLocation.getId());
- }
- QueryWrapper<BillPcr> queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("farm_id", farmId).in("test_location_id", ids).orderByDesc("sub_date");
- if ("0".equals(type)) {
- queryWrapper.in("bill_status", 0, 1, 2, 3);
- }
- if ("1".equals(type)) {
- queryWrapper.eq("bill_status", 0);
- }
- if ("2".equals(type)) {
- queryWrapper.eq("bill_status", 1);
- }
- if ("3".equals(type)) {
- queryWrapper.in("bill_status", 2, 3);
- }
- QueryWrapper<BillPcr> queryWrapper2 = new QueryWrapper<>();
- queryWrapper2.eq("farm_id", farmId).in("test_location_id", ids).orderByDesc("sub_date");
- queryWrapper2.eq("bill_status", 0);
- return new Result(ResultCode.SUCCESS, pcrMapper.selectPage(page, queryWrapper),pcrMapper.selectCount(queryWrapper2));
- }
- @Override
- public Result listById(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
- String id = paramsMap.get("id");
- BillPcr billPcr = pcrMapper.selectById(id);
- return new Result(ResultCode.SUCCESS, billPcr);
- }
- @Override
- public Result edit(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) throws ParseException {
- String result = paramsMap.get("result");//1为合格2为异常
- String id = paramsMap.get("id");
- String farmId = paramsMap.get("farmId");
- String date = paramsMap.get("date");
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
- if (StringUtils.isBlank(date)) {
- date = sdf.format(new Date());
- }
- BillPcr billPcr = pcrMapper.selectById(id);
- QueryWrapper<BaseProcess> processQueryWrapper = new QueryWrapper<>();
- processQueryWrapper.eq("farm_id", farmId).eq("id", billPcr.getProcessId());
- BaseProcess baseProcess = processMapper.selectOne(processQueryWrapper);//进程
- QueryWrapper<BaseLocation> locationQueryWrapper = new QueryWrapper<>();
- locationQueryWrapper.eq("farm_id", farmId).eq("id", billPcr.getTestLocationId());
- BaseLocation baseLocation = locationMapper.selectOne(locationQueryWrapper);//当前pcr检测所在的位置
- QueryWrapper<Configuration> queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("farm_id", farmId);
- Configuration configuration = configurationMapper.selectOne(queryWrapper);
- if (baseProcess.getProcessType() == 2 || baseProcess.getProcessType() == 1) {
- return new Result(10001, "修改失败!该申请已提前结束或者被拒绝", false);
- } else {
- if (billPcr.getDestId() >= billPcr.getTestLocationId() || billPcr.getTestLocationId() == 9 || billPcr.getTestLocationId() == 10 || billPcr.getTestLocationId() == 11 || billPcr.getTestLocationId() == 6) { //说明当前不是目的地
- if ("1".equals(result)) {
- billPcr.setBillStatus(1);
- billPcr.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
- billPcr.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
- billPcr.setTestLocation(baseLocation.getLocationName());
- billPcr.setTestLocationId(baseLocation.getId());
- billPcr.setCheckDate(sdf.parse(date));
- billPcr.setPassDate(sdf.parse(sdf.format(new Date())));
- billPcr.setQualifiedDate(configuration.getPcr());
- //通过生成洗消记录
- BillClean billClean = new BillClean();
- billClean.setVistitType(billPcr.getVistitType());
- billClean.setDestName(billPcr.getDestName());
- billClean.setDestId(billPcr.getDestId());
- billClean.setAdmissionUserName(billPcr.getAdmissionUserName());
- billClean.setAdmissionUserId(billPcr.getAdmissionUserId());
- billClean.setVistitDate(billPcr.getVistitDate());
- billClean.setSubDate(LocalDateTime.now());
- billClean.setFarmId(billPcr.getFarmId());
- billClean.setPassUserName(billPcr.getPassUserName());
- billClean.setPassDate(billPcr.getPassDate());
- billClean.setPassUserId(billPcr.getPassUserId());
- billClean.setProcessId(billPcr.getProcessId());
- billClean.setTestLocation(baseLocation.getLocationName());
- billClean.setTestLocationId(baseLocation.getId());
- billClean.setPhone(billPcr.getPhone());
- billClean.setImgStatus(0);
- billClean.setCarNum(billPcr.getCarNum());
- cleanMapper.insert(billClean);
- baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," + sdf.format(new Date()));
- baseProcess.setCurrentLocation(baseProcess.getCurrentLocation() + "," + baseLocation.getLocationName());
- baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId() + "," + baseLocation.getId());
- String status = baseProcess.getCurrentStatus();
- String substring = status.substring(0, status.length() - 1);
- baseProcess.setCurrentStatus(substring + "1," + 0);
- processMapper.updateById(baseProcess);
- pcrMapper.updateById(billPcr);
- ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(10);
- Runnable task = new Runnable() {
- @Override
- public void run() {
- //这里写业务
- billPcr.setBillStatus(3);
- pcrMapper.updateById(billPcr);
- }
- };
- // 设定延迟时间(两小时后执行,单位为秒)
- long delay = 60 * 60 * 2;
- // 执行定时任务
- scheduler.schedule(task, delay, TimeUnit.SECONDS);
- return new Result(10000, "修改成功!", true);
- } else {
- billPcr.setBillStatus(2);
- billPcr.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
- billPcr.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
- billPcr.setTestLocation(baseLocation.getLocationName());
- billPcr.setTestLocationId(baseLocation.getId());
- billPcr.setCheckDate(sdf.parse(date));
- billPcr.setPassDate(sdf.parse(sdf.format(new Date())));
- baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," + sdf.format(new Date()));
- String status = baseProcess.getCurrentStatus();
- String substring = status.substring(0, status.length() - 1);
- baseProcess.setCurrentStatus(substring + "2," + 0);
- if (baseLocation.getId() == 1) {
- //第一次检测不合格
- billPcr.setPcrType(1);
- baseProcess.setCurrentLocation(baseProcess.getCurrentLocation() + ",初级洗消站污区");
- baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId() + ",2");
- }
- if (baseLocation.getId() == 12) {
- //环保车第一次不合格
- billPcr.setPcrType(1);
- baseProcess.setCurrentLocation(baseProcess.getCurrentLocation() + ",销售中转站");
- baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId() + ",2");
- }
- if (baseLocation.getId() == 15) {
- //拉猪车第一次不合格
- billPcr.setPcrType(1);
- baseProcess.setCurrentLocation(baseProcess.getCurrentLocation() + ",销售中转站");
- baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId() + ",2");
- }
- if (baseLocation.getId() == 6) {
- //饲料车第一次不合格
- billPcr.setPcrType(1);
- baseProcess.setCurrentLocation(baseProcess.getCurrentLocation() + ",车辆初级洗消站");
- baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId() + ",2");
- }
- if (baseLocation.getId() == 3) {
- //第二次检测不合格
- baseProcess.setProcessType(2);
- baseProcess.setCurrentLocation(baseProcess.getCurrentLocation());
- baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId());
- }
- if (baseLocation.getId() == 4) {
- //第三次不合格
- baseProcess.setProcessType(2);
- baseProcess.setCurrentLocation(baseProcess.getCurrentLocation());
- baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId());
- }
- processMapper.updateById(baseProcess);
- pcrMapper.updateById(billPcr);
- return new Result(10000, "修改成功!", true);
- }
- } else {
- if ("1".equals(result)) {
- billPcr.setBillStatus(1);
- billPcr.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
- billPcr.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
- billPcr.setTestLocation(baseLocation.getLocationName());
- billPcr.setTestLocationId(baseLocation.getId());
- billPcr.setQualifiedDate(configuration.getPcr());
- billPcr.setCheckDate(sdf.parse(date));
- billPcr.setPassDate(sdf.parse(sdf.format(new Date())));
- baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," + sdf.format(new Date()));
- baseProcess.setCurrentLocation(baseProcess.getCurrentLocation());
- baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId());
- String status = baseProcess.getCurrentStatus();
- String substring = status.substring(0, status.length() - 1);
- baseProcess.setCurrentStatus(substring + "1");
- baseProcess.setProcessType(1);
- processMapper.updateById(baseProcess);
- pcrMapper.updateById(billPcr);
- return new Result(10000, "修改成功!", true);
- } else {
- if (baseLocation.getId() == 1) {
- //第一次检测不合格
- billPcr.setPcrType(1);
- baseProcess.setProcessType(2);
- } else if (baseLocation.getId() == 12) {
- //环保车检测不合格
- billPcr.setPcrType(1);
- baseProcess.setProcessType(2);
- } else if (baseLocation.getId() == 15) {
- //拉猪车检测不合格
- billPcr.setPcrType(1);
- baseProcess.setProcessType(2);
- } else if (baseLocation.getId() == 6) {
- //饲料车检测不合格
- billPcr.setPcrType(1);
- baseProcess.setProcessType(2);
- } else {
- baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," + sdf.format(new Date()));
- baseProcess.setProcessType(2);
- }
- baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," + sdf.format(new Date()));
- baseProcess.setCurrentLocation(baseProcess.getCurrentLocation());
- baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId());
- String status = baseProcess.getCurrentStatus();
- String substring = status.substring(0, status.length() - 1);
- baseProcess.setCurrentStatus(substring + "2," + 0);
- billPcr.setBillStatus(2);
- billPcr.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
- billPcr.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
- billPcr.setTestLocation(baseLocation.getLocationName());
- billPcr.setTestLocationId(baseLocation.getId());
- billPcr.setCheckDate(sdf.parse(date));
- billPcr.setPassDate(sdf.parse(sdf.format(new Date())));
- processMapper.updateById(baseProcess);
- pcrMapper.updateById(billPcr);
- return new Result(10000, "修改成功!", true);
- }
- }
- }
- }
- private void xiugaiPro(BaseProcess baseProcess, BillPcr billPcr) {
- baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," + new Date());
- baseProcess.setCurrentLocation(baseProcess.getCurrentLocation() + "," + billPcr.getTestLocation());
- baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId() + "," + billPcr.getTestLocationId());
- baseProcess.setCurrentStatus(baseProcess.getCurrentStatus() + "," + 2);
- }
- public String add() {
- ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(10);
- Runnable task = new Runnable() {
- @Override
- public void run() {
- //这里写业务
- System.out.println();
- }
- };
- // 设定延迟时间(两小时后执行,单位为秒)
- long delay = 3;
- // 执行定时任务
- scheduler.schedule(task, delay, TimeUnit.SECONDS);
- System.out.println("完结");
- return "成功";
- }
- }
|