Jelajahi Sumber

新增判断介绍信是否可以编辑逻辑

zhulu 1 tahun lalu
induk
melakukan
38d08b2abe

+ 4 - 1
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/letter/vo/CoreIntroduceLetterVo.java

@@ -95,10 +95,13 @@ public class CoreIntroduceLetterVo {
     @ApiModelProperty(value = "备注")
     private String description;
 
-    private List<CoreIntroduceLetterUserAddDto> userInfos;
+//    private List<CoreIntroduceLetterUserAddDto> userInfos;
     @ApiModelProperty(value = "接待机构")
     private List<Long> receptionOrgIds;
 
     @ApiModelProperty(value = "接待机构名称")
     private String receptionOrgNames;
+
+    @ApiModelProperty(value = "是否已经有出入记录")
+    private boolean haveOutInRecord;
 }

+ 4 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/letter/mapper/CoreOutInRecordMapper.java

@@ -67,4 +67,8 @@ public interface CoreOutInRecordMapper extends BaseMapper<CoreOutInRecord> {
      * @return 结果
      */
     int deleteCoreOutInRecordByIds(Long[] ids);
+
+    List<CoreOutInRecord> findLetterOutInRecordList(Long[] ids);
+
+
 }

+ 18 - 11
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/letter/service/impl/CoreIntroduceLetterServiceImpl.java

@@ -11,16 +11,14 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xunmei.common.core.constant.ErrorMsgConstants;
 import com.xunmei.common.core.constant.SecurityConstants;
-import com.xunmei.common.core.domain.letter.domain.CoreIntroduceLetter;
-import com.xunmei.common.core.domain.letter.domain.CoreIntroduceLetterApproveLog;
-import com.xunmei.common.core.domain.letter.domain.CoreIntroduceLetterToOrg;
-import com.xunmei.common.core.domain.letter.domain.CoreIntroduceLetterUser;
+import com.xunmei.common.core.domain.letter.domain.*;
 import com.xunmei.common.core.domain.letter.dto.*;
 import com.xunmei.common.core.domain.letter.vo.*;
 import com.xunmei.common.core.util.BeanHelper;
 import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.common.security.utils.SecurityUtils;
 import com.xunmei.core.letter.mapper.CoreIntroduceLetterMapper;
+import com.xunmei.core.letter.mapper.CoreOutInRecordMapper;
 import com.xunmei.core.letter.service.ICoreIntroduceLetterService;
 import com.xunmei.system.api.RemoteOrgService;
 import com.xunmei.system.api.domain.SysOrg;
@@ -42,6 +40,11 @@ import java.util.stream.Collectors;
 public class CoreIntroduceLetterServiceImpl extends ServiceImpl<CoreIntroduceLetterMapper, CoreIntroduceLetter> implements ICoreIntroduceLetterService {
     @Resource
     private CoreIntroduceLetterMapper coreIntroduceLetterMapper;
+
+    @Resource
+    private CoreOutInRecordMapper coreOutInRecordMapper;
+
+
     @Resource
     private RemoteOrgService orgService;
 
@@ -128,15 +131,19 @@ public class CoreIntroduceLetterServiceImpl extends ServiceImpl<CoreIntroduceLet
 
 
     private Page<CoreIntroduceLetterVo> buildPageVo(Page<CoreIntroduceLetterVo> page, List<SysOrg> orgList) {
-        List<CoreIntroduceLetterToOrg> toOrgList = coreIntroduceLetterMapper.findToOrgListA(page.getRecords());
         List<CoreIntroduceLetterVo> records = page.getRecords();
-        for (CoreIntroduceLetterVo record : records) {
-             List<Long> orgIds = toOrgList.stream().filter(toOrg -> toOrg.getLetterId().equals(record.getId())).map(CoreIntroduceLetterToOrg::getOrgId).collect(Collectors.toList());
-             String  orgNames = orgIds.stream().map(orgId -> orgList.stream().filter(org -> org.getId().equals(orgId)).findFirst().get().getShortName()).collect(Collectors.joining(","));
-             record.setReceptionOrgIds(orgIds);
-             record.setReceptionOrgNames(orgNames);
+        if (ObjectUtil.isNotEmpty(records)) {
+            List<CoreIntroduceLetterToOrg> toOrgList = coreIntroduceLetterMapper.findToOrgListA(page.getRecords());
+            List<CoreOutInRecord> letterOutInRecordList = coreOutInRecordMapper.findLetterOutInRecordList(records.stream().map(x -> x.getId()).collect(Collectors.toList()).toArray(new Long[records.size()]));
+            for (CoreIntroduceLetterVo record : records) {
+                List<Long> orgIds = toOrgList.stream().filter(toOrg -> toOrg.getLetterId().equals(record.getId())).map(CoreIntroduceLetterToOrg::getOrgId).collect(Collectors.toList());
+                String orgNames = orgIds.stream().map(orgId -> orgList.stream().filter(org -> org.getId().equals(orgId)).findFirst().get().getShortName()).collect(Collectors.joining(","));
+                record.setReceptionOrgIds(orgIds);
+                record.setReceptionOrgNames(orgNames);
+                record.setHaveOutInRecord(letterOutInRecordList.stream().anyMatch(x->ObjectUtil.equal(x.getLetterId(),record.getId())));
+            }
         }
-      return page;
+        return page;
     }
 
 

+ 6 - 0
soc-modules/soc-modules-core/src/main/resources/mapper/letter/CoreOutInRecordMapper.xml

@@ -161,4 +161,10 @@
             #{id}
         </foreach>
     </delete>
+    <select id="findLetterOutInRecordList" resultType="com.xunmei.common.core.domain.letter.domain.CoreOutInRecord">
+        select * from core_out_in_record where 1=1 and letter_id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </select>
 </mapper>