D10019Service.java 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. package com.miniframe.bisiness.system;
  2. import java.time.ZoneId;
  3. import java.time.ZonedDateTime;
  4. import java.time.format.DateTimeFormatter;
  5. import java.util.*;
  6. import com.miniframe.core.ExecProcessFlow;
  7. import com.miniframe.core.exception.BusinessException;
  8. import com.miniframe.core.ext.UtilTools;
  9. import com.miniframe.generate.business.system.model.D10019BaseModel;
  10. import com.miniframe.generate.comm.system.D_D10019_ROWS_DATA_RECODE;
  11. import com.miniframe.generate.comm.system.D_D10019_ROWS_RECODE;
  12. import com.miniframe.generate.comm.system.D_D10019_STEPTIMES_RECODE;
  13. import com.miniframe.model.system.*;
  14. import com.miniframe.model.system.dao.DAccidentMapper;
  15. import com.miniframe.model.system.dao.DChecknodeValMapper;
  16. import com.miniframe.model.system.dao.DChecknodeValcodeMapper;
  17. import com.miniframe.model.system.dao.DJobMapper;
  18. import com.miniframe.tools.XIDateTimeUtils;
  19. import tk.mybatis.mapper.util.StringUtil;
  20. /**
  21. * 基础系统,“监测点结果批量获取”逻辑处理(重新生成不覆盖)。
  22. */
  23. public class D10019Service extends D10019BaseModel implements ExecProcessFlow {
  24. private static final long serialVersionUID = -7051358269847459502L;
  25. /**
  26. * 基础系统,“监测点结果批量获取”业务核心处理
  27. */
  28. public void transExecute() throws Exception {
  29. Integer aid= getA_d10019().getAid();
  30. String chname =getA_d10019().getChname();
  31. DAccidentMapper accidentDao = UtilTools.getBean(DAccidentMapper.class);
  32. DAccident accident= accidentDao.selectByPrimaryKey(aid);
  33. if(accident==null){
  34. throw new BusinessException("EB3000002");
  35. }
  36. if(accident.getJid()==null||accident.getJid()==0){
  37. throw new BusinessException("EB3100012");
  38. }
  39. DJobMapper jobMapper =UtilTools.getBean(DJobMapper.class);
  40. DJob job =jobMapper.selectByPrimaryKey(accident.getJid());
  41. if(job==null){
  42. throw new BusinessException("EB3100012");
  43. }
  44. List<D_D10019_STEPTIMES_RECODE> steptimes = new ArrayList<>();
  45. findStepTime(job, steptimes);
  46. List<D_D10019_ROWS_RECODE> rows =new ArrayList<>();
  47. findRows(aid, chname, accident, job, rows);
  48. this.getD_d10019().setSteptimes(steptimes);
  49. this.getD_d10019().setRows(rows);
  50. }
  51. private void findRows(Integer aid, String chname, DAccident accident, DJob job, List<D_D10019_ROWS_RECODE> rows) throws BusinessException {
  52. DChecknodeValcodeMapper valcodeMapper =UtilTools.getBean(DChecknodeValcodeMapper.class);
  53. DChecknodeValcodeSQLBuilder codesb =new DChecknodeValcodeSQLBuilder();
  54. DChecknodeValcodeSQLBuilder.Criteria codesc = codesb.createCriteria();
  55. codesc.andAidEqualTo(aid);
  56. codesc.andJidEqualTo(accident.getJid());
  57. List<DChecknodeValcode> valcodes = valcodeMapper.selectByExample(codesb );
  58. if(valcodes.isEmpty()){
  59. throw new BusinessException("EB3100026");
  60. }
  61. DChecknodeValcode valcode =valcodes.get(0);
  62. DChecknodeValMapper valMapper =UtilTools.getBean(DChecknodeValMapper.class);
  63. DChecknodeValSQLBuilder sb =new DChecknodeValSQLBuilder();
  64. DChecknodeValSQLBuilder.Criteria sc = sb.createCriteria();
  65. sc.andAidEqualTo(aid);
  66. sc.andJidEqualTo(job.getId());
  67. sc.andChnameEqualTo(chname);
  68. sb.setOrderByClause("step ASC");
  69. List<DChecknodeVal> vals = valMapper.selectByExample(sb);
  70. if(!StringUtil.isEmpty(valcode.getValCode1())&&!"".equals(valcode.getValCode1())){
  71. D_D10019_ROWS_RECODE row =new D_D10019_ROWS_RECODE();
  72. row.setCode(valcode.getValCode1());
  73. List<D_D10019_ROWS_DATA_RECODE> rowdatas =new ArrayList<>();
  74. for (DChecknodeVal val:vals) {
  75. D_D10019_ROWS_DATA_RECODE rowdata =new D_D10019_ROWS_DATA_RECODE();
  76. rowdata.setVal(val.getV1());
  77. rowdatas.add(rowdata);
  78. }
  79. row.setData(rowdatas);
  80. rows.add(row);
  81. }
  82. if(!StringUtil.isEmpty(valcode.getValCode2())&&!"".equals(valcode.getValCode2())){
  83. D_D10019_ROWS_RECODE row =new D_D10019_ROWS_RECODE();
  84. row.setCode(valcode.getValCode2());
  85. List<D_D10019_ROWS_DATA_RECODE> rowdatas =new ArrayList<>();
  86. for (DChecknodeVal val:vals) {
  87. D_D10019_ROWS_DATA_RECODE rowdata =new D_D10019_ROWS_DATA_RECODE();
  88. rowdata.setVal(val.getV2());
  89. rowdatas.add(rowdata);
  90. }
  91. row.setData(rowdatas);
  92. rows.add(row);
  93. }
  94. if(!StringUtil.isEmpty(valcode.getValCode3())&&!"".equals(valcode.getValCode3())){
  95. D_D10019_ROWS_RECODE row =new D_D10019_ROWS_RECODE();
  96. row.setCode(valcode.getValCode3());
  97. List<D_D10019_ROWS_DATA_RECODE> rowdatas =new ArrayList<>();
  98. for (DChecknodeVal val:vals) {
  99. D_D10019_ROWS_DATA_RECODE rowdata =new D_D10019_ROWS_DATA_RECODE();
  100. rowdata.setVal(val.getV3());
  101. rowdatas.add(rowdata);
  102. }
  103. row.setData(rowdatas);
  104. rows.add(row);
  105. }
  106. if(!StringUtil.isEmpty(valcode.getValCode4())&&!"".equals(valcode.getValCode4())){
  107. D_D10019_ROWS_RECODE row =new D_D10019_ROWS_RECODE();
  108. row.setCode(valcode.getValCode4());
  109. List<D_D10019_ROWS_DATA_RECODE> rowdatas =new ArrayList<>();
  110. for (DChecknodeVal val:vals) {
  111. D_D10019_ROWS_DATA_RECODE rowdata =new D_D10019_ROWS_DATA_RECODE();
  112. rowdata.setVal(val.getV4());
  113. rowdatas.add(rowdata);
  114. }
  115. row.setData(rowdatas);
  116. rows.add(row);
  117. }
  118. if(!StringUtil.isEmpty(valcode.getValCode5())&&!"".equals(valcode.getValCode5())){
  119. D_D10019_ROWS_RECODE row =new D_D10019_ROWS_RECODE();
  120. row.setCode(valcode.getValCode5());
  121. List<D_D10019_ROWS_DATA_RECODE> rowdatas =new ArrayList<>();
  122. for (DChecknodeVal val:vals) {
  123. D_D10019_ROWS_DATA_RECODE rowdata =new D_D10019_ROWS_DATA_RECODE();
  124. rowdata.setVal(val.getV5());
  125. rowdatas.add(rowdata);
  126. }
  127. row.setData(rowdatas);
  128. rows.add(row);
  129. }
  130. if(!StringUtil.isEmpty(valcode.getValCode6())&&!"".equals(valcode.getValCode6())){
  131. D_D10019_ROWS_RECODE row =new D_D10019_ROWS_RECODE();
  132. row.setCode(valcode.getValCode6());
  133. List<D_D10019_ROWS_DATA_RECODE> rowdatas =new ArrayList<>();
  134. for (DChecknodeVal val:vals) {
  135. D_D10019_ROWS_DATA_RECODE rowdata =new D_D10019_ROWS_DATA_RECODE();
  136. rowdata.setVal(val.getV6());
  137. rowdatas.add(rowdata);
  138. }
  139. row.setData(rowdatas);
  140. rows.add(row);
  141. }
  142. }
  143. private void findStepTime(DJob job, List<D_D10019_STEPTIMES_RECODE> steptimes) {
  144. Integer stepnum = Integer.valueOf(job.getTotaltime())/Integer.valueOf(job.getReportstep());
  145. for (int i = 1; i <= stepnum; i++) {
  146. D_D10019_STEPTIMES_RECODE steptime =new D_D10019_STEPTIMES_RECODE();
  147. steptime.setSteptime(getStepTimeByStep(job,i));
  148. steptimes.add(steptime);
  149. }
  150. }
  151. public String getStepTimeByStep(DJob job,Integer step) {
  152. Date date=XIDateTimeUtils.getDateFromZonedStr(job.getAcctime());
  153. Calendar calendar =Calendar.getInstance();
  154. calendar.setTime(date);
  155. calendar.add(Calendar.SECOND,step*Integer.valueOf(job.getReportstep()));
  156. Date date2=calendar.getTime();
  157. DateTimeFormatter timeFormatter =DateTimeFormatter.ofPattern("HH:mm");
  158. String s =timeFormatter.format(ZonedDateTime.ofInstant(date2.toInstant(), ZoneId.systemDefault()));
  159. return s;
  160. }
  161. /**
  162. * 基础系统,“监测点结果批量获取”业务前处理
  163. */
  164. public void preTransFlow() throws Exception {
  165. this.validater();
  166. }
  167. /**
  168. * 基础系统,“监测点结果批量获取”业务后处理
  169. */
  170. public void afterTransFlow() throws Exception {
  171. }
  172. /**
  173. * 基础系统,“监测点结果批量获取”逻辑入口处理方法
  174. */
  175. @SuppressWarnings("rawtypes")
  176. @Override
  177. public Map execute(Map vars) throws Exception {
  178. this.setTransMap(vars);
  179. preTransFlow();// 执行业务开始的规则检查和校验
  180. transExecute();// 执行核心业务段
  181. afterTransFlow();// 执行核心逻辑完成后的收尾逻辑
  182. return this.getTransMap();
  183. }
  184. }