From cabf2cffb64e98401d87c2e03537720390e2f4ea Mon Sep 17 00:00:00 2001
From: xinyb <574600396@qq.com>
Date: 星期四, 05 九月 2024 10:01:02 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev

---
 src/com/yc/crm/base/service/CrmServiceImpl.java |  929 +++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 881 insertions(+), 48 deletions(-)

diff --git a/src/com/yc/crm/base/service/CrmServiceImpl.java b/src/com/yc/crm/base/service/CrmServiceImpl.java
index a3cd74c..c18268f 100644
--- a/src/com/yc/crm/base/service/CrmServiceImpl.java
+++ b/src/com/yc/crm/base/service/CrmServiceImpl.java
@@ -5,15 +5,22 @@
 import com.yc.crm.base.util.Utils;
 import com.yc.crm.clues.entity.T480107Entity;
 import com.yc.crm.clues.entity.T480114Entity;
+import com.yc.exception.ApplicationException;
 import com.yc.service.BaseService;
+import com.yc.utils.DateUtil;
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
 import org.springframework.jdbc.core.BeanPropertyRowMapper;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.servlet.http.HttpSession;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
+import java.time.temporal.ChronoUnit;
+import java.util.*;
 import java.util.stream.Collectors;
 
 @Service
@@ -22,20 +29,24 @@
     public Map getBaseInfo(String userCode) {
         HashMap map = new HashMap();
         //----绯荤粺鍙傛暟
-        List<SysdictEntity> list = this.jdbcTemplate.query("select dictid,interValue as id,dictvalue as name from _sysdict where dictid in(-48013000,-48013001,-48013002,-48013003,-48013004,-48013005,-48013006,-48013007,-48013008,-48013009,-48013010,-48013011)\n" +
+        List<SysdictEntity> list = this.jdbcTemplate.query("select dictid,interValue as id,dictvalue as name from _sysdict where dictid in(-48013000,-48013001,-48013002,-48013003,-48013004,-48013005,-48013006,-48013007,-48013008,-48013009,-48013010,-48013011,-48013012,-48013013,-48013014,-48013015)\n" +
                 "order by dictid desc,sequence\n ", new BeanPropertyRowMapper<>(SysdictEntity.class));
-        map.put("鍏徃绫诲瀷",list.stream().filter(x->x.getDictid()==-48013000).collect(Collectors.toList()));
-        map.put("閲囪喘鎰忓悜",list.stream().filter(x->x.getDictid()==-48013001).collect(Collectors.toList()));
-        map.put("骞撮噰璐",list.stream().filter(x->x.getDictid()==-48013002).collect(Collectors.toList()));
-        map.put("鏃跺尯",list.stream().filter(x->x.getDictid()==-48013003).collect(Collectors.toList()));
-        map.put("瑙勬ā",list.stream().filter(x->x.getDictid()==-48013004).collect(Collectors.toList()));
-        map.put("璁块棶鏉ユ簮",list.stream().filter(x->x.getDictid()==-48013005).collect(Collectors.toList()));
-        map.put("璁块棶IP鎵�鍦ㄥ湴",list.stream().filter(x->x.getDictid()==-48013006).collect(Collectors.toList()));
-        map.put("绀句氦骞冲彴",list.stream().filter(x->x.getDictid()==-48013007).collect(Collectors.toList()));
-        map.put("鐢佃瘽鍖哄彿",list.stream().filter(x->x.getDictid()==-48013008).collect(Collectors.toList()));
-        map.put("鑱岀骇",list.stream().filter(x->x.getDictid()==-48013009).collect(Collectors.toList()));
-        map.put("绯荤粺鏍囩",list.stream().filter(x->x.getDictid()==-48013010).collect(Collectors.toList()));
-        map.put("璺熻繘绫诲瀷",list.stream().filter(x->x.getDictid()==-48013011).collect(Collectors.toList()));
+        map.put("bizType", list.stream().filter(x -> x.getDictid() == -48013000).collect(Collectors.toList()));
+        map.put("intentionLevel", list.stream().filter(x -> x.getDictid() == -48013001).collect(Collectors.toList()));
+        map.put("annualProcurement", list.stream().filter(x -> x.getDictid() == -48013002).collect(Collectors.toList()));
+        map.put("timezone", list.stream().filter(x -> x.getDictid() == -48013003).collect(Collectors.toList()));
+        map.put("scaleId", list.stream().filter(x -> x.getDictid() == -48013004).collect(Collectors.toList()));
+        map.put("inquiryOrigin", list.stream().filter(x -> x.getDictid() == -48013005).collect(Collectors.toList()));
+        map.put("inquiryCountry", list.stream().filter(x -> x.getDictid() == -48013006).collect(Collectors.toList()));
+        map.put("mediaList", list.stream().filter(x -> x.getDictid() == -48013007).collect(Collectors.toList()));
+        map.put("telAreaCode", list.stream().filter(x -> x.getDictid() == -48013008).collect(Collectors.toList()));
+        map.put("postGrade", list.stream().filter(x -> x.getDictid() == -48013009).collect(Collectors.toList()));
+        map.put("systemFlag", list.stream().filter(x -> x.getDictid() == -48013010).collect(Collectors.toList()));
+        map.put("followUpType", list.stream().filter(x -> x.getDictid() == -48013011).collect(Collectors.toList()));
+        map.put("cluesStatusFlag", list.stream().filter(x -> x.getDictid() == -48013012).collect(Collectors.toList()));
+        map.put("failStatus", list.stream().filter(x -> x.getDictid() == -48013013).collect(Collectors.toList()));
+        map.put("quickTxtList", list.stream().filter(x -> x.getDictid() == -48013014).collect(Collectors.toList()));
+        map.put("remindTimes", list.stream().filter(x -> x.getDictid() == -48013015).collect(Collectors.toList()));
         //---绾跨储鏉ユ簮
         List<T480107Entity> t480107Entities = this.jdbcTemplate.query("select leadSourceCode\n" +
                 ",leadSourceName\n" +
@@ -43,54 +54,876 @@
                 ",rowid        \n" +
                 ",treecontrol  \n" +
                 ",isnull(parentrowid,'') as parentrowid  from t480107", new BeanPropertyRowMapper<>(T480107Entity.class));
-        List<T480107Entity> treeEntiries = Utils.convertToTree(t480107Entities,T480107Entity::getParentrowid,T480107Entity::getRowid);
-        map.put("绾跨储鏉ユ簮",treeEntiries);
-        //---鍥藉鍦板尯
-        List<T480114Entity> t480114Entities = this.jdbcTemplate.query("select regionsCode\n" +
+        List<T480107Entity> treeEntiries = Utils.convertToTree(t480107Entities, T480107Entity::getParentrowid, T480107Entity::getRowid);
+        map.put("originList", treeEntiries);
+        //---鍥藉
+        List<T480114Entity> t480114Entities = this.jdbcTemplate.query("select " +
+                // "areaid as regionsCode\n" +
+                "regionsCode\n" +
+                //",areaname as regionsName\n" +
                 ",regionsName\n" +
+                "--,memo         \n" +
+                ",rowid        \n" +
+                ",treecontrol  \n" +//t480114,t110202
+                ",isnull(parentrowid,'') as parentrowid  from t480114", new BeanPropertyRowMapper<>(T480114Entity.class));
+        List<T480114Entity> treeEntiries114 = Utils.convertToTree(t480114Entities, T480114Entity::getParentrowid, T480114Entity::getRowid);
+        map.put("country", treeEntiries114);
+        //---鐪佸競
+        List<T110202Entity> t110202Entities = this.jdbcTemplate.query("select " +
+                "areaid\n" +
+                ",areaname\n" +
+                "--,memo         \n" +
+                ",rowid        \n" +
+                ",treecontrol  \n" +//t480114,t110202
+                ",isnull(parentrowid,'') as parentrowid  from t110202", new BeanPropertyRowMapper<>(T110202Entity.class));
+        List<T110202Entity> treeEntiries110202 = Utils.convertToTree(t110202Entities, T110202Entity::getParentrowid, T110202Entity::getRowid);
+        map.put("province", treeEntiries110202);
+        //---涓昏惀浜у搧
+        List<T480116Entity> t480116Entities = this.jdbcTemplate.query("select categoryId\n" +
+                ",categoryName\n" +
                 ",memo         \n" +
                 ",rowid        \n" +
-                ",treecontrol  \n" +
-                ",isnull(parentrowid,'') as parentrowid  from t480114", new BeanPropertyRowMapper<>(T480114Entity.class));
-        List<T480114Entity> treeEntiries114 = Utils.convertToTree(t480114Entities,T480114Entity::getParentrowid,T480114Entity::getRowid);
-        map.put("鍥藉鍦板尯",treeEntiries114);
+                ",treecontrol  \n" +//t480114
+                ",isnull(parentrowid,'') as parentrowid  from t480116", new BeanPropertyRowMapper<>(T480116Entity.class));
+        List<T480116Entity> treeEntiries116 = Utils.convertToTree(t480116Entities, T480116Entity::getParentrowid, T480116Entity::getRowid);
+        map.put("categoryIds", treeEntiries116);
+
         //---鏍囩
         List<T482115Entity> t482115Entities = this.jdbcTemplate.query("select  tag_Id,    \n" +
                 "tag_Name,   \n" +
                 " sort_Id,   \n" +
                 " system_Flag,\n" +
                 "tag_Color,  \n" +
-                " tag_Type,create_time,update_time from t482115 where  isnull(system_Flag,0)=1 or userCode= " + GridUtils.prossSqlParm(userCode)+" order by sort_Id asc", new BeanPropertyRowMapper<>(T482115Entity.class));
-        map.put("鏍囩",t482115Entities);
+                " tag_Type,create_time,update_time from t482115 where  isnull(system_Flag,0)=1 or userCode= " + GridUtils.prossSqlParm(userCode) + " order by sort_Id asc", new BeanPropertyRowMapper<>(T482115Entity.class));
+        map.put("tags", t482115Entities);
         return map;
     }
 
     @Override
     public Object getUserInfo(HttpSession session, Page page) {
-       // String ccCode = (String) session.getAttribute(SessionKey.CCCODE);
-        String where="";
-        if(page!=null&&StringUtils.isNotBlank(page.getKey())){
+        // String ccCode = (String) session.getAttribute(SessionKey.CCCODE);
+        String where = "";
+        if (page != null && StringUtils.isNotBlank(page.getKey())) {
 
-            where=" where email like '%"+page.getKey()+"%' or userName like '%"+page.getKey()+"%'";
+            where = " where email like '%" + page.getKey() + "%' or userName like '%" + page.getKey() + "%'";
         }
-        String sql=" select ccCode,ccName,userCode,userName,email from _sysuser "+where+"order by ccCode asc";
+        String sql = " select ccCode,ccName,userCode,userName,email from _sysuser " + where + "order by ccCode asc";
         List<UserEntity> query = this.jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(UserEntity.class));
-        if(page!=null&&StringUtils.isNotBlank(page.getKey())){
-        //鐩存帴杈撳嚭绗﹀悎鏉′欢鐨勭敤鎴峰垪琛紝娌℃爲褰㈢粨鏋�
-           return query;
-       }else {
-           // 娌℃煡璇mail鏉′欢鍒欒緭鍑烘爲褰㈢粨鏋�
-           List<DepartmentsEntity> departments = query.stream().distinct().map(x -> {
-               DepartmentsEntity departmentsEntity = new DepartmentsEntity();
-               departmentsEntity.setCcCode(x.getCcCode());
-               departmentsEntity.setCcName(x.getCcName());
-               return departmentsEntity;
-           }).collect(Collectors.toList());
-           departments.stream().forEach(x -> {
-               List<UserEntity> collect = query.stream().filter(x1 -> x1.getCcCode().equalsIgnoreCase(x.getCcCode())).collect(Collectors.toList());
-               x.setSubList(collect);
-           });
-           return departments;
-       }
+        if (page != null && StringUtils.isNotBlank(page.getKey())) {
+            //鐩存帴杈撳嚭绗﹀悎鏉′欢鐨勭敤鎴峰垪琛紝娌℃爲褰㈢粨鏋�
+            return query;
+        } else {
+            // 娌℃煡璇mail鏉′欢鍒欒緭鍑烘爲褰㈢粨鏋�
+            List<DepartmentsEntity> departments = query.stream().distinct().map(x -> {
+                DepartmentsEntity departmentsEntity = new DepartmentsEntity();
+                departmentsEntity.setCcCode(x.getCcCode());
+                departmentsEntity.setCcName(x.getCcName());
+                return departmentsEntity;
+            }).collect(Collectors.toList());
+            departments.stream().forEach(x -> {
+                List<UserEntity> collect = query.stream().filter(x1 -> x1.getCcCode().equalsIgnoreCase(x.getCcCode())).collect(Collectors.toList());
+                x.setSubList(collect);
+            });
+            return departments;
+        }
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void followUpSave(T482105Entity entity) {
+        if (StringUtils.isBlank(entity.getContent())) {
+            throw new ApplicationException("璺熻繘鍐呭涓嶈兘涓虹┖");
+        }
+        String sql = "declare     " +
+                "    @companyId           varchar(50), \n" +
+                "    @companyName        nvarchar(100),\n" +
+                "    @userCode           varchar(30), \n" +
+                "    @userName           nvarchar(30),\n" +
+                "    @id                 bigint, \n" +
+                "    @refCode            varchar(50),\n" +
+                "    @enable_flag        bit,         \n" +
+                "    @delete_flag        bit,         \n" +
+                "    @inquiry_id         int,         \n" +
+                "    @comment_count      int,         \n" +
+                "    @content            nvarchar(4000),\n" +
+                "    @plain_content      nvarchar(4000),\n" +
+                "    @latitude           varchar(50), \n" +
+                "    @longitude          varchar(50), \n" +
+                "    @address            nvarchar(200),\n" +
+                "    @attach_list        varchar(150),\n" +
+                "    @followUp_type      nvarchar(20),\n" +
+                "    @followUser         varchar(20),\n" +
+                "    @followUp_next_time datetime,    \n" +
+                "    @create_time        datetime,    \n" +
+                "    @update_time        datetime\n" +
+                " select @companyId=" + GridUtils.prossSqlParm(entity.getCompanyId()) + "\n" +
+                ",@companyName=" + GridUtils.prossSqlParm(entity.getCompanyName()) + "\n" +
+                ",@userCode=" + GridUtils.prossSqlParm(entity.getUserCode()) + "\n" +
+                ",@userName=" + GridUtils.prossSqlParm(entity.getUserName()) + "\n" +
+                ",@id=" + entity.getId() + "\n" +
+                ",@refCode=" + GridUtils.prossSqlParm(entity.getRefCode()) + "\n" +
+                ",@inquiry_id=" + entity.getInquiryId() + "\n" +
+                ",@content=" + GridUtils.prossSqlParm(entity.getContent()) + "\n" +
+                ",@plain_content=" + GridUtils.prossSqlParm(entity.getPlainContent()) + "\n" +
+                ",@latitude=" + GridUtils.prossSqlParm(entity.getLatitude()) + "\n" +
+                ",@longitude=" + GridUtils.prossSqlParm(entity.getLongitude()) + "\n" +
+                ",@address=" + GridUtils.prossSqlParm(entity.getAddress()) + "\n" +
+                ",@attach_list=" + GridUtils.prossSqlParm(entity.getAttachList()) + "\n" +
+                ",@followUp_type=" + GridUtils.prossSqlParm(entity.getFollowUpType()) + "\n" +
+                ",@followUser=" + GridUtils.prossSqlParm(entity.getFollowUser()) + "\n" +
+                ",@followUp_next_time=" + GridUtils.prossSqlParm(entity.getFollowUpNextTime()) + "\n" +
+                (StringUtils.isNotBlank(entity.getCreateTime()) ? ",@create_time=" + GridUtils.prossSqlParm(entity.getCreateTime()) + "\n" : ",@create_time=getdate()       \n") +
+                ",@update_time=getdate()       \n" +
+                " if isnull(@id,'')='' \n" +//鏂板
+                " begin \n" +
+                "     insert into t482105(" +
+                "companyId          \n" +
+                ",companyName        \n" +
+                ",userCode           \n" +
+                ",userName           \n" +
+                ",refCode            \n" +
+                ",inquiry_id         \n" +
+                ",content            \n" +
+                ",plain_content      \n" +
+                ",latitude           \n" +
+                ",longitude          \n" +
+                ",address            \n" +
+                ",attach_list        \n" +
+                ",followUp_type      \n" +
+                ",followUser      \n" +
+                ",followUp_next_time \n" +
+                ",create_time        \n" +
+                ",update_time        " +
+                ")values(" +
+                "@companyId          \n" +
+                ",@companyName        \n" +
+                ",@userCode           \n" +
+                ",@userName           \n" +
+                ",@refCode            \n" +
+                ",@inquiry_id         \n" +
+                ",@content            \n" +
+                ",@plain_content      \n" +
+                ",@latitude           \n" +
+                ",@longitude          \n" +
+                ",@address            \n" +
+                ",@attach_list        \n" +
+                ",@followUp_type      \n" +
+                ",@followUser     \n" +
+                ",@followUp_next_time \n" +
+                ",@create_time        \n" +
+                ",@update_time        )\n" +
+                "end \n" +
+                " else \n" +//淇敼
+                "begin\n" +
+                " update a set \n" +
+                " content=" + GridUtils.prossSqlParm(entity.getContent()) + "\n" +
+                ",plain_content=" + GridUtils.prossSqlParm(entity.getPlainContent()) + "\n" +
+                ",latitude =" + GridUtils.prossSqlParm(entity.getLatitude()) + "\n" +
+                ",longitude=" + GridUtils.prossSqlParm(entity.getLongitude()) + "\n" +
+                ",address=" + GridUtils.prossSqlParm(entity.getAddress()) + "\n" +
+                ",attach_list=" + GridUtils.prossSqlParm(entity.getAttachList()) + "\n" +
+                ",followUp_type=" + GridUtils.prossSqlParm(entity.getFollowUpType()) + "\n" +
+                ",followUser=" + GridUtils.prossSqlParm(entity.getFollowUser()) + "\n" +
+                ",followUp_next_time=" + GridUtils.prossSqlParm(entity.getFollowUpNextTime()) + "\n" +
+                ",update_time=@update_time from t482105 a where id=@id \n " +
+                "end\n";
+        this.doBaseExecute(sql);
+    }
+
+    @Override
+    public Response followUpList(FollowUpRequestEntity request) {
+        String where = "";
+        if (request.getSearchTxt() != null && request.getSearchTxt().size() > 0) {
+            //鎷兼帴鏌ヨ鏉′欢
+            where = " where ( 1=1 ";
+            Set<Map.Entry<String, String>> entries = request.getSearchTxt().entrySet();
+            for (Map.Entry<String, String> entry : entries) {
+                if (entry.getKey().equalsIgnoreCase("refCode")) {
+                    where += "  and refCode=" + GridUtils.prossSqlParm(entry.getValue());
+                }
+                if (entry.getKey().equalsIgnoreCase("followUpType")) {
+                    where += "  and followUp_type=" + GridUtils.prossSqlParm(entry.getValue());
+                }
+                if (entry.getKey().equalsIgnoreCase("formid")) {
+                    request.setFormid(entry.getValue());
+                }
+            }
+            where += ")";
+        }
+        String fileds =
+                " companyId          \n" +
+                        ",companyName        \n" +
+                        ",userCode           \n" +
+                        ",userName           \n" +
+                        ",id,refCode            \n" +
+                        ",inquiry_id         \n" +
+                        ",comment_count      \n" +
+                        ",content            \n" +
+                        ",plain_content      \n" +
+                        ",latitude           \n" +
+                        ",longitude          \n" +
+                        ",address            \n" +
+                        ",attach_list        \n" +
+                        ",followUp_type      \n" +
+                        ",followUser      \n" +
+                        ",followUp_next_time \n" +
+                        ",create_time        \n" +
+                        ",case when convert(varchar(19),dateadd(hh,1,update_time),120)>convert(varchar(19),GETDATE(),120) then 1 else 0 end as deleteFlag" +//1灏忔椂鍐呭彲浠ュ垹闄よ窡杩�
+                        ",update_time ,@TotalRowCount as totalRowCount ,@pageCount as pageCount       ";
+
+        String sql = "set nocount on ; \n" +
+                "                 declare @Limit int , @Page int ,@StartRowNo int ,@EndRowNo int ; \n" +
+                "                 select @Limit  = " + request.getPageSize() + " , @Page  = " + request.getPageNo() + "  ; \n" +
+                "                 declare @TotalRowCount int ,@pageCount int; \n" +
+                " select @StartRowNo = (isnull(@Page,0) - 1) * isnull(@Limit,0) + 1 ; \n" +
+                " select @EndRowNo = isnull(@Page,0) * isnull(@Limit,0) ; \n" +
+                " select @TotalRowCount =count(1),@pageCount=CEILING((COUNT(1)+0.0)/" + request.getPageSize() + ")  from t482105 a   " + where + " \n" +
+                " SELECT * FROM ( \n" +
+                " select top 100 percent ROW_NUMBER() OVER (ORDER BY  a.create_time desc) AS NO,\n" +
+                fileds + "  from t482105 a " + where +
+                " order by  a.create_time desc \n" +
+                " ) t WHERE t.NO  BETWEEN @StartRowNo AND @EndRowNo";
+        List<T482105Entity> list = this.jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(T482105Entity.class));
+        list.stream().forEach(x -> {
+            //澶勭悊鍥剧墖锛岄檮浠讹紝鐢熸垚璋冪敤url鍙婄浉鍏充俊鎭�
+            FileStructEntity fileStructEntity = new FileStructEntity();
+            fileStructEntity.setDbid(request.getDbid());
+            fileStructEntity.setFormid(request.getFormid());
+            fileStructEntity.setFileStr(x.getAttachList());
+            x.setFiles(Utils.getFileEntities(fileStructEntity));
+        });
+        Response response = new Response();
+        response.setTotalCount((list != null && list.size() > 0) ? list.get(0).getTotalRowCount() : 0);
+        response.setPageCount((list != null && list.size() > 0) ? list.get(0).getPageCount() : 0);
+        response.setData(list);
+        return response;
+    }
+
+    @Override
+    public void followUpDel(Integer id) {
+        this.doBaseExecute("delete from t482105 where id=" + id);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void scheduleDel(Integer id) {
+        this.doBaseExecute("delete from t482113 where refid=" + id + " \n delete from t482112 where id=" + id);
+    }
+
+    @Override
+    public void scheduleAttention(T482112Entity entity) {
+        this.doBaseExecute(" update  t482112 set pinFlag=" + entity.getPinFlag() + " where id=" + entity.getId());
+    }
+
+    @Override
+    public void scheduleCompleted(Integer id) {
+        this.doBaseExecute(" update  t482112 set completeFlag=1 where id=" + id);
+    }
+
+    @Override
+    public List<T482117Entity> personalList(String userCode, String groupid) {
+        String where = " isnull(groupId,'')=" + GridUtils.prossSqlParm(groupid);
+        if (StringUtils.equalsIgnoreCase(groupid, "涓汉鍒嗙粍")) {
+            where += " and userCode=" + GridUtils.prossSqlParm(userCode);
+        }
+        return this.jdbcTemplate.query("select quickid,content,companyid ,companyName ,userCode,userName,groupid from t482117 where " + where, new BeanPropertyRowMapper<>(T482117Entity.class));
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void personalSave(List<T482117Entity> list, String userCode) {
+        String sql = "declare @content nvarchar(150),@companyid varchar(50),@companyName nvarchar(150),@userCode varchar(50),@userName nvarchar(50),@groupid varchar(50)='涓汉鍒嗙粍'\n" +
+                "delete from t482117 where userCode=" + GridUtils.prossSqlParm(userCode) + "\n";
+        for (T482117Entity entity : list) {
+            sql += " select @content=" + GridUtils.prossSqlParm(entity.getContent()) + ",@companyid=" + GridUtils.prossSqlParm(entity.getCompanyId()) + ",@companyName =" + GridUtils.prossSqlParm(entity.getCompanyName()) + ",@userCode=" + GridUtils.prossSqlParm(entity.getUserCode()) + ",@userName=" + GridUtils.prossSqlParm(entity.getUserName()) + "\n" +
+                    "insert into t482117(content,companyid,companyName,userCode,userName,groupid) values(@content,@companyid,@companyName,@userCode,@userName,@groupid)\n";
+        }
+        this.doBaseExecute(sql);
+    }
+
+    @Override
+    public Response auditList(String userCode, AuditRequestEntity request) {
+        String where = " where  formid=" + request.getFormid() + " and docCode=" + GridUtils.prossSqlParm(request.getDocCode());
+        String fileds = " userCode,userName,oldValue,newValue,fieldName,auditDateTime,@TotalRowCount as totalRowCount ,@pageCount as pageCount       ";
+
+        String sql = "set nocount on ; \n" +
+                "                 declare @Limit int , @Page int ,@StartRowNo int ,@EndRowNo int ; \n" +
+                "                 select @Limit  = " + request.getPageSize() + " , @Page  = " + request.getPageNo() + "  ; \n" +
+                "                 declare @TotalRowCount int ,@pageCount int; \n" +
+                " select @StartRowNo = (isnull(@Page,0) - 1) * isnull(@Limit,0) + 1 ; \n" +
+                " select @EndRowNo = isnull(@Page,0) * isnull(@Limit,0) ; \n" +
+                " select @TotalRowCount =count(1),@pageCount=CEILING((COUNT(1)+0.0)/" + request.getPageSize() + ")  from _sysAudit a   " + where + " \n" +
+                " SELECT * FROM ( \n" +
+                " select top 100 percent ROW_NUMBER() OVER (ORDER BY  a.auditDateTime desc) AS NO,\n" +
+                fileds + "  from _sysAudit a " + where +
+                " order by  a.auditDateTime desc \n" +
+                " ) t WHERE t.NO  BETWEEN @StartRowNo AND @EndRowNo";
+        List<AuditEntity> list = this.jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(AuditEntity.class));
+        Map<String, List<Map>> maps = new LinkedHashMap<>();
+        List<AuditEntity> collect = list.stream().sorted(Comparator.comparing(AuditEntity::getAuditDateTime).reversed()).distinct().collect(Collectors.toList());
+        collect.stream().forEach(x -> {
+            //鎶婄浉鍚屾椂闂寸殑鏀惧湪鍚屼竴缁勮緭鍑�
+            List<Map> auditEntities = new ArrayList<>();
+            list.stream().forEach(y -> {
+                if (x.getAuditDateTime().equals(y.getAuditDateTime())) {
+                    Map<String, String> map = new HashMap<>();
+                    map.put("oldValue", y.getOldValue());
+                    map.put("newValue", y.getNewValue());
+                    map.put("fieldName", y.getFieldName());
+                    map.put("userCode", y.getUserCode());
+                    map.put("userName", y.getUserName());
+                    auditEntities.add(map);
+                }
+            });
+            maps.put(DateUtil.formatDate(x.getAuditDateTime(), "yyyy-MM-dd HH:mm:ss"), auditEntities);
+        });
+        Response response = new Response();
+        response.setTotalCount((list != null && list.size() > 0) ? list.get(0).getTotalRowCount() : 0);
+        response.setPageCount((list != null && list.size() > 0) ? list.get(0).getPageCount() : 0);
+        response.setData(maps);
+        return response;
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void commentSave(T482104Entity entity) {
+        if (StringUtils.isBlank(entity.getComment())) {
+            throw new ApplicationException("璇勮鍐呭涓嶈兘涓虹┖");
+        }
+        String sql = "declare " +
+                "@userCode varchar(50)\n" +
+                ",@userName varchar(50)\n" +
+                ",@refId int   \n" +
+                ",@id int     \n" +
+                ",@comment varchar(3000)  \n" +
+                ",@attachList varchar(300)  \n" +
+                ",@senders varchar(300)  \n" +
+                ",@createTime datetime\n" +
+                ",@updateTime datetime\n" +
+                " select " +
+                "@userCode=" + GridUtils.prossSqlParm(entity.getUserCode()) + "      ,\n" +
+                "@userName=" + GridUtils.prossSqlParm(entity.getUserName()) + "      ,\n" +
+                "@refId=" + entity.getRefId() + ",   \n" +
+                "@id=" + entity.getId() + ",   \n" +
+                "@comment=" + GridUtils.prossSqlParm(entity.getComment()) + "      ,\n" +
+                "@attachList=" + GridUtils.prossSqlParm(entity.getAttachList()) + "      ,\n" +
+                "@senders=" + GridUtils.prossSqlParm(entity.getSenders()) + "      ,\n" +
+                "@createTime=getdate(),\n" +
+                "@updateTime=getdate()\n" +
+                " if isnull(@id,'')=''\n" +
+                " begin\n" +
+                " insert into t482104(" +
+                " userCode" +
+                ",userName \n" +
+                ",refId  \n" +
+                ",comment \n" +
+                ",attachList\n" +
+                ",senders\n" +
+                ",createTime\n" +
+                ",updateTime)values(" +
+                " @userCode" +
+                ",@userName \n" +
+                ",@refId  \n" +
+                ",@comment\n" +
+                ",@attachList\n" +
+                ",@senders\n" +
+                ",@createTime\n" +
+                ",@updateTime)" +
+                "end\n" +
+                "else\n" +
+                "begin\n" +
+                " update t482104 set " +
+                " userCode=@userCode" +
+                ",userName=@userName \n" +
+                ",refId=@refId  \n" +
+                ",comment=@comment \n" +
+                ",attachList=@attachList\n" +
+                ",senders=@senders\n" +
+                ",updateTime=@updateTime where id=@id\n" +
+                "end\n";
+        this.doBaseExecute(sql);
+
+    }
+
+    /**
+     * 鏃ョ▼鍛ㄦ湡鐨勭敓鎴�
+     * 鏈夎缃懆鏈熸�э紝鍒欓渶瑕佹牴鎹懆鏈熸�ц缃噸澶嶇敓鎴愮浉鍏崇殑鏃ョ▼
+     * 姣忓ぉ渚嬪锛歴tart:2024-8-1,end:2024-8-4
+     * 鎸囧畾缁撴潫鏃堕棿(2024-8-3)锛屽垯鐢熸垚浠庡紑濮嬫椂闂村埌缁撴潫鏃堕棿鐨勭浉鍚屾棩绋�
+     * 2024-8-1,2024-8-2,2024-8-3
+     * 姣忓懆渚嬪锛歴tart:2024-8-1,end:2024-8-24
+     * 鎸囧畾缁撴潫鏃堕棿(2024-8-20)锛屽垯浼氭寜鍛ㄤ竴娆$敓鎴愪粠寮�濮嬫椂闂村埌缁撴潫鏃堕棿鐨勭浉鍚屾棩绋�
+     * 2024-8-1,2024-8-7,2024-8-14
+     * 姣忔湀渚嬪锛歴tart:2024-8-1,end:2024-10-24
+     * 鎸囧畾缁撴潫鏃堕棿(2024-9-20)锛屽垯浼氭寜鍛ㄤ竴娆$敓鎴愪粠寮�濮嬫椂闂村埌缁撴潫鏃堕棿鐨勭浉鍚屾棩绋�
+     * 2024-8-1,2024-9-1
+     *
+     * @param entity
+     * @return
+     */
+    private List<T482112Entity> prossSchedule(T482112Entity entity) {
+        List<T482112Entity> list = new ArrayList<>();
+        if (entity.getType().equalsIgnoreCase("not")) {
+            //娌¤缃垯鐩存帴杩斿洖
+            list.add(entity);
+        } else {
+            if (StringUtils.isBlank(entity.getStartTime())) {
+                throw new ApplicationException("寮�濮嬫棩鏈熶笉鑳戒负绌�");
+            }
+            if (StringUtils.isBlank(entity.getEndTime())) {
+                throw new ApplicationException("缁撴潫鏃ユ湡涓嶈兘涓虹┖");
+            }
+            if (StringUtils.isBlank(entity.getRepeatEnd())) {
+                throw new ApplicationException("鍛ㄦ湡鎬х粨鏉熸棩鏈熶笉鑳戒负绌�");
+            }
+            if (entity.getId() == null || entity.getId() == 0) {//鏂板
+                calRepeatDate(entity, list);
+            } else if (entity.getId() != null && entity.getId() != 0 && entity.getRepeatFlag() == 1) {//淇敼涓旈�夋嫨浜嗙敓鎴愬悗缁噸澶嶆棩绋�
+                //淇敼鎵嶆墽琛�
+                //琛ㄧず闇�瑕佷互褰撳墠閲嶅鏃ョ▼閲嶅鐢熸垚鏂扮殑閲嶅鏃ョ▼
+                calRepeatDate(entity, list);
+            } else {
+                list.add(entity);
+            }
+        }
+        return list;
+    }
+
+    private void calRepeatDate(T482112Entity entity, List<T482112Entity> list) {
+
+        //寮�濮嬫棩鏈�
+        String pattern = "yyyy-MM-dd HH:mm:ss";
+        Calendar calStart = Calendar.getInstance();
+        LocalDateTime start = null;
+        LocalDateTime end = null;
+        LocalDateTime repeatEnd = null;
+        try {
+            start = LocalDateTime.parse(entity.getStartTime(), DateTimeFormatter.ofPattern(pattern));
+
+        } catch (Exception e) {
+            //琛ㄧず娌℃湁鏃堕棿锛岄渶瑕佸鍔�00:00:00锛屼互渚夸笉鍑洪敊
+            start = LocalDateTime.parse(entity.getStartTime() + " 00:00:00", DateTimeFormatter.ofPattern(pattern));
+        }
+        try {
+            end = LocalDateTime.parse(entity.getEndTime(), DateTimeFormatter.ofPattern(pattern));
+        } catch (Exception e) {
+            end = LocalDateTime.parse(entity.getEndTime() + " 00:00:00", DateTimeFormatter.ofPattern(pattern));
+        }
+        try {
+            repeatEnd = LocalDateTime.parse(entity.getRepeatEnd(), DateTimeFormatter.ofPattern(pattern));
+        } catch (Exception e) {
+            repeatEnd = LocalDateTime.parse(entity.getRepeatEnd() + " 00:00:00", DateTimeFormatter.ofPattern(pattern));
+        }
+        calStart.setTime(Date.from(start.atZone(ZoneId.systemDefault()).toInstant()));
+        //缁撴潫鏃ユ湡鍙栧懆鏈熸�ц缃�
+        Calendar calEnd = Calendar.getInstance();
+        calEnd.setTime(Date.from(repeatEnd.atZone(ZoneId.systemDefault()).toInstant()));
+        if (entity.getType().equalsIgnoreCase("everyday")) {
+            //1锛�----姣忓ぉ
+            repeatByDay(entity, list, start, end, pattern, calStart,1);
+        }
+        if (entity.getType().equalsIgnoreCase("everyweek")) {
+            //2锛�----姣忓懆
+            repeatByWeek(entity, list, calStart, calEnd, start, end, pattern,1);
+        }
+        if (entity.getType().equalsIgnoreCase("everymonth")) {
+            //3锛�----姣忔湀
+            repeatByMonth(entity, list, calStart, calEnd, start, end, pattern,1);
+        }
+        if (entity.getType().equalsIgnoreCase("ext")) {
+            if(entity.getNum()==null||entity.getNum()==0){
+                throw  new ApplicationException("鑷畾涔夐噸澶嶅懆鏈焄num]涓嶈兘涓虹┖");
+            }
+            //4锛�----鑷畾涔�
+            if (entity.getType().equalsIgnoreCase("day")) {
+                //1锛�----姣忓ぉ
+                repeatByDay(entity, list, start, end, pattern, calStart,entity.getNum());
+            }
+            if (entity.getType().equalsIgnoreCase("week")) {
+                //2锛�----姣忓懆
+                repeatByWeek(entity, list, calStart, calEnd, start, end, pattern,entity.getNum());
+            }
+            if (entity.getType().equalsIgnoreCase("month")) {
+                //3锛�----姣忔湀
+                repeatByMonth(entity, list, calStart, calEnd, start, end, pattern,entity.getNum());
+            }
+        }
+       // String s=null;
+        //        s.toLowerCase();
+    }
+
+    private static void repeatByDay(T482112Entity entity, List<T482112Entity> list, LocalDateTime start, LocalDateTime end, String pattern, Calendar calStart,int interval) {
+        long dayNumber = (ChronoUnit.DAYS.between(start, end)-1)/interval;
+        list.add(entity);
+        SimpleDateFormat sdf = new SimpleDateFormat(pattern);
+        while (dayNumber > 0) {
+            calStart.add(Calendar.DAY_OF_MONTH, 1);   //鍔犱竴澶�
+            T482112Entity temp = new T482112Entity();
+            BeanUtils.copyProperties(entity, temp);
+            temp.setId(null);
+            String dateStr = sdf.format(calStart.getTime());
+            temp.setStartTime(dateStr);
+            //鏂扮粨鏉熸棩鏈�=鏂扮殑鏃ユ湡+鐩稿樊澶╂暟
+            calStart.add(Calendar.DAY_OF_MONTH, (int) dayNumber);
+            dateStr = sdf.format(calStart.getTime());
+            temp.setEndTime(dateStr);
+            calStart.add(Calendar.DAY_OF_MONTH, -(int) dayNumber);//杩樺師鍥炴潵
+            list.add(temp);
+            dayNumber--;
+        }
+    }
+
+    private void repeatByWeek(T482112Entity entity, List<T482112Entity> list, Calendar calStart, Calendar calEnd, LocalDateTime start, LocalDateTime end, String pattern,int interval) {
+        int start_weekInYear = this.getWeekInYear(calStart.getTime());
+        int end_weekInYear = this.getWeekInYear(calEnd.getTime());
+        long weekNumber = (end_weekInYear-start_weekInYear)/interval;
+        long dayNumber = ChronoUnit.DAYS.between(start, end);
+        list.add(entity);
+        SimpleDateFormat sdf = new SimpleDateFormat(pattern);
+        while (weekNumber > 0) {
+            calStart.add(Calendar.WEEK_OF_YEAR, 1);   //鍔犱竴鍛�
+            T482112Entity temp = new T482112Entity();
+            BeanUtils.copyProperties(entity, temp);
+            temp.setId(null);
+            String dateStr = sdf.format(calStart.getTime());
+            temp.setStartTime(dateStr);
+            //鏂扮粨鏉熸棩鏈�=鏂扮殑鏃ユ湡+鐩稿樊澶╂暟
+            calStart.add(Calendar.DAY_OF_MONTH, (int) dayNumber);
+            dateStr = sdf.format(calStart.getTime());
+            temp.setEndTime(dateStr);
+            calStart.add(Calendar.DAY_OF_MONTH, -(int) dayNumber);//杩樺師鍥炴潵
+            list.add(temp);
+            weekNumber--;
+        }
+    }
+
+    private static void repeatByMonth(T482112Entity entity, List<T482112Entity> list, Calendar calStart, Calendar calEnd, LocalDateTime start, LocalDateTime end, String pattern,int interval) {
+        int start_monthInYear = calStart.get(Calendar.MONTH);
+        int end_monthInYear = calEnd.get(Calendar.MONTH);
+        long monthNumber = (end_monthInYear-start_monthInYear)/interval;
+        long dayNumber = ChronoUnit.DAYS.between(start, end);
+        list.add(entity);
+        SimpleDateFormat sdf = new SimpleDateFormat(pattern);
+        while (monthNumber > 0) {
+            calStart.add(Calendar.MONTH, 1);   //鍔犱竴涓湀
+            T482112Entity temp = new T482112Entity();
+            BeanUtils.copyProperties(entity, temp);
+            temp.setId(null);
+            String dateStr = sdf.format(calStart.getTime());
+            temp.setStartTime(dateStr);
+            //鏂扮粨鏉熸棩鏈�=鏂扮殑鏃ユ湡+鐩稿樊澶╂暟
+            calStart.add(Calendar.DAY_OF_MONTH, (int) dayNumber);
+            dateStr = sdf.format(calStart.getTime());
+            temp.setEndTime(dateStr);
+            calStart.add(Calendar.DAY_OF_MONTH, -(int) dayNumber);//杩樺師鍥炴潵
+            list.add(temp);
+            monthNumber--;
+        }
+    }
+
+    //鑾峰彇鍒版墍浼犳棩鏈熷湪褰撳勾绗嚑鍛�
+    public  int getWeekInYear(Date date){
+        Calendar calendar = Calendar.getInstance();
+        calendar.setFirstDayOfWeek(Calendar.MONDAY);
+        calendar.setTime(date);
+        return calendar.get(Calendar.WEEK_OF_YEAR);
+    }
+    /**
+     * 鍥犱负鏃ュ巻姣旇緝鐢ㄧ殑鏄痶ime灞炴�э紝杩欎釜鍊兼槸鍒涘缓鏃跺�欑敓鎴愶紝灏辩畻浜屼釜鏃ユ湡涓�鏍凤紝涔熶細涓嶄竴鏍枫�傛墍浠ヨ繖閲屽垽鏂勾鏈堟棩锛屾椂鍒嗙
+     *
+     * @param start
+     * @param end
+     * @return
+     */
+    private boolean checkCalendar(Calendar start, Calendar end) {
+        int dayNumber = DateUtil.daysBetween(end.getTime(), start.getTime());
+        if (dayNumber > 0) {
+            return true;
+        } else {
+            return false;
+        }
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void scheduleSave(T482112Entity t482112Entity) {
+        if (StringUtils.isBlank(t482112Entity.getTitle())) {
+            throw new ApplicationException("鏃ョ▼鍐呭涓嶈兘涓虹┖");
+        }
+        String sql = " declare @companyId      varchar(50),\n" +
+                "    @companyName    nvarchar(100),\n" +
+                "    @userCode       varchar(30),\n" +
+                "    @userName       nvarchar(30),\n" +
+                "    @id             bigint,\n" +
+                "    @refType        varchar(20),\n" +
+                "    @refCode        varchar(50) ,\n" +
+                "    @title          nvarchar(100),\n" +
+                "    @color          varchar(10),\n" +
+                "    @participant_id varchar(100),\n" +
+                "    @start_time     datetime,\n" +
+                "    @end_time       datetime,\n" +
+                "    @remark         nvarchar(230),\n" +
+                "    @attach_list    varchar(230),\n" +
+                "    @image_list     varchar(230),\n" +
+                "    @full_day_flag  bit,\n" +
+                "    @create_time    datetime,\n" +
+                "    @update_time    datetime,@last_inserted_id bigint\n" +
+                ",@rule_type varchar(50)" +
+                ",@rule_unit varchar(50)\n" +
+                ",@rule_repeatStart varchar(50)\n" +
+                ",@rule_repeatEnd varchar(50)\n" +
+                ",@rule_num int \n" +
+                ",@remind_refid int \n" +
+                ",@remind_type varchar(50)\n" +
+                ",@remind_time varchar(50)\n";
+        List<T482112Entity> list = this.prossSchedule(t482112Entity);
+        for (T482112Entity entity : list) {
+            sql += " select @companyId=" + GridUtils.prossSqlParm(entity.getCompanyId()) + "      ,\n" +
+                    "@companyName=" + GridUtils.prossSqlParm(entity.getCompanyName()) + "      ,\n" +
+                    "@userCode=" + GridUtils.prossSqlParm(entity.getUserCode()) + "      ,\n" +
+                    "@userName=" + GridUtils.prossSqlParm(entity.getUserName()) + "      ,\n" +
+                    "@id=" + entity.getId() + "      ,\n" +
+                    "@refType=0        ,\n" +
+                    "@refCode=" + GridUtils.prossSqlParm(entity.getRefCode()) + "      ,\n" +
+                    "@title=" + GridUtils.prossSqlParm(entity.getTitle()) + "      ,\n" +
+                    "@color=" + GridUtils.prossSqlParm(entity.getColor()) + "      ,\n" +
+                    "@participant_id =" + GridUtils.prossSqlParm(entity.getParticipantId()) + "      ,\n" +
+                    "@start_time=" + GridUtils.prossSqlParm(entity.getStartTime()) + "      ,\n" +
+                    "@end_time=" + GridUtils.prossSqlParm(entity.getEndTime()) + "      ,\n" +
+                    "@remark=" + GridUtils.prossSqlParm(entity.getRemark()) + "      ,\n" +
+                    "@attach_list=" + GridUtils.prossSqlParm(entity.getAttachList()) + "      ,\n" +
+                    "@image_list=" + GridUtils.prossSqlParm(entity.getImageList()) + "      ,\n" +
+                    "@full_day_flag=" + entity.getFullDayFlag() + "      ,\n" +
+                    "@rule_unit=" + GridUtils.prossSqlParm(entity.getUnit()) + "      ,\n" +
+                    "@rule_type=" + GridUtils.prossSqlParm(entity.getType()) + "      ,\n" +
+                    "@rule_repeatStart=" + GridUtils.prossSqlParm(entity.getRepeatStart()) + "      ,\n" +
+                    "@rule_repeatEnd=" + GridUtils.prossSqlParm(entity.getRepeatEnd()) + "      ,\n" +
+                    "@rule_num =" + entity.getNum() + "      ,\n" +
+                    "@create_time=getdate()    ,\n" +
+                    "@update_time=getdate()    \n" +
+                    "if isnull(@id,'')='' \n" +
+                    " begin\n" +
+                    " insert into t482112(" +
+                    " companyId     \n" +
+                    ",companyName   \n" +
+                    ",userCode      \n" +
+                    ",userName      \n" +
+                    ",refType       \n" +
+                    ",refCode       \n" +
+                    ",title         \n" +
+                    ",color         \n" +
+                    ",participant_id\n" +
+                    ",start_time    \n" +
+                    ",end_time      \n" +
+                    ",remark        \n" +
+                    ",attach_list   \n" +
+                    ",image_list    \n" +
+                    ",full_day_flag \n" +
+                    ",unit      \n" +
+                    ",type        \n" +
+                    ",repeat_Start \n" +
+                    ",repeat_End   \n" +
+                    ",num        " +
+                    ",create_time   \n" +
+                    ",update_time   \n)values(" +
+                    " @companyId     \n" +
+                    ",@companyName   \n" +
+                    ",@userCode      \n" +
+                    ",@userName      \n" +
+                    ",@refType       \n" +
+                    ",@refCode       \n" +
+                    ",@title         \n" +
+                    ",@color         \n" +
+                    ",@participant_id\n" +
+                    ",@start_time    \n" +
+                    ",@end_time      \n" +
+                    ",@remark        \n" +
+                    ",@attach_list   \n" +
+                    ",@image_list    \n" +
+                    ",@full_day_flag \n" +
+                    ",@rule_unit      \n" +
+                    ",@rule_type        \n" +
+                    ",@rule_repeatStart \n" +
+                    ",@rule_repeatEnd   \n" +
+                    ",@rule_num        " +
+                    ",@create_time   \n" +
+                    ",@update_time   )\n" +
+                    " SELECT @last_inserted_id=IDENT_CURRENT('t482112')\n" +
+                    "end\n" +
+                    " else\n" +//淇敼
+                    "begin\n" +
+                    " update t482112 set \n" +
+                    "title=@title        \n" +
+                    ",color =@color        \n" +
+                    ",participant_id=@participant_id\n" +
+                    ",start_time=@start_time    \n" +
+                    ",end_time=@end_time      \n" +
+                    ",remark=@remark        \n" +
+                    ",attach_list=@attach_list   \n" +
+                    ",image_list =@image_list   \n" +
+                    ",unit=@rule_unit      \n" +
+                    ",type=@rule_type        \n" +
+                    ",num=@rule_num        \n" +
+                    ",repeat_Start=@rule_repeatStart \n" +
+                    ",repeat_End=@rule_repeatEnd   \n" +
+                    ",update_time=@update_time\n" +
+                    ",full_day_flag=@full_day_flag \n" +
+                    " SELECT @last_inserted_id=@id\n" +
+                    "end\n" +
+                    AddRemindTimesSql(entity.getRemindTimes());
+        }
+        this.doBaseExecute(sql);
+    }
+
+    /**
+     * 鐢熸垚鍛ㄦ湡鎬ф棩绋嬭缃畇ql
+     *
+     * @param entity
+     * @return
+     */
+    private String AddRemindTimesSql(List<T482113Entity> entity) {
+        //鍙湁鏂板锛屾墍浠ヨ鍏堝叏閮ㄥ垹闄�
+        String sql = " delete from t482113 where refId=@last_inserted_id \n";
+        for (T482113Entity t482113 : entity) {
+            sql += "\nselect\n" +
+                    " @remind_type=" + GridUtils.prossSqlParm(t482113.getType()) + "\n" +
+                    ",@remind_time=" + GridUtils.prossSqlParm(t482113.getTime()) + "\n" +
+                    ",@remind_refid=@last_inserted_id\n" +
+                    " insert into t482113(" +
+                    " refId,      \n" +
+                    "time,      \n" +
+                    "type        \n" +
+                    ")values(" +
+                    "@remind_refid,      \n" +
+                    "@remind_time,      \n" +
+                    "@remind_type       \n" +
+                    ")\n";
+        }
+        return sql;
+    }
+
+    @Override
+    public Response scheduleList(ScheduleRequestEntity request) {
+        String where = "";
+        if (request.getSearchTxt() == null) {
+            throw new ApplicationException("鏌ヨ鍙傛暟涓嶈兘閮戒负绌�");
+        } else {
+            String refCode = request.getSearchTxt().get("refCode");
+            if (refCode == null) {
+                throw new ApplicationException("refCode鍙傛暟涓嶈兘閮戒负绌�");
+            }
+            where = " where  refCode=" + GridUtils.prossSqlParm(refCode);
+            String completeFlag = request.getSearchTxt().get("completeFlag");
+            if (completeFlag == null) {
+                where += " and isnull(completeFlag,0)=0";
+            } else {
+                where += " and isnull(completeFlag,0)=" + completeFlag;
+            }
+        }
+        String fileds = "refType       \n" +
+                ",id,refCode       \n" +
+                ",title         \n" +
+                ",color         \n" +
+                ",participant_id\n" +
+                ",start_time    \n" +
+                ",end_time      \n" +
+                ",remark        \n" +
+                ",attach_list   \n" +
+                ",image_list    \n" +
+                ",full_day_flag \n" +
+                ",unit      \n" +
+                ",type        \n" +
+                ",repeat_Start \n" +
+                ",repeat_End   \n" +
+                ",num        " +
+                ",create_time   \n" +
+                ",update_time   \n" +
+                ",@TotalRowCount as totalRowCount ,@pageCount as pageCount       ";
+
+        String sql = "set nocount on ; \n" +
+                "                 declare @Limit int , @Page int ,@StartRowNo int ,@EndRowNo int ; \n" +
+                "                 select @Limit  = " + request.getPageSize() + " , @Page  = " + request.getPageNo() + "  ; \n" +
+                "                 declare @TotalRowCount int ,@pageCount int; \n" +
+                " select @StartRowNo = (isnull(@Page,0) - 1) * isnull(@Limit,0) + 1 ; \n" +
+                " select @EndRowNo = isnull(@Page,0) * isnull(@Limit,0) ; \n" +
+                " select @TotalRowCount =count(1),@pageCount=CEILING((COUNT(1)+0.0)/" + request.getPageSize() + ")  from t482112 a   " + where + " \n" +
+                " SELECT * FROM ( \n" +
+                " select top 100 percent ROW_NUMBER() OVER (ORDER BY  a.update_time desc) AS NO,\n" +
+                fileds + "  from t482112 a " + where +
+                " order by  a.update_time desc \n" +
+                " ) t WHERE t.NO  BETWEEN @StartRowNo AND @EndRowNo";
+        List<T482112Entity> list = this.jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(T482112Entity.class));
+
+        list.stream().forEach(x -> {
+            if (StringUtils.isNotBlank(x.getAttachList())) {
+                FileStructEntity fileStructEntity = new FileStructEntity();
+                fileStructEntity.setDbid(request.getDbid());
+                fileStructEntity.setFormid(request.getFormId() + "");
+                fileStructEntity.setFileStr(x.getAttachList());
+                x.setFiles(Utils.getFileEntities(fileStructEntity));
+            }
+        });
+        Response response = new Response();
+        response.setTotalCount((list != null && list.size() > 0) ? list.get(0).getTotalRowCount() : 0);
+        response.setPageCount((list != null && list.size() > 0) ? list.get(0).getPageCount() : 0);
+        response.setData(list);
+        return response;
+    }
+
+    @Override
+    public Response commentList(CommentRequestEntity request) {
+        String where = "";
+        if (request.getSearchTxt() == null) {
+            throw new ApplicationException("鏌ヨ鍙傛暟涓嶈兘閮戒负绌�");
+        } else {
+            String refId = request.getSearchTxt().get("refId");
+            if (refId == null) {
+                throw new ApplicationException("refId鍙傛暟涓嶈兘閮戒负绌�");
+            }
+            where = " where  refId=" + GridUtils.prossSqlParm(refId);
+        }
+        String fileds = "userCode,  \n" +
+                "userName,  \n" +
+                " refId,    \n" +
+                " id,       \n" +
+                "comment,   \n" +
+                "attachList,\n" +
+                "convert(varchar(19), createTime,120) as createTime,senders,\n" +
+                "convert(varchar(19), updateTime,120)  as updateTime" +
+                ",case when usercode=@usercode then 1 else 0 end as enableFlag,@TotalRowCount as totalRowCount ,@pageCount as pageCount       ";
+
+        String sql = "set nocount on ; \n" +
+                "                 declare @Limit int , @Page int ,@StartRowNo int ,@EndRowNo int ,@usercode varchar(50)=" + GridUtils.prossSqlParm(request.getUserCode()) + " \n" +
+                "                 select @Limit  = " + request.getPageSize() + " , @Page  = " + request.getPageNo() + "  ; \n" +
+                "                 declare @TotalRowCount int ,@pageCount int; \n" +
+                " select @StartRowNo = (isnull(@Page,0) - 1) * isnull(@Limit,0) + 1 ; \n" +
+                " select @EndRowNo = isnull(@Page,0) * isnull(@Limit,0) ; \n" +
+                " select @TotalRowCount =count(1),@pageCount=CEILING((COUNT(1)+0.0)/" + request.getPageSize() + ")  from t482104 a   " + where + " \n" +
+                " SELECT * FROM ( \n" +
+                " select top 100 percent ROW_NUMBER() OVER (ORDER BY  a.updateTime desc) AS NO,\n" +
+                fileds + "  from t482104 a " + where +
+                " order by  a.updateTime desc \n" +
+                " ) t WHERE t.NO  BETWEEN @StartRowNo AND @EndRowNo";
+        List<T482104Entity> list = this.jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(T482104Entity.class));
+
+        list.stream().forEach(x -> {
+            if (StringUtils.isNotBlank(x.getAttachList())) {
+                FileStructEntity fileStructEntity = new FileStructEntity();
+                fileStructEntity.setDbid(request.getDbid());
+                fileStructEntity.setFormid(request.getFormId() + "");
+                fileStructEntity.setFileStr(x.getAttachList());
+                x.setFiles(Utils.getFileEntities(fileStructEntity));
+            }
+        });
+        Response response = new Response();
+        response.setTotalCount((list != null && list.size() > 0) ? list.get(0).getTotalRowCount() : 0);
+        response.setPageCount((list != null && list.size() > 0) ? list.get(0).getPageCount() : 0);
+        response.setData(list);
+        return response;
+    }
+
+    @Override
+    public void commentDel(Integer id) {
+        this.doBaseExecute("delete from t482104 where id=" + id);
     }
 }

--
Gitblit v1.8.0