Преглед изворни кода

Merge remote-tracking branch 'origin/dev' into pre

dzx пре 6 месеци
родитељ
комит
3bcb7c6f49

+ 3 - 0
src/main/java/com/xjrsoft/module/banding/entity/BandingTaskClassStudentSure.java

@@ -88,4 +88,7 @@ public class BandingTaskClassStudentSure implements Serializable {
     @ApiModelProperty("状态(0:未确认 1:已确认)")
     private Integer status;
 
+    @ApiModelProperty("就读方式")
+    private String stduyStatus;
+
 }

+ 2 - 1
src/main/java/com/xjrsoft/module/banding/mapper/BandingTaskClassStudentSureMapper.java

@@ -20,6 +20,7 @@ import java.util.List;
 @Mapper
 public interface BandingTaskClassStudentSureMapper extends MPJBaseMapper<BandingTaskClassStudentSure> {
 
-    @Update("DELETE FROM banding_task_class_student_sure t1 INNER JOIN banding_task_class t2 ON t1.banding_task_class_id = t2.id WHERE t2.banding_task_id = #{taskId}")
+    @Update("DELETE FROM banding_task_class_student_sure WHERE banding_task_class_id IN( " +
+            " SELECT id FROM banding_task_class WHERE banding_task_id = #{taskId} )")
     Boolean deleteByTaskId(@Param("taskId") Long taskId);
 }

+ 7 - 13
src/main/java/com/xjrsoft/module/banding/service/impl/BandingTaskServiceImpl.java

@@ -860,7 +860,7 @@ public class BandingTaskServiceImpl extends MPJBaseServiceImpl<BandingTaskMapper
             }
         }
         //确认分班时,将已经分班的数据固化下来,后续查询也需要进行调整
-        lockData(bandingTask);
+        lockData(bandingTask.getId(), classStudents, list);
 
         bandingTask.setStatus(1);
         bandingTask.setModifyDate(new Date());
@@ -895,20 +895,14 @@ public class BandingTaskServiceImpl extends MPJBaseServiceImpl<BandingTaskMapper
     /**
      * 确认后,将分班数的数据情况固化
      */
-    void lockData(BandingTask task){
-        taskClassStudentSureMapper.deleteByTaskId(task.getId());
-        List<BandingTaskClassStudent> studentList = classStudentService.list(
-                new MPJLambdaWrapper<BandingTaskClassStudent>()
-                        .select(BandingTaskClassStudent::getId)
-                        .select(BandingTaskClassStudent.class, x -> VoToColumnUtil.fieldsToColumns(BandingTaskClassStudent.class).contains(x.getProperty()))
-                        .innerJoin(BandingTaskClass.class, BandingTaskClass::getId, BandingTaskClassStudent::getBandingTaskClassId)
-                        .eq(BandingTaskClassStudent::getDeleteMark, DeleteMark.NODELETE.getCode())
-                        .eq(BandingTaskClass::getDeleteMark, DeleteMark.NODELETE.getCode())
-                        .eq(BandingTaskClass::getBandingTaskId, task.getId())
-        );
+    void lockData(Long taskId, List<BandingTaskClassStudent> classStudents, List<BaseNewStudent> newStudents){
+        taskClassStudentSureMapper.deleteByTaskId(taskId);
+
+        Map<Long, String> newStudentMaps = newStudents.stream().collect(Collectors.toMap(BaseNewStudent::getId, BaseNewStudent::getStduyStatus));
 
-        for (BandingTaskClassStudent bandingTaskClassStudent : studentList) {
+        for (BandingTaskClassStudent bandingTaskClassStudent : classStudents) {
             BandingTaskClassStudentSure studentSure = BeanUtil.toBean(bandingTaskClassStudent, BandingTaskClassStudentSure.class);
+            studentSure.setStduyStatus(newStudentMaps.get(bandingTaskClassStudent.getNewStudentId()));
             taskClassStudentSureMapper.insert(studentSure);
         }
     }

+ 7 - 0
src/main/java/com/xjrsoft/module/form/utils/FormDataTransUtil.java

@@ -191,6 +191,13 @@ public final class FormDataTransUtil {
                                     .filter(x -> ObjectUtil.isNotNull(x.get("value")))
                                     .collect(Collectors.toMap(data -> data.get("value").toString(), data -> data.get("label"), (e1, e2) -> e1)));
                         }
+                        if("multiple".equals(options.get("multiple").toString())){
+                            Map<String, String> multiSettingMap = new HashMap<>();
+                            for (Map<String, Object> objectMap : apiDataList) {
+                                multiSettingMap.put(objectMap.get(options.get("valueField").toString()).toString(), objectMap.get(options.get("labelField").toString()).toString());
+                            }
+                            multiFieldMap.put(bindField, multiSettingMap);
+                        }
                     }
                     fieldValuesMap.put(bindField, apiDataMap.get(apiId));
                 }

