1.财务共享功能开发
This commit is contained in:
parent
62a675fe82
commit
a722ae200b
|
@ -186,7 +186,7 @@ public class CostcompanyDefaultPlugin extends AbstractBillPlugIn implements Plu
|
||||||
//bos_costcenter
|
//bos_costcenter
|
||||||
QFilter numberFilter = new QFilter("number",QCP.equals,costcompanyObj.getString("number"));
|
QFilter numberFilter = new QFilter("number",QCP.equals,costcompanyObj.getString("number"));
|
||||||
DynamicObject[] dynamicObjectAccItem = BusinessDataServiceHelper.load("bos_costcenter", "number,name", new QFilter[]{numberFilter});
|
DynamicObject[] dynamicObjectAccItem = BusinessDataServiceHelper.load("bos_costcenter", "number,name", new QFilter[]{numberFilter});
|
||||||
if(dynamicObjectAccItem!=null ){
|
if(dynamicObjectAccItem!=null && dynamicObjectAccItem.length >0){
|
||||||
this.getModel().setValue("std_entrycostcenter", dynamicObjectAccItem[0], rowIndex);
|
this.getModel().setValue("std_entrycostcenter", dynamicObjectAccItem[0], rowIndex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -60,21 +60,22 @@ public class ApprovalCheckFlowOp extends AbstractOperationServicePlugIn {
|
||||||
boolean isOk = true;
|
boolean isOk = true;
|
||||||
//所有审批记录,从审批记录中获取已经审批过的人
|
//所有审批记录,从审批记录中获取已经审批过的人
|
||||||
List<IApprovalRecordGroup> allApprovalRecords = WorkflowServiceHelper.getApprovalRecords(formid, billId, true);
|
List<IApprovalRecordGroup> allApprovalRecords = WorkflowServiceHelper.getApprovalRecords(formid, billId, true);
|
||||||
for (IApprovalRecordGroup allApprovalRecord : allApprovalRecords) {
|
if(allApprovalRecords!=null){
|
||||||
String groupDecisionType = allApprovalRecord.getGroupDecisionType();
|
for (IApprovalRecordGroup allApprovalRecord : allApprovalRecords) {
|
||||||
//过滤提交的和待分配的任务
|
String groupDecisionType = allApprovalRecord.getGroupDecisionType();
|
||||||
if("submit".equals(groupDecisionType)){ //获取每个节点的审批类型 提交:submit
|
//过滤提交的和待分配的任务
|
||||||
Long userId = allApprovalRecord.getChildren().get(0).getUserId();//获取每个节点的审批人
|
if("submit".equals(groupDecisionType)){ //获取每个节点的审批类型 提交:submit
|
||||||
if(currentUserId.equals(userId) ){//如果审批不是提交人,则可以进行审批操作
|
Long userId = allApprovalRecord.getChildren().get(0).getUserId();//获取每个节点的审批人
|
||||||
isOk = false;
|
if(currentUserId.equals(userId) ){//如果审批不是提交人,则可以进行审批操作
|
||||||
|
isOk = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(!isOk){
|
||||||
|
this.addFatalErrorMessage(extendedDataEntity, "当前操作人为单据提交人,无法进行审批操作,请转给他人进行审批!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if(!isOk){
|
|
||||||
this.addFatalErrorMessage(extendedDataEntity, "当前操作人为单据提交人,无法进行审批操作,请转给他人进行审批!");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -93,7 +93,7 @@ public class DailyreimbursVisitCheckOp extends AbstractOperationServicePlugIn {
|
||||||
QFilter[] visitSetFilterArray = new QFilter[1];
|
QFilter[] visitSetFilterArray = new QFilter[1];
|
||||||
visitSetFilterArray[0] = new QFilter(prefix+"_user", QCP.equals, applierId);
|
visitSetFilterArray[0] = new QFilter(prefix+"_user", QCP.equals, applierId);
|
||||||
DynamicObject dynamicObject = QueryServiceHelper.queryOne( prefix+"_user_visit_set",
|
DynamicObject dynamicObject = QueryServiceHelper.queryOne( prefix+"_user_visit_set",
|
||||||
"id,zcgj_visit_times as visitTime,zcgj_visit_days as visitDays,zcgj_married_status as marriedStatus," +
|
"id,zcgj_visit_times as visitTime,zcgj_visit_days as visitDays,zcgj_married_spouse_days marriedSpouseDays,zcgj_married_status as marriedStatus," +
|
||||||
"zcgj_married_parents_year as marriedParentsYear,zcgj_married_parents_time as marriedParentsTime," +
|
"zcgj_married_parents_year as marriedParentsYear,zcgj_married_parents_time as marriedParentsTime," +
|
||||||
"zcgj_married_spouse_year as marriedSpouseYear,zcgj_married_spouse_time as marriedSpouseTime," +
|
"zcgj_married_spouse_year as marriedSpouseYear,zcgj_married_spouse_time as marriedSpouseTime," +
|
||||||
"zcgj_unmarried_parents_y as unmarriedParentsYear,zcgj_unmarried_parents_t as unmarriedParentsTime",visitSetFilterArray);
|
"zcgj_unmarried_parents_y as unmarriedParentsYear,zcgj_unmarried_parents_t as unmarriedParentsTime",visitSetFilterArray);
|
||||||
|
@ -110,6 +110,8 @@ public class DailyreimbursVisitCheckOp extends AbstractOperationServicePlugIn {
|
||||||
|
|
||||||
//总年探亲天数
|
//总年探亲天数
|
||||||
int visitDays =dynamicObject.getInt("visitDays");
|
int visitDays =dynamicObject.getInt("visitDays");
|
||||||
|
//探望配偶天数
|
||||||
|
int marriedSpouseDays =dynamicObject.getInt("marriedSpouseDays");
|
||||||
//婚姻状况,1:已婚,2:未婚
|
//婚姻状况,1:已婚,2:未婚
|
||||||
int marriedStatus =dynamicObject.getInt("marriedStatus");
|
int marriedStatus =dynamicObject.getInt("marriedStatus");
|
||||||
//已婚探望父母年限
|
//已婚探望父母年限
|
||||||
|
@ -125,11 +127,15 @@ public class DailyreimbursVisitCheckOp extends AbstractOperationServicePlugIn {
|
||||||
//未婚探望父母次数
|
//未婚探望父母次数
|
||||||
int unmarriedParentsTime =dynamicObject.getInt("unmarriedParentsTime");
|
int unmarriedParentsTime =dynamicObject.getInt("unmarriedParentsTime");
|
||||||
|
|
||||||
if(visitDays == 0 ){
|
/*if(visitDays == 0 ){
|
||||||
this.addFatalErrorMessage(extendedDataEntity, "人员探亲配置探亲假天数为空!");
|
this.addFatalErrorMessage(extendedDataEntity, "人员探亲配置探父母天数为空!");
|
||||||
return;
|
return;
|
||||||
}
|
}*/
|
||||||
if(marriedStatus == 1 ){ // 已婚
|
if(marriedStatus == 1 ){ // 已婚
|
||||||
|
/*if(marriedSpouseDays == 0 ){
|
||||||
|
this.addFatalErrorMessage(extendedDataEntity, "人员探亲配置探配偶天数为空!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
if(marriedParentsYear == 0 ){
|
if(marriedParentsYear == 0 ){
|
||||||
this.addFatalErrorMessage(extendedDataEntity, "人员探亲配置已婚探望父母年限为空!");
|
this.addFatalErrorMessage(extendedDataEntity, "人员探亲配置已婚探望父母年限为空!");
|
||||||
return;
|
return;
|
||||||
|
@ -145,7 +151,7 @@ public class DailyreimbursVisitCheckOp extends AbstractOperationServicePlugIn {
|
||||||
if(marriedSpouseTime == 0 ){
|
if(marriedSpouseTime == 0 ){
|
||||||
this.addFatalErrorMessage(extendedDataEntity, "人员探亲配置已婚探望配偶次数为空!");
|
this.addFatalErrorMessage(extendedDataEntity, "人员探亲配置已婚探望配偶次数为空!");
|
||||||
return;
|
return;
|
||||||
}
|
}*/
|
||||||
//如果是探望父母
|
//如果是探望父母
|
||||||
if("1".equals(visitType)){
|
if("1".equals(visitType)){
|
||||||
visitYear = marriedParentsYear;
|
visitYear = marriedParentsYear;
|
||||||
|
@ -161,14 +167,14 @@ public class DailyreimbursVisitCheckOp extends AbstractOperationServicePlugIn {
|
||||||
this.addFatalErrorMessage(extendedDataEntity, "未婚状态下探亲类型只能选择探望父母!");
|
this.addFatalErrorMessage(extendedDataEntity, "未婚状态下探亲类型只能选择探望父母!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(unmarriedParentsYear == 0 ){
|
/*if(unmarriedParentsYear == 0 ){
|
||||||
this.addFatalErrorMessage(extendedDataEntity, "人员探亲配置未婚探望父母年限为空!");
|
this.addFatalErrorMessage(extendedDataEntity, "人员探亲配置未婚探望父母年限为空!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(unmarriedParentsTime == 0 ){
|
if(unmarriedParentsTime == 0 ){
|
||||||
this.addFatalErrorMessage(extendedDataEntity, "人员探亲配置未婚探望父母次数为空!");
|
this.addFatalErrorMessage(extendedDataEntity, "人员探亲配置未婚探望父母次数为空!");
|
||||||
return;
|
return;
|
||||||
}
|
}*/
|
||||||
|
|
||||||
visitTime = unmarriedParentsTime;
|
visitTime = unmarriedParentsTime;
|
||||||
visitYear = unmarriedParentsYear;
|
visitYear = unmarriedParentsYear;
|
||||||
|
@ -199,7 +205,7 @@ public class DailyreimbursVisitCheckOp extends AbstractOperationServicePlugIn {
|
||||||
DataSet dateSet = QueryServiceHelper.queryDataSet(
|
DataSet dateSet = QueryServiceHelper.queryDataSet(
|
||||||
this.getClass().getName(),
|
this.getClass().getName(),
|
||||||
"er_dailyreimbursebill",
|
"er_dailyreimbursebill",
|
||||||
"id,billno,zcgj_holiday_start_time as startTime,zcgj_holiday_end_time as endTime,zcgj_holiday_days as days",
|
"id,billno,zcgj_visit_type as visitType,zcgj_holiday_start_time as startTime,zcgj_holiday_end_time as endTime,zcgj_holiday_days as days",
|
||||||
filterArray, null
|
filterArray, null
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -218,7 +224,7 @@ public class DailyreimbursVisitCheckOp extends AbstractOperationServicePlugIn {
|
||||||
DataSet dateSetSave = QueryServiceHelper.queryDataSet(
|
DataSet dateSetSave = QueryServiceHelper.queryDataSet(
|
||||||
this.getClass().getName(),
|
this.getClass().getName(),
|
||||||
"er_dailyreimbursebill",
|
"er_dailyreimbursebill",
|
||||||
"id,billno,zcgj_holiday_start_time as startTime,zcgj_holiday_end_time as endTime,zcgj_holiday_days as days",
|
"id,billno,zcgj_holiday_start_time as startTime,zcgj_holiday_end_time as endTime,zcgj_holiday_days as days,zcgj_visit_type as visitType",
|
||||||
filterArray1, null
|
filterArray1, null
|
||||||
);
|
);
|
||||||
dateSet = dateSet.union(dateSetSave) ;
|
dateSet = dateSet.union(dateSetSave) ;
|
||||||
|
@ -226,6 +232,7 @@ public class DailyreimbursVisitCheckOp extends AbstractOperationServicePlugIn {
|
||||||
|
|
||||||
//使用请假总天数
|
//使用请假总天数
|
||||||
int allHolidayCount = 0;
|
int allHolidayCount = 0;
|
||||||
|
int allHolidayCountPO = 0;
|
||||||
//使用请假总次数
|
//使用请假总次数
|
||||||
int holidayCount = 0;
|
int holidayCount = 0;
|
||||||
for (Row itemRow : dateSet) {
|
for (Row itemRow : dateSet) {
|
||||||
|
@ -233,8 +240,14 @@ public class DailyreimbursVisitCheckOp extends AbstractOperationServicePlugIn {
|
||||||
Date startTimeVal = itemRow.getDate("startTime");
|
Date startTimeVal = itemRow.getDate("startTime");
|
||||||
Date endTimeVal = itemRow.getDate("endTime");
|
Date endTimeVal = itemRow.getDate("endTime");
|
||||||
Integer dayCount = itemRow.getInteger("days");
|
Integer dayCount = itemRow.getInteger("days");
|
||||||
|
String type = itemRow.getString("visitType");//1:探父母。2:探配哦
|
||||||
//long dayCount = ChronoUnit.DAYS.between(dateToLocalDate(startTimeVal), dateToLocalDate(endTimeVal));
|
//long dayCount = ChronoUnit.DAYS.between(dateToLocalDate(startTimeVal), dateToLocalDate(endTimeVal));
|
||||||
allHolidayCount+=dayCount;
|
if("1".equals(type)){
|
||||||
|
allHolidayCount+=dayCount;
|
||||||
|
}else if("2".equals(type)){
|
||||||
|
allHolidayCountPO+=dayCount;
|
||||||
|
}
|
||||||
|
|
||||||
holidayCount++;
|
holidayCount++;
|
||||||
System.out.println(string);
|
System.out.println(string);
|
||||||
}
|
}
|
||||||
|
@ -242,12 +255,23 @@ public class DailyreimbursVisitCheckOp extends AbstractOperationServicePlugIn {
|
||||||
//剩余次数
|
//剩余次数
|
||||||
int remainderTimes = visitTime-holidayCount;
|
int remainderTimes = visitTime-holidayCount;
|
||||||
//剩余天数
|
//剩余天数
|
||||||
long remainderDays = visitDays-allHolidayCount;
|
long remainderDays = 0;
|
||||||
|
|
||||||
|
String typeStr = "父母";
|
||||||
|
Integer dayCount =0;
|
||||||
|
if("1".equals(visitType)){ // 1:探望父母,2:探望配偶
|
||||||
|
remainderDays = visitDays-allHolidayCount;
|
||||||
|
dayCount =allHolidayCount;
|
||||||
|
}else if("2".equals(visitType)){
|
||||||
|
remainderDays = marriedSpouseDays-allHolidayCountPO;
|
||||||
|
dayCount =allHolidayCountPO;
|
||||||
|
typeStr = "配偶";
|
||||||
|
}
|
||||||
//判断剩余天数和本次请假天数
|
//判断剩余天数和本次请假天数
|
||||||
//long nowDays = ChronoUnit.DAYS.between(dateToLocalDate(startTime),dateToLocalDate(endTime))+1;
|
//long nowDays = ChronoUnit.DAYS.between(dateToLocalDate(startTime),dateToLocalDate(endTime))+1;
|
||||||
String message = String.format("您在%s年到%s年中已用%d次探亲休假,剩余%d次探亲休假,已用%d天探亲天数,剩余%d天探亲天数。本次休假天数%d天。"
|
String message = String.format("您在%s年到%s年中已用%d次探"+typeStr+"休假,剩余%d次探"+typeStr+"休假,已用%d天探"+typeStr+"天数,剩余%d天探"+typeStr+"天数。本次休假天数%d天。"
|
||||||
,firstDayYearsAgo.getYear(),dateFormat.format(startTime),holidayCount,remainderTimes,
|
,firstDayYearsAgo.getYear(),dateFormat.format(startTime),holidayCount,remainderTimes,
|
||||||
allHolidayCount,remainderDays,days);
|
dayCount,remainderDays,days);
|
||||||
if((remainderTimes > 0) && (remainderDays >= 0) &&((remainderDays - days) >=0)){
|
if((remainderTimes > 0) && (remainderDays >= 0) &&((remainderDays - days) >=0)){
|
||||||
//this.getView().showTipNotification(message);
|
//this.getView().showTipNotification(message);
|
||||||
//this.addMessage(extendedDataEntity, message);
|
//this.addMessage(extendedDataEntity, message);
|
||||||
|
|
|
@ -1,19 +1,42 @@
|
||||||
package zcgj.zcdev.zcdev.fs.plugin.report;
|
package zcgj.zcdev.zcdev.fs.plugin.report;
|
||||||
|
|
||||||
|
import kd.bos.algo.DataSet;
|
||||||
|
import kd.bos.algo.Row;
|
||||||
import kd.bos.context.RequestContext;
|
import kd.bos.context.RequestContext;
|
||||||
|
import kd.bos.dataentity.entity.DynamicObject;
|
||||||
import kd.bos.entity.datamodel.IDataModel;
|
import kd.bos.entity.datamodel.IDataModel;
|
||||||
import kd.bos.entity.datamodel.events.PackageDataEvent;
|
import kd.bos.entity.datamodel.events.PackageDataEvent;
|
||||||
import kd.bos.entity.report.FilterInfo;
|
import kd.bos.entity.report.FilterInfo;
|
||||||
import kd.bos.entity.report.ReportQueryParam;
|
import kd.bos.entity.report.ReportQueryParam;
|
||||||
|
import kd.bos.form.FormShowParameter;
|
||||||
|
import kd.bos.form.ShowType;
|
||||||
|
import kd.bos.form.StyleCss;
|
||||||
|
import kd.bos.form.control.Control;
|
||||||
|
import kd.bos.form.events.HyperLinkClickEvent;
|
||||||
|
import kd.bos.form.events.HyperLinkClickListener;
|
||||||
|
import kd.bos.orm.query.QCP;
|
||||||
|
import kd.bos.orm.query.QFilter;
|
||||||
import kd.bos.report.events.CellStyleRule;
|
import kd.bos.report.events.CellStyleRule;
|
||||||
|
import kd.bos.report.events.TreeReportListEvent;
|
||||||
import kd.bos.report.plugin.AbstractReportFormPlugin;
|
import kd.bos.report.plugin.AbstractReportFormPlugin;
|
||||||
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||||
|
import kd.bos.servicehelper.QueryServiceHelper;
|
||||||
import kd.sdk.plugin.Plugin;
|
import kd.sdk.plugin.Plugin;
|
||||||
|
import kd.bos.report.ReportList;
|
||||||
|
import kd.bos.report.events.CreateColumnEvent;
|
||||||
|
import kd.bos.report.events.CreateFilterInfoEvent;
|
||||||
|
import kd.bos.report.plugin.AbstractReportFormPlugin;
|
||||||
|
import kd.bos.entity.report.*;
|
||||||
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
import java.time.LocalDate;
|
||||||
|
import java.time.ZoneId;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
|
import java.time.temporal.TemporalAdjusters;
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 职员出差天数统计台账
|
* 职员扣除餐补天数统计台账
|
||||||
* 报表格式化插件
|
* 报表格式化插件
|
||||||
*/
|
*/
|
||||||
public class EmpTravelRptListPlugin extends AbstractReportFormPlugin implements Plugin {
|
public class EmpTravelRptListPlugin extends AbstractReportFormPlugin implements Plugin {
|
||||||
|
@ -29,6 +52,88 @@ public class EmpTravelRptListPlugin extends AbstractReportFormPlugin implements
|
||||||
DEV_KEY+"_total"
|
DEV_KEY+"_total"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void registerListener(EventObject e) {
|
||||||
|
//监听报表超链接点击事件
|
||||||
|
super.registerListener(e);
|
||||||
|
ReportList reportList = getControl("reportlistap");
|
||||||
|
reportList.addHyperClickListener(new HyperLinkClickListener() {
|
||||||
|
@Override
|
||||||
|
public void hyperLinkClick(HyperLinkClickEvent hyperLinkClickEvent) {
|
||||||
|
String fieldName = hyperLinkClickEvent.getFieldName();
|
||||||
|
int rowIndex = hyperLinkClickEvent.getRowIndex();
|
||||||
|
if(rowIndex > 0){
|
||||||
|
ReportList reportList = getView().getControl("reportlistap");
|
||||||
|
DynamicObject rowData = reportList.getReportModel().getRowData(rowIndex);
|
||||||
|
if(rowData!=null && rowData.get("zcgj_user") != null){
|
||||||
|
DynamicObject user = (DynamicObject)rowData.get(0);
|
||||||
|
Long userId = (Long)user.getPkValue();
|
||||||
|
String zcgjYear = rowData.getString("zcgj_year");
|
||||||
|
DataSet tripreimbursebill = getTripreimbursebill(zcgjYear, "02", userId);
|
||||||
|
for (Row itemRow : tripreimbursebill){
|
||||||
|
String string = itemRow.getString("billno");
|
||||||
|
System.out.println();
|
||||||
|
}
|
||||||
|
|
||||||
|
DataSet dailyreimbursebill = getDailyreimbursebill(zcgjYear, "02", userId);
|
||||||
|
for (Row itemRow : dailyreimbursebill){
|
||||||
|
String string = itemRow.getString("billno");
|
||||||
|
Date startTime = itemRow.getDate("zcgj_holiday_start_time");
|
||||||
|
Date endTime = itemRow.getDate("zcgj_holiday_end_time");
|
||||||
|
Date startTimeEntity = itemRow.getDate("zcgj_startdate");
|
||||||
|
Date endTimeEntity = itemRow.getDate("zcgj_enddate");
|
||||||
|
System.out.println();
|
||||||
|
}
|
||||||
|
System.out.println();
|
||||||
|
|
||||||
|
FormShowParameter formShowParameter;
|
||||||
|
formShowParameter = new FormShowParameter();
|
||||||
|
formShowParameter.getOpenStyle().setShowType(ShowType.Modal);
|
||||||
|
formShowParameter.setFormId("zcgj_kccb_list");
|
||||||
|
// 自定义传参,把当前单据的文本字段传过去
|
||||||
|
//formShowParameter.setCustomParam("list", this.getModel().getValue("kdec_textfield"));
|
||||||
|
StyleCss styleCss = new StyleCss();
|
||||||
|
styleCss.setWidth("800");
|
||||||
|
styleCss.setHeight("600");
|
||||||
|
formShowParameter.getOpenStyle().setInlineStyleCss(styleCss);
|
||||||
|
getView().showForm(formShowParameter);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//跳转到指定借款单
|
||||||
|
/* BillShowParameter showParameter = new BillShowParameter();
|
||||||
|
showParameter.setFormId("er_dailyloanbill");
|
||||||
|
showParameter.setPkId(loadSingle.getPkValue());
|
||||||
|
showParameter.getOpenStyle().setShowType(ShowType.MainNewTabPage);
|
||||||
|
showParameter.setStatus(OperationStatus.VIEW);
|
||||||
|
this.getView().showForm(showParameter);*/
|
||||||
|
|
||||||
|
|
||||||
|
System.out.println();
|
||||||
|
/*DataSet cDataSet = QueryServiceHelper.queryDataSet(this.getClass().getName(), "kdec_fruit_bill",
|
||||||
|
"billno as kdec_billno, kdec_fruit_pro.name as proname, kdec_entryentity.kdec_fruits as kdec_fruits",
|
||||||
|
null, "billno asc");
|
||||||
|
Iterator<Row> iterator = cDataSet.iterator();
|
||||||
|
int index = 0;
|
||||||
|
String billno = "";
|
||||||
|
while (iterator.hasNext()) {
|
||||||
|
index++;
|
||||||
|
Row row = iterator.next();
|
||||||
|
if (index == hyperLinkClickEvent.getRowIndex()) {
|
||||||
|
billno = row.getString(hyperLinkClickEvent.getFieldName());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
|
||||||
|
//System.out.println(billno + "HyperLinkClick");
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setMergeColums(List<String> columns) {
|
public void setMergeColums(List<String> columns) {
|
||||||
columns.add(MERGECOLUM);
|
columns.add(MERGECOLUM);
|
||||||
|
@ -94,4 +199,128 @@ public class EmpTravelRptListPlugin extends AbstractReportFormPlugin implements
|
||||||
ent.setSort(true);
|
ent.setSort(true);
|
||||||
}
|
}
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取差旅费报销单
|
||||||
|
*
|
||||||
|
* @param applierId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public DataSet getTripreimbursebill(String queryYear,String month,Long applierId) {
|
||||||
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||||
|
String queryDate = queryYear+"-"+month+"-01";
|
||||||
|
LocalDate date = LocalDate.parse(queryDate, formatter);
|
||||||
|
// 获取当前日期的月份的第一天
|
||||||
|
LocalDate firstDayOfMonth = date.with(TemporalAdjusters.firstDayOfMonth());
|
||||||
|
// 获取当前日期的月份的最后一天
|
||||||
|
LocalDate lastDayOfMonth = date.with(TemporalAdjusters.lastDayOfMonth());
|
||||||
|
|
||||||
|
//查询非暂存、废弃的数据
|
||||||
|
List<String> billStatuslist = new ArrayList<>();
|
||||||
|
billStatuslist.add("E"); //审核通过
|
||||||
|
billStatuslist.add("F"); //等待付款
|
||||||
|
billStatuslist.add("G"); //已付款
|
||||||
|
billStatuslist.add("I"); //关闭
|
||||||
|
//查询申请人下的今年的探亲差旅单据
|
||||||
|
List<QFilter> searchFilterList = new ArrayList<>();
|
||||||
|
searchFilterList.add(new QFilter("applier", QCP.equals, applierId));
|
||||||
|
searchFilterList.add(new QFilter( "zcgj_is_include_home", QCP.equals, true));
|
||||||
|
searchFilterList.add(new QFilter("billstatus", QCP.in, billStatuslist));
|
||||||
|
searchFilterList.add( new QFilter("bizdate", QCP.large_equals, firstDayOfMonth));
|
||||||
|
searchFilterList.add( new QFilter("bizdate", QCP.less_equals, lastDayOfMonth));
|
||||||
|
DataSet dateSet = QueryServiceHelper.queryDataSet(
|
||||||
|
this.getClass().getName(),
|
||||||
|
"er_tripreimbursebill",
|
||||||
|
"id,billno,zcgj_kccbdays as kccbdays,bizdate",
|
||||||
|
searchFilterList.toArray(new QFilter [] {}), null
|
||||||
|
);
|
||||||
|
return dateSet;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取费用报销单
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public DataSet getDailyreimbursebill(String queryYear,String month,Long applierId) {
|
||||||
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||||
|
String queryDate = queryYear+"-"+month+"-01";
|
||||||
|
LocalDate date = LocalDate.parse(queryDate, formatter);
|
||||||
|
// 获取当前日期的月份的第一天
|
||||||
|
LocalDate firstDayOfMonth = date.with(TemporalAdjusters.firstDayOfMonth());
|
||||||
|
// 获取当前日期的月份的最后一天
|
||||||
|
LocalDate lastDayOfMonth = date.with(TemporalAdjusters.lastDayOfMonth());
|
||||||
|
//查询非暂存、废弃的数据
|
||||||
|
List<String> billStatuslist = new ArrayList<>();
|
||||||
|
billStatuslist.add("E"); //审核通过
|
||||||
|
billStatuslist.add("F"); //等待付款
|
||||||
|
billStatuslist.add("G"); //已付款
|
||||||
|
//billStatuslist.add("H"); //废弃
|
||||||
|
billStatuslist.add("I"); //关闭
|
||||||
|
|
||||||
|
List<QFilter> searchFilterList = new ArrayList<>();
|
||||||
|
//查询申请人下的今年的探亲差旅单据
|
||||||
|
searchFilterList.add(new QFilter("applier", QCP.equals, applierId));
|
||||||
|
searchFilterList.add(new QFilter( "zcgj_is_visit", QCP.equals, true));
|
||||||
|
searchFilterList.add(new QFilter("billstatus", QCP.in, billStatuslist));
|
||||||
|
searchFilterList.add( new QFilter("bizdate", QCP.large_equals, firstDayOfMonth));
|
||||||
|
searchFilterList.add(new QFilter("bizdate", QCP.less_equals, lastDayOfMonth));
|
||||||
|
//DynamicObject[] load = BusinessDataServiceHelper.load("er_dailyreimbursebill", "id,billno,zcgj_kccbdays as kccbdays,bizdate," +
|
||||||
|
// "zcgj_holiday_start_time,zcgj_holiday_end_time," +
|
||||||
|
// "zcgj_homemx.zcgj_startdate,zcgj_homemx.zcgj_enddate", searchFilterList.toArray(new QFilter[]{}));
|
||||||
|
|
||||||
|
DataSet dateSet = QueryServiceHelper.queryDataSet(
|
||||||
|
this.getClass().getName(),
|
||||||
|
"er_dailyreimbursebill",
|
||||||
|
"id,billno,zcgj_kccbdays as kccbdays,bizdate," +
|
||||||
|
"zcgj_holiday_start_time,zcgj_holiday_end_time," +
|
||||||
|
"zcgj_homemx",
|
||||||
|
searchFilterList.toArray(new QFilter [] {}), null
|
||||||
|
);
|
||||||
|
|
||||||
|
List<QFilter> searchFilterList1 = new ArrayList<>();
|
||||||
|
//查询申请人下的今年的探亲差旅单据
|
||||||
|
searchFilterList1.add(new QFilter("applier", QCP.equals, applierId));
|
||||||
|
searchFilterList1.add(new QFilter( "zcgj_is_home", QCP.equals, true));
|
||||||
|
searchFilterList1.add(new QFilter("billstatus", QCP.in, billStatuslist));
|
||||||
|
searchFilterList1.add( new QFilter("bizdate", QCP.large_equals, firstDayOfMonth));
|
||||||
|
searchFilterList1.add(new QFilter("bizdate", QCP.less_equals, lastDayOfMonth));
|
||||||
|
//DynamicObject[] load = BusinessDataServiceHelper.load("er_dailyreimbursebill", "id,billno,zcgj_kccbdays as kccbdays,bizdate," +
|
||||||
|
// "zcgj_holiday_start_time,zcgj_holiday_end_time," +
|
||||||
|
// "zcgj_homemx.zcgj_startdate,zcgj_homemx.zcgj_enddate", searchFilterList.toArray(new QFilter[]{}));
|
||||||
|
|
||||||
|
DataSet dateSet1 = QueryServiceHelper.queryDataSet(
|
||||||
|
this.getClass().getName(),
|
||||||
|
"er_dailyreimbursebill",
|
||||||
|
"id,billno,zcgj_kccbdays as kccbdays,bizdate," +
|
||||||
|
"zcgj_homemx.zcgj_startdate,zcgj_homemx.zcgj_enddate",
|
||||||
|
searchFilterList1.toArray(new QFilter [] {}), null
|
||||||
|
);
|
||||||
|
return dateSet;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 将 java.util.Date 转换为 java.time.LocalDate
|
||||||
|
* @param date java.util.Date
|
||||||
|
* @return java.time.LocalDate
|
||||||
|
*/
|
||||||
|
public static LocalDate dateToLocalDate(Date date) {
|
||||||
|
if (date == null) {
|
||||||
|
throw new IllegalArgumentException("日期不能为 null");
|
||||||
|
}
|
||||||
|
return date.toInstant()
|
||||||
|
.atZone(ZoneId.systemDefault())
|
||||||
|
.toLocalDate();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取某年份的最后一天
|
||||||
|
public static LocalDate getLastDayOfYear(int year) {
|
||||||
|
return LocalDate.of(year, 12, 31);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取某年份的第一天
|
||||||
|
public static LocalDate getFirstDayOfYear(int year) {
|
||||||
|
return LocalDate.of(year, 1, 1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,7 +23,7 @@ import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 职员出差天数统计台账
|
* 职员扣除餐补天数统计台账
|
||||||
* 报表取数插件
|
* 报表取数插件
|
||||||
*/
|
*/
|
||||||
public class EmpTravelRptQueryPlugin extends AbstractReportListDataPlugin {
|
public class EmpTravelRptQueryPlugin extends AbstractReportListDataPlugin {
|
||||||
|
@ -67,14 +67,14 @@ public class EmpTravelRptQueryPlugin extends AbstractReportListDataPlugin {
|
||||||
DEV_KEY+"_january",DEV_KEY+"_february",DEV_KEY+"_march",DEV_KEY+"_april",
|
DEV_KEY+"_january",DEV_KEY+"_february",DEV_KEY+"_march",DEV_KEY+"_april",
|
||||||
DEV_KEY+"_may", DEV_KEY+"_june", DEV_KEY+"_july",DEV_KEY+"_august",
|
DEV_KEY+"_may", DEV_KEY+"_june", DEV_KEY+"_july",DEV_KEY+"_august",
|
||||||
DEV_KEY+"_september",DEV_KEY+"_october",DEV_KEY+"_november",DEV_KEY+"_december",
|
DEV_KEY+"_september",DEV_KEY+"_october",DEV_KEY+"_november",DEV_KEY+"_december",
|
||||||
DEV_KEY+"_total"
|
DEV_KEY+"_total",DEV_KEY+"_year"
|
||||||
};
|
};
|
||||||
DataType[] DATATYPES = {
|
DataType[] DATATYPES = {
|
||||||
DataType.LongType,DataType.StringType,
|
DataType.LongType,DataType.StringType,
|
||||||
DataType.StringType, DataType.StringType,DataType.StringType,DataType.IntegerType,
|
DataType.StringType, DataType.StringType,DataType.StringType,DataType.IntegerType,
|
||||||
DataType.StringType, DataType.StringType, DataType.StringType,DataType.StringType,
|
DataType.StringType, DataType.StringType, DataType.StringType,DataType.StringType,
|
||||||
DataType.StringType, DataType.StringType, DataType.StringType,DataType.StringType,
|
DataType.StringType, DataType.StringType, DataType.StringType,DataType.StringType,
|
||||||
DataType.StringType
|
DataType.StringType,DataType.StringType
|
||||||
};
|
};
|
||||||
// 初始化 DataSet
|
// 初始化 DataSet
|
||||||
RowMeta rowMeta = RowMetaFactory.createRowMeta(FIELDS, DATATYPES);
|
RowMeta rowMeta = RowMetaFactory.createRowMeta(FIELDS, DATATYPES);
|
||||||
|
@ -163,6 +163,7 @@ public class EmpTravelRptQueryPlugin extends AbstractReportListDataPlugin {
|
||||||
tempData[14] = totalDays;
|
tempData[14] = totalDays;
|
||||||
coll.add(tempData);
|
coll.add(tempData);
|
||||||
}
|
}
|
||||||
|
tempData[15] =String.valueOf(year);
|
||||||
}
|
}
|
||||||
|
|
||||||
return resultDataSet;
|
return resultDataSet;
|
||||||
|
|
|
@ -407,7 +407,7 @@ public class PositionFeesRptQueryPlugin extends AbstractReportListDataPlugin {
|
||||||
billStatuslist.add("I"); //关闭
|
billStatuslist.add("I"); //关闭
|
||||||
List<QFilter> searchFilterList = new ArrayList<>();
|
List<QFilter> searchFilterList = new ArrayList<>();
|
||||||
//searchFilterList.add(new QFilter("applier", QCP.equals, userId));
|
//searchFilterList.add(new QFilter("applier", QCP.equals, userId));
|
||||||
searchFilterList.add(new QFilter("zcgj_costmanger", QCP.equals, userId));//根据费用归属领导查询
|
searchFilterList.add(new QFilter("expenseentryentity.zcgj_costmanger_entity", QCP.equals, userId));//根据费用归属领导查询
|
||||||
searchFilterList.add(new QFilter("expenseentryentity.happendate", QCP.large_equals, firstDay));
|
searchFilterList.add(new QFilter("expenseentryentity.happendate", QCP.large_equals, firstDay));
|
||||||
searchFilterList.add(new QFilter("expenseentryentity.happendate", QCP.less_equals, lastDay));
|
searchFilterList.add(new QFilter("expenseentryentity.happendate", QCP.less_equals, lastDay));
|
||||||
searchFilterList.add(new QFilter("billstatus", QCP.in, billStatuslist));//增加过滤
|
searchFilterList.add(new QFilter("billstatus", QCP.in, billStatuslist));//增加过滤
|
||||||
|
|
Loading…
Reference in New Issue