lihao16 1 year ago
parent
commit
5183d02c0f

+ 2 - 0
inspur-ai/src/main/java/com/inspur/face/domain/PartyFaceRecognition.java

@@ -44,4 +44,6 @@ public class PartyFaceRecognition extends BaseEntity
 
     private Long meetingId;
 
+    private Integer newAddNum;
+
 }

+ 2 - 0
inspur-ai/src/main/java/com/inspur/face/domain/PartyMemberFace.java

@@ -22,5 +22,7 @@ public class PartyMemberFace extends PartyFaceRecognition{
 
     private String picPath;
 
+    private Integer newAddNum;
+
 
 }

+ 9 - 3
inspur-ai/src/main/resources/mapper/PartyFaceRecognitionMapper.xml

@@ -16,10 +16,11 @@
         <result property="userTableId"    column="user_table_id"    />
         <result property="memberId"    column="member_id"    />
         <result property="meetingId"    column="meeting_id"    />
+        <result property="newAddNum"    column="new_add_num"    />
     </resultMap>
 
     <sql id="selectPartyFaceRecognitionVo">
-        select id, req_param, rsp_code, rsp_msg, op_type, op_status, create_time, update_time,user_table_id,member_id,meeting_id from party_face_recognition
+        select id, req_param, rsp_code, rsp_msg, op_type, op_status, create_time, update_time,user_table_id,member_id,meeting_id,new_add_num from party_face_recognition
     </sql>
 
     <select id="selectPartyFaceRecognitionList" parameterType="PartyFaceRecognition" resultMap="PartyFaceRecognitionResult">
@@ -33,6 +34,7 @@
             <if test="userTableId != null "> and user_table_id = #{userTableId}</if>
             <if test="memberId != null "> and member_id = #{memberId}</if>
             <if test="meetingId != null "> and meeting_id = #{meetingId}</if>
+            <if test="newAddNum != null "> and new_add_num = #{newAddNum}</if>
         </where>
         order by create_time desc
     </select>
@@ -55,6 +57,7 @@
             <if test="userTableId != null">user_table_id,</if>
             <if test="memberId != null">member_id,</if>
             <if test="meetingId != null">meeting_id,</if>
+            <if test="newAddNum != null">new_add_num,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="reqParam != null">#{reqParam},</if>
@@ -67,6 +70,7 @@
             <if test="userTableId != null">#{userTableId},</if>
             <if test="memberId != null">#{memberId},</if>
             <if test="meetingId != null">#{meetingId},</if>
+            <if test="newAddNum != null">#{newAddNum},</if>
         </trim>
     </insert>
 
@@ -82,6 +86,7 @@
             <if test="updateTime != null">update_time = #{updateTime},</if>
             <if test="memberId != null">member_id = #{memberId},</if>
             <if test="meetingId != null">meeting_id = #{meetingId},</if>
+            <if test="newAddNum != null">new_add_num = #{newAddNum},</if>
         </trim>
         where id = #{id}
     </update>
@@ -110,7 +115,8 @@
             fr.rsp_code AS rspCode,
             fr.rsp_msg AS rspMsg,
             fr.create_time AS createTime,
-            fr.update_time AS updateTime
+            fr.update_time AS updateTime,
+            fr.new_add_num as newAddNum
         FROM
             party_member_manage mm
         LEFT JOIN (select * from party_face_recognition where op_type = #{opType}) fr ON mm.id = fr.member_id
@@ -121,4 +127,4 @@
             <if test="userTableId != null "> and mm.user_table_id = #{userTableId}</if>
         </where>
     </select>
-</mapper>
+</mapper>

+ 28 - 0
inspur-party/src/main/java/com/inspur/domain/partywork/PartyMeetingImage.java

@@ -0,0 +1,28 @@
+package com.inspur.domain.partywork;
+
+import com.inspur.common.annotation.Excel;
+import com.inspur.common.core.domain.BaseEntity;
+import lombok.Data;
+
+/**
+ * 会议图片关联对象 party_meeting_image
+ *
+ * @author inspur
+ * @date 2024-08-28
+ */
+@Data
+public class PartyMeetingImage extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 主键ID */
+    private Long id;
+
+    /** 图片路径 */
+    @Excel(name = "图片路径")
+    private String picPath;
+
+    /** 会议ID */
+    @Excel(name = "会议ID")
+    private Long meetingId;
+}

