From c1e829fcf97594aaa30ffb531f213b703e0eb21f Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期二, 26 十二月 2023 18:23:16 +0800
Subject: [PATCH] ERP接口

---
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java |  111 +++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 75 insertions(+), 36 deletions(-)

diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
index e35fe39..40f22bd 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
@@ -35,6 +35,7 @@
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import io.swagger.models.auth.In;
 import org.apache.commons.lang3.StringUtils;
@@ -42,7 +43,6 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.CollectionUtils;
 import org.springframework.util.DigestUtils;
 
 import java.util.*;
@@ -91,15 +91,22 @@
         //妫�鏌ユ槸鍚﹀繀椤荤瓟棰橈紝骞朵笖绗﹀悎绛旈瑕佹眰
         ProblemLog problemLog = isValidProblemLog(visits);
         //鑾峰彇鐢宠鐨勬捣搴疯闂棬绂佺粍淇℃伅
-        String[] hkIds = getHkDeviceRoles(visits);
+        getHkDeviceRoles(visits);
         //妫�楠屾嫓璁夸汉鏄惁鍚堟硶
         Member visitMember = isValideVisitedUser(visits.getReceptMemberId());
         if(Constants.equalsInteger(Constants.ZERO, visits.getIdcardType()) &&!IdcardUtil.isValidCard(visits.getIdcardNo())){
             throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝韬唤璇佸彿鐮佹湁璇紝璇锋牳瀹炲悗閲嶈瘯锛�");
         }
         Date date = new Date();
+        //鍒涘缓鏃堕棿
+        visits.setCreateDate(date);
+        //鏅�氳瀹�
+        visits.setType(Constants.ONE);
+        //闅忚浜哄憳鏁伴噺
+        visits.setMemberNum(CollectionUtils.isNotEmpty(visits.getWithUserList())?visits.getWithUserList().size():0);
         //璁垮淇℃伅(浣跨敤韬唤璇佸彿鏌ヨ鏄惁宸插瓨鍦ㄦ敼鏅�氳瀹紝娌℃湁鍒欐柊澧烇紝瀛樺湪鍒欐洿鏂皁penid绛変俊鎭�),鍖呮嫭闅忚浜哄憳鏍¢獙鍜屽鐞�
         Member member =dealMemberAndVisits(visits);
+        visits.setMemberId(member.getId());
         //鍒濆鍖栬瀹俊鎭�
         initVisitInfo(visits,date);
         //鍙戣捣ERP瀹℃壒鐢宠
