d127977d4378b77f6f8f02fb90a0aa69bb1c65a9.svn-base 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282
  1. package UIB.COM;
  2. import java.util.ArrayList;
  3. import java.util.Map;
  4. import CoreFS.SA01.CoreIComponent;
  5. import CoreFS.SA06.CoreReturnObject;
  6. /**
  7. * @Description 生产规范判定
  8. * @author KangMiao
  9. * @Date 2015-5-18 下午08:17:50
  10. *
  11. */
  12. public class TechDcsResult extends CoreIComponent
  13. {
  14. /**
  15. * @return
  16. * @throws Exception
  17. */
  18. public CoreReturnObject doTechDcs(String sqlID,Object[] params)
  19. {
  20. CoreReturnObject cro = new CoreReturnObject();
  21. String Sql2 = XmlSqlParsersFactory.getSql("UIB010330_14.SELECT");
  22. try {
  23. //获取待入库钢卷数据
  24. ArrayList coilList = (ArrayList) this.getDao("KgDao").ExcuteQueryReturnList(sqlID,params);
  25. System.out.println("coil_sql------- " + sqlID);
  26. for (int j = 0; j < coilList.size(); j++) {
  27. Map map = (Map) coilList.get(j);
  28. Object SPEC_ABBSYM = map.get("SPEC_ABBSYM");
  29. Object STL_GRD = map.get("STL_GRD");
  30. Object DC_TEMP_AVG = map.get("DC_TEMP_AVG"); //卷取温度值
  31. //若卷取温度值为空则默认为0
  32. if(null == DC_TEMP_AVG) {
  33. DC_TEMP_AVG = "0";
  34. // map.put("DC_TEMP_AVG", "0");
  35. }
  36. Object HC_TU_DU = map.get("HC_TU_DU"); //凸度值
  37. Object HC_XIE_XIN = map.get("HC_XIE_XIN"); //楔形值
  38. Object FM_EXT_STRIP_TEMP_AVG = map.get("FM_EXT_STRIP_TEMP_AVG"); //精轧温度值CC.VALUE_C
  39. //若精轧温度值为空则默认为0
  40. if(null == FM_EXT_STRIP_TEMP_AVG) {
  41. FM_EXT_STRIP_TEMP_AVG = "0";
  42. // map.put("FM_EXT_STRIP_TEMP_AVG", "0");
  43. }
  44. Object VALUE_C = map.get("VALUE_C"); //C元素值
  45. Object VALUE_Mn = map.get("VALUE_Mn"); //Mn元素值
  46. Object VALUE_S = map.get("VALUE_S"); //Mn元素值
  47. Object VALUE_P = map.get("VALUE_P"); //P元素值
  48. Object VALUE_Si = map.get("VALUE_Si"); //Si元素值
  49. Object VALUE_Ti = map.get("VALUE_Ti"); //Ti元素值
  50. Object VALUE_N = map.get("VALUE_N"); //Mn元素值
  51. String TECH_DCS_CD = "合格";
  52. String TECH_DCS_DESC = "";
  53. //获取钢卷对应的生产规范标准数据
  54. String abbsym = "";
  55. String stl = "";
  56. if(null != SPEC_ABBSYM)
  57. abbsym = SPEC_ABBSYM.toString();
  58. if(null != STL_GRD)
  59. stl = STL_GRD.toString();
  60. ArrayList techList = (ArrayList) this.getDao("KgDao").ExcuteQueryReturnList(Sql2,new String[] {abbsym,stl});
  61. if(0 == techList.size())
  62. TECH_DCS_CD = "无标准";
  63. for (int t = 0; t < techList.size(); t++) {
  64. Map tMap = (Map) techList.get(t);
  65. String PROD_CD = tMap.get("PROD_CD").toString();
  66. Object PROD_CD_CFNM = tMap.get("PROD_CD_CFNM"); //名称
  67. String DCS_SYM = tMap.get("DCS_SYM").toString(); //判定符号≥或≤
  68. Object PROD_VAL = tMap.get("PROD_VAL"); //标准要求值
  69. String isStr = PROD_CD.substring(0,2); //判定是哪个项目
  70. if(null != PROD_VAL) {
  71. // System.out.println("abbsym:" + abbsym + " ---" + stl);
  72. // System.out.println("PROD_VAL:" + PROD_VAL + " ---" + PROD_CD);
  73. Double val = null;
  74. try {
  75. val = Double.valueOf(PROD_VAL.toString());
  76. } catch (Exception e) {
  77. e.printStackTrace();
  78. continue;
  79. }
  80. if("XX".equals(isStr)) { //为楔形
  81. if(null != HC_XIE_XIN) {
  82. //判定最小值,只对平均值做比较
  83. if("≥".equals(DCS_SYM)) {
  84. if(Double.valueOf(HC_XIE_XIN.toString()) < val) {
  85. TECH_DCS_CD = "不合格"; //不合格
  86. TECH_DCS_DESC = TECH_DCS_DESC + PROD_CD_CFNM + ";";
  87. }
  88. } else {
  89. if(Double.valueOf(HC_XIE_XIN.toString()) > val) {
  90. TECH_DCS_CD = "不合格"; //不合格
  91. TECH_DCS_DESC = TECH_DCS_DESC + PROD_CD_CFNM + ";";
  92. }
  93. }
  94. }
  95. } else if("TD".equals(isStr)) { //为凸度
  96. if(null != HC_TU_DU) {
  97. //判定最小值,只对平均值做比较
  98. if("≥".equals(DCS_SYM)) {
  99. if(Double.valueOf(HC_TU_DU.toString()) < val) {
  100. TECH_DCS_CD = "不合格"; //不合格
  101. TECH_DCS_DESC = TECH_DCS_DESC + PROD_CD_CFNM + ";";
  102. }
  103. } else {
  104. if(Double.valueOf(HC_TU_DU.toString()) > val) {
  105. TECH_DCS_CD = "不合格"; //不合格
  106. TECH_DCS_DESC = TECH_DCS_DESC + PROD_CD_CFNM + ";";
  107. }
  108. }
  109. }
  110. } else if("JQ".equals(isStr)) { //为卷取温度
  111. if(null != DC_TEMP_AVG) {
  112. //判定最小值,只对平均值做比较
  113. if("≥".equals(DCS_SYM)) {
  114. if(Double.valueOf(DC_TEMP_AVG.toString()) < val) {
  115. TECH_DCS_CD = "不合格"; //不合格
  116. TECH_DCS_DESC = TECH_DCS_DESC + PROD_CD_CFNM + ";";
  117. }
  118. } else {
  119. if(Double.valueOf(DC_TEMP_AVG.toString()) > val) {
  120. TECH_DCS_CD = "不合格"; //不合格
  121. TECH_DCS_DESC = TECH_DCS_DESC + PROD_CD_CFNM + ";";
  122. }
  123. }
  124. }
  125. } else if("JZ".equals(isStr)) { //为精轧温度
  126. if(null != FM_EXT_STRIP_TEMP_AVG) {
  127. //判定最小值,只对平均值做比较
  128. if("≥".equals(DCS_SYM)) {
  129. if(Double.valueOf(FM_EXT_STRIP_TEMP_AVG.toString()) < val) {
  130. TECH_DCS_CD = "不合格"; //不合格
  131. TECH_DCS_DESC = TECH_DCS_DESC + PROD_CD_CFNM + ";";
  132. }
  133. } else {
  134. if(Double.valueOf(FM_EXT_STRIP_TEMP_AVG.toString()) > val) {
  135. TECH_DCS_CD = "不合格"; //不合格
  136. TECH_DCS_DESC = TECH_DCS_DESC + PROD_CD_CFNM + ";";
  137. }
  138. }
  139. }
  140. } else if("CF".equals(isStr)) { //为C元素
  141. if(null != VALUE_C) {
  142. //判定最小值,只对平均值做比较
  143. if("≥".equals(DCS_SYM)) {
  144. if(Double.valueOf(VALUE_C.toString()) < val) {
  145. TECH_DCS_CD = "不合格"; //不合格
  146. TECH_DCS_DESC = TECH_DCS_DESC + PROD_CD_CFNM + ";";
  147. }
  148. } else {
  149. if(Double.valueOf(VALUE_C.toString()) > val) {
  150. TECH_DCS_CD = "不合格"; //不合格
  151. TECH_DCS_DESC = TECH_DCS_DESC + PROD_CD_CFNM + ";";
  152. }
  153. }
  154. }
  155. } else if("Mn".equals(isStr)) { //为Mn元素
  156. if(null != VALUE_Mn) {
  157. //判定最小值,只对平均值做比较
  158. if("≥".equals(DCS_SYM)) {
  159. if(Double.valueOf(VALUE_Mn.toString()) < val) {
  160. TECH_DCS_CD = "不合格"; //不合格
  161. TECH_DCS_DESC = TECH_DCS_DESC + PROD_CD_CFNM + ";";
  162. }
  163. } else {
  164. if(Double.valueOf(VALUE_Mn.toString()) > val) {
  165. TECH_DCS_CD = "不合格"; //不合格
  166. TECH_DCS_DESC = TECH_DCS_DESC + PROD_CD_CFNM + ";";
  167. }
  168. }
  169. }
  170. } else if("SF".equals(isStr)) { //为S元素
  171. if(null != VALUE_S) {
  172. //判定最小值,只对平均值做比较
  173. if("≥".equals(DCS_SYM)) {
  174. if(Double.valueOf(VALUE_S.toString()) < val) {
  175. TECH_DCS_CD = "不合格"; //不合格
  176. TECH_DCS_DESC = TECH_DCS_DESC + PROD_CD_CFNM + ";";
  177. }
  178. } else {
  179. if(Double.valueOf(VALUE_S.toString()) > val) {
  180. TECH_DCS_CD = "不合格"; //不合格
  181. TECH_DCS_DESC = TECH_DCS_DESC + PROD_CD_CFNM + ";";
  182. }
  183. }
  184. }
  185. } else if("PF".equals(isStr)) { //为P元素
  186. if(null != VALUE_P) {
  187. //判定最小值,只对平均值做比较
  188. if("≥".equals(DCS_SYM)) {
  189. if(Double.valueOf(VALUE_P.toString()) < val) {
  190. TECH_DCS_CD = "不合格"; //不合格
  191. TECH_DCS_DESC = TECH_DCS_DESC + PROD_CD_CFNM + ";";
  192. }
  193. } else {
  194. if(Double.valueOf(VALUE_P.toString()) > val) {
  195. TECH_DCS_CD = "不合格"; //不合格
  196. TECH_DCS_DESC = TECH_DCS_DESC + PROD_CD_CFNM + ";";
  197. }
  198. }
  199. }
  200. } else if("Si".equals(isStr)) { //为Si元素
  201. if(null != VALUE_Si) {
  202. //判定最小值,只对平均值做比较
  203. if("≥".equals(DCS_SYM)) {
  204. if(Double.valueOf(VALUE_Si.toString()) < val) {
  205. TECH_DCS_CD = "不合格"; //不合格
  206. TECH_DCS_DESC = TECH_DCS_DESC + PROD_CD_CFNM + ";";
  207. }
  208. } else {
  209. if(Double.valueOf(VALUE_Si.toString()) > val) {
  210. TECH_DCS_CD = "不合格"; //不合格
  211. TECH_DCS_DESC = TECH_DCS_DESC + PROD_CD_CFNM + ";";
  212. }
  213. }
  214. }
  215. } else if("Ti".equals(isStr)) { //为Ti元素
  216. if(null != VALUE_Ti) {
  217. //判定最小值,只对平均值做比较
  218. if("≥".equals(DCS_SYM)) {
  219. if(Double.valueOf(VALUE_Ti.toString()) < val) {
  220. TECH_DCS_CD = "不合格"; //不合格
  221. TECH_DCS_DESC = TECH_DCS_DESC + PROD_CD_CFNM + ";";
  222. }
  223. } else {
  224. if(Double.valueOf(VALUE_Ti.toString()) > val) {
  225. TECH_DCS_CD = "不合格"; //不合格
  226. TECH_DCS_DESC = TECH_DCS_DESC + PROD_CD_CFNM + ";";
  227. }
  228. }
  229. }
  230. } else if("NF".equals(isStr)) { //为N元素
  231. if(null != VALUE_N) {
  232. //判定最小值,只对平均值做比较
  233. if("≥".equals(DCS_SYM)) {
  234. if(Double.valueOf(VALUE_N.toString()) < val) {
  235. TECH_DCS_CD = "不合格"; //不合格
  236. TECH_DCS_DESC = TECH_DCS_DESC + PROD_CD_CFNM + ";";
  237. }
  238. } else {
  239. if(Double.valueOf(VALUE_N.toString()) > val) {
  240. TECH_DCS_CD = "不合格"; //不合格
  241. TECH_DCS_DESC = TECH_DCS_DESC + PROD_CD_CFNM + ";";
  242. }
  243. }
  244. }
  245. } else if("XT".equals(isStr)) { //为楔形绝对值-凸度
  246. if(null != HC_XIE_XIN && null != HC_TU_DU) {
  247. //判定最小值,只对平均值做比较
  248. Double xtc = Math.abs(Double.valueOf(HC_XIE_XIN.toString())) - Double.valueOf(HC_TU_DU.toString());
  249. if("≥".equals(DCS_SYM)) {
  250. if(xtc < val) {
  251. TECH_DCS_CD = "不合格"; //不合格
  252. TECH_DCS_DESC = TECH_DCS_DESC + PROD_CD_CFNM + ";";
  253. }
  254. } else {
  255. if(xtc > val) {
  256. TECH_DCS_CD = "不合格"; //不合格
  257. TECH_DCS_DESC = TECH_DCS_DESC + PROD_CD_CFNM + ";";
  258. }
  259. }
  260. } else {
  261. TECH_DCS_CD = "不合格"; //不合格
  262. TECH_DCS_DESC = TECH_DCS_DESC + PROD_CD_CFNM + ";";
  263. }
  264. }
  265. }
  266. }
  267. map.put("TECH_DCS_CD", TECH_DCS_CD);
  268. map.put("TECH_DCS_DESC", TECH_DCS_DESC);
  269. }
  270. cro.setResult(coilList);
  271. } catch (Exception e) {
  272. e.printStackTrace();
  273. return null;
  274. }
  275. return cro;
  276. }
  277. }