|
@@ -6,6 +6,15 @@ import kd.bos.entity.datamodel.events.BizDataEventArgs;
|
|
|
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
|
|
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
|
|
|
import kd.bos.form.control.Label;
|
|
import kd.bos.form.control.Label;
|
|
|
import kd.bos.form.field.DateRangeEdit;
|
|
import kd.bos.form.field.DateRangeEdit;
|
|
|
|
|
+import kd.bos.form.mcontrol.mobtable.MobTable;
|
|
|
|
|
+import kd.bos.form.mcontrol.mobtable.MobTablePackageDataHandler;
|
|
|
|
|
+import kd.bos.form.mcontrol.mobtable.MobTableRowBuilder;
|
|
|
|
|
+import kd.bos.form.mcontrol.mobtable.MobTableRowData;
|
|
|
|
|
+import kd.bos.form.mcontrol.mobtable.events.IMobTablePackageDataHandlerListener;
|
|
|
|
|
+import kd.bos.form.mcontrol.mobtable.events.MobTableHandleResult;
|
|
|
|
|
+import kd.bos.form.mcontrol.mobtable.events.MobTablePackageDataHandlerArgs;
|
|
|
|
|
+import kd.bos.form.mcontrol.mobtable.events.MobTablePackageDataHandlerEvent;
|
|
|
|
|
+import kd.bos.form.mcontrol.mobtable.tablecolumn.MobTableColumn;
|
|
|
import kd.bos.form.plugin.AbstractMobFormPlugin;
|
|
import kd.bos.form.plugin.AbstractMobFormPlugin;
|
|
|
import kd.bos.orm.query.QCP;
|
|
import kd.bos.orm.query.QCP;
|
|
|
import kd.bos.orm.query.QFilter;
|
|
import kd.bos.orm.query.QFilter;
|
|
@@ -20,6 +29,8 @@ import java.util.*;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 动态表单插件(移动端)
|
|
* 动态表单插件(移动端)
|
|
|
|
|
+ * @author turborao
|
|
|
|
|
+ * @date 2025/11/27
|
|
|
*/
|
|
*/
|
|
|
public class EmpSalaryQueryMobFormPlugin extends AbstractMobFormPlugin implements Plugin {
|
|
public class EmpSalaryQueryMobFormPlugin extends AbstractMobFormPlugin implements Plugin {
|
|
|
|
|
|
|
@@ -27,41 +38,65 @@ public class EmpSalaryQueryMobFormPlugin extends AbstractMobFormPlugin implement
|
|
|
private static final String KEY_LAB_EMP_DESCRIPTION = "nckd_desc";
|
|
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_REALAMT = "nckd_realamt";
|
|
|
private static final String KEY_LAB_GROSSAMT = "nckd_grossamt";
|
|
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_CTL_STARTDATE = "startmonth";
|
|
|
|
|
+ private static String KEY_CTL_ENDDATE = "endmonth";
|
|
|
private static String KEY_META_PERUSER = "hrpi_personuserrel";
|
|
private static String KEY_META_PERUSER = "hrpi_personuserrel";
|
|
|
private static Long KEY_EMPID = 0L;
|
|
private static Long KEY_EMPID = 0L;
|
|
|
|
|
+ private static Date KEY_STARTDATE = new Date();
|
|
|
|
|
+ private static Date KEY_ENDDATE = new Date();
|
|
|
|
|
+ private static String KEY_TYPE = "10";
|
|
|
|
|
|
|
|
- @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());
|
|
|
|
|
|
|
+ public void initialize() {
|
|
|
|
|
|
|
|
// 设置最大日期为上个月
|
|
// 设置最大日期为上个月
|
|
|
Calendar calendar = Calendar.getInstance();
|
|
Calendar calendar = Calendar.getInstance();
|
|
|
calendar.setTime(new Date());
|
|
calendar.setTime(new Date());
|
|
|
calendar.add(Calendar.MONTH, -1);
|
|
calendar.add(Calendar.MONTH, -1);
|
|
|
|
|
+ calendar.set(Calendar.DAY_OF_MONTH, 1);
|
|
|
|
|
+ calendar.set(Calendar.HOUR_OF_DAY, 0);
|
|
|
|
|
+ calendar.set(Calendar.MINUTE, 0);
|
|
|
|
|
+ calendar.set(Calendar.SECOND, 0);
|
|
|
|
|
+ calendar.set(Calendar.MILLISECOND, 0);
|
|
|
Date lastMonthDate = calendar.getTime();
|
|
Date lastMonthDate = calendar.getTime();
|
|
|
|
|
+ KEY_STARTDATE = lastMonthDate;
|
|
|
|
|
|
|
|
- this.getModel().setValue(KEY_ENDDATE, lastMonthDate);
|
|
|
|
|
|
|
+ MobTable mobTable = getControl("nckd_mobtable");
|
|
|
|
|
+ mobTable.addMobTablePackageDataHandlerListener(new IMobTablePackageDataHandlerListener() {
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void createMobTablePackageDataHandler(MobTablePackageDataHandlerEvent mobTablePackageDataHandlerEvent) {
|
|
|
|
|
+ mobTablePackageDataHandlerEvent.setMobTablePackageDataHandler(new EmpSalaryQueryMobDataHandler());//添加自定义的Handle
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void createNewData(BizDataEventArgs e) {
|
|
|
|
|
+ super.createNewData(e);
|
|
|
|
|
+ showData();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void beforeBindData(EventObject e) {
|
|
|
|
|
+ super.beforeBindData(e);
|
|
|
|
|
+ this.getModel().setValue(KEY_CTL_STARTDATE, KEY_STARTDATE);
|
|
|
|
|
+
|
|
|
|
|
+ this.getModel().setValue(KEY_CTL_ENDDATE, KEY_ENDDATE);
|
|
|
|
|
|
|
|
Long userId = UserServiceHelper.getCurrentUserId();
|
|
Long userId = UserServiceHelper.getCurrentUserId();
|
|
|
- //DynamicObject userDyn= SWCHelper.queryOne("bos_user", userId);
|
|
|
|
|
this.getModel().setValue("nckd_user", userId);
|
|
this.getModel().setValue("nckd_user", userId);
|
|
|
|
|
+
|
|
|
DynamicObject personUserDyns = SWCHelper.queryOne(KEY_META_PERUSER, "employee.id","user",userId);
|
|
DynamicObject personUserDyns = SWCHelper.queryOne(KEY_META_PERUSER, "employee.id","user",userId);
|
|
|
|
|
|
|
|
|
|
+ if(personUserDyns == null){
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
KEY_EMPID = personUserDyns.getLong("employee.id");
|
|
KEY_EMPID = personUserDyns.getLong("employee.id");
|
|
|
-
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public void afterBindData(EventObject e) {
|
|
public void afterBindData(EventObject e) {
|
|
|
super.afterBindData(e);
|
|
super.afterBindData(e);
|
|
|
- showData();
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -70,11 +105,18 @@ public class EmpSalaryQueryMobFormPlugin extends AbstractMobFormPlugin implement
|
|
|
String fieldKey = e.getProperty().getName();
|
|
String fieldKey = e.getProperty().getName();
|
|
|
if (fieldKey.equals("nckd_daterangefield")){
|
|
if (fieldKey.equals("nckd_daterangefield")){
|
|
|
// TODO 在此添加业务逻辑
|
|
// TODO 在此添加业务逻辑
|
|
|
|
|
+ KEY_STARTDATE = (Date)this.getModel().getValue(KEY_CTL_STARTDATE);
|
|
|
|
|
+ KEY_ENDDATE = (Date)this.getModel().getValue(KEY_CTL_ENDDATE);
|
|
|
|
|
+ showData();
|
|
|
|
|
+ this.getView().updateView("nckd_mob_empsalary") ;
|
|
|
}
|
|
}
|
|
|
if (fieldKey.equals("nckd_type")){
|
|
if (fieldKey.equals("nckd_type")){
|
|
|
// TODO 在此添加业务逻辑
|
|
// TODO 在此添加业务逻辑
|
|
|
- //e.getChangeSet()[0].getNewValue() ;
|
|
|
|
|
- //String value = (String)this.getModel().getValue(fieldKey);
|
|
|
|
|
|
|
+
|
|
|
|
|
+ KEY_TYPE = (String)this.getModel().getValue("nckd_type");
|
|
|
|
|
+ showData();
|
|
|
|
|
+ this.getView().updateView("nckd_mob_empsalary") ;
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -85,12 +127,12 @@ public class EmpSalaryQueryMobFormPlugin extends AbstractMobFormPlugin implement
|
|
|
*/
|
|
*/
|
|
|
public void showData() {
|
|
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");
|
|
|
|
|
|
|
+ Date startdate = KEY_STARTDATE;
|
|
|
|
|
+ Date enddate = KEY_ENDDATE;
|
|
|
|
|
+ String type = KEY_TYPE;
|
|
|
//SimpleDateFormat df = new SimpleDateFormat("yyyy-MM");
|
|
//SimpleDateFormat df = new SimpleDateFormat("yyyy-MM");
|
|
|
// 获取核算列表信息
|
|
// 获取核算列表信息
|
|
|
- QFilter filter = new QFilter("calpersonid", QCP.equals, 2331344996847852544L);
|
|
|
|
|
|
|
+ QFilter filter = new QFilter("calpersonid", QCP.equals, 2334901966875941888L);
|
|
|
if(type.equals("10")){
|
|
if(type.equals("10")){
|
|
|
filter.and("caltask.paydate", QCP.large_equals, startdate);
|
|
filter.and("caltask.paydate", QCP.large_equals, startdate);
|
|
|
filter.and("caltask.paydate", QCP.less_equals, enddate);
|
|
filter.and("caltask.paydate", QCP.less_equals, enddate);
|
|
@@ -102,20 +144,38 @@ public class EmpSalaryQueryMobFormPlugin extends AbstractMobFormPlugin implement
|
|
|
String selectFields = "calpersonid,hsas_caltableentry.salaryitem.number,hsas_caltableentry.salaryitem.name,hsas_caltableentry.calamountvalue";
|
|
String selectFields = "calpersonid,hsas_caltableentry.salaryitem.number,hsas_caltableentry.salaryitem.name,hsas_caltableentry.calamountvalue";
|
|
|
DynamicObjectCollection calTableDyns = SwcConstant.CALTABLE_ENTITY.queryOriginalCollection(selectFields, new QFilter[]{filter});
|
|
DynamicObjectCollection calTableDyns = SwcConstant.CALTABLE_ENTITY.queryOriginalCollection(selectFields, new QFilter[]{filter});
|
|
|
|
|
|
|
|
-
|
|
|
|
|
- DynamicObject empDyn= SWCHelper.queryOne("hrpi_employee", 2331344996847852544L);
|
|
|
|
|
|
|
+ DynamicObject empDyn = SWCHelper.queryOne("hsas_calperson", 2334901966875941888L);
|
|
|
|
|
|
|
|
Label label = this.getView().getControl(KEY_LAB_EMP_NAME);
|
|
Label label = this.getView().getControl(KEY_LAB_EMP_NAME);
|
|
|
label.setText(empDyn.getString("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){
|
|
|
|
|
|
|
+ Map<String, BigDecimal> calItemAmtMap = getCalItemAmt(calTableDyns);
|
|
|
|
|
+ Map<String, String> itemNameMap = getItemName(calTableDyns);
|
|
|
|
|
+
|
|
|
|
|
+ if(calItemAmtMap != null && calItemAmtMap.size() > 0 && itemNameMap != null && calItemAmtMap.size() > 0){
|
|
|
Label label1 = this.getView().getControl(KEY_LAB_REALAMT);
|
|
Label label1 = this.getView().getControl(KEY_LAB_REALAMT);
|
|
|
- label1.setText(calItemAmt.get("JT_477").toString()); //实发合计
|
|
|
|
|
|
|
+ if(calItemAmtMap.get("JT_477") == null){
|
|
|
|
|
+ label1.setText("0.00");
|
|
|
|
|
+ }else {
|
|
|
|
|
+ label1.setText(calItemAmtMap.get("JT_477").toString()); //实发合计
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ Label label2 = this.getView().getControl(KEY_LAB_GROSSAMT);
|
|
|
|
|
+ if(calItemAmtMap.get("JT_283") == null){
|
|
|
|
|
+ label2.setText("0.00");
|
|
|
|
|
+ }else {
|
|
|
|
|
+ label2.setText(calItemAmtMap.get("JT_283").toString());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ MobTable mobTable = getControl("nckd_mobtable");
|
|
|
|
|
+ mobTable.setCustomParam("calItemAmt", calItemAmtMap);
|
|
|
|
|
+ mobTable.setCustomParam("itemName", itemNameMap);
|
|
|
|
|
|
|
|
|
|
+ }else{
|
|
|
|
|
+ Label label1 = this.getView().getControl(KEY_LAB_REALAMT);
|
|
|
|
|
+ label1.setText("0.00");
|
|
|
Label label2 = this.getView().getControl(KEY_LAB_GROSSAMT);
|
|
Label label2 = this.getView().getControl(KEY_LAB_GROSSAMT);
|
|
|
- label2.setText(calItemAmt.get("JT_283").toString());
|
|
|
|
|
|
|
+ label2.setText("0.00");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|
|
}
|
|
@@ -168,4 +228,38 @@ public class EmpSalaryQueryMobFormPlugin extends AbstractMobFormPlugin implement
|
|
|
return null;
|
|
return null;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+class EmpSalaryQueryMobDataHandler extends MobTablePackageDataHandler {
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public MobTableHandleResult handleData(MobTablePackageDataHandlerArgs args) {
|
|
|
|
|
+ List<MobTableColumn> mobTableColumns = args.getMobTableColumns();
|
|
|
|
|
+ MobTableHandleResult mobTableHandleResult = new MobTableHandleResult();
|
|
|
|
|
+ List<MobTableRowData> mobTableRowDataList = new ArrayList<>();
|
|
|
|
|
+ Map<String, BigDecimal> calItemAmtMap = args.getCustomParam("calItemAmt");
|
|
|
|
|
+ Map<String, String> itemNameMap = args.getCustomParam("itemName");
|
|
|
|
|
+
|
|
|
|
|
+ if(calItemAmtMap != null && calItemAmtMap.size() > 0 && itemNameMap != null && calItemAmtMap.size() > 0) {
|
|
|
|
|
+ int index = 0;
|
|
|
|
|
+ for (Map.Entry<String, BigDecimal> entry : calItemAmtMap.entrySet()) {
|
|
|
|
|
+ String key = entry.getKey();
|
|
|
|
|
+ BigDecimal value = entry.getValue();
|
|
|
|
|
+
|
|
|
|
|
+ // 处理 key 和 value
|
|
|
|
|
+ MobTableRowData mobTableRowData = MobTableRowBuilder.buildTemplateRowData(index, mobTableColumns);
|
|
|
|
|
+ mobTableRowData.setValue("nckd_item", itemNameMap.get(key));
|
|
|
|
|
+ mobTableRowData.setValue("nckd_amt", calItemAmtMap.get(key));
|
|
|
|
|
+ mobTableRowDataList.add(mobTableRowData);
|
|
|
|
|
+ index++;
|
|
|
|
|
+ System.out.println("Key: " + key + "name:, " + itemNameMap.get(key) + "Value: " + value);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ mobTableHandleResult.setMobTableRowDataList(mobTableRowDataList);
|
|
|
|
|
+ // 额外格式化信息如日期、金额,支持重写
|
|
|
|
|
+ mobTableHandleResult.setFmtInfo(getFmtInfo(args));
|
|
|
|
|
+ }
|
|
|
|
|
+ return mobTableHandleResult;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
}
|
|
}
|