From 5169a76246a92ac599846e340045ee8f8d8342ca Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期一, 08 一月 2024 10:54:10 +0800
Subject: [PATCH] 整理

---
 server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java                             |    7 ++
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncOrgUserServiceImpl.java |   77 +++++++++++++++++++++++--
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java          |   57 +++++++++++-------
 3 files changed, 112 insertions(+), 29 deletions(-)

diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java
index 44ae5c1..d585a36 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java
@@ -233,5 +233,12 @@
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date lastVisitDate;
 
+    @ApiModelProperty(value = "闂ㄧ鏈夋晥鏈熷紑濮�")
+    @ExcelColumn(name="闂ㄧ鏈夋晥鏈熷紑濮�",index= 5,dateFormat = "yyyy-MM-dd")
+    private Date startTime;
+
+    @ApiModelProperty(value = "闂ㄧ鏈夋晥鏈熺粨鏉�", example = "1")
+    @ExcelColumn(name="闂ㄧ鏈夋晥鏈熺粨鏉�",index= 6,dateFormat = "yyyy-MM-dd")
+    private Date endTime;
 
 }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java
index 197b01a..0be2378 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java
@@ -291,7 +291,7 @@
             }
             if(updateList.size()>0){
                 for(Member c : updateList){
-                    dealRoleEmpower(c,param.getStartTime(), param.getEndTime());
+                     dealRoleEmpower(c,param.getStartTime(), param.getEndTime());
                     c.setHkStatus(Constants.ZERO);
                     memberMapper.updateById(c);
                 }
@@ -824,6 +824,8 @@
                 member.setType(Constants.memberType.internal);
                 String encryptIdNo = DESUtil.encrypt(Constants.EDS_PWD,param.getIdNo());
                 member.setIdcardNo(encryptIdNo);
+                member.setStartTime(param.getValidStartTime());
+                member.setEndTime(param.getValidEndTime());
                 member.setIdcardDecode(Constants.getTuominStr(param.getIdNo()));
                 member.setErpOrgId(param.getOrgId());
                 doorIds = getRoleIdByParam(param.getRoleIds(),member);
@@ -841,6 +843,8 @@
                 doorIds = getRoleIdByParam(param.getRoleIds(),member);
                 member.setErpDate(new Date());
                 member.setHkStatus(Constants.ZERO);
+                member.setStartTime(param.getValidStartTime());
+                member.setEndTime(param.getValidEndTime());
                 memberMapper.updateById(member);
                 //鍒犻櫎鐢ㄦ埛鍗$墖鏁版嵁  浜哄憳瑙掕壊鍏宠仈
                 memberCardMapper.delete(new QueryWrapper<MemberCard>().lambda().eq(MemberCard::getMemberId,member.getId()));
@@ -900,27 +904,30 @@
         if(StringUtils.isBlank(member.getFaceImg())){
           return;
         }
-        List<Empower> list = new ArrayList<>();
-        List<Device> deviceList = deviceMapper.selectList(new QueryWrapper<Device>().lambda().in(Device::getId,doorIds));
-        if(deviceList == null || deviceList.size() == 0){
-            return;
+        if(Constants.equalsObject(member.getHkStatus(),Constants.ONE)){
+            //濡傛灉鐢ㄦ埛鏄悓姝ユ捣搴锋垚鍔燂紝娣诲姞甯︿笅鍙戞潈闄�
+            List<Empower> list = new ArrayList<>();
+            List<Device> deviceList = deviceMapper.selectList(new QueryWrapper<Device>().lambda().in(Device::getId,doorIds));
+            if(deviceList == null || deviceList.size() == 0){
+                return;
+            }
+            for (Device deviceRole:deviceList) {
+                Empower model = new Empower();
+                model.setCreateDate(new Date());
+                model.setMemberId(member.getId());
+                model.setIsdeleted(Constants.ZERO);
+                model.setDeviceId(deviceRole.getId());
+                model.setSendStatus(Constants.ZERO);
+                model.setStartTime(startTime);
+                model.setEndTime(endTime);
+                //榛樿缁欎簬铏氭嫙鍗�
+                model.setCardNos(Constants.VIRTUAL_CARD_INDEX+member.getId());
+                model.setSendType(Constants.ZERO);
+                list.add(model);
+            }
+            //瀵煎叆鏂板鐨勬巿鏉冧俊鎭�
+            empowerMapper.insertBatchSomeColumn(list);
         }
-        for (Device deviceRole:deviceList) {
-            Empower model = new Empower();
-            model.setCreateDate(new Date());
-            model.setMemberId(member.getId());
-            model.setIsdeleted(Constants.ZERO);
-            model.setDeviceId(deviceRole.getId());
-            model.setSendStatus(Constants.ZERO);
-            model.setStartTime(startTime);
-            model.setEndTime(endTime);
-            //榛樿缁欎簬铏氭嫙鍗�
-            model.setCardNos(Constants.VIRTUAL_CARD_INDEX+member.getId());
-            model.setSendType(Constants.ZERO);
-            list.add(model);
-        }
-        //瀵煎叆鏂板鐨勬巿鏉冧俊鎭�
-        empowerMapper.insertBatchSomeColumn(list);
     }
 
     private   List<Integer>  getRoleIdByParam(Integer[] param, Member member) {
@@ -964,7 +971,6 @@
                 }
                 memberRoleMapper.insertBatchSomeColumn(memberRoleList);
                 member.setRoleId(ids);
-
                 return  r;
             }
         }
