11
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
package io.v.nutz.base.event.user;
|
||||
|
||||
import io.v.nutz.base.event.user.SysCommonDataChangeType;
|
||||
|
||||
public interface SysCommonDataChange {
|
||||
|
||||
|
||||
/**
|
||||
* 系统通用数据变更
|
||||
*
|
||||
* @param changeType 变更类型
|
||||
* @param tClass 数据类型 例如user、unit...............
|
||||
* @param bizId 业务ID
|
||||
*/
|
||||
void exec(SysCommonDataChangeType changeType, Class<?> tClass, String bizId);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package io.v.nutz.base.event.user;
|
||||
|
||||
import io.v.nutz.base.event.user.SysCommonDataChange;
|
||||
import io.v.nutz.base.event.user.SysCommonDataChangeType;
|
||||
import org.nutz.mvc.Mvcs;
|
||||
|
||||
/**
|
||||
* @author zhf
|
||||
* @date 2025/8/14 17:23
|
||||
* @description
|
||||
*/
|
||||
public class SysCommonDataChangeCenter {
|
||||
|
||||
public static void publish(SysCommonDataChangeType changeType, Class<?> tClass, String bizId){
|
||||
String[] names = Mvcs.getIoc().getNamesByType(SysCommonDataChange.class);
|
||||
for (String listener : names) {
|
||||
SysCommonDataChange listenerBean = Mvcs.getIoc().get(SysCommonDataChange.class, listener);
|
||||
listenerBean.exec(changeType, tClass, bizId);
|
||||
// 是否在事务中
|
||||
// boolean transactionNone = Trans.isTransactionNone();
|
||||
// if(transactionNone){
|
||||
//
|
||||
// }else{
|
||||
// ThreadUtil.execAsync(() ->);
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package io.v.nutz.base.event.user;
|
||||
|
||||
/**
|
||||
* 数据变更类型
|
||||
*/
|
||||
public enum SysCommonDataChangeType {
|
||||
|
||||
INSERT(),
|
||||
UPDATE(),
|
||||
DELETE()
|
||||
}
|
||||
@@ -6,6 +6,8 @@ import cn.afterturn.easypoi.excel.entity.ExportParams;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.wizzer.framework.base.Result;
|
||||
import io.v.nutz.base.annontation.ViReturn;
|
||||
import io.v.nutz.base.event.user.SysCommonDataChangeCenter;
|
||||
import io.v.nutz.base.event.user.SysCommonDataChangeType;
|
||||
import io.v.nutz.base.event.user.UserChangeMsg;
|
||||
import io.v.nutz.base.event.user.UserChangePublisher;
|
||||
import io.v.nutz.base.page.Pagination;
|
||||
@@ -20,6 +22,7 @@ import io.v.nutz.web.commons.utils.ShiroUtil;
|
||||
import lombok.Data;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||
import org.nutz.dao.Chain;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Sqls;
|
||||
@@ -27,6 +30,7 @@ import org.nutz.dao.entity.Record;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.dao.util.cri.SqlExpressionGroup;
|
||||
import org.nutz.dao.util.cri.Static;
|
||||
import org.nutz.ioc.aop.Aop;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.json.Json;
|
||||
@@ -230,9 +234,8 @@ public class SysUnionMangeCon {
|
||||
public Object doAddUnion(Sys_union union) {
|
||||
try {
|
||||
sysUnionService.insert(union);
|
||||
|
||||
// flushDict();
|
||||
|
||||
// 通知系统工会发生变更
|
||||
SysCommonDataChangeCenter.publish(SysCommonDataChangeType.UPDATE, Sys_union.class, union.getId());
|
||||
return Result.success();
|
||||
} catch (Exception e) {
|
||||
log.error(e);
|
||||
@@ -267,6 +270,9 @@ public class SysUnionMangeCon {
|
||||
try {
|
||||
sysUnionService.update(union);
|
||||
|
||||
// 通知系统工会发生变更
|
||||
SysCommonDataChangeCenter.publish(SysCommonDataChangeType.UPDATE, Sys_union.class, union.getId());
|
||||
|
||||
// flushDict();
|
||||
|
||||
return Result.success();
|
||||
@@ -275,7 +281,6 @@ public class SysUnionMangeCon {
|
||||
return Result.error();
|
||||
}
|
||||
}
|
||||
|
||||
private void flushDict() {
|
||||
sysDictService.clear(Cnd.where("parentId", "=", ViCommonCon.DICT_UNION_ID));
|
||||
List<Sys_union> unions = sysUnionService.query();
|
||||
@@ -761,11 +766,20 @@ public class SysUnionMangeCon {
|
||||
* @return
|
||||
*/
|
||||
@At
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
public Object doEditZcdw(String unionid, String unitids) {
|
||||
try {
|
||||
List<Sys_unit> oldUnitList = sysUnitService.query(Cnd.where("unionid", "=", unionid));
|
||||
sysUnitService.execute(Sqls.create("UPDATE sys_unit set unionid = null WHERE unionid=@id").setParam("id", unionid));
|
||||
for (String id : Json.fromJsonAsList(String.class, unitids)) {
|
||||
sysUnitService.update(Chain.make("unionid", unionid), Cnd.where("id", "=", id));
|
||||
SysCommonDataChangeCenter.publish(SysCommonDataChangeType.UPDATE, Sys_unit.class, id);
|
||||
}
|
||||
|
||||
// 排除出去的单位
|
||||
List<Sys_unit> deleteUnits = oldUnitList.stream().filter(v -> !unitids.contains(v.getId())).collect(Collectors.toList());
|
||||
for (Sys_unit deleteUnit : deleteUnits) {
|
||||
SysCommonDataChangeCenter.publish(SysCommonDataChangeType.UPDATE, Sys_unit.class, deleteUnit.getId());
|
||||
}
|
||||
return Result.success();
|
||||
} catch (Exception e) {
|
||||
|
||||
@@ -2,6 +2,8 @@ package io.v.nutz.sys.controllers.platform.sys;
|
||||
|
||||
import cn.wizzer.framework.base.Result;
|
||||
import io.v.nutz.base.annontation.ViReturn;
|
||||
import io.v.nutz.base.event.user.SysCommonDataChangeCenter;
|
||||
import io.v.nutz.base.event.user.SysCommonDataChangeType;
|
||||
import io.v.nutz.base.utils.Roles;
|
||||
import io.v.nutz.base.dao.CndPlus;
|
||||
import io.v.nutz.base.query.PageForm;
|
||||
@@ -134,11 +136,14 @@ public class SysUnitMangeController {
|
||||
sysUnitService.insert(sys_unit);
|
||||
|
||||
//添加承办单位
|
||||
ProposalUndertake proposalUndertake = new ProposalUndertake();
|
||||
proposalUndertake.setIsEnable(true);
|
||||
proposalUndertake.setUnitName(sys_unit.getName());
|
||||
proposalUndertake.setUnitCode(sys_unit.getUnitcode());
|
||||
dao.insert(proposalUndertake);
|
||||
// ProposalUndertake proposalUndertake = new ProposalUndertake();
|
||||
// proposalUndertake.setIsEnable(true);
|
||||
// proposalUndertake.setUnitName(sys_unit.getName());
|
||||
// proposalUndertake.setUnitCode(sys_unit.getUnitcode());
|
||||
// dao.insert(proposalUndertake);
|
||||
|
||||
// 通知系统单位发生变更
|
||||
SysCommonDataChangeCenter.publish(SysCommonDataChangeType.INSERT, Sys_unit.class, sys_unit.getId());
|
||||
|
||||
return null;
|
||||
}
|
||||
@@ -156,7 +161,11 @@ public class SysUnitMangeController {
|
||||
sysUnitService.update(sys_unit);
|
||||
|
||||
//更新承办单位
|
||||
dao.update(ProposalUndertake.class, Chain.make("unitName", sys_unit.getName()), Cnd.where("unitCode", "=", sys_unit.getUnitcode()));
|
||||
// dao.update(ProposalUndertake.class, Chain.make("unitName", sys_unit.getName()), Cnd.where("unitCode", "=", sys_unit.getUnitcode()));
|
||||
|
||||
// 通知系统单位发生变更
|
||||
SysCommonDataChangeCenter.publish(SysCommonDataChangeType.UPDATE, Sys_unit.class, sys_unit.getId());
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
package io.v.nutz.zhgh.activity.listener;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import io.v.nutz.base.event.user.SysCommonDataChange;
|
||||
import io.v.nutz.base.event.user.SysCommonDataChangeType;
|
||||
import io.v.nutz.base.event.user.SysCommonDataChange;
|
||||
import io.v.nutz.sys.models.Sys_union;
|
||||
import io.v.nutz.zhgh.activity.models.ActivityBasicUnion;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Dao;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
|
||||
/**
|
||||
* @author zhf
|
||||
* @date 2025/8/15 08:46
|
||||
* @description
|
||||
*/
|
||||
@IocBean
|
||||
public class SysActivityUnionListener implements SysCommonDataChange {
|
||||
|
||||
@Inject
|
||||
private Dao dao;
|
||||
|
||||
|
||||
@Override
|
||||
public void exec(SysCommonDataChangeType changeType, Class<?> sysUnionClass, String bizId) {
|
||||
if (sysUnionClass.getSimpleName().equals(Sys_union.class.getSimpleName())) {
|
||||
switch (changeType) {
|
||||
case INSERT -> {
|
||||
Sys_union sys_union = dao.fetch(Sys_union.class, bizId);
|
||||
ActivityBasicUnion basicUnion = BeanUtil.copyProperties(sys_union, ActivityBasicUnion.class);
|
||||
dao.insert(basicUnion);
|
||||
}
|
||||
case UPDATE -> {
|
||||
Sys_union sys_union = dao.fetch(Sys_union.class, bizId);
|
||||
ActivityBasicUnion basicUnion = dao.fetch(ActivityBasicUnion.class, Cnd.where("id", "=", sys_union.getId()));
|
||||
sys_union.setEnable(true);
|
||||
BeanUtil.copyProperties(sys_union, basicUnion);
|
||||
dao.update(basicUnion);
|
||||
}
|
||||
case DELETE -> {
|
||||
dao.clear(ActivityBasicUnion.class, Cnd.where("id", "=", bizId));
|
||||
}
|
||||
default -> {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
package io.v.nutz.zhgh.activity.listener;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import io.v.nutz.base.event.user.SysCommonDataChange;
|
||||
import io.v.nutz.base.event.user.SysCommonDataChangeType;
|
||||
import io.v.nutz.sys.models.Sys_unit;
|
||||
import io.v.nutz.zhgh.activity.models.ActivityBasicUnit;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Dao;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
|
||||
/**
|
||||
* @author zhf
|
||||
* @date 2025/8/14 17:30
|
||||
* @description
|
||||
*/
|
||||
@IocBean
|
||||
public class SysActivityUnitListener implements SysCommonDataChange {
|
||||
|
||||
@Inject
|
||||
private Dao dao;
|
||||
|
||||
@Override
|
||||
public void exec(SysCommonDataChangeType changeType, Class<?> sysUnitClass, String bizId) {
|
||||
if (sysUnitClass.getSimpleName().equals(Sys_unit.class.getSimpleName())) {
|
||||
switch (changeType) {
|
||||
case INSERT -> {
|
||||
Sys_unit sys_unit = dao.fetch(Sys_unit.class, bizId);
|
||||
ActivityBasicUnit basicUnit = BeanUtil.copyProperties(sys_unit, ActivityBasicUnit.class);
|
||||
dao.insert(basicUnit);
|
||||
}
|
||||
case UPDATE -> {
|
||||
Sys_unit sys_unit = dao.fetch(Sys_unit.class, bizId);
|
||||
ActivityBasicUnit basicUnit = dao.fetch(ActivityBasicUnit.class, Cnd.where("id", "=", sys_unit.getId()));
|
||||
BeanUtil.copyProperties(sys_unit, basicUnit, "id");
|
||||
dao.update(basicUnit);
|
||||
}
|
||||
case DELETE -> {
|
||||
dao.clear(ActivityBasicUnit.class, Cnd.where("id", "=", bizId));
|
||||
}
|
||||
default -> {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
package io.v.nutz.zhgh.proposal.listener;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import io.v.nutz.base.event.user.SysCommonDataChange;
|
||||
import io.v.nutz.base.event.user.SysCommonDataChangeType;
|
||||
import io.v.nutz.sys.models.Sys_unit;
|
||||
import io.v.nutz.zhgh.proposal.models.ProposalUndertake;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Dao;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
|
||||
/**
|
||||
* @author zhf
|
||||
* @date 2025/8/14 17:30
|
||||
* @description
|
||||
*/
|
||||
@IocBean
|
||||
public class ProposalUnderTakeListener implements SysCommonDataChange {
|
||||
|
||||
@Inject
|
||||
private Dao dao;
|
||||
|
||||
@Override
|
||||
public void exec(SysCommonDataChangeType changeType, Class<?> sysUnitClass, String bizId) {
|
||||
if (sysUnitClass.getSimpleName().equals(Sys_unit.class.getSimpleName())) {
|
||||
switch (changeType) {
|
||||
case INSERT -> {
|
||||
Sys_unit sys_unit = dao.fetch(Sys_unit.class, bizId);
|
||||
ProposalUndertake basicUnit = BeanUtil.copyProperties(sys_unit, ProposalUndertake.class);
|
||||
dao.insert(basicUnit);
|
||||
}
|
||||
case UPDATE -> {
|
||||
Sys_unit sys_unit = dao.fetch(Sys_unit.class, bizId);
|
||||
ProposalUndertake undertake = dao.fetch(ProposalUndertake.class, Cnd.where("unitCode", "=", sys_unit.getUnitcode()));
|
||||
undertake.setUnitName(sys_unit.getName());
|
||||
dao.updateIgnoreNull(undertake);
|
||||
}
|
||||
case DELETE -> {
|
||||
dao.clear(ProposalUndertake.class, Cnd.where("id", "=", bizId));
|
||||
}
|
||||
default -> {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user