cd5a9bf70364f8c715ac8278846efcb442cd73c1.svn-base 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package xin.glue.nui.E.E03;
  2. import java.util.ArrayList;
  3. import java.util.Iterator;
  4. import java.util.List;
  5. import java.util.Map;
  6. import xin.glue.ui.common.PosDBEngine;
  7. import com.posdata.glue.biz.constants.PosBizControlConstants;
  8. import com.posdata.glue.context.PosContext;
  9. import com.posdata.glue.dao.vo.PosRowSet;
  10. public class RepMatSave extends PosDBEngine {
  11. public String runActivity(PosContext ctx) {
  12. Initialize();
  13. // 2. Get Parameter( 各语句参数名获取 )
  14. setParamMap(ctx, "sqlkey0", "param0"); // 选取充当订单及订单余量
  15. setParamMap(ctx, "sqlkey1", "param1"); // 选取充当物料及充当重量
  16. setParamMap(ctx, "sqlkey-u", "param-u");// REP_XXXX
  17. setParamMap(ctx, "sqlkey-d", "param-d");// REP_XXXX_D
  18. setParamMap(ctx, "sqlkey-i", "param-i");// REP_XXXX_D
  19. setParamMap(ctx, "sqlkey-o", "param-o");// 订单余量更新
  20. List list = new ArrayList();
  21. PosRowSet rowSet1 = (PosRowSet) super.Execute(ctx, "sqlkey0", "param0");
  22. while (rowSet1.hasNext()) {
  23. Map fields = rowSet1.next().getAttributes();
  24. double REP_REM_WGT = Double.parseDouble(fields.get("REP_REM_WGT").toString());
  25. for (Iterator iterator = fields.entrySet().iterator(); iterator.hasNext();) {
  26. Map.Entry entry = (Map.Entry) iterator.next();
  27. ctx.put(entry.getKey(), entry.getValue());
  28. list.add(entry.getKey());
  29. }
  30. PosRowSet rowSet2 = (PosRowSet) super.Execute(ctx, "sqlkey1", "param1");
  31. while (rowSet2.hasNext()) {
  32. fields = rowSet2.next().getAttributes();
  33. for (Iterator iterator = fields.entrySet().iterator(); iterator.hasNext();) {
  34. Map.Entry entry = (Map.Entry) iterator.next();
  35. ctx.put(entry.getKey(), entry.getValue());
  36. list.add(entry.getKey());
  37. }
  38. Execute(ctx, "sqlkey-u", "param-u", 'u');
  39. Execute(ctx, "sqlkey-d", "param-d", 'd');
  40. Execute(ctx, "sqlkey-i", "param-i", 'i');
  41. Execute(ctx, "sqlkey-o", "param-o", 'u');
  42. // 计算订单余重,小于零则取下一订单(仅自动充当时使用)
  43. REP_REM_WGT -= Double.parseDouble(fields.get("WGT").toString());
  44. if (REP_REM_WGT <= 0) break;
  45. }
  46. }
  47. for (int i = list.size() - 1; i >= 0; i--)
  48. ctx.remove(list.get(i));
  49. return PosBizControlConstants.SUCCESS;
  50. }
  51. }