+ 19 - 26
src/main/java/com/xjrsoft/module/oa/utils/SendMessageUtil.java

@@ -1,5 +1,6 @@
 package com.xjrsoft.module.oa.utils;
 
+import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.extra.mail.MailAccount;
 import cn.hutool.extra.mail.MailUtil;
@@ -12,12 +13,13 @@ import com.xjrsoft.common.enums.YesOrNoEnum;
 import com.xjrsoft.common.sms.SmsSender;
 import com.xjrsoft.common.utils.LocalDateTimeUtil;
 import com.xjrsoft.common.utils.RedisUtil;
-import com.xjrsoft.common.utils.WeChatUtil;
 import com.xjrsoft.config.CommonPropertiesConfig;
 import com.xjrsoft.module.oa.entity.Message;
 import com.xjrsoft.module.oa.service.IMessageService;
+import com.xjrsoft.module.organization.dto.WeChatSendMessageDto;
 import com.xjrsoft.module.organization.entity.User;
 import com.xjrsoft.module.organization.service.IUserService;
+import com.xjrsoft.module.organization.service.IWeChatService;
 import com.xjrsoft.module.workflow.model.NoticePolicyParam;
 import lombok.extern.slf4j.Slf4j;
 
@@ -71,7 +73,7 @@ public class SendMessageUtil {
         IUserService userService = SpringUtil.getBean(IUserService.class);
         RedisUtil redisUtil = SpringUtil.getBean(RedisUtil.class);
 
-        WeChatUtil weChatUtil = SpringUtil.getBean(WeChatUtil.class);
+        IWeChatService weChatUtil = SpringUtil.getBean(IWeChatService.class);
 
         CommonPropertiesConfig cpConfig = SpringUtil.getBean(CommonPropertiesConfig.class);
 
@@ -111,17 +113,13 @@ public class SendMessageUtil {
                     put("value", LocalDateTimeUtil.format(LocalDateTime.now(), LocalDateTimeUtil.LOCAL_DATE_TIME_FORMAT));
                 }});
 
-                JSONObject object = new JSONObject();
-                object.put("touser", openId);
-                object.put("template_id", "sHsmz7LRj7HLd7GSTS3r2jCLvK-4Wp19iGzEvYK8n_I");
-//                object.put("miniprogram", new JSONObject() {{
-//                    put("appid", weChatUtil.getAppletAppKey());
-//                    put("pagepath", StrUtil.format("{}/xjrsoft/pages/workflow/approval?taskId={}&processId={}&type=todo",cpConfig.getDomainApp(), param.getTaskId(), param.getProcessId()));
-//                }});
-                object.put("url", StrUtil.format("{}/xjrsoft/pages/workflow/approval?taskId={}&processId={}&type=todo", cpConfig.getDomainApp(), param.getTaskId(), param.getProcessId()));
-                object.put("client_msg_id", param.getTaskId());
-                object.put("data", data);
-                weChatUtil.sendTemplateMessage(object);
+                WeChatSendMessageDto weChatSendMessageDto = new WeChatSendMessageDto();
+                weChatSendMessageDto.setUserId(openId);
+                weChatSendMessageDto.setTemplateId("sHsmz7LRj7HLd7GSTS3r2jCLvK-4Wp19iGzEvYK8n_I");
+                weChatSendMessageDto.setMsgId(param.getTaskId());
+                weChatSendMessageDto.setUrl(StrUtil.format("{}/xjrsoft/pages/workflow/approval?taskId={}&processId={}&type=todo", cpConfig.getDomainApp(), param.getTaskId(), param.getProcessId()));
+                weChatSendMessageDto.setContent(data);
+                weChatUtil.sendTemplateMessage(weChatSendMessageDto);
             }
         }
     }
@@ -133,7 +131,7 @@ public class SendMessageUtil {
         IUserService userService = SpringUtil.getBean(IUserService.class);
         RedisUtil redisUtil = SpringUtil.getBean(RedisUtil.class);
 
-        WeChatUtil weChatUtil = SpringUtil.getBean(WeChatUtil.class);
+        IWeChatService weChatUtil = SpringUtil.getBean(IWeChatService.class);
 
         CommonPropertiesConfig cpConfig = SpringUtil.getBean(CommonPropertiesConfig.class);
 
@@ -176,18 +174,13 @@ public class SendMessageUtil {
                 put("value", LocalDateTimeUtil.format(LocalDateTime.now(), LocalDateTimeUtil.LOCAL_DATE_TIME_FORMAT));
             }});
 
