From 0399e1f5b530660b5104f89c6484ad8722097918 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期四, 13 十一月 2025 10:23:55 +0800
Subject: [PATCH] 问题修复

---
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java |  120 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 116 insertions(+), 4 deletions(-)

diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java
index 5809375..b81ac6f 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java
@@ -1,5 +1,6 @@
 package com.doumee.service.business.impl;
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.core.constants.ResponseStatus;
@@ -44,9 +45,11 @@
 
 import java.time.LocalDateTime;
 import java.time.ZoneId;
+import java.time.ZonedDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.Date;
+import java.util.stream.Collectors;
 
 /**
  * 杞﹁締_鐢ㄨ溅鐢宠淇℃伅琛⊿ervice瀹炵幇
@@ -569,7 +572,7 @@
                 .set(Approve::getStatus,Constants.FOUR)
                 .set(Approve::getCheckInfo,"鐢ㄨ溅鐢宠鍙栨秷")
                 .in(Approve::getStatus,Constants.ZERO,Constants.ONE)
-               .in(Approve::getObjType,Constants.approveObjectType.cityUseCar,Constants.approveObjectType.unCityUseCar)
+                .in(Approve::getObjType,Constants.approveObjectType.cityUseCar,Constants.approveObjectType.unCityUseCar)
                 .eq(Approve::getObjId,id)
         );
 
@@ -617,19 +620,20 @@
             //鐢宠浜哄彲浠ユ挙閿�鑷繁鐢宠涓殑鐢宠璁板綍
             return  Constants.ONE;
         }
-        if(Constants.equalsInteger(carUseBook.getStatus(),Constants.TWO) && carUseBook.getStartTime()!=null
+        if(Constants.equalsInteger(carUseBook.getStatus(),Constants.TWO)
+                 && carUseBook.getStartTime()!=null
                  && System.currentTimeMillis() >= carUseBook.getStartTime().getTime()){
             //瀹℃壒閫氳繃锛屼絾鏄� 宸插埌鍙戣溅鏃堕棿锛屼笉鍙互鎾ら攢
             return Constants.ZERO;
         }
-        if(!(Constants.equalsInteger(carUseBook.getStatus(),Constants.ZERO))
+        if((Constants.equalsInteger(carUseBook.getStatus(),Constants.ZERO))
                 ||Constants.equalsInteger(carUseBook.getStatus(),Constants.ONE)
                 ||Constants.equalsInteger(carUseBook.getStatus(),Constants.TWO)){
             //瀹℃壒浜哄彲浠ユ挙閿� 鑷繁瀹℃壒鐨勭敵璇疯褰�
             Approve approve = approveJoinMapper.selectOne(new QueryWrapper<Approve>().lambda()
                     .eq(Approve::getIsdeleted,Constants.ZERO)
                     .ge(Approve::getLevel,Constants.ZERO)
-                    .eq(Approve::getChekorId,loginUserInfo.getId())
+                    .eq(Approve::getChekorId,loginUserInfo.getMemberId())
                     .eq(Approve::getObjId,carUseBook.getId())
                     .eq(Approve::getObjType,carUseBook.getType()==0?3:4)
                     .last("limit 1"));
@@ -641,4 +645,112 @@
     }
 
 
+    @Override
+    public void jdyPushCarUseBook(String dataInfo){
+        JSONObject dataInfoJSON = JSONObject.parseObject(dataInfo);
+        if(dataInfoJSON.isEmpty()){
+            return;
+        }
+        String op = dataInfoJSON.getString("op");
+        //鍒犻櫎锛歞ata_remove 鏂板锛歞ata_add 淇敼锛歞ata_update
+        if(StringUtils.isEmpty(op)){
+            return;
+        }
+
+        JSONObject dataJSON = dataInfoJSON.getJSONObject("data");
+        String no = dataJSON.getString("no");
+        if(StringUtils.isEmpty(no)){
+            return;
+        }
+        if(op.equals("data_remove")){
+            carUseBookJoinMapper.update(new UpdateWrapper<CarUseBook>().lambda()
+                            .set(CarUseBook::getEditDate,DateUtil.getCurrDateTime())
+                    .set(CarUseBook::getIsdeleted,Constants.ONE).eq(CarUseBook::getJdyId,no));
+            return;
+        }
+        Integer status = dataJSON.getInteger("flowState");
+        if(Objects.isNull(status)||!(Constants.equalsInteger(status,Constants.ONE)||Constants.equalsInteger(status,Constants.TWO))){
+            return;
+        }
+
+        String carCode = dataJSON.getString("car_no");
+        String startDate = dataJSON.getString("start_date");
+        String endDate = dataJSON.getString("end_date");
+        String typeInfo =   dataJSON.getString("scope");
+        String reason =   dataJSON.getString("reason");
+        String addr =   dataJSON.getString("addr");
+
+        CarUseBook carUseBook = carUseBookJoinMapper.selectOne(new QueryWrapper<CarUseBook>()
+                .lambda().eq(CarUseBook::getJdyId,no).last("limit 1"));
+        if(Objects.isNull(carUseBook)){
+            carUseBook = new CarUseBook();
+            carUseBook.setCreateDate(new Date());
+            carUseBook.setEditDate(new Date());
+            carUseBook.setJdyId(no);
+        }else{
+            carUseBook.setEditDate(new Date());
+        }
+        carUseBook.setIsdeleted(Constants.equalsInteger(status,Constants.ONE)?Constants.ZERO:Constants.ONE);
+        carUseBook.setCarCode(StringUtils.isBlank(carCode)?null:carCode);
+        if(StringUtils.isNotBlank(carCode)){
+            Cars cars = carsMapper.selectOne(new QueryWrapper<Cars>().lambda()
+                    .eq(Cars::getIsdeleted,Constants.ZERO)
+                    .eq(Cars::getCode,carCode).last("limit 1"));
+            carUseBook.setCarId(Objects.nonNull(cars)?cars.getId():null);
+        }
+        carUseBook.setStartTime(StringUtils.isBlank(startDate)?null:DateUtil.getISO8601DateByStr(startDate));
+        carUseBook.setEndTime(StringUtils.isBlank(endDate)?null:DateUtil.getISO8601DateByStr(endDate));
+        carUseBook.setTypeInfo(StringUtils.isBlank(typeInfo)?null:typeInfo);
+        carUseBook.setContent(StringUtils.isBlank(typeInfo)?null:reason);
+        carUseBook.setAddr(StringUtils.isBlank(typeInfo)?null:addr);
+        carUseBook.setStatus(Constants.TWO);
+        JSONObject driverJSON = dataJSON.getJSONObject("driver");
+        if(!driverJSON.isEmpty()){
+            String driverName = driverJSON.getString("name");
+            String driverUserName = driverJSON.getString("username");
+            if(StringUtils.isNotBlank(driverUserName)){
+                Member driverMember = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getIsdeleted,Constants.ZERO).eq(Member::getDdId,driverUserName).last("limit 1 "));
+                if(Objects.nonNull(driverMember)){
+                    carUseBook.setDriverId(driverMember.getId());
+                }
+            }
+        }
+        JSONObject createJSON = dataJSON.getJSONObject("creator");
+        if(!driverJSON.isEmpty()){
+            String createName = createJSON.getString("name");
+            String createUserName = createJSON.getString("username");
+            if(StringUtils.isNotBlank(createUserName)){
+                Member createMember = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getIsdeleted,Constants.ZERO).eq(Member::getDdId,createUserName).last("limit 1 "));
+                if(Objects.nonNull(createMember)){
+                    carUseBook.setMemberId(createMember.getId());
+                }
+            }
+        }
+
+        JSONArray usersArray =   dataJSON.getJSONArray("users");
+        if(!usersArray.isEmpty()){
+            String names = "";
+            List<String> userDDIdList = new ArrayList<>();
+            for (int i = 0; i < usersArray.size(); i++) {
+                JSONObject userJSON = usersArray.getJSONObject(i);
+                String name = createJSON.getString("name");
+                String userName = createJSON.getString("username");
+                userDDIdList.add(userName);
+                names = names +
+                        (StringUtils.isNotBlank(names)?",":"")
+                        + name;
+            }
+            if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(userDDIdList)){
+                List<Member> memberList = memberMapper.selectList(new QueryWrapper<Member>().lambda().eq(Member::getIsdeleted,Constants.ZERO).in(Member::getDdId,userDDIdList));
+                if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(memberList)){
+                    names = String.join(",",memberList.stream().map(i->i.getName()).collect(Collectors.toList()));
+                    carUseBook.setMemberIds(String.join(",",memberList.stream().map(i->i.getId().toString()).collect(Collectors.toList())));
+                }
+            }
+            carUseBook.setMemberNames(names);
+        }
+        carUseBookMapper.insertOrUpdate(carUseBook);
+    }
+    
+    
 }

--
Gitblit v1.9.3