瀏覽代碼

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

大数据与最优化研究所 6 月之前
父節點
當前提交
8ecea5065d

+ 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));
                 }

+ 1 - 1
src/main/java/com/xjrsoft/module/job/AttenDanceWarnNoticeTask.java

@@ -200,7 +200,7 @@ public class AttenDanceWarnNoticeTask {
 
         }
         SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd HH:mm:ss");
-        String table = "wechat_message_log";
+        String table = "attendance_message_log";
         long id = IdUtil.getSnowflakeNextId();
         Entity entity = Entity.create(table);
         entity.set("id", id);

+ 3 - 3
src/main/java/com/xjrsoft/module/job/AttendanceMessageTask.java

@@ -129,7 +129,7 @@ public class AttendanceMessageTask {
         Set<Integer> roleTypes = list.stream().map(AttendanceMessageSet::getRoleType).collect(Collectors.toSet());
 
         //查询需要通知的人
-        String table = "wechat_message_log";
+        String table = "attendance_message_log";
         boolean isInsert = true;
         for (AttendanceMessageSet messageSet : list) {
             LocalDateTime recentlyTime = null;
@@ -148,7 +148,7 @@ public class AttendanceMessageTask {
                 Entity entity = Entity.create(table);
                 entity.set("send_time", recentlyTime);
                 entity.set("template_id", wechatTemplate);
-                String sql = "SELECT COUNT(*) FROM wechat_message_log WHERE delete_mark = 0 AND template_id = '" + wechatTemplate
+                String sql = "SELECT COUNT(*) FROM " + table + " WHERE delete_mark = 0 AND template_id = '" + wechatTemplate
                         + "' AND send_time = '" + recentlyTime.format(formatter) + "'";
                 long count = SqlRunnerAdapter.db().selectCount(sql);
                 if (count > 0) {//已经推送过,不再进行推送
@@ -165,7 +165,7 @@ public class AttendanceMessageTask {
                     isInsert = false;
                     continue;
                 }
-                String sql = "SELECT COUNT(*) FROM wechat_message_log WHERE delete_mark = 0 AND template_id = '" + wechatTemplate
+                String sql = "SELECT COUNT(*) FROM " + table + " WHERE delete_mark = 0 AND template_id = '" + wechatTemplate
                         + "' AND send_time = '" + recentlyTime.format(formatter) + "'";
                 long count = SqlRunnerAdapter.db().selectCount(sql);
                 if (count > 0) {//已经推送过,不再进行推送

+ 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