DocTempletFieldsManager.java
上传用户:mingda
上传日期:2017-06-20
资源大小:27691k
文件大小:11k
源码类别:

OA系统

开发平台:

Java

  1. package com.gforce.gfoa;
  2. /**
  3.  * <p>Title: 吉力科技办公自动化系统</p>
  4.  * <p>Description: 吉力科技办公自动化系统</p>
  5.  * <p>Copyright: 版权所有 2003 (c) 西安吉力科技发展有限公司  Copyright (c) 2003 GForce Sceince & Technology</p>
  6.  * <p>Company: 西安吉力科技发展有限公司 (GForce Sceince & Technology)</p>
  7.  * @author 常兵
  8.  * @version 2.0
  9.  * DATE : 2003-12-04
  10.  * 公文模板字段管理类
  11.  */
  12. import com.gforce.currency.database.*;
  13. import java.util.*;
  14. import com.gforce.currency.*;
  15. public class DocTempletFieldsManager
  16.   extends RecordManager
  17. {
  18.   public DocTempletFieldsManager()
  19.   {}
  20.   protected final static String TableName = "DocTempletFields"; //定义声明本类操作表名称
  21.   protected final static String IDFieldName = "ID"; //定义声明主键或者可以确定唯一记录的字段名称为“ID”,必须为自增整型
  22.   protected final static String[] NumericFieldsName =
  23.     {
  24.     "OrderNumber", "IsMustFill", "IsUseful", "TempletID", "MaxLength"}; //声明数值型字段名称
  25.   protected final static String[] DatetimeFieldsName =
  26.     {}; //声明日期时间型字段名称
  27.   protected final static String[] StringFieldsName =
  28.     {
  29.     "FieldName", "FieldType", "EnglishAb", "Event", "Options",
  30.     "FieldContent", "WritableUserIDs", "ReadableUserIDs",
  31.     "SearchType", "SearchFieldsInForm", "DefaultValue"}; //声明字符型字段名称
  32.   protected final static String[] TextFieldsName =
  33.     {}; //声明大字符串型字段名称
  34.   /* * 根据字段名称获取插入数据时表单元素名称
  35.    * @param strFieldName  字段名称
  36.    * @return  表单素名称
  37.    */
  38.   protected String InsertParament(String strFieldName)
  39.   {
  40.     return "" + strFieldName + ""; //可以根据需要加前缀、后缀
  41.   }
  42.   /**
  43.    * 根据字段名称获取修改数据时表单元素名称
  44.    * @param strFieldName  字段名称
  45.    * @return  表单素名称
  46.    */
  47.   protected String UpdateParament(String strFieldName)
  48.   {
  49.     return "" + strFieldName + ""; //可以根据需要加前缀、后缀
  50.   }
  51.   /**
  52.    * 获取本类操作表名称
  53.    * @return  表名称
  54.    */
  55.   public String getTableName()
  56.   { //获取本类操作表名称
  57.     return TableName;
  58.   }
  59.   protected String getIDFieldName()
  60.   { //获取主键或者可以确定唯一记录的字段名称
  61.     return IDFieldName;
  62.   }
  63.   protected String[] getNumericFieldsName()
  64.   { //获取数值型字段名称
  65.     return NumericFieldsName;
  66.   }
  67.   protected String[] getStringFieldsName()
  68.   { //获取字符型字段名称
  69.     return StringFieldsName;
  70.   }
  71.   protected String[] getDatetimeFieldsName()
  72.   { //获取日期时间型字段名称
  73.     return DatetimeFieldsName;
  74.   }
  75.   protected String[] getTextFieldsName()
  76.   { //获取大字符串型字段名称
  77.     return TextFieldsName;
  78.   }
  79.   /**
  80.    * 获取符合指定条件的公文模板字段记录集
  81.    * @param strID 公文模板字段信息唯一标识
  82.    * @param strFieldName 公文模板字段名称
  83.    * @param strFieldType 公文模板字段类型
  84.    * @param strEnglishAb 公文模板字段英文缩写
  85.    * @param strOrderNumber 公文模板字段排序编号
  86.    * @param strEvent 公文模板字段激活事件
  87.    * @param strOptions 公文模板字段选项内容
  88.    * @param strFieldContent 公文模板字段填写说明
  89.    * @param strIsMustFill 公文模板字段信息-是否必须填写
  90.    * @param strWritableUserIDs 公文模板字段信息-可写用户IDs
  91.    * @param strReadableUserIDs 公文模板字段信息-可读用户IDs
  92.    * @param strIsUseful 公文模板字段信息-是否可用
  93.    * @param strSearchType 公文模板字段搜索类型
  94.    * @param strSearchFieldsInForm 公文模板字段信息-搜索对应字段
  95.    * @param strTempletID 公文模板字段信息-模板ID
  96.    * @param strTempletName 公文模板字段信息-模板名称
  97.    * @param strMaxLength 公文模板字段最大长度
  98.    * @param strDefaultValue 公文模板字段默认值
  99.    * @param strOrderBy 排序字段
  100.    * @param strIsDesc 是否降序排序
  101.    * @return 符合条件记录向量集
  102.    */
  103.   public static Vector getRecordBySearch(String strID, String strFieldName,
  104.                                          String strFieldType,
  105.                                          String strEnglishAb,
  106.                                          String strOrderNumber, String strEvent,
  107.                                          String strOptions,
  108.                                          String strFieldContent,
  109.                                          String strIsMustFill,
  110.                                          String strWritableUserIDs,
  111.                                          String strReadableUserIDs,
  112.                                          String strIsUseful,
  113.                                          String strSearchType,
  114.                                          String strSearchFieldsInForm,
  115.                                          String strTempletID,
  116.                                          String strTempletName,
  117.                                          String strMaxLength,
  118.                                          String strDefaultValue,
  119.                                          String strOrderBy, String strIsDesc)
  120.   {
  121.     String strSQL =
  122.       "SELECT a.[ID],a.[FieldName],a.[FieldType],a.[EnglishAb],a.[OrderNumber]," +
  123.       "a.[Event],a.[Options],a.[FieldContent],a.[IsMustFill],a.[WritableUserIDs]," +
  124.       "a.[ReadableUserIDs],a.[IsUseful],a.[SearchType],a.[SearchFieldsInForm]," +
  125.       "a.[TempletID],a.[MaxLength],a.[DefaultValue],b.[TempletName] FROM [" +
  126.       TableName + "] as a " +
  127.       "left outer join [DocumentTemplet] as b on (a.TempletID = b.ID) WHERE a.[ID] > 0";
  128.     if (strID.trim().length() > 0)
  129.     {
  130.       strSQL += " and (a.[ID] in (" + strID + "))";
  131.     }
  132.     if (strFieldName.trim().length() > 0)
  133.     {
  134.       strSQL += " and a.[FieldName] like '%" + strFieldName + "%'";
  135.     }
  136.     if (strFieldType.trim().length() > 0)
  137.     {
  138.       strSQL += " and a.[FieldType] like '%" + strFieldType + "%'";
  139.     }
  140.     if (strEnglishAb.trim().length() > 0)
  141.     {
  142.       strSQL += " and a.[EnglishAb] like '%" + strEnglishAb + "%'";
  143.     }
  144.     if (strOrderNumber.trim().length() > 0)
  145.     {
  146.       strSQL += " and (a.[OrderNumber] in (" + strOrderNumber + "))";
  147.     }
  148.     if (strEvent.trim().length() > 0)
  149.     {
  150.       strSQL += " and a.[Event] like '%" + strEvent + "%'";
  151.     }
  152.     if (strOptions.trim().length() > 0)
  153.     {
  154.       strSQL += " and a.[Options] like '%" + strOptions + "%'";
  155.     }
  156.     if (strFieldContent.trim().length() > 0)
  157.     {
  158.       strSQL += " and a.[FieldContent] like '%" + strFieldContent + "%'";
  159.     }
  160.     if (strIsMustFill.trim().length() > 0)
  161.     {
  162.       if (strIsMustFill.equalsIgnoreCase("True"))
  163.       {
  164.         strSQL += " and a.[IsMustFill] = 1";
  165.       }
  166.       else if (strIsMustFill.equalsIgnoreCase("False"))
  167.       {
  168.         strSQL += " and a.[IsMustFill] = 0";
  169.       }
  170.     }
  171.     if (strWritableUserIDs.trim().length() > 0)
  172.     {
  173.       strSQL += " and a.[WritableUserIDs] like '%" + strWritableUserIDs + "%'";
  174.     }
  175.     if (strReadableUserIDs.trim().length() > 0)
  176.     {
  177.       strSQL += " and a.[ReadableUserIDs] like '%" + strReadableUserIDs + "%'";
  178.     }
  179.     if (strIsUseful.trim().length() > 0)
  180.     {
  181.       if (strIsUseful == "True")
  182.       {
  183.         strSQL += " and a.[IsUseful] = 1";
  184.       }
  185.       else if (strIsUseful == "False")
  186.       {
  187.         strSQL += " and a.[IsUseful] = 0";
  188.       }
  189.     }
  190.     if (strSearchType.trim().length() > 0)
  191.     {
  192.       strSQL += " and a.[SearchType] like '%" + strSearchType + "%'";
  193.     }
  194.     if (strSearchFieldsInForm.trim().length() > 0)
  195.     {
  196.       strSQL += " and a.[SearchFieldsInForm] like '%" + strSearchFieldsInForm +
  197.         "%'";
  198.     }
  199.     if (strTempletID.trim().length() > 0)
  200.     {
  201.       strSQL += " and (a.[TempletID] in (" + strTempletID + "))";
  202.     }
  203.     if (strTempletName.trim().length() > 0)
  204.     {
  205.       strSQL += " and b.[TempletName] = " + strTempletName;
  206.     }
  207.     if (strMaxLength.trim().length() > 0)
  208.     {
  209.       strSQL += " and (a.[MaxLength] in (" + strMaxLength + "))";
  210.     }
  211.     if (strDefaultValue.trim().length() > 0)
  212.     {
  213.       strSQL += " and a.[DefaultValue] like '%" + strDefaultValue + "%'";
  214.     }
  215.     if (strOrderBy.trim().length() > 0)
  216.     {
  217.       if (strIsDesc.equalsIgnoreCase("True"))
  218.       {
  219.         strSQL += " Order by " + strOrderBy + " desc";
  220.       }
  221.       else
  222.       {
  223.         strSQL += " Order by " + strOrderBy + "";
  224.       }
  225.     }
  226.     else
  227.     {
  228.       strSQL += " Order by OrderNumber";
  229.     }
  230.     Vector vt = SQLManager.GetResultSet(strSQL);
  231.     return vt;
  232.   }
  233.   /*重载getRecordBySearch方法,按ID主键返回*/
  234.   public static Vector getRecordBySearch(String strID)
  235.   {
  236.     Vector vt = getRecordBySearch(strID, "", "", "", "", "", "", "", "", "", "",
  237.                                   "", "", "", "", "", "", "", "", "");
  238.     return vt;
  239.   }
  240.   /**
  241.    * 追加更新字段权限
  242.    * @param strPurview 权限值
  243.    * @param strTempletID 公文模板ID
  244.    * @return String 操作结果标志
  245.    */
  246.   public static String CheckedUpdate(String strPurview, String strUserIDs,
  247.                                      String strTempletID, String OpType,
  248.                                      String strOpKind, String strIntersection)
  249.   {
  250.     Vector vt = getRecordBySearch(strPurview, "", "", "", "", "", "", "", "", "", "",
  251.                                   "", "", "", strTempletID, "", "", "", "", "");
  252.     if (vt.size() < 1)
  253.     {
  254.       return "DataInitError";
  255.     }
  256.     else
  257.     {
  258.       if (strOpKind.equalsIgnoreCase("0"))
  259.       { //单字段操作,直接Update
  260.         if (OpType.equalsIgnoreCase("Writeable"))
  261.         {
  262.           SQLManager.ExcuteSQL(
  263.             "UPDATE DocTempletFields SET WritableUserIDs = '" + strUserIDs +
  264.             "' where ID = (" + strPurview + ")");
  265.         }
  266.         else if (OpType.equalsIgnoreCase("Readable"))
  267.         {
  268.           SQLManager.ExcuteSQL(
  269.             "UPDATE DocTempletFields SET ReadableUserIDs = '" + strUserIDs +
  270.             "' where ID = (" + strPurview + ")");
  271.         }
  272.       }
  273.       else
  274.       { //多字段操作
  275.         if (OpType.equalsIgnoreCase("Writeable"))
  276.         {
  277.           for (int i = 0; i < vt.size(); i++)
  278.           {
  279.             SQLManager.ExcuteSQL(
  280.               "UPDATE DocTempletFields SET WritableUserIDs = '" +
  281.               StringNew.getMergeOfIDs(StringNew.getSubtractOfIDs( ( (Vector)
  282.               vt.get(i)).get(9).toString(), strIntersection), strUserIDs) +
  283.               "' where ID = (" + ( (Vector) vt.get(i)).get(0) + ")");
  284.           }
  285.         }
  286.         else if (OpType.equalsIgnoreCase("Readable"))
  287.         {
  288.           for (int i = 0; i < vt.size(); i++)
  289.           {
  290.             SQLManager.ExcuteSQL(
  291.               "UPDATE DocTempletFields SET ReadableUserIDs = '" +
  292.               StringNew.getMergeOfIDs(StringNew.getSubtractOfIDs( ( (Vector)
  293.               vt.get(i)).get(10).toString(), strIntersection), strUserIDs) +
  294.               "' where ID = (" + ( (Vector) vt.get(i)).get(0) + ")");
  295.           }
  296.         }
  297.       }
  298.     }
  299.     return "Success";
  300.   }
  301. }