|
@@ -1,7 +1,6 @@
|
|
|
package nckd.jxccl.swc.hcss.formplugin;
|
|
package nckd.jxccl.swc.hcss.formplugin;
|
|
|
|
|
|
|
|
import kd.bos.algo.DataSet;
|
|
import kd.bos.algo.DataSet;
|
|
|
-import kd.bos.dataentity.OperateOption;
|
|
|
|
|
import kd.bos.dataentity.entity.DynamicObject;
|
|
import kd.bos.dataentity.entity.DynamicObject;
|
|
|
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
|
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
|
|
import kd.bos.db.DB;
|
|
import kd.bos.db.DB;
|
|
@@ -13,26 +12,23 @@ import kd.bos.form.operate.FormOperate;
|
|
|
import kd.bos.logging.Log;
|
|
import kd.bos.logging.Log;
|
|
|
import kd.bos.logging.LogFactory;
|
|
import kd.bos.logging.LogFactory;
|
|
|
import kd.bos.orm.ORM;
|
|
import kd.bos.orm.ORM;
|
|
|
-import kd.bos.orm.query.QCP;
|
|
|
|
|
-import kd.bos.orm.query.QFilter;
|
|
|
|
|
import kd.bos.servicehelper.parameter.SystemParamServiceHelper;
|
|
import kd.bos.servicehelper.parameter.SystemParamServiceHelper;
|
|
|
-import kd.sdk.swc.hsas.business.internal.spi.CalResultQueryService;
|
|
|
|
|
import kd.swc.hcss.formplugin.web.AbstractHcssBaseFormPlugin;
|
|
import kd.swc.hcss.formplugin.web.AbstractHcssBaseFormPlugin;
|
|
|
-import nckd.jxccl.swc.constants.SwcConstant;
|
|
|
|
|
import nckd.jxccl.swc.utils.SwcUtils;
|
|
import nckd.jxccl.swc.utils.SwcUtils;
|
|
|
-
|
|
|
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
|
|
|
+import java.math.RoundingMode;
|
|
|
import java.util.*;
|
|
import java.util.*;
|
|
|
-import java.util.stream.Collectors;
|
|
|
|
|
|
|
+
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 自定义收入证明项目列表
|
|
* 自定义收入证明项目列表
|
|
|
* 系统服务云-公共设置-系统参数-自定义参数
|
|
* 系统服务云-公共设置-系统参数-自定义参数
|
|
|
* 参数名称为 INCOMEPROOFBILL_CUSTOMITEMS 收入证明办理单,自定义收入证明项目编码 参数值为 000001,000002
|
|
* 参数名称为 INCOMEPROOFBILL_CUSTOMITEMS 收入证明办理单,自定义收入证明项目编码 参数值为 000001,000002
|
|
|
* 参数名称为 INCOMEPROOFBILL_SALARYITEMS 收入证明办理单,自定义收入证明获取员工薪酬金额的薪酬项目编码 参数值为 JT_283,JT_477 示例
|
|
* 参数名称为 INCOMEPROOFBILL_SALARYITEMS 收入证明办理单,自定义收入证明获取员工薪酬金额的薪酬项目编码 参数值为 JT_283,JT_477 示例
|
|
|
|
|
+ *
|
|
|
* @author turborao
|
|
* @author turborao
|
|
|
- * @date 2026-01-07
|
|
|
|
|
- * @desc
|
|
|
|
|
|
|
+ * 创建时间 2026-01-07
|
|
|
|
|
+ * 描述 自定义收入证明项目获取计算
|
|
|
*/
|
|
*/
|
|
|
public class IncomeProofBillExPlugin extends AbstractHcssBaseFormPlugin {
|
|
public class IncomeProofBillExPlugin extends AbstractHcssBaseFormPlugin {
|
|
|
|
|
|
|
@@ -56,9 +52,7 @@ public class IncomeProofBillExPlugin extends AbstractHcssBaseFormPlugin {
|
|
|
public void beforeDoOperation(BeforeDoOperationEventArgs args) {
|
|
public void beforeDoOperation(BeforeDoOperationEventArgs args) {
|
|
|
|
|
|
|
|
FormOperate source = (FormOperate)args.getSource();
|
|
FormOperate source = (FormOperate)args.getSource();
|
|
|
- OperateOption option = source.getOption();
|
|
|
|
|
String formOp = source.getOperateKey();
|
|
String formOp = source.getOperateKey();
|
|
|
- Long id = this.getModel().getDataEntity().getLong("id");
|
|
|
|
|
DynamicObject data = this.getModel().getDataEntity();
|
|
DynamicObject data = this.getModel().getDataEntity();
|
|
|
Long empId = data.getLong("employee.id");
|
|
Long empId = data.getLong("employee.id");
|
|
|
Date startDate = data.getDate("nckd_startdate");
|
|
Date startDate = data.getDate("nckd_startdate");
|
|
@@ -71,10 +65,7 @@ public class IncomeProofBillExPlugin extends AbstractHcssBaseFormPlugin {
|
|
|
|
|
|
|
|
super.beforeDoOperation(args);
|
|
super.beforeDoOperation(args);
|
|
|
|
|
|
|
|
- /**
|
|
|
|
|
- * 以上需要保留标准产品计算逻辑,
|
|
|
|
|
- * 有自定义收入证明项目时才取数
|
|
|
|
|
- */
|
|
|
|
|
|
|
+ /// 以上需要保留标准产品计算逻辑,有自定义收入证明项目时才取数
|
|
|
if(isExistCustomItems){
|
|
if(isExistCustomItems){
|
|
|
String salaryitem = getSalaryItemsForSql();
|
|
String salaryitem = getSalaryItemsForSql();
|
|
|
DynamicObjectCollection salaryDetail = querySalaryDetailByEmp(empId, salaryitem, startDate, endDate);
|
|
DynamicObjectCollection salaryDetail = querySalaryDetailByEmp(empId, salaryitem, startDate, endDate);
|
|
@@ -82,25 +73,24 @@ public class IncomeProofBillExPlugin extends AbstractHcssBaseFormPlugin {
|
|
|
DynamicObject salaryDetailObj = salaryDetail.get(0);
|
|
DynamicObject salaryDetailObj = salaryDetail.get(0);
|
|
|
BigDecimal amount = salaryDetailObj.getBigDecimal("amount");
|
|
BigDecimal amount = salaryDetailObj.getBigDecimal("amount");
|
|
|
BigDecimal monthCount = salaryDetailObj.getBigDecimal("monthCount");
|
|
BigDecimal monthCount = salaryDetailObj.getBigDecimal("monthCount");
|
|
|
- BigDecimal monthlyAmount = amount.divide(monthCount, 2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
|
|
+ BigDecimal monthlyAmount = amount.divide(monthCount, 2, RoundingMode.HALF_UP);
|
|
|
//赋值
|
|
//赋值
|
|
|
if(amount.compareTo(BigDecimal.ZERO) > 0 && monthCount.compareTo(BigDecimal.ZERO) > 0) {
|
|
if(amount.compareTo(BigDecimal.ZERO) > 0 && monthCount.compareTo(BigDecimal.ZERO) > 0) {
|
|
|
- dealIncomeInfo(amount.setScale(2), monthlyAmount);
|
|
|
|
|
|
|
+ dealIncomeInfo(amount.setScale(2, RoundingMode.HALF_UP), monthlyAmount);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-
|
|
|
|
|
/**
|
|
/**
|
|
|
* 根据薪员工 +日期范围获取薪资明细
|
|
* 根据薪员工 +日期范围获取薪资明细
|
|
|
- * @return
|
|
|
|
|
|
|
+ * @return DynamicObjectCollection
|
|
|
*/
|
|
*/
|
|
|
public DynamicObjectCollection querySalaryDetailByEmp(Long empId,String salaryitem, Date startDate, Date endDate) {
|
|
public DynamicObjectCollection querySalaryDetailByEmp(Long empId,String salaryitem, Date startDate, Date endDate) {
|
|
|
StringBuilder sb = SwcUtils.getSalaryDetailSqlByEmp(empId, salaryitem,startDate, endDate);
|
|
StringBuilder sb = SwcUtils.getSalaryDetailSqlByEmp(empId, salaryitem,startDate, endDate);
|
|
|
DataSet dataSet = DB.queryDataSet(this.getClass().getName(), DBRoute.of("swc"), sb.toString());
|
|
DataSet dataSet = DB.queryDataSet(this.getClass().getName(), DBRoute.of("swc"), sb.toString());
|
|
|
- DynamicObjectCollection cols = ORM.create().toPlainDynamicObjectCollection(dataSet);
|
|
|
|
|
- return cols;
|
|
|
|
|
|
|
+ logger.info("IncomeProofBillExPlugin 开始查询薪资数据,参数:{},{},{},{}", empId, salaryitem,startDate,endDate);
|
|
|
|
|
+ return ORM.create().toPlainDynamicObjectCollection(dataSet);
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|