fangq 4 anni fa
parent
commit
0f69ca74e6
21 ha cambiato i file con 236 aggiunte e 66 eliminazioni
  1. 2 0
      src/main/java/org/springblade/Application.java
  2. 13 0
      src/main/java/org/springblade/bank/cardswallow/controller/CardSwallowController.java
  3. 20 2
      src/main/java/org/springblade/bank/checklist/mapper/ChecklistMapper.xml
  4. 9 0
      src/main/java/org/springblade/bank/checklist/service/impl/ChecklistServiceImpl.java
  5. 28 0
      src/main/java/org/springblade/bank/home/controller/HomeController.java
  6. 27 11
      src/main/java/org/springblade/bank/keypwd/controller/KeyPwdController.java
  7. 3 2
      src/main/java/org/springblade/bank/keypwd/mapper/KeyPwdMapper.xml
  8. 1 1
      src/main/java/org/springblade/bank/keypwd/service/impl/KeyPwdServiceImpl.java
  9. 10 3
      src/main/java/org/springblade/bank/message/mapper/MessageMapper.xml
  10. 13 0
      src/main/java/org/springblade/bank/returns/controller/ReturnsController.java
  11. 2 2
      src/main/java/org/springblade/bank/returns/mapper/ReturnsMapper.java
  12. 3 3
      src/main/java/org/springblade/bank/returns/mapper/ReturnsMapper.xml
  13. 12 0
      src/main/java/org/springblade/bank/sealhandover/controller/SealHandoverController.java
  14. 2 1
      src/main/java/org/springblade/bank/sealhandover/service/impl/SealHandoverServiceImpl.java
  15. 1 0
      src/main/java/org/springblade/bank/userlog/controller/UserLogController.java
  16. 14 13
      src/main/java/org/springblade/common/utils/hangxin/HangxinUtil.java
  17. 6 1
      src/main/java/org/springblade/modules/desk/controller/NoticeController.java
  18. 3 3
      src/main/java/org/springblade/modules/desk/entity/Notice.java
  19. 18 24
      src/main/java/org/springblade/modules/desk/service/impl/NoticeServiceImpl.java
  20. 16 0
      src/main/java/org/springblade/modules/publishevent/event/HangxinNoticeEvent.java
  21. 33 0
      src/main/java/org/springblade/modules/publishevent/listener/NoticeListener.java

+ 2 - 0
src/main/java/org/springblade/Application.java

@@ -19,6 +19,7 @@ package org.springblade;
 import org.springblade.common.constant.CommonConstant;
 import org.springblade.core.launch.BladeApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.scheduling.annotation.EnableAsync;
 import org.springframework.scheduling.annotation.EnableScheduling;
 
 /**
@@ -28,6 +29,7 @@ import org.springframework.scheduling.annotation.EnableScheduling;
  */
 @EnableScheduling
 @SpringBootApplication
