package xin.glue.nui.E.E03; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Map; import xin.glue.ui.common.PosDBEngine; import com.posdata.glue.biz.constants.PosBizControlConstants; import com.posdata.glue.context.PosContext; import com.posdata.glue.dao.vo.PosRowSet; public class RepMatSave extends PosDBEngine { public String runActivity(PosContext ctx) { Initialize(); // 2. Get Parameter( 各语句参数名获取 ) setParamMap(ctx, "sqlkey0", "param0"); // 选取充当订单及订单余量 setParamMap(ctx, "sqlkey1", "param1"); // 选取充当物料及充当重量 setParamMap(ctx, "sqlkey-u", "param-u");// REP_XXXX setParamMap(ctx, "sqlkey-d", "param-d");// REP_XXXX_D setParamMap(ctx, "sqlkey-i", "param-i");// REP_XXXX_D setParamMap(ctx, "sqlkey-o", "param-o");// 订单余量更新 List list = new ArrayList(); PosRowSet rowSet1 = (PosRowSet) super.Execute(ctx, "sqlkey0", "param0"); while (rowSet1.hasNext()) { Map fields = rowSet1.next().getAttributes(); double REP_REM_WGT = Double.parseDouble(fields.get("REP_REM_WGT").toString()); for (Iterator iterator = fields.entrySet().iterator(); iterator.hasNext();) { Map.Entry entry = (Map.Entry) iterator.next(); ctx.put(entry.getKey(), entry.getValue()); list.add(entry.getKey()); } PosRowSet rowSet2 = (PosRowSet) super.Execute(ctx, "sqlkey1", "param1"); while (rowSet2.hasNext()) { fields = rowSet2.next().getAttributes(); for (Iterator iterator = fields.entrySet().iterator(); iterator.hasNext();) { Map.Entry entry = (Map.Entry) iterator.next(); ctx.put(entry.getKey(), entry.getValue()); list.add(entry.getKey()); } Execute(ctx, "sqlkey-u", "param-u", 'u'); Execute(ctx, "sqlkey-d", "param-d", 'd'); Execute(ctx, "sqlkey-i", "param-i", 'i'); Execute(ctx, "sqlkey-o", "param-o", 'u'); // 计算订单余重,小于零则取下一订单(仅自动充当时使用) REP_REM_WGT -= Double.parseDouble(fields.get("WGT").toString()); if (REP_REM_WGT <= 0) break; } } for (int i = list.size() - 1; i >= 0; i--) ctx.remove(list.get(i)); return PosBizControlConstants.SUCCESS; } }