+ 3 - 1
inspur-party/src/main/java/com/inspur/domain/partywork/PartyMeetingInfo.java

@@ -10,7 +10,7 @@ import lombok.Data;
 
 /**
  * 党员会议对象 party_meeting_info
- * 
+ *
  * @author inspur
  * @date 2022-09-21
  */
@@ -221,4 +221,6 @@ public class PartyMeetingInfo extends BaseEntity
     private List<String> materialOptions;
 
     private List<PartyMeetingFollow> followList;
+
+    private List<PartyMeetingImage> imageList;
 }

+ 24 - 22
inspur-party/src/main/java/com/inspur/dt/service/impl/DengTaSyncServiceImpl.java

@@ -8,16 +8,10 @@ import com.alibaba.fastjson2.JSONArray;
 import com.alibaba.fastjson2.JSONObject;
 import com.inspur.common.utils.DateUtils;
 import com.inspur.common.utils.StringUtils;
-import com.inspur.domain.partywork.PartyMeetingInfo;
-import com.inspur.domain.partywork.PartyMemberManage;
-import com.inspur.domain.partywork.PartyOrgManage;
-import com.inspur.domain.partywork.PartyOrgPost;
+import com.inspur.domain.partywork.*;
 import com.inspur.dt.domain.*;
 import com.inspur.dt.service.DengTaSyncService;
-import com.inspur.mapper.PartyMeetingInfoMapper;
-import com.inspur.mapper.PartyMemberManageMapper;
-import com.inspur.mapper.PartyOrgManageMapper;
-import com.inspur.mapper.PartyOrgPostMapper;
+import com.inspur.mapper.*;
 import com.inspur.system.domain.SysTableList;
 import com.inspur.system.domain.SysUserTableRel;
 import com.inspur.system.service.ISysUserTableRelService;
@@ -34,6 +28,7 @@ import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
 import java.util.UUID;
+import java.util.stream.Collectors;
 
 /**
  * @author lihao16
@@ -58,6 +53,9 @@ public class DengTaSyncServiceImpl implements DengTaSyncService {
     @Autowired
     private ISysUserTableRelService sysUserTableRelService;
 
+    @Autowired
+    private PartyMeetingImageMapper partyMeetingImageMapper;
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public PartyOrgManage orgPull(String orgId,Long userTableId) throws ParseException {
@@ -393,16 +391,6 @@ public class DengTaSyncServiceImpl implements DengTaSyncService {
             }else if (5 == meetingInfo.getType()) {
                 meetingInfo.setUserTableId(meetingUTId5);
             }
-            JSONArray picArray = meeting.getJSONArray("picsPath");
-            if (!CollectionUtils.isEmpty(picArray)) {
-                StringBuffer picSb = new StringBuffer();
-                for (int j = 0; j < picArray.size(); j++) {
-                    picSb.append(picArray.getString(j)).append(",");
-                }
-                meetingInfo.setPicsPath(picSb.toString().substring(0, picSb.length() - 1));
-            }else {
-                meetingInfo.setPicsPath(null);
-            }
             //查询数据库中是否存在
             PartyMeetingInfo dbMeeting = partyMeetingInfoMapper.selectPartyMeetingByDtIdAndUid(meetingInfo.getDtId(),meetingInfo.getUserTableId());
             if (null == dbMeeting) {
@@ -413,6 +401,17 @@ public class DengTaSyncServiceImpl implements DengTaSyncService {
             }else {
                 partyMeetingInfoMapper.updatePartyMeetingInfo(meetingInfo);
             }
+            // 保存图片信息
+            JSONArray picArray = meeting.getJSONArray("picsPath");
+            if (!CollectionUtils.isEmpty(picArray)) {
+                for (int j = 0; j < picArray.size(); j++) {
+                    PartyMeetingImage meetingImage = new PartyMeetingImage();
+                    meetingImage.setMeetingId(meetingInfo.getId());
+                    meetingImage.setPicPath(picArray.getString(j));
+                    meetingImage.setCreateTime(DateUtils.getNowDate());
+                    partyMeetingImageMapper.insertPartyMeetingImage(meetingImage);
+                }
+            }
         }
     }
 
@@ -430,10 +429,13 @@ public class DengTaSyncServiceImpl implements DengTaSyncService {
         reqParam.setCreateTime(DateUtil.format(partyMeeting.getCreateTime(), DateUtils.YYYY_MM_DD_HH_MM_SS));
         reqParam.setBeginTime(DateUtil.format(partyMeeting.getBeginTime(), DateUtils.YYYY_MM_DD_HH_MM_SS));
         reqParam.setEndTime(DateUtil.format(partyMeeting.getEndTime(), DateUtils.YYYY_MM_DD_HH_MM_SS));
-        String[] picArray = partyMeeting.getPics_path();
-        if (null != picArray && picArray.length > 0) {
-            List<String> picList = Arrays.asList(partyMeeting.getPics_path());
-            reqParam.setPicsPath(picList);
+        // String[] picArray = partyMeeting.getPics_path();
+        PartyMeetingImage meetingImageParam = new PartyMeetingImage();
+        meetingImageParam.setMeetingId(partyMeeting.getId());
+        List<PartyMeetingImage> picList = partyMeetingImageMapper.selectPartyMeetingImageList(meetingImageParam);
+        if (CollectionUtils.isEmpty(picList)) {
+            List<String> pics = picList.stream().collect(Collectors.mapping(PartyMeetingImage::getPicPath, Collectors.toList()));
+            reqParam.setPicsPath(pics);
         }
         // 查询灯塔orgId
         PartyOrgManage partyOrgManage = partyOrgManageMapper.selectPartyOrgManageById(partyMeeting.getDjOrgid());

+ 17 - 8
inspur-party/src/main/java/com/inspur/mapper/PartyAttendanceRecordMapper.java

@@ -10,15 +10,15 @@ import org.apache.ibatis.annotations.Param;
 
 /**
  * 考勤记录Mapper接口
- * 
+ *
  * @author inspur
  * @date 2022-09-24
  */