+@EnableAsync
 public class Application {
 
 	public static void main(String[] args) {

+ 13 - 0
src/main/java/org/springblade/bank/cardswallow/controller/CardSwallowController.java

@@ -404,6 +404,9 @@ public class CardSwallowController extends BladeController {
 		cardSwallow.setBankConfirmTime(DateUtil.now());
 		cardSwallow.setBankConfirmNo(user.getEhr());
 		cardSwallow.setBankConfirmName(user.getName());
+		cardSwallow.setPersonId(user.getId()+"");
+		cardSwallow.setPersonNo(user.getEhr());
+		cardSwallow.setPersonName(user.getName());
 
 		if (cardSwallowService.saveOrUpdate(cardSwallow)){
 			//記錄日誌
@@ -429,6 +432,16 @@ public class CardSwallowController extends BladeController {
 		cardSwallow.setCurrentuserId(AuthUtil.getUser().getUserId());
 		cardSwallow.setIsEquipmentTeam("equipmentTeam".equals(AuthUtil.getUserRole()));
 
+		Long deptId = Long.valueOf(AuthUtil.getDeptId());
+		List<Long> deptChildIds = deptService.getDeptChildIds(deptId);
+//		deptChildIds.add(deptId);
+		Dept dept = deptService.getById(deptId);
+		Dept parentDept = deptService.getById(dept.getParentId());
+		if (parentDept.getOrgNo().startsWith("999")){
+			deptChildIds.add(parentDept.getId());
+		}
+		cardSwallow.setDeptIdList(deptChildIds);
+
 		if (StringUtils.isNotBlank(cardSwallow.getOrgNostr())){
 			List<String> orgNos = Func.toStrList(cardSwallow.getOrgNostr());
 			cardSwallow.setOrgNos(orgNos);

+ 20 - 2
src/main/java/org/springblade/bank/checklist/mapper/ChecklistMapper.xml

@@ -75,13 +75,22 @@
     </select>
 
     <select id="getOverList" resultMap="checklistResultMap">
-        SELECT * FROM `zh_record_checklist` where is_deleted = 0 and date_format(filling_date,'%Y-%m-%d') > date_format(check_date,'%Y-%m-%d')
+        SELECT * FROM `zh_record_checklist` where is_deleted = 0 and 1=1
         <if test="checks!=null">
             <if test="checks.orgNo!=null">
                 AND org_no = '${checks.orgNo}'
             </if>
             <if test="checks.cycle!=null">
                 AND cycle = '${checks.cycle}'
+                <if test="checks.cycle=='day'">
+                    and date_format(filling_date,'%Y-%m-%d') > date_format(check_date,'%Y-%m-%d')
+                </if>
+                <if test="checks.cycle=='week'">
+                    and date_format(filling_date,'%Y-%m-%d') > '${checks.date_end}'
+                </if>
+                <if test="checks.cycle=='month'">
+                    and date_format(filling_date,'%Y-%m-%d') > '${checks.date_end}'
+                </if>
             </if>
             <if test="checks.date_begin!=null and checks.date_end!=null">
                 and check_date BETWEEN '${checks.date_begin}' and '${checks.date_end}'
@@ -96,7 +105,7 @@
     </select>
 
     <select id="getDataList" resultMap="checklistResultMap">
-        select * from zh_record_checklist where is_deleted = 0 and date_format(filling_date,'%Y-%m-%d') <![CDATA[ <= ]]> date_format(check_date,'%Y-%m-%d')
+        select * from zh_record_checklist where is_deleted = 0  and 2=2
         <if test="checks!=null">
             <if test="checks.orgNo!=null">
                 AND org_no = '${checks.orgNo}'
@@ -106,6 +115,15 @@
             </if>
             <if test="checks.cycle!=null">
                 AND cycle = '${checks.cycle}'
+                <if test="checks.cycle=='day'">
+                    and date_format(filling_date,'%Y-%m-%d') <![CDATA[ <= ]]> date_format(check_date,'%Y-%m-%d')
+                </if>
+                <if test="checks.cycle=='week'">
+                    and filling_date BETWEEN '${checks.date_begin}' and '${checks.date_end}'
+                </if>
+                <if test="checks.cycle=='month'">
+                    and filling_date BETWEEN '${checks.date_begin}' and '${checks.date_end}'
+                </if>
             </if>
             <if test="checks.date_begin!=null and checks.date_end!=null">
                 and check_date BETWEEN '${checks.date_begin}' and '${checks.date_end}'

+ 9 - 0
src/main/java/org/springblade/bank/checklist/service/impl/ChecklistServiceImpl.java

@@ -66,11 +66,20 @@ public class ChecklistServiceImpl extends BaseServiceImpl<ChecklistMapper, Check
 
 	@Override
 	public List<ChecklistVO> getDataList(ChecklistVO checks) {
+		String time = " 23:59:59";
+		if (!checks.getDate_end().contains(time)){
+			checks.setDate_end(checks.getDate_end() + time);
+		}
+
 		return baseMapper.getDataList(checks);
 	}
 
 	@Override
 	public List<ChecklistVO> getOverList(ChecklistVO checks) {
+		String time = " 23:59:59";
+		if (!checks.getDate_end().contains(time)){
+			checks.setDate_end(checks.getDate_end() + time);
+		}
 		return baseMapper.getOverList(checks);
 	}
 

+ 28 - 0
src/main/java/org/springblade/bank/home/controller/HomeController.java

@@ -182,6 +182,11 @@ public class HomeController extends BladeController {
 	public R toBeConfirmed() {
 		int count = 0;
 
+		//網點鑰匙密碼實物交接登記表
+		boolean keypwd = roleMenuService.checkMenuByMenuCodeAndRoles("keypwd", menuService);
+		//業務印章交接登記表
+		boolean sealhandover = roleMenuService.checkMenuByMenuCodeAndRoles("sealhandover", menuService);
+
 		//網點出納主管及專管員崗位表更記錄表
 		boolean postchange = roleMenuService.checkMenuByMenuCodeAndRoles("postchange", menuService);
 		//使用及出入庫登記表
@@ -191,6 +196,15 @@ public class HomeController extends BladeController {
 		//自助設備吞卡資料
 		boolean cardswallow = roleMenuService.checkMenuByMenuCodeAndRoles("cardswallow", menuService);
 
+		if (keypwd){
+			List<KeyPwd> list = keyPwdService.list(new QueryWrapper<>(new KeyPwd()).lambda().eq(KeyPwd::getProcess, 2).eq(KeyPwd::getReceiverId, AuthUtil.getUserId()).eq(KeyPwd::getStatus, 1));
+			count += list.size();
+		}
+		if (sealhandover){
+			List<SealHandover> list = sealHandoverService.list(new QueryWrapper<>(new SealHandover()).lambda().eq(SealHandover::getProcess, 2).eq(SealHandover::getReceiverId, AuthUtil.getUserId()).eq(SealHandover::getStatus, 1));
+			count += list.size();
+		}
+
 		if (postchange){
 			List<PostChange> postChangeList = postChangeService.list(new QueryWrapper<>(new PostChange()).lambda().eq(PostChange::getProcess, 2).eq(PostChange::getPersonId, AuthUtil.getUserId()));
 			count += postChangeList.size();
@@ -220,6 +234,11 @@ public class HomeController extends BladeController {
 	public R myConfirmation() {
 		int count = 0;
 
+		//網點鑰匙密碼實物交接登記表
+		boolean keypwd = roleMenuService.checkMenuByMenuCodeAndRoles("keypwd", menuService);
+		//業務印章交接登記表
+		boolean sealhandover = roleMenuService.checkMenuByMenuCodeAndRoles("sealhandover", menuService);
+
 		//網點出納主管及專管員崗位表更記錄表
 		boolean postchange = roleMenuService.checkMenuByMenuCodeAndRoles("postchange", menuService);
 		//使用及出入庫登記表
@@ -229,6 +248,15 @@ public class HomeController extends BladeController {
 		//自助設備吞卡資料
 		boolean cardswallow = roleMenuService.checkMenuByMenuCodeAndRoles("cardswallow", menuService);
 
+		if (keypwd){
+			List<KeyPwd> list = keyPwdService.list(new QueryWrapper<>(new KeyPwd()).lambda().eq(KeyPwd::getProcess, 3).eq(KeyPwd::getReceiverId, AuthUtil.getUserId()).eq(KeyPwd::getStatus, 1));
+			count += list.size();
+		}
+		if (sealhandover){
+			List<SealHandover> list = sealHandoverService.list(new QueryWrapper<>(new SealHandover()).lambda().eq(SealHandover::getProcess, 3).eq(SealHandover::getReceiverId, AuthUtil.getUserId()).eq(SealHandover::getStatus, 1));
+			count += list.size();
+		}
+
 		if (postchange){
 			List<PostChange> postChangeList = postChangeService.list(new QueryWrapper<>(new PostChange()).lambda().eq(PostChange::getProcess, 3).eq(PostChange::getPersonId, AuthUtil.getUserId()));
 			count += postChangeList.size();

+ 27 - 11
src/main/java/org/springblade/bank/keypwd/controller/KeyPwdController.java

@@ -17,11 +17,9 @@
 package org.springblade.bank.keypwd.controller;
 
 import cn.hutool.json.JSONUtil;
-import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -44,7 +42,6 @@ import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.core.tool.utils.DateUtil;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.StringUtil;
-import org.springblade.modules.desk.entity.Notice;
 import org.springblade.modules.desk.service.INoticeService;
 import org.springblade.modules.system.entity.Dept;
 import org.springblade.modules.system.entity.User;
@@ -55,7 +52,8 @@ import org.springframework.util.Assert;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.List;
 import java.util.stream.Collectors;
 
 /**
@@ -77,6 +75,10 @@ public class KeyPwdController extends BladeController {
 	private final IDictService dictService;
 	private final INoticeService noticeService;
 
+
+//	@Autowired
+//	private ApplicationContext applicationContext;
+
 	/**
 	 * 详情
 	 */
@@ -118,10 +120,10 @@ public class KeyPwdController extends BladeController {
 		keyPwd.setDeptIdList(deptChildIds);
 		keyPwd.setCurrentuserId(AuthUtil.getUserId());
 
-		if (StringUtils.isNotBlank(keyPwd.getCategory())){
+		/*if (StringUtils.isNotBlank(keyPwd.getCategory())){
 			List<String> categorys = Func.toStrList(keyPwd.getCategory());
 			keyPwd.setCategorys(categorys);
-		}
+		}*/
 		if (StringUtils.isNotBlank(keyPwd.getOrgNostr())){
 			List<String> orgNos = Func.toStrList(keyPwd.getOrgNostr());
 			keyPwd.setOrgNos(orgNos);
@@ -149,10 +151,10 @@ public class KeyPwdController extends BladeController {
 		keyPwd.setDeptIdList(deptChildIds);
 		keyPwd.setCurrentuserId(AuthUtil.getUserId());
 
-		if (StringUtils.isNotBlank(keyPwd.getCategory())){
+		/*if (StringUtils.isNotBlank(keyPwd.getCategory())){
 			List<String> categorys = Func.toStrList(keyPwd.getCategory());
 			keyPwd.setCategorys(categorys);
-		}
+		}*/
 		if (StringUtils.isNotBlank(keyPwd.getOrgNostr())){
 			List<String> orgNos = Func.toStrList(keyPwd.getOrgNostr());
 			keyPwd.setOrgNos(orgNos);
@@ -300,6 +302,10 @@ public class KeyPwdController extends BladeController {
 				userLog.setOldData(JSONUtil.toJsonStr(old));
 				//發送通知 - 編輯
 				noticeService.sendKeyPwdNotice(keyPwd, true, false);
+				/*Notice notice = new Notice();
+				notice.setTitle("test");
+				HangxinNoticeEvent hangxinNoticeEvent = new HangxinNoticeEvent(notice);
+				eventPublisher.publishEvent(hangxinNoticeEvent);*/
 			}
 			userLogService.save(userLog);
 		}
@@ -376,16 +382,26 @@ public class KeyPwdController extends BladeController {
 
 	@GetMapping("/getList")
 	public R getList(KeyPwdVO keyPwd){
+		Long deptId = Long.valueOf(AuthUtil.getDeptId());
+		List<Long> deptChildIds = deptService.getDeptChildIds(deptId);
+//		deptChildIds.add(deptId);
+		Dept dept = deptService.getById(deptId);
+		Dept parentDept = deptService.getById(dept.getParentId());
+		if (parentDept.getOrgNo().startsWith("999")){
+			deptChildIds.add(parentDept.getId());
+		}
+		keyPwd.setDeptIdList(deptChildIds);
+		keyPwd.setCurrentuserId(AuthUtil.getUserId());
 
-		if (StringUtils.isNotBlank(keyPwd.getCategory())){
+		/*if (StringUtils.isNotBlank(keyPwd.getCategory())){
 			List<String> categorys = Func.toStrList(keyPwd.getCategory());
 			keyPwd.setCategorys(categorys);
-		}
+		}*/
 		if (StringUtils.isNotBlank(keyPwd.getOrgNostr())){
 			List<String> orgNos = Func.toStrList(keyPwd.getOrgNostr());
 			keyPwd.setOrgNos(orgNos);
 		}
-
+		keyPwd.setStatus(1);
 		List<KeyPwd> list = keyPwdService.getList(keyPwd);
 
 		list.forEach(item -> {

+ 3 - 2
src/main/java/org/springblade/bank/keypwd/mapper/KeyPwdMapper.xml

@@ -77,10 +77,11 @@
                 AND c.process = '${keyPwd.process}'
             </if>
             <if test="keyPwd.category!=null">
-                AND c.category in
+                AND c.category like '%${keyPwd.category}%'
+               <!-- AND c.category in
                 <foreach item="category" collection="keyPwd.categorys" separator="," open="(" close=")" index="">
                     #{category}
-                </foreach>
+                </foreach>-->
             </if>
             <if test="keyPwd.orgNos!=null">
                 AND c.org_no in

+ 1 - 1
src/main/java/org/springblade/bank/keypwd/service/impl/KeyPwdServiceImpl.java

@@ -65,7 +65,7 @@ public class KeyPwdServiceImpl extends BaseServiceImpl<KeyPwdMapper, KeyPwd> imp
 
 	@Override
 	public List<KeyPwd> getMyInitialted() {
-		List<KeyPwd> list = this.list(new QueryWrapper<>(new KeyPwd()).lambda().eq(KeyPwd::getCreateUser, AuthUtil.getUser().getUserId()));
+		List<KeyPwd> list = this.list(new QueryWrapper<>(new KeyPwd()).lambda().eq(KeyPwd::getCreateUser, AuthUtil.getUser().getUserId()).eq(KeyPwd::getStatus, 1));
 		return list;
 	}
 

+ 10 - 3
src/main/java/org/springblade/bank/message/mapper/MessageMapper.xml

@@ -36,13 +36,20 @@
 
 
     <select id="selectMessagePage" resultMap="messageResultMap">
-        select * from zh_message where is_deleted = 0 and create_user = #{message.createUser}
+        SELECT c.* FROM
+        (select * from zh_message where is_deleted = 0 and create_user = #{message.createUser}
+
+        UNION
+        select * from zh_message where is_deleted = 0
+        AND target_ids like '%${message.currentUserId}%'
+        ) c
+        where  1=1
         <if test="message!=null">
             <if test="message.title!=null">
-                AND title like '${message.title}'
+                AND c.title like '${message.title}'
             </if>
         </if>
-        ORDER BY create_time DESC
+        ORDER BY c.create_time DESC
 
     </select>
 

+ 13 - 0
src/main/java/org/springblade/bank/returns/controller/ReturnsController.java

@@ -402,6 +402,9 @@ public class ReturnsController extends BladeController {
 		returns.setIsCompleted(1);
 		returns.setBankConfirmName(user.getName());
 		returns.setBankConfirmNo(user.getEhr());
+		returns.setPersonId(user.getId()+"");
+		returns.setPersonNo(user.getEhr());
+		returns.setPersonName(user.getName());
 		returns.setBankConfirmTime(DateUtil.now());
 
 		if (returnsService.updateById(returns)){
@@ -457,7 +460,17 @@ public class ReturnsController extends BladeController {
 	@ApiOperationSupport(order = 3)
 	@ApiOperation(value = "分页", notes = "传入returns")
 	public R getList(ReturnsVO returns) {
+		Long deptId = Long.valueOf(AuthUtil.getDeptId());
+		List<Long> deptChildIds = deptService.getDeptChildIds(deptId);
+//		deptChildIds.add(deptId);
+		Dept dept = deptService.getById(deptId);
+		Dept parentDept = deptService.getById(dept.getParentId());
+		if (parentDept.getOrgNo().startsWith("999")){
+			deptChildIds.add(parentDept.getId());
+		}
+		returns.setDeptIdList(deptChildIds);
 		returns.setCurrentuserId(AuthUtil.getUser().getUserId());
+
 		if (StringUtils.isNotBlank(returns.getOrgNostr())){
 			List<String> orgNos = Func.toStrList(returns.getOrgNostr());
 			returns.setOrgNos(orgNos);

+ 2 - 2
src/main/java/org/springblade/bank/returns/mapper/ReturnsMapper.java

@@ -41,9 +41,9 @@ public interface ReturnsMapper extends BaseMapper<Returns> {
 	 * @param returns
 	 * @return
 	 */
-	@DataAuth(type = DataScopeEnum.OWN_DEPT_CHILD)
+//	@DataAuth(type = DataScopeEnum.OWN_DEPT_CHILD)
 	List<ReturnsVO> selectReturnsPage(IPage page, ReturnsVO returns);
 
-	@DataAuth(type = DataScopeEnum.OWN_DEPT_CHILD)
+//	@DataAuth(type = DataScopeEnum.OWN_DEPT_CHILD)
     List<Returns> selectReturnsPage(@Param("returns") ReturnsVO returns);
 }

+ 3 - 3
src/main/java/org/springblade/bank/returns/mapper/ReturnsMapper.xml

@@ -61,13 +61,13 @@
                 AND c.create_user like '%${returns.createUser}%'
             </if>
             <if test="returns.personId!=null">
-                AND c.person_id like '%${returns.personId}%'
+                AND c.person_id = '${returns.personId}'
             </if>
             <if test="returns.process!=null">
-                AND c.process like '%${returns.process}%'
+                AND c.process = '${returns.process}'
             </if>
             <if test="returns.isPublic!=null">
-                AND c.is_public like '%${returns.isPublic}%'
+                AND c.is_public = '${returns.isPublic}'
             </if>
             <if test="returns.bankNo!=null">
                 AND c.bank_no = '${returns.bankNo}'

+ 12 - 0
src/main/java/org/springblade/bank/sealhandover/controller/SealHandoverController.java

@@ -202,6 +202,18 @@ public class SealHandoverController extends BladeController {
 	@ApiOperationSupport(order = 3)
 	@ApiOperation(value = "分页", notes = "传入sealHandover")
 	public R getList(SealHandoverVO sealHandover) {
+		Long deptId = Long.valueOf(AuthUtil.getDeptId());
+		List<Long> deptChildIds = deptService.getDeptChildIds(deptId);
+//		deptChildIds.add(deptId);
+		Dept dept = deptService.getById(deptId);
+		Dept parentDept = deptService.getById(dept.getParentId());
+		if (parentDept.getOrgNo().startsWith("999")){
+			deptChildIds.add(parentDept.getId());
+		}
+
+		sealHandover.setDeptIdList(deptChildIds);
+		sealHandover.setCurrentuserId(AuthUtil.getUserId());
+
 		if (StringUtils.isNotBlank(sealHandover.getSealType())){
 			List<String> sealTypes = Func.toStrList(sealHandover.getSealType());
 			sealHandover.setSealTypes(sealTypes);

+ 2 - 1
src/main/java/org/springblade/bank/sealhandover/service/impl/SealHandoverServiceImpl.java

@@ -49,7 +49,7 @@ public class SealHandoverServiceImpl extends BaseServiceImpl<SealHandoverMapper,
 
 	@Override
 	public List<SealHandover> getMyInitialted() {
-		List<SealHandover> list = this.list(new QueryWrapper<>(new SealHandover()).lambda().eq(SealHandover::getCreateUser, AuthUtil.getUser().getUserId()));
+		List<SealHandover> list = this.list(new QueryWrapper<>(new SealHandover()).lambda().eq(SealHandover::getCreateUser, AuthUtil.getUser().getUserId()).eq(SealHandover::getStatus, 1));
 		return list;
 	}
 
@@ -75,6 +75,7 @@ public class SealHandoverServiceImpl extends BaseServiceImpl<SealHandoverMapper,
 
 	@Override
 	public List<SealHandoverVO> getList(SealHandoverVO sealHandover) {
+		sealHandover.setStatus(1);
 		return baseMapper.selectSealHandoverPage(sealHandover);
 	}
 

+ 1 - 0
src/main/java/org/springblade/bank/userlog/controller/UserLogController.java

@@ -82,6 +82,7 @@ public class UserLogController extends BladeController {
 	@ApiOperationSupport(order = 3)
 	@ApiOperation(value = "分页", notes = "传入userLog")
 	public R<IPage<UserLogVO>> page(UserLogVO userLog, Query query) {
+		userLog.setCreateTime_end(userLog.getCreateTime_end() + " 23:59:59");
 		IPage<UserLogVO> pages = userLogService.selectUserLogPage(Condition.getPage(query), userLog);
 		return R.data(pages);
 	}

+ 14 - 13
src/main/java/org/springblade/common/utils/hangxin/HangxinUtil.java

@@ -28,30 +28,31 @@ public class HangxinUtil {
 	private HangxinConfig hangxinConfig;
 
 
-	public HangxinResultBean sendMsg (List<String> userEhrs, String title, String content){
+	public HangxinResultBean sendMsg (String userEhrs, String title, String content){
 		RestTemplate restTemplate = new RestTemplate();
 		String url = hangxinConfig.getUrl() + HangxinConstants.SEND_MSG;
 		HttpHeaders headers = createHttpHeaders();
 
 		Map<String, Object> params = new HashMap<>();
-		params.put("touser", StringUtil.join(userEhrs, "|"));
+		params.put("touser", userEhrs);
 		params.put("sysid", hangxinConfig.getSysid() + "|text");
 		params.put("title", title);
 		params.put("content", content);
 
-		HttpEntity<String> requestEntity = new HttpEntity<>(JSONUtil.toJsonStr(params), headers);
-		URI uri = URI.create(url);
-		ParameterizedTypeReference<HangxinResultBean> reference = new ParameterizedTypeReference<HangxinResultBean>() {};
-		ResponseEntity<HangxinResultBean> response = restTemplate.exchange(uri, HttpMethod.POST, requestEntity, reference);
-
-		return response.getBody();
+		HangxinResultBean body = null;
+		try{
+			HttpEntity<String> requestEntity = new HttpEntity<>(JSONUtil.toJsonStr(params), headers);
+			URI uri = URI.create(url);
+			ParameterizedTypeReference<HangxinResultBean> reference = new ParameterizedTypeReference<HangxinResultBean>() {};
+			ResponseEntity<HangxinResultBean> response = restTemplate.exchange(uri, HttpMethod.POST, requestEntity, reference);
+			body = response.getBody();
+		}catch (Exception e){
+			e.printStackTrace();
+		}
+
+		return body;
 	}
 
-
-
-
-
-
 	private HttpHeaders createHttpHeaders(){
 		HttpHeaders httpHeaders = new HttpHeaders();
 		httpHeaders.add(HttpHeaders.CONTENT_TYPE, "application/json");

+ 6 - 1
src/main/java/org/springblade/modules/desk/controller/NoticeController.java

@@ -42,8 +42,12 @@ import org.springblade.modules.desk.entity.Notice;
 import org.springblade.modules.desk.service.INoticeService;
 import org.springblade.modules.desk.vo.NoticeVO;
 import org.springblade.modules.desk.wrapper.NoticeWrapper;
+import org.springblade.modules.publishevent.event.HangxinNoticeEvent;
 import org.springblade.modules.system.entity.User;
 import org.springblade.modules.system.service.IUserService;
+import org.springframework.context.event.EventListener;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Component;
 import org.springframework.web.bind.annotation.*;
 import springfox.documentation.annotations.ApiIgnore;
 
@@ -63,6 +67,7 @@ import java.util.stream.Collectors;
 @RequestMapping(AppConstant.APPLICATION_DESK_NAME + "/notice")
 @AllArgsConstructor
 @ApiSort(2)
+@Component
 @Api(value = "用户博客", tags = "博客接口")
 public class NoticeController extends BladeController {
 
@@ -274,7 +279,7 @@ public class NoticeController extends BladeController {
 	public R testNotice(@ApiParam(value = "主键集合") @RequestParam String mocode) {
 		List<String> ehrList = Func.toStrList(mocode);
 		String title = "test-有關 (副本認證章13) 的交接登記已於2021-10-22完成;交出人:張三;接收人:李4 業務印章交接登記表";
-		HangxinResultBean hangxinResultBean = hangxinUtil.sendMsg(ehrList, "提示進度", title);
+		HangxinResultBean hangxinResultBean = hangxinUtil.sendMsg(StringUtil.join(ehrList, "|"), "提示進度", title);
 		return R.data(hangxinResultBean);
 	}
 

+ 3 - 3
src/main/java/org/springblade/modules/desk/entity/Notice.java

@@ -99,11 +99,11 @@ public class Notice extends TenantEntity {
 	@ApiModelProperty(value = "查閱人員id")
 	private String targetIds;
 
-/*	*//**
+	/**
 	 * 查閱人員EHR號(行信根據這個條件推送消息)
-	 *//*
+	 */
 	@ApiModelProperty(value = "查閱人員EHR號")
-	private List<String> targetEhrs;*/
+	private String targetEhrs;
 
 	/**
 	 * 已讀人員id

+ 18 - 24
src/main/java/org/springblade/modules/desk/service/impl/NoticeServiceImpl.java

@@ -16,11 +16,9 @@
  */
 package org.springblade.modules.desk.service.impl;
 
-import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import lombok.AllArgsConstructor;
 import org.springblade.bank.cardswallow.entity.CardSwallow;
-import org.springblade.bank.checklist.vo.ChecklistVO;
 import org.springblade.bank.goodsuse.entity.GoodsUse;
 import org.springblade.bank.keypwd.entity.KeyPwd;
 import org.springblade.bank.message.entity.Message;
@@ -28,9 +26,6 @@ import org.springblade.bank.postchange.entity.PostChange;
 import org.springblade.bank.returns.entity.Returns;
 import org.springblade.bank.sealhandover.entity.SealHandover;
 import org.springblade.common.utils.hangxin.HangxinUtil;
-import org.springblade.common.utils.hangxin.bean.HangxinResultBean;
-import org.springblade.core.datascope.annotation.DataAuth;
-import org.springblade.core.datascope.enums.DataScopeEnum;
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.utils.DateUtil;
@@ -40,6 +35,7 @@ import org.springblade.modules.desk.entity.Notice;
 import org.springblade.modules.desk.mapper.NoticeMapper;
 import org.springblade.modules.desk.service.INoticeService;
 import org.springblade.modules.desk.vo.NoticeVO;
+import org.springblade.modules.publishevent.event.HangxinNoticeEvent;
 import org.springblade.modules.system.entity.Dept;
 import org.springblade.modules.system.entity.Role;
 import org.springblade.modules.system.entity.User;
@@ -47,7 +43,7 @@ import org.springblade.modules.system.service.IDeptService;
 import org.springblade.modules.system.service.IDictService;
 import org.springblade.modules.system.service.IRoleService;
 import org.springblade.modules.system.service.IUserService;
-import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.ApplicationEventPublisher;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
@@ -68,6 +64,8 @@ public class NoticeServiceImpl extends BaseServiceImpl<NoticeMapper, Notice> imp
 	private final IDeptService deptService;
 	private final IRoleService roleService;
 
+	private final ApplicationEventPublisher eventPublisher;
+
 	private HangxinUtil hangxinUtil;
 
 	@Override
@@ -103,7 +101,7 @@ public class NoticeServiceImpl extends BaseServiceImpl<NoticeMapper, Notice> imp
 			String join = StringUtil.join(userIdList);
 			notice.setTargetIds(join);
 		}
-		/*if (notice.getTargetEhrs() == null){
+		if (notice.getTargetEhrs() == null){
 			String[] split = notice.getTargetIds().split(",");
 			List<String> userEhrList = new ArrayList<>();
 			for (int i = 0; i < split.length; i++) {
@@ -111,13 +109,12 @@ public class NoticeServiceImpl extends BaseServiceImpl<NoticeMapper, Notice> imp
 				User user = userService.getById(userIdStr);
 				userEhrList.add(user.getEhr());
 			}
-			notice.setTargetEhrs(userEhrList);
-		}*/
-
-		/*// 發送行信通知
-		HangxinResultBean hangxinResultBean = hangxinUtil.sendMsg(notice.getTargetEhrs(), "提示進度", notice.getTitle());
-		System.out.println(JSONUtil.toJsonStr(hangxinResultBean));*/
+			notice.setTargetEhrs(StringUtil.join(userEhrList, "|"));
+		}
 
+		// 發送行信通知
+		HangxinNoticeEvent hangxinNoticeEvent = new HangxinNoticeEvent(notice);
+		eventPublisher.publishEvent(hangxinNoticeEvent);
 		return save(notice);
 	}
 
@@ -156,7 +153,8 @@ public class NoticeServiceImpl extends BaseServiceImpl<NoticeMapper, Notice> imp
 		notice.setTitle(title);
 		notice.setBusinessType("keypwd");
 		notice.setTargetIds(StringUtil.join(targetList));
-//		notice.setTargetEhrs(userEhrtList);
+		notice.setTargetEhrs(StringUtil.join(userEhrtList, "|"));
+
 		return sendNotice(notice);
 	}
 
@@ -207,6 +205,7 @@ public class NoticeServiceImpl extends BaseServiceImpl<NoticeMapper, Notice> imp
 		notice.setDeptId(message.getDeptId());
 		notice.setRoleId(message.getRoleId());
 		notice.setTargetIds(message.getTargetIds());
+		notice.setContent("標題:" + message.getTitle() + ";內文:" + message.getContent());
 
 		String[] split = message.getTargetIds().split(",");
 		List<String> userEhrList = new ArrayList<>();
@@ -215,7 +214,7 @@ public class NoticeServiceImpl extends BaseServiceImpl<NoticeMapper, Notice> imp
 			User user = userService.getById(userIdStr);
 			userEhrList.add(user.getEhr());
 		}
-//		notice.setTargetEhrs(userEhrList);
+		notice.setTargetEhrs(StringUtil.join(userEhrList, "|"));
 
 		return sendNotice(notice);
 	}
@@ -251,7 +250,7 @@ public class NoticeServiceImpl extends BaseServiceImpl<NoticeMapper, Notice> imp
 		notice.setTitle(title);
 		notice.setBusinessType("sealhandover");
 		notice.setTargetIds(StringUtil.join(userList));
-//		notice.setTargetEhrs(userEhrList);
+		notice.setTargetEhrs(StringUtil.join(userEhrList, "|"));
 		return sendNotice(notice);
 	}
 
@@ -271,7 +270,7 @@ public class NoticeServiceImpl extends BaseServiceImpl<NoticeMapper, Notice> imp
 		User user = userService.getById(postChange.getPersonId());
 		List<String> userEhrList = new ArrayList<>();
 		userEhrList.add(user.getEhr());
-//		notice.setTargetEhrs(userEhrList);
+		notice.setTargetEhrs(StringUtil.join(userEhrList, "|"));
 		return sendNotice(notice);
 	}
 
@@ -291,7 +290,7 @@ public class NoticeServiceImpl extends BaseServiceImpl<NoticeMapper, Notice> imp
 		User user = userService.getById(goodsUse.getPersonId());
 		List<String> userEhrList = new ArrayList<>();
 		userEhrList.add(user.getEhr());
-//		notice.setTargetEhrs(userEhrList);
+		notice.setTargetEhrs(StringUtil.join(userEhrList, "|"));
 		return sendNotice(notice);
 	}
 
@@ -327,13 +326,8 @@ public class NoticeServiceImpl extends BaseServiceImpl<NoticeMapper, Notice> imp
 		notice.setDeptId(dept.getId() + "");
 		notice.setRoleId(StringUtil.join(roleIds));
 		notice.setTargetIds(StringUtil.join(userIds));
-//		notice.setTargetEhrs(userEhrs);
-
-		/*// 發送行信通知
-		HangxinResultBean hangxinResultBean = hangxinUtil.sendMsg(userEhrs, "提示進度", title);
-		System.out.println(JSONUtil.toJsonStr(hangxinResultBean));*/
+		notice.setTargetEhrs(StringUtil.join(userEhrs,"|"));
 		return sendNotice(notice);
-//		return true;
 	}
 
 	private String getCategoryName(KeyPwd keyPwd){

+ 16 - 0
src/main/java/org/springblade/modules/publishevent/event/HangxinNoticeEvent.java

@@ -0,0 +1,16 @@
+package org.springblade.modules.publishevent.event;
+
+import lombok.Getter;
+import org.springblade.modules.desk.entity.Notice;
+import org.springframework.context.ApplicationEvent;
+
+@Getter
+public class HangxinNoticeEvent extends ApplicationEvent {
+
+	private Notice notice;
+
+    public HangxinNoticeEvent( Notice notice) {
+		super(notice);
+		this.notice = notice;
+    }
+}

+ 33 - 0
src/main/java/org/springblade/modules/publishevent/listener/NoticeListener.java

@@ -0,0 +1,33 @@
+package org.springblade.modules.publishevent.listener;
+
+import cn.hutool.json.JSONUtil;
+import lombok.AllArgsConstructor;
+import org.springblade.common.utils.hangxin.HangxinUtil;
+import org.springblade.common.utils.hangxin.bean.HangxinResultBean;
+import org.springblade.modules.desk.entity.Notice;
+import org.springblade.modules.publishevent.event.HangxinNoticeEvent;
+import org.springframework.context.ApplicationListener;
+import org.springframework.context.event.EventListener;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Component;
+
+@Component
+@AllArgsConstructor
+public class NoticeListener implements ApplicationListener<HangxinNoticeEvent> {
+
+	private HangxinUtil hangxinUtil;
+
+	/*@EventListener
+	@Async
+	public void testNotice(HangxinNoticeEvent noticeEvent){
+		Notice notice = noticeEvent.getNotice();
+	}*/
+
+	@Override
+	@EventListener
+	@Async
+	public void onApplicationEvent(HangxinNoticeEvent noticeEvent) {
+		Notice notice = noticeEvent.getNotice();
+		HangxinResultBean hangxinResultBean = hangxinUtil.sendMsg(notice.getTargetEhrs(), "提示進度", notice.getTitle());
+	}
+}