diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuser/SysUserFeign.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuser/SysUserFeign.java index 6dd9fdc747..3141830257 100644 --- a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuser/SysUserFeign.java +++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuser/SysUserFeign.java @@ -292,4 +292,10 @@ public interface SysUserFeign { @ApiOperation("获取小程序客户用户信息") @GetMapping("/fetchBySidWx/{sid}") public ResultBean fetchBySidWx(@PathVariable("sid") String sid); + + @ApiOperation(value = "根据部门sid和角色名查询用户") + @PostMapping(value = "/selectByDeptSidAndRoleName") + ResultBean> selectByDeptSidAndRoleName(@RequestParam("deptSid") String deptSid, + @RequestParam("roleNames") List roleNames); + } diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuser/SysUserFeignFallback.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuser/SysUserFeignFallback.java index 656bb0c76a..69bed50148 100644 --- a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuser/SysUserFeignFallback.java +++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuser/SysUserFeignFallback.java @@ -280,4 +280,9 @@ public class SysUserFeignFallback implements SysUserFeign { public ResultBean fetchBySidWx(String sid) { return null; } + + @Override + public ResultBean> selectByDeptSidAndRoleName(String deptSid, List roleNames) { + return null; + } } diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserMapper.java b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserMapper.java index ef25853319..ced5c7543d 100644 --- a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserMapper.java +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserMapper.java @@ -207,4 +207,6 @@ public interface SysUserMapper extends BaseMapper { List> getUserByDeptSid(String deptSid); List getAllPeo(@Param("deptSid") String deptSid,@Param("name") String name); + + List selectByDeptSidAndRoleName(@Param("deptSid")String deptSid, @Param("roleNames")List roleNames); } \ No newline at end of file diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserMapper.xml b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserMapper.xml index c0413d3deb..4ed6b9775e 100644 --- a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserMapper.xml +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserMapper.xml @@ -489,4 +489,19 @@ ) + \ No newline at end of file diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserRest.java b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserRest.java index 9217c51f88..0af0d76d76 100644 --- a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserRest.java +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserRest.java @@ -724,4 +724,9 @@ public class SysUserRest implements SysUserFeign { public ResultBean fetchBySidWx(String sid) { return sysUserService.fetchBySidWx(sid); } + + @Override + public ResultBean> selectByDeptSidAndRoleName(String deptSid, List roleNames) { + return sysUserService.selectByDeptSidAndRoleName(deptSid,roleNames); + } } diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserService.java b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserService.java index f0e7e49226..b6abb413b0 100644 --- a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserService.java +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserService.java @@ -1724,4 +1724,11 @@ public class SysUserService extends MybatisBaseService { List allPeo = baseMapper.getAllPeo(deptSid, name); return rb.success().setData(allPeo); } + + public ResultBean> selectByDeptSidAndRoleName(String deptSid, List roleNames) { + ResultBean rb = ResultBean.fireFail(); + List list = baseMapper.selectByDeptSidAndRoleName(deptSid,roleNames); + return rb.success().setData(list); + + } } diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java index 5816c185e2..5ca74aea55 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java @@ -5,6 +5,7 @@ import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.google.common.util.concurrent.ThreadFactoryBuilder; import com.yxt.anrui.as.api.asappendix.AsAppendix; import com.yxt.anrui.as.api.asbusrepairbill.*; import com.yxt.anrui.as.api.asbusrepairbill.app.*; @@ -52,10 +53,13 @@ import com.yxt.anrui.as.feign.file.AsFileEnum; import com.yxt.anrui.as.feign.fin.finselectedreceivablesdetailed.FinSelectedReceivablesDetailedFeign; import com.yxt.anrui.as.feign.fin.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailedFeign; import com.yxt.anrui.as.feign.fms.FmsReceivesettleFeign; +import com.yxt.anrui.as.feign.message.MessageFeign; +import com.yxt.anrui.as.feign.message.PushMessageQuery; import com.yxt.anrui.as.feign.portal.privilege.PrivilegeQuery; import com.yxt.anrui.as.feign.portal.sysorganization.SysOrganizationFeign; import com.yxt.anrui.as.feign.portal.sysorganization.SysOrganizationVo; import com.yxt.anrui.as.feign.portal.sysstafforg.SysStaffOrgFeign; +import com.yxt.anrui.as.feign.portal.sysuser.DeptUserVo; import com.yxt.anrui.as.feign.portal.sysuser.SysUserFeign; import com.yxt.anrui.as.feign.portal.sysuser.SysUserVo; import com.yxt.anrui.as.feign.sms.SmsGoods; @@ -74,6 +78,7 @@ import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; import org.apache.commons.lang3.StringUtils; +import org.apache.tomcat.util.threads.ThreadPoolExecutor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -87,6 +92,8 @@ import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.ZoneId; import java.util.*; +import java.util.concurrent.*; +import java.util.stream.Collectors; /** * @description: @@ -96,6 +103,7 @@ import java.util.*; @Service public class AsBusrepairBillService extends MybatisBaseService { + @Autowired private AsBusrepairBillInsuranceRecordService asBusrepairBillInsuranceRecordService; @Autowired @@ -160,7 +168,8 @@ public class AsBusrepairBillService extends MybatisBaseService role = new ArrayList<>(); + role.add("分公司配件主管"); + role.add("分公司配件库管员"); + List userVos = sysUserFeign.selectByDeptSidAndRoleName(detail.getDeptSid(), role).getData(); + if (!userVos.isEmpty()) { + List userSids = userVos.stream().map(DeptUserVo::getSid).collect(Collectors.toList()); + try { + ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() + .setNameFormat("demo-pool-%d").build(); + ExecutorService pool = new ThreadPoolExecutor(1, 10, + 1000, TimeUnit.MILLISECONDS, + new LinkedBlockingQueue(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); + Future future1 = pool.submit(() -> { + PushMessageQuery pushMessageQuery = new PushMessageQuery(); + pushMessageQuery.setReceivedSids(userSids); + pushMessageQuery.setModuleName("售后服务"); + pushMessageQuery.setMsgContent("维修单号:"+ detail.getBillNo() + "已维修完毕,请进行配件出库确认"); + pushMessageQuery.setApp_type("2"); + pushMessageQuery.setModuleSid("fea6ee02-05cc-11ef-9a84-8032536963eb"); + pushMessageQuery.setMsgTitle("配件出库确认提醒"); + pushMessageQuery.setBusinessSid(detail.getSid()); + // 消息推送 + messageFeign.pushNoUriMessage(pushMessageQuery); + }); + + + } catch (Exception e) { + e.printStackTrace(); + } + } } } } diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/feign/message/MessageFeign.java b/yxt-as/src/main/java/com/yxt/anrui/as/feign/message/MessageFeign.java index b4737faabc..a4ed9f4f2b 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/feign/message/MessageFeign.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/feign/message/MessageFeign.java @@ -23,4 +23,8 @@ public interface MessageFeign { @ApiOperation("流程审批推送消息") @PostMapping("/pushMessage") ResultBean pushMessage(@RequestBody MessageFlowableQuery query); + + @ApiOperation("推送无详情页的消息") + @PostMapping("/pushNoUriMessage") + ResultBean pushNoUriMessage(@RequestBody PushMessageQuery query); } \ No newline at end of file diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/feign/portal/sysuser/DeptUserVo.java b/yxt-as/src/main/java/com/yxt/anrui/as/feign/portal/sysuser/DeptUserVo.java new file mode 100644 index 0000000000..a22fff5ded --- /dev/null +++ b/yxt-as/src/main/java/com/yxt/anrui/as/feign/portal/sysuser/DeptUserVo.java @@ -0,0 +1,16 @@ +package com.yxt.anrui.as.feign.portal.sysuser; + +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2025/1/16 + **/ +@Data +public class DeptUserVo { + + private String sid; + + private String name; +} diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/feign/portal/sysuser/SysUserFeign.java b/yxt-as/src/main/java/com/yxt/anrui/as/feign/portal/sysuser/SysUserFeign.java index 8af03c9089..482e15c85e 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/feign/portal/sysuser/SysUserFeign.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/feign/portal/sysuser/SysUserFeign.java @@ -6,10 +6,9 @@ import com.yxt.common.core.result.ResultBean; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.cloud.openfeign.FeignClient; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.*; + +import java.util.List; @Api(tags = "用户表") @FeignClient( @@ -30,4 +29,9 @@ public interface SysUserFeign { @PostMapping(value = "/selectPrivilegeLevelPath") ResultBean selectPrivilegeLevelPath(@RequestBody PrivilegeQuery query); + @ApiOperation(value = "根据部门sid和角色名查询用户") + @PostMapping(value = "/selectByDeptSidAndRoleName") + ResultBean> selectByDeptSidAndRoleName(@RequestParam("deptSid") String deptSid, + @RequestParam("roleNames") List roleNames); + }