package cn.com.goldenwater.dcproj.utils.export; import cn.com.goldenwater.dcproj.utils.impexcel.format.BaseFieldFormatImp; import org.apache.commons.lang.StringUtils; import java.util.regex.Matcher; import java.util.regex.Pattern; import static cn.com.goldenwater.dcproj.utils.impexcel.ImpUtil.checkIsDate; import static java.util.regex.Pattern.compile; /** *
* 导入时格式化字段值 *
* * @author liyz * @date 2019/4/17 9:03 **/ public class FieldFormatSkImp { /* 福建水库新增字段开始 */ /** * 是否有管护人员 * @param value * @return */ private static String formatIsHasMangPers(String value) { return isShiFou(value); } /** * 是否鉴定为三类坝的水库 * @param value * @return */ private static String formatIfFsltdz(String value) { return isShiFou(value); } /** * 是否采取限制运用措施 * @param value * @return */ private static String formatIfFsltdzRun(String value) { return isShiFou(value); } /** * 限制/超汛运行 * @param value * @return */ private static String formatIfFsltdzNo(String value) { if (StringUtils.isBlank(value)) { return ""; } switch (value) { case "严格执行汛限水位": return "1"; case "超汛限水位运行": return "2"; } return ""; } /** * 未发挥效益原因 * @param value * @return */ private static String formatEffvCas(String value) { if (StringUtils.isBlank(value)) { return ""; } switch (value) { case "水源问题": return "1"; case "工程缺陷": return "2"; case "规划需求变化": return "3"; case "其他原因": return "4"; } return ""; } /** * 除险加固 * @param value * @return */ private static String formatIfReinForce(String value) { if (StringUtils.isBlank(value)) { return ""; } switch (value) { case "进行过除险加固": return "1"; case "正在实施水库情况": return "2"; case "水库建成未实施除险加固": return "3"; case "鉴定为三类坝应实施未实施": return "4"; } return ""; } /** *按规定是否需要开展 * @param value * @return */ private static String formatIfDamSafe(String value) { return isShiFou(value); } /** *是否按要求开展 * @param value * @return */ private static String formatIfDamSafeReq(String value) { return isShiFou(value); } /** * 鉴定报告内容是否合规 * @param value * @return */ private static String formatIfDamSafeRul(String value) { return isShiFou(value); } /** * 鉴定单位资质是否符合规定 * @param value * @return */ private static String formatIfDamSafeDepRul(String value) { return isShiFou(value); } /** * 是否被鉴定为三类坝 * @param value * @return */ private static String formatIfDamSafeThr(String value) { return isShiFou(value); } /** * 按批复内容实施 * @param value * @return */ private static String formatReinForceRun(String value) { return isShiFou(value); } /** * 实施后是否仍有隐患 * @param value * @return */ private static String formatReinForceRun2(String value) { return isShiFou(value); } /** * 是否蓄水验收 * @param value * @return */ private static String formatReinForceRun3(String value) { return isShiFou(value); } /** * 正在实施水库是否按批复内容实施 * @param value * @return */ private static String formatIfReinImpGve(String value) { return isShiFou(value); } /** * 正在实施施工是否按期进行 * @param value * @return */ private static String formatIfReinImpPlan(String value) { return isShiFou(value); } /* 福建水库新增字段结束 */ /** * 1是 0否 */ private static String isShiFou(String value) { return BaseFieldFormatImp.isWhether(value); } /** * 1较强 2一般 3较差 */ private static String isPlanSameSpeed(String value) { if (value == null) { return ""; } switch (value) { case "较强": value = "1"; break; case "一般": value = "2"; break; case "较差": value = "3"; break; case "": value = "0"; break; default: value = value + "$E$"; break; } return value; } /** * 运行情况 1正常运行 2有缺陷能运行 3不能运行 */ private static String isRunInfo(String value) { if (value == null) { return ""; } switch (value) { case "正常运行": value = "1"; break; case "有缺陷能运行": value = "2"; break; case "不能运行": value = "3"; break; case "": value = "0"; break; default: value = value + "$E$"; break; } return value; } /** * 履职情况 */ private static String workSituation(String value) { if (value == null) { return ""; } switch (value) { case "好": value = "1"; break; case "基本到位": value = "2"; break; case "差": value = "3"; break; case "": value = "0"; break; default: value = value + "$E$"; break; } return value; } /** * 电话号码 11位数字 */ private static String isPersTel(String value) { if (value == null) { return ""; } Pattern pattern = compile("[0-9]*"); Matcher isNum = pattern.matcher(value); if (value.length() > 11 || !isNum.matches()) { return value + "$E$"; } return value; } /* "三个责任人"落实情况 */ // 行政责任人信息 /** * 是否有行政责任人 */ public static String formatHasWiunWaoLegPers(String value) { return isShiFou(value); } /** * 行政责任人姓名 <30 */ public static String formatWiunWaoLegPers(String value) { if (value == null) { return ""; } if (value.length() >= 30) { return value + "$E$"; } return value; } /** * 行政责任人电话 数字11位 */ public static String formatWiunWaoLegPersTel(String value) { return isPersTel(value); } /** * 行政责任人职务 <256 */ public static String formatWiunWaoLegPersDuty(String value) { if (value == null) { return ""; } if (value.length() > 256) { return value + "$E$"; } return value; } /** * 是否接受过岗位培训 */ public static String formatWiunWaoLegPersTrain(String value) { return isShiFou(value); } /** * 是否明确规范性履职标准 */ public static String formatWiunWaoLegPersCnps(String value) { return isShiFou(value); } /** * 履职情况 */ public static String formatWiunWaoLegPersResu(String value) { return workSituation(value); } // 技术责任人情况 /** * 是否有技术责任人 */ public static String formatHasTechPers(String value) { return isShiFou(value); } /** * 技术责任人姓名 <30 */ public static String formatTechPers(String value) { if (value == null) { return ""; } if (value.length() >= 30) { return value + "$E$"; } return value; } /** * 技术责任人电话 数字11位 */ public static String formatTechPersTel(String value) { return isPersTel(value); } /** * 技术责任人职务 <256 */ public static String formatTechPersDuty(String value) { if (value == null) { return ""; } if (value.length() > 256) { return value + "$E$"; } return value; } /** * 是否接受过岗位培训 */ public static String formatTechPersTrain(String value) { return isShiFou(value); } /** * 是否明确规范性履职标准 */ public static String formatTechPersCnps(String value) { return isShiFou(value); } /** * 履职情况 */ public static String formatTechPersResu(String value) { return workSituation(value); } // 巡查责任人情况 /** * 是否有巡查责任人 */ public static String formatHasPatrolPers(String value) { return isShiFou(value); } /** * 巡查责任人姓名 <30 */ public static String formatPatrolPers(String value) { if (value == null) { return ""; } if (value.length() >= 30) { return value + "$E$"; } return value; } /** * 巡查责任人电话 数字11位 */ public static String formatPatrolPersTel(String value) { return isPersTel(value); } /** * 是否接受过岗位培训 */ public static String formatPatrolPersTrain(String value) { return isShiFou(value); } /** * 是否明确规范性履职标准 */ public static String formatPatrolPersCnps(String value) { return isShiFou(value); } /** * 履职情况 */ public static String formatPatrolPersResu(String value) { return workSituation(value); } /* "三个重点环节"落实情况 */ // 预测预报能力 /** * 是否能自主预测预报水雨情 */ public static String formatRainForc(String value) { return isShiFou(value); } /** * 有其他方法及时了解水雨情 */ public static String formatRainForcNote(String value) { return isShiFou(value); } // 水库调度运用方案 /** * 是否有水库调度运用方案 */ public static String formatSchPlanSameExta(String value) { return isShiFou(value); } /** * 是否获得批复 */ public static String formatSchPlanSameAppr(String value) { return isShiFou(value); } /** * 是否进行演练 */ public static String formatSchPlanSameEme(String value) { return isShiFou(value); } /** * 可操作性 */ public static String formatSchPlanSameSpeed(String value) { return isPlanSameSpeed(value); } // 安全管理(防汛)应急预案 /** * 是否有安全管理(防汛)应急方案 */ public static String formatEmerPlanSameExta(String value) { return isShiFou(value); } /** * 是否获得批复或备案 */ public static String formatEmerPlanSameAppr(String value) { return isShiFou(value); } /** * 是否进行演练 */ public static String formatEmerPlanSameEme(String value) { return isShiFou(value); } /** * 可操作性 */ public static String formatEmerPlanSameSpeed(String value) { return isPlanSameSpeed(value); } /* 4.水库工程实体 */ /** * 水库所属流域编码 */ public static String formatReverOrg(String value) { if (value == null) { return ""; } switch (value) { case "长江流域": value = "001009"; break; case "黄河流域": value = "001010"; break; case "淮河流域": value = "001011"; break; case "海河流域": value = "001012"; break; case "珠江流域": value = "001013"; break; case "松花江流域": value = "001014"; break; case "太湖流域": value = "001015"; break; case "": break; default: value = value + "$E$"; break; } return value; } /** * 水库所属流域 <100 */ public static String formatReverOrgName(String value) { if (value == null) { return ""; } if (value.length() >= 100) { return value + "$E$"; } return value; } /** * 所在县是否为贫困县 */ public static String formatPoorCountry(String value) { return isShiFou(value); } /** * 蓄水运行情况 */ public static String formatWaterRunInfo(String value) { if (value == null) { return ""; } switch (value) { case "能正常运行": value = "1"; break; case "有缺陷基本能正常蓄水运行": value = "2"; break; case "不具备正常蓄水运行条件但仍高水位运行": value = "3"; break; case "已采取措施限制水位运行": value = "4"; break; case "已空库运行": value = "5"; break; case "": value = "0"; break; default: value = value + "$E$"; break; } return value; } /** * 执行汛限水位情况 */ public static String formatFsltdzInfo(String value) { if (value == null) { return ""; } switch (value) { case "严格按汛限水位要求运行": value = "1"; break; case "超汛限水位运行": value = "2"; break; case "采取限制运用措施": value = "3"; break; case "未采取限制运用措施": value = "4"; break; case "": value = "0"; break; default: value = value + "$E$"; break; } return value; } // 挡水建筑物运行情况 /** * 是否正常运行 */ public static String formatDiskRunInfo(String value) { return isRunInfo(value); } // 泄洪建筑物运行情况 /** * 是否设置泄洪建筑物 */ public static String formatHasSetMainFl(String value) { return isShiFou(value); } /** * 运行情况 */ public static String formatIsMainFlNormal(String value) { return isRunInfo(value); } // 放水建筑物运行情况 /** * 是否设置放水建筑物 */ public static String formatHasSetPourFl(String value) { return isShiFou(value); } /** * 运行情况 */ public static String formatPourFyIsNormal(String value) { return isRunInfo(value); } // 大坝安全鉴定 /** * 按规定是否需要开展 */ public static String formatHasExtDamSafeAppr(String value) { return isShiFou(value); } /** * 开展情况 */ public static String formatExtDamSafeAppr(String value) { if (value == null) { return ""; } switch (value) { case "已按要求开展": value = "1"; break; case "未按要求开展": value = "2"; break; case "安全鉴定被鉴定为三类坝": value = "3"; break; case "": value = "0"; break; default: value = value + "$E$"; break; } return value; } // 水库除险加固 // /** // * 是否实施 // */ // public static String formatIfReinForce(String value) { // return isShiFou(value); // } // // /** // * 实施情况 // */ // public static String formatReinForceRun(String value) { // if (value == null) { // return ""; // } // switch (value) { // case "已按批复内容实施": // value = "1"; // break; // case "未按批复内容实施": // value = "2"; // break; // case "实施后仍有隐患": // value = "3"; // break; // case "已蓄水验收": // value = "4"; // break; // case "": // value = "0"; // break; // default: // value = value + "$E$"; // break; // } // return value; // } /** * 是否应实施却未实施 */ public static String formatNotReinForce(String value) { return isShiFou(value); } /* 运行管理情况 */ // 管理机构及经费情况 /** * 是否有管理机构 */ public static String formatHasSpeManage(String value) { return isShiFou(value); } /** * 是否有稳定经济来源 */ public static String formatHasWdEmnic(String value) { return isShiFou(value); } // 注册登记情况 /** * 是否注册登记 */ public static String formatIfManageReg(String value) { return isShiFou(value); } /** * 注册登记信息准确情况 */ public static String formatIfManageRegRel(String value) { if (value == null) { return ""; } switch (value) { case "信息准确": value = "1"; break; case "存在错误或虚假信息": value = "2"; break; case "": value = "0"; break; default: value = value + "$E$"; break; } return value; } // 公示情况 /** * 是否设置水库公示牌 */ public static String formatIfDamWarnLogo(String value) { if (value == null) { return ""; } switch (value) { case "已设置水库公示牌": value = "1"; break; case "未设置水库公示牌": value = "2"; break; case "": value = "0"; break; default: value = value + "$E$"; break; } return value; } // 安全运行总体评价 /** * 安全评价 */ public static String formatSafeComment(String value) { if (value == null) { return ""; } switch (value) { case "正常安全运行": value = "1"; break; case "存在一定安全隐患但能正常运行": value = "2"; break; case "存在重大安全隐患不能安全运行": value = "3"; break; case "": value = "0"; break; default: value = value + "$E$"; break; } return value; } /* 5.走访情况 */ /** * 走访人员名称 <30 */ public static String formatViewPreName(String value) { if (value == null) { return ""; } if (value.length() >= 30) { return value + "$E$"; } return value; } /** * 是否知晓水库管护人员 */ public static String formatKnowResManager(String value) { return isShiFou(value); } /** * 对管护责任人的评价 */ public static String formatManagerComment(String value) { if (value == null) { return ""; } switch (value) { case "满意": value = "1"; break; case "一般": value = "2"; break; case "不满意": value = "3"; break; case "": value = "0"; break; default: value = value + "$E$"; break; } return value; } /** * 备注 <255 */ public static String formatNote(String value) { if (value == null) { return ""; } if (value.length() >= 255) { return value + "$E$"; } return value; } /* 6 效益发挥情况 */ /** * 是否发挥效益 **/ public static String formatIfEffective(String value) { return isShiFou(value); } /** * 是否为饮用水源 **/ public static String formatIfWaterS(String value) { return isShiFou(value); } /** * 饮用水供水量 12345.123 **/ public static String formatWsfdws(String value) { return checkDecimals(value, 15, 3); } /** * 是否有灌溉任务 **/ public static String formatDiskRunInfo2(String value) { return isShiFou(value); } /** * 灌溉面积 18位字符串 **/ public static String formatHasSetMainFl2(String value) { return checkStrLength(value, 18); } /* 7 基础信息纠错 */ /** * 1)管理机构 105 来自数据库限制大小 */ public static String formatRsAdmName(String value) { return checkStrLength(value, 105); } /** * 2)行政区划 105 来自数据库限制大小 */ public static String formatAdFullName(String value) { return checkStrLength(value, 105); } public static String formatLocation(String value) { return checkStrLength(value, 100); } /** * 3)所在地点 100 来自数据库限制大小 */ public static String formatRsLoc(String value) { return checkStrLength(value, 100); } /** * 4)建成时间 时间格式 */ public static String formatCompDate(String value) { if (value == null || "".equals(value)) { return ""; } if (!checkIsDate(value)) { return value + "$E$"; } return value; } public static String formatCompDateStr(String value) { return checkStrLength(value, 40); } /** * 5)工程规模 */ public static String formatEngScal(String value) { if (value == null) { return ""; } switch (value) { case "小(1)型": value = "4"; break; case "小(2)型": value = "5"; break; default: value = value + "$E$"; break; } return value; } /** * 5)总库容(万m3) */ public static String formatTotCap(String value) { return checkDecimals(value, 17, 2); } /** * 5)最大坝高(万m3) */ public static String formatDamSizeHig(String value) { return checkDecimals(value, 16, 2); } /** * 6) 注册登记号 */ public static String formatRegCode(String value) { return checkStrLength(value, 100); } /** * 7) 经度 */ public static String formatCenterXGd(String value) { return checkDecimals(value, 3, 17); } /** * 7) 纬度 */ public static String formatCenterYGd(String value) { return checkDecimals(value, 3, 17); } /** * 检查小数 * * @param value 原值 * @param arg1 整数位 * @param arg2 小数位 * @return 检查之后的值 */ public static String checkDecimals(String value, int arg1, int arg2) { if (value == null) { return ""; } Pattern pattern = compile("[0-9.]*"); Matcher isNum = pattern.matcher(value); // 如果有小数点 String point = "."; if (value.contains(point)) { // split 分割 . 需要转义 String[] values = value.split("\\" + point); if (values[0].length() > arg1 || values[1].length() > arg2 || !isNum.matches()) { return value + "$E$"; } } else if (value.length() > arg1 || !isNum.matches()) { return value + "$E$"; } return value; } /** * 检查字符串的长度 * * @param value 原字符串 * @param length 限制长度 * @return 检查后的值 */ public static String checkStrLength(String value, int length) { if (value == null) { return ""; } if (value.length() >= length) { return value + "$E$"; } return value; } }