main
tamguo 7 years ago
parent 767aea9f85
commit 5cbd7a2116

@ -17,7 +17,6 @@ public class MyMetaObjectHandler extends MetaObjectHandler {
@Override @Override
public void insertFill(MetaObject metaObject) { public void insertFill(MetaObject metaObject) {
logger.info("新增的时候干点不可描述的事情");
Object testType = getFieldValByName("createBy", metaObject); Object testType = getFieldValByName("createBy", metaObject);
if (testType == null) { if (testType == null) {
setFieldValByName("createBy", ShiroUtils.getUser() , metaObject); //mybatis-plus版本2.0.9+ setFieldValByName("createBy", ShiroUtils.getUser() , metaObject); //mybatis-plus版本2.0.9+

@ -15,6 +15,9 @@ import com.baomidou.mybatisplus.annotations.TableName;
@TableName(value="sys_office") @TableName(value="sys_office")
public class SysOfficeEntity implements Serializable { public class SysOfficeEntity implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
public static final String ROOT_OFFICE_CODE = "0";
public static final String TREE_CODE_OFFICE_SEPARATE = ",";
public static final String TREE_NAME_OFFICE_SEPARATE = "/";
@TableId @TableId
private String officeCode; private String officeCode;

@ -62,37 +62,24 @@ public class SysOfficeServiceImpl extends ServiceImpl<SysOfficeMapper, SysOffice
@Transactional(readOnly=false) @Transactional(readOnly=false)
@Override @Override
public void save(SysOfficeEntity office) { public void save(SysOfficeEntity office) {
// 父节点
SysOfficeEntity parent = sysOfficeMapper.selectById(office.getParentCode());
office.setCreateBy(ShiroUtils.getUserCode()); office.setCreateBy(ShiroUtils.getUserCode());
office.setCreateDate(new Date()); office.setCreateDate(new Date());
office.setUpdateBy(ShiroUtils.getUserCode()); office.setUpdateBy(ShiroUtils.getUserCode());
office.setUpdateDate(new Date()); office.setUpdateDate(new Date());
office.setOfficeCode(office.getViewCode()); office.setOfficeCode(office.getViewCode());
if(StringUtils.isEmpty(office.getParentCode())) { // 处理属性结构
office.setParentCode("0"); this.handleTreeData(office);
office.setParentCodes("0,");
office.setTreeLeaf(false);
office.setTreeLevel(BigDecimal.valueOf(0));
}else {
office.setParentCodes(parent.getParentCodes() + parent.getOfficeCode() + ",");
office.setTreeLeaf(true);
office.setTreeLevel(parent.getTreeLevel().add(BigDecimal.valueOf(1)));
}
office.setTreeSorts(office.getTreeSort() + ",");
office.setTreeNames(office.getOfficeName() + ",");
sysOfficeMapper.insert(office);
// 更新父节点 sysOfficeMapper.insert(office);
parent.setTreeLeaf(false);
sysOfficeMapper.updateById(parent);
} }
@SuppressWarnings("unchecked")
@Transactional(readOnly=false)
@Override @Override
public void update(SysOfficeEntity office) { public void update(SysOfficeEntity office) {
SysOfficeEntity oldOffice = sysOfficeMapper.selectById(office.getOfficeCode()); SysOfficeEntity oldOffice = sysOfficeMapper.selectById(office.getOfficeCode());
SysOfficeEntity parentOffice = sysOfficeMapper.selectById(office.getParentCode());
String oldParentCode = oldOffice.getParentCode();
oldOffice.setAddress(office.getAddress()); oldOffice.setAddress(office.getAddress());
oldOffice.setCorpCode(office.getCorpCode()); oldOffice.setCorpCode(office.getCorpCode());
@ -106,17 +93,52 @@ public class SysOfficeServiceImpl extends ServiceImpl<SysOfficeMapper, SysOffice
oldOffice.setParentCode(office.getParentCode()); oldOffice.setParentCode(office.getParentCode());
oldOffice.setRemarks(office.getRemarks()); oldOffice.setRemarks(office.getRemarks());
oldOffice.setPhone(office.getPhone()); oldOffice.setPhone(office.getPhone());
// 处理属性结构
this.handleTreeData(oldOffice);
sysOfficeMapper.updateById(oldOffice);
// 更新旧的节点
Integer count = sysOfficeMapper.selectCount(Condition.create().eq("parent_code", oldParentCode).ne("office_code", oldParentCode));
if(count == 0) {
SysOfficeEntity oldParentOffice = sysOfficeMapper.selectById(oldParentCode);
oldParentOffice.setTreeLeaf(true);
sysOfficeMapper.updateById(oldParentOffice);
}
}
// 处理树形结构
@SuppressWarnings("unchecked")
private SysOfficeEntity handleTreeData(SysOfficeEntity office) {
if(StringUtils.isEmpty(office.getParentCode())) { if(StringUtils.isEmpty(office.getParentCode())) {
oldOffice.setParentCode("0"); office.setParentCode(SysOfficeEntity.ROOT_OFFICE_CODE);
oldOffice.setParentCodes("0,"); office.setParentCodes(SysOfficeEntity.ROOT_OFFICE_CODE + SysOfficeEntity.TREE_CODE_OFFICE_SEPARATE);
oldOffice.setTreeLeaf(false); office.setTreeLeaf(true);
oldOffice.setTreeLevel(BigDecimal.valueOf(0)); office.setTreeLevel(new BigDecimal(0));
office.setTreeNames(office.getOfficeName());
office.setTreeSorts(office.getTreeSort().multiply(new BigDecimal(10000000)).toString() + SysOfficeEntity.TREE_CODE_OFFICE_SEPARATE);
} else { } else {
oldOffice.setParentCodes(parentOffice.getParentCodes() + parentOffice.getOfficeCode() + ","); SysOfficeEntity parentOffice = sysOfficeMapper.selectById(office.getParentCode());
oldOffice.setTreeLeaf(true);
oldOffice.setTreeLevel(parentOffice.getTreeLevel().add(BigDecimal.valueOf(1))); office.setParentCodes(parentOffice.getParentCodes() + parentOffice.getOfficeCode() + SysOfficeEntity.TREE_CODE_OFFICE_SEPARATE);
office.setTreeLeaf(true);
office.setTreeLevel(parentOffice.getTreeLevel().add(new BigDecimal(1)));
office.setTreeNames(parentOffice.getTreeNames() + SysOfficeEntity.TREE_NAME_OFFICE_SEPARATE + parentOffice.getOfficeName());
office.setTreeSorts(parentOffice.getTreeSorts() + office.getTreeSort().multiply(new BigDecimal(10000000)).toString() + SysOfficeEntity.TREE_CODE_OFFICE_SEPARATE);
if(parentOffice.getTreeLeaf()) {
parentOffice.setTreeLeaf(false);
sysOfficeMapper.updateById(parentOffice);
} }
sysOfficeMapper.updateById(oldOffice); }
Integer count = sysOfficeMapper.selectCount(Condition.create().eq("parent_code", office.getOfficeCode()));
if(count > 0) {
office.setTreeLeaf(false);
}else {
office.setTreeLeaf(true);
}
return office;
} }
} }

Loading…
Cancel
Save