From 6c40e04eb7c2060feb2533735cd3089d438965e5 Mon Sep 17 00:00:00 2001 From: nidapeng <jp@doumee.com> Date: 星期二, 19 三月 2024 17:19:36 +0800 Subject: [PATCH] 整理 --- server/dmvisit_admin/src/main/java/com/doumee/api/business/MemberCardController.java | 1 server/dmvisit_service/src/main/java/com/doumee/service/business/MemberCardService.java | 2 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java | 4 server/admin_timer/src/main/java/com/doumee/task/ScheduleTaskDetailTool.java | 13 + server/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java | 5 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberCardServiceImpl.java | 17 ++ server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java | 14 + server/dmvisit_service/src/main/java/com/doumee/dao/business/join/MemberRoleJoinMapper.java | 12 + server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceRoleServiceImpl.java | 133 +++++++++++++++- server/openapi/pom.xml | 2 server/admin_timer/src/main/java/com/doumee/task/ScheduleTaskProgressTool.java | 6 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEmpowerServiceImpl.java | 89 +++++------ server/admin_timer/src/main/java/com/doumee/task/ScheduleSendTaskTool.java | 21 +- server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java | 70 ++++++++ server/dmvisit_service/src/main/java/com/doumee/dao/business/model/MemberRole.java | 4 server/dmvisit_service/src/main/java/com/doumee/core/erp/ErpTool.java | 12 + server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java | 4 server/dmvisit_admin/src/main/java/com/doumee/api/business/DeviceRoleController.java | 14 18 files changed, 326 insertions(+), 97 deletions(-) diff --git a/server/admin_timer/src/main/java/com/doumee/task/ScheduleSendTaskTool.java b/server/admin_timer/src/main/java/com/doumee/task/ScheduleSendTaskTool.java index 6a9623f..0ff1fe9 100644 --- a/server/admin_timer/src/main/java/com/doumee/task/ScheduleSendTaskTool.java +++ b/server/admin_timer/src/main/java/com/doumee/task/ScheduleSendTaskTool.java @@ -22,23 +22,22 @@ @Autowired private HkSyncEmpowerServiceImpl hkSyncEmpowerService; - public static int endId = 0; + public static Integer 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); + if(endId ==null){ + endId =0; + } + endId = hkSyncEmpowerService.syncEmpowerData(endId); + for (int i = 0; i < 9; i++) { + if(endId!=null){ + endId = hkSyncEmpowerService.syncEmpowerData(endId); + } + } } } diff --git a/server/admin_timer/src/main/java/com/doumee/task/ScheduleTaskDetailTool.java b/server/admin_timer/src/main/java/com/doumee/task/ScheduleTaskDetailTool.java index c6a2ee4..84fdd4f 100644 --- a/server/admin_timer/src/main/java/com/doumee/task/ScheduleTaskDetailTool.java +++ b/server/admin_timer/src/main/java/com/doumee/task/ScheduleTaskDetailTool.java @@ -19,6 +19,7 @@ @EnableScheduling public class ScheduleTaskDetailTool { + public static Integer endId = 0; @Autowired private HkSyncEmpowerServiceImpl hkSyncEmpowerService; @@ -26,8 +27,16 @@ * 瀹氭椂鏌ヨ浜哄憳瀹為檯涓嬪彂鏉冮檺缁撴灉锛屾槸鍚﹀凡缁忎笅杞芥垚鍔� * @throws Exception */ - @Scheduled(fixedDelay= 3*1000) + @Scheduled(fixedDelay= 30*1000) public void syncEmpowerDetailData() { - hkSyncEmpowerService.syncEmpowerDetailData(); + if(endId ==null){ + endId =0; + } + endId = hkSyncEmpowerService.syncEmpowerDetailData(endId); + for (int i = 0; i < 9; i++) { + if(endId!=null){ + endId = hkSyncEmpowerService.syncEmpowerDetailData(endId); + } + } } } diff --git a/server/admin_timer/src/main/java/com/doumee/task/ScheduleTaskProgressTool.java b/server/admin_timer/src/main/java/com/doumee/task/ScheduleTaskProgressTool.java index f95b694..7919f10 100644 --- a/server/admin_timer/src/main/java/com/doumee/task/ScheduleTaskProgressTool.java +++ b/server/admin_timer/src/main/java/com/doumee/task/ScheduleTaskProgressTool.java @@ -18,15 +18,17 @@ @Component @EnableScheduling public class ScheduleTaskProgressTool { + + public static Integer endId = 0; @Autowired private HkSyncEmpowerServiceImpl hkSyncEmpowerService; /** * 瀹氭椂鏌ヨ浜哄憳涓嬪彂娴峰悍缁撴灉锛堜换鍔℃槸鍚﹀凡涓嬭浇缁撴潫锛� * @throws Exception */ - @Scheduled(fixedDelay=60*1000) + @Scheduled(fixedDelay=20*1000) public void syncEmpowerResultData() { - hkSyncEmpowerService.syncEmpowerResultData(); + endId = hkSyncEmpowerService.syncEmpowerResultData(endId); } } diff --git a/server/dmvisit_admin/src/main/java/com/doumee/api/business/DeviceRoleController.java b/server/dmvisit_admin/src/main/java/com/doumee/api/business/DeviceRoleController.java index fe0f82e..42eb3cc 100644 --- a/server/dmvisit_admin/src/main/java/com/doumee/api/business/DeviceRoleController.java +++ b/server/dmvisit_admin/src/main/java/com/doumee/api/business/DeviceRoleController.java @@ -33,14 +33,14 @@ @PreventRepeat @ApiOperation("鏂板缓") @PostMapping("/create") - //@RequiresPermissions("business:devicerole:create") + @RequiresPermissions("business:devicerole:create") public ApiResponse create(@RequestBody DeviceRole deviceRole) { return ApiResponse.success(deviceRoleService.create(deviceRole)); } @ApiOperation("鏍规嵁ID鍒犻櫎") @GetMapping("/delete/{id}") - //@RequiresPermissions("business:devicerole:delete") + @RequiresPermissions("business:devicerole:delete") public ApiResponse deleteById(@PathVariable Integer id) { deviceRoleService.deleteById(id); return ApiResponse.success(null); @@ -48,7 +48,7 @@ @ApiOperation("鎵归噺鍒犻櫎") @GetMapping("/delete/batch") - //@RequiresPermissions("business:devicerole:delete") + @RequiresPermissions("business:devicerole:delete") public ApiResponse deleteByIdInBatch(@RequestParam String ids) { String [] idArray = ids.split(","); List<Integer> idList = new ArrayList<>(); @@ -61,7 +61,7 @@ @ApiOperation("鏍规嵁ID淇敼") @PostMapping("/updateById") - //@RequiresPermissions("business:devicerole:update") + @RequiresPermissions("business:devicerole:update") public ApiResponse updateById(@RequestBody DeviceRole deviceRole) { deviceRoleService.updateById(deviceRole); return ApiResponse.success(null); @@ -69,7 +69,7 @@ @ApiOperation("鏍规嵁ID淇敼榛樿闂ㄧ缁勭姸鎬�") @PostMapping("/updateStatusById") - //@RequiresPermissions("business:devicerole:update") + @RequiresPermissions("business:devicerole:update") public ApiResponse updateStatusById(@RequestBody DeviceRole deviceRole) { deviceRoleService.updateStatusById(deviceRole); return ApiResponse.success(null); @@ -77,14 +77,14 @@ @ApiOperation("鍒嗛〉鏌ヨ") @PostMapping("/page") - //@RequiresPermissions("business:devicerole:query") + @RequiresPermissions("business:devicerole:query") public ApiResponse<PageData<DeviceRole>> findPage (@RequestBody PageWrap<DeviceRole> pageWrap) { return ApiResponse.success(deviceRoleService.findPage(pageWrap)); } @ApiOperation("瀵煎嚭Excel") @PostMapping("/exportExcel") - //@RequiresPermissions("business:devicerole:exportExcel") + @RequiresPermissions("business:devicerole:exportExcel") public void exportExcel (@RequestBody PageWrap<DeviceRole> pageWrap, HttpServletResponse response) { ExcelExporter.build(DeviceRole.class).export(deviceRoleService.findPage(pageWrap).getRecords(), "闂ㄧ瑙掕壊淇℃伅琛�", response); } diff --git a/server/dmvisit_admin/src/main/java/com/doumee/api/business/MemberCardController.java b/server/dmvisit_admin/src/main/java/com/doumee/api/business/MemberCardController.java index b4ccc8d..598328d 100644 --- a/server/dmvisit_admin/src/main/java/com/doumee/api/business/MemberCardController.java +++ b/server/dmvisit_admin/src/main/java/com/doumee/api/business/MemberCardController.java @@ -112,6 +112,7 @@ return ApiResponse.success(memberCardService.findById(id)); } + @ApiOperation("鏍规嵁鏉′欢鏌ヨ鍙敤鍗″彿") @PostMapping("/queryCard") //@RequiresPermissions("business:membercard:query") 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 08fda60..17067e0 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 @@ -17,11 +17,14 @@ import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Constants; import com.doumee.core.utils.HttpsUtil; +import com.doumee.dao.business.InterfaceLogMapper; import com.doumee.dao.business.model.InterfaceLog; import com.doumee.dao.business.model.Member; import com.doumee.service.business.InterfaceLogService; import com.github.pagehelper.PageInfo; import org.apache.commons.lang3.StringUtils; +import org.apache.ibatis.session.SqlSession; +import org.apache.ibatis.session.SqlSessionFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -34,8 +37,12 @@ @Autowired private InterfaceLogService interfaceLogService; - + @Autowired + private SqlSessionFactory sqlSessionFactory; public void saveInterfaceLog(Object param, String path,String result,Integer type) { + SqlSession sqlSession2 = sqlSessionFactory.openSession(true); + InterfaceLogMapper mapper2 = sqlSession2.getMapper(InterfaceLogMapper.class); + InterfaceLog interfaceLog=new InterfaceLog(); interfaceLog.setType(type); interfaceLog.setCreateDate(new Date()); @@ -47,7 +54,8 @@ interfaceLog.setRepose(result); interfaceLog.setName(path); interfaceLog.setUrl(path); - interfaceLogService.create(interfaceLog); + mapper2.insert(interfaceLog); + sqlSession2.commit(); } diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/business/join/MemberRoleJoinMapper.java b/server/dmvisit_service/src/main/java/com/doumee/dao/business/join/MemberRoleJoinMapper.java new file mode 100644 index 0000000..8eb63a7 --- /dev/null +++ b/server/dmvisit_service/src/main/java/com/doumee/dao/business/join/MemberRoleJoinMapper.java @@ -0,0 +1,12 @@ +package com.doumee.dao.business.join; + +import com.doumee.dao.business.model.Member; +import com.doumee.dao.business.model.MemberRole; +import com.github.yulichang.base.mapper.MPJJoinMapper; + +/** + * @author T14 + */ +//@Repository +public interface MemberRoleJoinMapper extends MPJJoinMapper<MemberRole> { +} diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/MemberRole.java b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/MemberRole.java index 230a9bb..dcb78f3 100644 --- a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/MemberRole.java +++ b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/MemberRole.java @@ -1,5 +1,6 @@ package com.doumee.dao.business.model; +import com.baomidou.mybatisplus.annotation.TableField; import com.doumee.core.annotation.excel.ExcelColumn; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -58,6 +59,9 @@ @ApiModelProperty(value = "瑙掕壊缂栫爜锛堝叧鑱攄oor_role),澶氫釜鑻辨枃閫楀彿闅斿紑") @ExcelColumn(name="瑙掕壊缂栫爜锛堝叧鑱攄oor_role)") private String roleId; + @ApiModelProperty(value = "鍙娇鐢ㄩ棬绂佺紪鐮侀泦鍚堬紝澶氫釜鑻辨枃閫楀彿闅斿紑") + @TableField(exist = false) + private String doorIds; } diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/MemberCardService.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/MemberCardService.java index 014dbe7..1f256fa 100644 --- a/server/dmvisit_service/src/main/java/com/doumee/service/business/MemberCardService.java +++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/MemberCardService.java @@ -91,7 +91,7 @@ * @return PageData<MemberCard> */ PageData<MemberCard> findPage(PageWrap<MemberCard> pageWrap); - + void dealMemberRoleEmpowerById(Integer memberId ); /** * 鏉′欢缁熻 * diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java index 8fe26cf..7b650a9 100644 --- a/server/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java +++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java @@ -9,6 +9,7 @@ import com.doumee.core.haikang.model.param.request.event.visit.EventVisitRequest; import com.doumee.core.haikang.model.param.respose.AppointmentInfoResponse; import com.doumee.dao.business.model.ParkBook; +import io.swagger.models.auth.In; import javax.servlet.http.HttpServletResponse; import java.util.Date; @@ -73,7 +74,7 @@ void syncEmpowerDataNew(int start,int end); void syncParkBookData(); void syncParkBookBySingleModel(ParkBook c); - void syncEmpowerResultData(); - void syncEmpowerDetailData(); + Integer syncEmpowerResultData(Integer endId); + Integer syncEmpowerDetailData(Integer endId); void syncParkRecords(Date date); } diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceRoleServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceRoleServiceImpl.java index 9984ab1..a8dcc10 100644 --- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceRoleServiceImpl.java +++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceRoleServiceImpl.java @@ -1,6 +1,7 @@ package com.doumee.service.business.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.api.R; import com.doumee.core.constants.ResponseStatus; import com.doumee.core.exception.BusinessException; import com.doumee.core.model.LoginUserInfo; @@ -11,11 +12,10 @@ import com.doumee.core.erp.model.openapi.response.RoleListResponse; import com.doumee.core.utils.Constants; import com.doumee.core.utils.Utils; -import com.doumee.dao.business.DeviceMapper; -import com.doumee.dao.business.DeviceRoleMapper; -import com.doumee.dao.business.model.Device; -import com.doumee.dao.business.model.DeviceRole; -import com.doumee.dao.business.model.Member; +import com.doumee.dao.admin.response.MemberInfoDTO; +import com.doumee.dao.business.*; +import com.doumee.dao.business.join.MemberRoleJoinMapper; +import com.doumee.dao.business.model.*; import com.doumee.dao.web.response.DeviceRoleVO; import com.doumee.service.business.DeviceRoleService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -23,7 +23,10 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.doumee.service.business.MemberService; +import com.doumee.service.business.impl.hksync.ferp.HkSyncOrgUserToHKServiceImpl; +import com.github.yulichang.wrapper.MPJLambdaWrapper; import io.swagger.models.auth.In; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; @@ -42,12 +45,22 @@ * @date 2023/11/30 15:33 */ @Service +@Slf4j public class DeviceRoleServiceImpl implements DeviceRoleService { @Autowired private DeviceRoleMapper deviceRoleMapper; @Autowired - private MemberService memberService; + private MemberCardMapper memberCardMapper; + @Autowired + private EmpowerMapper empowerMapper; + + @Autowired + private DeviceMapper deviceMapper; + @Autowired + private MemberRoleJoinMapper memberRoleMapper; + @Autowired + private MemberMapper memberMapper; @Override @@ -118,6 +131,10 @@ @Override public void updateById(DeviceRole deviceRole) { + DeviceRole model = deviceRoleMapper.selectById(deviceRole.getId()); + if(model == null){ + throw new BusinessException(ResponseStatus.DATA_EMPTY); + } DeviceRole newDeviceRole = null; if(null != deviceRole.getType()) { newDeviceRole = getDeviceRole(deviceRole.getType()); @@ -131,9 +148,109 @@ update.setIsDefault(Constants.ONE); deviceRoleMapper.updateById(update); } - deviceRoleMapper.updateById(deviceRole); + int t = deviceRoleMapper.updateById(deviceRole); + if(t>0){ + Thread tt = new Thread(new Runnable() { + @Override + public void run() { + try { + startUpdateMemberEmpower(model,deviceRole); + }catch (Exception e){ + log.error("======闂ㄧ鍒嗙粍淇敼锛屾洿鏂颁汉鍛樻潈闄愬け璐�==="+e.getMessage()); + } + } + }); + tt.start(); + } } + /** + * 鏇存柊璇ユ潈闄愪笅鐩稿叧鐨勪汉鍛樻渶鏂板叏鏂颁笅鍙� + * @param model + * @param deviceRole + */ + private void startUpdateMemberEmpower(DeviceRole model, DeviceRole deviceRole) { + String[] ids = StringUtils.defaultString(model.getDoorIds()).split(","); + String[] newIds =StringUtils.defaultString(deviceRole.getDoorIds()).split(","); + List<Integer> delIds = getChangeIdsByArray(newIds,ids);//鍒犻櫎鐨勮澶� + List<Integer> addIds = getChangeIdsByArray(ids,newIds);//鏈�鏂拌澶� + if((addIds==null ||addIds.size()==0)&&( delIds ==null || delIds.size() == 0 )){ + //濡傛灉娌℃湁鍙樺寲锛屼笉鍋氬鐞� + return; + } + List<Integer> allids = getChangeIdsByArray(new String[]{},newIds);//鏈�鏂拌澶� + List<MemberRole> memberRoleList = memberRoleMapper.selectList(new QueryWrapper<MemberRole>().lambda() + .eq(MemberRole::getRoleId,model.getId()) + .eq(MemberRole::getIsdeleted,Constants.ZERO) + ); + if(memberRoleList!=null && memberRoleList.size()>0){ + for(MemberRole memberRole : memberRoleList){ + //濡傛灉鏈変汉鍛樻巿鏉冧簡璇ユ潈闄� + Member member = memberMapper.selectById(memberRole.getMemberId()); + if(member==null || member.getIsdeleted().equals(Constants.ONE)){ + continue; + } + MPJLambdaWrapper<MemberRole> queryWrapper = new MPJLambdaWrapper<>(); + queryWrapper.leftJoin(DeviceRole.class,DeviceRole::getId,MemberRole::getRoleId ); + queryWrapper.selectAll(MemberRole.class) + .selectAs(DeviceRole::getDoorIds, MemberRole::getDoorIds) + .eq(MemberRole::getMemberId,memberRole.getMemberId()) + .eq(MemberRole::getIsdeleted,Constants.ZERO) + .ne(MemberRole::getRoleId,deviceRole.getId()); + List<MemberRole> tLis = memberRoleMapper.selectJoinList(MemberRole.class,queryWrapper); + List<Integer> actDelIds = getActChangeDoorIds(tLis,delIds); + List<Integer> actAddIds = getActChangeDoorIds(tLis,allids); + HkSyncOrgUserToHKServiceImpl.dealChangeDeviceRoleEmpower(member,actAddIds,actDelIds,deviceRoleMapper,empowerMapper,deviceMapper); + } + } + } + + /** + * 鏍规嵁鐢ㄦ埛褰撳墠鏈�鏂扮殑闂ㄧ瑙掕壊锛屾煡璇㈠疄闄呭簲璇ュ垹闄ゆ垨鑰呭鍔犵殑闂ㄧ鐐规潈闄� + * @param tLis + * @param changeIds + * @return + */ + private List<Integer> getActChangeDoorIds(List<MemberRole> tLis, List<Integer> changeIds) { + List<Integer> list = new ArrayList<>(); + for(MemberRole memberRole : tLis){ + String[] ids = StringUtils.defaultString(memberRole.getDoorIds()).split(","); + if(ids!=null && ids.length>0){ + for (String s:ids){ + list.add(Integer.parseInt(s)); + } + } + } + List<Integer> actList = new ArrayList<>(); + if(list.size()>0){ + Flag: + for (Integer t : changeIds){ + for (Integer tt : list){ + if(Constants.equalsInteger(t,tt)){ + continue Flag; + } + } + actList.add(t); + } + } + return actList; + } + + private List<Integer> getChangeIdsByArray(String[] ids, String[] newIds) { + List<Integer> list = new ArrayList<>(); + if(newIds!=null){ + FLAG : + for(String s :newIds){ + for(String s1 :ids){ + if(StringUtils.equals(s,s1)){ + continue FLAG; + } + } + list.add(Integer.parseInt(s)); + } + } + return list; + } @Override public void updateStatusById(DeviceRole deviceRole) { // 鑾峰彇涔嬪墠鏄惁瀛樺湪榛樿闂ㄧ缁� @@ -278,7 +395,7 @@ Member member = new Member(); member.setIsdeleted(Constants.ZERO); member.setRoleIdParam("["+dto.getId()+"]"); - dto.setMemberNum((int) memberService.count(member)); + dto.setMemberNum( memberMapper.selectCount(new QueryWrapper<>(member))); } newPage.setRecords(deviceRoleList); } diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberCardServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberCardServiceImpl.java index 31fa2f3..af8d16d 100644 --- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberCardServiceImpl.java +++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberCardServiceImpl.java @@ -77,7 +77,6 @@ memberCard.setCreateDate(new Date()); memberCard.setStatus(Constants.ONE); memberCard.setIsdeleted(Constants.ZERO); - dealMemberRoleEmpower(memberMapper.selectById(memberCard.getMemberId())); Member member = memberMapper.selectById(memberCard.getMemberId()); if(Objects.isNull(member)){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌鐢ㄦ埛淇℃伅"); @@ -101,6 +100,8 @@ } memberCard.setHkStatus(Constants.ONE); memberCardMapper.insert(memberCard); + //鏇存柊鐢ㄦ埛鏉冮檺 + dealMemberRoleEmpower(memberMapper.selectById(memberCard.getMemberId())); return memberCard.getId(); } @@ -236,6 +237,20 @@ List<MemberCard> cards = HkSyncOrgUserToHKServiceImpl.getNormalCardList(member,memberCardMapper); HkSyncOrgUserToHKServiceImpl.dealMemberRoleEmpowerDo(cards,member,deviceRoleMapper,empowerMapper,deviceMapper); } + /** + * 鏇寸粏浜哄憳鍏ㄩ儴闂ㄧ鏉冮檺 + * @param + */ + @Override + public void dealMemberRoleEmpowerById(Integer memberId ) { + //澶勭悊鏂板鐨勪汉鍛樺崱鐗囨暟鎹紙涓庢捣搴峰悓姝ワ級 + Member member = memberMapper.selectById(memberId); + if(member==null){ + throw new BusinessException(ResponseStatus.DATA_EMPTY); + } + List<MemberCard> cards = HkSyncOrgUserToHKServiceImpl.getNormalCardList(member,memberCardMapper); + HkSyncOrgUserToHKServiceImpl.dealMemberRoleEmpowerDo(cards,member,deviceRoleMapper,empowerMapper,deviceMapper); + } @Override public PageData<MemberCard> findPage(PageWrap<MemberCard> pageWrap) { 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 ba74240..fa402e2 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 @@ -42,6 +42,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.doumee.service.business.impl.hksync.ferp.HkSyncOrgUserToHKServiceImpl; import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; @@ -89,6 +90,8 @@ @Autowired private UserActionJoinMapper userActionJoinMapper; + @Autowired + private MemberCardMapper memberCardMapper; @Autowired private CompanyMapper companyMapper; @@ -182,7 +185,14 @@ @Override public void roleAuthById(Integer id) { - LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); + Member member = memberMapper.selectById(id); + if(member==null || member.getIsdeleted().equals(Constants.ONE)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鍛樺伐淇℃伅宸插垹闄�"); + } + List<MemberCard> cards = HkSyncOrgUserToHKServiceImpl.getNormalCardList(member,memberCardMapper); + HkSyncOrgUserToHKServiceImpl.dealMemberRoleEmpowerDo(cards,member,deviceRoleMapper,empowerMapper,deviceMapper); + + /* LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); Member member = memberMapper.selectById(id); if(member.getIsdeleted().equals(Constants.ONE)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍛樺伐淇℃伅宸插垹闄�"); @@ -191,7 +201,7 @@ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炲唴閮ㄤ汉鍛樻棤娉曡繘琛岃鎿嶄綔"); } List<MemberRole> roleList = memberRoleMapper.selectList(new QueryWrapper<MemberRole>().lambda().eq(MemberRole::getMemberId,member.getId())); - +*/ } 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 70c1451..26aad7c 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 @@ -897,8 +897,8 @@ //濡傛灉宸茬粡寮�鍗″畬鎴�,涓嶅仛浠讳綍澶勭悊 }else if(model !=null){ //濡傛灉瀛樺湪锛屼絾鏈紑鍗★紝鍒欑洿鎺ユ洿鏀逛负寰呭悓姝� - model.setHkStatus(Constants.ZERO); - model.setRemark("寰呭悓姝ュ畨闃插钩鍙�"); +// model.setHkStatus(Constants.ZERO); +// model.setRemark("寰呭悓姝ュ畨闃插钩鍙�"); model.setIsdeleted(Constants.ZERO); memberCardMapper.updateById(model); }else{ diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java index e666793..5568c42 100644 --- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java +++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java @@ -128,10 +128,10 @@ public void syncParkBookBySingleModel(ParkBook c) { } @Override - public void syncEmpowerResultData() { + public Integer syncEmpowerResultData(Integer endId) {return null; } @Override - public void syncEmpowerDetailData() { + public Integer syncEmpowerDetailData(Integer endId) {return null; } public boolean addTaskDataAllDel(String userId, String taskId, List<Device> deviceList) { if(StringUtils.isBlank(userId )){ diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEmpowerServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEmpowerServiceImpl.java index a0b2d69..3b9e929 100644 --- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEmpowerServiceImpl.java +++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEmpowerServiceImpl.java @@ -52,33 +52,29 @@ * 瀹氭椂鏌ヨ鏉冮檺涓嬪彂浠诲姟杩涘害鎵ц缁撴灉 */ @Override - public void syncEmpowerDetailData(){ - if(Constants.DEALING_HK_EMPOWER_DETAIL){ - return ; - } - Constants.DEALING_HK_EMPOWER_DETAIL = true; - try { + public Integer syncEmpowerDetailData(Integer endId){ +// if(Constants.DEALING_HK_EMPOWER_DETAIL){ +// return ; +// } +// Constants.DEALING_HK_EMPOWER_DETAIL = true; //鏌ヨ鎵�鏈夊畬鎴愪笅杞斤紝寰呮煡璇㈢粨鏋滅殑鏁版嵁璁板綍 - List<Empower> list = getDealListDetail(); + List<Empower> list = getDealListDetail(endId); if(list == null || list.size() ==0){ - return; + return null; } - Thread t1=new Thread(new Runnable() { - @Override - public void run() { - try { + Thread t1=new Thread(new Runnable() { + @Override + public void run() { + try { for(Empower c : list){ TaskPersonDetailRequest param = new TaskPersonDetailRequest(); param.setPageNo(1); - param.setPageSize(100); -// param.setPersonIds(new ArrayList<>()); - + param.setPageSize(10); param.setPersonIds(new String[]{c.getMemberHkId()}); param.setTaskId(c.getHkId()); TaskDataAdditionResourceRequest rec = new TaskDataAdditionResourceRequest(); rec.setResourceIndexCode(c.getDeviceIndexCode()); rec.setResourceType(c.getDeviceType()); -// rec.setChannelNos(c.getDeviceChannelNo().split(",")); param.setResourceInfo(rec); //鏌ヨ涓嬪彂鐘舵�� BaseResponse<TaskPersonDetailListResponse> response = HKService.taskPersoDetail(param); @@ -150,21 +146,19 @@ checkDelMemberTask(c.getMemberId()); } } - }catch (Exception e){ + }catch (Exception e){ - }finally { - Constants.DEALING_HK_EMPOWER_DETAIL=false; - } + }finally { +// Constants.DEALING_HK_EMPOWER_DETAIL=false; } - }); - t1.start(); - - - }catch (Exception e){ - e.printStackTrace(); - } + } + }); + t1.start(); + return list.get(list.size()-1).getId(); } + + /** * 瀵规捣搴峰垹闄ょ粍缁囦俊鎭� * @param id @@ -226,7 +220,7 @@ Constants.DEALING_HK_EMPOWER_DETAIL = true; try { //鏌ヨ鎵�鏈夊畬鎴愪笅杞斤紝寰呮煡璇㈢粨鏋滅殑鏁版嵁璁板綍 - List<Empower> list = getDealListDetail(); + List<Empower> list = getDealListDetail(0); if(list == null || list.size() ==0){ return; } @@ -272,16 +266,15 @@ * 瀹氭椂鏌ヨ鏉冮檺涓嬪彂浠诲姟杩涘害鎵ц缁撴灉 */ @Override - public void syncEmpowerResultData(){ - if(Constants.DEALING_HK_EMPOWER_RESULT){ - return ; - } - Constants.DEALING_HK_EMPOWER_RESULT=true; - try { + public Integer syncEmpowerResultData(Integer endId){ +// if(Constants.DEALING_HK_EMPOWER_RESULT){ +// return null ; +// } +// Constants.DEALING_HK_EMPOWER_RESULT=true; //鏌ヨ鎵�鏈夋墽琛屼腑寰楁暟鎹� - List<Empower> list = getIngTaskListResult(); + List<Empower> list = getIngTaskListResult(Constants.formatIntegerNum(endId)); if(list == null || list.size() ==0){ - return; + return null; } Thread t1=new Thread(new Runnable() { @Override @@ -315,9 +308,8 @@ } }); t1.start(); - }catch (Exception e){ - e.printStackTrace(); - } + return list.get(list.size()-1).getId(); + } @@ -331,7 +323,6 @@ // return null ; // } // Constants.DEALING_HK_EMPOWER =true; - try { //鍏堝垹闄ゆ墍鏈夐渶瑕佸彇娑堟巿鏉冪殑鏁版嵁 List<Empower> allList =getAllWaitDealList( endId); if(allList !=null && allList.size()>0){ @@ -360,12 +351,6 @@ t1.start(); return allList.get(allList.size()-1).getId(); } - - }catch (Exception e){ - e.printStackTrace(); - }finally { -// Constants.DEALING_HK_EMPOWER =false; - } return null; } @Override @@ -631,7 +616,7 @@ List<Empower> list = empowerMapper.selectJoinList(Empower.class,queryWrapper); return list; } - private List<Empower> getDealListDetail() { + private List<Empower> getDealListDetail(int endId ) { MPJLambdaWrapper<Empower> queryWrapper = new MPJLambdaWrapper<>(); queryWrapper.selectAll(Empower.class); queryWrapper.selectAs(Device::getChannelNo,Empower::getDeviceChannelNo); @@ -642,17 +627,23 @@ queryWrapper.leftJoin(Device.class,Device::getId,Empower::getDeviceId); queryWrapper.eq(Empower::getSendStatus,Constants.EmpowerStatus.downloaded); queryWrapper.isNotNull(Member::getHkId) ; + queryWrapper.gt(Empower::getId,endId); queryWrapper.orderByAsc(Empower::getSendDate); + queryWrapper.last("limit 100");//姣忔闄愬埗涓嬪彂100涓� List<Empower> list = empowerMapper.selectJoinList(Empower.class,queryWrapper); return list; } - private List<Empower> getIngTaskListResult() { + private List<Empower> getIngTaskListResult(int endId) { MPJLambdaWrapper<Empower> queryWrapper = new MPJLambdaWrapper<>(); queryWrapper.selectAll(Empower.class); queryWrapper.eq(Empower::getSendStatus,Constants.EmpowerStatus.ing); + queryWrapper.gt(Empower::getId,endId); queryWrapper.groupBy(Empower::getHkId); - List<Empower> list = empowerMapper.selectJoinList(Empower.class,queryWrapper); + queryWrapper.orderByAsc(Empower::getSendDate); + queryWrapper.last("limit 100");//姣忔闄愬埗涓嬪彂100涓� + List<Empower> list = empowerMapper.selectList(queryWrapper); return list; } + } diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java index 572e8ff..b3f28f6 100644 --- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java +++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java @@ -366,9 +366,6 @@ } public static void dealMemberRoleEmpowerDo(List<MemberCard> cards,Member member , DeviceRoleMapper deviceRoleMapper, EmpowerMapper empowerMapper, DeviceMapper deviceMapper) { - if(cards == null || cards.size() == 0){ - return; - } List<Integer> doorIds = getRoleIdByParam(member,deviceRoleMapper); if(doorIds==null || doorIds.size() == 0){ //濡傛灉鏉冮檺娓呯┖锛屽垯娓呯┖浜哄憳鎺堟潈鐨勬潈闄愭暟鎹� @@ -379,7 +376,8 @@ .set(Empower::getSendStatus,Constants.ZERO)); return; } - if(StringUtils.isBlank(member.getFaceImg())){ + if((cards == null || cards.size() == 0) && StringUtils.isBlank(member.getFaceId())){ + //濡傛灉娌℃湁鍗� 涔熸病鏈変汉鑴� return; } @@ -428,6 +426,66 @@ empowerMapper.insertBatchSomeColumn(list); } } + public static void dealChangeDeviceRoleEmpower( Member member ,List<Integer> addDoorIds,List<Integer> delDoorIds, DeviceRoleMapper deviceRoleMapper, EmpowerMapper empowerMapper, DeviceMapper deviceMapper) { + if(delDoorIds!=null && delDoorIds.size()>0){ + //寰呯Щ闄ゆ潈闄愮殑璁惧鏁版嵁鎺堟潈璁板綍锛堥拡瀵瑰垹闄ゅ拰鏇存柊涓㈠け鐨勬潈闄愶紝闇�瑕佸悓姝ヤ笅鍙戝垹闄ゆ潈闄愶級 + empowerMapper.update(null,new UpdateWrapper<Empower>().lambda() + .eq(Empower::getMemberId,member.getId()) + .set(Empower::getIsdeleted,Constants.ONE) + .eq(Empower::getIsdeleted,Constants.ZERO) + .in(Empower::getDeviceId,delDoorIds) + .set(Empower::getSendStatus,Constants.ZERO)); + } + if(StringUtils.isBlank(member.getFaceId())){ + //濡傛灉娌℃湁鍗� 涔熸病鏈変汉鑴� + return; + } + + List<Integer> deviceIds =new ArrayList<>();//鏂拌澶囩紪鐮侀泦鍚� + List<Empower> list = new ArrayList<>();//鏂版巿鏉冭褰曢泦鍚� + if(Constants.equalsInteger(member.getIsdeleted(),Constants.ZERO) + && Constants.equalsObject(member.getHkStatus(),Constants.ONE)){ + //濡傛灉鐢ㄦ埛鏄悓姝ユ捣搴锋垚鍔燂紝娣诲姞甯︿笅鍙戞潈闄愶紙鍙鐞嗘柊澧炴垨鑰呯紪杈戠殑锛� + List<Device> deviceList = deviceMapper.selectList(new QueryWrapper<Device>().lambda().in(Device::getId,addDoorIds)); + if(deviceList == null || deviceList.size() == 0){ + return; + } + for (Device deviceRole:deviceList) { + Empower model = new Empower(); + model.setCreateDate(new Date()); + model.setMemberId(member.getId()); + model.setIsdeleted(Constants.ZERO); + model.setDeviceId(deviceRole.getId()); + model.setSendStatus(Constants.ZERO); + model.setSendInfo("寰呭悓姝ュ畨闃插钩鍙�"); + model.setRemark("寰呭悓姝ュ畨闃插钩鍙�"); + model.setStartTime(member.getStartTime()); + model.setEndTime(member.getEndTime()); + //榛樿缁欎簬铏氭嫙鍗� + model.setCardNos(Constants.VIRTUAL_CARD_INDEX+member.getId()); + model.setSendType(Constants.ZERO); + //鏍囪鏈�鏂扮殑鎺堟潈璁惧缂栫爜闆嗗悎 + deviceIds.add(deviceRole.getId()); + list.add(model); + } + } + //寰呯Щ闄ゆ潈闄愮殑璁惧鏁版嵁鎺堟潈璁板綍锛堥拡瀵瑰垹闄ゅ拰鏇存柊涓㈠け鐨勬潈闄愶紝闇�瑕佸悓姝ヤ笅鍙戝垹闄ゆ潈闄愶級 + empowerMapper.update(null,new UpdateWrapper<Empower>().lambda() + .eq(Empower::getMemberId,member.getId()) + .set(Empower::getIsdeleted,Constants.ONE) + .eq(Empower::getIsdeleted,Constants.ZERO) + .notIn(deviceIds.size()>0,Empower::getDeviceId,deviceIds) + .set(Empower::getSendStatus,Constants.ZERO)); + //瀵煎叆鏂板鐨勬巿鏉冧俊鎭� + if(list.size()>0){ + //鐩存帴瑕嗙洊閲嶅鐨勮澶囨潈闄愶紝鐩存帴鍒犻櫎鍗冲彲 + empowerMapper.delete(new UpdateWrapper<Empower>().lambda() + .eq(Empower::getMemberId,member.getId()) + .eq(Empower::getIsdeleted,Constants.ZERO) + .in(Empower::getDeviceId,deviceIds) ); + empowerMapper.insertBatchSomeColumn(list); + } + } /** * 瀵逛汉鍛樺甫寮�鍗℃暟鎹繘琛岃嚜鍔ㄥ紑鍗℃搷浣� @@ -437,7 +495,7 @@ private List<MemberCard> dealMemberHkCard(Member member) { List<MemberCard> memberCards = memberCardMapper.selectList(new QueryWrapper<MemberCard>().lambda() .eq(MemberCard::getMemberId,member.getId()) -// .eq(MemberCard::getType,Constants.TWO) +// .eq(MemberCard::getType,Constants.TWO) .eq(MemberCard::getHkStatus,Constants.ZERO) ); if(memberCards==null || memberCards.size()==0){ //娌℃湁甯﹀鐞嗙殑鏁版嵁锛岀洿鎺ヨ烦杩� @@ -468,6 +526,8 @@ //澶勭悊鏂板鏁版嵁 BaseResponse<List<CardInfoResponse>> result = HKService.cardBingding(param); if(result !=null && StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE) ){ + +// 0x04a12022","msg":"cardNo [1223382985] is exists if(result.getData()!=null ){ for(CardInfoResponse r : result.getData()){ doneCodes.add(r.getCardNo()); diff --git a/server/openapi/pom.xml b/server/openapi/pom.xml index 218a68a..af5003d 100644 --- a/server/openapi/pom.xml +++ b/server/openapi/pom.xml @@ -24,7 +24,7 @@ </dependency> </dependencies> <build> - <finalName>openapi</finalName> + <finalName>erp_interface</finalName> <resources> <resource> <directory>src/main/resources</directory> -- Gitblit v1.9.3