提交 e33032d0 编写于 作者: ibizdev's avatar ibizdev

ibiz4j 发布系统代码 [ibiz-uaa,UAA鉴权]

上级 ca9d1266
......@@ -52,6 +52,7 @@ import CodeListService from "@/codelist/codelist-service";
import EntityService from '@/service/entity-service';
import { Vue, Component, Prop, Provide, Emit, Watch } from 'vue-property-decorator';
import { Environment } from '@/environments/environment';
import moment from "moment";
@Component({
})
......@@ -395,11 +396,11 @@ export default class AppDataUploadView extends Vue {
let reader = new FileReader();
reader.onload = (e:any) => {
let data = e.target.result;
this.workBookData = XLSX.read(data, {type: 'binary'});
this.workBookData = XLSX.read(data, {type: 'binary',cellDates: true});
let xlsxData = XLSX.utils.sheet_to_json(this.workBookData.Sheets[this.workBookData.SheetNames[0]]);
let list1 = this.getFirstRow(this.workBookData);
xlsxData = this.AddXlsxData(xlsxData, list1);
this.importDataArray = JSON.parse(JSON.stringify(xlsxData));
this.importDataArray = this.$util.deepCopy(xlsxData);
(this.$refs.inputUpLoad as any).value = '';
};
reader.readAsBinaryString(f);
......@@ -505,6 +506,11 @@ export default class AppDataUploadView extends Vue {
data.forEach((item:any) =>{
let curObject:any = {};
Object.keys(item).forEach((ele:any) => {
// todo XLSX读取时间为国际时间(东8区)+8H转为标准时间
if (item[ele] instanceof Date){
const tempDate:Date = item[ele];
item[ele] = moment(tempDate).add(8, 'h').format("YYYY-MM-DD HH:mm:ss");
}
if(this.allFieldMap.get(ele).codelist){
let codelistTag:string = this.allFieldMap.get(ele).codelist.tag;
let codelistIsNumber:boolean = this.allFieldMap.get(ele).codelist.isnumber;
......
......@@ -12,8 +12,8 @@
:filterable="filterable"
@on-open-change="onClick"
:placeholder="placeholder?placeholder:$t('components.dropDownListMpicker.placeholder')">
<i-option v-for="(item, index) in items" :key="index" :class="item.class" :value="item.value.toString()" :label="item.text">
<Checkbox :value = "(currentVal.indexOf(item.value.toString()))==-1?false:true">
<i-option v-for="(item, index) in items" :key="index" :class="item.class" :value="item.value ? item.value.toString():''" :label="item.text">
<Checkbox :value="(currentVal.indexOf(item.value ? item.value.toString() : '')) == -1 ? false : true">
{{Object.is(codelistType,'STATIC') ? $t('codelist.'+tag+'.'+item.value) : item.text}}
</Checkbox>
</i-option>
......
......@@ -394,7 +394,9 @@ export default class DropDownList extends Vue {
if(type === 'number'){
item.value = item.value.toString();
}else{
if(item.value.indexOf('.') == -1){
if(type == "null") {
this.valueType == "number" ? item.value = 0 : item.value = '';
}else if(item.value.indexOf('.') == -1){
item.value = parseInt(item.value);
}else{
item.value = parseFloat(item.value);
......
......@@ -45,6 +45,8 @@ export const Environment = {
ibizlabtUrl: 'https://www.ibizlab.cn',
// ibiz论坛地址
ibizbbstUrl: 'https://bbs.ibizlab.cn',
// 是否启用工作流
workflow: false,
};
// 挂载外部配置文件
if ((window as any).Environment) {
......
......@@ -22,7 +22,7 @@
<i-col v-show="detailsModel.sys_user_roleid.visible" :style="{}" :lg="{ span: 24, offset: 0 }">
<app-form-item name='sys_user_roleid' :itemRules="this.rules().sys_user_roleid" class='' :caption="$t('entities.sysuserrole.main_form.details.sys_user_roleid')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.sys_user_roleid.error" :isEmptyCaption="false" labelPos="LEFT">
<app-span name='sys_user_roleid' :value="data.sys_user_roleid" dataType="GUID" :precision="0"
<app-span name='sys_user_roleid' :value="data.sys_user_roleid" dataType="GUID" unitName="" :precision="0"
:data="data" :context="context" :viewparams="viewparams" :localContext ='{ }' :localParam ='{ }' style="">
</app-span>
......
......@@ -135,7 +135,6 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
@Override
@Transactional
public SysUser deleteSysUser(SysUser et) {
deletesysuserLogic.execute(et);
return et ;
}
......@@ -202,7 +201,6 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
@Override
@Transactional
public SysUser saveSysUser(SysUser et) {
savesysuserLogic.execute(et);
return et ;
}
......
package cn.ibizlab.core.uaa.service.logic;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.HashMap;
import cn.ibizlab.core.uaa.domain.SysUser;
/**
* 关系型数据实体[deleteSysUser] 对象
*/
public interface ISysUserdeleteSysUserLogic {
void execute(SysUser et) ;
}
package cn.ibizlab.core.uaa.service.logic;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.HashMap;
import cn.ibizlab.core.uaa.domain.SysUser;
/**
* 关系型数据实体[saveSysUser] 对象
*/
public interface ISysUsersaveSysUserLogic {
void execute(SysUser et) ;
}
package cn.ibizlab.core.uaa.service.logic.impl;
import java.util.Map;
import java.util.HashMap;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.kie.api.runtime.KieSession;
import org.kie.api.runtime.KieContainer;
import cn.ibizlab.core.uaa.service.logic.ISysUserdeleteSysUserLogic;
import cn.ibizlab.core.uaa.domain.SysUser;
public class SysUserdeleteSysUserLogicImpl{
/**
* 关系型数据实体[deleteSysUser] 对象
*/
@Slf4j
@Service
public class SysUserdeleteSysUserLogicImpl implements ISysUserdeleteSysUserLogic {
@Autowired
private KieContainer kieContainer;
@Autowired
private cn.ibizlab.core.uaa.service.ISysUserService sysuserservice;
public cn.ibizlab.core.uaa.service.ISysUserService getSysuserService() {
return this.sysuserservice;
}
@Autowired
private cn.ibizlab.core.uaa.service.ISysUserService iBzSysDefaultService;
public cn.ibizlab.core.uaa.service.ISysUserService getIBzSysDefaultService() {
return this.iBzSysDefaultService;
}
@Override
public void execute(SysUser et) {
KieSession kieSession = null;
try {
kieSession = kieContainer.newKieSession();
kieSession.insert(et);
kieSession.setGlobal("sysuserdeletesysuserdefault", et);
kieSession.setGlobal("sysuserservice", sysuserservice);
kieSession.setGlobal("iBzSysSysuserDefaultService", iBzSysDefaultService);
kieSession.setGlobal("curuser", cn.ibizlab.util.security.AuthenticationUser.getAuthenticationUser());
kieSession.startProcess("cn.ibizlab.core.uaa.service.logic.sysuserdeletesysuser");
} catch (Exception e) {
throw new RuntimeException("执行[删除用户信息]处理逻辑发生异常" + e);
} finally {
if(kieSession != null) {
kieSession.destroy();
}
}
}
}
package cn.ibizlab.core.uaa.service.logic.impl;
import java.util.Map;
import java.util.HashMap;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.kie.api.runtime.KieSession;
import org.kie.api.runtime.KieContainer;
import cn.ibizlab.core.uaa.service.logic.ISysUsersaveSysUserLogic;
import cn.ibizlab.core.uaa.domain.SysUser;
public class SysUsersaveSysUserLogicImpl{
/**
* 关系型数据实体[saveSysUser] 对象
*/
@Slf4j
@Service
public class SysUsersaveSysUserLogicImpl implements ISysUsersaveSysUserLogic {
@Autowired
private KieContainer kieContainer;
@Autowired
private cn.ibizlab.core.uaa.service.ISysUserService sysuserservice;
public cn.ibizlab.core.uaa.service.ISysUserService getSysuserService() {
return this.sysuserservice;
}
@Autowired
private cn.ibizlab.core.uaa.service.ISysUserService iBzSysDefaultService;
public cn.ibizlab.core.uaa.service.ISysUserService getIBzSysDefaultService() {
return this.iBzSysDefaultService;
}
@Override
public void execute(SysUser et) {
KieSession kieSession = null;
try {
kieSession = kieContainer.newKieSession();
kieSession.insert(et);
kieSession.setGlobal("sysusersavesysuserdefault", et);
kieSession.setGlobal("sysuserservice", sysuserservice);
kieSession.setGlobal("iBzSysSysuserDefaultService", iBzSysDefaultService);
kieSession.setGlobal("curuser", cn.ibizlab.util.security.AuthenticationUser.getAuthenticationUser());
kieSession.startProcess("cn.ibizlab.core.uaa.service.logic.sysusersavesysuser");
} catch (Exception e) {
throw new RuntimeException("执行[保存用户信息]处理逻辑发生异常" + e);
} finally {
if(kieSession != null) {
kieSession.destroy();
}
}
}
}
package cn.ibizlab.core.util.config;
import org.kie.api.KieBase;
import org.kie.api.KieServices;
import org.kie.api.builder.*;
import org.kie.api.builder.KieFileSystem;
import org.kie.api.runtime.KieContainer;
import org.kie.api.runtime.KieSession;
import org.kie.internal.io.ResourceFactory;
import org.kie.spring.KModuleBeanFactoryPostProcessor;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.core.io.support.ResourcePatternResolver;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import java.io.IOException;
import java.util.List;
@Configuration
public class DroolsAutoConfiguration {
private Log logger= LogFactory.getLog(DroolsAutoConfiguration.class);
private static final String RULES_PATH = "rules/";
@Bean
@ConditionalOnMissingBean(KieFileSystem.class)
public KieFileSystem kieFileSystem() throws IOException {
KieFileSystem kieFileSystem = getKieServices().newKieFileSystem();
for (Resource file : getRuleFiles()) {
kieFileSystem.write(ResourceFactory.newUrlResource(file.getURL()));
}
return kieFileSystem;
}
private Resource[] getRuleFiles() throws IOException {
ResourcePatternResolver resourcePatternResolver = new PathMatchingResourcePatternResolver();
return resourcePatternResolver.getResources("classpath*:" + RULES_PATH + "**/*.*");
}
@Bean
@ConditionalOnMissingBean(KieContainer.class)
public KieContainer kieContainer() throws IOException {
final KieRepository kieRepository = getKieServices().getRepository();
kieRepository.addKieModule(new KieModule() {
public ReleaseId getReleaseId() {
return kieRepository.getDefaultReleaseId();
}
});
KieBuilder kieBuilder = getKieServices().newKieBuilder(kieFileSystem());
kieBuilder.buildAll();
if(kieBuilder.getResults().hasMessages(new Message.Level[] { Message.Level.ERROR })){
List<Message> errors = kieBuilder.getResults().getMessages(new Message.Level[] { Message.Level.ERROR });
StringBuilder stringBuilder = new StringBuilder("Errors:");
for (Message msg : errors)
{
stringBuilder.append(new StringBuilder().append("\n ").append(prettyBuildMessage(msg)).toString());
}
logger.error(String.format("初始化处理逻辑发生异常,异常原因为[%s]",stringBuilder.toString()));
//忽略处理逻辑
getKieServices().newKieBuilder(getKieServices().newKieFileSystem()).buildAll();
}
return getKieServices().newKieContainer(kieRepository.getDefaultReleaseId());
}
private KieServices getKieServices() {
return KieServices.Factory.get();
}
@Bean
@ConditionalOnMissingBean(KieBase.class)
public KieBase kieBase() throws IOException {
return kieContainer().getKieBase();
}
@Bean
@ConditionalOnMissingBean(KieSession.class)
public KieSession kieSession() throws IOException {
return kieContainer().newKieSession();
}
@Bean
@ConditionalOnMissingBean(KModuleBeanFactoryPostProcessor.class)
public KModuleBeanFactoryPostProcessor kiePostProcessor() {
return new KModuleBeanFactoryPostProcessor();
}
/**
* 输出异常信息
* @param msg
* @return
*/
public static String prettyBuildMessage(Message msg)
{
return new StringBuilder().append("Message: {id=").append(msg.getId()).append(", level=").append(msg.getLevel()).append(", path=").append(msg.getPath()).append(", line=").append(msg.getLine())
.append(", column=").append(msg.getColumn()).append(", text=\"").append(msg.getText()).append("\"}").toString();
public KieContainer kieContainer() {
KieServices kieServices = KieServices.get();
KieFileSystem kieFileSystem = kieServices.newKieFileSystem();
kieServices.newKieBuilder(kieFileSystem).buildAll();
return kieServices.newKieContainer(kieServices.getRepository().getDefaultReleaseId());
}
}
\ No newline at end of file
......@@ -6,7 +6,7 @@
<!--输出实体[SYS_AUTHLOG]数据结构 -->
<changeSet author="a_A_5d9d78509" id="tab-sys_authlog-3-1">
<changeSet author="a_A_5d9d78509" id="tab-sys_authlog-6-1">
<createTable tableName="IBZAUTHLOG">
<column name="LOGID" remarks="" type="VARCHAR(100)">
<constraints primaryKey="true" primaryKeyName="PK_SYS_AUTHLOG_LOGID"/>
......
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:g="http://www.jboss.org/drools/flow/gpd" xmlns:tns="http://www.jboss.org/drools" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" expressionLanguage="http://www.mvel.org/2.0" id="Definition" name="" targetNamespace="http://www.jboss.org/drools" typeLanguage="http://www.java.com/javaTypes">
<process id="cn.ibizlab.core.extensions.service.logic.execute" isClosed="false" isExecutable="true" name="uaa_sysuser_deletesysuser.execLogic" processType="Private" tns:packageName="cn.ibizlab.core.extensions.service.logic.execute">
<extensionElements>
<tns:import name="java.util.Map"/>
<tns:import name="org.springframework.util.StringUtils"/>
<tns:import name="cn.ibizlab.util.helper.RuleUtils"/>
</extensionElements>
<startEvent id="begin" isInterrupting="true"/>
<endEvent id="prepareparam1_end" name="end"/>
<callActivity activiti:exclusive="true" calledElement="cn.ibizlab.core.uaa.service.logic.sysuserdeletesysuser" id="deleteSysUser" name="SysUserdeleteSysUserRuleFlow.bpmn"/>
<sequenceFlow id="begin_deleteSysUser" sourceRef="begin" targetRef="deleteSysUser"/>
<sequenceFlow id="deleteSysUser_deleteSysUser" sourceRef="deleteSysUser" targetRef="prepareparam1_end"/>
</process>
</definitions>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:g="http://www.jboss.org/drools/flow/gpd" xmlns:tns="http://www.jboss.org/drools" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" expressionLanguage="http://www.mvel.org/2.0" id="Definition" name="" targetNamespace="http://www.jboss.org/drools" typeLanguage="http://www.java.com/javaTypes">
<process id="cn.ibizlab.core.extensions.service.logic.execute" isClosed="false" isExecutable="true" name="uaa_sysuser_savesysuser.execLogic" processType="Private" tns:packageName="cn.ibizlab.core.extensions.service.logic.execute">
<extensionElements>
<tns:import name="java.util.Map"/>
<tns:import name="org.springframework.util.StringUtils"/>
<tns:import name="cn.ibizlab.util.helper.RuleUtils"/>
</extensionElements>
<startEvent id="begin" isInterrupting="true"/>
<endEvent id="prepareparam1_end" name="end"/>
<callActivity activiti:exclusive="true" calledElement="cn.ibizlab.core.uaa.service.logic.sysusersavesysuser" id="saveSysUser" name="SysUsersaveSysUserRuleFlow.bpmn"/>
<sequenceFlow id="begin_saveSysUser" sourceRef="begin" targetRef="saveSysUser"/>
<sequenceFlow id="saveSysUser_saveSysUser" sourceRef="saveSysUser" targetRef="prepareparam1_end"/>
</process>
</definitions>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:g="http://www.jboss.org/drools/flow/gpd" xmlns:tns="http://www.jboss.org/drools" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" expressionLanguage="http://www.mvel.org/2.0" id="Definition" name="" targetNamespace="http://www.jboss.org/drools" typeLanguage="http://www.java.com/javaTypes">
<process id="cn.ibizlab.core.uaa.service.logic.sysuserdeletesysuser" isClosed="false" isExecutable="true" name="ScoreRule" processType="Private" tns:packageName="cn.ibizlab.core.uaa.service.logic.sysuserdeletesysuser">
<process id="cn.ibizlab.core.uaa.service.logic.sysuserdeletesysuser" isClosed="false" isExecutable="true" name="uaa_sysuser_deletesysuser_RuleFlow" processType="Private" tns:packageName="cn.ibizlab.core.uaa.service.logic.sysuserdeletesysuser">
<extensionElements>
<tns:import name="java.util.Map" />
<tns:import name="org.springframework.util.StringUtils"/>
......
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:g="http://www.jboss.org/drools/flow/gpd" xmlns:tns="http://www.jboss.org/drools" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" expressionLanguage="http://www.mvel.org/2.0" id="Definition" name="" targetNamespace="http://www.jboss.org/drools" typeLanguage="http://www.java.com/javaTypes">
<process id="cn.ibizlab.core.uaa.service.logic.sysusersavesysuser" isClosed="false" isExecutable="true" name="ScoreRule" processType="Private" tns:packageName="cn.ibizlab.core.uaa.service.logic.sysusersavesysuser">
<process id="cn.ibizlab.core.uaa.service.logic.sysusersavesysuser" isClosed="false" isExecutable="true" name="uaa_sysuser_savesysuser_RuleFlow" processType="Private" tns:packageName="cn.ibizlab.core.uaa.service.logic.sysusersavesysuser">
<extensionElements>
<tns:import name="java.util.Map" />
<tns:import name="org.springframework.util.StringUtils"/>
......
......@@ -86,6 +86,7 @@
<oracle.version>19.8.0.0</oracle.version>
<postgresql.version>42.2.6</postgresql.version>
<rocketmq.version>4.7.0</rocketmq.version>
<flowable-modeler.version>6.4.2</flowable-modeler.version>
</properties>
<dependencyManagement>
......@@ -262,6 +263,16 @@
</dependency>
<dependency>
<groupId>org.flowable</groupId>
<artifactId>flowable-json-converter</artifactId>
<version>${flowable-modeler.version}</version>
</dependency>
<dependency>
<groupId>org.flowable</groupId>
<artifactId>flowable-ui-modeler-conf</artifactId>
<version>${flowable-modeler.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
......
......@@ -47,7 +47,6 @@ public class SysAuthLogResource {
@Lazy
public SysAuthLogMapping sysauthlogMapping;
@PreAuthorize("hasAnyAuthority('ROLE_SUPERADMIN','ibzuaa-SysAuthLog-Create-all')")
@ApiOperation(value = "新建认证日志", tags = {"认证日志" }, notes = "新建认证日志")
@RequestMapping(method = RequestMethod.POST, value = "/sysauthlogs")
public ResponseEntity<SysAuthLogDTO> create(@Validated @RequestBody SysAuthLogDTO sysauthlogdto) {
......@@ -57,7 +56,6 @@ public class SysAuthLogResource {
return ResponseEntity.status(HttpStatus.OK).body(dto);
}
@PreAuthorize("hasAnyAuthority('ROLE_SUPERADMIN','ibzuaa-SysAuthLog-Create-all')")
@ApiOperation(value = "批量新建认证日志", tags = {"认证日志" }, notes = "批量新建认证日志")
@RequestMapping(method = RequestMethod.POST, value = "/sysauthlogs/batch")
public ResponseEntity<Boolean> createBatch(@RequestBody List<SysAuthLogDTO> sysauthlogdtos) {
......
......@@ -90,5 +90,39 @@
<artifactId>feign-httpclient</artifactId>
</dependency>
<!-- drools -->
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-compiler</artifactId>
</dependency>
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-core</artifactId>
</dependency>
<dependency>
<groupId>org.kie</groupId>
<artifactId>kie-spring</artifactId>
</dependency>
<dependency>
<groupId>org.kie</groupId>
<artifactId>kie-api</artifactId>
</dependency>
<dependency>
<groupId>org.flowable</groupId>
<artifactId>flowable-json-converter</artifactId>
</dependency>
<dependency>
<groupId>org.flowable</groupId>
<artifactId>flowable-ui-modeler-conf</artifactId>
<exclusions>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</project>
package cn.ibizlab.util.domain;
import lombok.Data;
import org.flowable.bpmn.model.Process;
import org.kie.api.runtime.KieContainer;
import java.io.File;
import java.io.Serializable;
import java.util.List;
@Data
public class DELogic implements Serializable {
String id;
String name;
Process process;
KieContainer container;
List<DELogic> refLogic;
List<File> refRuleFiles;
String md5;
}
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册