-public interface PartyAttendanceRecordMapper 
+public interface PartyAttendanceRecordMapper
 {
     /**
      * 查询考勤记录
-     * 
+     *
      * @param id 考勤记录主键
      * @return 考勤记录
      */
@@ -26,7 +26,7 @@ public interface PartyAttendanceRecordMapper
 
     /**
      * 查询考勤记录列表
-     * 
+     *
      * @param partyAttendanceRecord 考勤记录
      * @return 考勤记录集合
      */
@@ -74,7 +74,7 @@ public interface PartyAttendanceRecordMapper
 
     /**
      * 新增考勤记录
-     * 
+     *
      * @param partyAttendanceRecord 考勤记录
      * @return 结果
      */
@@ -90,7 +90,7 @@ public interface PartyAttendanceRecordMapper
 
     /**
      * 修改考勤记录
-     * 
+     *
      * @param partyAttendanceRecord 考勤记录
      * @return 结果
      */
@@ -106,7 +106,7 @@ public interface PartyAttendanceRecordMapper
 
     /**
      * 删除考勤记录
-     * 
+     *
      * @param id 考勤记录主键
      * @return 结果
      */
@@ -114,7 +114,7 @@ public interface PartyAttendanceRecordMapper
 
     /**
      * 批量删除考勤记录
-     * 
+     *
      * @param ids 需要删除的数据主键集合
      * @return 结果
      */
@@ -155,4 +155,13 @@ public interface PartyAttendanceRecordMapper
     public void updateStatusByMeetingIdAndMemberId(@Param("meetingId") Long meetingId,
                                                    @Param("memberId") Long memberId,
                                                    @Param("attendanceStatus") Integer attendanceStatus);
+
+    /**
+     * 根据会议id和人员id查询考勤记录
+     * @param meetingId
+     * @param memberId
+     * @return
+     */
+    public PartyAttendanceRecord selectAttendanced(@Param("meetingId") Long meetingId,
+                                                   @Param("memberId") Long memberId);
 }

+ 69 - 0
inspur-party/src/main/java/com/inspur/mapper/PartyMeetingImageMapper.java

