dzx 1 anno fa
parent
commit
ae9dbcb5e4

+ 48 - 0
src/main/java/com/xjrsoft/common/enums/GenderIntEnum.java

@@ -0,0 +1,48 @@
+package com.xjrsoft.common.enums;
+
+public enum GenderIntEnum {
+    /**
+     * 男
+     */
+    MALE("SB10001", 1),
+    /**
+     * 女
+     */
+    FEMALE("SB10002", 2);
+
+    final String code;
+    final Integer value;
+
+    public String getCode() {
+        return this.code;
+    }
+
+    public Integer getValue() {
+        return this.value;
+    }
+
+    public static Integer getValue(String code) {
+        for (GenderIntEnum item : values()) {
+            if (item.getCode().equals(code)) {
+                return  item.getValue();
+            }
+        }
+        return null;
+    }
+
+    GenderIntEnum(final String code, final Integer message) {
+        this.code = code;
+        this.value = message;
+    }
+
+    public static String getCode(Integer value) {
+        for (GenderIntEnum item : values()) {
+            if (item.getValue() == value) {
+                return  item.getCode();
+            }
+        }
+        return null;
+    }
+
+
+}

+ 16 - 0
src/main/java/com/xjrsoft/module/hikvision/mapper/HikvisionDataMapper.java

@@ -0,0 +1,16 @@
+package com.xjrsoft.module.hikvision.mapper;
+
+import com.github.yulichang.base.MPJBaseMapper;
+import com.xjrsoft.module.hikvision.entity.HikvisionData;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @title: 寝室床位
+* @Author dzx
+* @Date: 2023-12-27
+* @Version 1.0
+*/
+@Mapper
+public interface HikvisionDataMapper extends MPJBaseMapper<HikvisionData> {
+
+}

+ 1 - 1
src/main/java/com/xjrsoft/module/liteflow/node/ReservationSchoolNode.java

