Pārlūkot izejas kodu

培训/演练登记簿 签名图片大小修改

jingyuanchao 1 gadu atpakaļ
vecāks
revīzija
6637bc253b

+ 28 - 21
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/service/impl/CoreEduTrainingTaskServiceImpl.java

@@ -979,10 +979,19 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
             log.info("未查询到代办-教育培训任务!");
             return new ArrayList<>();
         }
-       log.info("查询到教育培训代办数据:{}",JSON.toJSONString(list));
+        log.info("查询到教育培训代办数据:{}", JSON.toJSONString(list));
         //处理签名数据
-        dealEduTrainingSign(list);
-        list.removeIf(item -> DateUtil.date().before(item.getStartTime()) || DateUtil.date().after(item.getEndTime()));
+        dealEduTrainingSign(list, panelListDto);
+        final ArrayList<Long> list1 = new ArrayList<>();
+        log.info("工作台培训任务,当前时间:{}", DateUtil.format(DateUtil.date(),Constants.HMS_FORMAT));
+        for (PanelListVo item : list) {
+            if (DateUtil.date().before(item.getStartTime()) || DateUtil.date().after(item.getEndTime())) {
+                log.info("培训任务被删除,未到开始时间或已超过截至时间:{}", JSON.toJSONString(item));
+                list1.add(item.getId());
+            }
+        }
+        list.removeIf(item -> list1.contains(item.getId()));
+        //list.removeIf(item -> DateUtil.date().before(item.getStartTime()) || DateUtil.date().after(item.getEndTime()));
         list.forEach(item -> {
             item.setType(PanelTypeEnums.EDU_TRAINING.getCode());
         });
@@ -990,25 +999,23 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
         return list;
     }
 