@@ -0,0 +1,69 @@
+package com.inspur.mapper;
+
+import com.inspur.domain.partywork.PartyMeetingImage;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 会议图片关联Mapper接口
+ *
+ * @author inspur
+ * @date 2024-08-28
+ */
+public interface PartyMeetingImageMapper
+{
+    /**
+     * 查询会议图片关联
+     *
+     * @param id 会议图片关联主键
+     * @return 会议图片关联
+     */
+    public PartyMeetingImage selectPartyMeetingImageById(Long id);
+
+    /**
+     * 查询会议图片关联列表
+     *
+     * @param partyMeetingImage 会议图片关联
+     * @return 会议图片关联集合
+     */
+    public List<PartyMeetingImage> selectPartyMeetingImageList(PartyMeetingImage partyMeetingImage);
+
+    /**
+     * 新增会议图片关联
+     *
+     * @param partyMeetingImage 会议图片关联
+     * @return 结果
+     */
+    public int insertPartyMeetingImage(PartyMeetingImage partyMeetingImage);
+
+    /**
+     * 修改会议图片关联
+     *
+     * @param partyMeetingImage 会议图片关联
+     * @return 结果
+     */
+    public int updatePartyMeetingImage(PartyMeetingImage partyMeetingImage);
+
+    /**
+     * 删除会议图片关联
+     *
+     * @param id 会议图片关联主键
+     * @return 结果
+     */
+    public int deletePartyMeetingImageById(Long id);
+
+    /**
+     * 批量删除会议图片关联
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deletePartyMeetingImageByIds(Long[] ids);
+
+    /**
+     * 根据会议id删除会议图片关联
+     * @param meetingId
+     */
+    public void deletePartyMeetingImageByMeetingId(@Param("meetingId") Long meetingId);
+}

+ 73 - 11
inspur-party/src/main/java/com/inspur/service/partywork/impl/PartyMeetingInfoServiceImpl.java

@@ -77,7 +77,7 @@ import static com.inspur.common.utils.PageUtils.startPage;
 
 /**
  * 党员会议Service业务层处理
- * 
+ *
  * @author inspur
  * @date 2022-09-21
  */
@@ -127,6 +127,9 @@ public class PartyMeetingInfoServiceImpl implements IPartyMeetingInfoService
     @Autowired
     private PartyFaceRecognitionMapper partyFaceRecognitionMapper;
 
+    @Autowired
+    private PartyMeetingImageMapper partyMeetingImageMapper;
+
 
     @Value("${netty.idUrl}")
     private String nettyIdUrl;
@@ -146,7 +149,7 @@ public class PartyMeetingInfoServiceImpl implements IPartyMeetingInfoService
 
     /**
      * 查询党员会议
-     * 
+     *
      * @param id 党员会议主键
      * @return 党员会议
      */
@@ -189,7 +192,6 @@ public class PartyMeetingInfoServiceImpl implements IPartyMeetingInfoService
             }
             String fileList = fileListSb.toString();
             rsp.setFileList(fileList.substring(0, fileList.length() - 1));
-            rsp.setFollowList(followFiles);
         }
         // 学习材料
         List<String> materialOptions = new ArrayList<>();
@@ -197,6 +199,22 @@ public class PartyMeetingInfoServiceImpl implements IPartyMeetingInfoService
             materialOptions = Arrays.asList(rsp.getMaterials().split(","));
             rsp.setMaterialOptions(materialOptions);
         }
+        // 将学习资料和文件合并
+        if (!CollectionUtils.isEmpty(followFiles)) {
+            for (String materialOption : materialOptions) {
+                PartyMeetingFollow followFile = new PartyMeetingFollow();
+                followFile.setFileName(materialOption);
+                followFile.setFileUrl(materialOption);
+                followFile.setFileType(2);
+                followFiles.add(followFile);
+            }
+        }
+        rsp.setFollowList(followFiles);
+        // 查询会议图片带时间
+        PartyMeetingImage imageParam = new PartyMeetingImage();
+        imageParam.setMeetingId(id);
+        List<PartyMeetingImage> imageList = partyMeetingImageMapper.selectPartyMeetingImageList(imageParam);
+        rsp.setImageList(imageList);
         return rsp;
     }
 
@@ -264,7 +282,7 @@ public class PartyMeetingInfoServiceImpl implements IPartyMeetingInfoService
 
     /**
      * 查询党员会议列表
-     * 
+     *
      * @param partyMeetingInfo 党员会议
      * @return 党员会议
      */
@@ -393,7 +411,7 @@ public class PartyMeetingInfoServiceImpl implements IPartyMeetingInfoService
 
     /**
      * 新增党员会议
-     * 
+     *
      * @param partyMeetingInfo 党员会议
      * @return 结果
      */
@@ -436,6 +454,19 @@ public class PartyMeetingInfoServiceImpl implements IPartyMeetingInfoService
         }
 
         int rsp =  partyMeetingInfoMapper.insertPartyMeetingInfo(partyMeetingInfo);
