diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/DailInvoiceOverdueRemindersOp.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/DailInvoiceOverdueRemindersOp.java index 944c982..625d197 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/DailInvoiceOverdueRemindersOp.java +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/DailInvoiceOverdueRemindersOp.java @@ -49,9 +49,9 @@ public class DailInvoiceOverdueRemindersOp extends AbstractOperationServicePlugI //当前切换选择的组织 Long currentOrgId = RequestContext.get().getOrgId(); //当前所在的组织是属于矿山下的 - if(OrgCheckUtils.isKS(currentOrgId)){ + // if(OrgCheckUtils.isKS(currentOrgId)){ e.getValidators().add(new DailInvoiceOverdueRemindersOp.ValidatorExt()); - } + // } } class ValidatorExt extends AbstractValidator { diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/DailyreimbursHomeCheckOp.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/DailyreimbursHomeCheckOp.java index f15bb47..e98eaf7 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/DailyreimbursHomeCheckOp.java +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/DailyreimbursHomeCheckOp.java @@ -91,15 +91,16 @@ public class DailyreimbursHomeCheckOp extends AbstractOperationServicePlugIn { String message = String.format("提交人没有往来居家配置。"); this.addFatalErrorMessage(extendedDataEntity, message); } - int monthTime = 0; + Integer monthTime = null; for (Row row : homeDataSet) { monthTime = row.getInteger("monthTime"); } - if(monthTime != 0){ - DynamicObjectCollection tripentry = dataEntity.getDynamicObjectCollection("zcgj_homeentity");// - if(tripentry==null || tripentry.isEmpty()){ - this.addFatalErrorMessage(extendedDataEntity, String.format("请录入往来居家明细!")); - } + DynamicObjectCollection tripentry = dataEntity.getDynamicObjectCollection("zcgj_homeentity");// + if(tripentry==null || tripentry.isEmpty()){ + this.addFatalErrorMessage(extendedDataEntity, String.format("请录入往来居家明细!")); + } + + if(monthTime != null){ Map homeentityCountMap = new HashMap<>(); int i = 1; boolean isOk=true; @@ -167,6 +168,8 @@ public class DailyreimbursHomeCheckOp extends AbstractOperationServicePlugIn { } } } + }else { + this.addFatalErrorMessage(extendedDataEntity, String.format("往来家居配置有误!")); } } } diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/DailyreimbursVisitCheckOp.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/DailyreimbursVisitCheckOp.java index 399e459..6c98ae0 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/DailyreimbursVisitCheckOp.java +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/DailyreimbursVisitCheckOp.java @@ -40,6 +40,7 @@ public class DailyreimbursVisitCheckOp extends AbstractOperationServicePlugIn { e.getFieldKeys().add("zcgj_holiday_days"); e.getFieldKeys().add("bizdate"); e.getFieldKeys().add("billstatus"); + e.getFieldKeys().add("costcompany"); } @Override @@ -51,9 +52,9 @@ public class DailyreimbursVisitCheckOp extends AbstractOperationServicePlugIn { //当前切换选择的组织 Long currentOrgId = RequestContext.get().getOrgId(); //当前所在的组织是属于矿山下的 - if(OrgCheckUtils.isKS(currentOrgId)){ + //if(OrgCheckUtils.isKS(currentOrgId)){ e.getValidators().add(new ValidatorExt()); - } + // } } class ValidatorExt extends AbstractValidator { @@ -69,73 +70,77 @@ public class DailyreimbursVisitCheckOp extends AbstractOperationServicePlugIn { for (ExtendedDataEntity extendedDataEntity : extendedDataEntities) { DynamicObject dataEntity = extendedDataEntity.getDataEntity(); long aLong = dataEntity.getLong("id"); - //获取报销人 - DynamicObject applier = dataEntity.getDynamicObject("applier"); - long applierId = applier.getLong("id"); - //获取申请日期 - //Date bizdate = dataEntity.getDate( "bizdate"); - //获取是否探亲 - //如果是探亲,则进行逻辑判断 - boolean isVisit = dataEntity.getBoolean(prefix + "_is_visit"); - boolean isHome = dataEntity.getBoolean(prefix + "_is_home"); + DynamicObject companyObj = (DynamicObject) dataEntity.get("costcompany");//核算组织(费用承担公司) + if (companyObj != null) { + Long companyId = companyObj.getLong("id"); + if (OrgCheckUtils.isKS(companyId)) { + //获取报销人 + DynamicObject applier = dataEntity.getDynamicObject("applier"); + long applierId = applier.getLong("id"); + //获取申请日期 + //Date bizdate = dataEntity.getDate( "bizdate"); + //获取是否探亲 + //如果是探亲,则进行逻辑判断 + boolean isVisit = dataEntity.getBoolean(prefix + "_is_visit"); + boolean isHome = dataEntity.getBoolean(prefix + "_is_home"); - //判断是否探亲 - if(isVisit){ - //获取休假开始时间 - Date startTime = dataEntity.getDate(prefix + "_holiday_start_time"); - //获取休假结束时间 - Date endTime = dataEntity.getDate(prefix + "_holiday_end_time"); - //获取休假天数 - Integer days = dataEntity.getInt(prefix + "_holiday_days"); - //探亲类型 1:探望父母,2:探望配偶 - String visitType = dataEntity.getString(prefix + "_visit_type"); - //获取当前人的探亲假配置 - 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_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); - if(dynamicObject == null){ - //取消提交操作 - this.addFatalErrorMessage(extendedDataEntity, "请设置人员探亲配置信息!"); - return; - } + //判断是否探亲 + if(isVisit){ + //获取休假开始时间 + Date startTime = dataEntity.getDate(prefix + "_holiday_start_time"); + //获取休假结束时间 + Date endTime = dataEntity.getDate(prefix + "_holiday_end_time"); + //获取休假天数 + Integer days = dataEntity.getInt(prefix + "_holiday_days"); + //探亲类型 1:探望父母,2:探望配偶 + String visitType = dataEntity.getString(prefix + "_visit_type"); + //获取当前人的探亲假配置 + 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_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); + if(dynamicObject == null){ + //取消提交操作 + this.addFatalErrorMessage(extendedDataEntity, "请设置人员探亲配置信息!"); + return; + } - //探亲次数 - int visitTime = 0; - //探亲年限 - int visitYear = 0; + //探亲次数 + int visitTime = 0; + //探亲年限 + int visitYear = 0; - //总年探亲天数 - int visitDays =dynamicObject.getInt("visitDays"); - //婚姻状况,1:已婚,2:未婚 - int marriedStatus =dynamicObject.getInt("marriedStatus"); + //总年探亲天数 + int visitDays =dynamicObject.getInt("visitDays"); + //婚姻状况,1:已婚,2:未婚 + int marriedStatus =dynamicObject.getInt("marriedStatus"); - //探望配偶天数 - int marriedSpouseDays = 0; - if(marriedStatus == 1){ - marriedSpouseDays = dynamicObject.getInt("marriedSpouseDays"); - } - //已婚探望父母年限 - int marriedParentsYear =dynamicObject.getInt("marriedParentsYear"); - //已婚探望父母次数 - int marriedParentsTime =dynamicObject.getInt("marriedParentsTime"); - //已婚探望配偶年限 - int marriedSpouseYear =dynamicObject.getInt("marriedSpouseYear"); - //已婚探望配偶次数 - int marriedSpouseTime =dynamicObject.getInt("marriedSpouseTime"); - //未婚探望父母年限 - int unmarriedParentsYear =dynamicObject.getInt("unmarriedParentsYear"); - //未婚探望父母次数 - int unmarriedParentsTime =dynamicObject.getInt("unmarriedParentsTime"); + //探望配偶天数 + int marriedSpouseDays = 0; + if(marriedStatus == 1){ + marriedSpouseDays = dynamicObject.getInt("marriedSpouseDays"); + } + //已婚探望父母年限 + int marriedParentsYear =dynamicObject.getInt("marriedParentsYear"); + //已婚探望父母次数 + int marriedParentsTime =dynamicObject.getInt("marriedParentsTime"); + //已婚探望配偶年限 + int marriedSpouseYear =dynamicObject.getInt("marriedSpouseYear"); + //已婚探望配偶次数 + int marriedSpouseTime =dynamicObject.getInt("marriedSpouseTime"); + //未婚探望父母年限 + int unmarriedParentsYear =dynamicObject.getInt("unmarriedParentsYear"); + //未婚探望父母次数 + int unmarriedParentsTime =dynamicObject.getInt("unmarriedParentsTime"); /*if(visitDays == 0 ){ this.addFatalErrorMessage(extendedDataEntity, "人员探亲配置探父母天数为空!"); return; }*/ - if(marriedStatus == 1 ){ // 已婚 + if(marriedStatus == 1 ){ // 已婚 /*if(marriedSpouseDays == 0 ){ this.addFatalErrorMessage(extendedDataEntity, "人员探亲配置探配偶天数为空!"); return; @@ -156,21 +161,21 @@ public class DailyreimbursVisitCheckOp extends AbstractOperationServicePlugIn { this.addFatalErrorMessage(extendedDataEntity, "人员探亲配置已婚探望配偶次数为空!"); return; }*/ - //如果是探望父母 - if("1".equals(visitType)){ - visitYear = marriedParentsYear; - visitTime = marriedParentsTime; - }else - //如果是探望配偶 - if("2".equals(visitType)){ - visitTime = marriedSpouseTime; - visitYear = marriedSpouseYear; - } - }else if (marriedStatus == 2) { // 未婚 - if(!"1".equals(visitType)){ - this.addFatalErrorMessage(extendedDataEntity, "未婚状态下探亲类型只能选择探望父母!"); - return; - } + //如果是探望父母 + if("1".equals(visitType)){ + visitYear = marriedParentsYear; + visitTime = marriedParentsTime; + }else + //如果是探望配偶 + if("2".equals(visitType)){ + visitTime = marriedSpouseTime; + visitYear = marriedSpouseYear; + } + }else if (marriedStatus == 2) { // 未婚 + if(!"1".equals(visitType)){ + this.addFatalErrorMessage(extendedDataEntity, "未婚状态下探亲类型只能选择探望父母!"); + return; + } /*if(unmarriedParentsYear == 0 ){ this.addFatalErrorMessage(extendedDataEntity, "人员探亲配置未婚探望父母年限为空!"); return; @@ -180,114 +185,116 @@ public class DailyreimbursVisitCheckOp extends AbstractOperationServicePlugIn { return; }*/ - visitTime = unmarriedParentsTime; - visitYear = unmarriedParentsYear; - } + visitTime = unmarriedParentsTime; + visitYear = unmarriedParentsYear; + } - Date firstDayOfYear = getFirstDayOfYear(startTime); - if(visitYear <= 0){ - this.addFatalErrorMessage(extendedDataEntity, "当前探亲类型无探亲年限!"); - return; - } - //年限开始时间 - LocalDate firstDayYearsAgo = getFirstDayYearsAgo(dateToLocalDate(startTime), visitYear); - Date lastDayOfYear = getLastDayOfYear(startTime); + Date firstDayOfYear = getFirstDayOfYear(startTime); + if(visitYear <= 0){ + this.addFatalErrorMessage(extendedDataEntity, "当前探亲类型无探亲年限!"); + return; + } + //年限开始时间 + LocalDate firstDayYearsAgo = getFirstDayYearsAgo(dateToLocalDate(startTime), visitYear); + Date lastDayOfYear = getLastDayOfYear(startTime); - //查询非暂存、废弃的数据 - List billStatuslist = new ArrayList<>(); - billStatuslist.add("B"); - billStatuslist.add("C"); - billStatuslist.add("D"); - billStatuslist.add("E"); - billStatuslist.add("F"); - billStatuslist.add("G"); - // 查询条件 - QFilter[] filterArray = new QFilter[5]; - //查询申请人下的今年的探亲差旅单据 - filterArray[0] = new QFilter(prefix+"_holiday_start_time", QCP.large_equals, firstDayOfYear); - filterArray[1] = new QFilter(prefix+"_holiday_start_time", QCP.less_equals, lastDayOfYear); - filterArray[2] = new QFilter("applier", QCP.equals, applierId); - filterArray[3] = new QFilter(prefix+"_is_visit", QCP.equals, true); - filterArray[4] = new QFilter("billstatus", QCP.in, billStatuslist); + //查询非暂存、废弃的数据 + List billStatuslist = new ArrayList<>(); + billStatuslist.add("B"); + billStatuslist.add("C"); + billStatuslist.add("D"); + billStatuslist.add("E"); + billStatuslist.add("F"); + billStatuslist.add("G"); + // 查询条件 + QFilter[] filterArray = new QFilter[5]; + //查询申请人下的今年的探亲差旅单据 + filterArray[0] = new QFilter(prefix+"_holiday_start_time", QCP.large_equals, firstDayOfYear); + filterArray[1] = new QFilter(prefix+"_holiday_start_time", QCP.less_equals, lastDayOfYear); + filterArray[2] = new QFilter("applier", QCP.equals, applierId); + filterArray[3] = new QFilter(prefix+"_is_visit", QCP.equals, true); + filterArray[4] = new QFilter("billstatus", QCP.in, billStatuslist); - DataSet dateSet = QueryServiceHelper.queryDataSet( - this.getClass().getName(), - "er_dailyreimbursebill", - "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 - ); + DataSet dateSet = QueryServiceHelper.queryDataSet( + this.getClass().getName(), + "er_dailyreimbursebill", + "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 + ); - if(currentBillIdListMap.containsKey(applierId)){ - List longs = currentBillIdListMap.get(applierId); - longs.add(aLong); - }else{ - List currentBillIdList = new ArrayList<>(); - currentBillIdList.add(aLong); - currentBillIdListMap.put(applierId,currentBillIdList); - } - List longs = currentBillIdListMap.get(applierId); - if(!longs.isEmpty()&&extendedDataEntities.length>1){ - QFilter[] filterArray1 = new QFilter[1]; - filterArray1[0] = new QFilter("id", QCP.in, longs); - 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,zcgj_visit_type as visitType", - filterArray1, null - ); - dateSet = dateSet.union(dateSetSave) ; - } + if(currentBillIdListMap.containsKey(applierId)){ + List longs = currentBillIdListMap.get(applierId); + longs.add(aLong); + }else{ + List currentBillIdList = new ArrayList<>(); + currentBillIdList.add(aLong); + currentBillIdListMap.put(applierId,currentBillIdList); + } + List longs = currentBillIdListMap.get(applierId); + if(!longs.isEmpty()&&extendedDataEntities.length>1){ + QFilter[] filterArray1 = new QFilter[1]; + filterArray1[0] = new QFilter("id", QCP.in, longs); + 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,zcgj_visit_type as visitType", + filterArray1, null + ); + dateSet = dateSet.union(dateSetSave) ; + } - //使用请假总天数 - int allHolidayCount = 0; - int allHolidayCountPO = 0; - //使用请假总次数 - int holidayCount = 0; - for (Row itemRow : dateSet) { - String string = itemRow.getString("billno"); - 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)); - if("1".equals(type)){ - allHolidayCount+=dayCount; - }else if("2".equals(type)){ - allHolidayCountPO+=dayCount; + //使用请假总天数 + int allHolidayCount = 0; + int allHolidayCountPO = 0; + //使用请假总次数 + int holidayCount = 0; + for (Row itemRow : dateSet) { + String string = itemRow.getString("billno"); + 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)); + if("1".equals(type)){ + allHolidayCount+=dayCount; + }else if("2".equals(type)){ + allHolidayCountPO+=dayCount; + } + + holidayCount++; + } + + //剩余次数 + int remainderTimes = visitTime-holidayCount; + //剩余天数 + 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次探"+typeStr+"休假,剩余%d次探"+typeStr+"休假,已用%d天探"+typeStr+"天数,剩余%d天探"+typeStr+"天数。本次休假天数%d天。" + ,firstDayYearsAgo.getYear(),dateFormat.format(startTime),holidayCount,remainderTimes, + dayCount,remainderDays,days); + if((remainderTimes > 0) && (remainderDays >= 0) &&((remainderDays - days) >=0)){ + //this.getView().showTipNotification(message); + //this.addMessage(extendedDataEntity, message); + }else{ + this.addFatalErrorMessage(extendedDataEntity, "探亲次数或探亲天数不足!"+message); + return; + } } - - holidayCount++; - } - - //剩余次数 - int remainderTimes = visitTime-holidayCount; - //剩余天数 - 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次探"+typeStr+"休假,剩余%d次探"+typeStr+"休假,已用%d天探"+typeStr+"天数,剩余%d天探"+typeStr+"天数。本次休假天数%d天。" - ,firstDayYearsAgo.getYear(),dateFormat.format(startTime),holidayCount,remainderTimes, - dayCount,remainderDays,days); - if((remainderTimes > 0) && (remainderDays >= 0) &&((remainderDays - days) >=0)){ - //this.getView().showTipNotification(message); - //this.addMessage(extendedDataEntity, message); - }else{ - this.addFatalErrorMessage(extendedDataEntity, "探亲次数或探亲天数不足!"+message); - return; + i++; } } - i++; } } } diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/TravelInvoiceOverdueRemindersOp.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/TravelInvoiceOverdueRemindersOp.java index 1f7b15f..b9799e9 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/TravelInvoiceOverdueRemindersOp.java +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/TravelInvoiceOverdueRemindersOp.java @@ -44,9 +44,9 @@ public class TravelInvoiceOverdueRemindersOp extends AbstractOperationServicePlu //当前切换选择的组织 Long currentOrgId = RequestContext.get().getOrgId(); //当前所在的组织是属于矿山下的 - if(OrgCheckUtils.isKS(currentOrgId)){ + // if(OrgCheckUtils.isKS(currentOrgId)){ e.getValidators().add(new TravelInvoiceOverdueRemindersOp.ValidatorExt()); - } + // } } class ValidatorExt extends AbstractValidator { diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/TripreimbursebillIsHomeCheckOp.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/TripreimbursebillIsHomeCheckOp.java index c981562..06875e9 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/TripreimbursebillIsHomeCheckOp.java +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/TripreimbursebillIsHomeCheckOp.java @@ -35,6 +35,7 @@ public class TripreimbursebillIsHomeCheckOp extends AbstractOperationServicePlug e.getFieldKeys().add("zcgj_is_include_home"); e.getFieldKeys().add("applier"); e.getFieldKeys().add("zcgj_homeentity"); + e.getFieldKeys().add("costcompany"); } @Override @@ -46,9 +47,9 @@ public class TripreimbursebillIsHomeCheckOp extends AbstractOperationServicePlug //当前切换选择的组织 Long currentOrgId = RequestContext.get().getOrgId(); //当前所在的组织是属于矿山下的 - if(OrgCheckUtils.isKS(currentOrgId)){ + //if(OrgCheckUtils.isKS(currentOrgId)){ e.getValidators().add(new ValidatorExt()); - } + // } } class ValidatorExt extends AbstractValidator { @@ -63,110 +64,117 @@ public class TripreimbursebillIsHomeCheckOp extends AbstractOperationServicePlug for (ExtendedDataEntity extendedDataEntity : extendedDataEntities) { DynamicObject dataEntity = extendedDataEntity.getDataEntity(); long aLong = dataEntity.getLong("id"); - //获取报销人 - DynamicObject applier = dataEntity.getDynamicObject("applier"); - long applierId = applier.getLong("id"); - //获取申请日期 - //Date bizdate = dataEntity.getDate( "bizdate"); - //获取是否探亲 - //如果是探亲,则进行逻辑判断 - boolean isHome = dataEntity.getBoolean(prefix + "_is_include_home"); + DynamicObject companyObj = (DynamicObject) dataEntity.get("costcompany");//核算组织(费用承担公司) + if (companyObj != null) { + Long companyId = companyObj.getLong("id"); + if (OrgCheckUtils.isKS(companyId)) { + //获取报销人 + DynamicObject applier = dataEntity.getDynamicObject("applier"); + long applierId = applier.getLong("id"); + //获取申请日期 + //Date bizdate = dataEntity.getDate( "bizdate"); + //获取是否探亲 + //如果是往来家居,则进行逻辑判断 + boolean isHome = dataEntity.getBoolean(prefix + "_is_include_home"); - //判断是否来往家居地 - if(isHome){ - //获取当前人的往来家居地配置 - QFilter[] visitSetFilterArray = new QFilter[1]; - visitSetFilterArray[0] = new QFilter(prefix+"_user", QCP.equals, applierId); - DataSet homeDataSet = QueryServiceHelper.queryDataSet( - this.getClass().getName(), - prefix+"_user_home_conf", - "id,zcgj_month_times as monthTime", - visitSetFilterArray, null - ); - if(homeDataSet == null || homeDataSet.isEmpty()){ - String message = String.format("提交人没有往来居家配置。"); - this.addFatalErrorMessage(extendedDataEntity, message); - } - - int monthTime = 0; - for (Row row : homeDataSet) { - monthTime = row.getInteger("monthTime"); - } - if(monthTime != 0){ - DynamicObjectCollection tripentry = dataEntity.getDynamicObjectCollection("zcgj_homeentity");//oa流程分录 - boolean isOk=true; - - Map homeentityCountMap = new HashMap<>(); - int i = 1; - if(tripentry==null || tripentry.isEmpty()){ - this.addFatalErrorMessage(extendedDataEntity, String.format("请录入往来居家明细数据")); - } - for (DynamicObject dynamicObject : tripentry) { - Date bxmonth = dynamicObject.getDate("zcgj_bxmonth"); - String yearMonth = dateFormat.format(bxmonth); - - String bxmonthStr = dateFormat.format(bxmonth); - String startdateStr = dateFormat.format(dynamicObject.getDate("zcgj_startdate")); - String enddateStr = dateFormat.format(dynamicObject.getDate("zcgj_enddate")); - isOk = checkBelongMonth(bxmonthStr, startdateStr, enddateStr); - if(!isOk){ - this.addFatalErrorMessage(extendedDataEntity, String.format("当前单据中往来居家明细的第%d行,往返日期不在报销归属月中!",i)); - } - // 更新统计次数 - homeentityCountMap.put(yearMonth, homeentityCountMap.getOrDefault(yearMonth, 0) + 1); - i++; - } - // 输出结果 - for (Map.Entry entry : homeentityCountMap.entrySet()) { - if(entry.getValue() > monthTime){ - String message = String.format("当前单据在%s月中提交了%d次往来居家,往来居家次数超限,限制每月%d次!",entry.getKey(),entry.getValue() ,monthTime); - isOk= false; + //判断是否来往家居地 + if(isHome){ + //获取当前人的往来家居地配置 + QFilter[] visitSetFilterArray = new QFilter[1]; + visitSetFilterArray[0] = new QFilter(prefix+"_user", QCP.equals, applierId); + DataSet homeDataSet = QueryServiceHelper.queryDataSet( + this.getClass().getName(), + prefix+"_user_home_conf", + "id,zcgj_month_times as monthTime", + visitSetFilterArray, null + ); + if(homeDataSet == null || homeDataSet.isEmpty()){ + String message = String.format("提交人没有往来居家配置。"); this.addFatalErrorMessage(extendedDataEntity, message); } - } - if(isOk){ - for (DynamicObject dynamicObject : tripentry) { - Date bxmonth = dynamicObject.getDate("zcgj_bxmonth"); - DataSet tripreimbursebill = getTripreimbursebill(bxmonth, applierId); - //已用次数 - int goHomeCount = 0; - StringBuilder trSb = new StringBuilder(); - for (Row row : tripreimbursebill) { - goHomeCount++; - String billno = row.getString("billno"); + + Integer monthTime = null; + for (Row row : homeDataSet) { + monthTime = row.getInteger("monthTime"); + } + DynamicObjectCollection tripentry = dataEntity.getDynamicObjectCollection("zcgj_homeentity");//oa流程分录 + if(tripentry==null || tripentry.isEmpty()){ + this.addFatalErrorMessage(extendedDataEntity, String.format("请录入往来居家明细数据")); + } + if(monthTime != null){ + boolean isOk=true; + Map homeentityCountMap = new HashMap<>(); + int i = 1; + + for (DynamicObject dynamicObject : tripentry) { + Date bxmonth = dynamicObject.getDate("zcgj_bxmonth"); + String yearMonth = dateFormat.format(bxmonth); + + String bxmonthStr = dateFormat.format(bxmonth); + String startdateStr = dateFormat.format(dynamicObject.getDate("zcgj_startdate")); + String enddateStr = dateFormat.format(dynamicObject.getDate("zcgj_enddate")); + isOk = checkBelongMonth(bxmonthStr, startdateStr, enddateStr); + if(!isOk){ + this.addFatalErrorMessage(extendedDataEntity, String.format("当前单据中往来居家明细的第%d行,往返日期不在报销归属月中!",i)); + } + // 更新统计次数 + homeentityCountMap.put(yearMonth, homeentityCountMap.getOrDefault(yearMonth, 0) + 1); + i++; + } + // 输出结果 + for (Map.Entry entry : homeentityCountMap.entrySet()) { + if(entry.getValue() > monthTime){ + String message = String.format("当前单据在%s月中提交了%d次往来居家,往来居家次数超限,限制每月%d次!",entry.getKey(),entry.getValue() ,monthTime); + isOk= false; + this.addFatalErrorMessage(extendedDataEntity, message); + } + } + if(isOk){ + for (DynamicObject dynamicObject : tripentry) { + Date bxmonth = dynamicObject.getDate("zcgj_bxmonth"); + DataSet tripreimbursebill = getTripreimbursebill(bxmonth, applierId); + //已用次数 + int goHomeCount = 0; + StringBuilder trSb = new StringBuilder(); + for (Row row : tripreimbursebill) { + goHomeCount++; + String billno = row.getString("billno"); /*String bxmonthStr = dateFormat.format(row.getDate("bxmonth")); String startdateStr = dateFormat.format(row.getDate("startdate")); String enddateStr = dateFormat.format(row.getDate("enddate")); boolean b = checkBelongMonth(bxmonthStr, startdateStr, enddateStr);*/ - trSb.append(billno).append(";"); - } - DataSet dailyreimbursebill = getDailyreimbursebill(bxmonth, applierId); - StringBuilder daSb = new StringBuilder(); - for (Row row : dailyreimbursebill) { - goHomeCount++; - String billno = row.getString("billno"); + trSb.append(billno).append(";"); + } + DataSet dailyreimbursebill = getDailyreimbursebill(bxmonth, applierId); + StringBuilder daSb = new StringBuilder(); + for (Row row : dailyreimbursebill) { + goHomeCount++; + String billno = row.getString("billno"); /* String bxmonthStr = dateFormat.format(row.getDate("bxmonth")); String startdateStr = dateFormat.format(row.getDate("startdate")); String enddateStr = dateFormat.format(row.getDate("enddate")); boolean b = checkBelongMonth(bxmonthStr, startdateStr, enddateStr);*/ - daSb.append(billno).append(";"); - } + daSb.append(billno).append(";"); + } - if(goHomeCount >= monthTime){ - int monthVal = getFirstDayOfMonth(bxmonth).getMonth().getValue(); - String message = String.format("请知悉:您每月共有%d次往来家居地报销次数,在%d月中已进行过%d次来往家居地报销。",monthTime,monthVal,goHomeCount); - if(!StringUtils.isBlank(trSb.toString())){ - message+="已提交的差旅报销单:【"+trSb.toString()+"】 "; + if(goHomeCount >= monthTime){ + int monthVal = getFirstDayOfMonth(bxmonth).getMonth().getValue(); + String message = String.format("请知悉:您每月共有%d次往来家居地报销次数,在%d月中已进行过%d次来往家居地报销。",monthTime,monthVal,goHomeCount); + if(!StringUtils.isBlank(trSb.toString())){ + message+="已提交的差旅报销单:【"+trSb.toString()+"】 "; + } + if(!StringUtils.isBlank(daSb.toString())){ + message+="已提交的费用报销单:【"+daSb.toString()+"】 "; + } + this.addFatalErrorMessage(extendedDataEntity, message); + } } - if(!StringUtils.isBlank(daSb.toString())){ - message+="已提交的费用报销单:【"+daSb.toString()+"】 "; - } - this.addFatalErrorMessage(extendedDataEntity, message); } + }else { + this.addFatalErrorMessage(extendedDataEntity, String.format("往来家居配置有误!")); } } } - } } } diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/TripreimbursebillUpOp.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/TripreimbursebillUpOp.java index 7353653..3b48176 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/TripreimbursebillUpOp.java +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/TripreimbursebillUpOp.java @@ -43,9 +43,9 @@ public class TripreimbursebillUpOp extends AbstractOperationServicePlugIn { //当前切换选择的组织 Long currentOrgId = RequestContext.get().getOrgId(); //当前所在的组织是属于矿山下的 - if(OrgCheckUtils.isKS(currentOrgId)){ + //if(OrgCheckUtils.isKS(currentOrgId)){ e.getValidators().add(new ValidatorExt()); - } + //} } class ValidatorExt extends AbstractValidator {