guojx1 3 rokov pred
rodič
commit
0bcd478651

+ 3 - 1
.classpath

@@ -1,7 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
 	<classpathentry kind="src" path="ssckm/src/client"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="src" path="ssckm/src/private"/>
+	<classpathentry kind="src" path="ssckm/src/public"/>
 	<classpathentry kind="con" path="com.yonyou.studio.udt.core.container/Ant_Library"/>
 	<classpathentry kind="con" path="com.yonyou.studio.udt.core.container/Product_Common_Library"/>
 	<classpathentry kind="con" path="com.yonyou.studio.udt.core.container/Middleware_Library"/>
@@ -12,5 +13,6 @@
 	<classpathentry kind="con" path="com.yonyou.studio.udt.core.container/Module_Lang_Library"/>
 	<classpathentry kind="con" path="com.yonyou.studio.udt.core.container/Generated_EJB"/>
 	<classpathentry kind="con" path="com.yonyou.studio.udt.core.container/NCCloud_Library"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.8.0_271"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>

+ 1 - 0
.gitignore

@@ -0,0 +1 @@
+/bin/

+ 117 - 0
.settings/org.eclipse.jdt.core.prefs

@@ -0,0 +1,117 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.APILeak=warning
+org.eclipse.jdt.core.compiler.problem.annotatedTypeArgumentToUnannotated=info
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.suppressWarningsNotFullyAnalysed=info
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning
+org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled
+org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unstableAutoModuleName=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.release=disabled
+org.eclipse.jdt.core.compiler.source=1.8

+ 52 - 0
ssckm/src/client/nccloud/web/action/ssckm/record/RecordBill.java

@@ -0,0 +1,52 @@
+package nccloud.web.action.ssckm.record;
+
+import java.util.Map;
+
+import nc.bs.dao.BaseDAO;
+import nc.bs.dao.DAOException;
+import nc.bs.framework.common.InvocationInfoProxy;
+import nc.bs.framework.json.core.exception.ExceptionUtils;
+import nc.jdbc.framework.SQLParameter;
+import nc.jdbc.framework.processor.ColumnProcessor;
+import nccloud.framework.core.json.IJson;
+import nccloud.framework.service.ServiceLocator;
+import nccloud.framework.web.action.itf.ICommonAction;
+import nccloud.framework.web.container.IRequest;
+import nccloud.framework.web.container.SessionContext;
+import nccloud.framework.web.json.JsonFactory;
+
+/**
+ *  记录文件打开次数
+ * @author guojx
+ *	20220418
+ */
+public class RecordBill implements ICommonAction {
+	
+	private BaseDAO baseDao = new BaseDAO();
+
+	@Override
+	public Object doAction(IRequest request) {
+		// 解析前台参数
+		IJson json = JsonFactory.create();
+		String pk_user = SessionContext.getInstance().getClientInfo().getUserid();
+		String billid = request.read();;
+		try {
+		SQLParameter params = new SQLParameter();
+		params.addParam(pk_user);
+		params.addParam(billid);
+		Object times =  baseDao.executeQuery("select times from knowledge_record where pk_user = ? and billid = ?", params , new ColumnProcessor());
+		if(times!=null) {
+			baseDao.executeUpdate("update knowledge_record set times = times + 1 where pk_user = ? and billid = ?",params);
+		}else {
+			baseDao.executeUpdate("insert into knowledge_record (pk_user,billid) values (?,?)",params);
+		}
+		} catch (DAOException e) {
+			ExceptionUtils.wrapBusinessException(e.getMessage());
+		}
+		
+		return null;
+	}
+
+
+
+}

+ 39 - 0
ssckm/src/client/nccloud/web/action/ssckm/refer/KmClassifyRef.java

@@ -0,0 +1,39 @@
+/*ajZqEvl/tJat8IsYk/0VpHRZKUtJkg0H9v08kc8WCMV+Bk8Po3ticVW1xEmJqKJn*/
+package nccloud.web.action.ssckm.refer;
+
+import nc.vo.ssckm.kmclassify.KmClassifyVO;
+import nccloud.framework.web.container.SessionContext;
+import nccloud.framework.web.processor.refgrid.RefQueryInfo;
+import nccloud.framework.web.ui.meta.RefMeta;
+import nccloud.framework.web.ui.meta.TreeRefMeta;
+import nccloud.web.refer.DefaultGridRefAction;
+import nccloud.web.refer.DefaultTreeRefAction;
+
+/**
+ * 知识分类参照
+ * 
+ * @author chenshfc 20190418
+ */
+public class KmClassifyRef extends DefaultTreeRefAction {
+
+	@Override
+	public TreeRefMeta getRefMeta(RefQueryInfo refQueryInfo) {
+		TreeRefMeta meta = new TreeRefMeta();
+		meta.setCodeField(KmClassifyVO.CODE);
+		meta.setNameField(KmClassifyVO.NAME);
+		meta.setPkField(KmClassifyVO.PK_CLASSIFY);
+		//add by guojx 知识分类进行编码分级 2022年4月12日11:29:39
+		meta.setPidField("pk_parent");
+		meta.setTableName(KmClassifyVO.getDefaultTableName());
+		return meta;
+	}
+
+	@Override
+	public String getExtraSql(RefQueryInfo paramRefQueryInfo, RefMeta paramRefMeta) {
+		return " isnull(dr,0)=0 and  isnull(isuse,'N')='Y'" + " and pk_group='"
+				+ SessionContext.getInstance().getClientInfo().getPk_group() + "'";
+	}
+
+}
+
+/*ajZqEvl/tJat8IsYk/0VpHRZKUtJkg0H9v08kc8WCMV+Bk8Po3ticVW1xEmJqKJn*/

+ 67 - 0
ssckm/src/client/nccloud/web/ssckm/kmclassify/action/KmClassifyGetDataAction.java

