Explorar el Código

工资条更新逻辑,不删除其他历史年份的数据

yuanzhi_kuang hace 3 semanas
padre
commit
221a9a579b

+ 68 - 13
GDYSL/websrc/com/kingdee/shr/customer/gtiit/rpt/AllSalaryListHandler.java

@@ -1,6 +1,3 @@
-/**
- *
- */
 package com.kingdee.shr.customer.gtiit.rpt;
 
 import java.math.BigDecimal;
@@ -24,6 +21,7 @@ import com.kingdee.bos.metadata.query.util.CompareType;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import com.kingdee.shr.customer.gtiit.util.DateTimeUtils;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.json.JSONArray;
@@ -116,6 +114,14 @@ public class AllSalaryListHandler extends ListHandler {
 				getPaydata();
 				getSaveData(rs, currentUserInfo, nowdate);
 				updateFiled(countFiled);
+			}else if(checkDayisUp()){
+				System.out.println("改变了参数,重新触发工资包更新");
+				// 先删除套打表里有的数据
+				DbUtil.execute(this.ctx, this.deleteSql(personid));
+				// 获取动态添加薪酬项目单据新增数据
+				getPaydata();
+				getSaveData(rs, currentUserInfo, nowdate);
+				updateFiled(countFiled);
 			}
 		} catch (BOSException e) {
 			// TODO 自动生成的 catch 块
@@ -192,13 +198,13 @@ public class AllSalaryListHandler extends ListHandler {
 			// // 根据前端过滤条件处理
 			// getFilter(fastFilterItems, defaultViewInfo, fastFilterItems, currentUserInfo,
 			// nowdate, null);
-            try {
-                getFilter(fastFilterItems, defaultViewInfo, personid, currentUserInfo, nowdate);
-            } catch (JSONException e) {
-                throw new RuntimeException(e);
-            }
-            logger.error("执行成功3");
-			// }
+			try {
+				getFilter(fastFilterItems, defaultViewInfo, personid, currentUserInfo, nowdate);
+			} catch (JSONException e) {
+				throw new RuntimeException(e);
+			}
+			logger.error("执行成功3");
+
 
 			// defaultViewInfo.setFilter(filterInfo);
 			if (logger.isDebugEnabled()) {
@@ -555,9 +561,12 @@ public class AllSalaryListHandler extends ListHandler {
 				" FROM t_bd_person a right join T_HR_SCMPCALTABLE b on a.fid=b.fpersonid  left join  T_HR_SCalScheme c on  b.FCalSchemeID=c.fid left join T_HR_TaxUnit d on c.FTaxUnitID =d.fid\r\n"
 						+ "left join T_BD_Nationality e on a.FNationalityID=e.fid  left join T_ORG_BaseUnit g on b.FAdminOrgUnitID=g.fid\r\n");
 		sql.append(" where 1=1 ");
-		sql.append(" and b.FCalState in('12','20','8')");
+		sql.append(" and b.FCalState in('12','20')");
 		//// sql.append(" and b.fpersonid=" + "'" + peronid + "'");
 
+		// coyle 20250430改
+		String dateFormat = DateTimeUtils.dateFormat(new Date(), "YYYY");
+		sql.append(" and b.fperiodyear = '" + dateFormat + "'");
 		System.out.print("所有薪酬查询语句是" + sql.toString());
 		logger.error("所有薪酬查询语句是" + sql.toString());
 		return sql.toString();
@@ -567,7 +576,9 @@ public class AllSalaryListHandler extends ListHandler {
 	// 删除套打里面的有的数据sql
 	public String deleteSql(String personid) {
 		StringBuffer sql = new StringBuffer();
-		sql.append("DELETE FROM CT_SAL_WagesChromatography");
+		String dateFormat = DateTimeUtils.dateFormat(new Date(), "YYYY");
+		sql.append(" and b.fperiodyear = '" + dateFormat + "'");
+		sql.append("DELETE FROM CT_SAL_WagesChromatography where  cfstatisticalyear = '" + dateFormat + "'");
 		System.out.print("薪酬套打的删除语句是" + sql.toString());
 		return sql.toString();
 
@@ -1708,7 +1719,7 @@ public class AllSalaryListHandler extends ListHandler {
 	public void getPaydata() {
 		// Map<String,PayAddInfo> payMap=new HashMap<>();
 		// 查询工资单薪酬项目新增数据表的sql
-		String sql = "select* from CT_CUS_AddSalaryproject";
+		String sql = "select * from CT_CUS_AddSalaryproject";
 		try {
 			IRowSet rs = DbUtil.executeQuery(this.ctx, sql);
 			while (rs.next()) {
@@ -1906,4 +1917,48 @@ public class AllSalaryListHandler extends ListHandler {
 			}
 		}
 	}
+
+
+
+	/***
+	 *
+	 * 查询homepage薪酬基础数据/薪酬预留基础数据0下面的数据
+	 * 编码为1006的; 数据有没有修改; 修改则更新工资条数据;
+	 * coyle20250430
+	 * @return
+	 */
+	public boolean checkDayisUp() {
+		boolean isUp = false;
+		String dateFormat = DateTimeUtils.dateFormat(new Date(), "yyyy-MM-dd");
+		String sql = "select * from T_HR_SHRRsvItem0 where fnumber = '1006'  " +
+				"and  flastupdatetime  >= {" + dateFormat + "} ";
+		try {
+			IRowSet rs = DbUtil.executeQuery(this.ctx, sql);
+			while (rs.next()) {
+				isUp = true;
+			}
+		} catch (SQLException | BOSException e) {
+			e.printStackTrace();
+		}
+		return isUp;
+	}
+
+
+	/***
+	 * 修改数据库薪酬基础数据/薪酬预留基础数据0下面编码为1006的的数据
+	 * 20250430
+	 * coyle
+	 */
+	public void upDayDataDate() {
+		//该最后修改时间为昨天的; 这个时间上面用做了判断条件,为了使其不再更新工资包的数;
+		Date update = com.kingdee.util.DateTimeUtils.addDay(new Date(), -1) ;
+		String updateSql = "UPDATE T_HR_SHRRsvItem0 SET flastupdatetime = "+update+" where fnumber = '1006' ";
+		System.out.print("修改薪酬基础数据/薪酬预留基础数据0下面编码为1006的的数据的修改语句"+updateSql);
+		try {
+			DbUtil.execute(ctx, updateSql);
+		} catch (BOSException e) {
+			e.printStackTrace();
+		}
+	}
+
 }