@@ -28,7 +28,7 @@ public class ReservationSchoolNode extends NodeComponent {
         Long formId = Convert.toLong(value);
         if (formId != null) {
             // 数据处理
-            ReservationSchool dataObj = reservationSchoolService.getById(formId);
+            ReservationSchool dataObj = reservationSchoolService.getByIdDeep(formId);
             dataObj.setStatus(1);
             dataObj.setExamStatus(1);
             reservationSchoolService.updateById(dataObj);

+ 7 - 0
src/main/java/com/xjrsoft/module/personnel/service/IReservationSchoolService.java

@@ -37,4 +37,11 @@ public interface IReservationSchoolService extends MPJBaseService<ReservationSch
     * @return
     */
     Boolean delete(List<Long> ids);
+
+    /**
+     * 访问海康预约免登记接口
+     * @param dataObj
+     * @return
+     */
+    Boolean registration(ReservationSchool dataObj);
 }

+ 66 - 12
src/main/java/com/xjrsoft/module/personnel/service/impl/ReservationSchoolServiceImpl.java

@@ -1,7 +1,12 @@
 package com.xjrsoft.module.personnel.service.impl;
 
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.google.gson.JsonObject;
+import com.xjrsoft.common.enums.GenderIntEnum;
+import com.xjrsoft.module.hikvision.entity.HikvisionData;
+import com.xjrsoft.module.hikvision.mapper.HikvisionDataMapper;
+import com.xjrsoft.module.hikvision.util.ApiUtil;
 import com.xjrsoft.module.personnel.entity.ReservationSchoolPeople;
 import com.xjrsoft.module.personnel.mapper.ReservationSchoolPeopleMapper;
 import com.xjrsoft.module.personnel.entity.ReservationSchool;
@@ -10,6 +15,8 @@ import com.xjrsoft.module.personnel.service.IReservationSchoolService;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+
+import java.text.SimpleDateFormat;
 import java.util.List;
 import java.util.Objects;
 import java.util.stream.Collectors;
@@ -24,18 +31,19 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 @Service
 @AllArgsConstructor
 public class ReservationSchoolServiceImpl extends MPJBaseServiceImpl<ReservationSchoolMapper, ReservationSchool> implements IReservationSchoolService {
-    private final ReservationSchoolMapper reservationSchoolReservationSchoolMapper;
+    private final ReservationSchoolMapper reservationSchoolMapper;
 
-    private final ReservationSchoolPeopleMapper reservationSchoolReservationSchoolPeopleMapper;
+    private final ReservationSchoolPeopleMapper reservationSchoolPeopleMapper;
 
+    private final HikvisionDataMapper hikvisionDataMapper;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Boolean add(ReservationSchool reservationSchool) {
-        reservationSchoolReservationSchoolMapper.insert(reservationSchool);
+        reservationSchoolMapper.insert(reservationSchool);
         for (ReservationSchoolPeople reservationSchoolPeople : reservationSchool.getReservationSchoolPeopleList()) {
             reservationSchoolPeople.setReservationSchooId(reservationSchool.getId());
-            reservationSchoolReservationSchoolPeopleMapper.insert(reservationSchoolPeople);
+            reservationSchoolPeopleMapper.insert(reservationSchoolPeople);
         }
 
         return true;
@@ -44,11 +52,11 @@ public class ReservationSchoolServiceImpl extends MPJBaseServiceImpl<Reservation
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Boolean update(ReservationSchool reservationSchool) {
-        reservationSchoolReservationSchoolMapper.updateById(reservationSchool);
+        reservationSchoolMapper.updateById(reservationSchool);
         //********************************* ReservationSchoolPeople  增删改  开始 *******************************************/
         {
             // 查出所有子级的id
-            List<ReservationSchoolPeople> reservationSchoolPeopleList = reservationSchoolReservationSchoolPeopleMapper.selectList(Wrappers.lambdaQuery(ReservationSchoolPeople.class).eq(ReservationSchoolPeople::getReservationSchooId, reservationSchool.getId()).select(ReservationSchoolPeople::getId));
+            List<ReservationSchoolPeople> reservationSchoolPeopleList = reservationSchoolPeopleMapper.selectList(Wrappers.lambdaQuery(ReservationSchoolPeople.class).eq(ReservationSchoolPeople::getReservationSchooId, reservationSchool.getId()).select(ReservationSchoolPeople::getId));
             List<Long> reservationSchoolPeopleIds = reservationSchoolPeopleList.stream().map(ReservationSchoolPeople::getId).collect(Collectors.toList());
             //原有子表单 没有被删除的主键
             List<Long> reservationSchoolPeopleOldIds = reservationSchool.getReservationSchoolPeopleList().stream().map(ReservationSchoolPeople::getId).filter(Objects::nonNull).collect(Collectors.toList());
@@ -58,18 +66,18 @@ public class ReservationSchoolServiceImpl extends MPJBaseServiceImpl<Reservation
             for (ReservationSchoolPeople reservationSchoolPeople : reservationSchool.getReservationSchoolPeopleList()) {
                 //如果不等于空则修改
                 if (reservationSchoolPeople.getId() != null) {
-                    reservationSchoolReservationSchoolPeopleMapper.updateById(reservationSchoolPeople);
+                    reservationSchoolPeopleMapper.updateById(reservationSchoolPeople);
                 }
                 //如果等于空 则新增
                 else {
                     //已经不存在的id 删除
                     reservationSchoolPeople.setReservationSchooId(reservationSchool.getId());
-                    reservationSchoolReservationSchoolPeopleMapper.insert(reservationSchoolPeople);
+                    reservationSchoolPeopleMapper.insert(reservationSchoolPeople);
                 }
             }
             //已经不存在的id 删除
             if(reservationSchoolPeopleRemoveIds.size() > 0){
-                reservationSchoolReservationSchoolPeopleMapper.deleteBatchIds(reservationSchoolPeopleRemoveIds);
+                reservationSchoolPeopleMapper.deleteBatchIds(reservationSchoolPeopleRemoveIds);
             }
         }
         //********************************* ReservationSchoolPeople  增删改  结束 *******************************************/
@@ -80,8 +88,54 @@ public class ReservationSchoolServiceImpl extends MPJBaseServiceImpl<Reservation
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Boolean delete(List<Long> ids) {
-        reservationSchoolReservationSchoolMapper.deleteBatchIds(ids);
-        reservationSchoolReservationSchoolPeopleMapper.delete(Wrappers.lambdaQuery(ReservationSchoolPeople.class).in(ReservationSchoolPeople::getReservationSchooId, ids));
+        reservationSchoolMapper.deleteBatchIds(ids);
+        reservationSchoolPeopleMapper.delete(Wrappers.lambdaQuery(ReservationSchoolPeople.class).in(ReservationSchoolPeople::getReservationSchooId, ids));
+
+        return true;
+    }
+
+    /**
+     * 预约免登记
+     * @param dataObj
+     * @return
+     */
+    @Override
+    public Boolean registration(ReservationSchool dataObj) {
+        String apiPath = "/api/visitor/v1/appointment/registration";
+        ApiUtil apiUtil = new ApiUtil();
+
+        //查询被访人id
+        HikvisionData hikvisionData = hikvisionDataMapper.selectOne(
+                new QueryWrapper<HikvisionData>().lambda()
+                        .eq(HikvisionData::getSourceId, dataObj.getRespondentUserId())
+                        .eq(HikvisionData::getTableName, "base_teacher")
+        );
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
+        List<ReservationSchoolPeople> peopleList = dataObj.getReservationSchoolPeopleList();
+        for (ReservationSchoolPeople people : peopleList) {
+            JsonObject paramJson = new JsonObject();
+            paramJson.addProperty("receptionistId", hikvisionData.getHikvisionId());
+
+            paramJson.addProperty("visitStartTime", sdf.format(dataObj.getStartTime()));
+            paramJson.addProperty("visitEndTime", sdf.format(dataObj.getEndTime()));
+
+            //查询来访人数
+            paramJson.addProperty("personNum", dataObj.getReservationSchoolPeopleList().size());
+            paramJson.addProperty("visitorInfo", dataObj.getReservationSchoolPeopleList().size());
+            paramJson.addProperty("personNum", dataObj.getReservationSchoolPeopleList().size());
+
+            JsonObject visitorInfo = new JsonObject();
+            visitorInfo.addProperty("visitorName", people.getName());
+            visitorInfo.addProperty("gender", GenderIntEnum.getValue(people.getGender()));
+            visitorInfo.addProperty("phoneNo", people.getPhone());
+            if("是".equals(people.getIsCar())){
+                visitorInfo.addProperty("plateNo", people.getPlateNumber());
+            }
+            visitorInfo.addProperty("certificateNo", people.getIdentityCard());
+            paramJson.add("visitorInfo", visitorInfo);
+
+            apiUtil.doPost(apiPath, paramJson.toString(), null);
+        }
 
         return true;
     }