server/system_service/src/main/java/com/doumee/dao/business/dao/CompanyMapper.java
@@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.doumee.dao.business.model.Company; import com.github.yulichang.base.MPJBaseMapper; import java.util.List; @@ -9,6 +10,6 @@ * @author æ±è¹è¹ * @date 2023/11/30 15:33 */ public interface CompanyMapper extends BaseMapper<Company> { public interface CompanyMapper extends MPJBaseMapper<Company> { } server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CarsCloudController.java
@@ -10,6 +10,7 @@ import com.doumee.core.utils.Constants; import com.doumee.dao.business.model.Cars; import com.doumee.service.business.CarsService; import com.doumee.service.business.ParkBookService; import com.doumee.service.business.impl.hksync.fhk.HkSyncVehicleFromHKServiceImpl; import io.swagger.annotations.*; import org.springframework.beans.factory.annotation.Autowired; @@ -31,6 +32,8 @@ @Autowired private CarsService carsService; @Autowired private ParkBookService parkBookService; @Autowired private HkSyncVehicleFromHKServiceImpl hkSyncVehicleFromHKService; @@ -119,6 +122,9 @@ }) @CloudRequiredPermission("business:cars:create") public ApiResponse<String> importExcel (@ApiParam(value = "file") MultipartFile file, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { return ApiResponse.success(carsService.importBatch(file,this.getLoginUser(token))); List<Cars> carsList = carsService.importBatch(file,this.getLoginUser(token)); //弿¥æ´æ°è½¦è¾æææ°æ® carsService.dealCarsAuthBiz(carsList); return ApiResponse.success("å¯¼å ¥æå"); } } server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformGroupCloudController.java
@@ -102,5 +102,4 @@ } } server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/SmsEmailColudController.java
@@ -10,10 +10,12 @@ import com.doumee.core.utils.Constants; import com.doumee.dao.business.model.SmsEmail; import com.doumee.service.business.SmsEmailService; import com.doumee.service.business.third.EmayService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; @@ -32,6 +34,10 @@ @Autowired private SmsEmailService smsEmailService; @Autowired private EmayService emayService; @LoginNoRequired @PreventRepeat @ApiOperation("åéçä¿¡éªè¯ç ") @@ -40,4 +46,15 @@ return ApiResponse.success(smsEmailService.sendSms(smsEmail)); } @LoginNoRequired @PreventRepeat @ApiOperation("èªå®ä¹çä¿¡å 容") @PostMapping("/testSendSms") public ApiResponse testSendSms(@RequestBody SmsEmail smsEmail) { emayService.sendSmsByHk(smsEmail.getPhone(),smsEmail.getContent()); return ApiResponse.success("æä½æå"); } } server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/ChangNeiDiaoduController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/OnSitDispatchController.java ÐÞ¸Ä @@ -7,7 +7,9 @@ import com.doumee.core.utils.Constants; import com.doumee.dao.business.PlatformLogMapper; import com.doumee.dao.business.model.PlatformLog; import com.doumee.dao.business.model.PlatformWarnEvent; import com.doumee.dao.web.response.platformReport.*; import com.doumee.service.business.PlatformLogService; import com.doumee.service.business.third.BoardService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -21,6 +23,7 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.Random; @@ -36,28 +39,19 @@ @RestController @Slf4j @RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/board/api/onSitDispatch") public class OnSitDispatchController extends BaseController { public class ChangNeiDiaoduController extends BaseController { @Autowired private PlatformLogMapper platformLogMapper; @Autowired private BoardService boardService; @LoginNoRequired @ApiOperation("ä¸å¿æ°æ®") @ApiOperation("ä¸å¿æ°æ®-仿¥è½¦è¾ä½ä¸æ åµç»è®¡æ°æ®") @GetMapping("/centerData") public ApiResponse<OnSitDispatchBoardVO> centerData() { OnSitDispatchBoardVO data = boardService.getCnddCenterData(); if(data == null){ data = new OnSitDispatchBoardVO(); data.setPlatformTotal(100); data.setFreePlatform(8); data.setReservationCar(97); data.setWorkingCar(56); data.setLineUpCar(35); } return ApiResponse.success(data); } @@ -66,39 +60,47 @@ @ApiOperation("仿¥æå°å®æè®¢åç»è®¡") @GetMapping("/platformGroupFinish") public ApiResponse<List<PlatformGroupFinishVO>> platformGroupFinish() { List<PlatformGroupFinishVO> platformGroupFinishVOList = new ArrayList<>(); Random random = new Random(); for (int i = 0; i < 3; i++) { PlatformGroupFinishVO platformGroupFinishVO = new PlatformGroupFinishVO(); platformGroupFinishVO.setPlatformGroupName(i+"_æå°ç»åç§°"); platformGroupFinishVO.setPlatformId(i); platformGroupFinishVO.setFinishData(300+random.nextInt(100)); platformGroupFinishVOList.add(platformGroupFinishVO); } List<PlatformGroupFinishVO> platformGroupFinishVOList = boardService.platformGroupFinish(); return ApiResponse.success(platformGroupFinishVOList); } @LoginNoRequired @ApiOperation("仿¥è½¦è¾ä½ä¸æ åµ-è¿Næ¡æ¥å¿å表") @ApiImplicitParams({ @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "size", value = "æ¥è¯¢æè¿è®°å½æ°çè®°å½æ¡æ°ï¼é»è®¤7æ¡", required = false) }) @GetMapping("/carWorkSituation") public ApiResponse<CarWorkSituationVO> carWorkSituation(@RequestParam Integer size) { int limit = Constants.formatIntegerNum(size)>0?size:7; CarWorkSituationVO carWorkSituationVO = boardService.carWorkSituation(limit); return ApiResponse.success(carWorkSituationVO); } @LoginNoRequired @ApiOperation("宿¶åè¦-è¿Næ¡å表") @ApiImplicitParams({ @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "size", value = "æ¥è¯¢æè¿è®°å½æ°çè®°å½æ¡æ°ï¼é»è®¤7æ¡", required = false) }) @GetMapping("/warningList") public ApiResponse<List<PlatformWarnEvent>> warningList(@RequestParam Integer size) { int limit = Constants.formatIntegerNum(size)>0?size:7; List<PlatformWarnEvent> data = boardService.warningList(limit); return ApiResponse.success(data); } @LoginNoRequired @ApiOperation("仿¥æå°å·¥ä½æ¶é¿è¶å¿") @GetMapping("/platformDuration") public ApiResponse<List<PlatformDurationVO>> platformDuration() { List<PlatformDurationVO> platformDurationList = new ArrayList<>(); Random random = new Random(); for (int i = 0; i < 3; i++) { PlatformDurationVO platformDurationVO = new PlatformDurationVO(); platformDurationVO.setPlatformName(i+"_æå°åç§°"); platformDurationVO.setPlatformId(i); platformDurationVO.setWorkTotalTime(100+random.nextInt(100)); platformDurationVO.setOpenTotalTime(200+random.nextInt(100)); platformDurationList.add(platformDurationVO); } List<PlatformDurationVO> platformDurationList = boardService.platformDuration(); return ApiResponse.success(platformDurationList); } @LoginNoRequired @ApiOperation("仿¥æå°å·¥ä½æ¶é¿è¶å¿") @ApiOperation("宿¶ä½ä¸æç") @GetMapping("/workEfficiency") @ApiImplicitParams({ @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "type", value = "æ¥è¯¢ç±»åï¼0=å ¥åºï¼1=åºåº", required = true), @@ -120,27 +122,6 @@ return ApiResponse.success(workEfficiencyVOList); } @LoginNoRequired @ApiOperation("仿¥è½¦è¾ä½ä¸æ åµ") @GetMapping("/carWorkSituation") public ApiResponse<CarWorkSituationVO> carWorkSituation() { Random random = new Random(); CarWorkSituationVO carWorkSituationVO = new CarWorkSituationVO(); carWorkSituationVO.setCallNum(200+random.nextInt(100)); carWorkSituationVO.setFinishNum(100+random.nextInt(100)); carWorkSituationVO.setCallNum(100+random.nextInt(100)); carWorkSituationVO.setWorkingNum(100+random.nextInt(100)); carWorkSituationVO.setFinishNum(100+random.nextInt(100)); carWorkSituationVO.setInNum(100+random.nextInt(100)); List<PlatformLog> platformLogList = platformLogMapper.selectList(new QueryWrapper<PlatformLog>().lambda() .orderByDesc(PlatformLog::getCreateDate) .last(" limit 7 ") ); carWorkSituationVO.setPlatformLogList(platformLogList); return ApiResponse.success(carWorkSituationVO); } server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/request/CarsImport.java
@@ -10,13 +10,15 @@ * @date 2024/01/16 10:03 */ @Data @ApiModel("å工信æ¯å¯¼å ¥") @ApiModel("车è¾ä¿¡æ¯å¯¼å ¥") public class CarsImport { @ExcelColumn(name="*车çå·ç ",value = "code",index = 1) @ExcelColumn(name="*车çå·ç ",value = "code",index = 0) private String code; @ExcelColumn(name="*ä¸å¡ç±»å",value = "categoryName",index = 2) @ExcelColumn(name="*夿³¨",value = "type",index = 1) private String type; @ExcelColumn(name="*车è¾åç±»",value = "categoryName",index = 2) private String categoryName; @ExcelColumn(name="*ç»ç»è·¯å¾",value = "companyName",index = 3) @@ -29,11 +31,11 @@ private String phone; @ExcelColumn(name="æ§å«" , value = "sex",index = 6) private String sex; @ExcelColumn(name="身份è¯å·" , value = "idcard",index = 7) @ExcelColumn(name="身份è¯å·" , value = "idcard",index =7) private String idcard; @ExcelColumn(name="å车åºåç§°" , value = "parkName",index = 8) private String parkName; @ExcelColumn(name="å¼å§æ¶é´" , value = "startTime",index = 9) @ExcelColumn(name="å¼å§æ¶é´" , value = "startTime",index =9) private String startTime; @ExcelColumn(name="ç»ææ¶é´" , value = "endTime",index = 10) private String endTime; server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/ParkBookMapper.java
@@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.doumee.dao.business.model.Empower; import com.doumee.dao.business.model.ParkBook; import com.github.yulichang.base.MPJBaseMapper; import java.util.List; @@ -10,6 +11,6 @@ * @author æ±è¹è¹ * @date 2023/11/30 15:33 */ public interface ParkBookMapper extends BaseMapper<ParkBook> { public interface ParkBookMapper extends MPJBaseMapper<ParkBook> { } server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformWmsDetailMapper.java
@@ -2,11 +2,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.doumee.dao.business.model.PlatformWmsDetail; import com.github.yulichang.base.MPJBaseMapper; /** * @author æ±è¹è¹ * @date 2024/06/28 10:03 */ public interface PlatformWmsDetailMapper extends BaseMapper<PlatformWmsDetail> { public interface PlatformWmsDetailMapper extends MPJBaseMapper<PlatformWmsDetail> { } server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Cars.java
@@ -183,6 +183,9 @@ @ApiModelProperty(value = "ä¸çº§åç±»åç§°", example = "1") @TableField(exist = false) private String catePName; @ApiModelProperty(value = "æ¯å¦æ°å¢ï¼ 0å¦ 1æ¯", example = "1") @TableField(exist = false) private int isnew; @ApiModelProperty(value = "车è¾é¨é¨åç§°", example = "1") @ExcelColumn(name="车è¾ç»ç»é¨é¨åç§°") @@ -193,6 +196,9 @@ @ExcelColumn(name="车è¾é¨é¨å ¨è·¯å¾åç§°") @TableField(exist = false) private String carCompanyNamePath; @ApiModelProperty(value = "车主对象", example = "1") @TableField(exist = false) private Member member; @ApiModelProperty(value = "ææå车åºç¼ç éå", example = "1") @TableField(exist = false) server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWarnEvent.java
@@ -69,8 +69,8 @@ @ExcelColumn(name="ä»»å¡ä¸»é®") private Integer platformJobId; @ApiModelProperty(value = "é¢è¦ç±»å 0 = ä½ä¸è¶ æ¶ ï¼1=åé é误", example = "1") @ExcelColumn(name="é¢è¦ç±»å 0 = ä½ä¸è¶ æ¶ ï¼1=åé é误") @ApiModelProperty(value = "é¢è¦ç±»å 0åé é误 1-åé é误 2-ä½ä¸è¶ æ¶", example = "1") @ExcelColumn(name="é¢è¦ç±»å 0åé é误 1-åé é误 2-ä½ä¸è¶ æ¶") private Integer eventType; @ApiModelProperty(value = "æå°åç§°") server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWmsDetail.java
@@ -1,5 +1,6 @@ package com.doumee.dao.business.model; import com.baomidou.mybatisplus.annotation.TableField; import com.doumee.core.annotation.excel.ExcelColumn; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -87,4 +88,8 @@ @ApiModelProperty(value = "ä¸éæ¶é´") @ExcelColumn(name="ä¸éæ¶é´") private String lockDate; @ApiModelProperty(value = "æåç»åç§°" ,hidden = true) @TableField(exist = false) private String groupName ; } server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/OnSitDispatchBoardVO.java
@@ -28,6 +28,14 @@ @ApiModelProperty(value = "æé车è¾") private int lineUpCar; @ApiModelProperty(value = "è¿å ¥è½¦è¾ä½ä¸æ åµ-ç¾å°æ°") private int signedNum; @ApiModelProperty(value = "è¿å ¥è½¦è¾ä½ä¸æ åµ-å·²å«å·") private int calledNum; @ApiModelProperty(value = "è¿å ¥è½¦è¾ä½ä¸æ åµ-å·²ä½ä¸") private int workedNum; @ApiModelProperty(value = "è¿å ¥è½¦è¾ä½ä¸æ åµ-已宿") private int doneNum; @ApiModelProperty(value = "仿¥æå°å®æè®¢åç»è®¡" , hidden = true) private List<PlatformGroupFinishVO> platformGroupFinishList; @@ -46,9 +54,6 @@ @ApiModelProperty(value = "宿¶æå°ä½ä¸ä¿¡æ¯" , hidden = true) private List<PlatformWorkDataVO> platformWorkDataList; //TODO 宿¶åè¦ä¿¡æ¯ } server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/PlatformDurationVO.java
@@ -25,7 +25,4 @@ @ApiModelProperty(value = "æå°åç§°") private String platformName; } server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CarsService.java
@@ -91,7 +91,7 @@ * @return PageData<Cars> */ PageData<Cars> findPage(PageWrap<Cars> pageWrap); String importBatch(MultipartFile file, LoginUserInfo loginUserInfo); List<Cars> importBatch(MultipartFile file, LoginUserInfo loginUserInfo); /** * æ¡ä»¶ç»è®¡ * @@ -106,4 +106,5 @@ * @return */ PageData<CarsDTO> findCarPage(PageWrap<CarsQuery> pageWrap); void dealCarsAuthBiz(List<Cars> carsList); } server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ParkBookService.java
@@ -99,4 +99,6 @@ void reUpdate(ParkBook parkBook); String batchAuth(Cars parkBook); } server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarsServiceImpl.java
@@ -1,5 +1,7 @@ package com.doumee.service.business.impl; import cn.hutool.core.util.IdcardUtil; import cn.hutool.core.util.PhoneUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -11,14 +13,15 @@ import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Constants; import com.doumee.core.utils.DESUtil; import com.doumee.core.utils.ScientificNotationTUtil; import com.doumee.core.utils.Utils; import com.doumee.dao.admin.request.CarsImport; import com.doumee.dao.admin.request.CarsQuery; import com.doumee.dao.admin.request.MemberImport; import com.doumee.dao.admin.response.CarsDTO; import com.doumee.dao.business.CarsMapper; import com.doumee.dao.business.MemberMapper; import com.doumee.dao.business.*; import com.doumee.dao.business.dao.CompanyMapper; import com.doumee.dao.business.join.CarJoinMapper; import com.doumee.dao.business.join.ParkBookJoinMapper; import com.doumee.dao.business.model.*; @@ -30,11 +33,13 @@ import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import org.springframework.web.multipart.MultipartFile; import java.math.BigDecimal; import java.util.*; /** @@ -53,10 +58,16 @@ @Autowired private CarJoinMapper carJoinMapper; @Autowired private CompanyMapper companyMapper; @Autowired private CategoryMapper categoryMapper; @Autowired private MemberMapper memberMapper; @Autowired private ParkBookJoinMapper parkBookJoinMapper; private ParkBookMapper parkBookJoinMapper; @Autowired private ParksMapper parksMapper; @Override public Integer create(Cars model) { @@ -170,7 +181,72 @@ } return true; } public boolean dealCancelBookBizNoException(String code,Date date){ boolean r = true; List<ParkBook> parkBooks = parkBookJoinMapper.selectJoinList(ParkBook.class,new MPJLambdaWrapper<ParkBook>() .selectAll(ParkBook.class ) .selectAs(Parks::getHkId,ParkBook::getParkHkId ) .leftJoin(Parks.class,Parks::getId,ParkBook::getParkId) .eq(ParkBook::getCarCode,code) .eq(ParkBook::getIsdeleted,Constants.ZERO )); if(parkBooks !=null){ for(ParkBook c : parkBooks){ //妿忶é¢çº¦ï¼åè¿è¡åæ¶å æ if(StringUtils.isNotBlank(c.getParkHkId()) && StringUtils.isNotBlank(c.getCarCode())){ boolean result = HkSyncParkServiceImpl.cancelParkBookHk(c); if(!result){ r= false; c.setHkStatus(Constants.ONE); c.setRemark("åæ¶å æå¤±è´¥"); }else{ c.setHkStatus(Constants.ONE); c.setRemark("åæ¶å ææå"); } }else{ c.setHkStatus(Constants.TWO);//ä¸å失败 c.setRemark("æ æåè½¦åºææä¸åï¼åæ¶å æå¤±è´¥ï¼ç´æ¥å é¤è®°å½"); } if(r){ c.setHkDate(date); c.setIsdeleted(Constants.ONE); parkBookJoinMapper.updateById(c); } } } return r; } @Override @Async public void dealCarsAuthBiz(List<Cars> carsList){ if(carsList== null || carsList.size() == 0 ){ return; } Date date = new Date(); MPJLambdaWrapper<Parks> queryWrapper1 = new MPJLambdaWrapper<>(); queryWrapper1.selectAll(Parks.class); queryWrapper1.eq(Parks::getIsdeleted,Constants.ZERO ); List<Parks> parksList = parksMapper.selectList( queryWrapper1); if(parksList==null ||parksList.size() == 0){ return; } for(Cars model : carsList){ model.setAuthTimeType(Constants.ZERO); model.setStartTime(null); model.setEndTime(null); ParkBookServiceImpl.dealCarAuthByModel(model,model.getEdirot(),parksList,date,parkBookJoinMapper); model.setAuthStatus(Constants.ONE);//å·²ææ carsMapper.update(null,new UpdateWrapper<Cars>().lambda() .eq(Cars::getId,model.getId()) .set(Cars::getEditDate,date) .set(Cars::getEdirot,model.getEdirot()) .set(Cars::getAuthStatus,Constants.ONE) .set(Cars::getStartTime,null) .set(Cars::getEndTime,null) ); } } @Override public void delete(Cars cars) { UpdateWrapper<Cars> deleteWrapper = new UpdateWrapper<>(cars); @@ -394,7 +470,7 @@ @Override @Transactional(rollbackFor = {BusinessException.class,Exception.class}) public String importBatch(MultipartFile file, LoginUserInfo loginUserInfo){ public List<Cars> importBatch(MultipartFile file, LoginUserInfo loginUserInfo){ Boolean importing = (Boolean) redisTemplate.opsForValue().get(Constants.RedisKeys.IMPORTING_CARS); if(importing!=null && importing){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼å·²åå¨è½¦è¾å¯¼å ¥ä»»å¡æ£å¨æ§è¡ä¸ï¼è¯·ç¨ååè¯ï¼"); @@ -404,7 +480,7 @@ ExcelImporter ie = null; List<CarsImport> dataList =null; try { ie = new ExcelImporter(file,1,0); ie = new ExcelImporter(file,0,0); dataList = ie.getDataList(CarsImport.class,null); } catch (Exception e) { e.printStackTrace(); @@ -412,38 +488,191 @@ if(dataList == null || dataList.size() ==0){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼å½å ¥æ°æ®ä¸ºç©ºï¼"); } List<Cars> list = carJoinMapper.selectJoinList(Cars.class,new MPJLambdaWrapper<Cars>() List<Cars> allCarsList = carJoinMapper.selectJoinList(Cars.class,new MPJLambdaWrapper<Cars>() .selectAll(Cars.class) .eq(Cars::getIsdeleted,Constants.ZERO) ); List<Member> memberList = memberMapper.selectList(new QueryWrapper<Member>().lambda() List<Company> companyList = companyMapper.selectJoinList(Company.class,new MPJLambdaWrapper<Company>() .selectAll(Company.class) .eq(Company::getIsdeleted,Constants.ZERO) ); List<Category> categoryList = categoryMapper.selectList(new QueryWrapper<Category>().lambda() .eq(Category::getType,Constants.ONE) .eq(Category::getIsdeleted,Constants.ZERO)); List<Member> memberList = memberMapper.selectJoinList(Member.class,new MPJLambdaWrapper<Member>() .leftJoin(Company.class,Company::getId,Member::getCompanyId) .selectAll(Member.class) .selectAs(Company::getCompanyNamePath,Member::getCompanyNamePath) .eq(Member::getType,Constants.TWO) .eq(Member::getIsdeleted,Constants.ZERO)); List<Cars> newList = new ArrayList<>(); List<Cars> updateList = new ArrayList<>(); for(int i=0;i<dataList.size();i++){ CarsImport model = dataList.get(i); model.setPhone(ScientificNotationTUtil.convertToString(model.getPhone())); /* if(StringUtils.isBlank(model.getCode()) &&StringUtils.isBlank(model.getIdcardNo()) if(StringUtils.isBlank(model.getCode()) &&StringUtils.isBlank(model.getCategoryName()) &&StringUtils.isBlank(model.getType()) &&StringUtils.isBlank(model.getSex()) &&StringUtils.isBlank(model.getIdcard()) &&StringUtils.isBlank(model.getParkName()) &&StringUtils.isBlank(model.getPhone()) &&StringUtils.isBlank(model.getMemberName()) &&StringUtils.isBlank(model.getCompanyName())){ continue; } Cars car = checkModelParam(model,newList,i,loginUserInfo,list,companyList,); newList.add(car);*/ checkModelParam(model,newList,updateList,i,loginUserInfo,allCarsList,memberList,companyList,categoryList); } if(newList == null || newList.size() ==0){ if((newList == null || newList.size() ==0) && updateList.size() == 0){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼å½å ¥æææ°æ®ä¸ºç©ºï¼"); } // dealHkUserBizBatch(newList); return "å¯¼å ¥æå"; if(newList.size()>0){ carsMapper.insert(newList); } if(updateList.size()>0){ for (Cars c : updateList){ carsMapper.updateById(c); } } newList.addAll(updateList); return newList; }catch (BusinessException e){ throw e; }catch (Exception e){ e.printStackTrace(); throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"车è¾ä¿¡æ¯å¯¼å ¥å¤±è´¥ï¼è¯·ç¨åéè¯"); }finally { redisTemplate.delete(Constants.RedisKeys.IMPORTING_CARS); } } private Cars checkModelParam(CarsImport model, List<Cars> newList , List<Cars> updateList ,int index ,LoginUserInfo loginUserInfo ,List<Cars> allList ,List<Member> memberList ,List<Company> companyList ,List<Category> categoryList ) { if(StringUtils.isBlank(model.getCode()) ||StringUtils.isBlank(model.getType()) ||StringUtils.isBlank(model.getCategoryName()) ||StringUtils.isBlank(model.getCompanyName())){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼ç¬¬"+(index+2)+"è¡è½¦è¾ä¿¡æ¯ä¸å®æ´ï¼è¯·æ£æ¥è¡¨æ ¼å 容ï¼"); } if(model.getPhone().indexOf(".")>=Constants.ZERO){ model.setPhone( String.valueOf(new BigDecimal(model.getPhone()).intValue()) ); } for(Cars param: newList){ if(StringUtils.isNotBlank(model.getCode())&&StringUtils.isNotBlank(param.getCode())) { if (StringUtils.equals(model.getCode(), param.getCode())) { throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对ä¸èµ·ï¼ç¬¬" + (index + 3) + "è¡è½¦çå·ã" + model.getCode() + "ãéå¤åºç°ï¼è¯·æ£æ¥è¡¨æ ¼å 容ï¼"); } } } Cars cars = findCarsFromList(model.getCode(),allList); if(cars == null){ cars = new Cars(); cars.setCreator(loginUserInfo.getId()); cars.setCreateDate(new Date()); cars.setIsnew(Constants.ONE); newList.add(cars); }else{ cars.setIsnew(Constants.ZERO); updateList.add(cars); } //ç±»å 0宿³°å ¬å¡è½¦ 1宿³°èªæç©æµè½¦ 2å ¶å® if(StringUtils.equals(model.getType(),"宿³°å ¬å¡è½¦")){ cars.setType(Constants.ZERO); }else if(StringUtils.equals(model.getType(),"宿³°èªæç©æµè½¦")){ cars.setType(Constants.ONE); }else{ cars.setType(Constants.TWO); } cars.setCode(model.getCode()); Company company = findCompanyFromList(model.getCompanyName(),companyList); if(company == null){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼ç¬¬"+(index+2)+"è¡ç»ç»åç§°ã"+model.getCompanyName()+"ãä¸åå¨ï¼è¯·æ£æ¥è¡¨æ ¼å 容ï¼"); } if(StringUtils.isNotBlank(model.getPhone())){ Member member = findMemberFromListByPhone(model.getPhone(),memberList); if(member == null){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼ç¬¬"+(index+2)+"è¡è½¦ä¸»ææºå·ã"+model.getPhone()+"ãä¸åå¨ï¼è¯·æ£æ¥è¡¨æ ¼å 容ï¼"); } cars.setMember(member); cars.setMemberId(member.getId()); } Category category = findCategoryFromListByName(model.getCategoryName(),categoryList); if(category == null){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼ç¬¬"+(index+2)+"è¡è½¦è¾åç±»ã"+model.getCategoryName()+"ãä¸åå¨ï¼è¯·æ£æ¥è¡¨æ ¼å 容ï¼"); } cars.setGroupId(company.getId()); cars.setCateId(category.getId()); cars.setEditDate(new Date()); cars.setEdirot(loginUserInfo.getId()); cars.setIsdeleted(Constants.ZERO); return cars; } private Company findCompanyFromList(String companyName, List<Company> companyList) { if(companyList !=null){ for(Company company : companyList){ if(StringUtils.equals(companyName,company.getCompanyNamePath())){ return company; } } } return null; } private Cars findCarsFromList(String code, List<Cars> list) { if(list !=null){ for(Cars model : list){ if(StringUtils.equals(code,model.getCode())){ return model; } } } return null; } private Member findMemberFromListByPhone(String phone, List<Member> list) { if(list !=null){ for(Member member : list){ if(StringUtils.equals(phone,member.getPhone())){ return member; } } } return null; } private Category findCategoryFromListByName(String name, List<Category> list) { String[] names = name.split("/"); if(names ==null || names.length !=2 ){ return null; } Category pc = null; if(list !=null){ for(Category model : list){ if(StringUtils.equals(names[0],model.getName()) && model.getParentId() ==null){ pc = model; break; } } if(pc ==null){ return null; } for(Category model : list){ if(StringUtils.equals(names[1],model.getName()) && Constants.equalsInteger(model.getParentId() ,pc.getId())){ pc = model; } } return pc; } return null; } } server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java
@@ -323,7 +323,7 @@ .select("t4.company_name_path",HiddenDanger::getCompanyName); queryWrapper.leftJoin(Member.class,Member::getId,HiddenDanger::getMemberId) .leftJoin(Member.class,Member::getId,HiddenDanger::getCheckUserId) .leftJoin(HiddenDangerParam.class,HiddenDangerParam::getId,HiddenDanger::getAreaId) .leftJoin(HiddenDangerParam.class,HiddenDangerParam::getId,HiddenDanger::getCateId) .leftJoin("company t4 on t1.company_id=t4.id") .leftJoin("company t5 on t3.company_id=t5.id"); server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ParkBookServiceImpl.java
@@ -22,6 +22,7 @@ import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; @@ -121,6 +122,7 @@ } hkSyncParkService.syncParkBookBySingleModel(model); } @Override @Transactional(rollbackFor = {Exception.class,BusinessException.class}) public String batchAuth(Cars cars) { @@ -180,7 +182,7 @@ model.setAuthTimeType(cars.getAuthTimeType()); model.setStartTime(startTime); model.setEndTime(endTime); dealCarAuthByModel(model,cars.getLoginUserInfo(),parksList,date); dealCarAuthByModel(model,cars.getLoginUserInfo().getId(),parksList,date,parkBookMapper); model.setAuthStatus(Constants.ONE);//å·²ææ carsMapper.update(null,new UpdateWrapper<Cars>().lambda() .eq(Cars::getId,model.getId()) @@ -195,7 +197,7 @@ } private int dealCarAuthByModel(Cars model, LoginUserInfo loginUserInfo, List<Parks> parksList,Date date) { public static int dealCarAuthByModel(Cars model, Integer userId, List<Parks> parksList,Date date,ParkBookMapper parkBookMapper) { //å é¤è½¦éåºè®°å½æ°æ® parkBookMapper.update(null,new UpdateWrapper<ParkBook>().lambda() .eq(ParkBook::getCarCode,model.getCode()) @@ -208,8 +210,8 @@ ParkBook parkBook = new ParkBook(); parkBook.setIsdeleted(Constants.ZERO); parkBook.setCreateDate(date); parkBook.setCreator(loginUserInfo.getId()); parkBook.setEditor(loginUserInfo.getId()); parkBook.setCreator(userId); parkBook.setEditor(userId); parkBook.setEditDate(date); parkBook.setCarCode(model.getCode()); parkBook.setParkId(parks.getId()); server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java
@@ -15,14 +15,10 @@ import com.doumee.core.haikang.model.param.respose.PageSensorStatusResponse; import com.doumee.core.haikang.service.HKService; import com.doumee.core.utils.Constants; import com.doumee.dao.business.PlatformJobMapper; import com.doumee.dao.business.PlatformLogMapper; import com.doumee.dao.business.PlatformMapper; import com.doumee.dao.business.model.Platform; import com.doumee.dao.business.model.PlatformJob; import com.doumee.dao.web.response.platformReport.CarmeraListVO; import com.doumee.dao.web.response.platformReport.OnSitDispatchBoardVO; import com.doumee.dao.web.response.platformReport.RegionTreeVO; import com.doumee.core.utils.DateUtil; import com.doumee.dao.business.*; import com.doumee.dao.business.model.*; import com.doumee.dao.web.response.platformReport.*; import com.doumee.service.business.third.BoardService; import com.github.yulichang.wrapper.MPJLambdaWrapper; import lombok.extern.slf4j.Slf4j; @@ -30,8 +26,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; import java.util.*; import java.util.stream.Collectors; /** @@ -45,7 +40,11 @@ @Autowired private PlatformLogMapper platformLogMapper; @Autowired private PlatformWarnEventMapper platformWarnEventMapper; @Autowired private PlatformJobMapper platformJobMapper; @Autowired private PlatformWmsDetailMapper platformWmsDetailMapper; @Autowired private PlatformMapper platformMapper; /** @@ -242,6 +241,77 @@ return allList; } @Override public List<PlatformGroupFinishVO> platformGroupFinish(){ List<PlatformGroupFinishVO> data = new ArrayList<>(); List<PlatformWmsDetail> jobList = platformWmsDetailMapper.selectJoinList(PlatformWmsDetail.class, new MPJLambdaWrapper<PlatformWmsDetail>() .selectSum( PlatformWmsDetail::getIoQty) .selectAs(PlatformGroup::getName, PlatformWmsDetail::getGroupName) .leftJoin(PlatformJob.class,PlatformJob::getId,PlatformWmsDetail::getJobId) .rightJoin(PlatformGroup.class,PlatformGroup::getId,PlatformJob::getPlatformGroupId) .eq(PlatformWmsDetail::getIsdeleted, Constants.ZERO) .eq(PlatformJob::getIsdeleted, Constants.ZERO) .in(PlatformJob::getStatus, Constants.PlatformJobStatus.DONE.getKey() , Constants.PlatformJobStatus.AUTHED_LEAVE.getKey() , Constants.PlatformJobStatus.LEAVED.getKey()) .apply("to_days(t1.create_data) = to_days(now())") .groupBy(PlatformGroup::getId) ); if(jobList!=null){ for(PlatformWmsDetail d : jobList){ PlatformGroupFinishVO t = new PlatformGroupFinishVO(); t.setFinishData(Constants.formatBigdecimal(d.getIoQty()).intValue()); t.setPlatformGroupName(d.getGroupName()); } } return data; } @Override public CarWorkSituationVO carWorkSituation(int limit){ CarWorkSituationVO carWorkSituationVO = new CarWorkSituationVO(); List<PlatformLog> platformLogList = platformLogMapper.selectList(new QueryWrapper<PlatformLog>().lambda() .orderByDesc(PlatformLog::getCreateDate) .last(" limit "+limit) ); carWorkSituationVO.setPlatformLogList(platformLogList); return carWorkSituationVO; } @Override public List<PlatformDurationVO> platformDuration(){ List<PlatformDurationVO> platformDurationList = new ArrayList<>(); List<Platform> jobList = platformMapper.selectJoinList(Platform.class, new MPJLambdaWrapper<Platform>() .selectAll( Platform.class) .select(" ( select ROUND( ifnull(SUM(pl.PARAM3),0)/60 , 2 ) from platform_log pl where pl.remark = t.id and to_days(pl.CREATE_DATE) =to_days now())",Platform::getWorkCountTime) .eq(Platform::getIsdeleted, Constants.ZERO) ); if(jobList!=null){ //æå·¥ä½æ¶é¿ç´¯è®¡ååºæåº Collections.sort(jobList, new Comparator<Platform>() { @Override public int compare(Platform o1, Platform o2) { return Constants.formatBigdecimal(o2.getWorkCountTime())-Constants.formatBigdecimal(o1.getWorkCountTime()); } }); for(Platform model : jobList){ PlatformDurationVO data = new PlatformDurationVO(); data.setPlatformId(model.getId()); data.setPlatformName(model.getName()); data.setWorkTotalTime(Constants.formatBigdecimal(model.getWorkCountTime()).intValue()); platformDurationList.add(data); } } return platformDurationList; } @Override public List<PlatformWarnEvent> warningList(int limit){ List<PlatformWarnEvent> platformLogList = platformWarnEventMapper.selectList(new QueryWrapper<PlatformWarnEvent>().lambda() .eq(PlatformWarnEvent::getIsdeleted,Constants.ZERO) .orderByDesc(PlatformWarnEvent::getCreateDate) .last(" limit "+limit) ); return platformLogList; } @Override public OnSitDispatchBoardVO getCnddCenterData(){ OnSitDispatchBoardVO data = new OnSitDispatchBoardVO(); //æå°æ»æ° @@ -268,20 +338,75 @@ //-------------TODO----------ãçæ¿ãç±ç¡®è®¤éæ±-------------- // * 0å¾ ç¡®è®¤ 1å¾ ç¾å° 2çå¾ å«å· 3å ¥åçå¾ 4å·²å«å· 5ä½ä¸ä¸ 6ä½ä¸å®æ 7è½¬ç§»ä¸ 8å¼å¸¸æèµ· 9å·²ææç¦»å 10已离å 11 å·²è¿å· 12已忶 for(PlatformJob model : jobList){ //é¢çº¦è½¦è¾ if(Constants.equalsInteger(model.getStatus(),Constants.PlatformJobStatus.WAIT_CONFIRM.getKey()) ||Constants.equalsInteger(model.getStatus(),Constants.PlatformJobStatus.WART_SIGN_IN.getKey())){ //å¾ ç¡®è®¤ ï¼é¢çº¦è½¦ï¼ if( Constants.equalsInteger(model.getStatus(),Constants.PlatformJobStatus.WAIT_CONFIRM.getKey())){ data.setReservationCar(data.getReservationCar()+Constants.formatIntegerNum(model.getCountum())); } // ä½ä¸è½¦è¾ //å¾ ç¾å°ï¼é¢çº¦è½¦ï¼ if( Constants.equalsInteger(model.getStatus(),Constants.PlatformJobStatus.WART_SIGN_IN.getKey())){ data.setReservationCar(data.getReservationCar()+Constants.formatIntegerNum(model.getCountum())); } //çå¾ å«å·ï¼é¢çº¦è½¦ãç¾å°æ°ãæéè½¦ï¼ if(Constants.equalsInteger(model.getStatus(),Constants.PlatformJobStatus.WAIT_CALL.getKey())){ data.setSignedNum(data.getSignedNum()+Constants.formatIntegerNum(model.getCountum())); data.setReservationCar(data.getReservationCar()+Constants.formatIntegerNum(model.getCountum())); data.setLineUpCar(data.getLineUpCar()+Constants.formatIntegerNum(model.getCountum())); } //å ¥åçå¾ ï¼é¢çº¦è½¦ãç¾å°æ°ï¼ if( Constants.equalsInteger(model.getStatus(),Constants.PlatformJobStatus.IN_WAIT.getKey())){ data.setSignedNum(data.getSignedNum()+Constants.formatIntegerNum(model.getCountum())); data.setReservationCar(data.getReservationCar()+Constants.formatIntegerNum(model.getCountum())); } //å·²å«å·ï¼é¢çº¦è½¦ãç¾å°æ°ãå·²å«å·ï¼ if(Constants.equalsInteger(model.getStatus(),Constants.PlatformJobStatus.CALLED.getKey()) ){ data.setSignedNum(data.getSignedNum()+Constants.formatIntegerNum(model.getCountum())); data.setReservationCar(data.getReservationCar()+Constants.formatIntegerNum(model.getCountum())); data.setCalledNum(data.getCalledNum()+Constants.formatIntegerNum(model.getCountum())); } // ä½ä¸è½¦è¾ï¼é¢çº¦è½¦ãç¾å°æ°ãå·²å«å·ãä½ä¸è½¦ï¼ if(Constants.equalsInteger(model.getStatus(),Constants.PlatformJobStatus.WORKING.getKey())){ data.setSignedNum(data.getSignedNum()+Constants.formatIntegerNum(model.getCountum())); data.setReservationCar(data.getReservationCar()+Constants.formatIntegerNum(model.getCountum())); data.setCalledNum(data.getCalledNum()+Constants.formatIntegerNum(model.getCountum())); data.setWorkedNum(data.getWorkedNum()+Constants.formatIntegerNum(model.getCountum())); } // ä½ä¸å®æï¼é¢çº¦è½¦ãç¾å°æ°ãå·²å«å·ãä½ä¸è½¦ãå·²å®æï¼ if(Constants.equalsInteger(model.getStatus(),Constants.PlatformJobStatus.DONE.getKey())){ data.setSignedNum(data.getSignedNum()+Constants.formatIntegerNum(model.getCountum())); data.setReservationCar(data.getReservationCar()+Constants.formatIntegerNum(model.getCountum())); data.setCalledNum(data.getCalledNum()+Constants.formatIntegerNum(model.getCountum())); data.setWorkedNum(data.getWorkedNum()+Constants.formatIntegerNum(model.getCountum())); data.setDoneNum(data.getDoneNum()+Constants.formatIntegerNum(model.getCountum())); } // 转移ä¸ï¼é¢çº¦è½¦ãç¾å°æ°ãæéè½¦ï¼ if(Constants.equalsInteger(model.getStatus(),Constants.PlatformJobStatus.TRANSFERING.getKey())){ data.setSignedNum(data.getSignedNum()+Constants.formatIntegerNum(model.getCountum())); data.setReservationCar(data.getReservationCar()+Constants.formatIntegerNum(model.getCountum())); data.setLineUpCar(data.getLineUpCar()+Constants.formatIntegerNum(model.getCountum())); } // å·²ææç¦»åï¼é¢çº¦è½¦ãç¾å°æ°ãå·²å«å·ãä½ä¸è½¦ãå·²å®æï¼ if(Constants.equalsInteger(model.getStatus(),Constants.PlatformJobStatus.AUTHED_LEAVE.getKey())){ data.setSignedNum(data.getSignedNum()+Constants.formatIntegerNum(model.getCountum())); data.setReservationCar(data.getReservationCar()+Constants.formatIntegerNum(model.getCountum())); data.setCalledNum(data.getCalledNum()+Constants.formatIntegerNum(model.getCountum())); data.setWorkedNum(data.getWorkedNum()+Constants.formatIntegerNum(model.getCountum())); data.setDoneNum(data.getDoneNum()+Constants.formatIntegerNum(model.getCountum())); } // 已离å if(Constants.equalsInteger(model.getStatus(),Constants.PlatformJobStatus.LEAVED.getKey())){ data.setWorkingCar(data.getWorkingCar()+Constants.formatIntegerNum(model.getCountum())); } //æéè½¦è¾ if(Constants.equalsInteger(model.getStatus(),Constants.PlatformJobStatus.WAIT_CALL.getKey()) ||Constants.equalsInteger(model.getStatus(),Constants.PlatformJobStatus.IN_WAIT.getKey())){ data.setLineUpCar(data.getLineUpCar()+Constants.formatIntegerNum(model.getCountum())); // å·²è¿å·ï¼é¢çº¦è½¦ãç¾å°æ°ãæéè½¦ï¼ if(Constants.equalsInteger(model.getStatus(),Constants.PlatformJobStatus.OVER_NUMBER.getKey())){ data.setSignedNum(data.getSignedNum()+Constants.formatIntegerNum(model.getCountum())); data.setReservationCar(data.getReservationCar()+Constants.formatIntegerNum(model.getCountum())); data.setLineUpCar(data.getLineUpCar()+Constants.formatIntegerNum(model.getCountum())); } // 已忶(é¢çº¦è½¦ï¼ if(Constants.equalsInteger(model.getStatus(),Constants.PlatformJobStatus.CANCEL.getKey())){ data.setReservationCar(data.getReservationCar()+Constants.formatIntegerNum(model.getCountum())); } } } server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/BoardService.java
@@ -10,9 +10,8 @@ import com.doumee.core.tms.model.response.TmsLockStatusQueryResponse; import com.doumee.core.tms.model.response.TmsOrderInfoResponse; import com.doumee.core.tms.model.response.TmsOrderListResponse; import com.doumee.dao.web.response.platformReport.CarmeraListVO; import com.doumee.dao.web.response.platformReport.OnSitDispatchBoardVO; import com.doumee.dao.web.response.platformReport.RegionTreeVO; import com.doumee.dao.business.model.PlatformWarnEvent; import com.doumee.dao.web.response.platformReport.*; import java.util.List; @@ -37,4 +36,12 @@ List<PageSensorStatusResponse> sensorStatusList(); OnSitDispatchBoardVO getCnddCenterData(); List<PlatformGroupFinishVO> platformGroupFinish(); CarWorkSituationVO carWorkSituation(int limit); List<PlatformWarnEvent> warningList(int limit); List<PlatformDurationVO> platformDuration(); }