ソースを参照

关联经销商同步上线自动维护

njs 2 年 前
コミット
11d4139b41

+ 14 - 0
suishenbang-common/src/main/java/com/dgtly/common/utils/DateUtils.java

@@ -41,6 +41,20 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
         return new Date();
     }
 
+    /**
+     * 获取昨日型日期
+     *
+     * @return 获取昨天日期
+     */
+    public static Date  getYesterDate() throws ParseException {
+        Calendar cal=Calendar.getInstance();
+        cal.add(Calendar.DATE,-1);
+        Date d=cal.getTime();
+        SimpleDateFormat sp=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        String ZUOTIAN=sp.format(d);
+        Date yesterDate=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(ZUOTIAN);
+        return yesterDate;
+    }
     /**
      * 获取当前日期, 默认格式为yyyy-MM-dd
      * 

+ 11 - 0
suishenbang-system/src/main/java/com/dgtly/system/domain/AssRelcustomerinfo.java

@@ -41,6 +41,16 @@ public class AssRelcustomerinfo extends BaseEntity
 
     private String userId;
 
+    private String customerType;
+
+    public String getCustomerType() {
+        return customerType;
+    }
+
+    public void setCustomerType(String customerType) {
+        this.customerType = customerType;
+    }
+
     public void setUserId(String userId)
     {
         this.userId = userId;
@@ -159,6 +169,7 @@ public class AssRelcustomerinfo extends BaseEntity
             .append("glsj", getGlsj())
             .append("enddate", getEnddate())
             .append("etlCreatetime", getEtlCreatetime())
+            .append("customerType", getCustomerType())
             .toString();
     }
 }

+ 10 - 1
suishenbang-system/src/main/java/com/dgtly/system/mapper/AssRelcustomerinfoMapper.java

@@ -67,10 +67,19 @@ public interface AssRelcustomerinfoMapper
 
     List<AssRelcustomerinfo> selectRelcustomerinfoListByorgCode(@Param("orgCode") String orgCode ,@Param("userId")String userId);
 
-    void relationCustomerOnlineSync();
+    void relationCustomerOnlineSync(AssRelcustomerinfo ass);
 
     String selectCustomerName(@Param("customerId") String customerId);
 
     List<AssRelcustomerinfo> selectRelcustomerinfoByKunnr(@Param("kunnr") String kunnr,@Param("userId") String userId);
     List<AssRelcustomerinfo> selectCustomerNameAndCode();
+
+    List<AssRelcustomerinfo> selectAssRelCustomer();
+
+    List<String> selectCustomerStart(@Param("customerCode") String customerCode,@Param("customerType") int customerType,@Param("type") int type);
+
+    List<String> selectCustomerByCustomerCode(@Param("customerCode") String customerCode);
+
+    public void deleteCustomerStartByCustomerCode(@Param("customerCode") String customerCode);
+
 }

+ 2 - 1
suishenbang-system/src/main/java/com/dgtly/system/service/IAssRelcustomerinfoService.java

@@ -3,6 +3,7 @@ package com.dgtly.system.service;
 import com.dgtly.system.domain.AssRelcustomerinfo;
 import org.apache.ibatis.annotations.Param;
 
+import java.text.ParseException;
 import java.util.List;
 
 /**
@@ -69,6 +70,6 @@ public interface IAssRelcustomerinfoService
 
     List<AssRelcustomerinfo> selectRelcustomerinfoByKunnr(String kunnr,String userId);
 
-    void relationCustomerOnlineSync();
+    void relationCustomerOnlineSync() throws ParseException;
     String selectCustomerName(String customerId);
 }

+ 91 - 2
suishenbang-system/src/main/java/com/dgtly/system/service/impl/AssRelcustomerinfoServiceImpl.java

@@ -1,6 +1,9 @@
 package com.dgtly.system.service.impl;
 
+import java.text.ParseException;
+import java.util.Iterator;
 import java.util.List;
+
 import com.dgtly.common.utils.DateUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -116,8 +119,94 @@ public class AssRelcustomerinfoServiceImpl implements IAssRelcustomerinfoService
     }
 
     @Override
-    public void relationCustomerOnlineSync() {
-        assRelcustomerinfoMapper.relationCustomerOnlineSync();
+    public void relationCustomerOnlineSync() throws ParseException {
+        List<AssRelcustomerinfo> assRelList= assRelcustomerinfoMapper.selectAssRelCustomer();
+       if(assRelList !=null && assRelList.size()>0){
+        for (AssRelcustomerinfo ass:assRelList
+             ) {
+            if(ass.getCustomerType()!=null && ass.getCustomerType() !="") {
+                List<String> typesMain = assRelcustomerinfoMapper.selectCustomerStart(ass.getMainkunnr(), Integer.valueOf(ass.getCustomerType()),0);
+                List<String> typekuur = assRelcustomerinfoMapper.selectCustomerStart(ass.getKunnr(), Integer.valueOf(ass.getCustomerType()),0);
+                if (typesMain.size() > 0 && typekuur.size() == 0) {
+                    List<String> isyncList=assRelcustomerinfoMapper.selectCustomerByCustomerCode(ass.getKunnr());
+                    if(isyncList.size()>0){
+                        AssRelcustomerinfo assinfo = new AssRelcustomerinfo();
+                        assinfo.setMainkunnr(ass.getKunnr());
+                        assinfo.setMainname1(ass.getName1());
+                        assinfo.setUpdateTime(DateUtils.getYesterDate());
+                        assinfo.setCustomerType("3");
+                        assRelcustomerinfoMapper.deleteCustomerStartByCustomerCode(ass.getKunnr());
+                        assRelcustomerinfoMapper.relationCustomerOnlineSync(assinfo);
+                    }else{
+                    AssRelcustomerinfo assinfo = new AssRelcustomerinfo();
+                    assinfo.setMainkunnr(ass.getKunnr());
+                    assinfo.setMainname1(ass.getName1());
+                    assinfo.setUpdateTime(DateUtils.getYesterDate());
+                    assinfo.setCustomerType(ass.getCustomerType());
+                    assRelcustomerinfoMapper.relationCustomerOnlineSync(assinfo);
+                    }
+                } else if (typesMain.size() == 0 && typekuur.size() > 0) {
+                    List<String> isyncList=assRelcustomerinfoMapper.selectCustomerByCustomerCode(ass.getMainkunnr());
+                    if(isyncList.size()>0){
+                        AssRelcustomerinfo assinfo = new AssRelcustomerinfo();
+                        assinfo.setMainkunnr(ass.getMainkunnr());
+                        assinfo.setMainname1(ass.getMainname1());
+                        assinfo.setUpdateTime(DateUtils.getYesterDate());
+                        assinfo.setCustomerType("3");
+                        assRelcustomerinfoMapper.deleteCustomerStartByCustomerCode(ass.getMainkunnr());
+                        assRelcustomerinfoMapper.relationCustomerOnlineSync(assinfo);
+                    }else{
+                    AssRelcustomerinfo assinfo = new AssRelcustomerinfo();
+                    assinfo.setMainkunnr(ass.getMainkunnr());
+                    assinfo.setMainname1(ass.getMainname1());
+                    assinfo.setUpdateTime(DateUtils.getYesterDate());
+                    assinfo.setCustomerType(ass.getCustomerType());
+                    assRelcustomerinfoMapper.relationCustomerOnlineSync(assinfo);
+                    }
+                }
+                List<String> typesMain3 = assRelcustomerinfoMapper.selectCustomerStart(ass.getMainkunnr(), Integer.valueOf(ass.getCustomerType()),3);
+                List<String> typekuur3 = assRelcustomerinfoMapper.selectCustomerStart(ass.getKunnr(), Integer.valueOf(ass.getCustomerType()),3);
+                if (typesMain3.size() > 0 && typekuur3.size() == 0) {
+                    List<String> isyncList=assRelcustomerinfoMapper.selectCustomerByCustomerCode(ass.getKunnr());
+                    if(isyncList.size()>0){
+                        AssRelcustomerinfo assinfo = new AssRelcustomerinfo();
+                        assinfo.setMainkunnr(ass.getKunnr());
+                        assinfo.setMainname1(ass.getName1());
+                        assinfo.setUpdateTime(DateUtils.getYesterDate());
+                        assinfo.setCustomerType("3");
+                        assRelcustomerinfoMapper.deleteCustomerStartByCustomerCode(ass.getKunnr());
+                        assRelcustomerinfoMapper.relationCustomerOnlineSync(assinfo);
+                    }else{
+                    AssRelcustomerinfo assinfo = new AssRelcustomerinfo();
+                    assinfo.setMainkunnr(ass.getKunnr());
+                    assinfo.setMainname1(ass.getName1());
+                    assinfo.setUpdateTime(DateUtils.getYesterDate());
+                    assinfo.setCustomerType(ass.getCustomerType());
+                    assRelcustomerinfoMapper.relationCustomerOnlineSync(assinfo);
+                    }
+                } else if (typesMain3.size() == 0 && typekuur3.size() > 0) {
+                    List<String> isyncList=assRelcustomerinfoMapper.selectCustomerByCustomerCode(ass.getMainkunnr());
+                    if(isyncList.size()>0){
+                        AssRelcustomerinfo assinfo = new AssRelcustomerinfo();
+                        assinfo.setMainkunnr(ass.getMainkunnr());
+                        assinfo.setMainname1(ass.getMainname1());
+                        assinfo.setUpdateTime(DateUtils.getYesterDate());
+                        assinfo.setCustomerType("3");
+                        assRelcustomerinfoMapper.deleteCustomerStartByCustomerCode(ass.getMainkunnr());
+                        assRelcustomerinfoMapper.relationCustomerOnlineSync(assinfo);
+                    }else{
+                    AssRelcustomerinfo assinfo = new AssRelcustomerinfo();
+                    assinfo.setMainkunnr(ass.getMainkunnr());
+                    assinfo.setMainname1(ass.getMainname1());
+                    assinfo.setUpdateTime(DateUtils.getYesterDate());
+                    assinfo.setCustomerType(ass.getCustomerType());
+                    assRelcustomerinfoMapper.relationCustomerOnlineSync(assinfo);
+                    }
+                }
+            }
+        }
+       }
+        //assRelcustomerinfoMapper.relationCustomerOnlineSync();
     }
 
     @Override

+ 54 - 6
suishenbang-system/src/main/resources/mapper/system/AssRelcustomerinfoMapper.xml

@@ -19,10 +19,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="glsj"    column="glsj"    />
         <result property="enddate"    column="enddate"    />
         <result property="etlCreatetime"    column="ETL_createtime"    />
+        <result property="customerType" column="customer_type" />
     </resultMap>
 
     <sql id="selectAssRelcustomerinfoVo">
-        select id, create_by, create_time, update_by, update_time, is_delete, mainkunnr, mainname1, kunnr, name1, glfs, glsj, enddate, ETL_createtime,user_id from ass_relcustomerinfo
+        select id, create_by, create_time, update_by, update_time, is_delete, mainkunnr, mainname1, kunnr, name1, glfs, glsj, enddate, ETL_createtime,user_id,customer_type from ass_relcustomerinfo
     </sql>
 
     <select id="selectAssRelcustomerinfoList" parameterType="AssRelcustomerinfo" resultMap="AssRelcustomerinfoResult">
@@ -114,7 +115,52 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </insert>
 
     <insert id="relationCustomerOnlineSync">
-        INSERT INTO customers_start (customers_code, customers_name, online_time,customer_type)
+
+        insert into customers_start
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="mainkunnr != null  and mainkunnr != ''">customers_code,</if>
+            <if test="mainname1 != null and mainname1 !='' ">customers_name,</if>
+                                                                online_time,
+            <if test="customerType != null  and customerType !='' ">customer_type,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="mainkunnr != null  and mainkunnr != ''">#{mainkunnr},</if>
+            <if test="mainname1 != null  and mainname1 !=''">#{mainname1},</if>
+                                                                #{updateTime},
+            <if test="customerType != null and customerType!=''  ">#{customerType},</if>
+        </trim>
+    </insert>
+
+    <select id="selectCustomerStart" resultType="java.lang.String">
+        select customer_type from customers_start where 1=1
+        <if test="customerCode !=null and customerCode !=''">
+            and customers_code=#{customerCode}
+        </if>
+        <if test="customerType!=null and customerType !=''and type != 3  ">
+            and customer_type=#{customerType}
+        </if>
+        <if test="customerType!=null and customerType !=''  and type == 3 ">
+            and (customer_type=#{customerType}
+            or  customer_type=3)
+        </if>
+        GROUP BY customer_type
+    </select>
+
+    <select id="selectCustomerByCustomerCode" resultType="java.lang.String">
+        select customer_type from customers_start where 1=1
+        <if test="customerCode !=null and customerCode !=''">
+            and customers_code=#{customerCode}
+        </if>
+        GROUP BY customer_type
+    </select>
+
+    <select id="deleteCustomerStartByCustomerCode" parameterType="String" >
+        delete from customers_start  where 1=1
+        <if test="customerCode !=null and customerCode !=''">
+            and customers_code=#{customerCode}
+        </if>
+    </select>
+   <!--   INSERT INTO customers_start (customers_code, customers_name, online_time,customer_type)
 
             SELECT t.mainkunnr,t.mainname1,t1.online_time,t1.customer_type FROM (
 
@@ -144,11 +190,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                 GROUP BY kunnr
             ) s LEFT JOIN customers_start c ON s.kunnr = c.customers_code
                 WHERE c.customers_code is null
-            ) t LEFT JOIN customers_start t1 ON t.mainkunnr = t1.customers_code
-
+            ) t LEFT JOIN customers_start t1 ON t.mainkunnr = t1.customers_code-->
 
-    </insert>
 
+    <select id="selectAssRelCustomer" resultMap="AssRelcustomerinfoResult">
+        <include refid="selectAssRelcustomerinfoVo"/>
+        where customer_type is not  null
+    </select>
     <update id="updateAssRelcustomerinfo" parameterType="AssRelcustomerinfo">
         update ass_relcustomerinfo
         <trim prefix="SET" suffixOverrides=",">
@@ -203,7 +251,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </if> LIMIT 1
     </select>
     <select id="selectCustomerNameAndCode" resultMap="AssRelcustomerinfoResult">
-        select  mainkunnr as mainkunnr,mainname1 as mainname1 FROM `ass_relcustomerinfo`
+        select  mainkunnr as mainkunnr,mainmainname1name1 as  FROM `ass_relcustomerinfo`
         UNION select  kunnr as mainkunnr,name1 as mainname1 FROM `ass_relcustomerinfo`
     </select>
 </mapper>