4b4496a07772ec80c7b782bdd1bbdb5c3618fb9d.svn-base 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. package xin.glue.ui.G.G07;
  2. import java.util.ArrayList;
  3. import java.util.HashMap;
  4. import java.util.Map;
  5. import com.posdata.glue.biz.activity.PosActivity;
  6. import com.posdata.glue.biz.constants.PosBizControlConstants;
  7. import com.posdata.glue.context.PosContext;
  8. import com.posdata.glue.dao.vo.PosParameter;
  9. import com.posdata.glue.dao.vo.PosRow;
  10. import com.posdata.glue.dao.vo.PosRowSet;
  11. public class SyncSlabYard extends PosActivity {
  12. public String runActivity(PosContext context) {
  13. String[] sSlabNo = (String[])context.get("slabNo");
  14. String[] sYardAddr = (String[])context.get("yardAddr");
  15. String[] arrSlabNo ;
  16. String[] arrYardAddr ;
  17. Map map = new HashMap();
  18. if(!(sSlabNo.length >0))return PosBizControlConstants.SUCCESS;
  19. arrSlabNo = sSlabNo[0].split("\\|");
  20. arrYardAddr = sYardAddr[0].split("\\|");
  21. //板坯块数 跟 板坯地址个数 不符,输入条件错误
  22. if(arrYardAddr.length > 1 && arrYardAddr.length != arrSlabNo.length)return PosBizControlConstants.SUCCESS;
  23. //查询板坯数否在库,没有板坯地址
  24. if(arrYardAddr.length == 1 && arrSlabNo.length > 1){
  25. String slabNotExist = "select slab_no from tbg04_slab_yard where slab_no = ? and yard_addr like 'Z%'";
  26. String slabNotSearch = "select slab_no,YARD_ADDR from tbg04_slab_yard where slab_no is not null and yard_addr like 'Z%'";
  27. ArrayList listNonExist = new ArrayList();
  28. ArrayList listNonSearch = new ArrayList();
  29. ArrayList listError = new ArrayList();
  30. PosParameter param = null;
  31. PosRowSet rowSet = null;
  32. int iSlabCnt = 0;
  33. String slab = null;
  34. String addr = null;
  35. //要查询的板坯不在库情况 && 要查询的板坯在库存中有 多块
  36. for(int i = 0 ; i < arrSlabNo.length ; i++){
  37. param = new PosParameter();
  38. iSlabCnt = 0;
  39. param.setWhereClauseParameter(0, arrSlabNo[i].trim());
  40. rowSet = getDao("mesdao").findByQueryStatement(slabNotExist, param);
  41. //板坯不在库
  42. if(!rowSet.hasNext())listNonExist.add(arrSlabNo[i].trim() + "\n");
  43. //板坯在库 但是有多块板坯 板坯号相同
  44. while(rowSet.hasNext()){
  45. iSlabCnt++;
  46. rowSet.next();
  47. }
  48. //如果库存存在多块板坯 板坯号相同 增加错误提示信息
  49. if(iSlabCnt > 1){
  50. listError.add(arrSlabNo[i].trim() + "\n");
  51. }
  52. }
  53. //板坯在库 查询的板坯数据中没有
  54. rowSet = getDao("mesdao").findByQueryStatement(slabNotSearch);
  55. while(rowSet.hasNext()){
  56. PosRow row = rowSet.next();
  57. iSlabCnt = 0;
  58. slab = (String)row.getAttribute("SLAB_NO");
  59. addr = (String)row.getAttribute("YARD_ADDR");
  60. for(int i = 0 ; i < arrSlabNo.length ; i++){
  61. if(slab.equals(arrSlabNo[i].trim()))iSlabCnt++;
  62. }
  63. if(iSlabCnt == 0)listNonSearch.add(slab + " --- " + addr + "\n");
  64. }
  65. map.put("NON_EXIT", listNonExist);
  66. map.put("NON_SEARCH", listNonSearch);
  67. map.put("ERRO_DUP_SLAB", listError);
  68. }
  69. //查询板坯 地址 跟 库存信息匹配
  70. else{
  71. }
  72. context.put("syncSlabYard_vo", map);
  73. return PosBizControlConstants.SUCCESS;
  74. }
  75. }