| 
					
				 | 
			
			
				@@ -25,6 +25,7 @@ import nc.hr.utils.SpecialDataUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import nc.itf.uap.IUAPQueryBS;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import nc.jdbc.framework.processor.ArrayListProcessor;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import nc.jdbc.framework.processor.ColumnProcessor;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import nc.log.NcLog;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import nc.pubitf.rbac.IFunctionPermissionPubService;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import nc.ui.pub.ButtonObject;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import nc.ui.pub.SeparatorButtonObject;
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -51,7 +52,11 @@ import nc.vo.pubapp.pattern.pub.MathTool; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import nc.vo.uap.rbac.profile.FunctionPermProfileManager;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import nc.vo.uap.rbac.profile.IFunctionPermProfile;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/**
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 全员收入统计表
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * @author Yaoyu
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ *
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 @SuppressWarnings("deprecation")
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 public class IncomeStatisticalUI extends ToftPanel {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -106,27 +111,21 @@ public class IncomeStatisticalUI extends ToftPanel { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	private UIRefPane getOrgPanel() {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if (this.ivjOrgPanel == null) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			//节点编码
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			String nodeCode = "60H10110";
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			this.ivjOrgPanel = new UIRefPane();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			this.ivjOrgPanel.setName("pkorg");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			this.ivjOrgPanel.setRefNodeName("财务组织");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			IFunctionPermProfile profile = FunctionPermProfileManager.getInstance().getProfile(WorkbenchEnvironment.getInstance().getLoginUser().getUser_code());
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			if (profile != null) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				this.ivjOrgPanel.getRefModel().setFilterPks(profile.getPermPkorgs());
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			//权限组织
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			String[] pkorgs = FunctionPermProfileManager.getInstance().getProfile(WorkbenchEnvironment.getInstance().getLoginUser().getUser_code()).getFuncSubInfo(nodeCode).getFuncPermissionPkorgs();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			this.ivjOrgPanel.getRefModel().setFilterPks(pkorgs);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			this.ivjOrgPanel.setBounds(new Rectangle(100, 20));
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			this.ivjOrgPanel.setPreferredSize(new Dimension(170, 20));
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			this.ivjOrgPanel.setMultiSelectedEnabled(true);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			this.ivjOrgPanel.addValueChangedListener(new ValueChangedListener() {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			//this.ivjOrgPanel.setMultiSelectedEnabled(true);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				this.ivjOrgPanel.addValueChangedListener(new ValueChangedListener() {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				public void valueChanged(ValueChangedEvent e) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					String[] newValue = (String[]) e.getNewValue();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					IncomeStatisticalUI.this.initialize();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					if (ivjcostcpanel != null) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						((CostCenterTreeRefModel) ivjcostcpanel.getRefModel()).setCurrentOrgCreated(true);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						((CostCenterTreeRefModel) ivjcostcpanel.getRefModel()).setPk_org(newValue[0]);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			});
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		}
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -381,7 +380,7 @@ public class IncomeStatisticalUI extends ToftPanel { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					String userCode = InvocationInfoProxy.getInstance().getUserCode();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					String pk_defdoc = queryDftDocUser(userCode);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					codeTypein.append("bd_defdoc.code in (");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					codeTypein.append("defname in (");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					for (int i = 0;i < codeType.length; i++) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						//激励类型存在如C1编码,截取第一位用于后续判断
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						String type = codeType[i].substring(0,1);
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -389,7 +388,8 @@ public class IncomeStatisticalUI extends ToftPanel { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						if(pk_defdoc != null && ("A".equals(type) || "B".equals(type) || "C".equals(type) || "F".equals(type))) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							//清空拼接的sql信息,重新拼接
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							codeTypein.setLength(0);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							codeTypein.append("(bd_defdoc.code like 'A%' or bd_defdoc.code like 'B%' or bd_defdoc.code like 'C%' or bd_defdoc.code like 'F%',");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							//codeTypein.append("(bd_defdoc.code like 'A%' or bd_defdoc.code like 'B%' or bd_defdoc.code like 'C%' or bd_defdoc.code like 'F%',");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							codeTypein.append("(defname like 'A%' or defname like 'B%' or defname like 'C%' or defname like 'F%',");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							break;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						codeTypein.append("'"+codeType[i]+"',");
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -652,38 +652,38 @@ public class IncomeStatisticalUI extends ToftPanel { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(startDate.compareTo(endDate) == 1) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			ExceptionUtils.wrappBusinessException("开始期间不能大于结束期间!");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		// 创建起始日期的 Calendar 实例  
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Calendar startCal = Calendar.getInstance();  
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        startCal.setTime(startDate);  
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		// 创建起始日期的 Calendar 实例 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Calendar startCal = Calendar.getInstance();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        startCal.setTime(startDate);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 创建用于迭代的 Calendar 实例,从起始日期开始  
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Calendar currentCal = Calendar.getInstance();  
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        currentCal.setTime(startDate);  
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Calendar currentCal = Calendar.getInstance();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        currentCal.setTime(startDate);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 用于构建 SQL IN 子句的 StringBuffer  
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 用于构建 SQL IN 子句的 StringBuffer
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         StringBuffer wa_periodin = new StringBuffer();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         StringBuffer query_year_monthin = new StringBuffer();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         StringBuffer allin = new StringBuffer();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         allin.append(" in (");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         wa_periodin.append(" in (");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         query_year_monthin.append(" in (");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 循环直到当前日期超过结束日期  
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         while (currentCal.getTime().before(endDate) || currentCal.getTime().equals(endDate)) {  
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // 获取年份和月份(月份需要 +1,因为 Calendar 月份是从 0 开始的)  
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            int year = currentCal.get(Calendar.YEAR);  
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            int month = currentCal.get(Calendar.MONTH) + 1;  
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 循环直到当前日期超过结束日期
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         while (currentCal.getTime().before(endDate) || currentCal.getTime().equals(endDate)) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 获取年份和月份(月份需要 +1,因为 Calendar 月份是从 0 开始的)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            int year = currentCal.get(Calendar.YEAR);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            int month = currentCal.get(Calendar.MONTH) + 1;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // 格式化年份和月份为字符串(YYYYMM)  
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 格式化年份和月份为字符串(YYYYMM)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             String yearMonthStr = String.format("%04d%02d", year, month);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             //2023年情况特殊,上半年和下半年的奖金在不同的表
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if(year == 2023) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	            if(month <= 6) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	            	query_year_monthin.append("'" + yearMonthStr + "',");  
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	            	query_year_monthin.append("'" + yearMonthStr + "',");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	            }else {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	            	wa_periodin.append("'" + yearMonthStr + "',");  	
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	            	wa_periodin.append("'" + yearMonthStr + "',");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	            }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }else {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            	query_year_monthin.append("'" + yearMonthStr + "',"); 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            	query_year_monthin.append("'" + yearMonthStr + "',");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             	wa_periodin.append("'" + yearMonthStr + "',");  
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -730,7 +730,18 @@ public class IncomeStatisticalUI extends ToftPanel { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append(" hrorgname,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append(" deptname,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append(" postname,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" defname,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" CASE");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" 	WHEN EXISTS(");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	SELECT DISTINCT bd_defdoc1.name");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	FROM");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	hi_psnjob hi_psnjob1");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	LEFT JOIN org_adminorg org_adminorg1 ON hi_psnjob1.pk_org = org_adminorg1.pk_adminorg");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	LEFT JOIN om_post om_post1 ON hi_psnjob1.jobglbdef30 = om_post1.pk_post");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	LEFT JOIN bd_defdoc bd_defdoc1 ON om_post1.glbdef1 = bd_defdoc1.pk_defdoc");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	WHERE");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	hi_psnjob1.dr = 0	AND org_adminorg1.name = hrorgname	AND hi_psnjob1.clerkcode = psncode");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	AND hi_psnjob1.ismainjob = 'N' AND bd_defdoc1.name = 'A' AND hi_psnjob1.endflag = 'N'");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	) THEN 'A' ELSE defname	END AS defname,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append(" ismainjob,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append(" begindate,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append(" enddate,");
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -741,7 +752,6 @@ public class IncomeStatisticalUI extends ToftPanel { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append(" sum( designbonus ) AS designbonus,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append(" sum( marketbonus ) AS marketbonus,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append(" sum( awardsbonus ) AS awardsbonus,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		//sql.append(" sum( managementbonus ) AS managementbonus,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append(" COALESCE( sum( managementbonus ), 0 ) - COALESCE( sum( yfdk ), 0 ) AS managementbonus,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append(" sum( servicebonus ) AS servicebonus,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append(" sum( guaranteebonus1 ) AS guaranteebonus1,");
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -754,75 +764,57 @@ public class IncomeStatisticalUI extends ToftPanel { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append(" sum( share_bonus ) AS share_bonus");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append(" FROM(");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append(" SELECT");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" CASE ");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" 	WHEN ROW_NUMBER ( ) OVER ( PARTITION BY bd_psndoc.name, org_hrorg.name, org_dept.name, om_post.postname ORDER BY hi_psnjob.begindate DESC ) = 1 THEN");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" 	COALESCE( laborcost_table.count, 0 ) + COALESCE( PRIM2023_table.count, 0 )");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" END AS ffyf,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" 	NULL AS ffyf,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append(" 	hi_psnjob.clerkcode AS psncode,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append(" 	bd_psndoc.name AS psnname,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append(" 	org_hrorg.name AS hrorgname,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append(" 	org_dept.name AS deptname,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append(" 	om_posts.postname AS postname,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append(" 	bd_defdoc.name AS defname,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" CASE");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" 	CASE");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append(" 		hi_psnjob.ismainjob");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append(" 		WHEN 'Y' THEN");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append(" 		'主职' ELSE '兼职'");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" END AS ismainjob,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" 	END AS ismainjob,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append(" 	hi_psnjob.begindate AS begindate,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append(" 	hi_psnjob.enddate AS enddate,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" CASE");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" 	WHEN ROW_NUMBER ( ) OVER ( PARTITION BY bd_psndoc.name, org_hrorg.name, org_dept.name, om_post.postname ORDER BY hi_psnjob.begindate DESC ) = 1 THEN");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" 		COALESCE(laborcost_table.bmcd, 0) + COALESCE(PRIM2023_table.bmcd, 0)");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" END AS bmcd,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" CASE");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" 	WHEN ROW_NUMBER ( ) OVER ( PARTITION BY bd_psndoc.name, org_hrorg.name, org_dept.name, om_post.postname ORDER BY hi_psnjob.begindate DESC ) = 1 THEN");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" 		COALESCE(laborcost_table.sjyfdk, 0) + COALESCE(PRIM2023_table.sjyfdk, 0) + COALESCE(laborcost_table.glyfdk, 0)+ COALESCE( PRIM2023_table.glyfdk, 0 )");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" 		END AS yfdk,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" CASE");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" 	WHEN ROW_NUMBER ( ) OVER ( PARTITION BY bd_psndoc.name, org_hrorg.name, org_dept.name, om_post.postname ORDER BY hi_psnjob.begindate DESC ) = 1 THEN");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" 		COALESCE(laborcost_table.gsbt, 0) + COALESCE(PRIM2023_table.gsbt, 0)");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" END AS gsbt,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" CASE");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" 	WHEN ROW_NUMBER ( ) OVER ( PARTITION BY bd_psndoc.name, org_hrorg.name, org_dept.name, om_post.postname ORDER BY hi_psnjob.begindate DESC ) = 1 THEN");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" 	COALESCE(laborcost_table.zzbt, 0) + COALESCE(PRIM2023_table.zzbt, 0)");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" END AS zzbt,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" NULL AS designbonus,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" NULL AS marketbonus,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" NULL AS awardsbonus,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" NULL AS managementbonus,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" NULL AS servicebonus,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" NULL AS guaranteebonus1,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" NULL AS guaranteebonus2,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" NULL AS specialbonus,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" NULL AS allowancebonus,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" CASE");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append("	WHEN ROW_NUMBER ( ) OVER ( PARTITION BY bd_psndoc.name, org_hrorg.name, org_dept.name, om_post.postname ORDER BY hi_psnjob.begindate DESC ) = 1 THEN");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append("	bonus_table.function_bonus");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" END AS function_bonus,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" CASE");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append("	WHEN ROW_NUMBER ( ) OVER ( PARTITION BY bd_psndoc.name, org_hrorg.name, org_dept.name, om_post.postname ORDER BY hi_psnjob.begindate DESC ) = 1 THEN");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append("	bonus_table.manage_jsbonus");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" END AS manage_jsbonus,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" CASE");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append("	WHEN ROW_NUMBER ( ) OVER ( PARTITION BY bd_psndoc.name, org_hrorg.name, org_dept.name, om_post.postname ORDER BY hi_psnjob.begindate DESC ) = 1 THEN");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append("	bonus_table.manage_bdamount");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" END AS manage_bdamount,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" CASE");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append("	WHEN ROW_NUMBER ( ) OVER ( PARTITION BY bd_psndoc.name, org_hrorg.name, org_dept.name, om_post.postname ORDER BY hi_psnjob.begindate DESC ) = 1 THEN");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" 	bonus_table.share_bonus");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" END AS share_bonus");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" 	NULL AS bmcd,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" 	NULL AS yfdk,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" 	NULL AS gsbt,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" 	NULL AS zzbt,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" 	NULL AS designbonus,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" 	NULL AS marketbonus,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" 	NULL AS awardsbonus,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" 	NULL AS managementbonus,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" 	NULL AS servicebonus,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" 	NULL AS guaranteebonus1,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" 	NULL AS guaranteebonus2,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" 	NULL AS specialbonus,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" 	NULL AS allowancebonus,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" 	CASE");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("		WHEN ROW_NUMBER ( ) OVER ( PARTITION BY bd_psndoc.name, org_hrorg.name, org_dept.name, om_post.postname ORDER BY hi_psnjob.begindate DESC ) = 1 THEN");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("		bonus_table.function_bonus");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" 	END AS function_bonus,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" 	CASE");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("		WHEN ROW_NUMBER ( ) OVER ( PARTITION BY bd_psndoc.name, org_hrorg.name, org_dept.name, om_post.postname ORDER BY hi_psnjob.begindate DESC ) = 1 THEN");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("		bonus_table.manage_jsbonus");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" 	END AS manage_jsbonus,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" 	CASE");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("		WHEN ROW_NUMBER ( ) OVER ( PARTITION BY bd_psndoc.name, org_hrorg.name, org_dept.name, om_post.postname ORDER BY hi_psnjob.begindate DESC ) = 1 THEN");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("		bonus_table.manage_bdamount");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" 	END AS manage_bdamount,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" 	CASE");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("		WHEN ROW_NUMBER ( ) OVER ( PARTITION BY bd_psndoc.name, org_hrorg.name, org_dept.name, om_post.postname ORDER BY hi_psnjob.begindate DESC ) = 1 THEN");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" 		bonus_table.share_bonus");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" 	END AS share_bonus");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append(" FROM");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" 		bd_psndoc bd_psndoc");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" 	bd_psndoc bd_psndoc");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append(" LEFT JOIN hi_psnjob hi_psnjob ON bd_psndoc.pk_psndoc = hi_psnjob.pk_psndoc");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append(" LEFT JOIN org_adminorg org_hrorg ON hi_psnjob.pk_org = org_hrorg.pk_adminorg");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append(" LEFT JOIN org_dept org_dept ON hi_psnjob.pk_dept = org_dept.pk_dept");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append(" LEFT JOIN om_post om_post ON hi_psnjob.pk_post = om_post.pk_post");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append(" LEFT JOIN om_post om_posts ON hi_psnjob.jobglbdef30 = om_posts.pk_post");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append(" LEFT JOIN bd_defdoc bd_defdoc ON om_posts.glbdef1 = bd_defdoc.pk_defdoc");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		//sql.append(" LEFT JOIN ( SELECT clerkcode, MAX( begindate ) AS max_begindate FROM hi_psnjob where ismainjob = 'Y'");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		//sql.append("		AND (( SUBSTR( hi_psnjob.begindate, 1, 7 ) <= '"+endPeriod+"' AND SUBSTR( hi_psnjob.enddate, 1, 7 ) >= '"+startPeriod+"' )OR ( enddate IS NULL ) )  ");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		//sql.append("       GROUP BY clerkcode  ) max_begindate_table ON hi_psnjob.clerkcode = max_begindate_table.clerkcode");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append(" LEFT JOIN (");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append("		SELECT");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append(" 				vdef1,");
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -841,46 +833,6 @@ public class IncomeStatisticalUI extends ToftPanel { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append("	AND COALESCE(org_hrorg.name,'N') = COALESCE(bonus_table.cost_corp,'N')");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append("	AND COALESCE(org_dept.name,'N') = COALESCE(bonus_table.cost_dept,'N')");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append("	AND COALESCE(om_post.postname,'N') = COALESCE(bonus_table.postname,'N')");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" LEFT JOIN (");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" 		SELECT");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" 				workercode,cost_org,cost_dept,post,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" 				SUM( CASE WHEN outlaytype = '部门承担人力成本' THEN decimalmny END ) AS bmcd,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" 				SUM( CASE WHEN outlaytype = '设计预发待扣' THEN decimalmny END ) AS sjyfdk,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" 				SUM( CASE WHEN outlaytype = '管理预发待扣' THEN decimalmny END ) AS glyfdk,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" 				SUM( CASE WHEN outlaytype = '公司管理费用' AND wa_type <> '资质补贴' THEN decimalmny END ) AS gsbt,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" 				SUM( CASE WHEN wa_type = '资质补贴' THEN decimalmny END ) AS zzbt,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" 				SUM( CASE WHEN outlaytype in('部门承担人力成本','设计预发待扣','管理预发待扣','公司管理费用','其他公司管理费用','经济补偿金部门','经济补偿金公司') THEN decimalmny END) AS GDBF,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append("                COUNT(DISTINCT wa_period) AS count");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" 		FROM");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" 				hr_laborcost");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append("        WHERE");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append("        		dr = 0 AND wa_period "+ map.get("wa_periodin"));
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" 		GROUP BY");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" 				workercode,cost_org,cost_dept,post");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" ) laborcost_table ON hi_psnjob.clerkcode = laborcost_table.workercode");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append("	AND COALESCE( org_hrorg.pk_adminorg, 'N' ) = COALESCE( laborcost_table.cost_org, 'N' )");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append("	AND COALESCE( org_dept.pk_dept, 'N' ) = COALESCE( laborcost_table.cost_dept, 'N' )");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append("	AND COALESCE( om_post.pk_post, 'N' ) = COALESCE( laborcost_table.post, 'N' )");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" LEFT JOIN (");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" 		SELECT");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" 				clerk_code,company,deptcode,position,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" 				SUM( CASE WHEN cost_category = '部门承担人力成本' THEN amount END ) AS bmcd,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" 				SUM( CASE WHEN cost_category = '设计预发待扣' THEN amount END ) AS sjyfdk,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" 				SUM( CASE WHEN cost_category = '管理预发待扣' THEN amount END ) AS glyfdk,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" 				SUM( CASE WHEN cost_category = '公司管理费用' THEN amount END ) AS gsbt,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" 				SUM( CASE WHEN cost_category = '资质补贴' THEN amount END ) AS zzbt,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" 				SUM( CASE WHEN cost_category in('部门承担人力成本','设计预发待扣','管理预发待扣','公司管理费用','其他公司管理费用','经济补偿金部门','经济补偿金公司') THEN amount END) AS GDBF,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append("                COUNT(DISTINCT query_year_month) AS count");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" 		FROM");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" 				EMPLOYEE_SALARY_PRIM2023");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append("        WHERE");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append("        		TO_CHAR(query_year_month, 'YYYYMM') "+ map.get("query_year_monthin"));
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" 		GROUP BY");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" 				clerk_code,company,deptcode,position");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" ) PRIM2023_table ON hi_psnjob.clerkcode = PRIM2023_table.clerk_code");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append("	AND COALESCE( org_hrorg.name, 'N' ) = COALESCE( PRIM2023_table.company, 'N' )");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append("	AND COALESCE( org_dept.code, 'N' ) = COALESCE( PRIM2023_table.deptcode, 'N' )");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append("	AND COALESCE( om_post.postname, 'N' ) = COALESCE( PRIM2023_table.position, 'N' )");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append(" WHERE");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append(" 		bd_psndoc.dr = 0 AND hi_psnjob.dr = 0");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append("        AND om_posts.postname <> '发薪人员'");
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -889,18 +841,179 @@ public class IncomeStatisticalUI extends ToftPanel { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			sql.append(" 	AND	hi_psnjob.clerkcode = '"+psncode+"'");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(psnname != null && !"".equals(psnname)) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			sql.append(" 	AND	bd_psndoc.name = '"+psnname+"'");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if(codeTypein != null && !"".equals(codeTypein)) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			sql.append("   AND  " + codeTypein);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			sql.append(" 	AND	bd_psndoc.name like '%"+psnname+"%'");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append(" AND (( SUBSTR( hi_psnjob.begindate, 1, 7 ) <= '"+endPeriod+"' AND SUBSTR( hi_psnjob.enddate, 1, 7 ) >= '"+startPeriod+"' )OR ( enddate IS NULL ) ) ");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" UNION ALL");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		//拼接2023年上半年部分sql
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" UNION ALL");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" SELECT * FROM(");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" SELECT");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	COUNT( DISTINCT es2023.query_year_month ) AS ffyf,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" 	es2023.clerk_code AS psncode,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" 	es2023.employee_name AS psnname,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" 	es2023.company AS hrorgname,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" 	org_dept.name AS deptname,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" 	om_posts.postname AS postname,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" 	bd_defdoc.name AS defname,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" CASE");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	hi_psnjobs.ismainjob");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	WHEN 'Y' THEN");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" 	'主职' ELSE '兼职'");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" END AS ismainjob,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	hi_psnjobs.begindate AS begindate,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	hi_psnjobs.enddate AS enddate,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	SUM( CASE WHEN es2023.cost_category = '部门承担人力成本' THEN es2023.amount END ) AS bmcd,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	SUM( CASE WHEN es2023.cost_category = '设计预发待扣' THEN es2023.amount END ) + SUM( CASE WHEN es2023.cost_category = '管理预发待扣' THEN es2023.amount END ) AS yfdk,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	SUM( CASE WHEN es2023.cost_category = '公司管理费用' THEN es2023.amount END ) AS gsbt,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	SUM( CASE WHEN es2023.cost_category = '资质补贴' THEN es2023.amount END ) AS zzbt,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	NULL AS designbonus,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	NULL AS marketbonus,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	NULL AS awardsbonus,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	NULL AS managementbonus,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	NULL AS servicebonus,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	NULL AS guaranteebonus1,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	NULL AS guaranteebonus2,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	NULL AS specialbonus,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	NULL AS allowancebonus,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	NULL AS function_bonus,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	NULL AS manage_jsbonus,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	NULL AS manage_bdamount,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	NULL AS share_bonus ");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" FROM");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	EMPLOYEE_SALARY_PRIM2023 es2023");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	LEFT JOIN org_adminorg org_hrorg ON es2023.company = org_hrorg.name");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	LEFT JOIN org_dept org_dept ON es2023.deptcode = org_dept.code");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	LEFT JOIN (");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("		SELECT");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("			hi_psnjob.clerkcode AS clerkcode,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("			hi_psnjob.pk_org AS pk_org,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("			hi_psnjob.pk_dept AS pk_dept,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("			hi_psnjob.pk_post AS pk_post,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("			om_post.postname AS postname,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("			hi_psnjob.jobglbdef30 AS jobglbdef30,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("			hi_psnjob.begindate AS begindate,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("			hi_psnjob.enddate AS enddate,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("			hi_psnjob.ismainjob AS ismainjob,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("			ROW_NUMBER ( ) OVER (PARTITION BY hi_psnjob.clerkcode,hi_psnjob.pk_org,hi_psnjob.pk_dept,hi_psnjob.pk_post,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("			hi_psnjob.jobglbdef30");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("			ORDER BY hi_psnjob.begindate DESC ) AS rn");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("		FROM");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("			hi_psnjob hi_psnjob");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("			LEFT JOIN om_post om_post ON hi_psnjob.pk_post = om_post.pk_post");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	) hi_psnjobs ON es2023.clerk_code = hi_psnjobs.clerkcode ");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("		AND COALESCE( org_hrorg.pk_adminorg, 'N' ) = COALESCE( hi_psnjobs.pk_org, 'N' )");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("		AND COALESCE( org_dept.pk_dept, 'N' ) = COALESCE( hi_psnjobs.pk_dept, 'N' )");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("		AND COALESCE( es2023.position, 'N' ) = COALESCE( hi_psnjobs.postname, 'N' )");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("		AND hi_psnjobs.rn = 1");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	LEFT JOIN om_post om_posts ON hi_psnjobs.jobglbdef30 = om_posts.pk_post");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	LEFT JOIN bd_defdoc bd_defdoc ON om_posts.glbdef1 = bd_defdoc.pk_defdoc");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" WHERE");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" 	TO_CHAR(query_year_month, 'YYYYMM') "+ map.get("query_year_monthin"));
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	AND om_posts.postname <> '发薪人员'");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("    AND org_hrorg.code " + codein);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if(psncode != null && !"".equals(psncode)) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			sql.append(" 	AND	es2023.clerk_code = '"+psncode+"'");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if(psnname != null && !"".equals(psnname)) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			sql.append(" 	AND	es2023.employee_name like '%"+psnname+"%'");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" GROUP BY");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	es2023.clerk_code,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	es2023.employee_name,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	es2023.company,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	org_dept.name,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	om_posts.postname,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	bd_defdoc.name,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	hi_psnjobs.ismainjob,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	hi_psnjobs.begindate,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	hi_psnjobs.enddate)");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" WHERE (bmcd <> 0 OR yfdk<> 0 OR gsbt<> 0 OR zzbt<> 0)	");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		//拼接收入部分sql
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" UNION ALL");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" SELECT * FROM(");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" SELECT");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	COUNT( DISTINCT hr_laborcost.wa_period ) AS ffyf,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	hr_laborcost.workercode AS psncode,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	hr_laborcost.name AS psnname,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	org_hrorg.name AS hrorgname,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	org_dept.name AS deptname,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	om_posts.postname AS postname,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	bd_defdoc.name AS defname,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" 	CASE");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("		hi_psnjobs.ismainjob");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("		WHEN 'Y' THEN");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" 		'主职' ELSE '兼职'");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" 	END AS ismainjob,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	hi_psnjobs.begindate AS begindate,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	hi_psnjobs.enddate AS enddate,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	SUM( CASE WHEN hr_laborcost.outlaytype = '部门承担人力成本' THEN hr_laborcost.decimalmny END ) AS bmcd,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	SUM( CASE WHEN hr_laborcost.outlaytype = '设计预发待扣' THEN hr_laborcost.decimalmny END ) + ");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("		SUM( CASE WHEN hr_laborcost.outlaytype = '管理预发待扣' THEN hr_laborcost.decimalmny END ) AS yfdk,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	SUM( CASE WHEN hr_laborcost.outlaytype = '公司管理费用' AND hr_laborcost.wa_type <> '资质补贴' THEN hr_laborcost.decimalmny END ) AS gsbt,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	SUM( CASE WHEN hr_laborcost.wa_type = '资质补贴' THEN hr_laborcost.decimalmny END ) AS zzbt,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	NULL AS designbonus,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	NULL AS marketbonus,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	NULL AS awardsbonus,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	NULL AS managementbonus,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	NULL AS servicebonus,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	NULL AS guaranteebonus1,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	NULL AS guaranteebonus2,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	NULL AS specialbonus,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	NULL AS allowancebonus,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	NULL AS function_bonus,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	NULL AS manage_jsbonus,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	NULL AS manage_bdamount,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	NULL AS share_bonus");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" FROM");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	hr_laborcost hr_laborcost");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	LEFT JOIN org_adminorg org_hrorg ON hr_laborcost.cost_org = org_hrorg.pk_adminorg");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	LEFT JOIN org_dept org_dept ON hr_laborcost.cost_dept = org_dept.pk_dept");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	LEFT JOIN om_post om_post ON hr_laborcost.post = om_post.pk_post");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	LEFT JOIN (");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("		SELECT");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("			clerkcode,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("			pk_org,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("			pk_dept,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("			pk_post,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("			jobglbdef30,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("			begindate,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("			enddate,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("			ismainjob,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("			ROW_NUMBER ( ) OVER ( PARTITION BY clerkcode, pk_org, pk_dept, pk_post, jobglbdef30 ORDER BY begindate DESC ) AS rn");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("		FROM");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("		hi_psnjob");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("		) hi_psnjobs ON hr_laborcost.workercode = hi_psnjobs.clerkcode ");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("		AND COALESCE( hr_laborcost.cost_org, 'N' ) = COALESCE( hi_psnjobs.pk_org, 'N' ) ");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("		AND COALESCE( hr_laborcost.cost_dept, 'N' ) = COALESCE( hi_psnjobs.pk_dept, 'N' ) ");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("		AND COALESCE( hr_laborcost.post, 'N' ) = COALESCE( hi_psnjobs.pk_post, 'N' )");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("		AND hi_psnjobs.rn = 1");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	LEFT JOIN om_post om_posts ON hi_psnjobs.jobglbdef30 = om_posts.pk_post");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	LEFT JOIN bd_defdoc bd_defdoc ON om_posts.glbdef1 = bd_defdoc.pk_defdoc");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" WHERE");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" 	hr_laborcost.dr = 0");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	AND wa_period "+ map.get("wa_periodin"));
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	AND om_posts.postname <> '发薪人员' ");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("    AND org_hrorg.code " + codein);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if(psncode != null && !"".equals(psncode)) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			sql.append(" 	AND	hr_laborcost.workercode = '"+psncode+"'");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if(psnname != null && !"".equals(psnname)) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			sql.append(" 	AND	hr_laborcost.name like '%"+psnname+"%'");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" GROUP BY");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	hr_laborcost.workercode,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	hr_laborcost.name,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	org_hrorg.name,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	org_dept.name,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	om_posts.postname,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	bd_defdoc.name,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	hi_psnjobs.begindate,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	hi_psnjobs.enddate,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append("	hi_psnjobs.ismainjob)");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" WHERE (bmcd <> 0 OR yfdk<> 0 OR gsbt<> 0 OR zzbt<> 0)");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		//拼接奖金部分sql
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" UNION ALL");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append(" SELECT");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append("	NULL AS ffyf,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append("	hi_psnjob.clerkcode AS psncode,");
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -955,10 +1068,7 @@ public class IncomeStatisticalUI extends ToftPanel { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			sql.append(" 	AND	hi_psnjob.clerkcode = '"+psncode+"'");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(psnname != null && !"".equals(psnname)) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			sql.append(" 	AND	bd_psndoc.name = '"+psnname+"'");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if(codeTypein != null && !"".equals(codeTypein)) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			sql.append("   AND  " + codeTypein);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			sql.append(" 	AND	bd_psndoc.name like '%"+psnname+"%'");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append(" GROUP BY");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append(" hi_psnjob.clerkcode,");
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -970,7 +1080,11 @@ public class IncomeStatisticalUI extends ToftPanel { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append(" hi_psnjobs.begindate,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append(" hi_psnjobs.enddate,");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sql.append(" hi_psnjobs.ismainjob");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sql.append(" ) GROUP BY psncode,psnname,hrorgname,deptname,postname,defname,ismainjob,begindate,enddate  ORDER BY psncode,begindate");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" ) ");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if(codeTypein != null && !"".equals(codeTypein)) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			sql.append("   WHERE  " + codeTypein);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sql.append(" GROUP BY psncode,psnname,hrorgname,deptname,postname,defname,ismainjob,begindate,enddate  ORDER BY psncode,begindate");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		return (ArrayList<Object>) IUAPQueryBS.executeQuery(sql.toString(), new ArrayListProcessor());
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	
 
			 |