From 568e38a95cb6fb20fe16b53d17f610aefc6f744f Mon Sep 17 00:00:00 2001 From: rk <94314517@qq.com> Date: 星期四, 09 十月 2025 18:29:29 +0800 Subject: [PATCH] 钉钉通知 与钥匙柜开发 --- server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java | 515 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 489 insertions(+), 26 deletions(-) diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java index c263aac..bc8fae7 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java @@ -7,34 +7,44 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.doumee.biz.system.SystemDictDataBiz; import com.doumee.core.constants.ResponseStatus; +import com.doumee.core.dingTalk.DingTalk; import com.doumee.core.exception.BusinessException; -import com.doumee.core.model.PageData; -import com.doumee.core.model.PageWrap; +import com.doumee.dao.business.dao.*; +import com.doumee.dao.business.vo.GeneralDataVO; +import com.doumee.dao.business.vo.HiddenDangerCompanyVO; +import com.doumee.dao.business.vo.HiddenDangerDataVO; +import com.doumee.service.business.third.model.LoginUserInfo; +import com.doumee.service.business.third.model.PageData; +import com.doumee.service.business.third.model.PageWrap; import com.doumee.core.utils.Constants; import com.doumee.core.utils.DateUtil; +import com.doumee.core.utils.SmsConstants; import com.doumee.core.utils.Utils; -import com.doumee.dao.business.HiddenDangerLogMapper; -import com.doumee.dao.business.HiddenDangerMapper; -import com.doumee.dao.business.HiddenDangerParamMapper; -import com.doumee.dao.business.MemberMapper; +import com.doumee.core.wx.wxPlat.WxPlatConstants; +import com.doumee.core.wx.wxPlat.WxPlatNotice; +import com.doumee.dao.business.*; import com.doumee.dao.business.model.*; +import com.doumee.dao.business.model.Member; import com.doumee.dao.system.MultifileMapper; + +import com.doumee.dao.system.SystemUserMapper; import com.doumee.dao.system.join.NoticesJoinMapper; import com.doumee.dao.system.model.Multifile; import com.doumee.dao.system.model.Notices; -import com.doumee.service.business.HiddenDangerLogService; +import com.doumee.dao.system.model.SystemUser; import com.doumee.service.business.HiddenDangerService; +import com.doumee.service.business.third.EmayService; import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.commons.lang3.StringUtils; -import org.checkerframework.checker.units.qual.C; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; +import java.math.BigDecimal; import java.util.*; +import java.util.stream.Collectors; /** * 闅愭偅淇℃伅琛⊿ervice瀹炵幇 @@ -46,10 +56,16 @@ @Autowired private HiddenDangerMapper hiddenDangerMapper; + @Autowired private MultifileMapper multifileMapper; + @Autowired private SystemDictDataBiz systemDictDataBiz; + + @Autowired + private SystemUserMapper systemUserMapper; + @Autowired private MemberMapper memberMapper; @@ -58,10 +74,35 @@ @Autowired private HiddenDangerLogMapper hiddenDangerLogMapper; + @Autowired + private UserActionMapper userActionMapper; + + @Autowired + private CompanyMapper companyMapper; @Autowired private NoticesJoinMapper noticesJoinMapper; + + + @Autowired + private SmsConfigMapper smsConfigMapper; + + @Autowired + private SmsEmailMapper smsEmailMapper; + + @Autowired + private EmayService emayService; + + @Autowired + private WxNoticeConfigMapper wxNoticeConfigMapper; + + @Autowired + private ApproveMapper approveMapper; + + @Autowired + private DingTalk dingTalk; + @Override public Integer create(HiddenDanger hiddenDanger) { @@ -71,23 +112,34 @@ || Objects.isNull(hiddenDanger.getCateId()) || Objects.isNull(hiddenDanger.getApplyCheckUserId()) || Objects.isNull(hiddenDanger.getCheckUserId()) + || Objects.isNull(hiddenDanger.getCheckTypeId()) || Objects.isNull(hiddenDanger.getSubmitTime()) || StringUtils.isBlank(hiddenDanger.getContent()) ){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } hiddenDanger.setMemberId(hiddenDanger.getLoginUserInfo().getMemberId()); + Member createMember = memberMapper.selectById(hiddenDanger.getMemberId()); + if(Objects.isNull(createMember)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌鍒涘缓浜轰俊鎭�"); + } hiddenDanger.setIsdeleted(Constants.ZERO); hiddenDanger.setCreateDate(new Date()); hiddenDanger.setEditDate(new Date()); + HiddenDangerParam hiddenDangerCheckParam = hiddenDangerParamMapper.selectById(hiddenDanger.getCheckTypeId()); + if(Objects.isNull(hiddenDangerCheckParam)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌闅愭偅妫�鏌ョ被鍨�"); + } HiddenDangerParam hiddenDangerParam = hiddenDangerParamMapper.selectById(hiddenDanger.getAreaId()); if(Objects.isNull(hiddenDangerParam)){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌闅愭偅鍖哄煙"); } + HiddenDangerParam hiddenDangerCate = hiddenDangerParamMapper.selectById(hiddenDanger.getCateId()); if(Objects.isNull(hiddenDangerCate)){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌闅愭偅绫诲瀷"); } + hiddenDanger.setCategoryName(hiddenDangerCate.getName()); hiddenDanger.setCreator(hiddenDanger.getLoginUserInfo().getId()); hiddenDanger.setAreaName(hiddenDangerParam.getName()); hiddenDanger.setStatus(Constants.ZERO); @@ -143,7 +195,7 @@ createNotices.setSendacopy(Constants.ZERO); createNotices.setParam2("0"); createNotices.setParam3(hiddenDanger.getLoginUserInfo().getMemberId().toString()); - createNotices.setInfo("澶勭悊涓�"); + createNotices.setInfo("寰�"+member.getName()+"澶勭悊"); noticesJoinMapper.insert(createNotices); //瀛樺偍澶勭悊浜虹殑閫氱煡娑堟伅 @@ -162,8 +214,49 @@ notices.setStatus(Constants.ZERO); notices.setSendacopy(Constants.ZERO); notices.setReaded(Constants.ZERO); + notices.setInfo("寰�"+member.getName()+"澶勭悊"); noticesJoinMapper.insert(notices); + if(Objects.nonNull(member) && StringUtils.isNotBlank(member.getPhone())){ + //鍙戦�佺煭淇¢�氱煡 + SmsEmailServiceImpl.sendHiddenDangerSms(systemDictDataBiz, + emayService,smsEmailMapper,smsConfigMapper,hiddenDangerMapper,hiddenDanger.getId(), + SmsConstants.hiddenDangerContent.hiddenDangerDealUser, + Arrays.asList(member.getPhone().split(",")),hiddenDangerCate.getName() + ); + } + + WxPlatNotice wxPlatNotice = new WxPlatNotice(); + SystemUser systemUser = systemUserMapper.selectById(hiddenDanger.getLoginUserInfo().getId()); + hiddenDanger.setMemberName(systemUser.getRealname()); + //鎻愪氦浜虹殑寰俊鍏紬鍙烽�氱煡 + if(Objects.nonNull(systemUser)&&StringUtils.isNotBlank(systemUser.getOpenid())){ + wxPlatNotice.sendHiddenDangerUploadTemplateNotice(systemDictDataBiz, + wxNoticeConfigMapper,hiddenDanger, + WxPlatConstants.hiddenDangerContent.hiddenDangerUpload, + systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(), + Arrays.asList(systemUser.getOpenid().split(","))); + } + + SystemUser checkUser = systemUserMapper.selectOne(new QueryWrapper<SystemUser>().lambda() + .eq(SystemUser::getDeleted, Constants.ZERO) + .eq(SystemUser::getMemberId,hiddenDanger.getCheckUserId()) + .last(" limit 1 ")); + + //澶勭悊浜虹殑寰俊鍏紬鍙烽�氱煡 + if(Objects.nonNull(checkUser)&&StringUtils.isNotBlank(checkUser.getOpenid())){ + wxPlatNotice.sendHiddenDangerUploadTemplateNotice(systemDictDataBiz, + wxNoticeConfigMapper,hiddenDanger, + WxPlatConstants.hiddenDangerContent.hiddenDangerUpload, + systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(), + Arrays.asList(checkUser.getOpenid().split(","))); + } + + if(StringUtils.isNotBlank(member.getDdId())){ + dingTalk.workInfoOANotice(Long.valueOf(systemDictDataBiz.queryByCode(Constants.DD_TALK,Constants.AGENT_ID).getCode()), + member.getDdId(), + dingTalk.getHiddenDangerNoticeMsg(hiddenDanger)); + } return hiddenDanger.getId(); } @@ -171,6 +264,57 @@ @Override public void deleteById(Integer id) { hiddenDangerMapper.deleteById(id); + } + @Override + public void deleteById(Integer id,LoginUserInfo user) { + if( Objects.isNull(id) ){ + throw new BusinessException(ResponseStatus.BAD_REQUEST); + } + HiddenDanger model = hiddenDangerMapper.selectJoinOne(HiddenDanger.class,new MPJLambdaWrapper<HiddenDanger>() + .selectAll(HiddenDanger.class) + .selectAs(Member::getName,HiddenDanger::getCheckorName) + .leftJoin(Member.class,Member::getId,HiddenDanger::getCheckUserId) + .eq(HiddenDanger::getId,id) + .eq(HiddenDanger::getIsdeleted,Constants.ZERO) + ); + if(Objects.isNull(model)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌闅愭偅鏁版嵁"); + } + /* if (!Constants.equalsInteger(model.getStatus(),Constants.ZERO)) { + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏁版嵁鐘舵�佸凡娴佽浆,璇峰埛鏂版煡鐪�!"); + }*/ + HiddenDanger hiddenDanger = new HiddenDanger(); + hiddenDanger.setIsdeleted(Constants.ONE); + hiddenDanger.setId(id); + hiddenDanger.setEditor(user.getId()); + Date date =new Date(); + + hiddenDanger.setEditDate(date); + hiddenDangerMapper.updateById(hiddenDanger); + //瀛樺偍 鎿嶄綔鏃ュ織 + HiddenDangerLog hiddenDangerLog = new HiddenDangerLog(); + hiddenDangerLog.setIsdeleted(Constants.ZERO); + hiddenDangerLog.setCreateDate(date); + hiddenDangerLog.setCreator(hiddenDanger.getEditor()); + hiddenDangerLog.setEditDate(hiddenDangerLog.getCreateDate()); + hiddenDangerLog.setEditor(hiddenDanger.getCreator()); + hiddenDangerLog.setTitle("鐢便��"+user.getRealname()+"銆戝垹闄よ褰�"); + hiddenDangerLog.setHiddenDangerId(hiddenDanger.getId()); + hiddenDangerLog.setObjType(Constants.FIVE); + hiddenDangerLogMapper.insert(hiddenDangerLog); + + String[] params = new String[3]; + params[0] = user.getRealname(); + params[1]=DateUtil.getPlusTime2(date); + params[2]=model.getAreaName()+"-銆�"+model.getContent()+"銆�"; + //璁板綍鍒犻櫎鏃ュ織 + UserActionServiceImpl.saveUserActionBiz(user,id,Constants.UserActionType.HIDEN_DANGER_DEL,userActionMapper,date,params,JSONObject.toJSONString(model)); + + //鏍囪浠诲姟璁板綍 + VisitsServiceImpl.dealCancelNoticesData(noticesJoinMapper,approveMapper,"绯荤粺鍒犻櫎",model.getId(), + null, + Constants.noticesObjectType.dangerDeal + ); } @Override @@ -211,13 +355,19 @@ .select("t1.phone",HiddenDanger::getMemberPhone) .select("t2.name",HiddenDanger::getCheckorName) .select("t2.phone",HiddenDanger::getCheckorPhone) - .select("t4.company_name_path",HiddenDanger::getCompanyName); + .select("t5.company_name_path",HiddenDanger::getDutyCompanyName) + .select("t4.company_name_path",HiddenDanger::getCompanyName) + .select("t6.name", HiddenDanger::getCheckTypeName); queryWrapper.leftJoin(Member.class,Member::getId,HiddenDanger::getMemberId) .leftJoin(Member.class,Member::getId,HiddenDanger::getCheckUserId) .leftJoin(HiddenDangerParam.class,HiddenDangerParam::getId,HiddenDanger::getCateId) - .leftJoin("company t4 on t1.company_id=t4.id"); + .leftJoin("company t4 on t1.company_id=t4.id") + .leftJoin("company t5 on t2.company_id=t5.id") + .leftJoin("hidden_danger_param t6 on t.check_type_id=t6.id"); queryWrapper - .eq(HiddenDanger::getId, id).last("limit 1"); + .eq(HiddenDanger::getId, id) + .eq(HiddenDanger::getIsdeleted, Constants.ZERO) + .last("limit 1"); HiddenDanger model = hiddenDangerMapper.selectJoinOne(HiddenDanger.class,queryWrapper); if(model ==null || Constants.equalsInteger(model.getIsdeleted(),Constants.ONE)){ @@ -242,6 +392,17 @@ for(Multifile f : multifiles){ if(StringUtils.isBlank(f.getFileurl())){ continue; + } + if(f.getType() == null){ + if(StringUtils.endsWithIgnoreCase(f.getFileurl(),".mp4")){ + f.setType(Constants.ONE); + }else if(StringUtils.endsWithIgnoreCase(f.getFileurl(),".jpg") + ||StringUtils.endsWithIgnoreCase(f.getFileurl(),".jpeg") + ||StringUtils.endsWithIgnoreCase(f.getFileurl(),".png")){ + f.setType(Constants.ZERO); + }else{ + f.setType(Constants.TWO); + } } f.setFileurlFull(path+f.getFileurl()); if(Constants.equalsInteger(f.getObjType(),Constants.MultiFile.HIDDEN_DANGER_SUBMIT.getKey())){ @@ -276,6 +437,7 @@ @Override public List<HiddenDanger> findList(HiddenDanger hiddenDanger) { + hiddenDanger.setIsdeleted(Constants.ZERO); QueryWrapper<HiddenDanger> wrapper = new QueryWrapper<>(hiddenDanger); return hiddenDangerMapper.selectList(wrapper); } @@ -285,17 +447,38 @@ IPage<HiddenDanger> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); MPJLambdaWrapper<HiddenDanger> queryWrapper = new MPJLambdaWrapper<>(); Utils.MP.blankToNull(pageWrap.getModel()); + pageWrap.getModel().setIsdeleted(Constants.ZERO); queryWrapper.selectAll(HiddenDanger.class) .selectAs(HiddenDangerParam::getName,HiddenDanger::getCategoryName) .select("t1.name", HiddenDanger::getMemberName) + .select("t6.name", HiddenDanger::getCheckTypeName) .select("t1.phone",HiddenDanger::getMemberPhone) .select("t2.name",HiddenDanger::getCheckorName) .select("t2.phone",HiddenDanger::getCheckorPhone) + .select("t5.company_name_path",HiddenDanger::getDutyCompanyName) .select("t4.company_name_path",HiddenDanger::getCompanyName); queryWrapper.leftJoin(Member.class,Member::getId,HiddenDanger::getMemberId) .leftJoin(Member.class,Member::getId,HiddenDanger::getCheckUserId) .leftJoin(HiddenDangerParam.class,HiddenDangerParam::getId,HiddenDanger::getCateId) - .leftJoin("company t4 on t1.company_id=t4.id"); + .leftJoin("company t4 on t1.company_id=t4.id") + .leftJoin("hidden_danger_param t6 on t.check_type_id=t6.id") + .leftJoin("company t5 on t2.company_id=t5.id"); + + //鏁版嵁鏉冮檺寮�濮�--------------------start---------------- + LoginUserInfo userInfo =pageWrap.getModel().getLoginUserInfo(); + + if(userInfo!=null && userInfo.getCompanyIdList()!=null){ + if( userInfo.getCompanyIdList().size() ==0){ + //鍙兘鐪嬭嚜宸� + queryWrapper.and(w->{ + w.eq(HiddenDanger::getCreator,userInfo.getId()).or(). + eq(HiddenDanger::getCheckUserId,userInfo.getMemberId()); + }); + }else{ + queryWrapper.in("t1.company_id" ,userInfo.getCompanyIdList()); + } + } + //鏁版嵁鏉冮檺寮�濮�--------------------end---------------- queryWrapper .eq(pageWrap.getModel().getId() != null, HiddenDanger::getId, pageWrap.getModel().getId()) .eq(pageWrap.getModel().getCreator() != null, HiddenDanger::getCreator, pageWrap.getModel().getCreator()) @@ -317,11 +500,14 @@ .eq(pageWrap.getModel().getCheckInfo() != null, HiddenDanger::getCheckInfo, pageWrap.getModel().getCheckInfo()) .eq(pageWrap.getModel().getCheckUserId() != null, HiddenDanger::getCheckUserId, pageWrap.getModel().getCheckUserId()) .eq(pageWrap.getModel().getAreaName() != null, HiddenDanger::getAreaName, pageWrap.getModel().getAreaName()) + .like(pageWrap.getModel().getCompanyName() != null,"t4.company_name_path",pageWrap.getModel().getCompanyName()) + .like(pageWrap.getModel().getDutyCompanyName() != null,"t5.company_name_path",pageWrap.getModel().getDutyCompanyName()) + .eq(pageWrap.getModel().getCheckTypeId() != null, HiddenDanger::getCheckTypeId, pageWrap.getModel().getCheckTypeId()) .and(StringUtils.isNotBlank(pageWrap.getModel().getMemberName()), ms->ms.like(Member::getName,pageWrap.getModel().getMemberName()) .or().like(Member::getPhone,pageWrap.getModel().getMemberName())) - .ge(Objects.nonNull(pageWrap.getModel().getQueryStartTime()), Empower::getCreateDate,pageWrap.getModel().getQueryStartTime()) - .le(Objects.nonNull(pageWrap.getModel().getQueryEndTime()),Empower::getCreateDate,pageWrap.getModel().getQueryEndTime()) + .ge(Objects.nonNull(pageWrap.getModel().getQueryStartTime()), HiddenDanger::getSubmitTime,pageWrap.getModel().getQueryStartTime()) + .le(Objects.nonNull(pageWrap.getModel().getQueryEndTime()),HiddenDanger::getSubmitTime,pageWrap.getModel().getQueryEndTime()) .orderByDesc(Visits::getCreateDate) ; for(PageWrap.SortData sortData: pageWrap.getSorts()) { @@ -336,11 +522,10 @@ @Override public long count(HiddenDanger hiddenDanger) { + hiddenDanger.setIsdeleted(Constants.ZERO); QueryWrapper<HiddenDanger> wrapper = new QueryWrapper<>(hiddenDanger); return hiddenDangerMapper.selectCount(wrapper); } - - @Override @Transactional(rollbackFor = {Exception.class,BusinessException.class}) @@ -351,6 +536,15 @@ hiddenDanger.setEditDate(new Date()); hiddenDanger.setCheckDate(hiddenDanger.getEditDate()); hiddenDangerMapper.updateById(hiddenDanger); + HiddenDanger model = hiddenDangerMapper.selectById(hiddenDanger.getId()); + if(Objects.isNull(model) ||Constants.equalsInteger(model.getIsdeleted(),Constants.ONE)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY ); + } + HiddenDangerParam hiddenDangerCate = hiddenDangerParamMapper.selectById(model.getCateId()); + if(Objects.isNull(hiddenDangerCate)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌闅愭偅绫诲瀷"); + } + model.setCategoryName(hiddenDangerCate.getName()); //瀛樺偍 鎿嶄綔鏃ュ織 HiddenDangerLog hiddenDangerLog = new HiddenDangerLog(); hiddenDangerLog.setIsdeleted(Constants.ZERO); @@ -366,11 +560,45 @@ .lambda() .set(Notices::getReaded,Constants.ONE) .set(Notices::getStatus,Constants.ONE) + .set(Notices::getInfo,hiddenDanger.getStatus().equals(Constants.ONE)?"宸叉暣鏀�":"宸查��鍥�") + .set(Notices::getParam2,hiddenDanger.getStatus()) + .set(Notices::getParam4,hiddenDanger.getLoginUserInfo().getMemberId()) + .eq(Notices::getObjId,hiddenDanger.getId()) + .eq(Notices::getObjType,Constants.THREE) + .eq(Notices::getUserId,hiddenDanger.getLoginUserInfo().getMemberId())); + //鍙戣捣浜轰唬鍔炴爣棰樹慨鏀逛负澶勭悊缁撴灉 + noticesJoinMapper.update(null,new UpdateWrapper<Notices>() + .lambda() + .set(Notices::getInfo,hiddenDanger.getStatus().equals(Constants.ONE)?"宸叉暣鏀�":"宸查��鍥�") .set(Notices::getParam2,hiddenDanger.getStatus()) .eq(Notices::getObjId,hiddenDanger.getId()) .eq(Notices::getObjType,Constants.THREE) - .eq(Notices::getUserId,hiddenDanger.getLoginUserInfo().getMemberId()) - ); + .eq(Notices::getParam3,hiddenDanger.getMemberId().toString()) ); + + SystemUser memberUser = systemUserMapper.selectOne(new QueryWrapper<SystemUser>().lambda() + .eq(SystemUser::getDeleted, Constants.ZERO) + .eq(SystemUser::getMemberId,model.getMemberId())); + if(Constants.equalsInteger(hiddenDanger.getStatus(),Constants.ONE)){ + if(Objects.nonNull(memberUser) && StringUtils.isNotBlank(memberUser.getMobile())){ + //鍙戦�佺煭淇¢�氱煡 + SmsEmailServiceImpl.sendHiddenDangerSms(systemDictDataBiz, + emayService,smsEmailMapper,smsConfigMapper,hiddenDangerMapper,hiddenDanger.getId(), + SmsConstants.hiddenDangerContent.hiddenDangerDealOver, + Arrays.asList(memberUser.getMobile().split(",")),hiddenDangerCate.getName() + ); + } + } + model.setCheckorName(hiddenDanger.getLoginUserInfo().getRealname()); + model.setMemberName(memberUser.getRealname()); + //澶勭悊浜虹殑寰俊鍏紬鍙烽�氱煡 + if(Objects.nonNull(memberUser)&&StringUtils.isNotBlank(memberUser.getOpenid())){ + WxPlatNotice wxPlatNotice = new WxPlatNotice(); + wxPlatNotice.sendHiddenDangerDealTemplateNotice(systemDictDataBiz, + wxNoticeConfigMapper,model, + WxPlatConstants.hiddenDangerContent.hiddenDangerDeal, + systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(), + Arrays.asList(memberUser.getOpenid().split(","))); + } } @@ -384,7 +612,7 @@ throw new BusinessException(ResponseStatus.BAD_REQUEST); } HiddenDanger model = hiddenDangerMapper.selectById(hiddenDanger.getId()); - if(Objects.isNull(model)){ + if(Objects.isNull(model) ||Constants.equalsInteger(model.getIsdeleted(),Constants.ONE)){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌闅愭偅鏁版嵁"); } if (!model.getStatus().equals(Constants.ZERO)) { @@ -396,6 +624,7 @@ if(!(hiddenDanger.getStatus().equals(Constants.ONE)||hiddenDanger.getStatus().equals(Constants.TWO))){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏁版嵁鐘舵�侀敊璇�,璇峰埛鏂版煡鐪嬶紒"); } + hiddenDanger.setMemberId(model.getMemberId());//鍙戣捣浜� } private void dealFileBiz(HiddenDanger hiddenDanger) {//鏁存敼鍓嶆枃浠� @@ -409,9 +638,21 @@ if(StringUtils.isBlank(multifile.getFileurl())){ continue; } + multifile.setId(null); multifile.setCreateDate(new Date()); multifile.setCreator(hiddenDanger.getEditor()); multifile.setIsdeleted(Constants.ZERO); + if(multifile.getType() == null){ + if(StringUtils.endsWithIgnoreCase(multifile.getFileurl(),".mp4")){ + multifile.setType(Constants.ONE); + }else if(StringUtils.endsWithIgnoreCase(multifile.getFileurl(),".jpg") + ||StringUtils.endsWithIgnoreCase(multifile.getFileurl(),".jpeg") + ||StringUtils.endsWithIgnoreCase(multifile.getFileurl(),".png")){ + multifile.setType(Constants.ZERO); + }else{ + multifile.setType(Constants.TWO); + } + } multifile.setObjId(hiddenDanger.getId()); multifile.setCreator(hiddenDanger.getLoginUserInfo().getId()); multifile.setObjType(Constants.MultiFile.HIDDEN_DANGER_DEAL_BEFORE.getKey()); @@ -422,6 +663,11 @@ if(hiddenDanger.getStatus().equals(Constants.ONE) && !isTrue){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝璇锋寜瑕佹眰濉啓澶勭悊鏁版嵁"); } + multifileMapper.update(null,new UpdateWrapper<Multifile>().lambda() + .set(Multifile::getIsdeleted,Constants.ONE ) + .eq(Multifile::getObjType,Constants.MultiFile.HIDDEN_DANGER_DEAL_BEFORE.getKey()) + .eq(Multifile::getObjId,hiddenDanger.getId()) + ); } if(hiddenDanger.getStatus().equals(Constants.ONE)){ boolean isTrue = false; @@ -432,6 +678,7 @@ if(StringUtils.isBlank(multifile.getFileurl())){ continue; } + multifile.setId(null); multifile.setCreateDate(new Date()); multifile.setCreator(hiddenDanger.getEditor()); multifile.setIsdeleted(Constants.ZERO); @@ -443,12 +690,12 @@ isTrue = true; } } - if(isTrue){ + if(!isTrue){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝璇锋寜瑕佹眰濉啓澶勭悊鏁版嵁"); } } if(fileList.size()>0){ - multifileMapper.insertBatchSomeColumn(fileList); + multifileMapper.insert(fileList); } } @@ -466,8 +713,9 @@ .selectAll(HiddenDanger.class) .selectAs(Member::getName,HiddenDanger::getCheckorName) .leftJoin(Member.class,Member::getId,HiddenDanger::getCheckUserId) - .eq(HiddenDanger::getId,hiddenDanger.getId())); - if(Objects.isNull(model)){ + .eq(HiddenDanger::getId,hiddenDanger.getId()) + ); + if(Objects.isNull(model) ||Constants.equalsInteger(model.getIsdeleted(),Constants.ONE)){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌闅愭偅鏁版嵁"); } if (!Constants.equalsInteger(model.getStatus(),Constants.ZERO)) { @@ -483,6 +731,12 @@ if(member == null || !Constants.equalsInteger(member.getType(), Constants.TWO) || Constants.equalsInteger(Constants.ONE,member.getIsdeleted())){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝杞氦浜轰俊鎭笉瀛樺湪锛岃鍒锋柊椤甸潰閲嶈瘯锛�"); } + HiddenDangerParam hiddenDangerCate = hiddenDangerParamMapper.selectById(model.getCateId()); + if(Objects.isNull(hiddenDangerCate)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌闅愭偅绫诲瀷"); + } + model.setCategoryName(hiddenDangerCate.getName()); + hiddenDanger.setCategoryName(hiddenDangerCate.getName()); hiddenDanger.setEditor(hiddenDanger.getLoginUserInfo().getId()); hiddenDanger.setEditDate(new Date()); hiddenDangerMapper.updateById(hiddenDanger); @@ -502,6 +756,7 @@ .eq(Notices::getObjId,hiddenDanger.getId()) .eq(Notices::getObjType,Constants.THREE) .eq(Notices::getUserId,hiddenDanger.getLoginUserInfo().getMemberId()) + .orderByDesc(Notices::getId) .last(" limit 1 ") ); if(Objects.nonNull(notices)){ @@ -509,15 +764,223 @@ BeanUtils.copyProperties(notices,newNotices); newNotices.setId(null); newNotices.setCreateDate(new Date()); - newNotices.setParam2("3"); + newNotices.setParam2("0"); newNotices.setUserId(hiddenDanger.getCheckUserId()); + newNotices.setInfo("寰�"+member.getName()+"澶勭悊"); noticesJoinMapper.insert(newNotices); notices.setStatus(Constants.ONE); + notices.setParam2("3"); notices.setEditDate(new Date()); notices.setReaded(Constants.ONE); + notices.setInfo("寰�"+member.getName()+"澶勭悊"); noticesJoinMapper.updateById(notices); } + + SystemUser memberUser = systemUserMapper.selectOne(new QueryWrapper<SystemUser>().lambda() + .eq(SystemUser::getDeleted, Constants.ZERO) + .eq(SystemUser::getMemberId,model.getMemberId())); + if(Objects.isNull(memberUser)||StringUtils.isBlank(memberUser.getRealname())){ + return; + } + hiddenDanger.setMemberName(memberUser.getRealname()); + model.setMemberName(memberUser.getRealname()); + SystemUser checkUser = systemUserMapper.selectOne(new QueryWrapper<SystemUser>().lambda() + .eq(SystemUser::getDeleted, Constants.ZERO) + .eq(SystemUser::getMemberId,hiddenDanger.getCheckUserId())); + if(Objects.nonNull(checkUser) && StringUtils.isNotBlank(checkUser.getMobile())){ + //鍙戦�佺煭淇¢�氱煡 + SmsEmailServiceImpl.sendHiddenDangerSms(systemDictDataBiz, + emayService,smsEmailMapper,smsConfigMapper,hiddenDangerMapper,hiddenDanger.getId(), + SmsConstants.hiddenDangerContent.hiddenDangerDealUser, + Arrays.asList(checkUser.getMobile().split(",")),hiddenDangerCate.getName() + ); + } + + //澶勭悊浜虹殑寰俊鍏紬鍙烽�氱煡 + if(Objects.nonNull(checkUser)&&StringUtils.isNotBlank(checkUser.getOpenid())){ + WxPlatNotice wxPlatNotice = new WxPlatNotice(); + wxPlatNotice.sendHiddenDangerUploadTemplateNotice(systemDictDataBiz, + wxNoticeConfigMapper,model, + WxPlatConstants.hiddenDangerContent.hiddenDangerUpload, + systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(), + Arrays.asList(checkUser.getOpenid().split(","))); + } + + if(StringUtils.isNotBlank(member.getDdId())){ + dingTalk.workInfoOANotice(Long.valueOf(systemDictDataBiz.queryByCode(Constants.DD_TALK,Constants.AGENT_ID).getCode()), + member.getDdId(), + dingTalk.getHiddenDangerNoticeMsg(hiddenDanger)); + } + } + /** + * 闅忔墜鎷嶇粺璁℃暟鎹� + */ + @Override + public HiddenDangerDataVO hiddenDangerData(HiddenDanger hiddenDanger){ + HiddenDangerDataVO hiddenDangerDataVO = new HiddenDangerDataVO(); + List<HiddenDanger> hiddenDangerAllList = hiddenDangerMapper.selectJoinList(HiddenDanger.class, + new MPJLambdaWrapper<HiddenDanger>() + .selectAll(HiddenDanger.class) + .selectAs(HiddenDangerParam::getCompanyId, HiddenDanger::getAreaCompanyId) + .leftJoin(HiddenDangerParam.class,HiddenDangerParam::getId,HiddenDanger::getAreaId) //闅愭偅鍖哄煙 + .eq(HiddenDanger::getIsdeleted,Constants.ZERO) + .eq(Objects.nonNull(hiddenDanger.getStatus()),HiddenDanger::getStatus,hiddenDanger.getStatus()) +// .apply(" ( DATE_FORMAT(t.CREATE_DATE, '%Y') = DATE_FORMAT(now(), '%Y') ) ") +// .ge(Objects.nonNull(hiddenDanger.getQueryStartTime()), HiddenDanger::getCreateDate,hiddenDanger.getQueryStartTime()) +// .le(Objects.nonNull(hiddenDanger.getQueryEndTime()),HiddenDanger::getCreateDate,hiddenDanger.getQueryEndTime()) + ); + List<GeneralDataVO> yearDataList = new ArrayList<>(); + if(CollectionUtils.isEmpty(hiddenDangerAllList)){ + return hiddenDangerDataVO; + } + Integer nowYear = DateUtil.getNowYearNum(); + Integer nowMonth = DateUtil.getNowMonthNum(); + String nowDate = DateUtil.getFomartDate(new Date(),"yyyy-MM-dd"); + for (int i = 1; i <=12 ; i++) { + GeneralDataVO generalDataVO = new GeneralDataVO(); + generalDataVO.setName(Integer.toString(i)); + generalDataVO.setTotal( + hiddenDangerAllList.stream().filter(j->Constants.equalsInteger(nowYear,Integer.valueOf(DateUtil.formatDate(j.getCreateDate(),"yyyy")))&&Constants.equalsInteger(Integer.valueOf(generalDataVO.getName()), + Integer.valueOf(DateUtil.formatDate(j.getCreateDate(),"MM")))).collect(Collectors.toList()).size()); + generalDataVO.setName(generalDataVO.getName()+"鏈�"); + yearDataList.add(generalDataVO); + } + hiddenDangerDataVO.setYearList(yearDataList); + + + + hiddenDangerDataVO.setTotal(hiddenDangerAllList.size()); + hiddenDangerDataVO.setWaitDeal(hiddenDangerAllList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ZERO)).collect(Collectors.toList()).size()); + hiddenDangerDataVO.setBack(hiddenDangerAllList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.TWO)).collect(Collectors.toList()).size()); + hiddenDangerDataVO.setDealFinish(hiddenDangerAllList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ONE)).collect(Collectors.toList()).size()); + hiddenDangerDataVO.setTodayNew(hiddenDangerAllList.stream().filter(i->DateUtil.formatDate(i.getCreateDate(),"yyyy-MM-dd").equals(DateUtil.formatDate(new Date(),"yyyy-MM-dd"))).collect(Collectors.toList()).size()); + + if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(hiddenDangerAllList)){ + List<Integer> cateList = hiddenDangerAllList.stream().filter(i->DateUtil.formatDate(i.getCreateDate(),"yyyy-MM").equals(nowDate.substring(0,7))).map(i->i.getCateId()).collect(Collectors.toList()); + //鍏ㄩ儴闅愭偅鍒嗙被鏁版嵁 + if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(cateList)){ + List<GeneralDataVO> cateGeneralDataList = new ArrayList<>(); + Set<Integer> cateSetList = new HashSet<>(cateList); + List<HiddenDangerParam> hiddenDangerParamList = hiddenDangerParamMapper.selectList(new QueryWrapper<HiddenDangerParam>() + .lambda().eq(HiddenDangerParam::getIsdeleted,Constants.ZERO).eq(HiddenDangerParam::getType,Constants.ONE)); + for (Integer cateId:cateSetList) { + if(Objects.isNull(cateId)){ + continue; + } + Optional<HiddenDangerParam> optionalHiddenDanger = hiddenDangerParamList.stream().filter(i->Constants.equalsInteger(i.getId(),cateId)).findAny(); + if(optionalHiddenDanger.isPresent()){ + GeneralDataVO generalDataVO = new GeneralDataVO(); + HiddenDangerParam hiddenDangerParam = optionalHiddenDanger.get(); + Integer total = hiddenDangerAllList.stream().filter(i->Constants.equalsInteger(i.getCateId(),hiddenDangerParam.getId())&& DateUtil.formatDate(i.getCreateDate(),"yyyy-MM").equals(nowDate.substring(0,7))).collect(Collectors.toList()).size(); + generalDataVO.setName(hiddenDangerParam.getName()); + generalDataVO.setTotal(total); + generalDataVO.setRata( + Constants.equalsInteger(total,Constants.ZERO)? + BigDecimal.ZERO:new BigDecimal(total.toString()) + .divide(new BigDecimal(hiddenDangerDataVO.getTotal().toString()),2,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")) + ); + cateGeneralDataList.add(generalDataVO); + } + } + hiddenDangerDataVO.setCateList(cateGeneralDataList); + } + + //鍏ㄩ儴闅愭偅鍖哄煙閮ㄩ棬鏁版嵁 +// List<HiddenDangerCompanyVO> hiddenDangerCompanyVOList = hiddenDangerAllList.stream(). +// filter(i->DateUtil.formatDate(i.getCreateDate(),"yyyy-MM").equals(nowDate.substring(0,7))) +// .map(i->new HiddenDangerCompanyVO(i.getAreaName(),i.getAreaCompanyId())).collect(Collectors.toList()); +// if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(hiddenDangerCompanyVOList)){ +// List<GeneralDataVO> companyGeneralDataList = new ArrayList<>(); +// Set<HiddenDangerCompanyVO> companyIdSetList = new HashSet<>(hiddenDangerCompanyVOList); +// List<Company> companyList = companyMapper.selectList(new QueryWrapper<Company>() +// .lambda().eq(Company::getIsdeleted,Constants.ZERO)); +// for (HiddenDangerCompanyVO hiddenDangerCompanyVO:companyIdSetList) { +// if(Objects.isNull(hiddenDangerCompanyVO) +// || Objects.isNull(hiddenDangerCompanyVO.getId()) +// || StringUtils.isBlank(hiddenDangerCompanyVO.getCategoryName())){ +// continue; +// } +// Optional<Company> optionalCompany = companyList.stream().filter(i->Constants.equalsInteger(i.getId(),hiddenDangerCompanyVO.getId())).findAny(); +// if(optionalCompany.isPresent()){ +// GeneralDataVO generalDataVO = new GeneralDataVO(); +// Company company = optionalCompany.get(); +// Integer total = hiddenDangerAllList.stream().filter(i->DateUtil.formatDate(i.getCreateDate(),"yyyy-MM"). +// equals(nowDate.substring(0,7))&&Constants.equalsInteger(i.getAreaCompanyId(),company.getId())).collect(Collectors.toList()).size(); +// generalDataVO.setName(company.getName()); +// generalDataVO.setTotal(total); +// generalDataVO.setCategoryName(hiddenDangerCompanyVO.getCategoryName()); +// companyGeneralDataList.add(generalDataVO); +// } +// } +// hiddenDangerDataVO.setDepartmentList(companyGeneralDataList); +// } +// if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(hiddenDangerDataVO.getDepartmentList())){ +// List<GeneralDataVO> topList = hiddenDangerDataVO.getDepartmentList(); +// Collections.sort(topList, new Comparator<GeneralDataVO>() { +// @Override +// public int compare(GeneralDataVO o1, GeneralDataVO o2) { +// // 杩斿洖鍊间负int绫诲瀷锛屽ぇ浜�0琛ㄧず姝e簭锛屽皬浜�0琛ㄧず閫嗗簭 +// return o2.getTotal() - o1.getTotal(); +// } +// }); +// hiddenDangerDataVO.setDepartmentSortList(topList); +// } + + } + + + List<Map<String,Object>> companyMapList = hiddenDangerMapper.selectJoinMaps(new MPJLambdaWrapper<HiddenDanger>() + .select(" t2.name as companyName , count(1) total ") + .leftJoin(HiddenDangerParam.class,HiddenDangerParam::getId,HiddenDanger::getAreaId) + .leftJoin(Company.class,Company::getId,HiddenDangerParam::getCompanyId) + .eq(HiddenDanger::getIsdeleted,Constants.ZERO) + .apply(" DATE_FORMAT(t.CREATE_DATE, '%Y%M') = DATE_FORMAT(now(), '%Y%M') ") + .groupBy(" t2.name") + ); + if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(companyMapList)){ + List<GeneralDataVO> list = new ArrayList<>(); + for (Map<String,Object> map:companyMapList) { + GeneralDataVO generalDataVO = new GeneralDataVO(); + generalDataVO.setTotal(Integer.valueOf(map.get("total").toString())); + generalDataVO.setName(map.get("companyName").toString()); + list.add(generalDataVO); + } + hiddenDangerDataVO.setDepartmentList(list); + } + + + + List<Map<String,Object>> mapList = hiddenDangerMapper.selectJoinMaps(new MPJLambdaWrapper<HiddenDanger>() + .select(" t1.name as cateName,t2.name as companyName , count(1) total ") + .leftJoin(HiddenDangerParam.class,HiddenDangerParam::getId,HiddenDanger::getAreaId) + .leftJoin(Company.class,Company::getId,HiddenDangerParam::getCompanyId) + .eq(HiddenDanger::getIsdeleted,Constants.ZERO) + .apply(" DATE_FORMAT(t.CREATE_DATE, '%Y%M') = DATE_FORMAT(now(), '%Y%M') ") + .groupBy("t1.name , t2.name") + .orderByDesc(" count(1) ") + ); + if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(mapList)){ + List<GeneralDataVO> topList = new ArrayList<>(); + for (Map<String,Object> map:mapList) { + GeneralDataVO generalDataVO = new GeneralDataVO(); + generalDataVO.setTotal(Integer.valueOf(map.get("total").toString())); + generalDataVO.setName(map.get("companyName").toString()); + generalDataVO.setCategoryName(map.get("cateName").toString()); + topList.add(generalDataVO); + } + hiddenDangerDataVO.setDepartmentSortList(topList); + } + + + + return hiddenDangerDataVO; + } + + + + + } -- Gitblit v1.9.3