From 3cfa0bda6574d0c39db120c457e98a168aa193e8 Mon Sep 17 00:00:00 2001 From: Jinquan_Ou <Jinquan@gdut.com> Date: 星期日, 23 四月 2023 17:15:20 +0800 Subject: [PATCH] 完成婚姻 --- zhang-content/src/main/java/com/ruoyi/service/impl/ZfEquipmentServiceImpl.java | 288 +++++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 228 insertions(+), 60 deletions(-) diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/ZfEquipmentServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfEquipmentServiceImpl.java index 7b85359..052b480 100644 --- a/zhang-content/src/main/java/com/ruoyi/service/impl/ZfEquipmentServiceImpl.java +++ b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfEquipmentServiceImpl.java @@ -10,13 +10,12 @@ import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.poi.ExcelUtil; -import com.ruoyi.domain.ZInfoUser; +import com.ruoyi.domain.*; import com.ruoyi.domain.ZfEquipment; -import com.ruoyi.domain.ZfEquipment; -import com.ruoyi.domain.ZfProperty; import com.ruoyi.mapper.ZfEquipmentMapper; import com.ruoyi.service.ZInfoUserService; import com.ruoyi.service.ZfEquipmentService; +import com.ruoyi.util.ArraysUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -25,6 +24,10 @@ import javax.annotation.Resource; import java.util.HashMap; import java.util.List; +import java.util.stream.Collectors; + +import static com.ruoyi.constant.MenuAuthority.EQUIPMENT_LIST; +import static com.ruoyi.constant.MenuAuthority.EVENT_LIST; /** * <p> @@ -42,17 +45,191 @@ @Resource ZfEquipmentService zfEquipmentService; - @Override - public List<ZfEquipment> selectByCondition(ZfEquipment zfEquipment) { - String familyIds = listFamilyIds(); - LambdaQueryWrapper<ZfEquipment> lambdaQueryWrapper = buildCondition(zfEquipment, familyIds); - List<ZfEquipment> list = list(lambdaQueryWrapper); - log.info("杩斿洖鐨勬暟鎹负:{}", list); - return list; + + private LambdaQueryWrapper<ZfEquipment> buildCondition(ZfEquipment zfEquipment) { + LambdaQueryWrapper<ZfEquipment> lqw = new LambdaQueryWrapper<>(); + lqw.like(StringUtils.isNotEmpty(zfEquipment.getName()), ZfEquipment::getName, zfEquipment.getName()); + lqw.like(StringUtils.isNotEmpty(zfEquipment.getBuyer()), ZfEquipment::getBuyer, zfEquipment.getBuyer()); + lqw.like(StringUtils.isNotEmpty(zfEquipment.getContent()), ZfEquipment::getContent, zfEquipment.getContent()); + lqw.like(StringUtils.isNotEmpty(zfEquipment.getLocation()), ZfEquipment::getLocation, zfEquipment.getLocation()); + lqw.like(StringUtils.isNotEmpty(zfEquipment.getRemark()), ZfEquipment::getRemark, zfEquipment.getRemark()); + lqw.eq(zfEquipment.getHappenTime() != null, ZfEquipment::getHappenTime, zfEquipment.getHappenTime()); + lqw.between(zfEquipment.getHappenStartTime() != null && zfEquipment.getHappenEndTime() != null, ZfEquipment::getHappenTime, zfEquipment.getHappenStartTime(), zfEquipment.getHappenEndTime()); + return lqw; + } + + + + //------------------------------------------------------------------------------------------ + private LambdaQueryWrapper<ZfEquipment> buildCondition(ZfEquipment zfEquipment, String familyIds, String secondFamilyAuthority) { + //妯$硦鏌ヨ鐨勬潯浠� + LambdaQueryWrapper<ZfEquipment> lqw = buildCondition(zfEquipment); + + //瀹氫箟涓�涓竷灏旀爣璁帮紝鏍囪绗竴瀹跺涵鍙锋槸鍚︽湁閫楀彿 + boolean flag = false; + + StringBuilder secondFamilyIdsBuffer = new StringBuilder(); + + //澶勭悊浼犲叆鐨剆econdFamilyAuthority 3{2007 2018 2015},4{2007 2019} + + if (StringUtils.isNotEmpty(secondFamilyAuthority)) { + + if (secondFamilyAuthority.contains(",")) { + //閫楀彿闅斿紑寰楀埌濡備笅涓诧細3{2007 2018 2015} + String[] authorityList = secondFamilyAuthority.split(","); + for (String authorityAndId : authorityList) { + setSecondFamilyAuthority(secondFamilyIdsBuffer, authorityAndId); + } + + //鎶婂悗闈㈢殑閫楀彿鍘绘帀 + if (secondFamilyIdsBuffer.length() > 1) { + secondFamilyIdsBuffer.deleteCharAt(secondFamilyIdsBuffer.length() - 1); + } + + } else { + setSecondFamilyAuthority(secondFamilyIdsBuffer, secondFamilyAuthority); + //鎶婂悗闈㈢殑閫楀彿鍘绘帀 + if (secondFamilyIdsBuffer.length() > 1) { + secondFamilyIdsBuffer.deleteCharAt(secondFamilyIdsBuffer.length() - 1); + } + } + } + //灏哠tringBuffer杞垚String + String secondFamilyIds = secondFamilyIdsBuffer.toString(); + + //绗竴瀹跺涵鍙风殑鏉′欢 + if (familyIds.contains(",")) { + flag = true; + } + + //绗簩瀹跺涵鍙风殑鏉′欢 + if (StringUtils.isNotEmpty(secondFamilyIds)) { + if (secondFamilyIds.contains(",")) { + String[] secondFamilyIdList = secondFamilyIds.split(","); + if (flag) { + //濡傛灉绗竴瀹跺涵鍙峰拰绗簩瀹跺涵鍙烽兘鏈夐�楀彿 + String[] familyList = familyIds.split(","); + String[] totalFamilyIdList = ArraysUtil.appendToArray(familyList, secondFamilyIdList); + lqw.in(ZfEquipment::getFamilyId, totalFamilyIdList); + } else { + //濡傛灉绗竴瀹跺涵鍙锋病鏈夐�楀彿浣嗘槸绗簩瀹跺涵鍙锋湁閫楀彿 + String[] totalFamilyIdList = ArraysUtil.appendToArray(secondFamilyIdList, familyIds); + lqw.in(ZfEquipment::getFamilyId, totalFamilyIdList); + } + + } else { + if (flag) { + //濡傛灉绗竴瀹跺涵鍙锋湁閫楀彿浣嗙浜屽搴彿娌℃湁閫楀彿 + String[] familyList = familyIds.split(","); + String[] totalFamilyIdList = ArraysUtil.appendToArray(familyList, secondFamilyIds); + lqw.in(ZfEquipment::getFamilyId, totalFamilyIdList); + } else { + //濡傛灉绗竴瀹跺涵鍙峰拰绗簩瀹跺涵鍙烽兘娌℃湁閫楀彿 + String[] totalFamilyIdList = ArraysUtil.appendToArray(familyIds, secondFamilyIds); + lqw.in(ZfEquipment::getFamilyId, totalFamilyIdList); + } + } + } else { + //濡傛灉娌℃湁绗簩瀹跺涵鍙� + if (flag) { + String[] familyList = familyIds.split(","); + lqw.in(ZfEquipment::getFamilyId, familyList); + } else { + lqw.eq(ZfEquipment::getFamilyId, familyIds); + } + + } + + lqw.orderByDesc(ZfEquipment::getCreateTime); + return lqw; + } + + private void setSecondFamilyAuthority(StringBuilder secondFamilyIdsBuffer, String authorityAndId) { + //寰楀埌鏉冮檺涓� + String authorities = authorityAndId.substring(2, authorityAndId.length() - 1); + + if (authorities.contains(" ")) { + //绌烘牸闅斿紑寰楀埌鑿滃崟id锛岀湅鏄惁鏈夊搴旂殑鏉冮檺 + String[] authorityIdList = authorities.split(" "); + for (String s : authorityIdList) { + if (s.equals(EQUIPMENT_LIST)) { + secondFamilyIdsBuffer.append(authorityAndId.charAt(0)).append(","); + break; + } + } + } else { + if (authorities.equals(EQUIPMENT_LIST)) { + secondFamilyIdsBuffer.append(authorityAndId.charAt(0)).append(","); + } + } + } + + private ZInfoUser getMySelf() { + SysUser user = SecurityUtils.getLoginUser().getUser(); + Long userId = user.getUserId(); + LambdaQueryWrapper<ZInfoUser> zInfoUserLambdaQueryWrapper = new LambdaQueryWrapper<>(); + zInfoUserLambdaQueryWrapper.eq(ZInfoUser::getUserId, userId); + return zInfoUserService.getOne(zInfoUserLambdaQueryWrapper); + } + + private String listFamilyIds() { + ZInfoUser mySelf = getMySelf(); + return mySelf.getFamilyId(); + } + + private String listSecondFamilyIds() { + ZInfoUser mySelf = getMySelf(); + return mySelf.getSecondFamilyId(); } @Override - public int addEquipment(ZfEquipment zfEquipment) { + public List<ZfEquipment> selectByCondition(ZfEquipment zfEquipment) { + String familyIds = listFamilyIds(); + String secondFamilyIds = listSecondFamilyIds(); + LambdaQueryWrapper<ZfEquipment> lambdaQueryWrapper = buildCondition(zfEquipment, familyIds, secondFamilyIds); + List<ZfEquipment> beanRecords = list(lambdaQueryWrapper); + log.info("浠庢暟鎹簱涓煡鍒扮殑涓�:{}", beanRecords); + return markOwnData(familyIds, beanRecords); + } + + private static List<ZfEquipment> markOwnData(String familyIds, List<ZfEquipment> beanRecords) { + return beanRecords.stream().peek(record -> { + String recordFamilyId = record.getFamilyId(); + if (familyIds.contains(",")) { + String[] familyIdList = familyIds.split(","); + for (String familyId : familyIdList) { + if (familyId.equals(recordFamilyId)) { + record.setOwnData(1); + } + } + } else { + if (familyIds.equals(recordFamilyId)) { + record.setOwnData(1); + } + } + }).collect(Collectors.toList()); + } + + @Override + public AjaxResult selectDataList(ZfEquipment zfEquipment, Integer pageNum, Integer pageSize) { + String familyIds = listFamilyIds(); + String secondFamilyAuthority = listSecondFamilyIds(); + LambdaQueryWrapper<ZfEquipment> lqw = buildCondition(zfEquipment, familyIds, secondFamilyAuthority); + + Page<ZfEquipment> zfEquipmentPage = new Page<>(pageNum, pageSize); + Page<ZfEquipment> pageResult = page(zfEquipmentPage, lqw); + + List<ZfEquipment> beanRecords = pageResult.getRecords();//寰楀埌鏌ヨ鍑烘潵鐨勬暟鎹� + + List<ZfEquipment> dtoResult = markOwnData(familyIds, beanRecords); + + HashMap<String, Object> data = MapUtils.getResult(pageResult, dtoResult); + return AjaxResult.success(data); + } + + @Override + public AjaxResult addData(ZfEquipment zfEquipment) { + String familyIds = listFamilyIds(); boolean flag = false;//鍒ゆ柇褰撳墠鐢ㄦ埛鐨刬d鏄惁鏈夋潈鍔犲叆褰撳墠瀹跺涵id鐨勫璞� if (familyIds.contains(",")) { @@ -68,75 +245,66 @@ } } if (flag) { - boolean save = save(zfEquipment); - return save ? 1 : 0; + if (save(zfEquipment)) { + return AjaxResult.success(); + } else { + return AjaxResult.error(); + } + } else { throw new RuntimeException("浣犳病鏈夋搷浣滆瀹跺涵鍙蜂负" + zfEquipment.getFamilyId() + "鏁版嵁鐨勬潈闄�"); } } @Override + public AjaxResult addData2(ZfEquipment zfEquipment) { + ZInfoUser mySelf = getMySelf(); + String myFamilyId = mySelf.getFamilyId(); + + if (StringUtils.isNotEmpty(zfEquipment.getFamilyId())) { + throw new RuntimeException("瀵煎叆鏁版嵁鏃舵偍涓嶈兘鎸囧畾瀹跺涵鍙�"); + } + + if (StringUtils.isEmpty(myFamilyId)) { + throw new RuntimeException("鎮ㄨ繕鏈姞鍏ヤ换浣曞搴�"); + } + + if (myFamilyId.contains(",")) { + String[] myFamilyIds = myFamilyId.split(","); + //榛樿娣诲姞绗竴涓搴殑鏁版嵁 + zfEquipment.setFamilyId(myFamilyIds[0]); + } else { + zfEquipment.setFamilyId(myFamilyId); + } + + if (save(zfEquipment)) { + return AjaxResult.success(); + } else { + return AjaxResult.error(); + } + } + + + @Override @Transactional public AjaxResult importExcel(MultipartFile file) { - ExcelUtil<ZfEquipment> util = new ExcelUtil<>(ZfEquipment.class); - List<ZfEquipment> equipmentList = null; + List<ZfEquipment> propertyList = null; try { - equipmentList = util.importExcel(file.getInputStream()); + propertyList = util.importExcel(file.getInputStream()); } catch (Exception e) { throw new RuntimeException(e); } - log.info("璧勪骇鍒楄〃涓猴細{}", equipmentList); + log.info("璧勪骇鍒楄〃涓猴細{}", propertyList); - for (ZfEquipment zfEquipment : equipmentList) { - zfEquipmentService.addEquipment(zfEquipment); + for (ZfEquipment zfEquipment : propertyList) { + zfEquipmentService.addData2(zfEquipment); } return AjaxResult.success("瀵煎叆鏁版嵁鎴愬姛"); } - private LambdaQueryWrapper<ZfEquipment> buildCondition(ZfEquipment zfEquipment) { - LambdaQueryWrapper<ZfEquipment> lqw = new LambdaQueryWrapper<>(); - lqw.like(StringUtils.isNotEmpty(zfEquipment.getName()), ZfEquipment::getName, zfEquipment.getName()); - lqw.like(StringUtils.isNotEmpty(zfEquipment.getBuyer()), ZfEquipment::getBuyer, zfEquipment.getBuyer()); - lqw.like(StringUtils.isNotEmpty(zfEquipment.getContent()), ZfEquipment::getContent, zfEquipment.getContent()); - lqw.like(StringUtils.isNotEmpty(zfEquipment.getLocation()), ZfEquipment::getLocation, zfEquipment.getLocation()); - lqw.like(StringUtils.isNotEmpty(zfEquipment.getRemark()), ZfEquipment::getRemark, zfEquipment.getRemark()); - lqw.like(zfEquipment.getCreateDate() != null, ZfEquipment::getCreateDate, zfEquipment.getCreateDate()); - return lqw; - } - private LambdaQueryWrapper<ZfEquipment> buildCondition(ZfEquipment zfEquipment, String familyIds) { - LambdaQueryWrapper<ZfEquipment> lqw = buildCondition(zfEquipment); - if (familyIds.contains(",")) { - String[] familyList = familyIds.split(","); - lqw.in(ZfEquipment::getFamilyId,familyList); - - } else { - lqw.eq(ZfEquipment::getFamilyId, familyIds); - } - return lqw; - } - - private String listFamilyIds() { - SysUser user = SecurityUtils.getLoginUser().getUser(); - Long userId = user.getUserId(); - LambdaQueryWrapper<ZInfoUser> zInfoUserLambdaQueryWrapper = new LambdaQueryWrapper<>(); - zInfoUserLambdaQueryWrapper.eq(ZInfoUser::getUserId, userId); - ZInfoUser zInfoUser = zInfoUserService.getOne(zInfoUserLambdaQueryWrapper); - return zInfoUser.getFamilyId(); - } - - @Override - public AjaxResult selectEquipmentList(ZfEquipment zfEquipment, Integer pageNum, Integer pageSize) { - String familyIds = listFamilyIds(); - LambdaQueryWrapper<ZfEquipment> lqw = buildCondition(zfEquipment, familyIds); - Page<ZfEquipment> zfEquipmentPage = new Page<>(pageNum, pageSize); - Page<ZfEquipment> pageResult = page(zfEquipmentPage, lqw); - HashMap<String, Object> data = MapUtils.getResult(pageResult); - return AjaxResult.success(data); - - } } -- Gitblit v1.9.1