4e27b8c575c2a68f4dfb2baaa748304aa422ad4b.svn-base 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. package xin.glue.nui.E.E03;
  2. import java.math.BigDecimal;
  3. import java.sql.CallableStatement;
  4. import java.util.ArrayList;
  5. import java.util.Iterator;
  6. import java.util.List;
  7. import java.util.Map;
  8. import xin.glue.ui.common.PosDBEngine;
  9. import com.posdata.glue.PosException;
  10. import com.posdata.glue.biz.constants.PosBizControlConstants;
  11. import com.posdata.glue.biz.control.PosBizProvider;
  12. import com.posdata.glue.context.PosContext;
  13. import com.posdata.glue.dao.PosGenericDao;
  14. import com.posdata.glue.dao.vo.PosParameter;
  15. import com.posdata.glue.dao.vo.PosRowSet;
  16. import com.posdata.glue.msg.PosMESMessageImpl;
  17. import com.posdata.glue.msg.PosMessage;
  18. public class OrdRepSave extends PosDBEngine {
  19. String V_ORD_NO;
  20. String V_ORD_SEQ;
  21. String V_ORD_NO2;
  22. public String runActivity(PosContext ctx) {
  23. Initialize();
  24. // 2. Get Parameter( 各语句参数名获取 )
  25. setParamMap(ctx, "sqlkey0", "param0"); // 充当订单及其余量查询
  26. setParamMap(ctx, "sqlkey1", "param1"); // 充当物料及其重量查询
  27. setParamMap(ctx, "sqlkey2", "param2"); // NIE012070 接口参数查询
  28. setParamMap(ctx, "sqlkey-h", "param-h");// 历史插入
  29. setParamMap(ctx, "sqlkey-u", "param-u");// XXXX_COMM
  30. setParamMap(ctx, "sqlkey-d", "param-d");// 删除 XXXX_COMM_D
  31. setParamMap(ctx, "sqlkey-i", "param-i");// 插入 XXXX_COMM_D
  32. setParamMap(ctx, "sqlkey-ud", "param-ud");// 更新 XXXX_COMM_D
  33. setParamMap(ctx, "sqlkey2-u", "param-u");//外销坯 20181106
  34. String SERVICE_POSTFIX = "-service";
  35. PosMessage message = new PosMESMessageImpl();
  36. // message.setTCID("NIE012070");
  37. ctx.setMessage(message);
  38. // processComponent(PosConstants.CREATE_MESSAGE, ctx);
  39. List list = new ArrayList();
  40. PosRowSet rowSet1 = (PosRowSet) super.Execute(ctx, "sqlkey0", "param0");
  41. while (rowSet1 == null || rowSet1.hasNext()) {
  42. if (rowSet1 != null) {
  43. Map fields = rowSet1.next().getAttributes();
  44. for (Iterator iterator = fields.entrySet().iterator(); iterator.hasNext();) {
  45. Map.Entry entry = (Map.Entry) iterator.next();
  46. ctx.put(entry.getKey().toString(), entry.getValue());
  47. message.setObject(entry.getKey().toString(), entry.getValue());
  48. list.add(entry.getKey());
  49. }
  50. }
  51. PosRowSet rowSet2 = (PosRowSet) super.Execute(ctx, "sqlkey1", "param1");
  52. while (rowSet2.hasNext()) {
  53. Map fields = rowSet2.next().getAttributes();
  54. for (Iterator iterator = fields.entrySet().iterator(); iterator.hasNext();) {
  55. Map.Entry entry = (Map.Entry) iterator.next();
  56. ctx.put(entry.getKey(), entry.getValue());
  57. message.setObject(entry.getKey().toString(), entry.getValue());
  58. list.add(entry.getKey());
  59. }
  60. PosRowSet rowSet = (PosRowSet)Execute(ctx, "sqlkey2", "param2");
  61. Execute(ctx, "sqlkey-h", "param-h", 'i');
  62. //外销坯-------------------------------------------------
  63. Object obj2 = ctx.get("ORD_NO");
  64. if (obj2 instanceof String[]) {
  65. V_ORD_NO2 = ((String[]) obj2)[0];
  66. } else {
  67. V_ORD_NO2 = obj2.toString();
  68. }
  69. if ("7".contains(V_ORD_NO2.substring(0, 1)) ||
  70. "W7".contains(V_ORD_NO2.substring(0, 2))) {
  71. Execute(ctx, "sqlkey2-u", "param-u", 'u');
  72. }
  73. else {
  74. Execute(ctx, "sqlkey-u", "param-u", 'u');
  75. }
  76. //-------------------------------------------------
  77. Execute(ctx, "sqlkey-d", "param-d", 'd');
  78. //Execute(ctx, "sqlkey-i", "param-i", 'i');
  79. String matNO = (String)ctx.get("MAT_NO");
  80. String[] ob = (String[])ctx.get("COIL_CNT");
  81. if (ob == null||ob[0].equals("")){
  82. PosParameter param = new PosParameter();
  83. param.setValueParamter(0, matNO);
  84. this.getDao("mesdao").update("NIE031045.SlabCommD_detail.delete", param);
  85. param = new PosParameter();
  86. param.setValueParamter(0, matNO);
  87. this.getDao("mesdao").update("NIE031045.CoilCommD_detail.delete", param);
  88. }else{
  89. BigDecimal coils = new BigDecimal(ob[0]);
  90. for(int i = 1 ;i <= coils.intValue() ;i++){
  91. PosParameter param = new PosParameter();
  92. param.setValueParamter(0, "0"+i);
  93. param.setValueParamter(1, coils);
  94. param.setValueParamter(2, matNO);
  95. this.getDao("mesdao").update("NIE031045.SlabCommD_detail.Insert", param);
  96. param = new PosParameter();
  97. param.setValueParamter(0, "0"+i);
  98. param.setValueParamter(1, coils);
  99. param.setValueParamter(2, matNO);
  100. this.getDao("mesdao").update("NIE031045.CoilCommD_Detail.Insert", param);
  101. }
  102. }
  103. Execute(ctx, "sqlkey-ud", "param-ud", 'u');
  104. // 设置向sub service里传入的Parameter.
  105. Object obj = ctx.get("REG_ID");
  106. if (obj instanceof String[])
  107. message.setObject("REG_ID", ((String[])obj)[0]);
  108. else
  109. message.setObject("REG_ID", obj);
  110. // if (!message.getAttributes().containsKey("ORD_NO")) {
  111. // obj = ctx.get("ORD_NO");
  112. // if (obj instanceof String[])
  113. // message.setObject("ORD_NO", ((String[])obj)[0]);
  114. // else
  115. // message.setObject("ORD_NO", obj);
  116. // obj = ctx.get("ORD_SEQ");
  117. // if (obj instanceof String[])
  118. // message.setObject("ORD_SEQ", ((String[])obj)[0]);
  119. // else
  120. // message.setObject("ORD_SEQ", obj);
  121. // }
  122. if (!message.getAttributes().containsKey("ORD_NO")) {
  123. obj = ctx.get("ORD_NO");
  124. if (obj instanceof String[]){
  125. message.setObject("ORD_NO", ((String[])obj)[0]);
  126. V_ORD_NO = ((String[])obj)[0];
  127. }
  128. else {
  129. message.setObject("ORD_NO", obj);
  130. V_ORD_NO = obj.toString();
  131. }
  132. obj = ctx.get("ORD_SEQ");
  133. if (obj instanceof String[]) {
  134. message.setObject("ORD_SEQ", ((String[])obj)[0]);
  135. V_ORD_SEQ = ((String[])obj)[0];
  136. }
  137. else{
  138. message.setObject("ORD_SEQ", obj);
  139. V_ORD_SEQ = obj.toString();
  140. }
  141. }
  142. while (rowSet.hasNext()) {
  143. for (Iterator iterator = rowSet.next().getAttributes().entrySet().iterator(); iterator.hasNext();) {
  144. Map.Entry entry = (Map.Entry) iterator.next();
  145. message.setObject(entry.getKey().toString(), entry.getValue());
  146. }
  147. // NIE012070_订单进程OS I/F程序
  148. // 调用sub service.
  149. // 为用one transaction来进行连接
  150. // 把doSubController Method的第二个Parameter用 'false'来指定.
  151. ctx.put(PosBizControlConstants.SERVICE_NAME, "NIE012070" + SERVICE_POSTFIX);
  152. PosBizProvider.getController().doSubController(ctx, false);
  153. }
  154. }
  155. if (rowSet1 == null) break;
  156. }
  157. // NIE012080_订单进程OS编辑MAIN程序
  158. ctx.put(PosBizControlConstants.SERVICE_NAME, "NIE012100" + SERVICE_POSTFIX);
  159. //ctx.put(PosBizControlConstants.SERVICE_NAME, "NIE012080" + SERVICE_POSTFIX);
  160. PosBizProvider.getController().doSubController(ctx, false);
  161. // //超量检查
  162. // if (new OrdChk(V_ORD_NO, V_ORD_SEQ).isOver()) {
  163. // throw new PosException("订单超量...OrdRepSave.OrdChk.isOver..."
  164. // + V_ORD_NO + " - " + V_ORD_SEQ);
  165. // }
  166. // ;
  167. for (int i = list.size() - 1; i >= 0; i--)
  168. ctx.remove(list.get(i));
  169. return PosBizControlConstants.SUCCESS;
  170. }
  171. }