+
+        // 保存图片信息
+        if (StringUtils.isNotEmpty(partyMeetingInfo.getPicsPath())) {
+            String[] imgUrls = partyMeetingInfo.getPicsPath().split(",");
+            for (String imgUrl : imgUrls) {
+                PartyMeetingImage meetingImg = new PartyMeetingImage();
+                meetingImg.setMeetingId(partyMeetingInfo.getId());
+                meetingImg.setPicPath(imgUrl);
+                meetingImg.setCreateTime(DateUtils.getNowDate());
+                partyMeetingImageMapper.insertPartyMeetingImage(meetingImg);
+            }
+        }
+
         // 推送至灯塔
         // dengTaSyncService.meetingPush(partyMeetingInfo,"add");
 
@@ -595,7 +626,7 @@ public class PartyMeetingInfoServiceImpl implements IPartyMeetingInfoService
 
     /**
      * 修改党员会议
-     * 
+     *
      * @param partyMeetingInfo 党员会议
      * @return 结果
      */
@@ -642,6 +673,18 @@ public class PartyMeetingInfoServiceImpl implements IPartyMeetingInfoService
                 insertMeetingFollow(addFile,partyMeetingInfo.getId());
             }
         }
+        // 会议图片  删除之前 全部更新
+        partyMeetingImageMapper.deletePartyMeetingImageByMeetingId(partyMeetingInfo.getId());
+        if (!StringUtils.isEmpty(partyMeetingInfo.getPicsPath())) {
+            String[] imgUrls = partyMeetingInfo.getPicsPath().split(",");
+            for (String imgUrl : imgUrls) {
+                PartyMeetingImage meetingImg = new PartyMeetingImage();
+                meetingImg.setMeetingId(partyMeetingInfo.getId());
+                meetingImg.setPicPath(imgUrl);
+                meetingImg.setCreateTime(DateUtils.getNowDate());
+                partyMeetingImageMapper.insertPartyMeetingImage(meetingImg);
+            }
+        }
         return partyMeetingInfoMapper.updatePartyMeetingInfo(partyMeetingInfo);
     }
 
@@ -686,7 +729,7 @@ public class PartyMeetingInfoServiceImpl implements IPartyMeetingInfoService
 
     /**
      * 批量删除党员会议
-     * 
+     *
      * @param ids 需要删除的党员会议主键
      * @return 结果
      */
@@ -703,7 +746,7 @@ public class PartyMeetingInfoServiceImpl implements IPartyMeetingInfoService
 
     /**
      * 删除党员会议信息
-     * 
+     *
      * @param id 党员会议主键
      * @return 结果
      */
@@ -1051,6 +1094,10 @@ public class PartyMeetingInfoServiceImpl implements IPartyMeetingInfoService
         PartyFaceRecognition recognitionResult = recognizeFace2AI(meetingId,file);
         if (recognitionResult.getOpStatus() != 1 || com.inspur.common.utils.StringUtils.isEmpty(recognitionResult.getRspCode())
                 || !String.valueOf(HttpStatus.HTTP_OK).equalsIgnoreCase(recognitionResult.getRspCode())) {
+            log.info("recognizeFace result error, rpsCode: {}",recognitionResult.getRspCode());
+            // 更新本次会议的签到人数
+            recognitionResult.setNewAddNum(0);
+            partyFaceRecognitionMapper.updatePartyFaceRecognition(recognitionResult);
             return AjaxResult.error("调用AI算法人脸识别失败");
         }
 
@@ -1058,6 +1105,9 @@ public class PartyMeetingInfoServiceImpl implements IPartyMeetingInfoService
         List<RecognizeFaceRspResult> resultList = recognizeFaceRsp.getResult();
         if (CollectionUtils.isEmpty(resultList)) {
             log.info("recognizeFace result is empty,meetingId:{}",meetingId);
+            // 更新本次会议的签到人数
+            recognitionResult.setNewAddNum(0);
+            partyFaceRecognitionMapper.updatePartyFaceRecognition(recognitionResult);
             return AjaxResult.success("recognizeFace success,but result is empty");
         }
         // 找出所有的id_人名集合
@@ -1078,6 +1128,7 @@ public class PartyMeetingInfoServiceImpl implements IPartyMeetingInfoService
                 }
             }
         }