@@ -120,13 +127,13 @@
      * @param visits
      */
     private void isValidBaseParam(Visits visits) {
-        if(visits.getStarttime() == null
-                || visits.getEndtime() == null
+        if(visits.getEndtime() == null
+                || visits.getStarttime() == null
                 ||  StringUtils.isBlank(visits.getReason())
                 ||  StringUtils.isBlank( visits.getName())
                 ||  StringUtils.isBlank( visits.getPhone())
                 ||  visits.getIdcardType() == null
-                ||  StringUtils.isBlank( visits.getFaceImg() )
+//                ||  StringUtils.isBlank( visits.getFaceImg() )
                 ||  StringUtils.isBlank( visits.getIdcardNo() )
                 || visits.getReceptMemberId() == null){
             throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝淇℃伅濉啓涓嶆纭紒");
@@ -177,13 +184,16 @@
     }
 
     private void initWithVisitInfo(Visits visits) {
-        if(visits.getWithUserList()!=null && visits.getLwWithUserList().size()>0){
+        if(CollectionUtils.isNotEmpty(visits.getWithUserList())){
             for(Visits v :visits.getWithUserList()){
                 v.setParentId(visits.getId());
                 v.setStarttime(visits.getStarttime());
                 v.setEndtime(visits.getEndtime());
                 v.setIsdeleted(Constants.ZERO);
                 v.setCreateDate(visits.getCreateDate());
+                v.setSex(Constants.getSexByCardNo(v.getIdcardNo()));
+                v.setIdcardDecode(Constants.getTuominStr(v.getIdcardNo()));//鑴辨晱韬唤璇佸彿
+                v.setIdcardNo(DESUtil.encrypt(Constants.EDS_PWD, v.getIdcardNo()));//韬唤璇佸彿鍔犲瘑
                 v.setErpId(visits.getErpId());
                 v.setHkStatus(Constants.ZERO);
                 v.setStatus(Constants.ZERO);
@@ -197,9 +207,10 @@
         visits.setHkStatus(Constants.ZERO);//鏈悓姝�
         visits.setBirthday(Constants.getBirthdyByCardNo(visits.getIdcardNo()));
         visits.setStatus(Constants.ZERO);//寰呭鎵�
+        visits.setSex(Constants.getSexByCardNo(visits.getIdcardNo()));
+        visits.setIdcardDecode(Constants.getTuominStr(visits.getIdcardNo()));//鑴辨晱韬唤璇佸彿
         visits.setIdcardNo(DESUtil.encrypt(Constants.EDS_PWD, visits.getIdcardNo()));//韬唤璇佸彿鍔犲瘑
-        //韬唤璇佸彿瀛樺偍瀵嗘枃
-        visits.setIdcardDecode(Constants.getTuominStr(visits.getIdcardNo()));//鑴辨晱鎵嬫満鍙�
+        visits.setIsdeleted(Constants.ZERO);
         visits.setCreateDate(date);
     }
 
@@ -207,7 +218,7 @@
         ApproveAddRequest param = new ApproveAddRequest();
         List<Visits> withUserVisitsList = visits.getWithUserList();
         List<UserInfoRequest> withUserList = new ArrayList<>();
-        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(withUserVisitsList)){
+        if(CollectionUtils.isNotEmpty(withUserVisitsList)){
             for (Visits v:withUserVisitsList) {
                 UserInfoRequest userInfoRequest = new UserInfoRequest();
                 userInfoRequest.setName(v.getName());
@@ -231,7 +242,7 @@
         }
         if(StringUtils.isNotBlank(visits.getDoors())){
              List<DeviceRole> deviceRoleList = deviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda().in(DeviceRole::getId,Arrays.asList(visits.getDoors().split(","))));
-             if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(deviceRoleList)){
+             if(CollectionUtils.isNotEmpty(deviceRoleList)){
                  param.setRoleIds(deviceRoleList.stream().map(m->m.getId()).collect(Collectors.toList()));
                  param.setRoleNames(deviceRoleList.stream().map(m->m.getName()).collect(Collectors.toList()));
              }
@@ -281,25 +292,39 @@
         //闅忚浜哄憳淇℃伅澶勭悊
         if(visits.getWithUserList()!= null && visits.getWithUserList().size()>0){
             for(Visits model:visits.getWithUserList()){
+                model.setStarttime(visits.getStarttime());
+                model.setEndtime(visits.getEndtime());
                 //鏍¢獙闅忚浜哄憳濉姤鏁版嵁鍚堟硶鎬�
                 isValidWithVisitParam(model,addList,editList);
                 model.setCreateDate(visits.getCreateDate());
-                getMemberListParam(model.getIdcardNo(),visits,addList,editList);
+                getMemberListParam(model.getIdcardNo(),model,addList,editList);
             }
         }
+
+        if(CollectionUtils.isNotEmpty(addList)){
+            memberMapper.insertBatchSomeColumn(addList);
+        }
+        if(CollectionUtils.isNotEmpty(editList)){
+            editList.forEach(i->{
+                memberMapper.updateById(i);
+            });
+
+        }
+
         return  m;
     }
 
     private Member getMemberListParam(String cardno, Visits visits, List<Member> addList, List<Member> editList) {
-        if(!Constants.checkCarNo(visits.getCarNos())){
+        if(StringUtils.isNotBlank(visits.getCarNos())&&!Constants.checkCarNo(visits.getCarNos())){
             throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝杞︾墝鍙枫��"+visits.getCarNos()+"銆戜笉鍚堟硶锛岃鏍稿疄鍚庨噸璇晘");
         }
         Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda()
                 .eq(Member::getType,Constants.memberType.visitor)
                 .eq(Member::getIdcardType,visits.getIdcardType())
-                .eq(Member::getIdcardNo,visits.getIdcardNo()).last("limit 1" )
+                .eq(Member::getIdcardNo,DESUtil.encrypt(Constants.EDS_PWD, cardno)).last("limit 1" )
         );
         if(member == null){
+            member = new Member();
             //濡傛灉鐢ㄦ埛涓嶅瓨鍦紝鍒欐柊澧�
             member.setCreateDate(visits.getCreateDate());
             member.setIsdeleted(Constants.ZERO);
@@ -307,12 +332,18 @@
             member.setIdcardDecode(visits.getIdcardDecode());
             member.setIdcardNo(DESUtil.encrypt(Constants.EDS_PWD, cardno));//韬唤璇佸彿鍔犲瘑
             member.setIdcardDecode(Constants.getTuominStr(cardno));//鑴辨晱鎵嬫満鍙�
+            member.setFaceImg(visits.getFaceImg());
+            member.setSex(Constants.getSexByCardNo(cardno));
+            member.setImgurl(StringUtils.isNotBlank(visits.getImgurl())?visits.getImgurl():null);
+            member.setIdcardType(visits.getIdcardType());
             member.setName(visits.getName());
             member.setPhone(visits.getPhone());
             member.setOpenid(visits.getOpenid());
             member.setType(Constants.memberType.visitor);
             member.setStatus(Constants.ZERO);
             member.setSex(Constants.getSexByCardNo(cardno));
+            member.setHkStatus(Constants.ZERO);
+            member.setErpStatus(Constants.ZERO);
             // 鏂板璁垮璁板綍
             addList.add(member);
         }else{
@@ -322,24 +353,28 @@
             }
             //鏍告煡棰勭害鐢ㄦ埛鏄惁瀛樺湪鏈绂荤殑棰勭害璁板綍
             isExsitNoOutVisisRecord(member);
+            member.setFaceImg(visits.getFaceImg());
+            member.setImgurl(StringUtils.isNotBlank(visits.getImgurl())?visits.getImgurl():null);
             member.setEditDate(visits.getCreateDate());
             member.setIsdeleted(Constants.ZERO);
-            member.setIdcardNo(visits.getIdcardNo());
-            member.setIdcardDecode(visits.getIdcardDecode());
+            member.setSex(Constants.getSexByCardNo(cardno));
+            member.setIdcardNo(DESUtil.encrypt(Constants.EDS_PWD, cardno));//韬唤璇佸彿鍔犲瘑
+            member.setIdcardDecode(Constants.getTuominStr(cardno));//鑴辨晱韬唤璇佸彿
             member.setName(visits.getName());
             member.setPhone(visits.getPhone());
             member.setOpenid(visits.getOpenid());
             member.setSex(Constants.getSexByCardNo(cardno));
+            member.setHkStatus(Constants.ZERO);
+            member.setErpStatus(Constants.ZERO);
             // 鏇存柊璁垮淇℃伅,
             editList.add(member);
         }
         //鏍规嵁鎵嬫満鍙峰拰韬唤璇佸彿鐮佹煡璇� 褰撳墠棰勭害鐨勬椂闂存槸鍚︿笌鍏朵粬棰勭害璁板綍鏈夊啿绐�
         if (visitsMapper.selectCount(new QueryWrapper<Visits>().lambda()
-                .eq(Visits::getPhone, member.getPhone())
-                .and(ms -> ms.eq(Visits::getPhone, member.getPhone())
-                        .or().eq(Visits::getIdcardDecode, member.getIdcardDecode()))
-                .and(ms -> ms.apply(" visits.STARTTIME <= '" + visits.getStarttime() + "' and visits.ENDTIME >= '" + visits.getStarttime() + "' ")
-                        .or().apply(" visits.STARTTIME <= '" + visits.getEndtime() + "' and visits.ENDTIME >= '" + visits.getEndtime() + "' ")
+                .and(ms -> ms.eq(Visits::getPhone, visits.getPhone())
+                        .or().eq(Visits::getIdcardDecode, Constants.getTuominStr(cardno)))
+                .and(ms -> ms.apply(" visits.STARTTIME <= '" + DateUtil.DateToStr(visits.getStarttime(),"yyyy-MM-dd HH:mm:ss") + "' and visits.ENDTIME >= '" + DateUtil.DateToStr(visits.getStarttime(),"yyyy-MM-dd HH:mm:ss") + "' ")
+                        .or().apply(" visits.STARTTIME <= '" + DateUtil.DateToStr(visits.getEndtime(),"yyyy-MM-dd HH:mm:ss") + "' and visits.ENDTIME >= '" + DateUtil.DateToStr(visits.getEndtime(),"yyyy-MM-dd HH:mm:ss") + "' ")
                 )) > Constants.ZERO) {
             throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀵逛笉璧凤紝鎵嬫満鍙枫��"+member.getPhone()+"銆戞垨韬唤璇併��"+ member.getIdcardDecode() +"銆戝瓨鍦ㄩ绾︽椂闂村啿绐侊紝鏃犳硶鐢宠鍝︼紒");
         }
@@ -384,6 +419,7 @@
     private void updateProblemLog(Visits visits, ProblemLog problemLog,Member member) {
         if(problemLog!=null){
             problemLog.setEditDate(visits.getCreateDate());
+            problemLog.setStatus(Constants.ONE);
             problemLog.setName(visits.getName());
             problemLog.setUserId(member.getId());
             problemLog.setPhone(member.getPhone());
@@ -398,7 +434,7 @@
      */
     private Member isValideVisitedUser(Integer receptMemberId) {
         Member member = memberMapper.selectById(receptMemberId);
-        if(member == null || Constants.equalsInteger(Constants.ZERO,member.getIsdeleted())){
+        if(member == null || !Constants.equalsInteger(Constants.ZERO,member.getIsdeleted())){
             throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝璇ユ嫓璁夸汉鏆傛椂涓嶈兘鎺ュ彈鎮ㄧ殑鎷滆鐢宠锛�");
         }
         if(!Constants.equalsInteger(member.getStatus(), Constants.ZERO)){
@@ -421,7 +457,7 @@
             if(log == null){
                 throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝璇峰厛鎸夎姹傝繘琛屽畨鍏ㄧ煡璇嗙瓟棰�.");
             }
-            if(log.getLogId() !=null){
+            if(log.getLogId() !=null&&log.getStatus().equals(Constants.ZERO)){
                 throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝璇峰厛鎸夎姹傝繘琛屽畨鍏ㄧ煡璇嗙瓟棰榽");
             }
             return  log;
@@ -438,11 +474,23 @@
         String mustSelectDoors = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.SELECT_DOORS_VISIT_REQUIRED).getCode();
         List<DeviceRole> roles = null;
         if(StringUtils.equals(mustSelectDoors,Constants.ZERO+"")){
-            //濡傛灉蹇呴』閫夋嫨闂ㄧ锛屼絾鏈�夋嫨
+            //濡傛灉璁剧疆涓嶉�夋嫨闂ㄧ锛屽垯鎻愪緵榛樿闂ㄧ缁勪俊鎭�
+
             if(StringUtils.isBlank(visits.getDoors())){
                 throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝璇烽�夋嫨璁块棶闂ㄧ锛�");
             }
             //鏍¢獙闂ㄧ缁勪俊鎭槸鍚︽纭�
+            String[] dIds = visits.getDoors().split(",");
+            roles = deviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda()
+                    .eq(DeviceRole::getIsDefault,Constants.ZERO)
+                    .eq(DeviceRole::getIsdeleted,Constants.ZERO)
+                    .eq(DeviceRole::getType,Constants.DeviceRoleType.fk));
+            if(roles.size() ==0){
+                throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝鏆備笉瀛樺湪鍙闂殑璁垮闂ㄧ锛屾棤娉曡繘琛岀敵璇锋搷浣滐紒");
+            }
+
+        }else{
+            //濡傛灉蹇呴』閫夋嫨闂ㄧ锛屼絾鏈�夋嫨
             String[] dIds = visits.getDoors().split(",");
             roles = deviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda()
                     .eq(DeviceRole::getIsdeleted,Constants.ZERO)
@@ -450,17 +498,6 @@
                     .in(DeviceRole::getId, Arrays.asList(dIds)));
             if(roles == null || roles.size()==0 || roles.size() != dIds.length){
                 throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝璇烽�夋嫨鏈夋晥璁块棶闂ㄧ锛�");
-            }
-        }else{
-            //濡傛灉璁剧疆涓嶉�夋嫨闂ㄧ锛屽垯鎻愪緵榛樿闂ㄧ缁勪俊鎭�
-            String[] dIds = visits.getDoors().split(",");
-            roles = deviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda()
-                    .eq(DeviceRole::getIsdeleted,Constants.ZERO)
-                    .eq(DeviceRole::getIsDefault,Constants.ZERO)
-                    .eq(DeviceRole::getType,Constants.DeviceRoleType.fk));
-            if(roles.size() ==0){
-
-                throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝鏆備笉瀛樺湪鍙闂殑璁垮闂ㄧ锛屾棤娉曡繘琛岀敵璇锋搷浣滐紒");
             }
         }
         String[] ids =new String[roles.size()];
@@ -537,6 +574,8 @@
         BeanUtils.copyProperties(result,v);
         visitsList.add(0,v);
         result.setWithUserList(visitsList);
+        result.setPrefixUrl(systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() +
+                systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode());
         return result;
     }
 
@@ -565,9 +604,9 @@
 
         queryWrapper.eq(Visits::getIsdeleted,Constants.ZERO);
         queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getType()),Visits::getType,pageWrap.getModel().getType());
-        queryWrapper.and(StringUtils.isNotBlank(pageWrap.getModel().getName()),ms->ms.like(Visits::getPhone,pageWrap.getModel().getName())
+        queryWrapper.and(StringUtils.isNotBlank(pageWrap.getModel().getName()),ms->ms.like(Visits::getName,pageWrap.getModel().getName())
                 .or().like(Visits::getPhone,pageWrap.getModel().getName()))
-                .eq(StringUtils.isNotBlank(pageWrap.getModel().getIdcardNo()),Visits::getIdcardNo,StringUtils.isNotBlank(pageWrap.getModel().getIdcardNo()))
+                .eq(StringUtils.isNotBlank(pageWrap.getModel().getIdcardNo()),Visits::getIdcardNo,DESUtil.encrypt(Constants.EDS_PWD, pageWrap.getModel().getIdcardNo()))
                 .eq(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()),Visits::getCompanyName,pageWrap.getModel().getCompanyName())
                 .eq(Objects.nonNull(pageWrap.getModel().getStatus()),Visits::getStatus,pageWrap.getModel().getStatus());
         queryWrapper.isNull(Visits::getParentId);

--
Gitblit v1.9.3