@@ -0,0 +1,67 @@
+/*t8OO5KxQQgGVFUMUJ9osWaGVRdJNj8hgdE/xL42HWqjzWH06923fvrvB8mCKr7NignsjVsj3fKNz
+efGWu09XyA==*/
+package nccloud.web.ssckm.kmclassify.action;
+
+import java.util.Map;
+
+import nc.bs.logging.Logger;
+import nc.vo.ssckm.kmclassify.KmClassifyVO;
+import nccloud.framework.core.exception.ExceptionUtils;
+import nccloud.framework.core.json.IJson;
+import nccloud.framework.service.ServiceLocator;
+import nccloud.framework.web.action.itf.ICommonAction;
+import nccloud.framework.web.container.IRequest;
+import nccloud.framework.web.convert.pattern.GridConvertor;
+import nccloud.framework.web.convert.translate.Translator;
+import nccloud.framework.web.json.JsonFactory;
+import nccloud.framework.web.ui.pattern.grid.Grid;
+import nccloud.itf.ssckm.kmclassify.IKmClassifyService;
+import nccloud.ssckm.param.pubconst.IKmConst;
+
+/**
+ * 共享知识管理-获取知识分类档案数据
+ *
+ * @since 2019年4月18日
+ * @version 1909
+ * @author chenshfc
+ */
+public class KmClassifyGetDataAction implements ICommonAction {
+
+	@Override
+	public Object doAction(IRequest request) {
+
+		Grid grid = new Grid();
+		try {
+			// 解析前台参数
+			IJson json = JsonFactory.create();
+			String read = request.read();
+			Map<String, Object> view = json.fromJson(read, Map.class);
+			// 知识分类显示停用是否勾选
+			boolean showUnuse = (boolean) view.get(IKmConst.SHOWUNUSE);
+
+			// 查询接口
+			KmClassifyVO[] resultvos = ServiceLocator.find(IKmClassifyService.class)
+					.classifyGetData(showUnuse);
+			if (resultvos == null || resultvos.length == 0)
+				return null;
+
+			// vo转换grid
+			GridConvertor gc = new GridConvertor();
+			grid = gc.toGrid(IKmConst.CLASSIFY_HEADCODE, resultvos);
+			grid.setPageid(IKmConst.CLASSIFY_PAGECODE);
+			grid.setTempletid(IKmConst.CLASSIFY_TEMPLATEID);
+
+			// grid翻译
+			Translator translator = new Translator();
+			translator.translate(grid);
+		} catch (Exception e) {
+			Logger.error(e.getMessage(), e);
+			ExceptionUtils.wrapException(e);
+		}
+
+		return grid;
+	}
+}
+
+/*t8OO5KxQQgGVFUMUJ9osWaGVRdJNj8hgdE/xL42HWqjzWH06923fvrvB8mCKr7NignsjVsj3fKNz
+efGWu09XyA==*/

+ 133 - 0
ssckm/src/client/nccloud/web/ssckm/kmclassify/action/KmClassifySaveAction.java