+        List<PartyAttendanceRecord> newAttendanceRecordList = new ArrayList<>();
         // 对map进行遍历 更新签到结果
         memberMap.keySet().stream().forEach(key -> {
             String[] keyArr = key.split("_");
@@ -1087,10 +1138,20 @@ public class PartyMeetingInfoServiceImpl implements IPartyMeetingInfoService
             if (similarity.compareTo(new BigDecimal(0.95)) < 0) {
                 log.info("人脸识别相似度小于0.95,memberId:{},meetingId:{}",memberId,meetingId);
             }else {
-                partyAttendanceRecordMapper.updateStatusByMeetingIdAndMemberId(meetingId,memberId,attendanceStatus);
+                // 正常识别到人
+                // 当前memberId是否已经签到过
+                PartyAttendanceRecord attendanceRecord = partyAttendanceRecordMapper.selectAttendanced(meetingId,memberId);
+                if (null == attendanceRecord) {
+                    partyAttendanceRecordMapper.updateStatusByMeetingIdAndMemberId(meetingId, memberId, attendanceStatus);
+                    newAttendanceRecordList.add(attendanceRecord);
+                } else {
+                    log.info("memberId:{}已经签到过,meetingId:{}",memberId,meetingId);
+                }
             }
         });
-
+        // 更新本次会议的签到人数
+        recognitionResult.setNewAddNum(newAttendanceRecordList.size());
+        partyFaceRecognitionMapper.updatePartyFaceRecognition(recognitionResult);
         return AjaxResult.success(memberMap);
     }
 
@@ -1108,6 +1169,7 @@ public class PartyMeetingInfoServiceImpl implements IPartyMeetingInfoService
         partyFaceRecognition.setMeetingId(meetingId);
         partyFaceRecognition.setCreateTime(DateUtils.getNowDate());
         partyFaceRecognition.setUserTableId(getUserTableId(FaceConstant.FACE_RECOGNITION_TABLE_NAME, userId, 0));
+        partyFaceRecognition.setNewAddNum(0);
         partyFaceRecognitionMapper.insertPartyFaceRecognition(partyFaceRecognition);
         // 调用算法服务
         String rspCode = "";
@@ -1127,7 +1189,7 @@ public class PartyMeetingInfoServiceImpl implements IPartyMeetingInfoService
                 opStatus = 2;
                 log.info("recognizeFace error,file:{},rspMsg:{}",fileMap.get("url"),rspMsg);
             }
