|
@@ -1,171 +0,0 @@
|
|
|
-package nckd.jxccl.swc.init.plugin.form;
|
|
|
|
|
-
|
|
|
|
|
-import kd.bos.dataentity.entity.DynamicObject;
|
|
|
|
|
-import kd.bos.dataentity.entity.DynamicObjectCollection;
|
|
|
|
|
-import kd.bos.entity.datamodel.events.BizDataEventArgs;
|
|
|
|
|
-import kd.bos.entity.datamodel.events.PropertyChangedArgs;
|
|
|
|
|
-import kd.bos.form.control.Label;
|
|
|
|
|
-import kd.bos.form.field.DateRangeEdit;
|
|
|
|
|
-import kd.bos.form.plugin.AbstractMobFormPlugin;
|
|
|
|
|
-import kd.bos.orm.query.QCP;
|
|
|
|
|
-import kd.bos.orm.query.QFilter;
|
|
|
|
|
-import kd.bos.servicehelper.user.UserServiceHelper;
|
|
|
|
|
-import kd.sdk.plugin.Plugin;
|
|
|
|
|
-import nckd.jxccl.base.swc.helper.SWCHelper;
|
|
|
|
|
-import nckd.jxccl.swc.constants.SwcConstant;
|
|
|
|
|
-
|
|
|
|
|
-import java.math.BigDecimal;
|
|
|
|
|
-import java.text.SimpleDateFormat;
|
|
|
|
|
-import java.util.*;
|
|
|
|
|
-
|
|
|
|
|
-/**
|
|
|
|
|
- * 动态表单插件(移动端)
|
|
|
|
|
- */
|
|
|
|
|
-public class empSalaryQueryMobFormPlugin extends AbstractMobFormPlugin implements Plugin {
|
|
|
|
|
-
|
|
|
|
|
- private static final String KEY_LAB_EMP_NAME = "nckd_employee";
|
|
|
|
|
- private static final String KEY_LAB_EMP_DESCRIPTION = "nckd_desc";
|
|
|
|
|
- private static final String KEY_LAB_REALAMT = "nckd_realamt";
|
|
|
|
|
- private static final String KEY_LAB_GROSSAMT = "nckd_grossamt";
|
|
|
|
|
- private static String KEY_STARTDATE = null;
|
|
|
|
|
- private static String KEY_ENDDATE = null;
|
|
|
|
|
- private static String KEY_META_PERUSER = "hrpi_personuserrel";
|
|
|
|
|
- private static Long KEY_EMPID = 0L;
|
|
|
|
|
-
|
|
|
|
|
- @Override
|
|
|
|
|
- public void createNewData(BizDataEventArgs e) {
|
|
|
|
|
- super.createNewData(e);
|
|
|
|
|
- DateRangeEdit dateRangeEdit = this.getView().getControl("nckd_daterangefield");
|
|
|
|
|
- KEY_STARTDATE = dateRangeEdit.getStartDateFieldKey();
|
|
|
|
|
- KEY_ENDDATE = dateRangeEdit.getEndDateFieldKey();
|
|
|
|
|
-
|
|
|
|
|
- this.getModel().setValue(KEY_STARTDATE, new Date());
|
|
|
|
|
-
|
|
|
|
|
- // 设置最大日期为上个月
|
|
|
|
|
- Calendar calendar = Calendar.getInstance();
|
|
|
|
|
- calendar.setTime(new Date());
|
|
|
|
|
- calendar.add(Calendar.MONTH, -1);
|
|
|
|
|
- Date lastMonthDate = calendar.getTime();
|
|
|
|
|
-
|
|
|
|
|
- this.getModel().setValue(KEY_ENDDATE, lastMonthDate);
|
|
|
|
|
-
|
|
|
|
|
- Long userId = UserServiceHelper.getCurrentUserId();
|
|
|
|
|
- //DynamicObject userDyn= SWCHelper.queryOne("bos_user", userId);
|
|
|
|
|
- this.getModel().setValue("nckd_user", userId);
|
|
|
|
|
- DynamicObject personUserDyns = SWCHelper.queryOne(KEY_META_PERUSER, "employee.id","user",userId);
|
|
|
|
|
-
|
|
|
|
|
- KEY_EMPID = personUserDyns.getLong("employee.id");
|
|
|
|
|
-
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- @Override
|
|
|
|
|
- public void afterBindData(EventObject e) {
|
|
|
|
|
- super.afterBindData(e);
|
|
|
|
|
- showData();
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- @Override
|
|
|
|
|
- public void propertyChanged(PropertyChangedArgs e) {
|
|
|
|
|
- super.propertyChanged(e);
|
|
|
|
|
- String fieldKey = e.getProperty().getName();
|
|
|
|
|
- if (fieldKey.equals("nckd_daterangefield")){
|
|
|
|
|
- // TODO 在此添加业务逻辑
|
|
|
|
|
- }
|
|
|
|
|
- if (fieldKey.equals("nckd_type")){
|
|
|
|
|
- // TODO 在此添加业务逻辑
|
|
|
|
|
- //e.getChangeSet()[0].getNewValue() ;
|
|
|
|
|
- //String value = (String)this.getModel().getValue(fieldKey);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- /**
|
|
|
|
|
- * 显示薪酬数据
|
|
|
|
|
- * caltask.paydate 预计支付日期 发放口径
|
|
|
|
|
- * caltask.payrolldate 薪资所属年月 统计口径
|
|
|
|
|
- */
|
|
|
|
|
- public void showData() {
|
|
|
|
|
- // 获取单据头日期范围,开始时间、结束时间
|
|
|
|
|
- Date startdate = (Date) this.getModel().getValue(KEY_STARTDATE);
|
|
|
|
|
- Date enddate = (Date) this.getModel().getValue(KEY_ENDDATE);
|
|
|
|
|
- String type = (String)this.getModel().getValue("nckd_type");
|
|
|
|
|
- //SimpleDateFormat df = new SimpleDateFormat("yyyy-MM");
|
|
|
|
|
- // 获取核算列表信息
|
|
|
|
|
- QFilter filter = new QFilter("calpersonid", QCP.equals, 2331344996847852544L);
|
|
|
|
|
- if(type.equals("10")){
|
|
|
|
|
- filter.and("caltask.paydate", QCP.large_equals, startdate);
|
|
|
|
|
- filter.and("caltask.paydate", QCP.less_equals, enddate);
|
|
|
|
|
- }else{
|
|
|
|
|
- filter.and("caltask.payrolldate", QCP.large_equals, startdate);
|
|
|
|
|
- filter.and("caltask.payrolldate", QCP.less_equals, enddate);
|
|
|
|
|
- }
|
|
|
|
|
- filter.and("hsas_caltableentry.calamountvalue", QCP.large_than, 0);
|
|
|
|
|
- String selectFields = "calpersonid,hsas_caltableentry.salaryitem.number,hsas_caltableentry.salaryitem.name,hsas_caltableentry.calamountvalue";
|
|
|
|
|
- DynamicObjectCollection calTableDyns = SwcConstant.CALTABLE_ENTITY.queryOriginalCollection(selectFields, new QFilter[]{filter});
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- DynamicObject empDyn= SWCHelper.queryOne("hrpi_employee", 2331344996847852544L);
|
|
|
|
|
-
|
|
|
|
|
- Label label = this.getView().getControl(KEY_LAB_EMP_NAME);
|
|
|
|
|
- label.setText(empDyn.getString("name"));
|
|
|
|
|
-
|
|
|
|
|
- Map<String, BigDecimal> calItemAmt = getCalItemAmt(calTableDyns);
|
|
|
|
|
- Map<String, String> itemName = getItemName(calTableDyns);
|
|
|
|
|
- if(calItemAmt != null && calItemAmt.size() > 0 && itemName != null && calItemAmt.size() > 0){
|
|
|
|
|
- Label label1 = this.getView().getControl(KEY_LAB_REALAMT);
|
|
|
|
|
- label1.setText(calItemAmt.get("JT_477").toString()); //实发合计
|
|
|
|
|
-
|
|
|
|
|
- Label label2 = this.getView().getControl(KEY_LAB_GROSSAMT);
|
|
|
|
|
- label2.setText(calItemAmt.get("JT_283").toString());
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- /**
|
|
|
|
|
- * 按 salaryitem.number 分组汇总金额
|
|
|
|
|
- * @param calTableDyns
|
|
|
|
|
- * @return
|
|
|
|
|
- */
|
|
|
|
|
- public Map<String, BigDecimal> getCalItemAmt(DynamicObjectCollection calTableDyns) {
|
|
|
|
|
- // 按 salaryitem.number 分组汇总金额
|
|
|
|
|
- Map<String, BigDecimal> groupedAmounts = new HashMap<>();
|
|
|
|
|
-
|
|
|
|
|
- for (DynamicObject item : calTableDyns) {
|
|
|
|
|
- String salaryItemNumber = item.getString("hsas_caltableentry.salaryitem.number");
|
|
|
|
|
- BigDecimal amount = item.getBigDecimal("hsas_caltableentry.calamountvalue");
|
|
|
|
|
- if (amount == null) {
|
|
|
|
|
- amount = BigDecimal.ZERO;
|
|
|
|
|
- }else{
|
|
|
|
|
- amount = amount.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- if (salaryItemNumber != null) {
|
|
|
|
|
- groupedAmounts.put(salaryItemNumber, groupedAmounts.getOrDefault(salaryItemNumber, BigDecimal.ZERO) .add(amount != null ? amount : BigDecimal.ZERO));
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- if(groupedAmounts.size() > 0){
|
|
|
|
|
- return groupedAmounts;
|
|
|
|
|
- }
|
|
|
|
|
- return null;
|
|
|
|
|
- }
|
|
|
|
|
- /**
|
|
|
|
|
- * 按 salaryitem.number 获取名称
|
|
|
|
|
- * @param calTableDyns
|
|
|
|
|
- * @return
|
|
|
|
|
- */
|
|
|
|
|
- public Map<String, String> getItemName(DynamicObjectCollection calTableDyns) {
|
|
|
|
|
- Map<String, String> itemNameMap = new HashMap<>();
|
|
|
|
|
- for (DynamicObject item : calTableDyns) {
|
|
|
|
|
- String salaryItemNumber = item.getString("hsas_caltableentry.salaryitem.number");
|
|
|
|
|
- String salaryItemName = item.getString("hsas_caltableentry.salaryitem.name");
|
|
|
|
|
-
|
|
|
|
|
- if (salaryItemNumber != null) {
|
|
|
|
|
- itemNameMap.put(salaryItemNumber, salaryItemName);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- if(itemNameMap.size() > 0){
|
|
|
|
|
- return itemNameMap;
|
|
|
|
|
- }
|
|
|
|
|
- return null;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
-}
|
|
|