7fefc70ee9990193534cde15aeef0b95fac1476e.svn-base 6.4 KB

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