ianService.java~1~
上传用户:zghglow
上传日期:2022-08-09
资源大小:27227k
文件大小:11k
源码类别:

WEB源码(ASP,PHP,...)

开发平台:

JavaScript

  1. package cn.com.ivisions.xfb.service;
  2. import java.util.ArrayList;
  3. import java.util.Collection;
  4. import java.util.HashMap;
  5. import java.util.Iterator;
  6. import javax.servlet.http.HttpServletRequest;
  7. import cn.com.ivisions.dipper.Result;
  8. import cn.com.ivisions.dipper.data.Context;
  9. import cn.com.ivisions.dipper.data.ContextObject;
  10. import cn.com.ivisions.dipper.model.Model;
  11. import cn.com.ivisions.dipper.operation.OperationRunner;
  12. import cn.com.ivisions.xfb.RequestData;
  13. public class DianService {
  14. // 对应tbxTransactEntity表中的dianOnline字段,0表示此办理单位对来电流程是不联网状态.1表示是联网状态.
  15. private final static String onLineFlag = "1";
  16. // 对应tbxTransactEntity表中的transactEntityGrade字段,1表示此办理单位级别为区县级,2表示市委办局级.3或空表示为一般的办理单位.
  17. private final static String weiBanJuFlag = "2";
  18. private static final Integer SOURCEENTITYID = new Integer(9);
  19. private static final String SOURCEENTITYCODE = "SXFB-ENT9";
  20. private static final Integer TRANSFERENTITYID = new Integer(53);
  21. /**
  22.  * 
  23.  * 检查信访件主送单位是否全部联网(只针对来电这种信访形式)
  24.  * 
  25.  * 
  26.  * @param Integer
  27.  *            appealId
  28.  * @return boolean
  29.  */
  30. public static boolean checkAllOnLineForDian(Integer appealId) {
  31. return checkAllOnLineForDian(AppealService
  32. .listAppeal_TransactEntitys(appealId));
  33. }
  34. /**
  35.  * 
  36.  * 检查指定单位是否全部联网(只针对来电这种信访形式)�
  37.  * 
  38.  * @param Collection
  39.  *            coll
  40.  * @return boolean
  41.  */
  42. public static boolean checkAllOnLineForDian(Collection collection) {
  43. boolean allOnLine = true;
  44. if (collection == null) {
  45. allOnLine = false;
  46. } else if (collection.isEmpty()) {
  47. allOnLine = false;
  48. } else {
  49. for (Iterator iter = collection.iterator(); iter.hasNext();) {
  50. Model model = (Model) iter.next();
  51. if (model.getStringValue("dianOnline") == null) {
  52. allOnLine = false;
  53. break;
  54. } else if (model.getStringValue("dianOnline").equals("")) {
  55. allOnLine = false;
  56. break;
  57. } else if (!model.getStringValue("dianOnline").equals(
  58. onLineFlag)) {
  59. allOnLine = false;
  60. break;
  61. }
  62. }
  63. }
  64. return allOnLine;
  65. }
  66. /**
  67.  * 
  68.  * 检查信访件主送单位是否全都不联网(只针对来电这种信访形式)
  69.  * 
  70.  * 
  71.  * @param Integer
  72.  *            appealId
  73.  * @return boolean
  74.  */
  75. public static boolean checkAllOffLineForDian(Integer appealId) {
  76. return checkAllOffLineForDian(AppealService
  77. .listAppeal_TransactEntitys(appealId));
  78. }
  79. /**
  80.  * 
  81.  * 检查指定单位是否全都不联网(只针对来电这种信访形式)�
  82.  * 
  83.  * @param Collection
  84.  *            coll
  85.  * @return boolean
  86.  */
  87. public static boolean checkAllOffLineForDian(Collection collection) {
  88. boolean allOnLine = true;
  89. if (collection == null) {
  90. allOnLine = false;
  91. } else if (collection.isEmpty()) {
  92. allOnLine = false;
  93. } else {
  94. for (Iterator iter = collection.iterator(); iter.hasNext();) {
  95. Model model = (Model) iter.next();
  96. if (model.getStringValue("dianOnline") != null
  97. && model.getStringValue("dianOnline")
  98. .equals(onLineFlag)) {
  99. allOnLine = false;
  100. break;
  101. }
  102. }
  103. }
  104. return allOnLine;
  105. }
  106. /**
  107.  * 根据tbxEntity表中的entityId去查出对应tbxTransactEntity的记录
  108.  * 
  109.  * @param int
  110.  *            entityId
  111.  * 
  112.  * @return Model
  113.  */
  114. public static Model getTransactEntityByEntityId(int entityId) {
  115. Model model = null;
  116. Context ctx = new ContextObject();
  117. ctx.setAttribute("entityId", new Integer(entityId));
  118. OperationRunner runner = new OperationRunner(ctx);
  119. try {
  120. model = runner.extractModel("getTransactEntityByEntityId");
  121. } catch (Exception ex) {
  122. ex.printStackTrace();
  123. }
  124. return model;
  125. }
  126. /**
  127.  * 验证此办理单位是否为市委办局级别.
  128.  * 
  129.  * @param transactEntity
  130.  * @return
  131.  */
  132. public static boolean checkShiWeiBanJu(Model transactEntity) {
  133. boolean result = true;
  134. if (transactEntity == null) {
  135. result = false;
  136. } else if (transactEntity.getStringValue("transactEntityGrade") == null) {
  137. result = false;
  138. } else if (!transactEntity.getStringValue("transactEntityGrade")
  139. .equals(weiBanJuFlag)) {
  140. result = false;
  141. }
  142. return result;
  143. }
  144. /**
  145.  * 验证此办理单位是否为市委办局级别.
  146.  * 
  147.  * @param entityId
  148.  * @return
  149.  */
  150. public static boolean checkShiWeiBanJu(int entityId) {
  151. return checkShiWeiBanJu(getTransactEntityByEntityId(entityId));
  152. }
  153. /**
  154.  * 根据办理单位的等级来列出办理单位对应的TBENTITY表的信息
  155.  * 
  156.  * @param transactEntityGrade
  157.  * @return
  158.  */
  159. public static Collection listTransactEntityByGrade(
  160. String transactEntityGrade) {
  161. Collection coll = new ArrayList();
  162. Context ctx = new ContextObject();
  163. ctx.setAttribute("transactEntityGrade", transactEntityGrade);
  164. OperationRunner runner = new OperationRunner(ctx);
  165. try {
  166. coll = runner.search("listTransactEntityByGrade").getResult();
  167. } catch (Exception ex) {
  168. ex.printStackTrace();
  169. }
  170. return coll;
  171. }
  172. /**
  173.  * <p>
  174.  * 下转信访件
  175.  * 
  176.  * 
  177.  * @param HttpServletRequest
  178.  *            request
  179.  */
  180. public static void batchTransferAppeal(HttpServletRequest request) {
  181. Integer appealId = RequestData.requestInteger("appealId", request);
  182. String appealCode = RequestData.requestString("appealCode", request);
  183. Integer appealFormId = RequestData.requestInteger("appealFormId",
  184. request);
  185. String transferFlowNode = RequestData.requestString("transferFlowNode",
  186. request);
  187. Integer transferFlowRole = RequestData.requestInteger(
  188. "transferFlowRole", request);
  189. String sendToUnits = RequestData.requestString("sendToUnits", request);
  190. Collection coll = listTransactEntityByIds(sendToUnits);
  191. for (Iterator iter = coll.iterator(); iter.hasNext();) {
  192. Model model = (Model) iter.next();
  193. HashMap hmp = new HashMap();
  194. hmp.put("sourceAppealId", appealId);
  195. hmp.put("sourceAppealCode", appealCode);
  196. hmp.put("sourceEntityId", SOURCEENTITYID);
  197. hmp.put("sourceEntityCode", SOURCEENTITYCODE);
  198. hmp.put("transferEntityId", TRANSFERENTITYID);
  199. hmp.put("appealFormId", appealFormId);
  200. hmp.put("targetEntityId",
  201. new Integer(model.getIntValue("entityId")));
  202. hmp.put("targetEntityCode", model
  203. .getStringValue("transactEntityCode"));
  204. if (model.getStringValue("dianOnline").equals("1")) {
  205.                              if (model.getIntValue("absoluteSystem") == 1) {
  206. hmp.put("inSide", new Integer(1));
  207. Model appealModel = transferAppeal(hmp);
  208. String userIds = UserService.listEntityUserIds(new Integer(
  209. model.getIntValue("entityId")), new Integer(0),
  210. transferFlowRole);
  211. FlowService.startFlow(new Integer(appealModel
  212. .getIntValue("appealFormId")), transferFlowNode,
  213. userIds, FlowService.FLOWSTATUSON, null, userIds, null,
  214. new Integer(appealModel.getIntValue("appealId")));
  215. }else if (model.getIntValue("absoluteSystem") == 2) {
  216.                 hmp.put("inSide", new Integer(0));
  217.                 Model appealModel = transferAppeal(hmp);
  218.                 DipperService.execute("updateDataCommuteStatus",request);
  219.             }
  220. }
  221. }
  222. /**
  223.  * <p>
  224.  * 根据单位ids取得信息
  225.  * 
  226.  * @param String
  227.  *            endityIds
  228.  * @return Collection
  229.  */
  230. public static Collection listTransactEntityByIds(String entityIds) {
  231. Collection list = new ArrayList();
  232. Context ctx = new ContextObject();
  233. ctx.setAttribute("transactEntityIds", entityIds);
  234. OperationRunner runner = new OperationRunner(ctx);
  235. try {
  236. list = runner.search("listTransactEntityByIds").getResult();
  237. } catch (Exception ex) {
  238. ex.printStackTrace();
  239. }
  240. return list;
  241. }
  242. /**
  243.  * <p>
  244.  * 添加区县信访件并记录下转信息
  245.  * 
  246.  * @param HashMap
  247.  *            <p>
  248.  *            HashMap包含的信息
  249.  * 
  250.  * @param sourceAppealId
  251.  *            源信访件id
  252.  * @param sourceAppealCode
  253.  *            源信访件编号
  254.  * @param sourceEntityId
  255.  *            源单位Id
  256.  * @param appealFormId
  257.  *            信访形式
  258.  * @param targetEntityId
  259.  *            目标单位Id
  260.  * @param inSide
  261.  *            是否系统内单位
  262.  * 
  263.  */
  264. public static Model transferAppeal(HashMap hmp) {
  265. Model model = null;
  266. Context ctx = new ContextObject();
  267. ctx.addHashMap(hmp);
  268. OperationRunner runner = new OperationRunner(ctx);
  269. try {
  270. Result rs = runner.operate("transferAppeal");
  271. model = (Model) rs.getResultValue();
  272. } catch (Exception ex) {
  273. ex.printStackTrace();
  274. }
  275. return model;
  276. }
  277. /**
  278.  * <p>
  279.  * 检测用户是否具有某个角色
  280.  * 
  281.  * 
  282.  * @param int
  283.  *            userId
  284.  * @param int
  285.  *            roleId
  286.  * @param Collection
  287.  *            coll
  288.  * @return boolean
  289.  */
  290. public static boolean checkUserHaveRole(int userId, String roleName,
  291. Collection coll) {
  292. boolean haveRole = false;
  293. Iterator ite = coll.iterator();
  294. while (ite.hasNext()) {
  295. Model roleModel = (Model) ite.next();
  296. if (userId != roleModel.getIntValue("userId"))
  297. continue;
  298. if (roleModel.getStringValue("roleName").equals(roleName)) {
  299. haveRole = true;
  300. break;
  301. }
  302. }
  303. return haveRole;
  304. }
  305. /**
  306.  * 根据appealId和adviceTitle两个字段来取tbxAppeal_advice表中的记录
  307.  * 
  308.  * @param int
  309.  *            appealId
  310.  * @param String
  311.  *            adviceTitle
  312.  * @return Model
  313.  */
  314. public static Model getAppealAdviceByAppealIdAndTitle(int appealId,
  315. String adviceTitle) {
  316. Model model = null;
  317. Context ctx = new ContextObject();
  318. ctx.setAttribute("appealId", new Integer(appealId));
  319. ctx.setAttribute("adviceTitle", adviceTitle);
  320. OperationRunner runner = new OperationRunner(ctx);
  321. try {
  322. model = runner.extractModel("getAdviceByAppealIdTitle");
  323. } catch (Exception ex) {
  324. ex.printStackTrace();
  325. }
  326. return model;
  327. }
  328. /**
  329.  * 根据appealId和adviceTitle两个字段来更新tbxAppeal_advice表中的adviceContent字段
  330.  * 
  331.  * @param int
  332.  *            appealId
  333.  * @param String
  334.  *            adviceTitle
  335.  * @return Model
  336.  */
  337. public static void updateAppealAdvice(int appealId, String adviceTitle, String adviceContent) {
  338. Context ctx = new ContextObject();
  339. ctx.setAttribute("appealId", new Integer(appealId));
  340. ctx.setAttribute("adviceTitle", adviceTitle);
  341. ctx.setAttribute("adviceContent", adviceContent);
  342. OperationRunner runner = new OperationRunner(ctx);
  343. try {
  344. runner.extractModel("updateAppealAdvice");
  345. } catch (Exception ex) {
  346. ex.printStackTrace();
  347. }
  348. }
  349. }