1.财务共享功能开发
This commit is contained in:
		
							parent
							
								
									62a675fe82
								
							
						
					
					
						commit
						a722ae200b
					
				| 
						 | 
				
			
			@ -186,7 +186,7 @@ public class CostcompanyDefaultPlugin  extends AbstractBillPlugIn implements Plu
 | 
			
		|||
                        //bos_costcenter
 | 
			
		||||
                        QFilter numberFilter = new QFilter("number",QCP.equals,costcompanyObj.getString("number"));
 | 
			
		||||
                        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);
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -60,21 +60,22 @@ public class ApprovalCheckFlowOp extends AbstractOperationServicePlugIn {
 | 
			
		|||
                boolean isOk = true;
 | 
			
		||||
                //所有审批记录,从审批记录中获取已经审批过的人
 | 
			
		||||
                List<IApprovalRecordGroup> allApprovalRecords = WorkflowServiceHelper.getApprovalRecords(formid, billId, true);
 | 
			
		||||
                for (IApprovalRecordGroup allApprovalRecord : allApprovalRecords) {
 | 
			
		||||
                    String groupDecisionType = allApprovalRecord.getGroupDecisionType();
 | 
			
		||||
                    //过滤提交的和待分配的任务
 | 
			
		||||
                    if("submit".equals(groupDecisionType)){ //获取每个节点的审批类型 提交:submit
 | 
			
		||||
                        Long userId = allApprovalRecord.getChildren().get(0).getUserId();//获取每个节点的审批人
 | 
			
		||||
                        if(currentUserId.equals(userId) ){//如果审批不是提交人,则可以进行审批操作
 | 
			
		||||
                            isOk = false;
 | 
			
		||||
                if(allApprovalRecords!=null){
 | 
			
		||||
                    for (IApprovalRecordGroup allApprovalRecord : allApprovalRecords) {
 | 
			
		||||
                        String groupDecisionType = allApprovalRecord.getGroupDecisionType();
 | 
			
		||||
                        //过滤提交的和待分配的任务
 | 
			
		||||
                        if("submit".equals(groupDecisionType)){ //获取每个节点的审批类型 提交:submit
 | 
			
		||||
                            Long userId = allApprovalRecord.getChildren().get(0).getUserId();//获取每个节点的审批人
 | 
			
		||||
                            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];
 | 
			
		||||
                    visitSetFilterArray[0] =  new QFilter(prefix+"_user", QCP.equals, applierId);
 | 
			
		||||
                    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_spouse_year as marriedSpouseYear,zcgj_married_spouse_time as marriedSpouseTime," +
 | 
			
		||||
                                    "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 marriedSpouseDays =dynamicObject.getInt("marriedSpouseDays");
 | 
			
		||||
                    //婚姻状况,1:已婚,2:未婚
 | 
			
		||||
                    int marriedStatus =dynamicObject.getInt("marriedStatus");
 | 
			
		||||
                    //已婚探望父母年限
 | 
			
		||||
| 
						 | 
				
			
			@ -125,11 +127,15 @@ public class DailyreimbursVisitCheckOp extends AbstractOperationServicePlugIn {
 | 
			
		|||
                    //未婚探望父母次数
 | 
			
		||||
                    int unmarriedParentsTime =dynamicObject.getInt("unmarriedParentsTime");
 | 
			
		||||
 | 
			
		||||
                    if(visitDays == 0 ){
 | 
			
		||||
                        this.addFatalErrorMessage(extendedDataEntity, "人员探亲配置探亲假天数为空!");
 | 
			
		||||
                    /*if(visitDays == 0 ){
 | 
			
		||||
                        this.addFatalErrorMessage(extendedDataEntity, "人员探亲配置探父母天数为空!");
 | 
			
		||||
                        return;
 | 
			
		||||
                    }
 | 
			
		||||
                    }*/
 | 
			
		||||
                    if(marriedStatus == 1 ){  // 已婚
 | 
			
		||||
                        /*if(marriedSpouseDays == 0 ){
 | 
			
		||||
                            this.addFatalErrorMessage(extendedDataEntity, "人员探亲配置探配偶天数为空!");
 | 
			
		||||
                            return;
 | 
			
		||||
                        }
 | 
			
		||||
                        if(marriedParentsYear == 0 ){
 | 
			
		||||
                            this.addFatalErrorMessage(extendedDataEntity, "人员探亲配置已婚探望父母年限为空!");
 | 
			
		||||
                            return;
 | 
			
		||||
| 
						 | 
				
			
			@ -145,7 +151,7 @@ public class DailyreimbursVisitCheckOp extends AbstractOperationServicePlugIn {
 | 
			
		|||
                        if(marriedSpouseTime == 0 ){
 | 
			
		||||
                            this.addFatalErrorMessage(extendedDataEntity, "人员探亲配置已婚探望配偶次数为空!");
 | 
			
		||||
                            return;
 | 
			
		||||
                        }
 | 
			
		||||
                        }*/
 | 
			
		||||
                        //如果是探望父母
 | 
			
		||||
                        if("1".equals(visitType)){
 | 
			
		||||
                            visitYear = marriedParentsYear;
 | 
			
		||||
| 
						 | 
				
			
			@ -161,14 +167,14 @@ public class DailyreimbursVisitCheckOp extends AbstractOperationServicePlugIn {
 | 
			
		|||
                            this.addFatalErrorMessage(extendedDataEntity, "未婚状态下探亲类型只能选择探望父母!");
 | 
			
		||||
                            return;
 | 
			
		||||
                        }
 | 
			
		||||
                        if(unmarriedParentsYear == 0 ){
 | 
			
		||||
                        /*if(unmarriedParentsYear == 0 ){
 | 
			
		||||
                            this.addFatalErrorMessage(extendedDataEntity, "人员探亲配置未婚探望父母年限为空!");
 | 
			
		||||
                            return;
 | 
			
		||||
                        }
 | 
			
		||||
                        if(unmarriedParentsTime == 0 ){
 | 
			
		||||
                            this.addFatalErrorMessage(extendedDataEntity, "人员探亲配置未婚探望父母次数为空!");
 | 
			
		||||
                            return;
 | 
			
		||||
                        }
 | 
			
		||||
                        }*/
 | 
			
		||||
 | 
			
		||||
                        visitTime = unmarriedParentsTime;
 | 
			
		||||
                        visitYear = unmarriedParentsYear;
 | 
			
		||||
| 
						 | 
				
			
			@ -199,7 +205,7 @@ public class DailyreimbursVisitCheckOp extends AbstractOperationServicePlugIn {
 | 
			
		|||
                    DataSet dateSet = QueryServiceHelper.queryDataSet(
 | 
			
		||||
                            this.getClass().getName(),
 | 
			
		||||
                            "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
 | 
			
		||||
                    );
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -218,7 +224,7 @@ public class DailyreimbursVisitCheckOp extends AbstractOperationServicePlugIn {
 | 
			
		|||
                        DataSet dateSetSave = QueryServiceHelper.queryDataSet(
 | 
			
		||||
                                this.getClass().getName(),
 | 
			
		||||
                                "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
 | 
			
		||||
                        );
 | 
			
		||||
                        dateSet = dateSet.union(dateSetSave) ;
 | 
			
		||||
| 
						 | 
				
			
			@ -226,6 +232,7 @@ public class DailyreimbursVisitCheckOp extends AbstractOperationServicePlugIn {
 | 
			
		|||
 | 
			
		||||
                    //使用请假总天数
 | 
			
		||||
                    int allHolidayCount = 0;
 | 
			
		||||
                    int allHolidayCountPO = 0;
 | 
			
		||||
                    //使用请假总次数
 | 
			
		||||
                    int holidayCount = 0;
 | 
			
		||||
                    for (Row itemRow : dateSet) {
 | 
			
		||||
| 
						 | 
				
			
			@ -233,8 +240,14 @@ public class DailyreimbursVisitCheckOp extends AbstractOperationServicePlugIn {
 | 
			
		|||
                        Date startTimeVal = itemRow.getDate("startTime");
 | 
			
		||||
                        Date endTimeVal = itemRow.getDate("endTime");
 | 
			
		||||
                        Integer dayCount = itemRow.getInteger("days");
 | 
			
		||||
                        String type = itemRow.getString("visitType");//1:探父母。2:探配哦
 | 
			
		||||
                        //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++;
 | 
			
		||||
                        System.out.println(string);
 | 
			
		||||
                    }
 | 
			
		||||
| 
						 | 
				
			
			@ -242,12 +255,23 @@ public class DailyreimbursVisitCheckOp extends AbstractOperationServicePlugIn {
 | 
			
		|||
                    //剩余次数
 | 
			
		||||
                    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;
 | 
			
		||||
                    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,
 | 
			
		||||
                            allHolidayCount,remainderDays,days);
 | 
			
		||||
                            dayCount,remainderDays,days);
 | 
			
		||||
                    if((remainderTimes > 0) && (remainderDays  >= 0) &&((remainderDays - days) >=0)){
 | 
			
		||||
                        //this.getView().showTipNotification(message);
 | 
			
		||||
                        //this.addMessage(extendedDataEntity, message);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,19 +1,42 @@
 | 
			
		|||
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.dataentity.entity.DynamicObject;
 | 
			
		||||
import kd.bos.entity.datamodel.IDataModel;
 | 
			
		||||
import kd.bos.entity.datamodel.events.PackageDataEvent;
 | 
			
		||||
import kd.bos.entity.report.FilterInfo;
 | 
			
		||||
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.TreeReportListEvent;
 | 
			
		||||
import kd.bos.report.plugin.AbstractReportFormPlugin;
 | 
			
		||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
 | 
			
		||||
import kd.bos.servicehelper.QueryServiceHelper;
 | 
			
		||||
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 {
 | 
			
		||||
| 
						 | 
				
			
			@ -29,6 +52,88 @@ public class EmpTravelRptListPlugin extends AbstractReportFormPlugin implements
 | 
			
		|||
            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
 | 
			
		||||
    public void setMergeColums(List<String> columns) {
 | 
			
		||||
        columns.add(MERGECOLUM);
 | 
			
		||||
| 
						 | 
				
			
			@ -94,4 +199,128 @@ public class EmpTravelRptListPlugin extends AbstractReportFormPlugin implements
 | 
			
		|||
            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;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 职员出差天数统计台账
 | 
			
		||||
 * 职员扣除餐补天数统计台账
 | 
			
		||||
 * 报表取数插件
 | 
			
		||||
 */
 | 
			
		||||
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+"_may", DEV_KEY+"_june", DEV_KEY+"_july",DEV_KEY+"_august",
 | 
			
		||||
                DEV_KEY+"_september",DEV_KEY+"_october",DEV_KEY+"_november",DEV_KEY+"_december",
 | 
			
		||||
                DEV_KEY+"_total"
 | 
			
		||||
                DEV_KEY+"_total",DEV_KEY+"_year"
 | 
			
		||||
        };
 | 
			
		||||
        DataType[] DATATYPES = {
 | 
			
		||||
                DataType.LongType,DataType.StringType,
 | 
			
		||||
                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
 | 
			
		||||
        };
 | 
			
		||||
        // 初始化 DataSet
 | 
			
		||||
        RowMeta rowMeta = RowMetaFactory.createRowMeta(FIELDS, DATATYPES);
 | 
			
		||||
| 
						 | 
				
			
			@ -163,6 +163,7 @@ public class EmpTravelRptQueryPlugin extends AbstractReportListDataPlugin {
 | 
			
		|||
                tempData[14] = totalDays;
 | 
			
		||||
                coll.add(tempData);
 | 
			
		||||
            }
 | 
			
		||||
            tempData[15] =String.valueOf(year);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return resultDataSet;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -407,7 +407,7 @@ public class PositionFeesRptQueryPlugin extends AbstractReportListDataPlugin {
 | 
			
		|||
        billStatuslist.add("I"); //关闭
 | 
			
		||||
        List<QFilter> searchFilterList = new ArrayList<>();
 | 
			
		||||
        //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.less_equals, lastDay));
 | 
			
		||||
        searchFilterList.add(new QFilter("billstatus", QCP.in, billStatuslist));//增加过滤
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue