From 7204e3dff0490732e861ccd1338e3e3c31d768c6 Mon Sep 17 00:00:00 2001
From: fs-danaus <danaus314@qq.com>
Date: 星期五, 09 八月 2024 11:14:47 +0800
Subject: [PATCH] crm线索列表接口及代码整理

---
 src/com/yc/crm/clues/service/CluesServiceImpl.java |  252 +++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 208 insertions(+), 44 deletions(-)

diff --git a/src/com/yc/crm/clues/service/CluesServiceImpl.java b/src/com/yc/crm/clues/service/CluesServiceImpl.java
index 9390218..453637f 100644
--- a/src/com/yc/crm/clues/service/CluesServiceImpl.java
+++ b/src/com/yc/crm/clues/service/CluesServiceImpl.java
@@ -1,6 +1,7 @@
 package com.yc.crm.clues.service;
 
 import com.yc.action.grid.GridUtils;
+import com.yc.crm.base.entity.Response;
 import com.yc.crm.clues.entity.*;
 import com.yc.service.BaseService;
 import org.apache.commons.lang3.StringUtils;
@@ -9,10 +10,9 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.stream.Collectors;
+import java.util.Set;
 
 @Service
 public class CluesServiceImpl extends BaseService implements CluesServiceIfc{
@@ -117,7 +117,7 @@
                 "@PostDate=getdate() ,           \n" +
                 "@CreateUsercode="+ GridUtils.prossSqlParm(t481101Entity.getCreateUsercode()) +",         \n" +
                 "@CreateUserName="+ GridUtils.prossSqlParm(t481101Entity.getCreateUserName()) +" ,        \n" +
-                "@isRead =0,           \n" +
+                "@isRead ="+t481101Entity.getIsRead()+",           \n" +//TODO 鑷繁鏂板缓锛宨sRead=1,鍏朵粬浜�
                 "@Email=null,             \n" +
                 "@Country ="+ GridUtils.prossSqlParm(t481101Entity.getCountry()) +",         \n" +
                 "@Address ="+ GridUtils.prossSqlParm(t481101Entity.getAddress()) +",         \n" +
@@ -277,34 +277,198 @@
                 contactUpdateSql(t481101Entity.getContactsList())   +
                 "end\n" +
                 "";
-        System.out.println("clues:"+sql);
+        //System.out.println("clues:"+sql);
         this.doBaseExecute(sql);
     }
 
+
+
     @Override
-    public Map getBaseInfo() {
-        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)\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()));
-        return map;
+    public Response getAllClues(CluesRequestEntity request) {
+        String fileds="" +
+                "a.DocCode                 \n" +
+                ",a.FormID                 \n" +
+                ",a.DocStatus              \n" +
+                ",a.DocStatusName          \n" +
+                ",a.companyid              \n" +
+                ",a.companyname            \n" +
+                ",a.EnterCode              \n" +
+                ",a.EnterName              \n" +
+                ",a.EnterDate              \n" +
+                ",a.ModifyName             \n" +
+                ",a.ModifyDate             \n" +
+                ",a.PostName               \n" +
+                ",a.PostDate               \n" +
+                ",a.CreateUsercode         \n" +
+                ",a.CreateUserName         \n" +
+                ",a.Country                \n" +
+                ",a.HDMemo                 \n" +
+                ",a.clues_name             \n" +
+                ",a.archive_time           \n" +
+                ",a.order_time             \n" +
+                ",a.lost_day_count         \n" +
+                ",a.transfer_count         \n" +
+                ",a.release_count          \n" +
+                ",a.is_archive             \n" +
+                ",a.archive_type           \n" +
+                ",a.status_id              \n" +
+                ",a.status                 \n" +
+                ",a.follow_up_time         \n" +
+                ",a.fail_type              \n" +
+                ",a.fail_status            \n" +
+                ",a.fail_status_name       \n" +
+                ",a.fail_reason            \n" +
+                ",a.read_flag              \n" +
+                ",a.last_edit_user         \n" +
+                ",a.edit_time              \n" +
+                ",a.private_time           \n" +
+                ",a.public_time            \n" +
+                ",a.is_public              \n" +
+                ",a.store_id               \n" +
+                ",a.star                  \n" +
+                ",a.transform_task_status  \n" +
+                ",a.next_follow_up_time    \n" +
+                ",a.duplicate_flag         \n" +
+                ",a.tagList                \n" +
+                ",a.homepage               \n" +
+                ",a.origin_list            \n" +
+                ",a.short_name             \n" +
+                ",a.corporate_name         \n" +
+                ",a.biz_type               \n" +
+                ",a.tel_area_code          \n" +
+                ",a.tel                    \n" +
+                ",a.intention_level        \n" +
+                ",a.annual_procurement     \n" +
+                ",a.timezone               \n" +
+                ",a.ad_keyword             \n" +
+                ",a.image_list             \n" +
+                ",a.scale_id               \n" +
+                ",a.seller                 \n" +
+                ",a.inquiry_origin         \n" +
+                ",a.category_ids           \n" +
+                ",a.inquiry_country        \n" +
+                ",b.id               \n" +
+                ",b.refCode           \n" +
+                ",b.ownerCode         \n" +
+                ",b.ownerName         \n" +
+                ",b.enterTime         \n" +
+                ",b.exitTime          \n" +
+                ",b.isRead as hasRead          \n" +
+                ",b.reasonForRollback \n" +
+                ",b.costs             \n" +
+                ",b.pinFlag  as hasPinFlag        \n" +
+                ",b.firstFllowUpTime  \n" +
+                ",b.lastModifyTime   \n" +
+                ",b.daysNotContacted " +
+                ",@TotalRowCount as totalRowCount ,@pageCount as pageCount              \n";
+        String where=" 1=1 ";
+        if(request.getSearchTxt()!=null&&request.getSearchTxt().size()>0) {
+            //鎷兼帴鏌ヨ鏉′欢
+            where+= getSearchInfo(request);
+        }
+        String sql="set nocount on ; \n" +
+//                "                 declare @key varchar(300)  \n" +
+//                "                 select @key ="+1+" \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 t481101h a left join t481104h b on a.docCode=b.refCode where "+where+" \n" +
+                " SELECT * FROM ( \n" +
+                " select top 100 percent ROW_NUMBER() OVER (ORDER BY  docCode) AS NO,\n" +
+                fileds+"  from t481101h a left join t481104h b on a.docCode=b.refCode\n" +
+                " where " +where+
+                " order by  a.docCode asc \n" +
+                " ) t WHERE t.NO  BETWEEN @StartRowNo AND @EndRowNo";
+        List<T481104Entity> list = this.jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(T481104Entity.class));
+        //澧炲姞鑱旂郴浜鸿緭鍑�
+        if(list!=null&&list.size()>0){
+            list.stream().forEach(x->{
+                List<T482103Entity> query = this.jdbcTemplate.query("select main_customer_flag\n" +
+                        ",refCode,id           \n" +
+                        ",name              \n" +
+                        ",email             \n" +
+                        ",gender            \n" +
+                        ",post              \n" +
+                        ",remark            \n" +
+                        ",image_list        \n" +
+                        ",birth             \n" +
+                        ",post_grade        \n" +
+                        ",growth_level      \n" +
+                        ",create_time       \n" +
+                        ",update_time       \n" +
+                        ",DocVersion        \n from t482103 where refCode=" + GridUtils.prossSqlParm(x.getDocCode()), new BeanPropertyRowMapper<>(T482103Entity.class));
+                if(query!=null&&query.size()>0){
+                    query.stream().forEach(y->{
+                        //--绀句氦骞冲彴
+                        List<T482111Entity> mediaList = this.jdbcTemplate.query("select \n" +
+                                "refId,id           \n" +
+                                ",value              \n" +
+                                ",type             from t482111 where refId=" +y.getId(), new BeanPropertyRowMapper<>(T482111Entity.class));
+                        y.setMediaList(mediaList);
+                        //鐢佃瘽鍒楄〃
+                        List<T482116Entity> telList = this.jdbcTemplate.query("select " +
+                                "refId,id,areaCode,tel  from t482116 where refId=" + y.getId(), new BeanPropertyRowMapper<>(T482116Entity.class));
+                        y.setTelList(telList);
+                    });
+                }
+                x.setContactsList(query);
+            });
+        }
+        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;
+    }
+   @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void assign(AssignCluesEntity assignClues) {
+        String sql=" declare @refCode varchar(20),@ownerCode varchar(20),@ownerName varchar(20)\n" +
+                "select @refCode=" +GridUtils.prossSqlParm(assignClues.getDocCode())+",@ownerCode=" +GridUtils.prossSqlParm(assignClues.getOwnerCode())+",@ownerName=" +GridUtils.prossSqlParm(assignClues.getOwnerName())+"\n"+
+                " insert into t481104h(refCode          \n" +
+                ",ownerCode        \n" +
+                ",ownerName        \n" +
+                ",enterTime       \n)values(@refCode,@ownerCode,@ownerName,getdate())";
+        this.doBaseExecute(sql);
+    }
+    /**
+     * 鎷兼帴鏌ヨ鏉′欢
+     * @param request
+     * @return
+     */
+    private String getSearchInfo(CluesRequestEntity request) {
+        String where=" and(1=1  ";
+        Set<Map.Entry<String, String>> entries = request.getSearchTxt().entrySet();
+        for (Map.Entry<String, String> entry : entries) {
+            if(entry.getKey().equalsIgnoreCase("cluesName")){
+                where+=" and a.clues_name like '%"+entry.getValue()+"%'";
+            }
+            if(entry.getKey().equalsIgnoreCase("isRead")){
+                where+=" and isnull(b.isRead,0)="+entry.getValue();
+            }
+            if(entry.getKey().equalsIgnoreCase("pinFlag")){
+                where+=" and isnull(b.pinFlag,0)="+entry.getValue();
+            }
+            if(entry.getKey().equalsIgnoreCase("ownerCode")){
+                where+=" and b.ownerCode = '%"+entry.getValue()+"%'";
+            }
+            if(entry.getKey().equalsIgnoreCase("lastModifyTime")){
+                String[] value=entry.getValue().split(";");
+
+                where+=" and (b.lastModifyTime >= DATEADD(day, -"+value[0]+", CAST(GETDATE() AS date))  )";//TODO 鍚庢湡澧炲姞澶勭悊鑱旂郴锛屾湭鑱旂郴鍔熻兘
+            }
+        }
+        return where+" )";
     }
 
-    private String contactUpdateSql(List<CrmContactsEntity> contactsList) {
+    private String contactUpdateSql(List<T482103Entity> contactsList) {
         if(contactsList==null||contactsList.size()==0){ return "";}
         String sql="";
-        for(CrmContactsEntity contact:contactsList){
+        for(T482103Entity contact:contactsList){
             if(StringUtils.isNotBlank(contact.getRefCode())&&contact.getId()==null){
-                List<CrmContactsEntity> temp=new ArrayList<CrmContactsEntity>();
+                List<T482103Entity> temp=new ArrayList<T482103Entity>();
                 temp.add(contact);
                sql+= contactAddSql(temp);
                 continue;
@@ -321,7 +485,7 @@
                     ",@birth="+GridUtils.prossSqlParm(contact.getBirth())+"\n" +
                     ",@post_grade="+GridUtils.prossSqlParm(contact.getPostGrade())+"\n" +
                     ",@update_time=getdate()\n       " +
-                    " update crm_contacts set\n" +
+                    " update t482103 set\n" +
                     "main_customer_flag=@main_customer_flag \n" +
                     ",name=@name               \n" +
                     ",email=@contact_email      \n" +
@@ -331,7 +495,7 @@
                     ",image_list=@contact_image_list \n" +
                     ",birth=@birth              \n" +
                     ",post_grade=@post_grade         \n" +
-                    ",update_time=@update_time   from   crm_contacts where id=@id \n  " +
+                    ",update_time=@update_time   from   t482103 where id=@id \n  " +
                     " select @last_inserted_id=@id\n" +
                     mediaUpdateSql(contact.getMediaList())+
                     telListUpdateSql(contact.getTelList());
@@ -345,10 +509,10 @@
      * @param contactsList
      * @return
      */
-    private String contactAddSql(List<CrmContactsEntity> contactsList) {
+    private String contactAddSql(List<T482103Entity> contactsList) {
         if(contactsList==null||contactsList.size()==0){ return "";}
         String sql="" ;
-        for(CrmContactsEntity contact:contactsList){
+        for(T482103Entity contact:contactsList){
                     sql+="\nselect\n" +
                             " @main_customer_flag="+contact.getMainCustomerFlag()+"\n" +
                             ",@refCode=@doccode\n" +
@@ -362,7 +526,7 @@
                             ",@post_grade="+GridUtils.prossSqlParm(contact.getPostGrade())+"\n" +
                             ",@create_time =getdate()      \n" +
                             ",@update_time=getdate()\n       " +
-                            " insert into crm_contacts(" +
+                            " insert into t482103(" +
                             "main_customer_flag \n" +
                             ",refCode            \n" +
                             ",name               \n" +
@@ -389,7 +553,7 @@
                             ",@create_time        \n" +
                             ",@update_time        " +
                             ")\n" +
-                            " SELECT @last_inserted_id=IDENT_CURRENT('crm_contacts')\n"+
+                            " SELECT @last_inserted_id=IDENT_CURRENT('t482103')\n"+
                             mediaAddSql(contact.getMediaList())+
                             telListAddSql(contact.getTelList())
                     ;
@@ -401,15 +565,15 @@
      * @param mediaEntityList
      * @return
      */
-    private String mediaAddSql(List<CrmMediaEntity> mediaEntityList) {
+    private String mediaAddSql(List<T482111Entity> mediaEntityList) {
         if(mediaEntityList==null||mediaEntityList.size()==0){ return "";}
         String sql="";
-        for(CrmMediaEntity contact:mediaEntityList){
+        for(T482111Entity contact:mediaEntityList){
             sql+="\nselect\n" +
                     " @media_type="+GridUtils.prossSqlParm(contact.getType())+"\n" +
                     ",@media_value="+GridUtils.prossSqlParm(contact.getValue())+"\n" +
                     ",@media_refid=@last_inserted_id\n" +
-                    " insert into crm_media(" +
+                    " insert into t482111(" +
                     "type \n" +
                     ",value,refid            \n" +
                     ")values(" +
@@ -425,12 +589,12 @@
      * @param mediaEntityList
      * @return
      */
-    private String mediaUpdateSql(List<CrmMediaEntity> mediaEntityList) {
+    private String mediaUpdateSql(List<T482111Entity> mediaEntityList) {
         if(mediaEntityList==null||mediaEntityList.size()==0){ return "";}
         String sql="";
-        for(CrmMediaEntity mediaEntity:mediaEntityList){
+        for(T482111Entity mediaEntity:mediaEntityList){
             if(mediaEntity.getRefId()==null){
-                List<CrmMediaEntity> temp=new ArrayList<>();
+                List<T482111Entity> temp=new ArrayList<>();
                 temp.add(mediaEntity);
                 sql+=mediaAddSql(temp);
                 continue;
@@ -438,9 +602,9 @@
             sql+="\nselect\n" +
                     " @media_type="+GridUtils.prossSqlParm(mediaEntity.getType())+"\n" +
                     ",@media_value="+GridUtils.prossSqlParm(mediaEntity.getValue())+"\n" +
-                    "  update crm_media set " +
+                    "  update t482111 set " +
                     "type=@media_type \n" +
-                    ",value=@media_value from crm_media where   refid=@last_inserted_id       \n" ;
+                    ",value=@media_value from t482111 where   refid=@last_inserted_id       \n" ;
         }
         return sql;
     }
@@ -449,15 +613,15 @@
      * @param telListEntities
      * @return
      */
-    private String telListAddSql(List<CrmTelListEntity> telListEntities) {
+    private String telListAddSql(List<T482116Entity> telListEntities) {
         if(telListEntities==null||telListEntities.size()==0){ return "";}
         String sql="";
-        for(CrmTelListEntity contact:telListEntities){
+        for(T482116Entity contact:telListEntities){
             sql+="\nselect\n" +
                     " @areaCode="+GridUtils.prossSqlParm(contact.getAreaCode())+"\n" +
                     ",@telList_tel="+GridUtils.prossSqlParm(contact.getTel())+"\n" +
                     ",@telList_refid=@last_inserted_id\n" +
-                    " insert into crm_tellist(" +
+                    " insert into t482116(" +
                     "areaCode \n" +
                     ",tel ,refid           \n" +
                     ")values(" +
@@ -473,12 +637,12 @@
      * @param telListEntities
      * @return
      */
-    private String telListUpdateSql(List<CrmTelListEntity> telListEntities) {
+    private String telListUpdateSql(List<T482116Entity> telListEntities) {
         if(telListEntities==null||telListEntities.size()==0){ return "";}
         String sql="";
-        for(CrmTelListEntity telListEntity:telListEntities){
+        for(T482116Entity telListEntity:telListEntities){
             if(telListEntity.getRefId()==null){
-                List<CrmTelListEntity> temp=new ArrayList<>();
+                List<T482116Entity> temp=new ArrayList<>();
                 temp.add(telListEntity);
                 sql+=telListAddSql(temp);
                 continue;
@@ -487,10 +651,10 @@
                     " @areaCode="+GridUtils.prossSqlParm(telListEntity.getAreaCode())+"\n" +
                     ",@telList_tel="+GridUtils.prossSqlParm(telListEntity.getTel())+"\n" +
                     ",@telList_refid=@last_inserted_id\n" +
-                    " update  crm_tellist set " +
+                    " update  t482116 set " +
                     "areaCode=@areaCode \n" +
                     ",tel=@telList_tel            \n" +
-                    " from crm_tellist where refid=@telList_refid\n";
+                    " from t482116 where refid=@telList_refid\n";
         }
         return sql;
     }

--
Gitblit v1.8.0