ProjectServiceImpl.java 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256
  1. package cn.com.lzt.project.service.impl;
  2. import cn.com.lzt.project.service.ProjectServiceI;
  3. import org.apache.commons.lang.xwork.StringUtils;
  4. import org.jeecgframework.core.common.service.impl.CommonServiceImpl;
  5. import cn.com.lzt.project.entity.ProjectEntity;
  6. import org.springframework.stereotype.Service;
  7. import org.springframework.transaction.annotation.Transactional;
  8. import java.util.ArrayList;
  9. import java.util.HashMap;
  10. import java.util.List;
  11. import java.util.Map;
  12. import java.util.UUID;
  13. import java.io.Serializable;
  14. import org.jeecgframework.core.util.ApplicationContextUtil;
  15. import org.jeecgframework.core.util.MyClassLoader;
  16. import org.jeecgframework.core.util.StringUtil;
  17. import org.jeecgframework.web.cgform.enhance.CgformEnhanceJavaInter;
  18. import org.jeecgframework.web.system.pojo.base.TSDepart;
  19. @Service("projectService")
  20. @Transactional
  21. public class ProjectServiceImpl extends CommonServiceImpl implements ProjectServiceI {
  22. public void delete(ProjectEntity entity) throws Exception{
  23. super.delete(entity);
  24. //执行删除操作增强业务
  25. this.doDelBus(entity);
  26. }
  27. public Serializable save(ProjectEntity entity) throws Exception{
  28. Serializable t = super.save(entity);
  29. //执行新增操作增强业务
  30. this.doAddBus(entity);
  31. return t;
  32. }
  33. public void saveOrUpdate(ProjectEntity entity) throws Exception{
  34. super.saveOrUpdate(entity);
  35. //执行更新操作增强业务
  36. this.doUpdateBus(entity);
  37. }
  38. /**
  39. * 新增操作增强业务
  40. * @param t
  41. * @return
  42. */
  43. private void doAddBus(ProjectEntity t) throws Exception{
  44. //-----------------sql增强 start----------------------------
  45. //-----------------sql增强 end------------------------------
  46. //-----------------java增强 start---------------------------
  47. //-----------------java增强 end-----------------------------
  48. }
  49. /**
  50. * 更新操作增强业务
  51. * @param t
  52. * @return
  53. */
  54. private void doUpdateBus(ProjectEntity t) throws Exception{
  55. //-----------------sql增强 start----------------------------
  56. //-----------------sql增强 end------------------------------
  57. //-----------------java增强 start---------------------------
  58. //-----------------java增强 end-----------------------------
  59. }
  60. /**
  61. * 删除操作增强业务
  62. * @param id
  63. * @return
  64. */
  65. private void doDelBus(ProjectEntity t) throws Exception{
  66. //-----------------sql增强 start----------------------------
  67. //-----------------sql增强 end------------------------------
  68. //-----------------java增强 start---------------------------
  69. //-----------------java增强 end-----------------------------
  70. }
  71. private Map<String,Object> populationMap(ProjectEntity t){
  72. Map<String,Object> map = new HashMap<String,Object>();
  73. map.put("id", t.getId());
  74. map.put("create_name", t.getCreateName());
  75. map.put("create_by", t.getCreateBy());
  76. map.put("create_date", t.getCreateDate());
  77. map.put("update_name", t.getUpdateName());
  78. map.put("update_by", t.getUpdateBy());
  79. map.put("update_date", t.getUpdateDate());
  80. map.put("code", t.getCode());
  81. map.put("name", t.getName());
  82. map.put("leader", t.getLeader());
  83. map.put("zone", t.getZone());
  84. map.put("customer", t.getCustomer());
  85. map.put("status", t.getStatus());
  86. map.put("activetime", t.getActivetime());
  87. map.put("addr", t.getAddr());
  88. map.put("currentprocessstart", t.getCurrentprocessstart());
  89. map.put("currentprocessend", t.getCurrentprocessend());
  90. map.put("abbreviation", t.getAbbreviation());
  91. map.put("type", t.getType());
  92. map.put("defnum1", t.getDefnum1());
  93. map.put("defnum2", t.getDefnum2());
  94. map.put("defnum3", t.getDefnum3());
  95. map.put("defnum4", t.getDefnum4());
  96. map.put("defnum5", t.getDefnum5());
  97. map.put("defnum6", t.getDefnum6());
  98. map.put("defnum7", t.getDefnum7());
  99. map.put("defnum8", t.getDefnum8());
  100. map.put("defnum9", t.getDefnum9());
  101. map.put("defnum10", t.getDefnum10());
  102. map.put("defstr1", t.getDefstr1());
  103. map.put("defstr2", t.getDefstr2());
  104. map.put("defstr3", t.getDefstr3());
  105. map.put("defstr4", t.getDefstr4());
  106. map.put("defstr5", t.getDefstr5());
  107. map.put("defstr6", t.getDefstr6());
  108. map.put("defstr7", t.getDefstr7());
  109. map.put("defstr8", t.getDefstr8());
  110. map.put("defstr9", t.getDefstr9());
  111. map.put("defstr10", t.getDefstr10());
  112. return map;
  113. }
  114. /**
  115. * 替换sql中的变量
  116. * @param sql
  117. * @param t
  118. * @return
  119. */
  120. public String replaceVal(String sql,ProjectEntity t){
  121. sql = sql.replace("#{id}",String.valueOf(t.getId()));
  122. sql = sql.replace("#{create_name}",String.valueOf(t.getCreateName()));
  123. sql = sql.replace("#{create_by}",String.valueOf(t.getCreateBy()));
  124. sql = sql.replace("#{create_date}",String.valueOf(t.getCreateDate()));
  125. sql = sql.replace("#{update_name}",String.valueOf(t.getUpdateName()));
  126. sql = sql.replace("#{update_by}",String.valueOf(t.getUpdateBy()));
  127. sql = sql.replace("#{update_date}",String.valueOf(t.getUpdateDate()));
  128. sql = sql.replace("#{code}",String.valueOf(t.getCode()));
  129. sql = sql.replace("#{name}",String.valueOf(t.getName()));
  130. sql = sql.replace("#{leader}",String.valueOf(t.getLeader()));
  131. sql = sql.replace("#{zone}",String.valueOf(t.getZone()));
  132. sql = sql.replace("#{customer}",String.valueOf(t.getCustomer()));
  133. sql = sql.replace("#{status}",String.valueOf(t.getStatus()));
  134. sql = sql.replace("#{activetime}",String.valueOf(t.getActivetime()));
  135. sql = sql.replace("#{addr}",String.valueOf(t.getAddr()));
  136. sql = sql.replace("#{currentprocessstart}",String.valueOf(t.getCurrentprocessstart()));
  137. sql = sql.replace("#{currentprocessend}",String.valueOf(t.getCurrentprocessend()));
  138. sql = sql.replace("#{abbreviation}",String.valueOf(t.getAbbreviation()));
  139. sql = sql.replace("#{type}",String.valueOf(t.getType()));
  140. sql = sql.replace("#{defnum1}",String.valueOf(t.getDefnum1()));
  141. sql = sql.replace("#{defnum2}",String.valueOf(t.getDefnum2()));
  142. sql = sql.replace("#{defnum3}",String.valueOf(t.getDefnum3()));
  143. sql = sql.replace("#{defnum4}",String.valueOf(t.getDefnum4()));
  144. sql = sql.replace("#{defnum5}",String.valueOf(t.getDefnum5()));
  145. sql = sql.replace("#{defnum6}",String.valueOf(t.getDefnum6()));
  146. sql = sql.replace("#{defnum7}",String.valueOf(t.getDefnum7()));
  147. sql = sql.replace("#{defnum8}",String.valueOf(t.getDefnum8()));
  148. sql = sql.replace("#{defnum9}",String.valueOf(t.getDefnum9()));
  149. sql = sql.replace("#{defnum10}",String.valueOf(t.getDefnum10()));
  150. sql = sql.replace("#{defstr1}",String.valueOf(t.getDefstr1()));
  151. sql = sql.replace("#{defstr2}",String.valueOf(t.getDefstr2()));
  152. sql = sql.replace("#{defstr3}",String.valueOf(t.getDefstr3()));
  153. sql = sql.replace("#{defstr4}",String.valueOf(t.getDefstr4()));
  154. sql = sql.replace("#{defstr5}",String.valueOf(t.getDefstr5()));
  155. sql = sql.replace("#{defstr6}",String.valueOf(t.getDefstr6()));
  156. sql = sql.replace("#{defstr7}",String.valueOf(t.getDefstr7()));
  157. sql = sql.replace("#{defstr8}",String.valueOf(t.getDefstr8()));
  158. sql = sql.replace("#{defstr9}",String.valueOf(t.getDefstr9()));
  159. sql = sql.replace("#{defstr10}",String.valueOf(t.getDefstr10()));
  160. sql = sql.replace("#{UUID}",UUID.randomUUID().toString());
  161. return sql;
  162. }
  163. /**
  164. * 执行JAVA增强
  165. */
  166. private void executeJavaExtend(String cgJavaType,String cgJavaValue,Map<String,Object> data) throws Exception {
  167. if(StringUtil.isNotEmpty(cgJavaValue)){
  168. Object obj = null;
  169. try {
  170. if("class".equals(cgJavaType)){
  171. //因新增时已经校验了实例化是否可以成功,所以这块就不需要再做一次判断
  172. obj = MyClassLoader.getClassByScn(cgJavaValue).newInstance();
  173. }else if("spring".equals(cgJavaType)){
  174. obj = ApplicationContextUtil.getContext().getBean(cgJavaValue);
  175. }
  176. if(obj instanceof CgformEnhanceJavaInter){
  177. CgformEnhanceJavaInter javaInter = (CgformEnhanceJavaInter) obj;
  178. javaInter.execute("t_b_project",data);
  179. }
  180. } catch (Exception e) {
  181. e.printStackTrace();
  182. throw new Exception("执行JAVA增强出现异常!");
  183. }
  184. }
  185. }
  186. /*
  187. * 查询人员所述项目及监管项目
  188. * 返回值list.get(0)为所述项目
  189. * */
  190. @Override
  191. public List<String> getProjectsByUserid(String userid) {
  192. List<String> projectList = new ArrayList<String>();
  193. String departSql = "SELECT \n" +
  194. "baseuser.id userid,\n" +
  195. "depart.id departid,\n" +
  196. "group_concat(distinct jzdepart.id) jgdepartids\n" +
  197. "FROM t_s_base_user AS baseuser\n" +
  198. "LEFT JOIN t_s_user_org AS userorg ON baseuser.id = userorg.user_id AND userorg.status = '0' AND userorg.ifpluralism <> '1' \n" +
  199. "LEFT JOIN t_s_user_org AS userjzorg ON baseuser.id = userjzorg.user_id AND userjzorg.status = '0' AND userjzorg.ifpluralism = '1' \n" +
  200. "LEFT JOIN t_s_depart AS depart ON userorg.org_id = depart.id AND depart.status <> '1'\n" +
  201. "LEFT JOIN t_s_depart AS jzdepart ON userjzorg.org_id = jzdepart.id AND jzdepart.status <> '1'\n" +
  202. "where baseuser.id = ?";
  203. List<Map<String,Object>> departRet = findForJdbc(departSql, userid);
  204. if(departRet != null && departRet.size() > 0) {
  205. Map<String,Object> userinfo = departRet.get(0);
  206. String depart = userinfo.get("departid")==null?"":userinfo.get("departid").toString();
  207. //监管机构
  208. String jzdepart = userinfo.get("jgdepartids")==null?"":userinfo.get("jgdepartids").toString();
  209. if(StringUtils.isNotEmpty(depart))
  210. projectList.add(getParentProject(depart));
  211. if(StringUtils.isNotEmpty(jzdepart)) {
  212. String[] jzproject = jzdepart.split(",");
  213. for(String pid : jzproject) {
  214. projectList.add( getParentProject(pid));
  215. }
  216. }
  217. }
  218. return projectList;
  219. }
  220. private String getParentProject(String departid){
  221. String temp = "";
  222. if(!StringUtils.isNotEmpty(departid)) {
  223. return temp;
  224. }
  225. StringBuffer hql = new StringBuffer("from TSDepart where id = :pid");
  226. List<TSDepart> tsList = getSession().createQuery(hql.toString()).setParameter("pid", departid).list();
  227. if(!tsList.isEmpty()){
  228. TSDepart tsDepart = tsList.get(0);
  229. //直属项目、区域项目、公司类型
  230. if( "3".equals(tsDepart.getOrgType())|| "5".equals(tsDepart.getOrgType())|| "1".equals(tsDepart.getOrgType())
  231. || ("2".equals(tsDepart.getOrgType()) &&( "1".equals(tsDepart.getTSPDepart().getOrgType())))){
  232. temp = tsDepart.getProjectid();
  233. }else if("2".equals(tsDepart.getOrgType()) &&( "1".equals(tsDepart.getTSPDepart().getOrgType())
  234. || "3".equals(tsDepart.getTSPDepart().getOrgType())|| "5".equals(tsDepart.getTSPDepart().getOrgType()))){
  235. temp = tsDepart.getTSPDepart().getProjectid();
  236. }
  237. }
  238. return temp;
  239. }
  240. }