From aa2143b7583644191f84e0d3f830f9cd968573ab Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期二, 27 二月 2024 14:18:25 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java | 4
server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java | 97 ++++++++++++++++++++++++++++++--
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java | 21 ++++---
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java | 2
4 files changed, 106 insertions(+), 18 deletions(-)
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java b/server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java
index d5a038b..a1f5f3f 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -135,10 +135,27 @@
* 鍒ゆ柇鏄惁涓烘湁鏁堣溅鐗屽彿
*/
public static boolean checkCarNo(String str) {
- String patt="^[浜触娌笣鍐�璞簯杈介粦婀樼殩椴佹柊鑻忔禉璧i剛妗傜敇鏅嬭挋闄曞悏闂借吹宸濋潚钘忕惣瀹佺Е宸漖\\\\d{5}[A-Z]$";
- Pattern r = Pattern.compile(patt);
- Matcher matcher = r.matcher(str);
- return matcher.find();
+// String patt="^[浜触娌笣鍐�璞簯杈介粦婀樼殩椴佹柊鑻忔禉璧i剛妗傜敇鏅嬭挋闄曞悏闂借吹宸濋潚钘忕惣瀹佺Е宸漖\\\\d{5}[A-Z]$";
+// Pattern r = Pattern.compile(patt);
+// Matcher matcher = r.matcher(str);
+// String regex = "^[\u4e00-\u9fa5]{1}[A-Z]{1}[A-HJ-NP-Z]{1}[A-HJ-NP-Z0-9]{4}[D0-9X]$";
+// Pattern pattern = Pattern.compile(regex);
+// Matcher matcher = pattern.matcher(str);
+// boolean isMatcher = matcher.matches();
+// return isMatcher;
+
+
+ if (str.length() >= 7 && str.length() <= 8){
+ Pattern pattern = Pattern.compile("^([浜触娌笣鍐�璞簯杈介粦婀樼殩椴佹柊鑻忔禉璧i剛妗傜敇鏅嬭挋闄曞悏闂借吹绮ら潚钘忓窛瀹佺惣浣块A-Z]{1}[a-zA-Z](([ABCDF]((?![IO])[a-zA-Z0-9](?![IO]))[0-9]{4})|([0-9]{5}[ABCDF]))|[浜触娌笣鍐�璞簯杈介粦婀樼殩椴佹柊鑻忔禉璧i剛妗傜敇鏅嬭挋闄曞悏闂借吹绮ら潚钘忓窛瀹佺惣浣块A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9鎸傚璀︽腐婢砞{1})$");
+ Matcher m = pattern.matcher(str);
+ if (!m.matches()){
+ return false;
+ }
+ return true;
+ }else {
+ return false;
+ }
+
}
public static String getTuominStr(String s){
@@ -328,10 +345,78 @@
int otherDeal = 4;//浠栦汉宸插鐞�
}
+ /**
+ * 鑾峰彇杞︾墝绫诲瀷淇℃伅
+ *
+ * @param plateNo
+ * @return 杩斿洖null锛岃〃绀鸿溅鐗屼笉鍖归厤
+ */
+ public static VehiclePlateNoEnum getVehiclePlateNo(String plateNo) {
+ for (VehiclePlateNoEnum vehiclePlateNoEnum : VehiclePlateNoEnum.values()) {
+ Matcher matcher = vehiclePlateNoEnum.pattern.matcher(plateNo);
+ if (matcher.find()) {
+ return vehiclePlateNoEnum;
+ }
+ }
+ return null;
+ }
+
+
+ public enum VehiclePlateNoEnum {
+ /**
+ * 鍖归厤姘戠敤杞︾墝鍜屼娇棣嗚溅鐗�
+ * 1銆佺涓�浣嶄负姹夊瓙鐪佷唤缂╁啓
+ * 2銆佺浜屼綅涓哄ぇ鍐欏瓧姣嶅煄甯傜紪鐮�
+ * 3銆佸悗闈㈡槸5浣嶄粎鍚瓧姣嶅拰鏁板瓧鐨勭粍鍚�
+ */
+ CIVIL_LICENSE_PLATE_AND_EMBASSY_LICENSE_PLATE(1, "姘戠敤杞︾墝鍜屼娇棣嗚溅鐗�", Pattern.compile("^[浜触鍐�鏅嬭挋杈藉悏榛戞勃鑻忔禉鐨栭椊璧i瞾璞剛婀樼菠妗傜惣宸濊吹浜戞笣钘忛檿鐢橀潚瀹佹柊]{1}[A-Z]{1}[0-9a-zA-Z]{5}$")),
+ /**
+ * 鍖归厤鐗圭杞︾墝(鎸�,璀�,瀛�,棰�,娓�,婢�)
+ */
+ SPECIAL_LICENSE_PLATES(2, "鐗圭杞︾墝", Pattern.compile("^[浜触鍐�鏅嬭挋杈藉悏榛戞勃鑻忔禉鐨栭椊璧i瞾璞剛婀樼菠妗傜惣宸濊吹浜戞笣钘忛檿鐢橀潚瀹佹柊]{1}[A-Z]{1}[0-9a-zA-Z]{4}[鎸傝瀛﹂娓境]{1}$")),
+ /**
+ * 鍖归厤
+ */
+ ARMED_POLICE_CAR(3, "姝﹁杞︾墝", Pattern.compile("^WJ[浜触鍐�鏅嬭挋杈藉悏榛戞勃鑻忔禉鐨栭椊璧i瞾璞剛婀樼菠妗傜惣宸濊吹浜戞笣钘忛檿鐢橀潚瀹佹柊]?[0-9a-zA-Z]{5}$")),
+ /**
+ * 鍖归厤鍐涚墝
+ */
+ MILITARY_CAR(4, "鍐涚敤杞︾墝", Pattern.compile("^[A-Z]{2}[0-9]{5}$")),
+ /**
+ * 灏忓瀷鏂拌兘婧愯溅
+ * 1銆佸尮閰嶆柊鑳芥簮杞﹁締6浣嶈溅鐗�
+ */
+ SMALL_NEW_ENERGY_VEHICLE(5, "灏忓瀷鏂拌兘婧愯溅鐗�", Pattern.compile("^[浜触鍐�鏅嬭挋杈藉悏榛戞勃鑻忔禉鐨栭椊璧i瞾璞剛婀樼菠妗傜惣宸濊吹浜戞笣钘忛檿鐢橀潚瀹佹柊]{1}[A-Z]{1}[DF]{1}[0-9a-zA-Z]{5}$")),
+ /**
+ * 澶у瀷鏂拌兘婧愯溅
+ */
+ LARGE_NEW_ENERGY_VEHICLE(6, "澶у瀷鏂拌兘婧愯溅鐗�", Pattern.compile("^[浜触鍐�鏅嬭挋杈藉悏榛戞勃鑻忔禉鐨栭椊璧i瞾璞剛婀樼菠妗傜惣宸濊吹浜戞笣钘忛檿鐢橀潚瀹佹柊]{1}[A-Z]{1}[0-9a-zA-Z]{5}[DF]{1}$"));
+ private int code;
+
+ private String description;
+
+ private Pattern pattern;
+
+ VehiclePlateNoEnum(int code, String description, Pattern pattern) {
+ this.code = code;
+ this.description = description;
+ this.pattern = pattern;
+ }
+
+ public int getCode() {
+ return code;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+ }
public static void main(String[] args) {
- System.out.println(Constants.checkCarNo("婀楤40D17"));
- System.out.println(Constants.checkCarNo("鐨朅P0637"));
+ System.out.println(Constants.getVehiclePlateNo("婀楤D40D17").getDescription());
+
+ System.out.println(Constants.getVehiclePlateNo("婀楤140D17").getDescription());
+ System.out.println(Constants.getVehiclePlateNo("瀹緼P0637").getDescription());
}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index 74de87d..bf9b156 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -701,8 +701,8 @@
.select(" (select STARTTIME from visits v where v.MEMBER_ID=t.id and v.ISDELETED=0 order by CREATE_DATE desc limit 1) as visitsLastDate");
queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getCreaterId()),Member::getEditor,pageWrap.getModel().getCreaterId());
- queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getType()),Member::getType,pageWrap.getModel().getType());
- queryWrapper
+ queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getType()),Member::getType,pageWrap.getModel().getType());
+ queryWrapper
.and(StringUtils.isNotBlank(pageWrap.getModel().getName()),ms->ms.like(Member::getPhone,pageWrap.getModel().getName())
.or().like(Member::getName,pageWrap.getModel().getName()))
.and(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()),
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 065884b..862ba48 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
@@ -683,11 +683,11 @@
}
private Member getMemberListParam(String cardno, Visits visits, List<Member> addList, List<Member> editList) {
-// if(!StringUtils.isNotBlank(visits.getCarNos())
-//// &&!Constants.checkCarNo(visits.getCarNos())
-// ){
-// throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝杞︾墝鍙枫��"+visits.getCarNos()+"銆戜笉鍚堟硶锛岃鏍稿疄鍚庨噸璇晘");
-// }
+ if(!StringUtils.isNotBlank(visits.getCarNos())
+ &&Objects.isNull(Constants.getVehiclePlateNo(visits.getCarNos()))
+ ){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝杞︾墝鍙枫��"+visits.getCarNos()+"銆戜笉鍚堟硶锛岃鏍稿疄鍚庨噸璇晘");
+ }
if(Constants.equalsInteger(Constants.ZERO, visits.getIdcardType())&&cardno.length()!=18
//&&!IdcardUtil.isValidCard(cardno)
){
@@ -730,7 +730,9 @@
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀵逛笉璧凤紝璇ヨ韩浠借瘉鍙疯绂佹璁块棶鐢宠锛屽鏈夌枒闂紝璇疯仈绯绘偍鐨勬嫓璁夸汉杩涜鏍稿疄");
}
//鏍告煡棰勭害鐢ㄦ埛鏄惁瀛樺湪鏈绂荤殑棰勭害璁板綍
- isExsitNoOutVisisRecord(member);
+
+// isExsitNoOutVisisRecord(member);
+
member.setFaceImg(visits.getFaceImg());
member.setImgurl(StringUtils.isNotBlank(visits.getImgurl())?visits.getImgurl():null);
member.setEditDate(visits.getCreateDate());
@@ -751,9 +753,10 @@
}
//鏍规嵁鎵嬫満鍙峰拰韬唤璇佸彿鐮佹煡璇� 褰撳墠棰勭害鐨勬椂闂存槸鍚︿笌鍏朵粬棰勭害璁板綍鏈夊啿绐�
if (visitsMapper.selectCount(new QueryWrapper<Visits>().lambda()
- .notIn(Visits::getStatus,Constants.VisitStatus.cancel,Constants.VisitStatus.cancel,Constants.VisitStatus.noPass,Constants.VisitStatus.xfFail)
- .and(ms -> ms.eq(Visits::getPhone, visits.getPhone())
- .or().eq(Visits::getIdcardDecode, Constants.getTuominStr(cardno)))
+ .notIn(Visits::getStatus,Constants.VisitStatus.cancel,Constants.VisitStatus.noPass,Constants.VisitStatus.xfFail)
+// .and(ms -> ms.eq(Visits::getPhone, visits.getPhone())
+// .or().eq(Visits::getIdcardDecode, Constants.getTuominStr(cardno)))
+ .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) {
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 bbbb7b3..ea6a205 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
@@ -986,7 +986,7 @@
}
Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getErpId,param.getUserId()).last("limit 1"));
if(Objects.isNull(member)){
- return;
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝鐢ㄦ埛淇℃伅涓嶅瓨鍦紒");
}
List<Integer> doorIds = getRoleIdByParam(param.getRoleIds(),member);
//鏇存柊鎺堟潈鏈夋晥鏈�
--
Gitblit v1.9.3