我的作业模糊查询
This commit is contained in:
		
							parent
							
								
									94cb227f02
								
							
						
					
					
						commit
						623b1f9a90
					
				|  | @ -0,0 +1,147 @@ | |||
| // | ||||
| // Source code recreated from a .class file by IntelliJ IDEA | ||||
| // (powered by FernFlower decompiler) | ||||
| // | ||||
| 
 | ||||
| package nc.bs.ssctp.sscbd.tasktype.query.convertor; | ||||
| 
 | ||||
| import java.util.ArrayList; | ||||
| import java.util.List; | ||||
| import nc.bs.ssctp.sscbd.tasktype.config.TaskTypeConfigFactory; | ||||
| import nc.bs.ssctp.sscbd.tasktype.query.SSCTaskQueryCondition; | ||||
| 
 | ||||
| public class BlurConvertor implements ITaskQueryConditionConvertor { | ||||
|     public BlurConvertor() { | ||||
|     } | ||||
| 
 | ||||
|     public String getWherePart(SSCTaskQueryCondition condition) { | ||||
|         StringBuilder whereSql = new StringBuilder(); | ||||
|         whereSql.append(" "); | ||||
|         if (TaskTypeConfigFactory.QUERYCONDITION_BLUR.equals(condition.getQueryField())) { | ||||
|             String blur = condition.getQueryFieldValue(); | ||||
|             if (blur == null || "".equals(blur)) { | ||||
|                 return ""; | ||||
|             } | ||||
| 
 | ||||
|             String[] blurs = blur.split(","); | ||||
|             List<String> vas = new ArrayList(); | ||||
| 
 | ||||
|             for(String str : blurs) { | ||||
|                 vas.add(str); | ||||
|             } | ||||
| 
 | ||||
|             if (vas != null && vas.size() > 0) { | ||||
|                 for(String s : vas) { | ||||
|                     whereSql.append(" and ( NODETASKS.busiid in ( "); | ||||
|                     if (s.contains("=")) { | ||||
|                         String[] strs = s.split("="); | ||||
|                         whereSql.append(" SELECT a.busiid FROM sscrp_bill a,sscrp_detail b WHERE a.pk_bill = b.pk_bill AND CODE = '" + strs[0] + "' AND VALUE like '%" + strs[1].replaceAll("'", "") + "%'  "); | ||||
|                         whereSql.append(" UNION ALL "); | ||||
|                         whereSql.append(" SELECT a.busiid FROM sscrp_bill_done a,sscrp_detail_done b WHERE a.pk_bill = b.pk_bill AND CODE = '" + strs[0] + "' AND VALUE like '%" + strs[1].replaceAll("'", "") + "%'  "); | ||||
|                     } else { | ||||
|                         whereSql.append(" SELECT a.busiid FROM sscrp_bill a,sscrp_detail b WHERE a.pk_bill = b.pk_bill AND VALUE like '%" + s.replaceAll("'", "") + "%'  "); | ||||
|                         whereSql.append(" UNION ALL "); | ||||
|                         whereSql.append(" SELECT a.busiid FROM sscrp_bill_done a,sscrp_detail_done b WHERE a.pk_bill = b.pk_bill AND VALUE like '%" + s.replaceAll("'", "") + "%'  "); | ||||
|                     } | ||||
| 
 | ||||
|                     whereSql.append(" ) "); | ||||
| 
 | ||||
| 
 | ||||
|                     // 新增四个EXISTS条件 //联查 付款单、收款单、主报销单、主借款单 四张单子 | ||||
|                     whereSql.append(" OR EXISTS (SELECT 1 FROM AR_GATHERITEM bill JOIN BD_BALATYPE bala ON bala.pk_balatype = bill.pk_balatype WHERE NODETASKS.busiid = bill.pk_gatherbill AND bala.name LIKE '%" + s.replaceAll("'", "") + "%')"); | ||||
|                     whereSql.append(" OR EXISTS (SELECT 1 FROM ap_paybill bill JOIN AP_PAYITEM item ON item.pk_paybill = bill.pk_paybill JOIN BD_BALATYPE bala ON bala.pk_balatype = item.pk_balatype WHERE NODETASKS.busiid = bill.pk_paybill AND bala.name LIKE '%" + s.replaceAll("'", "") + "%')"); | ||||
|                     whereSql.append(" OR EXISTS (SELECT 1 FROM er_bxzb bill JOIN BD_BALATYPE bala ON bala.pk_balatype = bill.jsfs WHERE NODETASKS.busiid = bill.pk_jkbx AND bala.name LIKE '%" + s.replaceAll("'", "") + "%')"); | ||||
|                     whereSql.append(" OR EXISTS (SELECT 1 FROM er_jkzb bill JOIN BD_BALATYPE bala ON bala.pk_balatype = bill.jsfs WHERE NODETASKS.busiid = bill.pk_jkbx AND bala.name LIKE '%" + s.replaceAll("'", "") + "%')"); | ||||
|                     whereSql.append(" ) "); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         return whereSql.toString(); | ||||
|     } | ||||
| 
 | ||||
|     public String getWhere(String condition, Object blur) { | ||||
|         StringBuilder whereSql = new StringBuilder(); | ||||
|         whereSql.append(condition); | ||||
|         List<String> vas = new ArrayList(); | ||||
|         if (blur != null && !blur.toString().equals("")) { | ||||
|             for(Object c : (List)blur) { | ||||
|                 vas.add((String)c); | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         for(String str : vas) { | ||||
|             vas.add(str); | ||||
|         } | ||||
| 
 | ||||
|         if (vas != null && vas.size() > 0) { | ||||
|             StringBuilder sql = new StringBuilder(); | ||||
|             sql.append(" SELECT TASK.busiid                 "); | ||||
|             sql.append("   FROM SSCTP_TASK TASK                                                          "); | ||||
|             sql.append("   LEFT JOIN SSCTP_CURRENTTASK CURTASK                                            "); | ||||
|             sql.append("     ON CURTASK.PK_CURRENTTASK = TASK.PK_CURRENTTASK                             "); | ||||
|             sql.append("   LEFT JOIN SSCTP_TASKEXTENDINFO EXTENDINFO                                     "); | ||||
|             sql.append("     ON EXTENDINFO.PK_CURRENTTASK = TASK.PK_CURRENTTASK                          "); | ||||
|             sql.append("  WHERE " + condition + " and TASK.dr=0 and (CURTASK.saga_frozen is null or CURTASK.saga_frozen <> 1) "); | ||||
| 
 | ||||
|             for(String s : vas) { | ||||
|                 whereSql.append(" and nodetasks.busiid in ( "); | ||||
|                 if (s.contains("=")) { | ||||
|                     String[] strs = s.split("="); | ||||
|                     whereSql.append(" SELECT a.busiid FROM sscrp_bill a,sscrp_detail b WHERE a.pk_bill = b.pk_bill AND CODE = '" + strs[0] + "' AND VALUE like '%" + strs[1].replaceAll("'", "") + "%' AND a.busiid IN (" + sql.toString() + ") "); | ||||
|                     whereSql.append(" UNION ALL "); | ||||
|                     whereSql.append(" SELECT a.busiid FROM sscrp_bill_done a,sscrp_detail_done b WHERE a.pk_bill = b.pk_bill AND CODE = '" + strs[0] + "' AND VALUE like '%" + strs[1].replaceAll("'", "") + "%' AND a.busiid IN (" + sql.toString() + ") "); | ||||
|                 } else { | ||||
|                     String var10001 = s.replaceAll("'", ""); | ||||
|                     whereSql.append(" SELECT a.busiid FROM sscrp_bill a,sscrp_detail b WHERE a.pk_bill = b.pk_bill AND VALUE like '%" + var10001 + "%' AND a.busiid IN (" + sql.toString() + ") "); | ||||
|                     whereSql.append(" UNION ALL "); | ||||
|                     var10001 = s.replaceAll("'", ""); | ||||
|                     whereSql.append(" SELECT a.busiid FROM sscrp_bill_done a,sscrp_detail_done b WHERE a.pk_bill = b.pk_bill AND VALUE like '%" + var10001 + "%' AND a.busiid IN (" + sql.toString() + ") "); | ||||
|                 } | ||||
| 
 | ||||
|                 whereSql.append(" ) "); | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         return whereSql.toString(); | ||||
|     } | ||||
| 
 | ||||
|     public String getWhere4QM(String condition, Object blur) { | ||||
|         StringBuilder whereSql = new StringBuilder(); | ||||
|         whereSql.append(condition); | ||||
|         List<String> vas = new ArrayList(); | ||||
|         if (blur != null && !blur.toString().equals("")) { | ||||
|             for(Object c : (List)blur) { | ||||
|                 vas.add((String)c); | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         for(String str : vas) { | ||||
|             vas.add(str); | ||||
|         } | ||||
| 
 | ||||
|         if (vas != null && vas.size() > 0) { | ||||
|             StringBuilder sql = new StringBuilder(); | ||||
|             sql.append(" SELECT TASK.busiid                 "); | ||||
|             sql.append("   FROM SSCTP_TASK TASK                                                          "); | ||||
|             sql.append("   LEFT JOIN SSCTP_CURRENTTASK CURTASK                                            "); | ||||
|             sql.append("     ON CURTASK.PK_CURRENTTASK = TASK.PK_CURRENTTASK                             "); | ||||
|             sql.append("   LEFT JOIN SSCTP_TASKEXTENDINFO EXTENDINFO                                     "); | ||||
|             sql.append("     ON EXTENDINFO.PK_CURRENTTASK = TASK.PK_CURRENTTASK                          "); | ||||
|             sql.append("  WHERE " + condition + " and TASK.dr=0 and (CURTASK.saga_frozen is null or CURTASK.saga_frozen <> 1) "); | ||||
| 
 | ||||
|             for(String s : vas) { | ||||
|                 whereSql.append(" and nodetasks.busiid in ( "); | ||||
|                 whereSql.append(" select id from sscqm_check_bill where pk_bill in ( "); | ||||
|                 String var10001 = s.replaceAll("'", ""); | ||||
|                 whereSql.append(" SELECT a.busiid FROM sscrp_bill a,sscrp_detail b WHERE a.pk_bill = b.pk_bill AND VALUE like '%" + var10001 + "%' AND a.busiid IN (" + sql.toString() + ") "); | ||||
|                 whereSql.append(" UNION ALL "); | ||||
|                 var10001 = s.replaceAll("'", ""); | ||||
|                 whereSql.append(" SELECT a.busiid FROM sscrp_bill_done a,sscrp_detail_done b WHERE a.pk_bill = b.pk_bill AND VALUE like '%" + var10001 + "%' AND a.busiid IN (" + sql.toString() + ") "); | ||||
|                 whereSql.append(" ) )"); | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         return whereSql.toString(); | ||||
|     } | ||||
| } | ||||
		Loading…
	
		Reference in New Issue