@@ -0,0 +1,133 @@
+/*PRiQmvhQyfVOvDg+dn+DBE2mftKfLgM6WDEI8qfh7bDpRE21Y7ONqQbJjuYGPJ86ht7OucB+MU3G
+kHaR93DVkw==*/
+package nccloud.web.ssckm.kmclassify.action;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import nc.bs.dao.BaseDAO;
+import nc.bs.dao.DAOException;
+import nc.bs.logging.Logger;
+import nc.jdbc.framework.processor.ColumnProcessor;
+import nc.vo.bd.meta.BatchOperateVO;
+import nc.vo.ssckm.kmclassify.KmClassifyVO;
+import nccloud.framework.core.exception.ExceptionUtils;
+import nccloud.framework.core.json.IJson;
+import nccloud.framework.service.ServiceLocator;
+import nccloud.framework.web.action.itf.ICommonAction;
+import nccloud.framework.web.container.IRequest;
+import nccloud.framework.web.convert.pattern.GridConvertor;
+import nccloud.framework.web.convert.translate.Translator;
+import nccloud.framework.web.json.JsonFactory;
+import nccloud.framework.web.ui.pattern.grid.Grid;
+import nccloud.itf.ssckm.kmclassify.IKmClassifyService;
+import nccloud.ssckm.param.pubconst.IKmConst;
+import nccloud.util.ssckm.pub.SSCKMDataTableUtil;
+
+/**
+ * 共享知识管理-知识分类保存
+ *
+ * @since 2019年4月18日
+ * @version 1909
+ * @author chenshfc
+ */
+public class KmClassifySaveAction implements ICommonAction {
+
+	@Override
+	public Object doAction(IRequest request) {
+		IJson json = JsonFactory.create();
+		String read = request.read();
+		Grid grid = json.fromJson(read, Grid.class);
+		try {
+			// grid转换vo
+			GridConvertor gc = new GridConvertor();
+			KmClassifyVO[] vos = gc.fromGrid(KmClassifyVO.class, grid);
+			
+			vos = this.newVOGetParent(vos);
+
+			// 调用保存接口
+			KmClassifyVO[] resultvos = ServiceLocator.find(IKmClassifyService.class).classifySave(
+					vos);
+			if (resultvos != null && resultvos.length == 0) {
+				return null;
+			}
+			//BatchOperateVO retvo = SSCKMDataTableUtil.setBatchOperateVO(vos);
+
+			// vo转换grid
+			grid = gc.toGrid(IKmConst.CLASSIFY_HEADCODE, resultvos);
+
+			// 翻译
+			Translator translator = new Translator();
+			translator.translate(grid);
+		} catch (Exception e) {
+			Logger.error(e.getMessage(), e);
+			ExceptionUtils.wrapException(e);
+		}
+		return grid;
+	}
+	
+	/**
+	 * 	新增的vo找pk_parent 2022年4月12日15:04:43
+	 * @author guojx
+	 * @return
+	 */
+	private KmClassifyVO[] newVOGetParent(KmClassifyVO[] vos) {
+		BatchOperateVO retvo = SSCKMDataTableUtil.setBatchOperateVO(vos);
+		Object[] newVOs =  retvo.getAddObjs();
+		Object[] adjustVOs = retvo.getUpdObjs();
+		KmClassifyVO[] newKMVOs = Arrays.stream(newVOs).map(x->(x)).collect(Collectors.toList()).toArray(new KmClassifyVO[0]);
+		KmClassifyVO[] adjustKMVOs = Arrays.stream(adjustVOs).map(x->(x)).collect(Collectors.toList()).toArray(new KmClassifyVO[0]);
+		this.checkAdjustVO(adjustKMVOs);
+		//update by guojx 新增和修改的情况 20220418
+		KmClassifyVO[][] collections = new KmClassifyVO[][] {newKMVOs,adjustKMVOs};
+//		int[] lengths = Arrays.stream(newKMVOs).map(KmClassifyVO::getCode).collect(Collectors.toList()).toArray(new int[0]);
+		//逻辑:再从全局进行判断
+		Arrays.stream(collections).forEach(x->{
+			for(int i=0;i<x.length;i++) {
+				int length = x[i].getCode().length();
+				final KmClassifyVO vo = x[i];
+				if(length==2) {
+					//pass
+				}else {
+					List<String> pk_parents = Arrays.stream(vos).filter(y->(y.getCode().equals(vo.getCode().substring(0, length-2)))&&!y.getCode().equals(vo.getCode())).map(KmClassifyVO::getPrimaryKey).collect(Collectors.toList());
+					if(pk_parents.size()!=0) {
+						String pk_parent = pk_parents.get(0);
+//						newKMVOs[i].setPk_parent(pk_parent);
+						Arrays.stream(vos).forEach(z->{
+							if(z.getCode().equals(vo.getCode())) {
+								z.setPk_parent(pk_parent);
+							}
+						});
+					}
+				}
+			}
+		});
+		
+		return vos;
+	}
+	
+	private void checkAdjustVO(KmClassifyVO[] adjustKMVOs) {
+		BaseDAO baseDao = new BaseDAO();
+		if(adjustKMVOs.length>0) {
+		
+		//考虑修改不会修改太多条,不用in
+		for(KmClassifyVO adjustKMVO : adjustKMVOs) {
+			try {
+				String originCode = (String) baseDao.executeQuery("select code from ssckm_classify where pk_classify = '"+adjustKMVO.getPk_classify()+"'", new ColumnProcessor());
+				if((adjustKMVO.getCode().length()!=originCode.length())) {
+					ExceptionUtils.wrapBusinessException("编码不允许跨层级修改!->pk:"+adjustKMVO.getPk_classify());
+				}
+			} catch (DAOException e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			}
+		}
+//		String[] allPk = Arrays.stream(adjustKMVOs).map(KmClassifyVO::getPrimaryKey).collect(Collectors.toList()).toArray(new String[0]);
+		
+	}
+	}
+}
+
+/*PRiQmvhQyfVOvDg+dn+DBE2mftKfLgM6WDEI8qfh7bDpRE21Y7ONqQbJjuYGPJ86ht7OucB+MU3G
+kHaR93DVkw==*/

+ 99 - 0
ssckm/src/client/nccloud/web/ssckm/kmsearch/action/KmSearchFuzzyQueryAction.java

@@ -0,0 +1,99 @@
+/*Gv9AlyDMdLJ+SyBORnXKb/jFvqg7QkGhyutTpOpZ5xir03o/ux67UPl9Tfh5ZyD6pu8vyWD8irri
+KxgtE7y1wA==*/
+package nccloud.web.ssckm.kmsearch.action;
+
+
+import java.util.HashMap;
+import java.util.Map;
+
+import nc.bs.logging.Logger;
+import nc.bs.sscrp.pub.query.PageInfo;
+import nc.vo.ssckm.kmknowledge.KmKnowledgeVO;
+import nccloud.framework.core.exception.ExceptionUtils;
+import nccloud.framework.core.json.IJson;
+import nccloud.framework.service.ServiceLocator;
+import nccloud.framework.web.action.itf.ICommonAction;
+import nccloud.framework.web.container.IRequest;
+import nccloud.framework.web.convert.pattern.GridConvertor;
+import nccloud.framework.web.convert.translate.Translator;
+import nccloud.framework.web.json.JsonFactory;
+import nccloud.framework.web.ui.pattern.grid.Grid;
+import nccloud.itf.ssckm.kmsearch.IKmSearchService;
+import nccloud.ssckm.param.pubconst.IKmConst;
+import nccloud.web.ssckm.client.util.KmClientCommonUtil;
+
+import com.google.gson.JsonObject;
+
+/**
+ *共享知识管理-知识搜索
+ *
+ * @since 2019年4月18日
+ * @version 1909
+ * @author chenshfc
+ */
+public class KmSearchFuzzyQueryAction implements ICommonAction {
+
+	@Override
+	public Object doAction(IRequest request) {
+	    IJson json = JsonFactory.create();
+	    IKmSearchService service = ServiceLocator.find(IKmSearchService.class);
+	    Map<String,Object> result = new HashMap<String,Object>();
+		try {
+		    String read = request.read();
+		    Map<String,Object> parammap = json.fromJson(read, Map.class);
+		    
+		    Grid grid = new Grid();
+		    GridConvertor gc = new GridConvertor();
+		    KmKnowledgeVO[] resultvos = null;
+		    int total = 0;
+		    
+		    //获取查询结果计数
+			total = service.countFuzzyQuery(parammap);
+			if(total == 0){
+				return null;
+			}
+			
+			//获取分页参数
+		    PageInfo pageinfo = KmClientCommonUtil.getPageInfo(parammap);
+			
+			//获取查询结果
+			resultvos = service.searchFuzzyQuery(parammap,pageinfo);	
+			if(resultvos == null || resultvos.length ==0){
+				return null;
+			}
+			
+			//VO转换Grid
+			grid = gc.toGrid(IKmConst.SEARCH_HEADCODE, resultvos);
+			grid.setPageid(IKmConst.SEARCH_PAGECODE);
+		 	grid.setTempletid(IKmConst.SEARCH_TEMPLATEID);
+		 	Translator translator = new Translator();
+		 	translator.translate(grid);
+		 	
+		 	//设置分页信息
+		 	pageinfo.setTotal(total);
+			if(total % pageinfo.getPageSize() > 0){
+				pageinfo.setTotalPage(total / pageinfo.getPageSize() + 1);
+			}else{
+				pageinfo.setTotalPage(total / pageinfo.getPageSize());
+			}
+			JsonObject pageInfoJson = new JsonObject();
+			pageInfoJson.addProperty("number", pageinfo.getPageIndex());
+			pageInfoJson.addProperty("size", pageinfo.getPageSize());
+			pageInfoJson.addProperty("totalElements", pageinfo.getTotal());
+			pageInfoJson.addProperty("totalPages", pageinfo.getTotalPage());
+			
+			//结果封装
+			result.put("pageinfo", pageInfoJson);
+			result.put("data", grid);
+			
+		} catch (Exception e) {
+			// TODO 异常处理未定义
+			Logger.error(e.getMessage(), e);
+			ExceptionUtils.wrapException(e);
+		}
+		return result;
+	}
+}
+
+/*Gv9AlyDMdLJ+SyBORnXKb/jFvqg7QkGhyutTpOpZ5xir03o/ux67UPl9Tfh5ZyD6pu8vyWD8irri
+KxgtE7y1wA==*/

+ 44 - 0
ssckm/src/private/nccloud/bs/ssckm/kmclassify/bp/ClassifyQueryBP.java

@@ -0,0 +1,44 @@
+/*DO9wLpCCZvo+7gmZhWeUPFOaRiTHkjIxHvB1voRwu2vLiSEh3hqNtUzddAkF/P1c*/
+package nccloud.bs.ssckm.kmclassify.bp;
+
+import java.util.Collection;
+
+import nc.bs.dao.DAOException;
+import nc.bs.framework.common.InvocationInfoProxy;
+import nc.vo.ssckm.kmclassify.KmClassifyVO;
+import nccloud.bs.ssckm.pub.bp.KmPubBP;
+import nccloud.ssckm.param.pubconst.IKmConst;
+
+/**
+ * 共享知识管理-知识分类保存
+ *
+ * @since 2019年4月18日
+ * @version 1909
+ * @author chenshfc
+ */
+public class ClassifyQueryBP extends KmPubBP {
+	public KmClassifyVO[] doProcess(boolean showUnuse) throws DAOException {
+		return process(showUnuse);
+	}
+
+	private KmClassifyVO[] process(boolean showUnuse) throws DAOException {
+		String pk_group = InvocationInfoProxy.getInstance().getGroupId();
+		Collection<KmClassifyVO> resultVOs;
+		// 不显示停用分类的查询
+		if (!showUnuse) {
+			resultVOs = this.BPDAO.retrieveByClause(KmClassifyVO.class, "pk_group = '" + pk_group
+					+ "' and " + KmClassifyVO.ISUSE + " = '" + IKmConst.USE + "' order by code");
+			// 显示停用分类的查询
+		} else {
+			resultVOs = this.BPDAO.retrieveByClause(KmClassifyVO.class, "pk_group = '" + pk_group
+					+ "' order by code");
+		}
+		if (resultVOs != null && resultVOs.size() > 0) {
+			return resultVOs.toArray(new KmClassifyVO[resultVOs.size()]);
+		}
+		return null;
+	}
+
+}
+
+/*DO9wLpCCZvo+7gmZhWeUPFOaRiTHkjIxHvB1voRwu2vLiSEh3hqNtUzddAkF/P1c*/

+ 144 - 0
ssckm/src/private/nccloud/bs/ssckm/kmsearch/bp/CountFuzzyQueryBP.java

@@ -0,0 +1,144 @@
+/*8F5Kb84w6wpKN/fG0mLUJlkVNZtzd2UqIklU6zQENBK8vSgK7HacPaySY4b/lI3f*/
+package nccloud.bs.ssckm.kmsearch.bp;
+
+import java.util.Calendar;
+import java.util.Date;
+import java.util.Map;
+
+import nc.bs.framework.common.InvocationInfoProxy;
+import nc.jdbc.framework.processor.ColumnProcessor;
+import nc.vo.ml.MultiLangContext;
+import nc.vo.pub.BusinessException;
+import nc.vo.pubapp.pattern.pub.SqlBuilder;
+import nc.vo.ssckm.kmauthority.KmAuthorityVO;
+import nc.vo.ssckm.kmclassify.KmClassifyVO;
+import nc.vo.ssckm.kmknowledge.KmKnowledgeVO;
+import nccloud.bs.ssckm.pub.bp.KmPubBP;
+import nccloud.framework.web.container.SessionContext;
+import nccloud.util.ssckm.pub.Func;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+
+/**
+ * 共享知识管理-知识分类保存
+ *
+ * @since 2019年4月18日
+ * @version 1909
+ * @author yangzongc
+ */
+public class CountFuzzyQueryBP extends KmPubBP {
+	public int doProcess(Map<String, Object> parammap) throws BusinessException {
+		return process(parammap);
+	}
+
+	private int process(Map<String, Object> parammap) throws BusinessException {
+		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+		String pk_group = InvocationInfoProxy.getInstance().getGroupId();
+		String pk_user = SessionContext.getInstance().getClientInfo().getUserid();
+		String searchcontent = Func.toString(parammap.get("searchcontent"));
+		String classify = (String) parammap.get("classify");
+		int searchtype = Integer.parseInt(Func.toString(parammap.get("searchtype")));
+		//add by guojx 增加两个页签  最常搜索的文件、最新发布时间的文件 20220416
+		boolean searchAlways = (boolean) parammap.get("searchAlways");
+		boolean searchLast = (boolean) parammap.get("searchLast");
+		Calendar calendar = Calendar.getInstance();
+		String businessDate = ((String)parammap.get("businessDate")).substring(0,10);
+		try {
+			calendar.setTime(sdf.parse(businessDate));
+		} catch (ParseException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		calendar.set(Calendar.DAY_OF_MONTH,1);
+		String beginDate = sdf.format(calendar.getTime());
+		if (searchcontent == null || "".equals(searchcontent))
+			return 0;
+		searchcontent = searchcontent.replaceAll("'", "''");
+		// 知识分类字段根据语种设置查询条件
+		String name = KmClassifyVO.NAME;
+		if (searchtype == 0 || searchtype == 2) {
+			Integer intLangSeq = MultiLangContext.getInstance().getCurrentLangSeq();
+			if (intLangSeq != null && intLangSeq.intValue() > 1)
+				name = name + String.valueOf(intLangSeq.intValue());
+		}
+		
+
+		SqlBuilder condition = new SqlBuilder();
+		SqlBuilder sql = new SqlBuilder();
+		sql.append("select count(1) from ");
+		sql.append(KmKnowledgeVO.getDefaultTableName());
+		
+		//如果查询经常查询
+		if (searchAlways) {
+			sql.append(
+					" left join (select * from knowledge_record where pk_user = '" + pk_user + "' ) knowledge_record");
+			sql.append("  on ssckm_knowledge.pk_knowledge  = knowledge_record.billid");
+		}
+		
+		sql.append(" where ");
+		sql.append(KmKnowledgeVO.POSTSTATUS + " = 1 ");
+		// add by guojx 空白查询所有
+		boolean searchAll = "*".equals(searchcontent);
+		switch (searchtype) {
+		case 0:// 全部
+			if (!searchAll) {
+				sql.append(" and ");
+				condition.append("(" + KmKnowledgeVO.CLASSIFY + " in (select " + KmClassifyVO.PK_CLASSIFY + " from "
+						+ KmClassifyVO.getDefaultTableName() + " where " + name + " like '%" + searchcontent + "%')");
+				condition.append(" or " + KmKnowledgeVO.KEYWORD + " like '%" + searchcontent + "%'");
+				condition.append(" or " + KmKnowledgeVO.TITLE + " like '%" + searchcontent + "%'");
+				condition.append(" or " + KmKnowledgeVO.CONTENT + " like '%" + searchcontent + "%')");
+			}
+			break;
+		case 1:// 关键词
+			if (!searchAll) {
+				sql.append(" and ");
+				if(searchLast) {
+					condition.append(" order by ts desc ");
+					break;
+				}
+				condition.append(KmKnowledgeVO.KEYWORD + " like '%" + searchcontent + "%'");
+			}
+			break;
+		case 2:// 分类
+			if (!searchAll) {
+				sql.append(" and ");
+				condition.append(KmKnowledgeVO.CLASSIFY + " in (select " + KmClassifyVO.PK_CLASSIFY + " from "
+						+ KmClassifyVO.getDefaultTableName() + " where " + name + " like '%" + searchcontent + "%')");
+			}
+			break;
+		case 3:// 标题
+			if (!searchAll) {
+				sql.append(" and ");
+				condition.append(KmKnowledgeVO.TITLE + " like '%" + searchcontent + "%'");
+			}
+			break;
+		case 4:// 内容
+			if (!searchAll) {
+				sql.append(" and ");
+				condition.append(KmKnowledgeVO.CONTENT + " like '%" + searchcontent + "%'");
+			}
+			break;
+		}
+
+		condition.append(" and " + KmKnowledgeVO.PK_KNOWLEDGE + " in (select " + KmAuthorityVO.PK_KNOWLEDGE + " from "
+				+ KmAuthorityVO.getDefaultTableName() + " where " + KmAuthorityVO.PK_GROUP + " = '" + pk_group + "')");
+		sql.append(condition);
+		
+		if(classify!=null) {
+			sql.append(" and " + KmKnowledgeVO.CLASSIFY +" in (select "+KmClassifyVO.PK_CLASSIFY +" from "+ KmClassifyVO.getDefaultTableName() +" where pk_classify = '"+classify+"')");
+		}
+		
+		if(searchLast) {
+			sql.append(" and to_date(substr(ts,1,10),'YYYY-MM-DD') between to_date(substr('"+beginDate+"',1,10),'YYYY-MM-DD') and to_date('"+businessDate+"','YYYY-MM-DD')");
+		}
+
+		Object sum = BPDAO.executeQuery(Func.toString(sql), new ColumnProcessor());
+
+		return Integer.parseInt(Func.toString(sum));
+	}
+
+}
+
+/* 8F5Kb84w6wpKN/fG0mLUJlkVNZtzd2UqIklU6zQENBK8vSgK7HacPaySY4b/lI3f */

+ 156 - 0
ssckm/src/private/nccloud/bs/ssckm/kmsearch/bp/SearchFuzzyQueryBP.java

@@ -0,0 +1,156 @@
+/*XLd8VPHEje7EKJSTPe6+mtwni5KtQCyMkj6WRcTb+fU+DjLL49GXWA+tLITuxuvC*/
+package nccloud.bs.ssckm.kmsearch.bp;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.List;
+import java.util.Map;
+
+import nc.bs.dao.DAOException;
+import nc.bs.framework.common.InvocationInfoProxy;
+import nc.bs.sscrp.pub.query.PageInfo;
+import nc.jdbc.framework.processor.BeanListProcessor;
+import nc.vo.ml.MultiLangContext;
+import nc.vo.pubapp.pattern.pub.SqlBuilder;
+import nc.vo.ssckm.kmauthority.KmAuthorityVO;
+import nc.vo.ssckm.kmclassify.KmClassifyVO;
+import nc.vo.ssckm.kmknowledge.KmKnowledgeVO;
+import nccloud.bs.ssckm.pub.bp.KmPubBP;
+import nccloud.framework.web.container.SessionContext;
+import nccloud.util.ssckm.kmmaintain.KmMaintainUtil;
+import nccloud.util.ssckm.pub.Func;
+
+/**
+ * 共享知识管理-知识分类保存
+ *
+ * @since 2019年4月18日
+ * @version 1909
+ * @author yangzongc
+ */
+public class SearchFuzzyQueryBP extends KmPubBP {
+	public KmKnowledgeVO[] doProcess(Map<String, Object> parammap, PageInfo pageinfo) throws DAOException {
+		return process(parammap, pageinfo);
+	}
+
+	private KmKnowledgeVO[] process(Map<String, Object> parammap, PageInfo pageinfo) throws DAOException {
+		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+		String pk_group = InvocationInfoProxy.getInstance().getGroupId();
+		String pk_user = SessionContext.getInstance().getClientInfo().getUserid();
+		String searchcontent = Func.toString(parammap.get("searchcontent"));
+		if (searchcontent == null || "".equals(searchcontent))
+			return null;
+		searchcontent = searchcontent.replaceAll("'", "''");
+		int searchtype = Integer.parseInt(Func.toString(parammap.get("searchtype")));
+		String classify = (String) parammap.get("classify");
+		// add by guojx 增加两个页签 最常搜索的文件、最新发布时间的文件 20220416
+		boolean searchAlways = (boolean) parammap.get("searchAlways");
+		boolean searchLast = (boolean) parammap.get("searchLast");
+		Calendar calendar = Calendar.getInstance();
+		String businessDate = ((String) parammap.get("businessDate")).substring(0, 10);
+		try {
+			calendar.setTime(sdf.parse(businessDate));
+		} catch (ParseException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		calendar.set(Calendar.DAY_OF_MONTH, 1);
+		String beginDate = sdf.format(calendar.getTime());
+		// 知识分类字段根据语种设置查询条件
+		String name = KmClassifyVO.NAME;
+		if (searchtype == 0 || searchtype == 2) {
+			Integer intLangSeq = MultiLangContext.getInstance().getCurrentLangSeq();
+			if (intLangSeq != null && intLangSeq.intValue() > 1)
+				name = name + String.valueOf(intLangSeq.intValue());
+		}
+
+		// 查询sql拼接
+		SqlBuilder condition = new SqlBuilder();
+		SqlBuilder sql = new SqlBuilder();
+		sql.append("select * from ");
+		sql.append(KmKnowledgeVO.getDefaultTableName());
+		
+		//如果查询经常查询
+		if(searchAlways) {
+			sql.append(" left join (select * from knowledge_record where pk_user = '"+pk_user+"' ) knowledge_record");
+			sql.append("  on ssckm_knowledge.pk_knowledge  = knowledge_record.billid");
+		}
+		
+		
+		
+		sql.append(" where ");
+		sql.append(KmKnowledgeVO.POSTSTATUS + " = 1 ");
+		// add by guojx 空白查询所有 20220416
+		boolean searchAll = "*".equals(searchcontent);
+		// 匹配查询内容
+		switch (searchtype) {
+		case 0:// 全部
+			if (!searchAll) {
+				sql.append(" and ");
+				condition.append("(" + KmKnowledgeVO.CLASSIFY + " in (select " + KmClassifyVO.PK_CLASSIFY + " from "
+						+ KmClassifyVO.getDefaultTableName() + " where " + name + " like '%" + searchcontent + "%')");
+				condition.append(" or " + KmKnowledgeVO.KEYWORD + " like '%" + searchcontent + "%'");
+				condition.append(" or " + KmKnowledgeVO.TITLE + " like '%" + searchcontent + "%'");
+				condition.append(" or " + KmKnowledgeVO.CONTENT + " like '%" + searchcontent + "%')");
+			}
+			break;
+		case 1:// 关键词
+			if (!searchAll) {
+				sql.append(" and ");
+				condition.append(KmKnowledgeVO.KEYWORD + " like '%" + searchcontent + "%'");
+			}
+			break;
+		case 2:// 分类
+			if (!searchAll) {
+				sql.append(" and ");
+				condition.append(KmKnowledgeVO.CLASSIFY + " in (select " + KmClassifyVO.PK_CLASSIFY + " from "
+						+ KmClassifyVO.getDefaultTableName() + " where " + name + " like '%" + searchcontent + "%')");
+			}
+			break;
+		case 3:// 标题
+			if (!searchAll) {
+				sql.append(" and ");
+				condition.append(KmKnowledgeVO.TITLE + " like '%" + searchcontent + "%'");
+			}
+			break;
+		case 4:// 内容
+			if (!searchAll) {
+				sql.append(" and ");
+				condition.append(KmKnowledgeVO.CONTENT + " like '%" + searchcontent + "%'");
+			}
+			break;
+		}
+
+		// 过滤集团权限
+		condition.append(" and " + KmKnowledgeVO.PK_KNOWLEDGE + " in (select " + KmAuthorityVO.PK_KNOWLEDGE + " from "
+				+ KmAuthorityVO.getDefaultTableName() + " where " + KmAuthorityVO.PK_GROUP + " = '" + pk_group + "')");
+		sql.append(condition);
+		if(searchLast) {
+			sql.append(" and to_date(substr(ts,1,10),'YYYY-MM-DD') between to_date(substr('"+beginDate+"',1,10),'YYYY-MM-DD') and to_date('"+businessDate+"','YYYY-MM-DD')");
+		}
+		
+		if(classify!=null) {
+			sql.append(" and " + KmKnowledgeVO.CLASSIFY +" in (select "+KmClassifyVO.PK_CLASSIFY +" from "+ KmClassifyVO.getDefaultTableName() +" where pk_classify = '"+classify+"')");
+		}
+		String orderInfo = null;
+		if(searchAlways) {
+			orderInfo = " order by times desc nulls last";
+		}else {
+			orderInfo = "order by " + KmKnowledgeVO.MODIFYTIME + " desc";
+		}
+
+		// 设置分页
+		String sqlstr = Func.toString(KmMaintainUtil.gePageQrySQL(pageinfo, Func.toString(sql), orderInfo));
+
+		@SuppressWarnings("unchecked")
+		List<KmKnowledgeVO> resultVOs = (List<KmKnowledgeVO>) this.BPDAO.executeQuery(sqlstr,
+				new BeanListProcessor(KmKnowledgeVO.class));
+		if (resultVOs != null && resultVOs.size() > 0) {
+			return resultVOs.toArray(new KmKnowledgeVO[resultVOs.size()]);
+		}
+		return null;
+	}
+
+}
+
+/* XLd8VPHEje7EKJSTPe6+mtwni5KtQCyMkj6WRcTb+fU+DjLL49GXWA+tLITuxuvC */

+ 320 - 0
ssckm/src/public/nc/vo/ssckm/kmclassify/KmClassifyVO.java

@@ -0,0 +1,320 @@
+/*6v/gd/U9W99nVtKYg0Q+Rnh//omG0jR/OWvY+/Gc9GPNMQQOp3btctaLzxNfMES/*/
+/***************************************************************\
+ *     The skeleton of this class is generated by an automatic *
+ * code generator for NC product. It is based on Velocity.     *
+\***************************************************************/
+package nc.vo.ssckm.kmclassify;
+	
+import nc.vo.pub.*;
+
+/**
+ * <b> 在此处简要描述此类的功能 </b>
+ * <p>
+ *     在此处添加此类的描述信息
+ * </p>
+ * 创建日期:
+ * @author 
+ * @version NCPrj ??
+ */
+@SuppressWarnings("serial")
+public class KmClassifyVO extends SuperVO {
+	private java.lang.String pk_classify;
+	private java.lang.String code;
+	private java.lang.String name;
+	private java.lang.String name2;
+	private java.lang.String name3;
+	private java.lang.String name4;
+	private java.lang.String name5;
+	private java.lang.String name6;
+	private nc.vo.pub.lang.UFBoolean isuse;
+	private java.lang.String pk_group;
+	private java.lang.String memo;
+	private java.lang.Integer dr = 0;
+	private nc.vo.pub.lang.UFDateTime ts;
+	private java.lang.String pk_parent;
+
+	public static final String PK_CLASSIFY = "pk_classify";
+	public static final String CODE = "code";
+	public static final String NAME = "name";
+	public static final String NAME2 = "name2";
+	public static final String NAME3 = "name3";
+	public static final String NAME4 = "name4";
+	public static final String NAME5 = "name5";
+	public static final String NAME6 = "name6";
+	public static final String ISUSE = "isuse";
+	public static final String PK_GROUP = "pk_group";
+	public static final String MEMO = "memo";
+			
+	public java.lang.String getPk_parent() {
+		return pk_parent;
+	}
+	public void setPk_parent(java.lang.String pk_parent) {
+		this.pk_parent = pk_parent;
+	}
+	/**
+	 * 属性pk_classify的Getter方法.属性名:主键
+	 * 创建日期:
+	 * @return java.lang.String
+	 */
+	public java.lang.String getPk_classify () {
+		return pk_classify;
+	}   
+	/**
+	 * 属性pk_classify的Setter方法.属性名:主键
+	 * 创建日期:
+	 * @param newPk_classify java.lang.String
+	 */
+	public void setPk_classify (java.lang.String newPk_classify ) {
+	 	this.pk_classify = newPk_classify;
+	} 	  
+	/**
+	 * 属性code的Getter方法.属性名:编码
+	 * 创建日期:
+	 * @return java.lang.String
+	 */
+	public java.lang.String getCode () {
+		return code;
+	}   
+	/**
+	 * 属性code的Setter方法.属性名:编码
+	 * 创建日期:
+	 * @param newCode java.lang.String
+	 */
+	public void setCode (java.lang.String newCode ) {
+	 	this.code = newCode;
+	} 	  
+	/**
+	 * 属性name的Getter方法.属性名:$map.displayName
+	 * 创建日期:
+	 * @return java.lang.String
+	 */
+	public java.lang.String getName () {
+		return name;
+	}   
+	/**
+	 * 属性name的Setter方法.属性名:$map.displayName
+	 * 创建日期:
+	 * @param newName java.lang.String
+	 */
+	public void setName (java.lang.String newName ) {
+	 	this.name = newName;
+	} 	  
+	/**
+	 * 属性name2的Getter方法.属性名:$map.displayName
+	 * 创建日期:
+	 * @return java.lang.String
+	 */
+	public java.lang.String getName2 () {
+		return name2;
+	}   
+	/**
+	 * 属性name2的Setter方法.属性名:$map.displayName
+	 * 创建日期:
+	 * @param newName2 java.lang.String
+	 */
+	public void setName2 (java.lang.String newName2 ) {
+	 	this.name2 = newName2;
+	} 	  
+	/**
+	 * 属性name3的Getter方法.属性名:$map.displayName
+	 * 创建日期:
+	 * @return java.lang.String
+	 */
+	public java.lang.String getName3 () {
+		return name3;
+	}   
+	/**
+	 * 属性name3的Setter方法.属性名:$map.displayName
+	 * 创建日期:
+	 * @param newName3 java.lang.String
+	 */
+	public void setName3 (java.lang.String newName3 ) {
+	 	this.name3 = newName3;
+	} 	  
+	/**
+	 * 属性name4的Getter方法.属性名:$map.displayName
+	 * 创建日期:
+	 * @return java.lang.String
+	 */
+	public java.lang.String getName4 () {
+		return name4;
+	}   
+	/**
+	 * 属性name4的Setter方法.属性名:$map.displayName
+	 * 创建日期:
+	 * @param newName4 java.lang.String
+	 */
+	public void setName4 (java.lang.String newName4 ) {
+	 	this.name4 = newName4;
+	} 	  
+	/**
+	 * 属性name5的Getter方法.属性名:$map.displayName
+	 * 创建日期:
+	 * @return java.lang.String
+	 */
+	public java.lang.String getName5 () {
+		return name5;
+	}   
+	/**
+	 * 属性name5的Setter方法.属性名:$map.displayName
+	 * 创建日期:
+	 * @param newName5 java.lang.String
+	 */
+	public void setName5 (java.lang.String newName5 ) {
+	 	this.name5 = newName5;
+	} 	  
+	/**
+	 * 属性name6的Getter方法.属性名:$map.displayName
+	 * 创建日期:
+	 * @return java.lang.String
+	 */
+	public java.lang.String getName6 () {
+		return name6;
+	}   
+	/**
+	 * 属性name6的Setter方法.属性名:$map.displayName
+	 * 创建日期:
+	 * @param newName6 java.lang.String
+	 */
+	public void setName6 (java.lang.String newName6 ) {
+	 	this.name6 = newName6;
+	} 	  
+	/**
+	 * 属性isuse的Getter方法.属性名:启用状态
+	 * 创建日期:
+	 * @return nc.vo.pub.lang.UFBoolean
+	 */
+	public nc.vo.pub.lang.UFBoolean getIsuse () {
+		return isuse;
+	}   
+	/**
+	 * 属性isuse的Setter方法.属性名:启用状态
+	 * 创建日期:
+	 * @param newIsuse nc.vo.pub.lang.UFBoolean
+	 */
+	public void setIsuse (nc.vo.pub.lang.UFBoolean newIsuse ) {
+	 	this.isuse = newIsuse;
+	} 	  
+	/**
+	 * 属性pk_group的Getter方法.属性名:集团
+	 * 创建日期:
+	 * @return java.lang.String
+	 */
+	public java.lang.String getPk_group () {
+		return pk_group;
+	}   
+	/**
+	 * 属性pk_group的Setter方法.属性名:集团
+	 * 创建日期:
+	 * @param newPk_group java.lang.String
+	 */
+	public void setPk_group (java.lang.String newPk_group ) {
+	 	this.pk_group = newPk_group;
+	} 	  
+	/**
+	 * 属性memo的Getter方法.属性名:备注
+	 * 创建日期:
+	 * @return java.lang.String
+	 */
+	public java.lang.String getMemo () {
+		return memo;
+	}   
+	/**
+	 * 属性memo的Setter方法.属性名:备注
+	 * 创建日期:
+	 * @param newMemo java.lang.String
+	 */
+	public void setMemo (java.lang.String newMemo ) {
+	 	this.memo = newMemo;
+	} 	  
+	/**
+	 * 属性dr的Getter方法.属性名:dr
+	 * 创建日期:
+	 * @return java.lang.Integer
+	 */
+	public java.lang.Integer getDr () {
+		return dr;
+	}   
+	/**
+	 * 属性dr的Setter方法.属性名:dr
+	 * 创建日期:
+	 * @param newDr java.lang.Integer
+	 */
+	public void setDr (java.lang.Integer newDr ) {
+	 	this.dr = newDr;
+	} 	  
+	/**
+	 * 属性ts的Getter方法.属性名:ts
+	 * 创建日期:
+	 * @return nc.vo.pub.lang.UFDateTime
+	 */
+	public nc.vo.pub.lang.UFDateTime getTs () {
+		return ts;
+	}   
+	/**
+	 * 属性ts的Setter方法.属性名:ts
+	 * 创建日期:
+	 * @param newTs nc.vo.pub.lang.UFDateTime
+	 */
+	public void setTs (nc.vo.pub.lang.UFDateTime newTs ) {
+	 	this.ts = newTs;
+	} 	  
+ 
+	/**
+	  * <p>取得父VO主键字段.
+	  * <p>
+	  * 创建日期:
+	  * @return java.lang.String
+	  */
+	public java.lang.String getParentPKFieldName() {
+	    return null;
+	}   
+    
+	/**
+	  * <p>取得表主键.
+	  * <p>
+	  * 创建日期:
+	  * @return java.lang.String
+	  */
+	public java.lang.String getPKFieldName() {
+	  return "pk_classify";
+	}
+    
+	/**
+	 * <p>返回表名称.
+	 * <p>
+	 * 创建日期:
+	 * @return java.lang.String
+	 */
+	public java.lang.String getTableName() {
+		return "ssckm_classify";
+	}    
+	
+	/**
+	 * <p>返回表名称.
+	 * <p>
+	 * 创建日期:
+	 * @return java.lang.String
+	 */
+	public static java.lang.String getDefaultTableName() {
+		return "ssckm_classify";
+	}    
+    
+    /**
+	  * 按照默认方式创建构造子.
+	  *
+	  * 创建日期:
+	  */
+     public KmClassifyVO() {
+		super();	
+	}    
+	
+	@nc.vo.annotation.MDEntityInfo(beanFullclassName =  "nc.vo.ssckm.kmclassify.KmClassifyVO" )
+	public IVOMeta getMetaData() {
+   		return null;
+  	}
+} 
+
+
+
+/*6v/gd/U9W99nVtKYg0Q+Rnh//omG0jR/OWvY+/Gc9GPNMQQOp3btctaLzxNfMES/*/