@@ -982,6 +988,13 @@
             return;
         }
         List<Integer> doorIds = getRoleIdByParam(param.getRoleIds(),member);
+        //鏇存柊鎺堟潈鏈夋晥鏈�
+        Member update = new Member();
+        update.setId(member.getId());
+        update.setEditDate(new Date());
+        update.setStartTime(param.getValidStartTime());
+        update.setEndTime(param.getValidEndTime());
+        memberMapper.updateById(update);
         //濡傛灉鏈夋巿鏉冮棬绂佹暟鎹紝杩涜鐢ㄦ埛鎺堟潈鏁版嵁涓嬪彂浠诲姟鍒涘缓
         dealMemberRoleEmpower(member,doorIds,param.getValidStartTime(),param.getValidEndTime());
 
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncOrgUserServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncOrgUserServiceImpl.java
index 8b0c4f1..d4654a1 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncOrgUserServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncOrgUserServiceImpl.java
@@ -25,15 +25,13 @@
 import com.github.yulichang.query.MPJQueryWrapper;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.UUID;
+import java.util.*;
 
 /**
  * 娴峰悍缁勭粐浜哄憳閫氳繃姝ervice瀹炵幇
@@ -45,6 +43,8 @@
 public class HkSyncOrgUserServiceImpl extends HkSyncBaseServiceImpl {
     @Autowired
     private CompanyMapper companyMapper;
+    @Autowired
+    private DeviceRoleMapper deviceRoleMapper;
     @Autowired
     private MemberRoleMapper memberRoleMapper;
     @Autowired
@@ -282,7 +282,36 @@
             Constants.DEALING_HK_USER =false;
         }
     }
-
+    private   List<Integer>  getRoleIdByParam(  Member member) {
+            //鏌ヨ鏁版嵁搴撳瓨鍦ㄧ殑鏉冮檺
+            List<DeviceRole> deviceRoleList= deviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda()
+                    .eq(DeviceRole::getType,Constants.TWO)
+                    .exists("(select b.id from member_role b    where b.ROLE_ID = device_role.ID and b.MEMBER_ID="+member.getRoleId()+")"));
+            if(CollectionUtils.isNotEmpty(deviceRoleList)){
+                List<MemberRole> memberRoleList = new ArrayList<>();
+                String ids = "";
+                List<Integer> r = new ArrayList<>();
+                for (int i = 0; i < deviceRoleList.size(); i++) {
+                    DeviceRole deviceRole =deviceRoleList.get(i);
+                    if(i>0){
+                        ids += ",";
+                    }
+                    String doorids =deviceRole.getDoorIds();
+                    if(StringUtils.isNotBlank(doorids)){
+                        String[] ss = doorids.split(",");
+                        try {
+                            for(String s :ss){
+                                r.add(Integer.parseInt(s));
+                            }
+                        }catch (Exception e){
+                            //鑴忔暟鎹笉澶勭悊
+                        }
+                    }
+                }
+                return  r;
+            }
+        return  null;
+    }
     @Transactional
     private boolean dealMemberInfoBiz(Member c, Date date, String path) {
         if( c.getCompanyId() == null){
@@ -298,7 +327,39 @@
         }
         return  false;
     }
-
+    private void dealMemberRoleEmpower(Member member ) {
+        List<Integer> doorIds = getRoleIdByParam(member);
+        if(doorIds==null || doorIds.size() == 0){
+            return;
+        }
+        if(StringUtils.isBlank(member.getFaceImg())){
+            return;
+        }
+        if(Constants.equalsObject(member.getHkStatus(),Constants.ONE)){
+            //濡傛灉鐢ㄦ埛鏄悓姝ユ捣搴锋垚鍔燂紝娣诲姞甯︿笅鍙戞潈闄�
+            List<Empower> list = new ArrayList<>();
+            List<Device> deviceList = deviceMapper.selectList(new QueryWrapper<Device>().lambda().in(Device::getId,doorIds));
+            if(deviceList == null || deviceList.size() == 0){
+                return;
+            }
+            for (Device deviceRole:deviceList) {
+                Empower model = new Empower();
+                model.setCreateDate(new Date());
+                model.setMemberId(member.getId());
+                model.setIsdeleted(Constants.ZERO);
+                model.setDeviceId(deviceRole.getId());
+                model.setSendStatus(Constants.ZERO);
+                model.setStartTime(member.getStartTime());
+                model.setEndTime(member.getEndTime());
+                //榛樿缁欎簬铏氭嫙鍗�
+                model.setCardNos(Constants.VIRTUAL_CARD_INDEX+member.getId());
+                model.setSendType(Constants.ZERO);
+                list.add(model);
+            }
+            //瀵煎叆鏂板鐨勬巿鏉冧俊鎭�
+            empowerMapper.insertBatchSomeColumn(list);
+        }
+    }
     /**
      *  濡傛灉涔嬪墠宸茬粡鍜屾捣搴峰悓姝ワ紝鍒欐洿鏂扮敤鎴锋暟鎹互鍙婁汉鑴告暟鎹紙鍙兘鏂板浜鸿劯 涔熷彲鑳芥洿鏂颁汉鑴革級
      * @param c
@@ -334,7 +395,8 @@
                 c.setHkStatus(Constants.TWO);
                 c.setRemark("浜哄憳淇℃伅鍚屾瀹夐槻骞冲彴鏇存柊澶辫触锛岃淇鍚庨噸璇曪紒锛�"+(result!=null?result.getCode()+result.getMsg():""));
             }
-
+            //閲嶆柊涓嬪彂鏉冮檺鏁版嵁
+            dealMemberRoleEmpower(c);
         }
         c.setHkDate(date);
         memberMapper.updateById(c);
@@ -373,6 +435,7 @@
             c.setHkStatus(Constants.ONE);
             c.setHkId(addHkModel.getPersonId());
             memberMapper.updateById(c);
+            dealMemberRoleEmpower(c);
             return  true;
         }else{
             noticeErpFail(c,Constants.ZERO,"浜哄憳淇℃伅鍚屾瀹夐槻骞冲彴澶辫触锛岃淇鍚庨噸璇曪紒"+result.getCode()+result.getMsg());

--
Gitblit v1.9.3