|
@@ -14,14 +14,26 @@ package vip.xiaonuo.biz.modular.passenger.passengercheck.service.impl;
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.collection.CollStreamUtil;
|
|
|
+import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
+import com.alibaba.excel.EasyExcel;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
+import org.springframework.web.multipart.MultipartFile;
|
|
|
+import vip.xiaonuo.biz.modular.dict.service.BizDictService;
|
|
|
+import vip.xiaonuo.biz.modular.passenger.passengercheck.dto.PassengerCheckImportExcelDto;
|
|
|
+import vip.xiaonuo.biz.modular.passenger.passengercheck.listener.PassengerCheckExcelListener;
|
|
|
+import vip.xiaonuo.biz.modular.passenger.passengercheckrecord.entity.PassengerCheckRecord;
|
|
|
+import vip.xiaonuo.biz.modular.passenger.passengercheckrecord.service.PassengerCheckRecordService;
|
|
|
+import vip.xiaonuo.biz.modular.passenger.passengergood.entity.PassengerGood;
|
|
|
+import vip.xiaonuo.biz.modular.passenger.passengergood.service.PassengerGoodService;
|
|
|
import vip.xiaonuo.biz.modular.passenger.passengerinfo.param.PassengerRootPageParam;
|
|
|
import vip.xiaonuo.common.enums.CommonSortOrderEnum;
|
|
|
import vip.xiaonuo.common.exception.CommonException;
|
|
@@ -31,9 +43,11 @@ import vip.xiaonuo.biz.modular.passenger.passengercheck.mapper.PassengerCheckMap
|
|
|
import vip.xiaonuo.biz.modular.passenger.passengercheck.param.PassengerCheckAddParam;
|
|
|
import vip.xiaonuo.biz.modular.passenger.passengercheck.param.PassengerCheckEditParam;
|
|
|
import vip.xiaonuo.biz.modular.passenger.passengercheck.param.PassengerCheckIdParam;
|
|
|
-import vip.xiaonuo.biz.modular.passenger.passengercheck.param.PassengerCheckPageParam;
|
|
|
import vip.xiaonuo.biz.modular.passenger.passengercheck.service.PassengerCheckService;
|
|
|
+import vip.xiaonuo.common.util.CommonIdCardUtil;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Date;
|
|
|
import java.util.List;
|
|
|
|
|
|
/**
|
|
@@ -43,8 +57,16 @@ import java.util.List;
|
|
|
* @date 2024/12/06 15:46
|
|
|
**/
|
|
|
@Service
|
|
|
+@Slf4j
|
|
|
public class PassengerCheckServiceImpl extends ServiceImpl<PassengerCheckMapper, PassengerCheck> implements PassengerCheckService {
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private PassengerGoodService passengerGoodService;
|
|
|
+ @Autowired
|
|
|
+ private PassengerCheckRecordService passengerCheckRecordService;
|
|
|
+ @Autowired
|
|
|
+ private BizDictService bizDictService;
|
|
|
+
|
|
|
@Override
|
|
|
public Page<PassengerCheck> page(PassengerRootPageParam passengerCheckPageParam) {
|
|
|
QueryWrapper<PassengerCheck> queryWrapper = new QueryWrapper<PassengerCheck>().checkSqlInjection();
|
|
@@ -74,9 +96,7 @@ public class PassengerCheckServiceImpl extends ServiceImpl<PassengerCheckMapper,
|
|
|
queryWrapper.lambda().like(PassengerCheck::getCheckStatus, passengerCheckPageParam.getCheckStatus());
|
|
|
}
|
|
|
|
|
|
- if(ObjectUtil.isNotEmpty(passengerCheckPageParam.getBaggage())) {
|
|
|
- queryWrapper.lambda().eq(PassengerCheck::getBaggage, passengerCheckPageParam.getBaggage());
|
|
|
- }
|
|
|
+
|
|
|
|
|
|
if(ObjectUtil.isNotEmpty(passengerCheckPageParam.getFromPort())) {
|
|
|
queryWrapper.lambda().eq(PassengerCheck::getFromPort, passengerCheckPageParam.getFromPort());
|
|
@@ -154,4 +174,112 @@ public class PassengerCheckServiceImpl extends ServiceImpl<PassengerCheckMapper,
|
|
|
}
|
|
|
return passengerCheck;
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void importData(MultipartFile file) {
|
|
|
+ try {
|
|
|
+ PassengerCheckExcelListener listener = new PassengerCheckExcelListener(this::saveExcelData);
|
|
|
+ // 开始读取数据信息
|
|
|
+ EasyExcel.read(file.getInputStream(), PassengerCheckImportExcelDto.class, listener)
|
|
|
+ .sheet(1).headRowNumber(1).doRead();
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("导入旅客查验信息失败", e);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public void saveExcelData(List<PassengerCheckImportExcelDto> importExcelDtos) {
|
|
|
+
|
|
|
+ Date currentDate = new Date();
|
|
|
+ int releaseCount = 5;
|
|
|
+ int xlsbSjCount = -1;
|
|
|
+ int cyZlJsSjCount = 1;
|
|
|
+ int xlWpSjCount = -1;
|
|
|
+ for (PassengerCheckImportExcelDto item : importExcelDtos) {
|
|
|
+
|
|
|
+ PassengerCheck passengerCheck = new PassengerCheck();
|
|
|
+ BeanUtil.copyProperties(item,passengerCheck);
|
|
|
+ //根据身份证号计算年龄
|
|
|
+ passengerCheck.setAge(CommonIdCardUtil.getAgeByIdCard(item.getIdNo())+"");
|
|
|
+ //设置性别
|
|
|
+ passengerCheck.setGender(bizDictService.getNameByLabel("lvke_sex",item.getGender()));
|
|
|
+ //设置国籍
|
|
|
+ passengerCheck.setNationality(bizDictService.getNameByLabel("lvke_city",item.getNationality()));
|
|
|
+ //当前时间
|
|
|
+ passengerCheck.setTravelTime(currentDate);
|
|
|
+ //设置出发港口
|
|
|
+ passengerCheck.setFromPort(bizDictService.getNameByLabel("lvke_departurePort",item.getFromPort()));
|
|
|
+ //设置到达港口
|
|
|
+ passengerCheck.setToPort(bizDictService.getNameByLabel("lvke_arrivingPort",item.getToPort()));
|
|
|
+ //设置查验指令
|
|
|
+ passengerCheck.setCheckInstruction(bizDictService.getNameByLabel("lvke_checkMethod",item.getCheckInstruction()));
|
|
|
+ //设置查验状态
|
|
|
+ passengerCheck.setCheckStatus(bizDictService.getNameByLabel("lvke_checkStatus",item.getCheckStatus()));
|
|
|
+ //发布时间
|
|
|
+ passengerCheck.setReleaseTime(DateUtil.offsetMinute(currentDate,releaseCount++));
|
|
|
+ //查验时间 已查验就有添加查验时间
|
|
|
+ if(!"0".equals(passengerCheck.getCheckStatus()) ){
|
|
|
+ passengerCheck.setCheckTime(DateUtil.offsetMinute(passengerCheck.getReleaseTime(),5));
|
|
|
+ }
|
|
|
+
|
|
|
+ //设置查验方式
|
|
|
+ passengerCheck.setCheckMethod(bizDictService.getNameByLabel("lvke_checkMethod",item.getCheckMethod()));
|
|
|
+ //查验结果
|
|
|
+ passengerCheck.setCheckResult(item.getCheckStatus());
|
|
|
+
|
|
|
+ this.save(passengerCheck);
|
|
|
+
|
|
|
+ if(ObjectUtil.isNotEmpty(item.getGoodName())){
|
|
|
+ PassengerGood passengerGood = new PassengerGood();
|
|
|
+ BeanUtil.copyProperties(item,passengerGood);
|
|
|
+ passengerGood.setPassengerId(passengerCheck.getId());
|
|
|
+ passengerGood.setType("2");
|
|
|
+ //数量默认1
|
|
|
+ passengerGood.setQuantity("1");
|
|
|
+
|
|
|
+ passengerGoodService.save(passengerGood);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ //设置查验步骤
|
|
|
+
|
|
|
+ List<PassengerCheckRecord> allStep = new ArrayList<>();
|
|
|
+
|
|
|
+ PassengerCheckRecord step1 = new PassengerCheckRecord();
|
|
|
+ step1.setPassengerId(passengerCheck.getId());
|
|
|
+ step1.setType("2");
|
|
|
+ step1.setCheckStep("旅客提交行李申报");
|
|
|
+ step1.setCreateTime(DateUtil.offsetDay(currentDate,xlsbSjCount--));
|
|
|
+
|
|
|
+ PassengerCheckRecord step2 = new PassengerCheckRecord();
|
|
|
+ step2.setPassengerId(passengerCheck.getId());
|
|
|
+ step2.setType("2");
|
|
|
+ step2.setCheckStep("查验指令生成");
|
|
|
+ step2.setCreateTime(passengerCheck.getReleaseTime());
|
|
|
+
|
|
|
+ PassengerCheckRecord step3 = new PassengerCheckRecord();
|
|
|
+ step3.setPassengerId(passengerCheck.getId());
|
|
|
+ step3.setType("2");
|
|
|
+ step3.setCheckStep("查验指令接收");
|
|
|
+ step3.setCreateTime(DateUtil.offsetMinute(passengerCheck.getReleaseTime(),cyZlJsSjCount++));
|
|
|
+
|
|
|
+ PassengerCheckRecord step4 = new PassengerCheckRecord();
|
|
|
+ step4.setPassengerId(passengerCheck.getId());
|
|
|
+ step4.setType("2");
|
|
|
+ step4.setCheckStep("行李物品查验");
|
|
|
+ step4.setCreateTime(DateUtil.offsetMinute(passengerCheck.getReleaseTime(),xlWpSjCount--));
|
|
|
+
|
|
|
+ allStep.add(step1);
|
|
|
+ allStep.add(step2);
|
|
|
+ allStep.add(step3);
|
|
|
+ allStep.add(step4);
|
|
|
+
|
|
|
+ passengerCheckRecordService.saveBatch(allStep);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
}
|