-            JSONObject object = new JSONObject();
-            object.put("touser", openId);
-            object.put("template_id", "sHsmz7LRj7HLd7GSTS3r2jCLvK-4Wp19iGzEvYK8n_I");
-//                object.put("miniprogram", new JSONObject() {{
-//                    put("appid", weChatUtil.getAppletAppKey());
-//                    put("pagepath", StrUtil.format("{}/xjrsoft/pages/workflow/approval?taskId={}&processId={}&type=todo",cpConfig.getDomainApp(), param.getTaskId(), param.getProcessId()));
-//                }});
-            object.put("url", StrUtil.format("{}/xjrsoft/pages/home/home", cpConfig.getDomainApp()));
-//            object.put("client_msg_id", param.getTaskId());
-            object.put("data", data);
-            weChatUtil.sendTemplateMessage(object);
-            //System.err.println(isSuccess);
+            WeChatSendMessageDto weChatSendMessageDto = new WeChatSendMessageDto();
+            weChatSendMessageDto.setUserId(openId);
+            weChatSendMessageDto.setTemplateId("sHsmz7LRj7HLd7GSTS3r2jCLvK-4Wp19iGzEvYK8n_I");
+            weChatSendMessageDto.setMsgId(IdUtil.getSnowflakeNextIdStr());
+            weChatSendMessageDto.setUrl(StrUtil.format("{}/xjrsoft/pages/home/home", cpConfig.getDomainApp()));
+            weChatSendMessageDto.setContent(data);
+            weChatUtil.sendTemplateMessage(weChatSendMessageDto);
         }
     }
 

+ 2 - 0
src/main/java/com/xjrsoft/module/workflow/service/impl/WorkflowExecuteServiceImpl.java

@@ -2142,6 +2142,8 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
 
                 addCustomWorkflowRecord(userTaskConfig, nextTaskNameList, user, xjrWorkflowOperateRecord, oldTaskName, buttonConfig.getButtonName(), dto.getApprovedContent(), task, resultName);
 
+                //通知下一个节点审批人
+                //sendApproveNoticePolicy(task.getId());
             }
 
             //如果是驳回

+ 6 - 6
src/main/resources/logback.xml

@@ -37,8 +37,8 @@
         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
             <!-- 日志文件名格式 -->
             <fileNamePattern>${log.path}/sys-info.%d{yyyy-MM-dd}.log</fileNamePattern>
-            <!-- 日志最大的历史 60天 -->
-            <maxHistory>60</maxHistory>
+            <!-- 日志最大的历史 15天 -->
+            <maxHistory>15</maxHistory>
         </rollingPolicy>
         <encoder>
             <pattern>${log.pattern}</pattern>
@@ -59,8 +59,8 @@
         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
             <!-- 日志文件名格式 -->
             <fileNamePattern>${log.path}/sys-error.%d{yyyy-MM-dd}.log</fileNamePattern>
-            <!-- 日志最大的历史 60天 -->
-            <maxHistory>60</maxHistory>
+            <!-- 日志最大的历史 15天 -->
+            <maxHistory>15</maxHistory>
         </rollingPolicy>
         <encoder>
             <pattern>${log.pattern}</pattern>
@@ -81,8 +81,8 @@
         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
             <!-- 按天回滚 daily -->
             <fileNamePattern>${log.path}/sys-user.%d{yyyy-MM-dd}.log</fileNamePattern>
-            <!-- 日志最大的历史 60天 -->
-            <maxHistory>60</maxHistory>
+            <!-- 日志最大的历史 15天 -->
+            <maxHistory>15</maxHistory>
         </rollingPolicy>
         <encoder>
             <pattern>${log.pattern}</pattern>

+ 1 - 1
src/main/resources/mapper/banding/BandingTaskClassMapper.xml

@@ -205,7 +205,7 @@
         LEFT JOIN xjr_dictionary_detail t4 ON t1.gender = t4.code
         LEFT JOIN base_major_set t5 ON t1.first_ambition = t5.id
         LEFT JOIN base_major_set t6 ON t1.second_ambition = t6.id
-        LEFT JOIN xjr_dictionary_detail t7 ON t1.stduy_status = t7.code
+        LEFT JOIN xjr_dictionary_detail t7 ON t2.stduy_status = t7.code
         LEFT JOIN xjr_user t8 ON t3.teacher_id = t8.id
         INNER JOIN enrollment_plan t9 ON t1.enrollment_plan_id = t9.id
         WHERE t1.delete_mark = 0 and t1.is_can_banding = 1