-    private void dealEduTrainingSign(List<PanelListVo> list) {
-        //sql中查询了待签名的数据,但是没对数据范围做控制,需要排除不是自己的签名任务,
-        // 并且多个参与人员的情况,当前用户已经签署过了,也不需要显示该条数据
-        List<Long> needRemoveList = new ArrayList<>();
-        for (PanelListVo vo : list) {
-            if (ObjectUtil.notEqual(EduTrainingDoStatus.WAIT_SIGN.getCode(), vo.getStatus())) {
-                continue;
-            }
-            int value = coreEduTrainingTaskToUserMapper.selectCount(new LambdaQueryWrapper<CoreEduTrainingTaskToUser>()
-                            .eq(CoreEduTrainingTaskToUser::getEduTrainingTaskId, vo.getId())
-                            .eq(CoreEduTrainingTaskToUser::getUserId, SecurityUtils.getUserId())
-                            .eq(CoreEduTrainingTaskToUser::getType, 1)
-                            .eq(CoreEduTrainingTaskToUser::getSign, 0))
-                    .intValue();
-            if (value == 0) {
-                needRemoveList.add(vo.getId());
-            }
+    private void dealEduTrainingSign(List<PanelListVo> list, PanelListDto panelListDto) {
+        if (ObjectUtil.isEmpty(list)) {
+            return;
         }
-        list.removeIf(x -> needRemoveList.contains(x.getId()));
+        //如果当前时间大于任务的结束时间,将该数据移除
+        //如果用户不在某条数据的待签名范围中,将该数据移除
+        list.removeIf(item -> {
+            Long drillTaskId = item.getId();
+            long count = coreEduTrainingTaskToUserService.count(new LambdaQueryWrapper<CoreEduTrainingTaskToUser>()
+                    .eq(CoreEduTrainingTaskToUser::getEduTrainingTaskId, drillTaskId)
+                    .eq(CoreEduTrainingTaskToUser::getType, 1)
+                    .eq(CoreEduTrainingTaskToUser::getSign, 0)
+                    .eq(CoreEduTrainingTaskToUser::getUserId, panelListDto.getUserId()));
+            //如果当前用户不在参与用户范围中 或  当前时间大于任务的结束时间
+            //count==0 说明这个任务 未签名的参与人员中不包括当前用户,所以需要删除
+            return item.getStatus() == 1 && count == 0;
+        });
     }
 
     @Override

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

@@ -48,6 +48,7 @@ import com.xunmei.system.api.domain.SysUser;
 import com.xunmei.system.api.function.RemoteCallHandlerExecutor;
 import com.xunmei.system.api.vo.SysOrgVO;
 import io.netty.util.internal.StringUtil;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
@@ -66,6 +67,7 @@ import java.util.stream.Collectors;
  * @author xunmei
  * @date 2023-11-10
  */
+@Slf4j
 @Service
 public class CoreOutInRecordServiceImpl extends ServiceImpl<CoreOutInRecordMapper, CoreOutInRecord> implements ICoreOutInRecordService {
     @Autowired
@@ -170,10 +172,11 @@ public class CoreOutInRecordServiceImpl extends ServiceImpl<CoreOutInRecordMappe
      */
     @Override
     public int updateCoreOutInRecord(CoreOutInRecord coreOutInRecord) {
+        final int i = coreOutInRecordMapper.updateById(coreOutInRecord);
         if (ObjectUtil.isNotEmpty(coreOutInRecord.getDepartureTime())){
             this.buildOutInRecordPdf(coreOutInRecord.getId());
         }
-        return coreOutInRecordMapper.updateById(coreOutInRecord);
+        return i;
     }
 
     /**
@@ -207,9 +210,11 @@ public class CoreOutInRecordServiceImpl extends ServiceImpl<CoreOutInRecordMappe
         Map<String, Object> data = this.getFtlEdu(record, orgList);
         data.put("fileName", fileName);
         data.put("id", id);
+        log.info("来访管理登记簿数据准备完成,开始生成登记簿:{}", JSON.toJSONString(data));
         CompletableFuture.runAsync(() -> {
             R<String> r = RemoteCallHandlerExecutor.executeRemoteCall(() -> fileService.generateOutInPdf(data), ErrorMsgConstants.GENERATE_PDF_ERROR);
             if (null == r || null == r.getData()) {
+                log.info("来访管理登记簿数据生成失败,参数:{}", JSON.toJSONString(data));
                 throw new SystemException(ErrorMsgConstants.GENERATE_PDF_ERROR);
             }
             String pdfUrl = r.getData();
@@ -217,7 +222,7 @@ public class CoreOutInRecordServiceImpl extends ServiceImpl<CoreOutInRecordMappe
             updateWrapper.eq(CoreOutInRecord::getId, id);
             updateWrapper.set(CoreOutInRecord::getPdfUrl, pdfUrl);
             this.update(updateWrapper);
-
+            log.info("来访管理登记簿数据生成成功,文件系统返回地址:{}", pdfUrl);
             CoreRegisterBookPdf registerBookPdf = new CoreRegisterBookPdf();
             registerBookPdf.setId(id);
             registerBookPdf.setRegisterBookType(RegisterBookType.VISIT_RECORD.getNum());
@@ -267,6 +272,7 @@ public class CoreOutInRecordServiceImpl extends ServiceImpl<CoreOutInRecordMappe
         //来访单位
         String outOrgName = ObjectUtil.isNotEmpty(outOrg.getShortName()) ? outOrg.getShortName() : outOrg.getName();
         data.put("outOrgName", outOrgName);
+        log.info("***********:{}",JSON.toJSONString(data));
         //来访人员
         data.put("userName", record.getUserName());
         //证件类型
@@ -300,8 +306,8 @@ public class CoreOutInRecordServiceImpl extends ServiceImpl<CoreOutInRecordMappe
             List<String> strings = new ArrayList<>();
             for (String json : list) {
                 final Map map = JSON.parseObject(json, Map.class);
-                final String url = (String)map.get("url");
-                if (ObjectUtil.isNotEmpty(url)){
+                final String url = (String) map.get("url");
+                if (ObjectUtil.isNotEmpty(url)) {
                     strings.add(url);
                 }
             }
@@ -314,6 +320,7 @@ public class CoreOutInRecordServiceImpl extends ServiceImpl<CoreOutInRecordMappe
         } else {
             data.put("checkImage", getFileRealPath(Arrays.asList(checkImage.split(",")), prefixPath, staticsPath));
         }
+        log.info("***********:{}",JSON.toJSONString(data));
         return data;
     }
 

+ 3 - 3
soc-modules/soc-modules-file/src/main/java/com/xunmei/file/utils/PdfUtil.java

@@ -284,7 +284,7 @@ public class PdfUtil {
         //证件图片
         createPDFCell(tableFont, table, "证件图片", Element.ALIGN_CENTER, 1, 70);
         //演练情况 图片填充
-        final PdfPTable imageTable1 = getImage((List<String>) data.get("imageFile"), 2,150,150,2);
+        final PdfPTable imageTable1 = getImage((List<String>) data.get("imageFile"), 4,150,130,2);
         final PdfPCell cell1 = new PdfPCell();
         cell1.setNoWrap(false);
         cell1.setPaddingLeft(8f);
@@ -445,13 +445,13 @@ public class PdfUtil {
             }
             //实际上这儿永远不会存在不满足3个的情况,因为上面会根据图片数量补全到十二个
             //具体补全数量可以根据实际图片大小与页面尺寸来调整
-            int size = row.size();
+           /* int size = row.size();
             while (size < 3) {
                 PdfPCell emptyCell = new PdfPCell();
                 emptyCell.setBorder(Rectangle.NO_BORDER);
                 innerTable.addCell(emptyCell);
                 size++;
-            }
+            }*/
         }
         PdfPTable outerTable = new PdfPTable(1);
         PdfPCell innerCell = new PdfPCell(innerTable);