server/admin_timer/src/main/java/com/doumee/Main.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,7 @@ package com.doumee; public class Main { public static void main(String[] args) { System.out.println("Hello world!"); } } server/admin_timer/src/main/java/com/doumee/TimerApplication.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,25 @@ package com.doumee; import lombok.extern.slf4j.Slf4j; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.ApplicationContext; import org.springframework.scheduling.annotation.EnableAsync; /** * å¯å¨ç±» * @author Eva.Caesar Liu * @date 2023/03/21 14:49 */ @Slf4j @EnableAsync @SpringBootApplication @MapperScan("com.doumee.dao.*") public class TimerApplication { public static void main(String[] args) { ApplicationContext context = SpringApplication.run(TimerApplication.class); context.getEnvironment(); } } server/admin_timer/src/main/java/com/doumee/task/ScheduleSendTaskTool.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,44 @@ package com.doumee.task; import com.doumee.config.DataSyncConfig; import com.doumee.core.utils.Constants; import com.doumee.service.business.impl.hksync.HkSyncEmpowerServiceImpl; import com.doumee.service.business.impl.hksync.ferp.HkSyncOrgUserToHKServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; /** * 宿¶ä»»å¡ * @author jiangping * @date 2021-10-10 14:40:35 * https://www.bejson.com/othertools/cron/ cron 表达å¼çæå°å */ @Component @EnableScheduling public class ScheduleSendTaskTool { @Autowired private HkSyncEmpowerServiceImpl hkSyncEmpowerService; public static int endId = 0; /** * 宿¶åæ¥å é¨äººåææå°æµ·åº·ç³»ç» * @throws Exception */ @Scheduled(fixedDelay= 30*1000) public void syncEmpowerData() { endId = hkSyncEmpowerService.syncEmpowerData(0); endId = hkSyncEmpowerService.syncEmpowerData(endId); endId = hkSyncEmpowerService.syncEmpowerData(endId); endId = hkSyncEmpowerService.syncEmpowerData(endId); endId = hkSyncEmpowerService.syncEmpowerData(endId); endId = hkSyncEmpowerService.syncEmpowerData(endId); endId = hkSyncEmpowerService.syncEmpowerData(endId); endId = hkSyncEmpowerService.syncEmpowerData(endId); endId = hkSyncEmpowerService.syncEmpowerData(endId); endId = hkSyncEmpowerService.syncEmpowerData(endId); } } server/admin_timer/src/main/java/com/doumee/task/ScheduleTaskDetailTool.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,33 @@ package com.doumee.task; import com.doumee.config.DataSyncConfig; import com.doumee.service.business.impl.hksync.HkSyncEmpowerServiceImpl; import com.doumee.service.business.impl.hksync.ferp.HkSyncOrgUserToHKServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; /** * 宿¶ä»»å¡ * @author jiangping * @date 2021-10-10 14:40:35 * https://www.bejson.com/othertools/cron/ cron 表达å¼çæå°å */ @Component @EnableScheduling public class ScheduleTaskDetailTool { @Autowired private HkSyncEmpowerServiceImpl hkSyncEmpowerService; /** * 宿¶æ¥è¯¢äººåå®é ä¸åæéç»æï¼æ¯å¦å·²ç»ä¸è½½æå * @throws Exception */ @Scheduled(fixedDelay= 3*1000) public void syncEmpowerDetailData() { hkSyncEmpowerService.syncEmpowerDetailData(); } } server/admin_timer/src/main/java/com/doumee/task/ScheduleTaskProgressTool.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,32 @@ package com.doumee.task; import com.doumee.config.DataSyncConfig; import com.doumee.service.business.impl.hksync.HkSyncEmpowerServiceImpl; import com.doumee.service.business.impl.hksync.ferp.HkSyncOrgUserToHKServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; /** * 宿¶ä»»å¡ * @author jiangping * @date 2021-10-10 14:40:35 * https://www.bejson.com/othertools/cron/ cron 表达å¼çæå°å */ @Component @EnableScheduling public class ScheduleTaskProgressTool { @Autowired private HkSyncEmpowerServiceImpl hkSyncEmpowerService; /** * 宿¶æ¥è¯¢äººåä¸åæµ·åº·ç»æï¼ä»»å¡æ¯å¦å·²ä¸è½½ç»æï¼ * @throws Exception */ @Scheduled(fixedDelay=60*1000) public void syncEmpowerResultData() { hkSyncEmpowerService.syncEmpowerResultData(); } } server/admin_timer/src/main/resources/application.yml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,75 @@ # 项ç®ä¿¡æ¯é ç½® project: name: è®¿å®¢ç³»ç» version: 1.0.0 env: development # env: production spring: # application: # name: doumeemes profiles: active: proHS # JSONè¿åé ç½® jackson: # é»è®¤æ¶åº time-zone: GMT+8 # é»è®¤æ¥ææ ¼å¼å date-format: yyyy-MM-dd HH:mm:ss servlet: multipart: max-file-size: 200MB max-request-size: 200MB enabled: true # MyBatisé ç½® mybatis-plus: mapper-locations: classpath*:/mappers/**/*.xml configuration: map-underscore-to-camel-case: true log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # ç¼åå 容设置 cache: session: # ä¼è¯è¿ææ¶é¿(s) expire: 18000 captcha: # éªè¯ç è¿ææ¶é¿(s) expire: 300 # è·è¸ªæ¥å¿ trace: # å¼å¯æºè½è·è¸ªæ¨¡å¼ smart: true # æé¤è·è¸ªçURLæ£å exclude-patterns: .+/list[a-zA-Z0-9\-\_]*$, .+/tree[a-zA-Z0-9\-\_]*$, .+/page[a-zA-Z0-9\-\_]*$, .+/all[a-zA-Z0-9\-\_]*$, /swagger-resources.* # æ¥å¿é ç½® logback: level: INFO appender: ${project.env} # daoå±çæ¥å¿è®¾ç½®ä¸ºdebugï¼æ¹ä¾¿æ¥çsql logging: level: doumeemes.dao: debug knife4j: enable: true basic: enable: true username: admin password: 111111 # WEBæå¡å¨é ç½® server: compression: enabled: true mime-types: application/json port: 10031 tomcat: max-swallow-size: -1 servlet: session: timeout: PT3H #表示12å°æ¶ server/dmvisit_admin/pom.xml
@@ -74,7 +74,7 @@ </pluginManagement> </build>--> <build> <finalName>dmvisit_admin</finalName> <finalName>admin_interface</finalName> <resources> <resource> <directory>src/main/resources</directory> server/dmvisit_admin/src/main/java/com/doumee/task/ScheduleTool.java
@@ -127,30 +127,30 @@ public void syncVisitData() { hkSyncVisitService.syncVisitData(); } /** /* *//** * 宿¶åæ¥å é¨äººåææå°æµ·åº·ç³»ç» * @throws Exception */ @Scheduled(fixedDelay= 10*1000) *//* @Scheduled(fixedDelay= 3*1000) public void syncEmpowerData() { hkSyncEmpowerService.syncEmpowerData(); } /** *//** * 宿¶æ¥è¯¢äººåä¸åæµ·åº·ç»æï¼ä»»å¡æ¯å¦å·²ä¸è½½ç»æï¼ * @throws Exception */ *//* @Scheduled(fixedDelay= 60*1000) public void syncEmpowerResultData() { hkSyncEmpowerService.syncEmpowerResultData(); } /** *//** * 宿¶æ¥è¯¢äººåå®é ä¸åæéç»æï¼æ¯å¦å·²ç»ä¸è½½æå * @throws Exception */ *//* @Scheduled(fixedDelay= 60*1000) public void syncEmpowerDetailData() { hkSyncEmpowerService.syncEmpowerDetailData(); } }*/ /** * 宿¶åæ¥è½¦è¾å æå°æµ·åº·ç³»ç» * @throws Exception server/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java
@@ -69,7 +69,7 @@ void syncVisitData(); void getOutTimeVisitRecord( ); void syncEmpowerData(); Integer syncEmpowerData(Integer startPage); void syncEmpowerDataNew(int start,int end); void syncParkBookData(); void syncParkBookBySingleModel(ParkBook c); server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceRoleServiceImpl.java
@@ -233,7 +233,7 @@ queryWrapper.lambda().eq(DeviceRole::getRemark, pageWrap.getModel().getRemark()); } if (pageWrap.getModel().getName() != null) { queryWrapper.lambda().eq(DeviceRole::getName, pageWrap.getModel().getName()); queryWrapper.lambda().like(DeviceRole::getName, pageWrap.getModel().getName()); } if (pageWrap.getModel().getIsDefault() != null) { queryWrapper.lambda().eq(DeviceRole::getIsDefault, pageWrap.getModel().getIsDefault()); @@ -270,6 +270,7 @@ queryWrapper.orderByAsc(sortData.getProperty()); } } queryWrapper.lambda().orderByAsc( DeviceRole::getName); IPage<DeviceRole> newPage = deviceRoleMapper.selectPage(page, queryWrapper); if(null != newPage && newPage.getRecords().size() > 0) { List<DeviceRole> deviceRoleList = newPage.getRecords(); server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -642,8 +642,8 @@ .like(Member::getPhone,pageWrap.getModel().getKeyword()) .or().like(Member::getName,pageWrap.getModel().getKeyword()) .or().like(Member::getCode,pageWrap.getModel().getKeyword())) .isNull(!Objects.isNull(pageWrap.getModel().getHasFace())&&Constants.equalsInteger(pageWrap.getModel().getHasFace(),Constants.ZERO),Member::getFaceId) .isNotNull(!Objects.isNull(pageWrap.getModel().getHasFace())&&Constants.equalsInteger(pageWrap.getModel().getHasFace(),Constants.ONE),Member::getFaceId) .isNull(pageWrap.getModel().getHasFace()!=null&& Constants.equalsInteger(pageWrap.getModel().getHasFace(),Constants.ZERO),Member::getFaceId) .isNotNull(pageWrap.getModel().getHasFace()!=null&& Constants.equalsInteger(pageWrap.getModel().getHasFace(),Constants.ONE),Member::getFaceId) .eq(Objects.nonNull(pageWrap.getModel().getCanVisit()),Member::getCanVisit,pageWrap.getModel().getCanVisit()) .eq(Objects.nonNull(pageWrap.getModel().getStatus()),Member::getStatus,pageWrap.getModel().getStatus()) .eq(Objects.nonNull(pageWrap.getModel().getHkStatus()),Member::getHkStatus,pageWrap.getModel().getHkStatus()) server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java
@@ -115,7 +115,8 @@ public void getOutTimeVisitRecord(){ } @Override public void syncEmpowerData() { public Integer syncEmpowerData(Integer startPage) { return null; } @Override public void syncEmpowerDataNew(int start,int end) { server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEmpowerServiceImpl.java
@@ -63,12 +63,10 @@ if(list == null || list.size() ==0){ return; } int tryNum = 1; Thread t1=new Thread(new Runnable() { @Override public void run() { try { tryNum = Integer.parseInt(systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.RETRY_CONNECT_NUM).getCode()); }catch (Exception e){ } for(Empower c : list){ TaskPersonDetailRequest param = new TaskPersonDetailRequest(); param.setPageNo(1); @@ -134,6 +132,12 @@ .set(Empower::getTryNum,Constants.formatIntegerNum(c.getTryNum())+1) .set(Empower::getSendInfo, "ä¸å失败ï¼çå¾ éæ°å 餿é") .set(Empower::getSendStatus, Constants.EmpowerStatus.wait)); empowerMapper.update(null, new UpdateWrapper<Empower>() .lambda() .eq(Empower::getId, c.getId()) .set(Empower::getRemark, "å 餿éä¸å失败") .set(Empower::getSendInfo, "å 餿éä¸å失败") .set(Empower::getSendStatus, Constants.EmpowerStatus.fail)); }else{ empowerMapper.update(null, new UpdateWrapper<Empower>() .lambda() @@ -142,22 +146,22 @@ .set(Empower::getSendInfo, "ä¸å失败") .set(Empower::getSendStatus, Constants.EmpowerStatus.fail)); } /* empowerMapper.update(null, new UpdateWrapper<Empower>() .lambda() .eq(Empower::getId, c.getId()) .set(Empower::getRemark, Constants.equalsInteger(c.getIsdeleted(), Constants.ZERO) ? "ä¸å失败" : "å 餿éæå") .set(Empower::getSendInfo, "å 餿éæå") .set(Empower::getSendStatus, Constants.equalsInteger(c.getIsdeleted(), Constants.ZERO) ? Constants.EmpowerStatus.fail : Constants.EmpowerStatus.pass)); */ } checkDelMemberTask(c.getMemberId()); } } }catch (Exception e){ e.printStackTrace(); }finally { Constants.DEALING_HK_EMPOWER_DETAIL=false; } } }); t1.start(); }catch (Exception e){ e.printStackTrace(); } } @@ -279,6 +283,10 @@ if(list == null || list.size() ==0){ return; } Thread t1=new Thread(new Runnable() { @Override public void run() { try { for(Empower c : list){ TaskProgressRequest param = new TaskProgressRequest(); param.setTaskId(c.getHkId()); @@ -286,23 +294,30 @@ BaseResponse<TaskProgressNumResponse> response = HKService.taskProgressNum(param); if(response!=null && StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE) && response.getData()!=null && response.getData().getIsDownloadFinished() != null && response.getData().getIsDownloadFinished() ){ && response.getData()!=null){ //æ´æ°å·²å®æä¸è½½ä»»å¡ if( response.getData().getIsDownloadFinished() != null && response.getData().getIsDownloadFinished() ){ empowerMapper.update(null,new UpdateWrapper<Empower>() .lambda() .eq(Empower::getHkId,c.getHkId() ) .set(Empower::getSendInfo,"ä»»å¡å·²ä¸è½½å®æ" ) .set(Empower::getSendStatus,Constants.EmpowerStatus.downloaded) ); } } }catch (Exception e){ e.printStackTrace(); } }catch (Exception e1){ e1.printStackTrace(); }finally { Constants.DEALING_HK_EMPOWER_RESULT =false; } } }); t1.start(); }catch (Exception e){ e.printStackTrace(); } } @@ -311,21 +326,47 @@ * å¤çäººåæææ°æ®ï¼å®æ¶ä¸å */ @Override public void syncEmpowerData() { if(Constants.DEALING_HK_EMPOWER){ return ; } Constants.DEALING_HK_EMPOWER =true; public Integer syncEmpowerData(Integer endId) { // if(Constants.DEALING_HK_EMPOWER){ // return null ; // } // Constants.DEALING_HK_EMPOWER =true; try { //å å 餿æéè¦åæ¶ææçæ°æ® dealDelListTask(getDealList(Constants.ONE)); List<Empower> allList =getAllWaitDealList( endId); if(allList !=null && allList.size()>0){ //æ¥è¯¢ææéè¦åæ¥çæ°æ®,éæ°ä¸åææ°äººåæéå³å¯ dealNewListTask(getDealList(Constants.ZERO)); // dealNewListTask(getDealList(Constants.ZERO,endId)); List<Empower> dellist = new ArrayList<>(); List<Empower> addlist = new ArrayList<>(); for(Empower e : allList){ if(Constants.equalsInteger(e.getIsdeleted(),Constants.ONE)){ dellist.add(e); }else { addlist.add(e); } } Thread t1=new Thread(new Runnable() { @Override public void run() { if(dellist!=null &&dellist.size()>0) { dealDelListTask(dellist); } if(addlist!=null &&addlist.size()>0) { dealNewListTask(addlist); } } }); t1.start(); return allList.get(allList.size()-1).getId(); } }catch (Exception e){ e.printStackTrace(); }finally { Constants.DEALING_HK_EMPOWER =false; // Constants.DEALING_HK_EMPOWER =false; } return null; } @Override public void syncEmpowerDataNew(int start,int end) { @@ -405,7 +446,21 @@ .set(Empower::getEditDate,date) .in(Empower::getId,errorList)); } public class TaskRuner implements Runnable{ private List<Empower> list ; @Override public void run() { dealNewListTask(list); } public List<Empower> getList() { return list; } public void setList(List<Empower> list) { this.list = list; } } private void dealNewListTask(List<Empower> list) { //æç §ç¶çº§ç³è¯·åæ¹å¤çæ¯æ¬¡ç³è¯·æ°æ® if(list ==null || list.size()==0){ @@ -520,7 +575,7 @@ return false; } } private List<Empower> getDealList(int del ) { private List<Empower> getDealList(int del ,Integer endId ) { MPJLambdaWrapper<Empower> queryWrapper = new MPJLambdaWrapper<>(); queryWrapper.selectAll(Empower.class); queryWrapper.selectAs(Device::getChannelNo,Empower::getDeviceChannelNo); @@ -530,7 +585,26 @@ queryWrapper.leftJoin(Device.class,Device::getId,Empower::getDeviceId); queryWrapper.leftJoin(Member.class,Member::getId,Empower::getMemberId); queryWrapper.eq(Empower::getSendStatus,Constants.EmpowerStatus.wait); queryWrapper.eq( Empower::getIsdeleted,del); // queryWrapper.eq( Empower::getIsdeleted,del); queryWrapper.gt(Empower::getId,endId); queryWrapper.orderByAsc(Empower::getId ); // queryWrapper.orderByAsc(Empower::getCreateDate ); queryWrapper.last("limit 100");//æ¯æ¬¡éå¶ä¸å100个 List<Empower> list = empowerMapper.selectJoinList(Empower.class,queryWrapper); return list; } private List<Empower> getAllWaitDealList(int endId ) { MPJLambdaWrapper<Empower> queryWrapper = new MPJLambdaWrapper<>(); queryWrapper.selectAll(Empower.class); queryWrapper.selectAs(Device::getChannelNo,Empower::getDeviceChannelNo); queryWrapper.selectAs(Member::getHkId,Empower::getMemberHkId); queryWrapper.selectAs(Device::getHkId,Empower::getDeviceIndexCode); queryWrapper.selectAs(Device::getResourceType,Empower::getDeviceType); queryWrapper.leftJoin(Device.class,Device::getId,Empower::getDeviceId); queryWrapper.leftJoin(Member.class,Member::getId,Empower::getMemberId); queryWrapper.eq(Empower::getSendStatus,Constants.EmpowerStatus.wait); // queryWrapper.eq( Empower::getIsdeleted,del); queryWrapper.gt(Empower::getId,endId); queryWrapper.orderByAsc(Empower::getId ); // queryWrapper.orderByAsc(Empower::getCreateDate ); queryWrapper.last("limit 100");//æ¯æ¬¡éå¶ä¸å100个 server/pom.xml
@@ -15,6 +15,7 @@ <module>dmvisit_service</module> <module>dmvisit_web</module> <module>openapi</module> <module>admin_timer</module> </modules>