123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236 |
- package com.qtzl.alterSales.manager.service;
-
- import cn.com.taiji.common.manager.net.http.ServiceHandleException;
- import com.google.common.collect.Lists;
- import com.qtzl.alterSales.dao.entity.second.AflVehicleWhite;
- import com.qtzl.alterSales.dao.entity.second.AflVehicleWhiteHis;
- import com.qtzl.alterSales.dao.repo.jpa.second.AflVehicleWhiteHisRepo;
- import com.qtzl.alterSales.dao.repo.jpa.second.AflVehicleWhiteRepo;
- import com.qtzl.alterSales.manager.enums.IsCollectPasswordServiceEnum;
- import com.qtzl.alterSales.manager.enums.IsCollectSignServiceEnum;
- import com.qtzl.alterSales.manager.enums.IsDeleteEnum;
- import com.qtzl.alterSales.manager.enums.StatusEnum;
- import com.qtzl.alterSales.manager.model.protocol.UcServiceError;
- import com.qtzl.alterSales.manager.model.protocol.sales.AflVehicleWhiteDeleteRequest;
- import com.qtzl.alterSales.manager.model.protocol.sales.AflVehicleWhiteFindPageViewRequest;
- import com.qtzl.alterSales.manager.model.protocol.sales.AflVehicleWhiteSaveOrUpdateRequest;
- import com.qtzl.alterSales.manager.model.protocol.sales.AflVehicleWhiteUpdateStatusRequest;
- import com.qtzl.alterSales.manager.service.third.ConstantConfig;
- import com.qtzl.alterSales.manager.service.third.FmsService;
- import com.qtzl.alterSales.manager.tools.ExcelUtils;
- import org.apache.commons.lang3.StringUtils;
- import org.slf4j.Logger;
- import org.springframework.beans.BeanUtils;
- import org.springframework.data.domain.Sort;
- import org.springframework.stereotype.Service;
-
- import javax.annotation.Resource;
- import javax.persistence.criteria.Predicate;
- import java.io.File;
- import java.util.Date;
- import java.util.List;
- import java.util.UUID;
-
-
- @Service
- public class AflVehicleWhiteServiceImpl implements AflVehicleWhiteService{
-
- @Resource
- AflVehicleWhiteRepo aflVehicleWhiteRepo;
- @Resource
- AflVehicleWhiteHisRepo aflVehicleWhiteHisRepo;
-
- @Resource
- FmsService fmsService;
-
- @Resource
- ConstantConfig constantConfig;
-
- @Override
- public void save(AflVehicleWhiteSaveOrUpdateRequest request) throws ServiceHandleException {
- if (StringUtils.isEmpty(request.getCreator())) {
- throw UcServiceError.BUSINESS_VALIDATE_ERR.toHandleException("创建人不能为空");
- }
- verify(request);
- AflVehicleWhite aflVehicleWhite = aflVehicleWhiteRepo.findByPlateNumAndPlateColor(request.getPlateNum(),request.getPlateColor());
- if (null != aflVehicleWhite) {
- throw UcServiceError.BUSINESS_VALIDATE_ERR.toHandleException("已存在该车牌的白名单配置,不允许重复,请核实");
- }
- aflVehicleWhite = new AflVehicleWhite();
- BeanUtils.copyProperties(request, aflVehicleWhite);
- if (request.getIsCollectPasswordService()==null){
- aflVehicleWhite.setIsCollectPasswordService(IsCollectPasswordServiceEnum.YES.getCode());
- }
- if (request.getIsCollectSignService()==null){
- aflVehicleWhite.setIsCollectSignService(IsCollectSignServiceEnum.YES.getCode());
- }
- aflVehicleWhite.setStatus(StatusEnum.ENABLE.getCode());
- aflVehicleWhite.setIsDelete(IsDeleteEnum.NO.getCode());
- aflVehicleWhite.setInsertTime(new Date());
- aflVehicleWhiteRepo.save(aflVehicleWhite);
- }
-
- @Override
- public void update(AflVehicleWhiteSaveOrUpdateRequest request) throws ServiceHandleException {
- if (StringUtils.isEmpty(request.getUpdator())){
- throw UcServiceError.BUSINESS_VALIDATE_ERR.toHandleException("修改人不能为空");
- }
- verify(request);
- AflVehicleWhite aflVehicleWhite = findById(request.getId());
- if ((!aflVehicleWhite.getPlateNum().equals(request.getPlateNum()))&&
- (!aflVehicleWhite.getPlateColor().equals(request.getPlateColor()))){
- AflVehicleWhite byProductCode = aflVehicleWhiteRepo.findByPlateNumAndPlateColor(request.getPlateNum(),request.getPlateColor());
- if (byProductCode!=null){
- throw UcServiceError.BUSINESS_VALIDATE_ERR.toHandleException("已存在该车牌的白名单配置,不允许重复,请核实");
- }
- }
- AflVehicleWhiteHis aflVehicleWhiteHis = new AflVehicleWhiteHis();
- BeanUtils.copyProperties(aflVehicleWhite,aflVehicleWhiteHis);
- aflVehicleWhiteHis.setId(UUID.randomUUID().toString().replace("-", ""));
- aflVehicleWhiteHisRepo.save(aflVehicleWhiteHis);
- BeanUtils.copyProperties(request,aflVehicleWhite);
- aflVehicleWhite.setUpdator(request.getUpdator());
- aflVehicleWhite.setUpdatedTime(new Date());
- aflVehicleWhiteRepo.save(aflVehicleWhite);
- }
-
- @Override
- public void delete(AflVehicleWhiteDeleteRequest request) throws ServiceHandleException {
- if (StringUtils.isEmpty(request.getUpdator())){
- throw UcServiceError.BUSINESS_VALIDATE_ERR.toHandleException("修改人不能为空");
- }
- AflVehicleWhite aflVehicleWhite = findById(request.getId());
- AflVehicleWhiteHis aflVehicleWhiteHis = new AflVehicleWhiteHis();
- BeanUtils.copyProperties(aflVehicleWhite,aflVehicleWhiteHis);
- try {
- aflVehicleWhiteHis.setId(UUID.randomUUID().toString().replace("-", ""));
- aflVehicleWhiteHisRepo.save(aflVehicleWhiteHis);
- } catch (Exception e) {
- e.printStackTrace();
- throw UcServiceError.BUSINESS_VALIDATE_ERR.toHandleException("记录车辆白名单历史保存错误。");
- }
- aflVehicleWhite.setIsDelete(IsDeleteEnum.YES.getCode());
- aflVehicleWhite.setUpdator(request.getUpdator());
- aflVehicleWhite.setUpdatedTime(new Date());
- try {
- aflVehicleWhiteRepo.save(aflVehicleWhite);
- } catch (Exception e) {
- e.printStackTrace();
- throw UcServiceError.BUSINESS_VALIDATE_ERR.toHandleException("记录车辆白名单删除错误。");
- }
- }
-
- @Override
- public void updateStatus(AflVehicleWhiteUpdateStatusRequest request) throws ServiceHandleException {
- AflVehicleWhite aflVehicleWhite = findById(request.getId());
- if (aflVehicleWhite.getStatus()==request.getStatus()||request.getStatus()==null) {
- throw UcServiceError.BUSINESS_VALIDATE_ERR.toHandleException("状态没有发生改变");
- }
- AflVehicleWhiteHis aflVehicleWhiteHis = new AflVehicleWhiteHis();
- BeanUtils.copyProperties(aflVehicleWhite,aflVehicleWhiteHis);
- aflVehicleWhiteHis.setId(UUID.randomUUID().toString().replace("-", ""));
- try {
- aflVehicleWhiteHisRepo.save(aflVehicleWhiteHis);
- } catch (Exception e) {
- e.printStackTrace();
- throw UcServiceError.BUSINESS_VALIDATE_ERR.toHandleException("记录车辆白名单历史保存错误。");
- }
- aflVehicleWhite.setStatus(request.getStatus());
- aflVehicleWhite.setUpdator(request.getUpdator());
- aflVehicleWhite.setUpdatedTime(new Date());
- aflVehicleWhiteRepo.save(aflVehicleWhite);
- }
-
- public AflVehicleWhite findById(String id) throws ServiceHandleException {
- if (StringUtils.isEmpty(id)) {
- throw UcServiceError.BUSINESS_VALIDATE_ERR.toHandleException("车辆白名单配置编号");
- }
- AflVehicleWhite aflVehicleWhite = aflVehicleWhiteRepo.findByIdAndIsDelete(id);
- if (null == aflVehicleWhite) {
- throw UcServiceError.BUSINESS_VALIDATE_ERR.toHandleException("车辆白名单不存在");
- }
- return aflVehicleWhite;
- }
-
- private void verify(AflVehicleWhiteSaveOrUpdateRequest request) throws ServiceHandleException {
-
- if (StringUtils.isEmpty(request.getPlateNum())) {
- throw UcServiceError.BUSINESS_VALIDATE_ERR.toHandleException("车牌号不能为空");
- }
- if (request.getPlateColor()==null) {
- throw UcServiceError.BUSINESS_VALIDATE_ERR.toHandleException("车牌颜色不能为空");
- }
-
- }
-
- @Override
- public String export(AflVehicleWhiteFindPageViewRequest request, Logger logger) throws ServiceHandleException {
- String pathFile =null;
- try {
- List<AflVehicleWhite> aflVehicleWhites = select(request);
- if (aflVehicleWhites==null||aflVehicleWhites.size()==0) {
- pathFile = ExcelUtils.export(null, "车辆白名单",constantConfig.getFilePath() ,null, AflVehicleWhite.class);
- } else {
- logger.info("选装-车辆白名单管理导出返回参数:{}",aflVehicleWhites.toString());
- pathFile = ExcelUtils.export(null, "车辆白名单",constantConfig.getFilePath(), aflVehicleWhites, AflVehicleWhite.class);
- }
- if (StringUtils.isEmpty(pathFile)){
- throw UcServiceError.BUSINESS_VALIDATE_ERR.toHandleException("车辆白名单管理导出失败");
- }
- String s = null;
- try {
- s = fmsService.uploadFile(constantConfig.getUploadFile(),pathFile, 90000);
- } catch (ServiceHandleException e) {
- logger.error("选装-车辆白名单管理导出失败:{}", e.getMessage());
- throw UcServiceError.BUSINESS_VALIDATE_ERR.toHandleException(e.getMessage());
- }
-
- if (StringUtils.isEmpty(s)){
- throw UcServiceError.BUSINESS_VALIDATE_ERR.toHandleException("车辆白名单管理导出失败");
- }
- return s;
- } catch (Exception e) {
- if (e instanceof ServiceHandleException) {
- throw e;
- }
- logger.error("选装-车辆白名单管理导出失败:{}", e.getMessage());
- throw UcServiceError.BUSINESS_VALIDATE_ERR.toHandleException("车辆白名单管理导出失败");
- }finally {
- File file = new File(pathFile);
- if (file!=null){
- file.delete();
- }
- }
- }
- private List<AflVehicleWhite> select(AflVehicleWhiteFindPageViewRequest request) {
-
- return aflVehicleWhiteRepo.findAll(((root, query, cb) -> {
- List<Predicate> list = Lists.newArrayList();
- if (!StringUtils.isEmpty(request.getPlateNum())) {
- list.add(cb.equal(root.<String>get("plateNum"), request.getPlateNum()));
- }
- if (request.getPlateColor()!=null) {
- list.add(cb.equal(root.<Integer>get("plateColor"), request.getPlateColor()));
- }
- if (request.getStatus()!=null) {
- list.add(cb.equal(root.<Integer>get("status"), request.getStatus()));
- }
- if (request.getInsertTimeEnd()!=null) {
- list.add(cb.lessThanOrEqualTo(root.<Date>get("insertTime"), request.getInsertTimeEnd()));
- }
- if (request.getInsertTimeStart()!=null) {
- list.add(cb.greaterThanOrEqualTo(root.<Date>get("insertTime"), request.getInsertTimeStart()));
- }
- if (request.getIsCollectPasswordService()!=null) {
- list.add(cb.equal(root.<Integer>get("isCollectPasswordService"), request.getIsCollectPasswordService()));
- }
- if (request.getIsCollectSignService()!=null) {
- list.add(cb.equal(root.<Integer>get("isCollectSignService"), request.getIsCollectSignService()));
- }
- //查询为未删除的数据
- list.add(cb.equal(root.<Integer>get("isDelete"), 0));
- Predicate[] p = new Predicate[list.size()];
- return cb.and(list.toArray(p));
- }), Sort.by(Sort.Direction.DESC, "insertTime"));
- }
- }
|