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/dao/business/model/Visits.java                               |   14 +++
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/ProblemsServiceImpl.java               |    4 
 server/dmvisit_service/src/main/java/com/doumee/dao/admin/response/MemberInfoDTO.java                        |    3 
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java                 |  111 ++++++++++++++++++---------
 server/dmvisit_web/src/main/java/com/doumee/api/web/ProblemController.java                                   |    2 
 server/dmvisit_service/src/main/java/com/doumee/core/erp/ErpTool.java                                        |   17 +++
 server/dmvisit_service/src/main/java/com/doumee/core/erp/model/openapi/response/erp/ApproveInfoResponse.java |    2 
 server/dmvisit_web/src/main/java/com/doumee/api/web/PublicController.java                                    |   76 +++++++++++++++++--
 8 files changed, 178 insertions(+), 51 deletions(-)

diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/erp/ErpTool.java b/server/dmvisit_service/src/main/java/com/doumee/core/erp/ErpTool.java
index e4fa49f..26af248 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/erp/ErpTool.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/erp/ErpTool.java
@@ -99,14 +99,25 @@
      * @return
      */
     public static ApproveInfoResponse submitApprove(String url, ApproveAddRequest param){
+        System.out.println(JSONObject.toJSONString(param));
         String result = HttpsUtil.postJson(url, JSONObject.toJSONString(param));
         if(StringUtils.isNotBlank(result)){
+//            TypeReference typeReference =
+//                    new TypeReference<ERPApiResponse<ApproveInfoResponse>>(){};
+//            ERPApiResponse<ApproveInfoResponse> response = JSONObject.parseObject(result, typeReference.getType());
+//            if(response!=null && response.isSuccess()){
+//                return response.getData();
+//            }
             TypeReference typeReference =
-                    new TypeReference<ERPApiResponse<ApproveInfoResponse>>(){};
-            ERPApiResponse<ApproveInfoResponse> response = JSONObject.parseObject(result, typeReference.getType());
+                    new TypeReference<ERPApiResponse<String>>(){};
+            ERPApiResponse<String> response = JSONObject.parseObject(result, typeReference.getType());
             if(response!=null && response.isSuccess()){
-                return response.getData();
+                ApproveInfoResponse approveInfoResponse = new ApproveInfoResponse();
+                approveInfoResponse.setId(response.getData());
+                return approveInfoResponse;
             }
+
+
         }
         return  null;
     }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/erp/model/openapi/response/erp/ApproveInfoResponse.java b/server/dmvisit_service/src/main/java/com/doumee/core/erp/model/openapi/response/erp/ApproveInfoResponse.java
index deda22e..f8635b2 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/erp/model/openapi/response/erp/ApproveInfoResponse.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/erp/model/openapi/response/erp/ApproveInfoResponse.java
@@ -13,7 +13,7 @@
 @ApiModel("璁垮鐢宠瀹℃壒缁撴灉鏌ヨ杩斿洖淇℃伅")
 public class ApproveInfoResponse {
     @ApiModelProperty(value = "瀹℃壒璁板綍鍞竴鏍囪瘑锛圗RP绔疘D锛�" ,example = "1")
-    private Integer id;
+    private String id;
     @ApiModelProperty(value = "瀹℃壒缁撴灉 0-涓嶉�氳繃 1-閫氳繃,榛樿 0" ,example = "1")
     private Integer status;
     @ApiModelProperty(value = "瀹℃牳鏃堕棿" )
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/admin/response/MemberInfoDTO.java b/server/dmvisit_service/src/main/java/com/doumee/dao/admin/response/MemberInfoDTO.java
index 524bd4d..d36ca0c 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/dao/admin/response/MemberInfoDTO.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/admin/response/MemberInfoDTO.java
@@ -93,7 +93,6 @@
     @ApiModelProperty(value = "鏄惁鍙嫓璁夸汉 0鍚� 1鏄�")
     private String canVisit;
 
-
     @ApiModelProperty(value = "鍗$墖鏁�")
     private Integer memberCardCount;
 
@@ -117,5 +116,7 @@
     @TableField(exist = false)
     private Date userActionType1;
 
+    @ApiModelProperty(value = "璇佷欢绫诲瀷 0韬唤璇� 1娓境璇佷欢 2鎶ょ収", example = "1")
+    private Integer idcardType;
 
 }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Visits.java b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Visits.java