-            this.box(reqParam.toJSONString(),rspMsg);
+            // this.box(reqParam.toJSONString(),rspMsg);
         }catch (Exception e) {
             opStatus = 2;
             rspMsg = e.getMessage();

+ 11 - 0
inspur-party/src/main/java/com/inspur/service/partywork/impl/RemoteControlServiceImpl.java

@@ -12,9 +12,11 @@ import com.inspur.common.utils.file.FileUtils;
 import com.inspur.domain.PcDevice;
 import com.inspur.domain.partywork.PartyMeetingAudio;
 import com.inspur.domain.partywork.PartyMeetingFollow;
+import com.inspur.domain.partywork.PartyMeetingImage;
 import com.inspur.domain.partywork.PartyMeetingInfo;
 import com.inspur.framework.config.ServerConfig;
 import com.inspur.mapper.PartyMeetingFollowMapper;
+import com.inspur.mapper.PartyMeetingImageMapper;
 import com.inspur.mapper.PartyMeetingInfoMapper;
 import com.inspur.mapper.PcDeviceMapper;
 import com.inspur.netty.message.push.FileControl;
@@ -59,6 +61,9 @@ public class RemoteControlServiceImpl implements IRemoteControlService {
     @Autowired
     private PcDeviceMapper pcDeviceMapper;
 
+    @Autowired
+    private PartyMeetingImageMapper partyMeetingImageMapper;
+
     @Override
     public AjaxResult filePlay(Long id, Integer currentPage, Integer deviceId) {
         // 当前操作用户
@@ -183,6 +188,12 @@ public class RemoteControlServiceImpl implements IRemoteControlService {
         if (null == partyMeeting) {
             return AjaxResult.error("未查询到会议信息");
         }
+        // 保存图片信息至新的关联表
+        PartyMeetingImage partyMeetingImage = new PartyMeetingImage();
+        partyMeetingImage.setMeetingId(meetingId);
+        partyMeetingImage.setPicPath(fileMap.get("url"));
+        partyMeetingImage.setCreateTime(DateUtils.getNowDate());
+        partyMeetingImageMapper.insertPartyMeetingImage(partyMeetingImage);
         // 获取当前会议的拍照图片列表
         String photoUrl = fileMap.get("url");
         String picsPath = partyMeeting.getPicsPath();

+ 9 - 4
inspur-party/src/main/resources/mapper/PartyAttendanceRecordMapper.xml

@@ -3,7 +3,7 @@
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.inspur.mapper.PartyAttendanceRecordMapper">
-    
+
     <resultMap type="com.inspur.domain.partywork.PartyAttendanceRecord" id="PartyAttendanceRecordResult">
         <result property="id"    column="id"    />
         <result property="meetingId"    column="meeting_id"    />
@@ -113,7 +113,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <include refid="selectPartyAttendanceRecordVo"/>
         where r.id = #{id}
     </select>
-        
+
     <insert id="insertPartyAttendanceRecord" parameterType="com.inspur.domain.partywork.PartyAttendanceRecord" useGeneratedKeys="true" keyProperty="id">
         insert into party_attendance_record
         <trim prefix="(" suffix=")" suffixOverrides=",">
@@ -171,7 +171,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </delete>
 
     <delete id="deletePartyAttendanceRecordByIds" parameterType="String">
-        delete from party_attendance_record where id in 
+        delete from party_attendance_record where id in
         <foreach item="id" collection="array" open="(" separator="," close=")">
             #{id}
         </foreach>
@@ -203,4 +203,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <update id="updateStatusByMeetingIdAndMemberId">
         update party_attendance_record set attendance_status = #{attendanceStatus},sign_Time = now() where meeting_id = #{meetingId} and member_id=#{memberId}
     </update>
-</mapper>
+
+    <select id="selectAttendanced" resultMap="PartyAttendanceRecordResult">
+        <include refid="selectPartyAttendanceRecordVo" />
+        where r.meeting_id = #{meetingId} and r.member_id=#{memberId} and r.attendance_status = 1 limit 1
+    </select>
+</mapper>

+ 69 - 0
inspur-party/src/main/resources/mapper/PartyMeetingImageMapper.xml

@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.inspur.mapper.PartyMeetingImageMapper">
+
+    <resultMap type="com.inspur.domain.partywork.PartyMeetingImage" id="PartyMeetingImageResult">
+        <result property="id"    column="id"    />
+        <result property="picPath"    column="pic_path"    />
+        <result property="meetingId"    column="meeting_id"    />
+        <result property="createTime"    column="create_time"    />
+    </resultMap>
+
+    <sql id="selectPartyMeetingImageVo">
+        select id, pic_path, meeting_id, create_time from party_meeting_image
+    </sql>
+
+    <select id="selectPartyMeetingImageList" parameterType="com.inspur.domain.partywork.PartyMeetingImage" resultMap="PartyMeetingImageResult">
+        <include refid="selectPartyMeetingImageVo"/>
+        <where>
+            <if test="picPath != null  and picPath != ''"> and pic_path = #{picPath}</if>
+            <if test="meetingId != null "> and meeting_id = #{meetingId}</if>
+        </where>
+    </select>
+
+    <select id="selectPartyMeetingImageById" parameterType="Long" resultMap="PartyMeetingImageResult">
+        <include refid="selectPartyMeetingImageVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertPartyMeetingImage" parameterType="com.inspur.domain.partywork.PartyMeetingImage" useGeneratedKeys="true" keyProperty="id">
+        insert into party_meeting_image
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="picPath != null">pic_path,</if>
+            <if test="meetingId != null">meeting_id,</if>
+            <if test="createTime != null">create_time,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="picPath != null">#{picPath},</if>
+            <if test="meetingId != null">#{meetingId},</if>
+            <if test="createTime != null">#{createTime},</if>
+        </trim>
+    </insert>
+
+    <update id="updatePartyMeetingImage" parameterType="com.inspur.domain.partywork.PartyMeetingImage">
+        update party_meeting_image
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="picPath != null">pic_path = #{picPath},</if>
+            <if test="meetingId != null">meeting_id = #{meetingId},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deletePartyMeetingImageById" parameterType="Long">
+        delete from party_meeting_image where id = #{id}
+    </delete>
+
+    <delete id="deletePartyMeetingImageByMeetingId" parameterType="Long">
+        delete from party_meeting_image where meeting_id = #{meetingId}
+    </delete>
+
+    <delete id="deletePartyMeetingImageByIds" parameterType="String">
+        delete from party_meeting_image where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>