| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- package xin.glue.scheduling;
- import java.util.Collections;
- import java.util.Comparator;
- import java.util.List;
- import java.util.Map;
- import com.posdata.glue.biz.activity.PosActivity;
- import com.posdata.glue.biz.constants.PosBizControlConstants;
- import com.posdata.glue.biz.control.PosBizProvider;
- import com.posdata.glue.component.layout.PosXmlMessageLayout;
- import com.posdata.glue.context.PosContext;
- import com.posdata.glue.dao.PosGenericDao;
- import com.posdata.glue.dao.manager.PosQueryDefinition;
- import com.posdata.glue.dao.manager.PosQueryManager;
- import com.posdata.glue.dao.vo.PosParameter;
- import com.posdata.glue.msg.PosMESMessageImpl;
- import com.posdata.glue.msg.PosMessage;
- import com.posdata.glue.msg.util.PosMessageUtil;
- public abstract class XinHandleDataL2 extends PosActivity {
- private static byte[] lock = new byte[0]; // ÌØÊâµÄinstance±äÁ¿
- protected PosGenericDao getDao() {
- String testdao = getProperty("dao");
- if (testdao == null)
- testdao = "mesdao";
- else
- testdao = testdao.trim();
- return getDao(testdao);
- }
- protected boolean UpdateRec(String sqlKey, Object[] args) {
- try {
- PosParameter param = new PosParameter();
- for (int i = 0; i < args.length; i++)
- param.setWhereClauseParameter(i, args[i]);
- if (getDao().update(sqlKey, param) == 1)
- return true;
- else {
- StringBuffer sb = new StringBuffer("Record update failure!!\n");
- sb.append("SqlKey: ").append(sqlKey).append("\n");
- PosQueryManager queryManager = (PosQueryManager)PosContext.getBeanFactory().getBeanObject("queryManager");
- PosQueryDefinition queryDefinition = queryManager.getQueryDefinition(sqlKey);
- if (queryDefinition != null) {
- String sql = queryDefinition.getQueryStatement();
- for (int i = 0; i < args.length; i++)
- sql.replaceFirst("?", args[i].toString());
- sb.append(sql);
- }
- logger.logError(sb.toString());
- }
- } catch (Exception e) {
- logger.logError(e);
- }
- return false;
- }
- protected void TC_SEND(String sMsg, String TcId) {
- PosContext context = new PosContext();
- PosMessage message = new PosMESMessageImpl();
- context.setMessage(message);
- message.setTC(sMsg);
- message.setTCID(TcId);
- context.put(PosBizControlConstants.SERVICE_NAME, TcId + "-service");
- synchronized(lock) {
- PosBizProvider.getController().doSubController(context, false);
- }
- }
- private String setLength(int len) {
- if (len < 10) return "000" + len;
- else if (len < 100) return "00" + len;
- else if (len < 1000) return "0" + len;
- return "" + len;
- }
- private String setLength(String sMsg, int len) {
- for (int i = sMsg.length(); i < len; i++)
- sMsg += ' ';
- return sMsg.substring(0, len);
- }
- protected String getMessage(String sMsg, String TcId) {
- StringBuffer msg = new StringBuffer();
- try {
- List attributes = new PosXmlMessageLayout().getAttributes(TcId).getAttributes();
- Collections.sort(attributes, new Comparator() {
- public int compare(Object o1, Object o2) {
- return (Integer.parseInt(PosMessageUtil.getSource(o1, "seq").toString()) -
- Integer.parseInt(PosMessageUtil.getSource(o2, "seq").toString()));
- }});
- int mLen = sMsg.length();
- int iLen = 0;
- for (int i = 0, size = attributes.size(); i < size; i++) {
- Map attribute = (Map) attributes.get(i);
- String key = (String) attribute.get("id");
- msg.append(setLength(key, 20)).append('[').append(setLength(iLen)).append(" ");
- int len = Integer.parseInt(attribute.get("length").toString());
- msg.append(setLength(len)).append("] ");
- if (iLen + len <= mLen)
- msg.append(sMsg.substring(iLen, iLen + len));
- else if (iLen < mLen)
- msg.append(sMsg.substring(iLen, mLen - iLen));
- else
- msg.append('*');
- msg.append('\n');
- iLen += len;
- }
- msg.insert(0, "[Message Length: " + sMsg.length() + "]\t[Request Length: " + iLen + "]\n");
- msg.insert(0, sMsg + '\n');
- } catch (Exception e) {
- return TcId + ": " + sMsg;
- }
- return msg.toString();
- }
- }
|