index fd67fb3..14d7dea 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Visits.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Visits.java
@@ -9,6 +9,8 @@
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+
 import java.util.Date;
 import java.util.List;
 
@@ -106,10 +108,15 @@
     @ExcelColumn(name="闅忕▼浜哄憳鏁�")
     private Integer memberNum;
 
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @ApiModelProperty(value = "闂ㄧ鏈夋晥鏈熷紑濮�")
     @ExcelColumn(name="闂ㄧ鏈夋晥鏈熷紑濮�")
     private Date starttime;
 
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @ApiModelProperty(value = "闂ㄧ鏈夋晥鏈熸埅姝�")
     @ExcelColumn(name="闂ㄧ鏈夋晥鏈熸埅姝�")
     private Date endtime;
@@ -215,6 +222,7 @@
     @ApiModelProperty(value = "ERP鐢宠璁板綍缂栫爜")
     @ExcelColumn(name="ERP鐢宠璁板綍缂栫爜")
     private String erpId;
+
     @ApiModelProperty(value = "鏅�氳瀹㈢敵璇烽殢璁夸汉鍛�")
     @TableField(exist = false)
     private List<Visits> withUserList;
@@ -228,6 +236,12 @@
     @TableField(exist = false)
     private List<Integer> lwWithUserList;
 
+
+
+    @ApiModelProperty(value = "鍥剧墖鍓嶇紑")
+    @TableField(exist = false)
+    private String prefixUrl;
+
     @ApiModelProperty(value = "琚浜哄憳濮撳悕", example = "1")
     @ExcelColumn(name="琚浜哄憳濮撳悕")
     @TableField(exist = false)
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/ProblemsServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/ProblemsServiceImpl.java
index c9c6a2e..9dcf9b4 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/ProblemsServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/ProblemsServiceImpl.java
@@ -11,6 +11,7 @@
 import com.doumee.dao.admin.request.OptionsObject;
 import com.doumee.dao.admin.response.ProblemDTO;
 import com.doumee.dao.business.ProblemsMapper;
+import com.doumee.dao.business.model.Member;
 import com.doumee.dao.business.model.Problems;
 import com.doumee.dao.web.response.ProblemsVO;
 import com.doumee.service.business.ProblemsService;
