Procházet zdrojové kódy

Merge remote-tracking branch 'origin/V1' into V1

jz.kai před 5 roky
rodič
revize
7017c3ef02

+ 1 - 0
common/src/main/java/com/jpsoft/smart/modules/base/service/DeviceInfoService.java

@@ -13,6 +13,7 @@ public interface DeviceInfoService {
 	int update(DeviceInfo model);
 	int delete(String id);
 	List<DeviceInfo> list();
+	DeviceInfo getByDeviceNo(String deviceNo);
 	Page<DeviceInfo> pageSearch(Map<String, Object> searchParams, int pageNum, int pageSize,boolean count, List<Sort> sortList);
 	void updateByDeviceNo(String deviceNo, String ip);
 }

+ 5 - 0
common/src/main/java/com/jpsoft/smart/modules/base/service/impl/DeviceInfoServiceImpl.java

@@ -61,6 +61,11 @@ public class DeviceInfoServiceImpl implements DeviceInfoService {
 		return deviceInfoDAO.list();
 	}
 
+	@Override
+	public DeviceInfo getByDeviceNo(String deviceNo){
+		return deviceInfoDAO.getByDeviceNo(deviceNo);
+	}
+
 	@Override
 	public Page<DeviceInfo> pageSearch(Map<String, Object> searchParams, int pageNumber, int pageSize,boolean count,List<Sort> sortList) {
         Page<DeviceInfo> page = PageHelper.startPage(pageNumber,pageSize,count).doSelectPage(()->{

+ 2 - 2
common/src/main/java/com/jpsoft/smart/modules/lapi/service/impl/LapiServiceImpl.java

@@ -87,7 +87,7 @@ public class LapiServiceImpl implements ILapiService {
         List<DeviceInfo> deviceList = new ArrayList<>();
         for (PersonDeviceRelation personDeviceRelation:listRelation){
             DeviceInfo deviceInfo = deviceInfoService.get(personDeviceRelation.getDeviceId());
-            if (deviceInfo!=null){
+            if (deviceInfo!=null && !deviceInfo.getDelFlag()){
                 deviceList.add(deviceInfo);
             }
         }
@@ -204,7 +204,7 @@ public class LapiServiceImpl implements ILapiService {
         List<DeviceInfo> deviceList = new ArrayList<>();
         for (PersonDeviceRelation personDeviceRelation:listRelation){
             DeviceInfo deviceInfo = deviceInfoService.get(personDeviceRelation.getDeviceId());
-            if (deviceInfo!=null){
+            if (deviceInfo!=null && !deviceInfo.getDelFlag()){
                 deviceList.add(deviceInfo);
             }
         }

+ 1 - 1
common/src/main/resources/mapper/base/DeviceInfo.xml

@@ -158,7 +158,7 @@ id_, header_,device_no,alias_name,address_,is_online,company_id,unlock_password,
 	 	</foreach>
 	</select>
 	<select id="findByDeviceNo" parameterType="string" resultMap="DeviceInfoMap">
-			select * from base_device_info where device_no = #{0}
+			select * from base_device_info where device_no = #{0} and del_flag=false
 	</select>
 
 </mapper>

+ 0 - 13
lapi/src/main/java/com/jpsoft/smart/lapi/handler/PersonVerificationHandler.java

@@ -80,18 +80,5 @@ public class PersonVerificationHandler extends SimpleChannelInboundHandler<Perso
         personDeviceLogService.deviceInsertLog(deviceNo,temperature,faceImageJson,libMatInfoListJson,matchPersonInfo,date);
 
 
-
-
-        /*log.warn("faceJson"+faceJson);
-        log.warn("FaceImage"+faceImageJson);
-        log.warn("LibMatInfoList"+libMatInfoListJson);
-        log.warn("MatchPersonInfo"+matchPersonInfo);
-        long timestamp = jsonObject.getLong("Timestamp");
-
-        Date date = new Date(timestamp);
-
-        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-
-        log.warn("考勤时间:" + sdf.format(date));*/
     }
 }

+ 3 - 1
web/.gitignore

@@ -3,6 +3,8 @@ target/
 !.mvn/wrapper/maven-wrapper.jar
 !**/src/main/**
 !**/src/test/**
+**/src/main/resources/application-dev.yml
+
 .mvn
 ### STS ###
 .apt_generated
@@ -28,4 +30,4 @@ target/
 build/
 
 ### VS Code ###
-.vscode/
+.vscode/

+ 2 - 0
web/src/main/java/com/jpsoft/smart/config/WebMvcConfig.java

@@ -28,6 +28,8 @@ public class WebMvcConfig implements WebMvcConfigurer {
 
 	@Override
 	public void addResourceHandlers(ResourceHandlerRegistry registry) {
+		registry.addResourceHandler("/**").addResourceLocations("classpath:/static/");
+
 		registry.addResourceHandler("swagger-ui.html")
 				.addResourceLocations("classpath:/META-INF/resources/");
 

+ 65 - 20
web/src/main/java/com/jpsoft/smart/modules/base/controller/DeviceInfoController.java

@@ -44,19 +44,28 @@ public class DeviceInfoController {
         MessageResult<DeviceInfo> msgResult = new MessageResult<>();
 
         try {
-            deviceInfo.setId(UUID.randomUUID().toString());
-            deviceInfo.setDelFlag(false);
-            deviceInfo.setCreateBy(subject);
-            deviceInfo.setCreateTime(new Date());
-            
-            int affectCount = deviceInfoService.insert(deviceInfo);
+            DeviceInfo item = deviceInfoService.getByDeviceNo(deviceInfo.getDeviceNo());
 
-            if (affectCount > 0) {
-                msgResult.setResult(true);
-                msgResult.setData(deviceInfo);
-            } else {
+            if(item == null) {
+
+                deviceInfo.setId(UUID.randomUUID().toString());
+                deviceInfo.setDelFlag(false);
+                deviceInfo.setCreateBy(subject);
+                deviceInfo.setCreateTime(new Date());
+
+                int affectCount = deviceInfoService.insert(deviceInfo);
+
+                if (affectCount > 0) {
+                    msgResult.setResult(true);
+                    msgResult.setData(deviceInfo);
+                } else {
+                    msgResult.setResult(false);
+                    msgResult.setMessage("数据库添加失败");
+                }
+            }
+            else{
                 msgResult.setResult(false);
-                msgResult.setMessage("数据库添加失败");
+                msgResult.setMessage("设备编号已经存在,不能重复添加!");
             }
         }
         catch(Exception ex){
@@ -114,18 +123,29 @@ public class DeviceInfoController {
         MessageResult<DeviceInfo> msgResult = new MessageResult<>();
 
         try {
-            deviceInfo.setUpdateBy(subject);
-            deviceInfo.setUpdateTime(new Date());
-            
-            int affectCount = deviceInfoService.update(deviceInfo);
+            DeviceInfo item = deviceInfoService.getByDeviceNo(deviceInfo.getDeviceNo());
 
-            if (affectCount > 0) {
-                msgResult.setResult(true);
-                msgResult.setData(deviceInfo);
-            } else {
+            //如果修改自己的属性
+            if(item.getId().equals(deviceInfo.getId())){
+                deviceInfo.setUpdateBy(subject);
+                deviceInfo.setUpdateTime(new Date());
+
+                int affectCount = deviceInfoService.update(deviceInfo);
+
+                if (affectCount > 0) {
+                    msgResult.setResult(true);
+                    msgResult.setData(deviceInfo);
+                } else {
+                    msgResult.setResult(false);
+                    msgResult.setMessage("数据库更新失败");
+                }
+            }
+            else{
+                //如果修改设备编号在数据库中已有重复的设备号,则不能修改!
                 msgResult.setResult(false);
-                msgResult.setMessage("数据库更新失败");
+                msgResult.setMessage("该设备编号的设备已存在,不能修改!");
             }
+
         }
         catch(Exception ex){
             logger.error(ex.getMessage(),ex);
@@ -273,4 +293,29 @@ public class DeviceInfoController {
         }
         return msgResult;
     }
+
+
+    @ApiOperation(value="获取设备信息列表")
+    @PostMapping("list")
+    public MessageResult<List<DeviceInfo>> list(@RequestAttribute String subject) {
+        MessageResult<List<DeviceInfo>> msgResult = new MessageResult<>();
+        try {
+            List<DeviceInfo> list = deviceInfoService.list();
+
+            for (DeviceInfo deviceInfo:list) {
+                String typeN = dataDictionaryService.findParentId("ddf2ecbe-84a6-4f0d-a84f-2fc6917f5856",deviceInfo.getType());
+                deviceInfo.setTypeN(typeN);
+            }
+
+            msgResult.setResult(true);
+            msgResult.setData(list);
+        }
+        catch(Exception ex){
+            logger.error(ex.getMessage(),ex);
+
+            msgResult.setResult(false);
+            msgResult.setMessage(ex.getMessage());
+        }
+        return msgResult;
+    }
 }

+ 57 - 2
web/src/main/java/com/jpsoft/smart/modules/base/controller/PersonDeviceRelationController.java

@@ -121,7 +121,62 @@ public class PersonDeviceRelationController {
                 msgResult.setData(affectCount);
             } else {
                 msgResult.setResult(false);
-                msgResult.setMessage("数据库添加失败");
+                msgResult.setMessage("人员与0个设备绑定成功!");
+            }
+        }
+        catch(Exception ex){
+            logger.error(ex.getMessage(),ex);
+
+            msgResult.setResult(false);
+            msgResult.setMessage(ex.getMessage());
+        }
+
+        return msgResult;
+    }
+
+
+
+    @ApiOperation(value="多个人员与设备批量绑定")
+    @PostMapping("batchBindPerson")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "persons",value = "人员ID(多个人员)", required = true,paramType = "query"),
+            @ApiImplicitParam(name = "deviceId",value = "设备ID", required = true, paramType = "query")
+    })
+    public MessageResult<Integer> batchBindPerson(String persons,String deviceId,@RequestAttribute String subject){
+        MessageResult<Integer> msgResult = new MessageResult<>();
+        int affectCount = 0;
+
+        try {
+            if(StringUtil.isNotEmpty(persons)){
+
+                String[] personArray = persons.split(",");
+
+                for (String strPersonId:personArray) {
+
+                    long personId = Long.parseLong(strPersonId);
+
+                    PersonDeviceRelation item = personDeviceRelationService.findByDeviceIdAndPersonId(deviceId,personId);
+
+                    if(item == null) {
+                        item = new PersonDeviceRelation();
+                        item.setId(UUID.randomUUID().toString());
+                        item.setDeviceId(deviceId);
+                        item.setPersonId(personId);
+                        item.setDelFlag(false);
+                        item.setCreateBy(subject);
+                        item.setCreateTime(new Date());
+
+                        affectCount += personDeviceRelationService.insert(item);
+                    }
+                }
+            }
+
+            if (affectCount > 0) {
+                msgResult.setResult(true);
+                msgResult.setData(affectCount);
+            } else {
+                msgResult.setResult(false);
+                msgResult.setMessage("有0个人员与设备绑定成功!");
             }
         }
         catch(Exception ex){
@@ -389,7 +444,7 @@ public class PersonDeviceRelationController {
         List<Sort> sortList = new ArrayList<>();
         sortList.add(new Sort("create_time","desc"));
 
-        searchParams.put("companyId",user.getCompanyId());
+        //searchParams.put("companyId",user.getCompanyId());
 
         Page<DeviceInfo> page = deviceInfoService.pageSearch(searchParams,pageIndex,pageSize,true,sortList);
 

+ 1 - 0
web/src/main/java/com/jpsoft/smart/modules/base/controller/PersonInfoController.java

@@ -917,6 +917,7 @@ public class PersonInfoController {
                 }
 
                 personInfo.setFaceBound(success);
+                personInfo.setFaceEnabled(success);
                 personInfo.setUpdateTime(new Date());
                 personInfoService.update(personInfo);
 

+ 8 - 3
web/src/main/java/com/jpsoft/smart/modules/mobile/controller/PersonInfoApiController.java

@@ -262,6 +262,13 @@ public class PersonInfoApiController {
                 throw new Exception("人员信息不存在!");
             }
 
+            //todo 更新人脸照片
+            personInfo.setOpenId(openId);
+            personInfo.setFaceImageUrl(faceImageUrl);
+            personInfo.setUpdateTime(new Date());
+
+            personInfoService.update(personInfo);
+
             //todo 同步终端
             List<LapiMsgResult> msgResultList = lapiService.addPerson(personId);
 
@@ -289,10 +296,8 @@ public class PersonInfoApiController {
                 success &= lapiMsgResult.isSuccess();
             }
 
-            personInfo.setOpenId(openId);
-            personInfo.setFaceImageUrl(faceImageUrl);
+            //todo 再次更新绑定状态
             personInfo.setFaceBound(success);
-
             personInfo.setUpdateTime(new Date());
 
             personInfoService.update(personInfo);

+ 0 - 44
web/src/main/resources/application-dev.yml

@@ -1,44 +0,0 @@
-server:
-  port: 8086
-  servlet:
-    context-path: /smart-community-server
-
-spring:
-  datasource:
-    url: jdbc:log4jdbc:mysql://192.168.33.20:3306/smart-community?autoReconnect=true&characterEncoding=utf8&serverTimezone=GMT%2B8
-    username: smart
-    password: smart
-  devtools:
-    add-properties: false
-    restart:
-      enabled: true
-
-logger:
-  level: WARN
-  dir: E:\mye\WORK\wisdowHouse
-
-electricity:
-  port: 9966    #监听端口
-
-wx:
-  pay:
-    appId: wx7e70eb62a8459869
-    appSecret: 909d17e353268da57c4f18cc09798049
-
-alipay:
-  serviceUrl: https://openapi.alipaydev.com/gateway.do
-  appId: 2016080600180410
-  publicKey: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzMBfmTqqpt4dMcuz8DpyrEtruu/G7+Gvkd0j99QX4mzcRLx4Wg9IicOIiZGSdgzLMKIxBmk0eKiqqbuBjOsrS/XU+SvsTNlT1O/ZY0w30HEWrb/pvmo58HSY76cevWqLqW19+fUax7HG811mF4lq4YkHNAWArqByEjoFYbKHbtqS0ReXFJ9SE5TaqZSVOieiu3bYPkw5HEGmnYZMhWH3Gvt6tK2peLSM8mEMY5qp3zlGew3sq1KtcDkvO2UCuAmEkAnCDZ1zoYYt45cvcmwaHozGKHGOtOe0EAitpZyLZW3dP5/yBFfWk+MdaA1kZe5gNr8ePY5ht+Sd+DizMEINiQIDAQAB
-  privateKey: MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDMwF+ZOqqm3h0xy7PwOnKsS2u678bv4a+R3SP31BfibNxEvHhaD0iJw4iJkZJ2DMswojEGaTR4qKqpu4GM6ytL9dT5K+xM2VPU79ljTDfQcRatv+m+ajnwdJjvpx69aoupbX359RrHscbzXWYXiWrhiQc0BYCuoHISOgVhsodu2pLRF5cUn1ITlNqplJU6J6K7dtg+TDkcQaadhkyFYfca+3q0ral4tIzyYQxjmqnfOUZ7DeyrUq1wOS87ZQK4CYSQCcINnXOhhi3jly9ybBoejMYocY6057QQCK2lnItlbd0/n/IEV9aT4x1oDWRl7mA2vx49jmG35J34OLMwQg2JAgMBAAECggEBALpSXSxdPKn4+ew0iJwVNAEh6PkF9ayZXWGJMY/2y31avt81+vdJbSMgcoFtnTAb2FN7ZM2Gsx8RrawjW3LXFmFbZeERXUlZg3YEhXhdBXWDU7XtLFIA7JSqJfn/xHNuH4Wgg8EQkLwkRP11gs/sVvzB63Ilh8Jhcyyu6/LJuYDfeXu/50sgkQn0xXjjJdwiez9iX//wraYYcWsSCCbwM3QZ0MRc3TCP04QfZsF+fnPM83/g2yzun8fmvB5zDtYhlHwau52CiZpTHOxCCkZx0tubVyPG9jmLJ8eg+/hIfOKzHi2HiNsOQlOgLj8inUkM2qW3JlU7VcHduB7MWjkDIAECgYEA6HLVEDDT61xQNIUbnBWQ0FpHBQjsG/388Uy/xKfchUkOfzA0kNId+Nrd3hhLtl3i7ta6KNu2vDNS5iEbg7SCVsgqBZ0enLLIrymyJ94pHbUeFTAqgP4pnoWglx3ttMsERCKcqt55NJY3gfLtVjBTgGgY1Kfxh9SYFC6CQ4v4V4kCgYEA4X8kv8vVg4ivoXk/gEsKXPYdXG6O3sClq7pf/kaecV0caV89rARXkDP324nLUMxvGKY0sNa373VhAFav4Hv3kGqrJ0NfEd/XiXXT3Zq3njN5V5xqjZZRsySimyFoBetYMTjN2dtPxTC/65OvQPC8BdHaSZDMQQQSFznKG9y4hgECgYEAieTFXIt6zB7BPcbQ8DEi7VcA1o3Kc3ii+wqKoMDr4u3J+c3BAUCEo0JDaCOFlrPvkbw0R1S//Ll9riNpzSHiSFUKCLaCmHa+8pqLo3b5cTQmmm8uZ8NfMTkYYU1R3HSrHThjNEIyKO4ME7zm6sBUaNJYGJ9gezG03hQRFr0MH/ECgYAKAXZD/Gtw9rO0WojyzGGdVl5fJ5i3UZ0ITbDMu510Mkl8c3ltFJQ+FdA9sZOP9kJHubhE0IJA4dh4B2CueVG22sTVbSvewyvxMYVBJAhZwLb1qD8iITVm2Y1NjOHswVCcfoTD0fNsMImTjm4MV6JAL9ubwA0QJXoYBbxuGBEoAQKBgDj0LpamjOv/gRDo96C8AKqACqWoHtVWvYaOrgsFVJWRsmkcrQu2nMHNyFlyJ1DcXbVkulILrUDth8+2jmbxrkmW+9Y8aX5vaKEmrNOOWiSgau3VxeJU+VedDYJl1IVpfs4k4ymMkkAGa1ZlMYHgeP20krHMzAn/NNeVvHUEXcR4
-  zfbPublicKey: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlU5CIAwwMmDnDPUHQaxiqZh2y6VE11DFTYVZygLEUbZuSCATO2fGkY8hv3fhLj8Wj+QT4kRfJrK+/v1QKcZ7a5UaoaASOPOGEf8X9p+lfuA863luUPiD+k4W6QMjOXoPdY4G4JC9lFe5FT05NqVYHXGIIqXTWSIqLyWDlv7elj8D1HS06H+ArzAjbSyR47IaKJCMnpqLGHJ6ZQGM+6DEcOpdZAULjhguZ891eTtawVndDOaYToCDK4MpW9mEifpKRB8JZptqr2zQhFBm7iADyMsIM1xwko2N6mKJYyYZJ9QzhTindSQBGw0Pbt1480iqeoQOHo+z0HPmikIsuiu65QIDAQAB
-  inputCharset: UTF-8
-  mchId: 2088102170202580
-  # appAuthToken: 201906BBbc7d6558596f4bbc9f056c01b8aebX48
-  signType: RSA2
-  notifyUrl: http://18891j25i6.iok.la/smart-server/aliPay/payNotify
-
-#springfox:
-#  documentation:
-#    swagger:
-#      v2:
-#        host: kr6zr7.natappfree.cc

+ 4 - 2
web/src/main/resources/application-production.yml

@@ -35,8 +35,10 @@ springfox:
 
 wx:
   pay:
-    appId: wx7e70eb62a8459869
-    appSecret: 909d17e353268da57c4f18cc09798049
+#    appId: wx7e70eb62a8459869
+#    appSecret: 909d17e353268da57c4f18cc09798049
+    appId: wx0b3c41a903053808
+    appSecret: 43557bd62f77b0c3d6670e991872f0e7
     mchId: 1500160622
     subMchId: 1505070291
     mchKey: jpsoft11111111111111111111111111

+ 1 - 1
web/src/main/resources/application.yml

@@ -4,7 +4,7 @@ server:
     context-path: /smart-community-server
 
 spring:
-  http:
+  servlet:
     multipart:
       max-request-size: 20MB
       max-file-size: 20MB