@@ -232,7 +233,8 @@
      */
     @Override
     public List<ProblemsVO> getProblemsVO(Integer useType){
-        List<Problems> problemsList = problemsMapper.selectList(new QueryWrapper<Problems>().lambda().eq(Problems::getUseType,useType)
+        List<Problems> problemsList = problemsMapper.selectList(new QueryWrapper<Problems>().lambda()
+                .and(ms->ms.eq(Problems::getUseType,useType).or().eq(Problems::getUseType,Constants.ZERO))
                 .eq(Problems::getIsdeleted, Constants.ZERO).orderByAsc(Problems::getSortnu));
         List<ProblemsVO> problemsVOList = new ArrayList<>();
         for (Problems problems:problemsList) {
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);
diff --git a/server/dmvisit_web/src/main/java/com/doumee/api/web/ProblemController.java b/server/dmvisit_web/src/main/java/com/doumee/api/web/ProblemController.java
index c47b3d3..854619d 100644
--- a/server/dmvisit_web/src/main/java/com/doumee/api/web/ProblemController.java
+++ b/server/dmvisit_web/src/main/java/com/doumee/api/web/ProblemController.java
@@ -40,7 +40,7 @@
     @ApiOperation(value = "鑾峰彇棰樼洰鏁版嵁", notes = "H5")
     @GetMapping("/getProblemsVO")
     @ApiImplicitParams({
-            @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "useType", value = "浣跨敤鍦烘櫙 0鍔冲姟浜哄憳 1鏅�氳瀹�", required = true)
+            @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "useType", value = "浣跨敤鍦烘櫙 2鍔冲姟浜哄憳 1鏅�氳瀹�", required = true)
     })
     public ApiResponse<List<ProblemsVO>> getProblemsVO(@RequestParam Integer useType) {
         return ApiResponse.success("鏌ヨ鎴愬姛",problemsService.getProblemsVO(useType));
diff --git a/server/dmvisit_web/src/main/java/com/doumee/api/common/PublicController.java b/server/dmvisit_web/src/main/java/com/doumee/api/web/PublicController.java
similarity index 82%
rename from server/dmvisit_web/src/main/java/com/doumee/api/common/PublicController.java
rename to server/dmvisit_web/src/main/java/com/doumee/api/web/PublicController.java
index eec54de..b38b36e 100644
--- a/server/dmvisit_web/src/main/java/com/doumee/api/common/PublicController.java
+++ b/server/dmvisit_web/src/main/java/com/doumee/api/web/PublicController.java
@@ -1,4 +1,4 @@
-package com.doumee.api.common;
+package com.doumee.api.web;
 
 import com.alibaba.fastjson.JSONObject;
 import com.doumee.api.BaseController;
@@ -6,6 +6,7 @@
 import com.doumee.core.annotation.trace.Trace;
 import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.DateUtil;
+import com.doumee.core.utils.FtpUtil;
 import com.doumee.core.utils.aliyun.ALiYunUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
@@ -14,9 +15,7 @@
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartHttpServletRequest;
 import org.springframework.web.multipart.commons.CommonsMultipartResolver;
@@ -25,11 +24,9 @@
 import javax.servlet.http.HttpServletResponse;
 import java.io.File;
 import java.io.IOException;
+import java.io.InputStream;
 import java.io.PrintWriter;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.UUID;
+import java.util.*;
 
 /**
  * @author Eva.Caesar Liu
@@ -89,6 +86,69 @@
                 systemDictDataBiz.queryByCode(Constants.OSS,Constants.ENDPOINT).getCode());
     }
 
+
+
+
+    public static  FtpUtil ftp  = null;
+
+    @ApiOperation(value = "涓婁紶鏂囦欢鍒癋TP")
+    @RequestMapping(method= RequestMethod.POST,value="api/uploadFtp.do")
+    @ResponseBody
+    public void uploadFtp(HttpServletRequest request, HttpServletResponse response, String folderCode) throws Exception {
+        String folder = systemDictDataBiz.queryByCode(Constants.FTP,folderCode).getCode();
+        String prefixPath = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode();
+        InputStream is = null;
+        response.setCharacterEncoding("UTF-8");
+        response.setContentType("text/html;charset=UTF-8");
+        Map<String, Object> context = new HashMap<>();
+        try {
+            if(ftp == null){
+                ftp = new FtpUtil(systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_HOST).getCode(),
+                        Integer.parseInt(systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_PORT).getCode()),
+                        systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_USERNAME).getCode(),
+                        systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_PWD).getCode());
+            }else{
+                ftp.connect();
+            }
+
+            CommonsMultipartResolver multipartResovler = new CommonsMultipartResolver();
+            if (multipartResovler.isMultipart(request)) {
+                MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
+                Iterator<String> it = multipartRequest.getFileNames();
+                while (it.hasNext()) {
+                    MultipartFile file = multipartRequest.getFile(it.next());
+                    is = file.getInputStream();
+                    String date = DateUtil.getNowShortDate();
+                    String fName =  date+"/"+ UUID.randomUUID()+".jpg";
+                    String fileName = folder+fName;
+                    boolean r = ftp.uploadInputstream(is,fileName);
+                    if(r){
+                        context.put("success", true);
+                        context.put("code", 200);
+                        context.put("errno",0);
+                        JSONObject fileJSON = new JSONObject();
+                        fileJSON.put("halfPath", fName);
+                        fileJSON.put("prefixPath", prefixPath);
+                        fileJSON.put("folder", folder);
+                        context.put("data",fileJSON);
+                        context.put("message","璇锋眰鎴愬姛");
+                        writerJson(response, context);
+                        return;
+                    }
+                }
+            }
+        } catch (Exception e) {
+            log.error("銆愪笂浼燜TP澶辫触銆�======================"+e.getMessage());
+        }
+        context.put("code", 0);
+        context.put("message", "涓婁紶澶辫触");
+        context.put("errno",0);
+        writerJson(response, context);
+        return;
+    }
+
+
+
     public void upload(HttpServletRequest request, HttpServletResponse response, String folder, String bucketName,
         String access_id, String access_key, String resourcePath, String endpoint) throws Exception {
         response.setCharacterEncoding("UTF-8");

--
Gitblit v1.9.3