diff --git a/order-check/ReadMe.md b/order-check/ReadMe.md deleted file mode 100644 index 89857238..00000000 --- a/order-check/ReadMe.md +++ /dev/null @@ -1,5 +0,0 @@ -# 验证开票数据 - -> 1.调用OrderCheckUtil.checkInterfaceParam(),入参为开票请求数据.返回一个map -> 2.如果map中的errorCode为0000,说明校验通过, -> 3.如果map中errorCode非0000,说明验证失败,获取errorMsg展示错误信息. diff --git a/order-check/pom.xml b/order-check/pom.xml deleted file mode 100644 index b8266bfd..00000000 --- a/order-check/pom.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - - order-management - com.dxhy.order - 6.1.2-STD - - 4.0.0 - order-check - order-check - - - UTF-8 - - - - - - - com.dxhy.order - order-management-common - ${modules.version} - compile - - - cn.hutool - hutool-all - ${hutool.version} - compile - - - junit - junit - test - - - org.projectlombok - lombok - ${lombok.version} - provided - - - - - diff --git a/order-check/src/main/java/com/dxhy/order/constant/DdkzxxBO.java b/order-check/src/main/java/com/dxhy/order/constant/DdkzxxBO.java deleted file mode 100644 index 9cfcbbf1..00000000 --- a/order-check/src/main/java/com/dxhy/order/constant/DdkzxxBO.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.dxhy.order.constant; - - -import lombok.Getter; -import lombok.Setter; -import lombok.ToString; - -import java.io.Serializable; - -/** - * 订单拆分合并关系协议beanV3 - * - * @author ZSC-DXHY - */ -@SuppressWarnings("AlibabaLowerCamelCaseVariableNaming") -@Setter -@Getter -@ToString -public class DdkzxxBO implements Serializable { - - /** - * 订单请求流水号 - */ - private String DDQQLSH; - - /** - * 订单号 - */ - private String DDH; - - /** - * 订单类型(0:原始订单,1:拆分后订单,2:合并后订单,3:系统冲红订单,4:自动开票订单,5:作废重开订单) - */ - private String DDLX; - - /** - * 备用字段 - */ - private String BYZD1; - private String BYZD2; - private String BYZD3; - -} diff --git a/order-check/src/main/java/com/dxhy/order/constant/DdmxxxBO.java b/order-check/src/main/java/com/dxhy/order/constant/DdmxxxBO.java deleted file mode 100644 index 46c50461..00000000 --- a/order-check/src/main/java/com/dxhy/order/constant/DdmxxxBO.java +++ /dev/null @@ -1,114 +0,0 @@ -package com.dxhy.order.constant; - -import lombok.Getter; -import lombok.Setter; -import lombok.ToString; - -import java.io.Serializable; - -/** - * 订单发票全数据明细协议bean - * - * @author ZSC-DXHY - */ -@SuppressWarnings("AlibabaLowerCamelCaseVariableNaming") -@Setter -@Getter -@ToString -public class DdmxxxBO implements Serializable { - - /** - * 项目序号 - */ - private String XH; - - /** - * 发票行性质 - */ - private String FPHXZ; - - /** - * 商品编码 - */ - private String SPBM; - - /** - * 自行编码 - */ - private String ZXBM; - - /** - * 优惠政策标识 - */ - private String YHZCBS; - - /** - * 零税率标识 - * 空:非零税率,0:出口零税,1:免税,2:不征税 3:普通零税率 - * 若填写了3(普通零税率), 则:YHZCBS填0,ZZSTSGL填空 - */ - private String LSLBS; - - /** - * 增值税特殊管理 - */ - private String ZZSTSGL; - - /** - * 项目名称 - */ - private String XMMC; - - /** - * 规格型号 - */ - private String GGXH; - - /** - * 单位 - */ - private String DW; - - /** - * 项目数量 - */ - private String SPSL; - - /** - * 项目单价 - */ - private String DJ; - - /** - * 项目金额 - */ - private String JE; - - /** - * 含税标志 - */ - private String HSBZ; - - /** - * 税率 - */ - private String SL; - - /** - * 税额 - */ - private String SE; - - /** - * 扣除额 - */ - private String KCE; - - /** - * 备用字段 - */ - private String BYZD1; - private String BYZD2; - private String BYZD3; - -} diff --git a/order-check/src/main/java/com/dxhy/order/constant/DdpcxxBO.java b/order-check/src/main/java/com/dxhy/order/constant/DdpcxxBO.java deleted file mode 100644 index 7fa835ed..00000000 --- a/order-check/src/main/java/com/dxhy/order/constant/DdpcxxBO.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.dxhy.order.constant; - -import lombok.Getter; -import lombok.Setter; -import lombok.ToString; - -import java.io.Serializable; - -/** - * 订单开票请求 批次 协议bean, - * V4版本,统一对外输出 - * - * @author ZSC-DXHY-PC - * @date 创建时间: 2018/12/18 16:43 - */ -@SuppressWarnings("AlibabaLowerCamelCaseVariableNaming") -@Setter -@Getter -@ToString -public class DdpcxxBO implements Serializable { - - /** - * 订单请求批次号 - */ - private String DDQQPCH; - - /** - * 纳税人识别号 - */ - private String NSRSBH; - - /** - * 开票终端 - */ - private String KPZD; - - /** - * 统一发票类型代码 - * 增值税专用发票: 004 - * 机动车销售统一发票:005 - * 二手车销售统一发票:006 - * 增值税普通发票: 007 - * 增值税普通发票(电子): 026 - * 增值税专用发票(电子):028 - */ - private String FPLXDM; - - - /** - * 企业开票方式(0:自动开票;1:手动开票;2:静态码开票;3:动态码开票),默认为0 - */ - private String KPFS; - - /** - * 是否是成品油(0:非成品油;1:成品油),默认为0 - */ - private String CPYBS; - - /** - * 扩展字段 - */ - private String KZZD; - -} diff --git a/order-check/src/main/java/com/dxhy/order/constant/DdpcxxReqBO.java b/order-check/src/main/java/com/dxhy/order/constant/DdpcxxReqBO.java deleted file mode 100644 index d3887667..00000000 --- a/order-check/src/main/java/com/dxhy/order/constant/DdpcxxReqBO.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.dxhy.order.constant; - -import lombok.Getter; -import lombok.Setter; -import lombok.ToString; - -import java.io.Serializable; -import java.util.List; - - -/** - * 发票对外请求协议beanV4版本,统一对外输出 - * - * @author ZSC-DXHY - */ -@SuppressWarnings("AlibabaLowerCamelCaseVariableNaming") -@Setter -@Getter -@ToString -public class DdpcxxReqBO implements Serializable { - - /** - * 订单批次信息 - */ - private DdpcxxBO DDPCXX; - - /** - * 多订单信息 - */ - private List DDZXX; - -} diff --git a/order-check/src/main/java/com/dxhy/order/constant/DdtxxBO.java b/order-check/src/main/java/com/dxhy/order/constant/DdtxxBO.java deleted file mode 100644 index cf36dca8..00000000 --- a/order-check/src/main/java/com/dxhy/order/constant/DdtxxBO.java +++ /dev/null @@ -1,288 +0,0 @@ -package com.dxhy.order.constant; - - -import lombok.Getter; -import lombok.Setter; -import lombok.ToString; - -import java.io.Serializable; - -/** - * 订单全数据协议bean - * - * @author ZSC-DXHY - */ -@SuppressWarnings("AlibabaLowerCamelCaseVariableNaming") -@Setter -@Getter -@ToString -public class DdtxxBO implements Serializable { - /** - * 订单请求唯一流水号 - */ - private String DDQQLSH; - - /** - * 纳税人识别号 销货方纳税人识别号 - */ - private String NSRSBH; - - /** - * 纳税人名称 销货方纳税人名称 - */ - private String NSRMC; - - /** - * 开票类型 - */ - private String KPLX; - - /** - * 编码表版本号 - */ - private String BMBBBH; - - /** - * 销售方纳税人识别号 - */ - private String XHFSBH; - - /** - * 销售方名称 - */ - private String XHFMC; - - /** - * 销售方地址 - */ - private String XHFDZ; - - /** - * 销售方电话 - */ - private String XHFDH; - - /** - * 销售方银行账号名称 - */ - private String XHFYH; - - /** - * 销售方银行账号 - */ - private String XHFZH; - - /** - * 购买方编码 - */ - private String GMFBM; - - /** - * 购买方纳税人识别号 - */ - private String GMFSBH; - - /** - * 购买方名称 - */ - private String GMFMC; - - /** - * 购买方地址 - */ - private String GMFDZ; - - /** - * 购买方固定电话 - */ - private String GMFDH; - - /** - * 购买方银行账号名称 - */ - private String GMFYH; - - /** - * 购买方银行账号 - */ - private String GMFZH; - - /** - * 购买方企业类型 - */ - private String GMFLX; - - /** - * 购买方省份 - */ - private String GMFSF; - - /** - * 购买方手机 - */ - private String GMFSJH; - - /*** - * 购买方邮箱 - */ - private String GMFDZYX; - - /** - * 开票人 - */ - private String KPR; - - /** - * 收款人 - */ - private String SKR; - - /** - * 复核人 - */ - private String FHR; - - /** - * 原发票代码 - */ - private String YFPDM; - - /** - * 原发票号码红字发票必填 - */ - private String YFPHM; - - /** - * 清单标志 - */ - private String QDBZ; - - /** - * 清单发票项目名称 - */ - private String QDXMMC; - - /** - * 价税合计 - */ - private String JSHJ; - - /** - * 合计金额(不含税) - */ - private String HJJE; - - /** - * 合计税额 - */ - private String HJSE; - - /** - * 备注 冲红时必填 - * 增值税发票红字发票(非专票)开具时,备注要求: - * 开具负数发票,必须在备注中注明“对应正数发票代码:XXXXXXXXX号码:YYYYYYYY”字样,其中“X”为发票代码,“Y”为发票号码。如未注明,系统自动追加。 - * 增值税发票红字发票(专票)开具时,备注要求: - * 开具负数发票,必须在备注中注明“开具红字增值税专用发票信息表编号ZZZZZZZZZZZZZZZZ”字样,其中“Z”为开具红字增值税专用发票所需要的长度为16位信息表编号。如未注明,系统报错。 - */ - private String BZ; - - /** - * 冲红原因 - */ - private String CHYY; - - /** - * 特殊冲红标志 - * 冲红时必填:0正常冲红(电子发票)1特殊冲红(冲红纸质等) - */ - private String TSCHBZ; - - /** - * 红字信息表编号 - */ - private String HZXXBBH; - - /** - * 订单号 - */ - private String DDH; - - /** - * 退货单号 - */ - private String THDH; - - /** - * 订单时间 - */ - private String DDSJ; - - /** - * 门店号 - */ - private String MDH; - - /** - * 业务类型区分企业业务线),可以企业自定义 - */ - private String YWLX; - - /** - * 企业开票方式(0:自动开票;1:手动开票;2:静态码开票;3:动态码开票),默认为0 - */ - private String KPFS; - - /** - * 提取码 - */ - private String TQM; - - /** - * 动态码URL - */ - private String DTM; - - /** - * 订单状态 - */ - private String DDZT; - - /** - * 订单状态对应的信息 - */ - private String DDZTXX; - - /** - * 订单状态对应的信息 - */ - private String FPLXDM; - - /** - * 订单类型(目前只有数据导入时使用,8为历史数据导入,9为发票修复数据) - */ - private String DDLY; - - /** - * 冲红标志(0:未冲红;1:全部冲红),针对历史数据导入使用 - */ - private String CHBZ; - - /** - * 作废标志 (0:正常;1:已作废),针对历史数据导入使用 - */ - private String ZFBZ; - - /** - * 是否拆分订单(0:不拆分;1:拆分) - */ - private String SFCF; - /** - * 备用字段 - */ - private String BYZD1; - private String BYZD2; - private String BYZD3; - private String BYZD4; - private String BYZD5; - -} diff --git a/order-check/src/main/java/com/dxhy/order/constant/DdzxxBO.java b/order-check/src/main/java/com/dxhy/order/constant/DdzxxBO.java deleted file mode 100644 index 8b35ec9d..00000000 --- a/order-check/src/main/java/com/dxhy/order/constant/DdzxxBO.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.dxhy.order.constant; - -import lombok.Getter; -import lombok.Setter; -import lombok.ToString; - -import java.io.Serializable; -import java.util.List; - -/** - * 订单全数据 协议bean - * 机动车和二手车后来新增数据,校验根据种类代码分开校验 - * - * @author zsc - * @date 2018年9月19日 15:14:50 - */ -@SuppressWarnings("AlibabaLowerCamelCaseVariableNaming") -@Setter -@Getter -@ToString -public class DdzxxBO implements Serializable { - - /** - * 订单主体信息 - */ - private DdtxxBO DDTXX; - - /** - * 二手车信息 - */ - private EsctxxBO ESCTXX; - - /** - * 机动车信息 - */ - private JdctxxBO JDCTXX; - - /** - * 订单明细信息 - */ - private List DDMXXX; - -} diff --git a/order-check/src/main/java/com/dxhy/order/constant/EsctxxBO.java b/order-check/src/main/java/com/dxhy/order/constant/EsctxxBO.java deleted file mode 100644 index 45fa5b69..00000000 --- a/order-check/src/main/java/com/dxhy/order/constant/EsctxxBO.java +++ /dev/null @@ -1,132 +0,0 @@ -package com.dxhy.order.constant; - - -import lombok.Getter; -import lombok.Setter; -import lombok.ToString; - -import java.io.Serializable; - -/** - * 二手车信息 - * - * @author ZSC-DXHY - * @date 创建时间: 2020-12-07 17:01 - */ -@SuppressWarnings("AlibabaLowerCamelCaseVariableNaming") -@Setter -@Getter -@ToString -public class EsctxxBO implements Serializable { - - /** - * 开票方类型 - */ - private String KPFLX; - - /** - * 车牌照号 - */ - private String CPZH; - - /** - * 登记证号 - */ - private String DJZH; - - /** - * 车辆类型 - */ - private String CLLX; - - /** - * 车架号/车辆识别代码 - */ - private String CLSBDM; - - /** - * 厂牌型号 - */ - private String CPXH; - - /** - * 转入地车辆管理所名称 - */ - private String ZRDCLGLSMC; - - /** - * 经营、拍卖单位名称 - */ - private String JYPMDW_MC; - - /** - * 经营、拍卖单位地址 - */ - private String JYPMDW_DZ; - - /** - * 经营、拍卖单位税号 - */ - private String JYPMDW_SH; - - /** - * 经营、拍卖单位银行账号 - */ - private String JYPMDW_YHZH; - - /** - * 经营、拍卖单位电话 - */ - private String JYPMDW_DH; - - /** - * 二手车市场名称 - */ - private String SC_MC; - - /** - * 二手车市场税号 - */ - private String SC_SH; - - /** - * 二手车市场地址 - */ - private String SC_DZ; - - /** - * 二手车市场银行账号 - */ - private String SC_YHZH; - - /** - * 二手车市场电话 - */ - private String SC_DH; - - /** - * 二手车销方代码 - */ - private String ESC_XHFDM; - - /** - * 二手车销方名称 - */ - private String ESC_XHFMC; - - /** - * 二手车销方地址 - */ - private String ESC_XHFDZ; - - /** - * 二手车销方电话 - */ - private String ESC_XHFDH; - - /** - * 车购税完税凭证号码 - */ - private String SC_CGSWSPZHM; - -} diff --git a/order-check/src/main/java/com/dxhy/order/constant/JdctxxBO.java b/order-check/src/main/java/com/dxhy/order/constant/JdctxxBO.java deleted file mode 100644 index 97060313..00000000 --- a/order-check/src/main/java/com/dxhy/order/constant/JdctxxBO.java +++ /dev/null @@ -1,87 +0,0 @@ -package com.dxhy.order.constant; - - -import lombok.Getter; -import lombok.Setter; -import lombok.ToString; - -import java.io.Serializable; - -/** - * 机动车信息 - * - * @author ZSC-DXHY - * @date 创建时间: 2020-12-07 17:01 - */ -@SuppressWarnings("AlibabaLowerCamelCaseVariableNaming") -@Setter -@Getter -@ToString -public class JdctxxBO implements Serializable { - - /** - * 车辆类型 - */ - private String CLLX; - - /** - * 厂牌型号 - */ - private String CPXH; - - /** - * 产地 - */ - private String CLCD; - - /** - * 合格证号 - */ - private String HGZH; - - /** - * 进口证明书号 - */ - private String JKZMSH; - - /** - * 商检单号 - */ - private String SJDH; - - /** - * 发动机号码 - */ - private String FDJHM; - - /** - * 车辆识别单号 - */ - private String CLSBDH; - - /** - * 完税凭证号码 - */ - private String WSPZHM; - - /** - * 吨位 - */ - private String DW; - - /** - * 限乘人数 - */ - private String XCRS; - - /** - * 厂家信息 - */ - private String CJXX; - - /** - * 身份证号码/组织机构代码 - */ - private String ZZJGDM; - -} diff --git a/order-check/src/main/java/com/dxhy/order/util/BeanTransitionUtils.java b/order-check/src/main/java/com/dxhy/order/util/BeanTransitionUtils.java deleted file mode 100644 index 074c940f..00000000 --- a/order-check/src/main/java/com/dxhy/order/util/BeanTransitionUtils.java +++ /dev/null @@ -1,305 +0,0 @@ -package com.dxhy.order.util; - -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.RandomUtil; -import com.dxhy.order.constant.*; -import com.dxhy.order.model.*; -import com.dxhy.order.utils.CommonUtils; -import com.dxhy.order.utils.DecimalCalculateUtil; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -/** - * @author :杨士勇 - * @ClassName :BeanTransition - * @Description :bean转换工具类 - * @date :2018年10月15日 下午2:19:37 - */ -@SuppressWarnings("AlibabaMethodTooLong") -@Slf4j -public class BeanTransitionUtils { - private static final String LOGGER_MSG = "(对象转换工具类)"; - - /** - * 对外订单数据转换为订单业务数据 - * - * @param ddzxx - * @return - */ - public static CommonOrderInfo transitionCommonOrderInfoV3(DdzxxBO ddzxx) { - CommonOrderInfo commonOrderInfo = new CommonOrderInfo(); - - OrderInfo orderInfo = transitionOrderInfoV3(ddzxx.getDDTXX()); - - - List orderItemInfos = transitionOrderItemInfoV3(ddzxx.getDDMXXX(), orderInfo.getXhfNsrsbh()); - - /** - * 默认开票项目为明细行首行数据 - */ - orderInfo.setKpxm(orderItemInfos.get(0).getXmmc()); - - commonOrderInfo.setOrderInfo(orderInfo); - if (OrderInfoEnum.ORDER_INVOICE_TYPE_12.getKey().equals(orderInfo.getFpzlDm())) { - /** - * 如果机动车信息不为空,补全机动车信息 - */ - - OrderInfoJdc orderInfoJdc = transitionJdctxx(ddzxx.getJDCTXX(), orderInfo); - commonOrderInfo.setOrderInfoJdc(orderInfoJdc); - } - if (OrderInfoEnum.ORDER_INVOICE_TYPE_42.getKey().equals(orderInfo.getFpzlDm())) { - /** - * 如果二手车信息不为空,补全二手车信息 - */ - OrderInfoEsc orderInfoEsc = transitionOrderInfoEsc(ddzxx.getESCTXX(), orderInfo); - commonOrderInfo.setOrderInfoEsc(orderInfoEsc); - } - - - commonOrderInfo.setOrderItemInfo(orderItemInfos); - - return commonOrderInfo; - } - - - /** - * 自动开票接口数据转换--订单主体信息V3 - * - * @param ddtxx - * @return - */ - public static OrderInfo transitionOrderInfoV3(DdtxxBO ddtxx) { - - OrderInfo orderInfo = new OrderInfo(); - orderInfo.setFpqqlsh(ddtxx.getDDQQLSH()); - //如果订单号为空的话, 自动生成12位的订单号 - orderInfo.setDdh(StringUtils.isBlank(ddtxx.getDDH()) ? RandomUtil.randomNumbers(ConfigureConstant.INT_12) : ddtxx.getDDH()); - orderInfo.setThdh(ddtxx.getTHDH()); - orderInfo.setGhfId(ddtxx.getGMFBM()); - orderInfo.setDdlx("0"); - Date ddrq = StringUtils.isBlank(ddtxx.getDDSJ()) ? new Date() : DateUtil.parse(ddtxx.getDDSJ()); - if (ddrq == null) { - ddrq = new Date(); - } - orderInfo.setDdrq(ddrq); - orderInfo.setDsptbm(""); - orderInfo.setNsrsbh(ddtxx.getNSRSBH()); - orderInfo.setNsrmc(ddtxx.getNSRMC()); - orderInfo.setNsrdzdah(ddtxx.getNSRSBH()); - orderInfo.setSwjgDm(""); - orderInfo.setDkbz("0"); - /** - * 外层进行补全,使用明细行第一行商品名称作为开票项目 - */ - orderInfo.setKpxm(""); - orderInfo.setBbmBbh(ddtxx.getBMBBBH()); - orderInfo.setXhfMc(ddtxx.getXHFMC()); - orderInfo.setXhfNsrsbh(ddtxx.getXHFSBH()); - orderInfo.setXhfDz(ddtxx.getXHFDZ()); - orderInfo.setXhfDh(ddtxx.getXHFDH()); - if (StringUtils.isNotBlank(ddtxx.getXHFYH())) { - orderInfo.setXhfYh(ddtxx.getXHFYH()); - } - if (StringUtils.isNotBlank(ddtxx.getXHFZH())) { - orderInfo.setXhfZh(ddtxx.getXHFZH()); - } - orderInfo.setGhfQylx(ddtxx.getGMFLX()); - orderInfo.setGhfSf(ddtxx.getGMFSF()); - orderInfo.setGhfMc(ddtxx.getGMFMC()); - orderInfo.setGhfNsrsbh(ddtxx.getGMFSBH()); - orderInfo.setGhfDz(ddtxx.getGMFDZ()); - orderInfo.setGhfDh(ddtxx.getGMFDH()); - if (StringUtils.isNotBlank(ddtxx.getGMFYH())) { - orderInfo.setGhfYh(ddtxx.getGMFYH()); - } - if (StringUtils.isNotBlank(ddtxx.getGMFZH())) { - orderInfo.setGhfZh(ddtxx.getGMFZH()); - } - orderInfo.setGhfSj(ddtxx.getGMFSJH()); - orderInfo.setGhfEmail(ddtxx.getGMFDZYX()); - orderInfo.setHyDm(""); - orderInfo.setHyMc(""); - orderInfo.setKpr(ddtxx.getKPR()); - orderInfo.setSkr(ddtxx.getSKR()); - orderInfo.setFhr(ddtxx.getFHR()); - orderInfo.setKplx(ddtxx.getKPLX()); - - orderInfo.setFpzlDm(ddtxx.getFPLXDM()); - orderInfo.setYfpDm(ddtxx.getYFPDM()); - orderInfo.setYfpHm(ddtxx.getYFPHM()); - orderInfo.setChyy(ddtxx.getCHYY()); - orderInfo.setTschbz(ddtxx.getTSCHBZ()); - orderInfo.setHzxxbbh(ddtxx.getHZXXBBH()); - orderInfo.setCzdm("10"); - orderInfo.setQdBz(ddtxx.getQDBZ()); - orderInfo.setQdXmmc(ddtxx.getQDXMMC()); - if(StringUtils.isBlank(orderInfo.getQdXmmc())){ - CommonUtils.setQdXmmc(orderInfo); - } - orderInfo.setKphjje(ddtxx.getJSHJ()); - orderInfo.setHjbhsje(ddtxx.getHJJE()); - orderInfo.setHjse(ddtxx.getHJSE()); - if (StringUtils.isNotBlank(ddtxx.getJSHJ())) { - orderInfo.setKphjje(DecimalCalculateUtil.decimalFormatToString(ddtxx.getJSHJ(), 2)); - } - if (StringUtils.isNotBlank(ddtxx.getHJJE())) { - orderInfo.setHjbhsje(DecimalCalculateUtil.decimalFormatToString(ddtxx.getHJJE(), 2)); - } - if (StringUtils.isNotBlank(ddtxx.getHJSE())) { - orderInfo.setHjse(DecimalCalculateUtil.decimalFormatToString(ddtxx.getHJSE(), 2)); - } - - - orderInfo.setMdh(""); - orderInfo.setYwlx(""); - - /** - * 外层进行补全,使用最外层的数据进行填充 - */ - orderInfo.setKpjh(""); - orderInfo.setSld(""); - orderInfo.setSldMc(""); - orderInfo.setTqm(ddtxx.getTQM()); - orderInfo.setSfcf(ddtxx.getSFCF()); - - orderInfo.setBz(ddtxx.getBZ()); - orderInfo.setCreateTime(new Date()); - orderInfo.setUpdateTime(new Date()); - orderInfo.setByzd1(ddtxx.getBYZD1()); - orderInfo.setByzd2(ddtxx.getBYZD2()); - orderInfo.setByzd3(ddtxx.getBYZD3()); - orderInfo.setByzd4(ddtxx.getBYZD4()); - orderInfo.setByzd5(ddtxx.getBYZD5()); - return orderInfo; - } - - /** - * 自动开票接口数据转换--机动车订单主体信息 - * - * @param jdctxx - * @return - */ - public static OrderInfoJdc transitionJdctxx(JdctxxBO jdctxx, OrderInfo orderInfo) { - - OrderInfoJdc orderInfoJdc = new OrderInfoJdc(); - orderInfoJdc.setId(""); - orderInfoJdc.setOrderId(""); - orderInfoJdc.setProcessId(""); - orderInfoJdc.setFpqqlsh(orderInfo.getFpqqlsh()); - orderInfoJdc.setXhfNsrsbh(orderInfo.getXhfNsrsbh()); - orderInfoJdc.setCllx(jdctxx.getCLLX()); - orderInfoJdc.setCpxh(jdctxx.getCPXH()); - orderInfoJdc.setClcd(jdctxx.getCLCD()); - orderInfoJdc.setHgzh(jdctxx.getHGZH()); - orderInfoJdc.setJkzmsh(jdctxx.getJKZMSH()); - orderInfoJdc.setSjdh(jdctxx.getSJDH()); - orderInfoJdc.setFdjhm(jdctxx.getFDJHM()); - orderInfoJdc.setClsbdh(jdctxx.getCLSBDH()); - orderInfoJdc.setWspzhm(jdctxx.getWSPZHM()); - orderInfoJdc.setDw(jdctxx.getDW()); - orderInfoJdc.setXcrs(jdctxx.getXCRS()); - orderInfoJdc.setCjxx(jdctxx.getCJXX()); - orderInfoJdc.setZzjgdm(jdctxx.getZZJGDM()); - orderInfoJdc.setCreateTime(new Date()); - orderInfoJdc.setUpdateTime(new Date()); - orderInfoJdc.setByzd1(""); - orderInfoJdc.setByzd2(""); - orderInfoJdc.setByzd3(""); - - return orderInfoJdc; - } - - - /** - * 自动开票接口数据转换--二手车订单主体信息 - * - * @param esctxx - * @return - */ - public static OrderInfoEsc transitionOrderInfoEsc(EsctxxBO esctxx, OrderInfo orderInfo) { - - OrderInfoEsc orderInfoEsc = new OrderInfoEsc(); - orderInfoEsc.setId(""); - orderInfoEsc.setOrderId(""); - orderInfoEsc.setProcessId(""); - orderInfoEsc.setFpqqlsh(orderInfo.getFpqqlsh()); - orderInfoEsc.setXhfNsrsbh(orderInfo.getXhfNsrsbh()); - orderInfoEsc.setKpflx(esctxx.getKPFLX()); - orderInfoEsc.setCpzh(esctxx.getCPZH()); - orderInfoEsc.setDjzh(esctxx.getDJZH()); - orderInfoEsc.setCllx(esctxx.getCLLX()); - orderInfoEsc.setClsbdm(esctxx.getCLSBDM()); - orderInfoEsc.setCpxh(esctxx.getCPXH()); - orderInfoEsc.setZrdclglsmc(esctxx.getZRDCLGLSMC()); - orderInfoEsc.setJypmdwMc(esctxx.getJYPMDW_MC()); - orderInfoEsc.setJypmdwDz(esctxx.getJYPMDW_DZ()); - orderInfoEsc.setJypmdwSh(esctxx.getJYPMDW_SH()); - orderInfoEsc.setJypmdwYhzh(esctxx.getJYPMDW_YHZH()); - orderInfoEsc.setJypmdwDh(esctxx.getJYPMDW_DH()); - orderInfoEsc.setScMc(esctxx.getSC_MC()); - orderInfoEsc.setScSh(esctxx.getSC_SH()); - orderInfoEsc.setScDz(esctxx.getSC_DZ()); - orderInfoEsc.setScYhzh(esctxx.getSC_YHZH()); - orderInfoEsc.setScDh(esctxx.getSC_DH()); - orderInfoEsc.setEscXhfdm(esctxx.getESC_XHFDM()); - orderInfoEsc.setEscXhfmc(esctxx.getESC_XHFMC()); - orderInfoEsc.setEscXhfdz(esctxx.getESC_XHFDZ()); - orderInfoEsc.setEscXhfdh(esctxx.getESC_XHFDH()); - orderInfoEsc.setScCgswspzhm(esctxx.getSC_CGSWSPZHM()); - orderInfoEsc.setCreateTime(new Date()); - orderInfoEsc.setUpdateTime(new Date()); - orderInfoEsc.setByzd1(""); - orderInfoEsc.setByzd2(""); - orderInfoEsc.setByzd3(""); - - return orderInfoEsc; - } - - /** - * 自动开票接口数据转换--订单明细信息 - * - * @param ddmxxxes - * @return - */ - public static List transitionOrderItemInfoV3(List ddmxxxes, String xhfNsrsbh) { - List orderItemInfos = new ArrayList<>(); - for (int i = 0; i < ddmxxxes.size(); i++) { - OrderItemInfo orderItemInfo = new OrderItemInfo(); - DdmxxxBO orderInvoiceItem = ddmxxxes.get(i); - orderItemInfo.setSphxh(StringUtils.isBlank(orderInvoiceItem.getXH()) ? String.valueOf(i + 1) : orderInvoiceItem.getXH()); - orderItemInfo.setXmmc(orderInvoiceItem.getXMMC()); - orderItemInfo.setXmdw(orderInvoiceItem.getDW()); - orderItemInfo.setGgxh(orderInvoiceItem.getGGXH()); - - orderItemInfo.setXmdj(orderInvoiceItem.getDJ()); - orderItemInfo.setXmsl(orderInvoiceItem.getSPSL()); - - orderItemInfo.setHsbz(orderInvoiceItem.getHSBZ()); - orderItemInfo.setFphxz(orderInvoiceItem.getFPHXZ()); - orderItemInfo.setSpbm(orderInvoiceItem.getSPBM()); - orderItemInfo.setZxbm(orderInvoiceItem.getZXBM()); - orderItemInfo.setYhzcbs(orderInvoiceItem.getYHZCBS()); - orderItemInfo.setLslbs(orderInvoiceItem.getLSLBS()); - orderItemInfo.setZzstsgl(orderInvoiceItem.getZZSTSGL()); - orderItemInfo.setKce(orderInvoiceItem.getKCE()); - orderItemInfo.setXmje(orderInvoiceItem.getJE()); - orderItemInfo.setSl(orderInvoiceItem.getSL()); - orderItemInfo.setSe(orderInvoiceItem.getSE()); - orderItemInfo.setXhfNsrsbh(xhfNsrsbh); - orderItemInfo.setWcje("0.00"); - orderItemInfo.setByzd1(orderInvoiceItem.getBYZD1()); - orderItemInfo.setByzd2(orderInvoiceItem.getBYZD2()); - orderItemInfo.setByzd3(orderInvoiceItem.getBYZD3()); - orderItemInfo.setCreateTime(new Date()); - orderItemInfos.add(orderItemInfo); - } - return orderItemInfos; - } - - -} diff --git a/order-check/src/main/java/com/dxhy/order/util/OrderCheckUtil.java b/order-check/src/main/java/com/dxhy/order/util/OrderCheckUtil.java deleted file mode 100644 index 1c92e92b..00000000 --- a/order-check/src/main/java/com/dxhy/order/util/OrderCheckUtil.java +++ /dev/null @@ -1,2606 +0,0 @@ -package com.dxhy.order.util; - -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.ObjectUtil; -import com.dxhy.order.constant.*; -import com.dxhy.order.model.*; -import com.dxhy.order.utils.CheckParamUtil; -import com.dxhy.order.utils.CommonUtils; -import com.dxhy.order.utils.DecimalCalculateUtil; -import com.dxhy.order.utils.ValidateUtil; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; - -import java.math.BigDecimal; -import java.util.*; -import java.util.regex.Matcher; - -/** - * 校验工具类 - * - * @author ZSC-DXHY - * @date 创建时间: 2021-12-23 16:13 - */ -@SuppressWarnings({"AlibabaMethodTooLong", "AlibabaAvoidComplexCondition"}) -@Slf4j -public class OrderCheckUtil { - - private static final String LOGGER_MSG = "(开票接口校验类)"; - - /** - * 开票接口数据校验 - * - * @param commonOrderReq - * @return - */ - public static Map checkInterfaceParam(DdpcxxReqBO commonOrderReq) { - String terminalCode = "001"; - //声明返回结果map - Map checkResultMap = new HashMap<>(10); - checkResultMap.put(OrderManagementConstant.ERRORCODE, OrderInfoContentEnum.SUCCESS.getKey()); - - if (commonOrderReq == null) { - return generateErrorMap(OrderInfoContentEnum.HANDLE_ISSUE_202008); - } - DdpcxxBO ddpcxx = commonOrderReq.getDDPCXX(); - if (ddpcxx == null) { - return generateErrorMap(OrderInfoContentEnum.HANDLE_ISSUE_202008); - } - List ddzxx = commonOrderReq.getDDZXX(); - if (ddzxx == null || ddzxx.size() <= 0) { - return generateErrorMap(OrderInfoContentEnum.HANDLE_ISSUE_202004); - } - - //校验批次表数据正确性与合法性 - checkResultMap = checkCommonOrderBatch(ddpcxx); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - return checkResultMap; - } - - //校验发票主体数据和明细信息 - checkResultMap = checkCommonOrder(ddzxx, ddpcxx, terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - return checkResultMap; - } - return checkResultMap; - } - - /** - * 校验请求订单批次数据信息正确性与合法性 - * - * @param ddpcxx - * @return - */ - private static Map checkCommonOrderBatch(DdpcxxBO ddpcxx) { - //声明返回结果map - Map checkResultMap = new HashMap<>(10); - checkResultMap.put(OrderManagementConstant.ERRORCODE, OrderInfoContentEnum.SUCCESS.getKey()); - - /* - * 订单请求批次号 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107003, ddpcxx.getDDQQPCH()); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - return checkResultMap; - } - - /* - * 订单请求纳税人识别号 - */ - - checkResultMap = CheckParamUtil.checkNsrsbhParam(OrderInfoContentEnum.CHECK_ISS7PRI_107005, - OrderInfoContentEnum.CHECK_ISS7PRI_107163, ddpcxx.getNSRSBH()); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - return checkResultMap; - } - - /* - * 订单请求发票类型 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107010, ddpcxx.getFPLXDM()); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - return checkResultMap; - } - //订单请求发票类型合法性 - if (CommonUtils.checkFpzldm(ddpcxx.getFPLXDM())) { - return generateErrorMap(OrderInfoContentEnum.CHECK_ISS7PRI_107013); - } - - /* - * 订单请求开票点 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107009, ddpcxx.getKPZD()); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - return checkResultMap; - } - - /* - * 订单请求开票方式 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107015, ddpcxx.getKPFS()); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - return checkResultMap; - } - //订单请求开票方式校验 - if (StringUtils.isNotBlank(ddpcxx.getKPFS()) && !OrderInfoEnum.ORDER_REQUEST_TYPE_0.getKey().equals(ddpcxx.getKPFS()) && !OrderInfoEnum.ORDER_REQUEST_TYPE_1.getKey().equals(ddpcxx.getKPFS()) && !OrderInfoEnum.ORDER_REQUEST_TYPE_2.getKey().equals(ddpcxx.getKPFS()) && !OrderInfoEnum.ORDER_REQUEST_TYPE_3.getKey().equals(ddpcxx.getKPFS())) { - return generateErrorMap(OrderInfoContentEnum.CHECK_ISS7PRI_107165); - } - - /* - * 订单请求是否成品油 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107008, ddpcxx.getCPYBS()); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - return checkResultMap; - } - //订单请求是否成品油校验 - if (StringUtils.isNotBlank(ddpcxx.getCPYBS()) && !OrderInfoEnum.ORDER_REQUEST_OIL_0.getKey().equals(ddpcxx.getCPYBS()) && !OrderInfoEnum.ORDER_REQUEST_OIL_1.getKey().equals(ddpcxx.getCPYBS())) { - return generateErrorMap(OrderInfoContentEnum.CHECK_ISS7PRI_107166); - } - - return checkResultMap; - } - - /** - * 校验请求发票数据信息 - * - * @param ddzxxes - * @param ddpcxx - * @param terminalCode - * @return - */ - private static Map checkCommonOrder(List ddzxxes, DdpcxxBO ddpcxx, String terminalCode) { - //声明返回结果map - Map checkResultMap = new HashMap<>(10); - checkResultMap.put(OrderManagementConstant.ERRORCODE, OrderInfoContentEnum.SUCCESS.getKey()); - - /* - * 循环处理数据 - */ - List> checkInvParamResultList = new ArrayList<>(); - /* - * 校验订单主体信息和订单明细信息 - */ - for (DdzxxBO ddzxx : ddzxxes) { - - /* - * 种类代码转换 - */ - String fpzldm = CommonUtils.transFpzldm(ddpcxx.getFPLXDM()); - ddzxx.getDDTXX().setFPLXDM(fpzldm); - - CommonOrderInfo commonOrderInfo = BeanTransitionUtils.transitionCommonOrderInfoV3(ddzxx); - - - commonOrderInfo.getOrderInfo().setFpzlDm(fpzldm); - commonOrderInfo.setKpfs(ddpcxx.getKPFS()); - commonOrderInfo.setPcnsrsbh(ddpcxx.getNSRSBH()); - commonOrderInfo.setSld(ddpcxx.getKPZD()); - commonOrderInfo.getOrderInfo().setSld(ddpcxx.getKPZD()); - commonOrderInfo.getOrderInfo().setYwlx(ddzxx.getDDTXX().getYWLX()); - /* - * 税控设备类型添加到订单主信息中 - */ - commonOrderInfo.setTerminalCode(terminalCode); - - - /* - * 校验订单主体信息和订单明细信息 - */ - List> checkInvParamList = checkInvParam(commonOrderInfo); - if (ObjectUtil.isNotEmpty(checkInvParamList) && checkInvParamList.size() > 0) { - checkInvParamResultList.addAll(checkInvParamList); - } - - /* - * 订单发票明细-处理发票明细数据,明细大于2000行校验 - */ - int maxItemLength = CommonUtils.getMaxItemLength(terminalCode, commonOrderInfo.getOrderInfo().getFpzlDm()); - if (commonOrderInfo.getOrderItemInfo().size() > maxItemLength) { - checkInvParamResultList.add(generateErrorMap(OrderInfoContentEnum.INVOICE_AUTO_NUMBER_ERROR.getKey(), String.format(OrderInfoContentEnum.INVOICE_AUTO_NUMBER_ERROR.getMessage(), maxItemLength))); - break; - } - - /* - * 校验批次中成品油标识和qdbz要一致 - */ - if (StringUtils.isNotBlank(ddpcxx.getCPYBS()) && StringUtils.isNotBlank(commonOrderInfo.getOrderInfo().getQdBz())) { - if (OrderInfoEnum.ORDER_REQUEST_OIL_0.getKey().equals(ddpcxx.getCPYBS()) && OrderInfoEnum.QDBZ_CODE_4.getKey().equals(commonOrderInfo.getOrderInfo().getQdBz())) { - checkInvParamResultList.add(generateErrorMap(OrderInfoContentEnum.CHECK_ISS7PRI_107169)); - } else if (OrderInfoEnum.ORDER_REQUEST_OIL_1.getKey().equals(ddpcxx.getCPYBS()) && !OrderInfoEnum.QDBZ_CODE_4.getKey().equals(commonOrderInfo.getOrderInfo().getQdBz())) { - checkInvParamResultList.add(generateErrorMap(OrderInfoContentEnum.CHECK_ISS7PRI_107170)); - } - } - - - } - - if (ObjectUtil.isNotEmpty(checkInvParamResultList) && checkInvParamResultList.size() > 0) { - if (checkInvParamResultList.size() > 1) { - String errorCode = OrderInfoContentEnum.INVOICE_ERROR_CODE_709999.getKey(); - StringBuilder errorMsg = new StringBuilder(); - for (Map stringStringMap : checkInvParamResultList) { - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(stringStringMap.get(OrderManagementConstant.ERRORCODE))) { - errorMsg.append(stringStringMap.get(OrderManagementConstant.ERRORMESSAGE)).append("\r\n"); - } - } - checkResultMap.put(OrderManagementConstant.ERRORCODE, errorCode); - checkResultMap.put(OrderManagementConstant.ERRORMESSAGE, errorMsg.toString()); - } else { - checkResultMap.put(OrderManagementConstant.ERRORCODE, checkInvParamResultList.get(0).get(OrderManagementConstant.ERRORCODE)); - checkResultMap.put(OrderManagementConstant.ERRORMESSAGE, checkInvParamResultList.get(0).get(OrderManagementConstant.ERRORMESSAGE)); - } - - } - - return checkResultMap; - - } - - /** - * 订单主体校验 - * - * @param commonOrderInfo - * @return - */ - private static List> checkInvParam(CommonOrderInfo commonOrderInfo) { - - /* - * 1.主体信息为空的需要直接返回不用再继续校验. - * 2.主体下面字段信息为空需要校验返回列表 - * - */ - List> resultMapList = new ArrayList<>(); - // 声明校验结果map - Map checkResultMap = new HashMap<>(10); - checkResultMap.put(OrderManagementConstant.ERRORCODE, OrderInfoContentEnum.SUCCESS.getKey()); - //1.数据非空和长度校验 - if (commonOrderInfo == null) { - resultMapList.add(generateErrorMap(OrderInfoContentEnum.HANDLE_ISSUE_202008)); - return resultMapList; - } - String terminalCode = commonOrderInfo.getTerminalCode(); - OrderInfo orderInfo = commonOrderInfo.getOrderInfo(); - if (orderInfo == null) { - resultMapList.add(generateErrorMap(OrderInfoContentEnum.HANDLE_ISSUE_202004)); - return resultMapList; - } - - List orderItemInfos = commonOrderInfo.getOrderItemInfo(); - if (ObjectUtil.isEmpty(orderItemInfos)) { - resultMapList.add(generateErrorMap(OrderInfoContentEnum.HANDLE_ISSUE_202009)); - return resultMapList; - } - - /* - * 页面发票直接开具的时候受理点必填 生成待开具发票的时候不需要校验 - */ - if (OrderInfoEnum.ORDER_INVOICE_TYPE_52.getKey().equals(orderInfo.getFpzlDm()) || OrderInfoEnum.ORDER_INVOICE_TYPE_0.getKey().equals(orderInfo.getFpzlDm()) || OrderInfoEnum.ORDER_INVOICE_TYPE_2.getKey().equals(orderInfo.getFpzlDm())) { - if (OrderInfoEnum.ORDER_REQUEST_TYPE_9.getKey().equals(commonOrderInfo.getKpfs())) { - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.STRING_FPKJ_SLD, orderInfo.getSld()); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - } - } - - - /* - * 订单主体-订单请求流水号 - */ - //开票方式为0时需要校验订单流水号 - if (OrderInfoEnum.ORDER_REQUEST_TYPE_0.getKey().equals(commonOrderInfo.getKpfs())) { - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107014, orderInfo.getFpqqlsh()); - } else { - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107014CC, orderInfo.getFpqqlsh()); - } - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 订单主体-纳税人识别号 - */ - checkResultMap = CheckParamUtil.checkNsrsbhParam(OrderInfoContentEnum.CHECK_ISS7PRI_107016, - OrderInfoContentEnum.CHECK_ISS7PRI_107163, orderInfo.getNsrsbh()); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - //批次税号和税号不一致 - if (StringUtils.isNotBlank(commonOrderInfo.getPcnsrsbh()) && !commonOrderInfo.getPcnsrsbh().equals(orderInfo.getNsrsbh())) { - resultMapList.add(generateErrorMap(OrderInfoContentEnum.CHECK_ISS7PRI_107082)); - } - - - /* - * 订单主体-纳税人名称 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107018, orderInfo.getNsrmc(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 订单主体-开票类型 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107020, orderInfo.getKplx()); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - //订单主体-开票类型合法性(开票类型只能为0和1:0蓝字发票;1红字发票) - if (StringUtils.isNotBlank(orderInfo.getKplx()) && !OrderInfoEnum.ORDER_BILLING_INVOICE_TYPE_0.getKey().equals(orderInfo.getKplx()) && !OrderInfoEnum.ORDER_BILLING_INVOICE_TYPE_1.getKey().equals(orderInfo.getKplx())) { - resultMapList.add(generateErrorMap(OrderInfoContentEnum.CHECK_ISS7PRI_107021)); - } - - /* - * 订单主体-发票种类代码 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107019, orderInfo.getFpzlDm()); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - //订单主体-发票种类代码合法性(只能为0:专票;2:普票;41:卷票;51:电子票) - if (CommonUtils.checkFpzldm(orderInfo.getFpzlDm())) { - resultMapList.add(generateErrorMap(OrderInfoContentEnum.CHECK_ISS7PRI_107004)); - } - - /* - * 订单主体-编码表版本号 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107097, orderInfo.getBbmBbh(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 订单主体-销售方纳税人识别号 - */ - checkResultMap = CheckParamUtil.checkNsrsbhParam(OrderInfoContentEnum.CHECK_ISS7PRI_107022, - OrderInfoContentEnum.CHECK_ISS7PRI_107163, orderInfo.getXhfNsrsbh()); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 订单主体-销售方纳税人名称 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107024, orderInfo.getXhfMc(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 校验销方税号为必填, - * 其他销方信息为非必填,如果填写进行合法性校验, - * 校验地址+电话总长度不能大于100 - * 校验银行名称+帐号总长度不能大于100 - */ - - - /* - * 订单主体-销售方地址 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107282, orderInfo.getXhfDz()); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 订单主体-销售方电话 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107283, orderInfo.getXhfDh()); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 订单主体-销售方银行 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107284, orderInfo.getXhfYh()); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 订单主体-销售方帐号 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107285, orderInfo.getXhfZh()); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 订单主体-销售方地址和电话总长度 - * 由于企业区分不开地址电话,所以校验支持地址电话总长度100,默认应该是85 - */ - String dzDh = StringUtils.isBlank(orderInfo.getXhfDz()) ? "" : orderInfo.getXhfDz() + (StringUtils.isBlank(orderInfo.getXhfDh()) ? "" : orderInfo.getXhfDh()); - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107267, dzDh); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - - /* - * 订单主体-销售方银行和帐号总长度 - * 由于企业区分不开银行帐号,所以校验支持银行帐号总长度100,默认应该是85 - */ - String yhZh = StringUtils.isBlank(orderInfo.getXhfYh()) ? "" : orderInfo.getXhfYh() + (StringUtils.isBlank(orderInfo.getXhfZh()) ? "" : orderInfo.getXhfZh()); - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107268, yhZh); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 整体校验购方信息 - */ - checkResultMap = checkGhfParam(orderInfo, commonOrderInfo.getKpfs(), commonOrderInfo.getIsExceptionEdit(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 订单主体-开票人 - */ - - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107044CC, orderInfo.getKpr(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - - /* - * 订单主体-收款人 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107046, orderInfo.getSkr(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 订单主体-复核人 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107048, orderInfo.getFhr(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 订单主体-红字信息表编号 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107045, orderInfo.getHzxxbbh(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 订单主体-清单标志 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107098, orderInfo.getQdBz()); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - //清单标志0-普通发票;1-普通发票(清单);2-收购发票;3-收购发票(清单);4-成品油发票;5-机动车专票;6-机动车专票(清单) - if (StringUtils.isNotBlank(orderInfo.getQdBz()) && !OrderInfoEnum.QDBZ_CODE_0.getKey().equals(orderInfo.getQdBz()) - && !OrderInfoEnum.QDBZ_CODE_1.getKey().equals(orderInfo.getQdBz()) - && !OrderInfoEnum.QDBZ_CODE_2.getKey().equals(orderInfo.getQdBz()) - && !OrderInfoEnum.QDBZ_CODE_3.getKey().equals(orderInfo.getQdBz()) - && !OrderInfoEnum.QDBZ_CODE_4.getKey().equals(orderInfo.getQdBz()) - && !OrderInfoEnum.QDBZ_CODE_5.getKey().equals(orderInfo.getQdBz()) - && !OrderInfoEnum.QDBZ_CODE_6.getKey().equals(orderInfo.getQdBz())) { - resultMapList.add(generateErrorMap(OrderInfoContentEnum.CHECK_ISS7PRI_107125)); - } - //如果清单标志为5,发票种类必须为专票 - if (StringUtils.isNotBlank(orderInfo.getQdBz()) && StringUtils.isNotBlank(orderInfo.getFpzlDm())) { - if (OrderInfoEnum.QDBZ_CODE_5.getKey().equals(orderInfo.getQdBz())) { - if (!OrderInfoEnum.ORDER_INVOICE_TYPE_0.getKey().equals(orderInfo.getFpzlDm()) && !OrderInfoEnum.ORDER_INVOICE_TYPE_52.getKey().equals(orderInfo.getFpzlDm())) { - resultMapList.add(generateErrorMap(OrderInfoContentEnum.CHECK_ISS7PRI_107125A)); - } - if (OrderInfoEnum.INVOICE_BILLING_TYPE_1.getKey().equals(orderInfo.getKplx()) && ObjectUtil.isNotEmpty(orderItemInfos) && orderItemInfos.size() > ConfigureConstant.SPECIAL_MAX_ITEM_LENGTH) { - resultMapList.add(generateErrorMap(OrderInfoContentEnum.CHECK_ISS7PRI_107125B)); - } - } - //如果清单标志为6,发票种类必须为专票 - if (OrderInfoEnum.QDBZ_CODE_6.getKey().equals(orderInfo.getQdBz())) { - if (!OrderInfoEnum.ORDER_INVOICE_TYPE_0.getKey().equals(orderInfo.getFpzlDm()) && !OrderInfoEnum.ORDER_INVOICE_TYPE_52.getKey().equals(orderInfo.getFpzlDm())) { - resultMapList.add(generateErrorMap(OrderInfoContentEnum.CHECK_ISS7PRI_107125C)); - } - } - - } - - /* - * 订单主体-清单项目名称 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107124, orderInfo.getQdXmmc(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - //清单标志为1(普通发票清单),3(收购发票清单)时,清单项目名称为必填 -// if (OrderInfoEnum.QDBZ_CODE_1.getKey().equals(orderInfo.getQdBz()) || OrderInfoEnum.QDBZ_CODE_3.getKey().equals(orderInfo.getQdBz())) { -// if (StringUtils.isBlank(orderInfo.getQdXmmc())) { -// resultMapList.add(generateErrorMap(OrderInfoContentEnum.CHECK_ISS7PRI_107099)); -// } -// } - - /* - * 订单主体-价税合计 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107141, orderInfo.getKphjje(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - return resultMapList; - } else { - //价税合计金额不能为0或者0.00 - if (ConfigureConstant.STRING_0.equals(orderInfo.getKphjje()) || ConfigureConstant.STRING_000.equals(orderInfo.getKphjje()) || ConfigureConstant.INT_2 != ValidateUtil.checkNumberic(orderInfo.getKphjje())) { - resultMapList.add(generateErrorMap(OrderInfoContentEnum.CHECK_ISS7PRI_107066)); - } - //开票类型为0(蓝票)时,金额必须大于0 - if (OrderInfoEnum.ORDER_BILLING_INVOICE_TYPE_0.getKey().equals(orderInfo.getKplx()) && DecimalCalculateUtil.stringCompare(orderInfo.getKphjje(),ConfigureConstant.STRING_000) <= 0) { - resultMapList.add(generateErrorMap(OrderInfoContentEnum.CHECK_ISS7PRI_107080)); - } - //开票类型为1(红票)时,金额必须小于0 - if (OrderInfoEnum.ORDER_BILLING_INVOICE_TYPE_1.getKey().equals(orderInfo.getKplx()) && DecimalCalculateUtil.stringCompare(orderInfo.getKphjje(),ConfigureConstant.STRING_000) >= 0) { - resultMapList.add(generateErrorMap(OrderInfoContentEnum.CHECK_ISS7PRI_107083)); - } - } - - - /* - * 订单主体-合计金额 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107142, orderInfo.getHjbhsje(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - //合计金额为不为0时,需要保证金额为小数点后两位 - if (StringUtils.isNotBlank(orderInfo.getHjbhsje()) && DecimalCalculateUtil.stringCompare(orderInfo.getHjbhsje(),ConfigureConstant.STRING_000) != 0 && ConfigureConstant.INT_2 != ValidateUtil.checkNumberic(orderInfo.getHjbhsje())) { - resultMapList.add(generateErrorMap(OrderInfoContentEnum.CHECK_ISS7PRI_107135)); - } - //开票类型为0(蓝票)时,合计金额必须大于0 - if (StringUtils.isNotBlank(orderInfo.getHjbhsje()) && OrderInfoEnum.ORDER_BILLING_INVOICE_TYPE_0.getKey().equals(orderInfo.getKplx()) && DecimalCalculateUtil.stringCompare(orderInfo.getHjbhsje(),ConfigureConstant.STRING_000) < 0 ) { - resultMapList.add(generateErrorMap(OrderInfoContentEnum.CHECK_ISS7PRI_107079)); - } - //开票类型为1(红票)时,合计金额必须小于0 - if (StringUtils.isNotBlank(orderInfo.getHjbhsje()) && OrderInfoEnum.ORDER_BILLING_INVOICE_TYPE_1.getKey().equals(orderInfo.getKplx()) && DecimalCalculateUtil.stringCompare(orderInfo.getHjbhsje(),ConfigureConstant.STRING_000) > 0) { - resultMapList.add(generateErrorMap(OrderInfoContentEnum.CHECK_ISS7PRI_107078)); - } - /* - * 机动车销售发票 - * 商品编码1090305010800000000 超豪华小汽车 不含税金额必须大于等于130万元 - */ - if (OrderInfoEnum.ORDER_INVOICE_TYPE_12.getKey().equals(orderInfo.getFpzlDm())) { - OrderItemInfo orderItemInfo1 = orderItemInfos.get(0); - //机动车 商品编码1090305010800000000 超豪华小汽车 不含税金额必须大于等于130万元 - if (StringUtils.equals(ConfigureConstant.STRING_1090305010800000000, orderItemInfo1.getSpbm())) { - BigDecimal hjbhsje = new BigDecimal(orderInfo.getHjbhsje()); - BigDecimal abs = hjbhsje.abs(); - if (abs.compareTo(new BigDecimal(ConfigureConstant.STRING_1300000)) < 0) { - resultMapList.add(generateErrorMap(OrderInfoContentEnum.CHECK_ISS7PRI_109017)); - } - resultMapList.addAll(checkOrderInfoJdc(commonOrderInfo.getOrderInfoJdc(), terminalCode)); - } - } - - /* - * 订单主体-合计税额 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107143, orderInfo.getHjse(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - //合计金额为不为0时,需要保证金额为小数点后两位 - if (StringUtils.isNotBlank(orderInfo.getHjse()) && DecimalCalculateUtil.stringCompare(orderInfo.getHjse(),ConfigureConstant.STRING_000) != 0 && ConfigureConstant.INT_2 != ValidateUtil.checkNumberic(orderInfo.getHjse())) { - resultMapList.add(generateErrorMap(OrderInfoContentEnum.CHECK_ISS7PRI_107136)); - } - //开票类型为0(蓝票)时,合计税额必须大于等于0 - if (StringUtils.isNotBlank(orderInfo.getHjse()) && OrderInfoEnum.ORDER_BILLING_INVOICE_TYPE_0.getKey().equals(orderInfo.getKplx()) && DecimalCalculateUtil.stringCompare(orderInfo.getHjse(),ConfigureConstant.STRING_000) < 0 ) { - resultMapList.add(generateErrorMap(OrderInfoContentEnum.CHECK_ISS7PRI_107077)); - } - //开票类型为1(红票)时,合计税额必须小于等于0 - if (StringUtils.isNotBlank(orderInfo.getHjse()) && OrderInfoEnum.ORDER_BILLING_INVOICE_TYPE_1.getKey().equals(orderInfo.getKplx()) && DecimalCalculateUtil.stringCompare(orderInfo.getHjse(),ConfigureConstant.STRING_000) > 0) { - resultMapList.add(generateErrorMap(OrderInfoContentEnum.CHECK_ISS7PRI_107076)); - } - - - /* - * 订单主体-特殊冲红标志 - */ - - if (StringUtils.isNotBlank(orderInfo.getTschbz())) { - //红票特殊冲红标志只能为0和1:0为正常冲红,1为特殊冲红 - if (!OrderInfoEnum.TSCHBZ_0.getKey().equals(orderInfo.getTschbz()) && !OrderInfoEnum.TSCHBZ_1.getKey().equals(orderInfo.getTschbz())) { - resultMapList.add(generateErrorMap(OrderInfoContentEnum.CHECK_ISS7PRI_107054)); - } - } - - /* - * 订单主体-订单号 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107067, orderInfo.getDdh()); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - //订单号格式校验,只能是数字、字母、#、_、- - if (StringUtils.isNotBlank(orderInfo.getDdh())) { - - Matcher matcher = ConfigureConstant.DDH_PATTERN.matcher(orderInfo.getDdh()); - if (!matcher.matches()) { - resultMapList.add(generateErrorMap(OrderInfoContentEnum.CHECK_ISS7PRI_107067A)); - } - } - - /* - * 订单主体-订单日期 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107068, orderInfo.getDdrq() == null ? "" : DateUtil.format(orderInfo.getDdrq(), ConfigureConstant.DATE_FORMAT_DATE_Y_M_DH_M_S)); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 发票主体-门店号 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107293, orderInfo.getMdh()); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 发票主体-业务类型 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107294, orderInfo.getYwlx()); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 发票主体-提取码 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107295, orderInfo.getTqm()); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - //如果提取码为空,开票方式不为0,不为1时返回错误 开票方式为静态码开票时tqm不能为空 - if (StringUtils.isNotBlank(commonOrderInfo.getKpfs()) && commonOrderInfo.getKpfs().equals(OrderInfoEnum.ORDER_REQUEST_TYPE_2.getKey()) && StringUtils.isBlank(orderInfo.getTqm())) { - resultMapList.add(generateErrorMap(OrderInfoContentEnum.CHECK_ISS7PRI_107296)); - } - - - /* - * 订单主体-冲红原因 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107052, orderInfo.getChyy()); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - - /* - * 订单主体-备注 - */ - - /* - * 当开票类型为红票时 - * 1.专票备注不能为空. - */ - if (OrderInfoEnum.ORDER_BILLING_INVOICE_TYPE_1.getKey().equals(orderInfo.getKplx())) { - - if (StringUtils.isBlank(orderInfo.getBz())) { - //发票类别为专票时并且红字信息表编号未传递,备注不能为空. - if (OrderInfoEnum.ORDER_INVOICE_TYPE_0.getKey().equals(orderInfo.getFpzlDm()) || OrderInfoEnum.ORDER_INVOICE_TYPE_52.getKey().equals(orderInfo.getFpzlDm())) { - if (StringUtils.isEmpty(orderInfo.getHzxxbbh())) { - resultMapList.add(generateErrorMap(OrderInfoContentEnum.CHECK_ISS7PRI_107127)); - } - - } - - } else { - - /* - * 订单主体-备注 - * C48,A9,改为230,方格百旺改为184 - * 红票默认超过200后进行截取,C48,A9,超过230后截取,校验按照不超过300校验 - * 方格百旺超过184位后截取,校验按照300校验 - */ - - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107128C, orderInfo.getBz()); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - if (OrderInfoEnum.ORDER_INVOICE_TYPE_0.getKey().equals(orderInfo.getFpzlDm()) || OrderInfoEnum.ORDER_INVOICE_TYPE_52.getKey().equals(orderInfo.getFpzlDm())) { - String hzxxbbh = CommonUtils.getHzxxbbh(orderInfo.getBz(), terminalCode); - if (StringUtils.isEmpty(hzxxbbh) && StringUtils.isEmpty(orderInfo.getHzxxbbh())) { - resultMapList.add(generateErrorMap(OrderInfoContentEnum.CHECK_ISS7PRI_107129)); - } else { - - //校验备注中读取的编号与头信息中编号是否一致 - if (StringUtils.isNotEmpty(hzxxbbh) && StringUtils.isNotEmpty(orderInfo.getHzxxbbh()) && !hzxxbbh.equals(orderInfo.getHzxxbbh())) { - resultMapList.add(generateErrorMap(OrderInfoContentEnum.CHECK_ISS7PRI_107129A)); - } - - } - - - } - } - - } else { - /* - * 订单主体-备注 为蓝票时非必填,限制长度200, - * C48,A9,D60改为230,方格百旺改为184 - */ - if (OrderInfoEnum.TAX_EQUIPMENT_C48.getKey().equals(terminalCode) || OrderInfoEnum.TAX_EQUIPMENT_D60.getKey().equals(terminalCode) || OrderInfoEnum.TAX_EQUIPMENT_A9.getKey().equals(terminalCode)) { - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107128A, orderInfo.getBz()); - } else if (OrderInfoEnum.TAX_EQUIPMENT_FGBW.getKey().equals(terminalCode)) { - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107128B, orderInfo.getBz()); - } else { - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107128, orderInfo.getBz()); - } - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - } - //订单主体-备注,处理差额征税验证. - if (StringUtils.isNotEmpty(orderInfo.getBz())) { - /* - * 判断是否为扣除额数据 - * 如果为扣除额数据,判断备注是否填写扣除额 - * 如果未填写进行扣除额补全,蓝票补全格式为:差额征税:XXX.XX。YYYYY,红票补全格式为:差额征税。YYYY; - * (XXX.XX表示扣除额,跟明细行扣除额一致,保留小数点后两位,YYYYY表示用户填写的备注) - * 如果备注不为空,并且包含差额征税和句号. - * 截取差额征税:和句号之间的差额值,做格式化校验 - * 如果截取字符串长度不对,提示错误 - * 如果扣除额为空提示错误, - * 如果扣除额格式不合法提示错误 - * - * 如果是红票需要检验格式,扣除额必须为空 - */ - String bz = orderInfo.getBz(); - String getHzxxbbh; - if (StringUtils.isNotEmpty(orderInfo.getHzxxbbh())) { - getHzxxbbh = orderInfo.getHzxxbbh(); - } else { - getHzxxbbh = CommonUtils.getHzxxbbh(bz, terminalCode); - } - - String resultBz = CommonUtils.getBz("", orderInfo.getKplx(), orderInfo.getFpzlDm(), terminalCode, orderInfo.getYfpDm(), orderInfo.getYfpHm(), commonOrderInfo.getOrderItemInfo().get(0).getKce(), getHzxxbbh); - //扣除额的发票添加备注 扣除额 - if (ObjectUtil.isNotEmpty(commonOrderInfo.getOrderItemInfo()) && commonOrderInfo.getOrderItemInfo().size() > 0 && commonOrderInfo.getOrderItemInfo().size() <= ConfigureConstant.KCE_MAX_ITEM_LENGTH && StringUtils.isNotBlank(commonOrderInfo.getOrderItemInfo().get(0).getKce())) { - - - //判断红票和蓝票数据,如果为蓝票,扣除额必填,如果填写校验扣除额格式,校验扣除额和明细填写是否一致,如果为红票,校验格式,需要以差额征税。开头 - if (OrderInfoEnum.ORDER_BILLING_INVOICE_TYPE_0.getKey().equals(orderInfo.getKplx())) { - if (bz.contains(ConfigureConstant.STRING_CEZS) && bz.contains(ConfigureConstant.STRING_JH)) { - int start = bz.indexOf(ConfigureConstant.STRING_CEZS); - int end = bz.indexOf(ConfigureConstant.STRING_JH); - if (start > end) { - resultMapList.add(generateErrorMap(OrderInfoContentEnum.CHECK_ISS7PRI_107297)); - } else { - String kce = bz.substring(start + 5, end); - if (StringUtils.isNotEmpty(kce)) { - - if (ConfigureConstant.INT_2 != ValidateUtil.checkNumberic(kce)) { - resultMapList.add(generateErrorMap(OrderInfoContentEnum.CHECK_ISS7PRI_107297)); - } - if (!commonOrderInfo.getOrderItemInfo().get(0).getKce().equals(kce)) { - resultMapList.add(generateErrorMap(OrderInfoContentEnum.CHECK_ISS7PRI_107300)); - } - - } else { - resultMapList.add(generateErrorMap(OrderInfoContentEnum.CHECK_ISS7PRI_107298)); - } - - } - } - - - } else if (OrderInfoEnum.ORDER_BILLING_INVOICE_TYPE_1.getKey().equals(orderInfo.getKplx())) { - if (!bz.contains(ConfigureConstant.STRING_CEZS)) { - resultMapList.add(generateErrorMap(OrderInfoContentEnum.CHECK_ISS7PRI_107299)); - } - } - - if (!bz.contains(resultBz)) { - resultMapList.add(generateErrorMap(OrderInfoContentEnum.CHECK_ISS7PRI_107302)); - } - } else { - //非差额备注不能包含差额征税 - if (bz.contains(ConfigureConstant.STRING_CEZS)) { - resultMapList.add(generateErrorMap(OrderInfoContentEnum.CHECK_ISS7PRI_107301)); - } - - } - - - } - - /* - * 订单主体-红字信息表编号 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107072, orderInfo.getHzxxbbh()); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - if (OrderInfoEnum.ORDER_BILLING_INVOICE_TYPE_1.getKey().equals(orderInfo.getKplx())) { - if (OrderInfoEnum.ORDER_INVOICE_TYPE_0.getKey().equals(orderInfo.getFpzlDm()) || OrderInfoEnum.ORDER_INVOICE_TYPE_52.getKey().equals(orderInfo.getFpzlDm())) { - //todo 后期校验专票信息表编号必填 - } - } - - - /* - * 红票逻辑校验 - * 通过开票类型校验 - */ - if (StringUtils.isBlank(commonOrderInfo.getSqsm())) { - - /* - * 订单主体-特殊冲红标志 - * 开票类型为1时,特殊冲红标志为必填, - * 红票特殊冲红标志只能为0和1:0为正常冲红,1为特殊冲红 - */ - if (OrderInfoEnum.ORDER_BILLING_INVOICE_TYPE_1.getKey().equals(orderInfo.getKplx())) { - - /* - * 订单主体-特殊冲红标志 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107053, orderInfo.getTschbz()); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - //原发票代码 - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107049, orderInfo.getYfpDm()); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - //原发票代码 - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107050, orderInfo.getYfpHm()); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - } else { - if (StringUtils.isNotBlank(orderInfo.getYfpDm()) || StringUtils.isNotBlank(orderInfo.getYfpHm())) { - resultMapList.add(generateErrorMap(OrderInfoContentEnum.CHECK_ISS7PRI_107047)); - } - - } - - } - - - /* - * 订单主体-是否拆分 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107073, orderInfo.getSfcf()); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - if (StringUtils.isNotBlank(orderInfo.getSfcf())) { - if (!OrderInfoEnum.INTERFACE_SFCF_0.getKey().equals(orderInfo.getSfcf()) && !OrderInfoEnum.INTERFACE_SFCF_1.getKey().equals(orderInfo.getSfcf())) { - resultMapList.add(generateErrorMap(OrderInfoContentEnum.CHECK_ISS7PRI_107074)); - } - if (OrderInfoEnum.INTERFACE_SFCF_1.getKey().equals(orderInfo.getSfcf())) { - if (OrderInfoEnum.INVOICE_BILLING_TYPE_1.getKey().equals(orderInfo.getKplx())) { - resultMapList.add(generateErrorMap(OrderInfoContentEnum.CHECK_ISS7PRI_107074A)); - } - if (OrderInfoEnum.ORDER_INVOICE_TYPE_42.getKey().equals(orderInfo.getFpzlDm()) || - OrderInfoEnum.ORDER_INVOICE_TYPE_12.getKey().equals(orderInfo.getFpzlDm()) || - OrderInfoEnum.ORDER_INVOICE_TYPE_005.getKey().equals(orderInfo.getFpzlDm()) || - OrderInfoEnum.ORDER_INVOICE_TYPE_006.getKey().equals(orderInfo.getFpzlDm())) { - resultMapList.add(generateErrorMap(OrderInfoContentEnum.CHECK_ISS7PRI_107074B)); - } - if (OrderInfoEnum.ORDER_INVOICE_TYPE_0.getKey().equals(orderInfo.getFpzlDm()) && - (OrderInfoEnum.QDBZ_CODE_5.getKey().equals(orderInfo.getQdBz()) || - OrderInfoEnum.QDBZ_CODE_6.getKey().equals(orderInfo.getQdBz()))) { - resultMapList.add(generateErrorMap(OrderInfoContentEnum.CHECK_ISS7PRI_107074C)); - } - } - } - - - /* - * 订单主体-退回单号 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107069, orderInfo.getThdh()); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - - boolean sgbz = OrderInfoEnum.QDBZ_CODE_2.getKey().equals(orderInfo.getQdBz()) || OrderInfoEnum.QDBZ_CODE_3.getKey().equals(orderInfo.getQdBz()); - - /* - * 金额关系合法性校验 - */ - if (!StringUtils.isBlank(orderInfo.getKphjje()) && !StringUtils.isBlank(orderInfo.getHjse()) && !StringUtils.isBlank(orderInfo.getHjbhsje())) { - - String differ = DecimalCalculateUtil.bigDecimalSub(orderInfo.getKphjje(), DecimalCalculateUtil.bigDecimalAdd(orderInfo.getHjbhsje(), orderInfo.getHjse())); - //如果误差值等于含税金额,说明是含税金额不作校验,如果是尾插不等于0,校验返回 - if (DecimalCalculateUtil.decimalFormatToString(orderInfo.getKphjje(), ConfigureConstant.INT_2).equals(DecimalCalculateUtil.decimalFormatToString(differ, ConfigureConstant.INT_2))) { - - } else if (ConfigureConstant.STRING_000.equals(differ)) { - checkResultMap = CheckParamUtil.generateErrorMap(orderInfo.getFpqqlsh(), "", OrderInfoContentEnum.INVOICE_JSHJ_ERROR); - resultMapList.add(checkResultMap); - } - - } - /* - * 订单主体-企业类型 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107304, orderInfo.getQylx()); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - - String qylx = orderInfo.getQylx(); - - /* - * 明细行数据与发票头数据进行校验 - */ - BigDecimal kphjje = new BigDecimal(orderInfo.getKphjje()); - BigDecimal sumKphjje = BigDecimal.ZERO; - // 更新是否折扣行标志(连续折扣行标记) - boolean upIsZkh = false; - String sl = ""; - String zzstsgl = ""; - String containZzstsgl = ""; - OrderInfoContentEnum slOrderInfoContentEnum = OrderInfoContentEnum.CHECK_ISS7PRI_107087; - boolean slError = false; - Set ggxhSet = new HashSet<>(); - - for (int j = 0; j < orderItemInfos.size(); j++) { - - String errorMsg = "发票请求流水号:" + orderInfo.getFpqqlsh() + ",第" + (j + 1) + "行,"; - OrderItemInfo orderItemInfo = orderItemInfos.get(j); - ggxhSet.add(orderItemInfo.getGgxh()); - - List> checkItemResultMapList = checkCommonOrderItems(orderItemInfo, orderItemInfos.size(), orderInfo.getKplx(), orderInfo.getFpzlDm(), orderInfo.getQdBz(), qylx, ggxhSet, sgbz, j, terminalCode); - - String formatSl = CommonUtils.formatSl(orderItemInfo.getSl()); - if (ConfigureConstant.STRING_JYZS5_1.equals(orderItemInfo.getZzstsgl())) { - containZzstsgl = ConfigureConstant.STRING_JYZS5_1; - } - //取第一行税率 - if (j == 0) { - sl = formatSl; - zzstsgl = StringUtils.isNotBlank(orderItemInfo.getZzstsgl()) ? orderItemInfo.getZzstsgl() : ""; - } - //判断每行税率是否一致,并且等于0.0015, - if (ConfigureConstant.STRING_0015.equals(sl) || ConfigureConstant.STRING_0015.equals(formatSl)) { - if (!sl.equals(formatSl) || !zzstsgl.equals(StringUtils.isNotBlank(orderItemInfo.getZzstsgl()) ? orderItemInfo.getZzstsgl() : "")) { - //返回错误 - if (ConfigureConstant.STRING_JYZS5_1.equals(containZzstsgl)) { - slOrderInfoContentEnum = OrderInfoContentEnum.CHECK_ISS7PRI_107088; - } else { - slOrderInfoContentEnum = OrderInfoContentEnum.CHECK_ISS7PRI_107087; - } - slError = true; - break; - } - - } - - if (ObjectUtil.isNotEmpty(checkItemResultMapList) && checkItemResultMapList.size() > 0) { - resultMapList.addAll(checkItemResultMapList); - return resultMapList; - } else { - - if (OrderInfoEnum.HSBZ_1.getKey().equals(orderItemInfo.getHsbz())) { - sumKphjje = sumKphjje.add(new BigDecimal(orderItemInfo.getXmje())); - } else { - sumKphjje = sumKphjje.add(new BigDecimal(orderItemInfo.getXmje())).add(new BigDecimal(orderItemInfo.getSe())); - } - /* - * 对发票行性质进行校验 - */ - // 是折扣行(根据发票行性质判断是否是折扣行) - if (OrderInfoEnum.FPHXZ_CODE_1.getKey().equals(orderItemInfo.getFphxz())) { - - //判断红票和蓝票的折扣行没有折扣率的,如果以折扣开头的进行校验 - /* - * 折扣行格式校验: - * 1.如果以折扣开头的项目名称中,不包含英文()和%的返回折扣行格式错误(2016年7月11日 15:14:43 版本升级后不存在这个校验) - * 2.括号内去掉百分后后值为空或者折扣率小于0%或者是大与100%,需抛异常(2016年7月11日 15:14:43 版本升级后不存在这个校验) - * 3.折扣行数没有行数或折扣行数小于等于1,需抛异常(2016年7月11日 15:14:43 版本升级后不存在这个校验) - * 4.单独一个折扣的折扣行,如果折扣两个字和后面的(之间有值,抛异常(2016年7月11日 15:14:43 版本升级后不存在这个校验) - */ - - //折扣行不能为第一行或不能连续两个折扣行! - if (j == 0 || upIsZkh) { - checkResultMap = CheckParamUtil.generateErrorMap(orderInfo.getFpqqlsh(), errorMsg, OrderInfoContentEnum.INVOICE_XMMX_ZKH_ERROR); - resultMapList.add(checkResultMap); - continue; - } - - //如果走到这里说明第一行不是折扣行,当前行是折扣行需要判断上一行是否为被折扣行,如果不是,返回错误 - if (!OrderInfoEnum.FPHXZ_CODE_2.getKey().equals(orderItemInfos.get(j - 1).getFphxz()) || OrderInfoEnum.QD_FPHXZ_CODE_02.getKey().equals(orderItemInfos.get(j - 1).getFphxz())) { - //对于蓝字发票,金额为负的商品名称必须与与之相邻的上一行的商品名称相同 - checkResultMap = CheckParamUtil.generateErrorMap(orderInfo.getFpqqlsh(), errorMsg, OrderInfoContentEnum.INVOICE_XMMX_ZKH_ERROR); - resultMapList.add(checkResultMap); - } - /* - * ====校验“被折扣商品行金额” 乘以 “折扣率” 是否等于 “折扣额”============= - * 逻辑: - * 1、如果第i行商品行是折扣行:商品名称判断是单行折扣还是多行折扣 - * 1.1 、单行折扣:(折扣额) /(第i-1行“商品金额”),如果计算结果和折扣率不相等,返回错误信息。(版本升级后不存在多行折扣,只坐单行折扣校验 2016年7月11日 15:33:43) - * 1.2、 多行折扣:(折扣额) /(第i-n行到i-1行“商品金额”之和),如果计算结果和折扣率不相等,返回错误信息。(版本升级后不存在多行折扣,只坐单行折扣校验 2016年7月11日 15:33:52) - */ - - // 被折扣行金额加税额之和 - String bzkzjeTotal = ConfigureConstant.STRING_000; - if (StringUtils.isBlank(orderItemInfo.getSe())) { - orderItemInfo.setSe(ConfigureConstant.STRING_000); - } - String zke = DecimalCalculateUtil.bigDecimalAdd(orderItemInfo.getXmje(), orderItemInfo.getSe()); - - if ((orderItemInfo.getXmmc()).equals(orderItemInfos.get(j - 1).getXmmc())) { - // 单行折扣的类型 - if (StringUtils.isBlank(orderItemInfos.get(j - 1).getSe())) { - orderItemInfos.get(j - 1).setSe(ConfigureConstant.STRING_000); - } - //获取被折扣行的不含税金额加上税额,即反推含税金额 - bzkzjeTotal = DecimalCalculateUtil.bigDecimalAdd(orderItemInfos.get(j - 1).getXmje(), orderItemInfos.get(j - 1).getSe()); - - //折扣校验 - if (DecimalCalculateUtil.stringCompareAbs(bzkzjeTotal, zke) < 0) { - checkResultMap = CheckParamUtil.generateErrorMap(orderInfo.getFpqqlsh(), errorMsg, OrderInfoContentEnum.INVOICE_XMMX_ZKEANDBZKE_ERROR); - resultMapList.add(checkResultMap); - } - - - /* - * 单行折扣,校验 税率是否相等 - */ - - //被折扣行税率 - String bzkhsl = orderItemInfos.get(j - 1).getSl(); - //折扣行税率 - String zkhsl = orderItemInfo.getSl(); - //判断折扣行税率与被折扣行税率是否一致 - if (!bzkhsl.equals(zkhsl)) { - checkResultMap = CheckParamUtil.generateErrorMap(orderInfo.getFpqqlsh(), errorMsg, OrderInfoContentEnum.INVOICE_XMMX_ZKSL_ERROR); - resultMapList.add(checkResultMap); - } - - } - - /* - * 折扣行项目数量必须为空 - */ - if (StringUtils.isNotBlank(orderItemInfo.getXmsl())) { - checkResultMap = CheckParamUtil.generateErrorMap(orderInfo.getFpqqlsh(), errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107084); - resultMapList.add(checkResultMap); - } - - /* - * 折扣行项目数量必须为空 - */ - if (StringUtils.isNotBlank(orderItemInfo.getGgxh())) { - checkResultMap = CheckParamUtil.generateErrorMap(orderInfo.getFpqqlsh(), errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107085); - resultMapList.add(checkResultMap); - } - - /* - * 折扣行项目数量必须为空 - */ - if (StringUtils.isNotBlank(orderItemInfo.getXmdw())) { - checkResultMap = CheckParamUtil.generateErrorMap(orderInfo.getFpqqlsh(), errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107086); - resultMapList.add(checkResultMap); - } - - - upIsZkh = true; - } else { - // 非折扣行 - upIsZkh = false; - - //只有一个商品行时,发票行性质为必须为0 - if (1 == orderItemInfos.size() && (OrderInfoEnum.FPHXZ_CODE_2.getKey().equals(orderItemInfo.getFphxz()) || OrderInfoEnum.QD_FPHXZ_CODE_02.getKey().equals(orderItemInfo.getFphxz()))) { - checkResultMap = CheckParamUtil.generateErrorMap(orderInfo.getFpqqlsh(), errorMsg, OrderInfoContentEnum.INVOICE_XMMX_ONE_FPHXZ_ERROR); - resultMapList.add(checkResultMap); - } - - //项目明细最后一行的FPHXZ发票行性质不能为2!2016年12月9日16:40:00 阳开国 - if ((j == (orderItemInfos.size() - 1)) && (OrderInfoEnum.FPHXZ_CODE_2.getKey().equals(orderItemInfo.getFphxz()) || OrderInfoEnum.QD_FPHXZ_CODE_02.getKey().equals(orderItemInfo.getFphxz()))) { - checkResultMap = CheckParamUtil.generateErrorMap(orderInfo.getFpqqlsh(), errorMsg, OrderInfoContentEnum.INVOICE_XMMX_LAST_FPHXZ_ERROR); - resultMapList.add(checkResultMap); - } - - // 蓝票数据,非最后一行数据,如果发票行性质为被折扣行,那么下一行必须为折扣行 - if (OrderInfoEnum.ORDER_BILLING_INVOICE_TYPE_0.getKey().equals(orderInfo.getKplx()) && (OrderInfoEnum.FPHXZ_CODE_2.getKey().equals(orderItemInfo.getFphxz()) || OrderInfoEnum.QD_FPHXZ_CODE_02.getKey().equals(orderItemInfo.getFphxz())) && j != (orderItemInfos.size() - 1)) { - if (!OrderInfoEnum.FPHXZ_CODE_1.getKey().equals(orderItemInfos.get(j + 1).getFphxz())) { - checkResultMap = CheckParamUtil.generateErrorMap(orderInfo.getFpqqlsh(), errorMsg, OrderInfoContentEnum.INVOICE_XMMX_LAST_FPHXZ_ERROR); - resultMapList.add(checkResultMap); - } - } - - /* - * 被折扣行和正常商品行 - * 蓝票单价数量,金额不等小于等于0 - */ - if (OrderInfoEnum.ORDER_BILLING_INVOICE_TYPE_0.getKey().equals(orderInfo.getKplx())) { - // 非折扣行蓝票处理,明细行的金额都不能小于等于0 - if (Double.parseDouble(orderItemInfo.getXmje()) <= 0) { - checkResultMap = CheckParamUtil.generateErrorMap(orderInfo.getFpqqlsh(), errorMsg, OrderInfoContentEnum.INVOICE_XMMX_THAN_ZERO_ERROR); - resultMapList.add(checkResultMap); - } - - } else if (OrderInfoEnum.ORDER_BILLING_INVOICE_TYPE_1.getKey().equals(orderInfo.getKplx())) { - // 非折扣行红票处理,明细行的金额不能大于等于0 - if (Double.parseDouble(orderItemInfo.getXmje()) >= 0) { - checkResultMap = CheckParamUtil.generateErrorMap(orderInfo.getFpqqlsh(), errorMsg, OrderInfoContentEnum.INVOICE_XMMX_LESS_ZERO_ERROR); - resultMapList.add(checkResultMap); - } - } - } - } - - - } - - - if (kphjje.subtract(sumKphjje).abs().compareTo(BigDecimal.ZERO) > 0) { - - resultMapList.add(generateErrorMap(OrderInfoContentEnum.PRICE_TAX_SEPARATION_NE_KPHJJE)); - } - - if (slError) { - - resultMapList.add(generateErrorMap(slOrderInfoContentEnum)); - } - - /* - * 校验机动车 - */ - if (OrderInfoEnum.ORDER_INVOICE_TYPE_12.getKey().equals(orderInfo.getFpzlDm())) { - resultMapList.addAll(checkOrderInfoJdc(commonOrderInfo.getOrderInfoJdc(), terminalCode)); - } - - /* - * 校验二手车 - */ - if (OrderInfoEnum.ORDER_INVOICE_TYPE_42.getKey().equals(orderInfo.getFpzlDm())) { - resultMapList.addAll(checkOrderInfoEsc(commonOrderInfo.getOrderInfoEsc(), terminalCode)); - } - - return resultMapList; - } - - /** - * 校验机动车订单信息 - * - * @param orderInfoJdc - * @param terminalCode - * @return - */ - private static List> checkOrderInfoJdc(OrderInfoJdc orderInfoJdc, String terminalCode) { - List> resultMapList = new ArrayList<>(); - // 声明校验结果map - Map checkResultMap = new HashMap<>(5); - checkResultMap.put(OrderManagementConstant.ERRORCODE, OrderInfoContentEnum.SUCCESS.getKey()); - - if (ObjectUtil.isEmpty(orderInfoJdc)) { - resultMapList.add(generateErrorMap(OrderInfoContentEnum.HANDLE_ISSUE_202011)); - return resultMapList; - } - - - /* - * 机动车订单主体-车辆类型 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109001, orderInfoJdc.getCllx(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 机动车订单主体-厂牌型号 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109002, orderInfoJdc.getCpxh(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 机动车订单主体-产地 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109003, orderInfoJdc.getClcd(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 机动车订单主体-合格证号 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109004, orderInfoJdc.getHgzh(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 机动车订单主体-进口证明书号 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109005, orderInfoJdc.getJkzmsh(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 机动车订单主体-商检单号 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109006, orderInfoJdc.getSjdh(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 机动车订单主体-发动机号码 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109007, orderInfoJdc.getFdjhm(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 机动车订单主体-车辆识别单号 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109008, orderInfoJdc.getClsbdh(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 机动车订单主体-完税凭证号码 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109009, orderInfoJdc.getWspzhm(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 机动车订单主体-吨位 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109010, orderInfoJdc.getDw(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 机动车订单主体-限乘人数 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109011, orderInfoJdc.getXcrs(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 机动车订单主体-厂家信息 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109012, orderInfoJdc.getCjxx(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 机动车订单主体-身份证号码/组织机构代码 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109013, orderInfoJdc.getZzjgdm(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 机动车订单主体-备用字段1 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109014, orderInfoJdc.getByzd1(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 机动车订单主体-备用字段2 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109015, orderInfoJdc.getByzd2(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 机动车订单主体-备用字段3 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109016, orderInfoJdc.getByzd3(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - - return resultMapList; - } - - - /** - * 校验二手车订单信息 - * - * @param orderInfoEsc - * @param terminalCode - * @return - */ - private static List> checkOrderInfoEsc(OrderInfoEsc orderInfoEsc, String terminalCode) { - List> resultMapList = new ArrayList<>(); - // 声明校验结果map - Map checkResultMap = new HashMap<>(5); - checkResultMap.put(OrderManagementConstant.ERRORCODE, OrderInfoContentEnum.SUCCESS.getKey()); - - if (ObjectUtil.isEmpty(orderInfoEsc)) { - resultMapList.add(generateErrorMap(OrderInfoContentEnum.HANDLE_ISSUE_202012)); - return resultMapList; - } - - - /* - * 二手车订单主体-开票方类型 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109101, orderInfoEsc.getKpflx(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - if (!OrderInfoEnum.ESC_KPFLX_1.getKey().equals(orderInfoEsc.getKpflx()) && !OrderInfoEnum.ESC_KPFLX_2.getKey().equals(orderInfoEsc.getKpflx()) && !OrderInfoEnum.ESC_KPFLX_3.getKey().equals(orderInfoEsc.getKpflx())) { - resultMapList.add(generateErrorMap(OrderInfoContentEnum.CHECK_ISS7PRI_109122)); - } - - /* - * 二手车订单主体-车牌照号 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109102, orderInfoEsc.getCpzh(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 二手车订单主体-登记证号 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109103, orderInfoEsc.getDjzh(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 二手车订单主体-车辆类型 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109104, orderInfoEsc.getCllx(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 二手车订单主体-车架号/车辆识别代码 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109105, orderInfoEsc.getClsbdm(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 二手车订单主体-厂牌型号 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109106, orderInfoEsc.getCpxh(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 二手车订单主体-转入地车辆管理所名称 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109107, orderInfoEsc.getZrdclglsmc(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 根据开票方类型判断是否必填 - * 开票方类型为1或2时,经营和拍卖相关数据必填 - * 开票方类型为3时,市场必填 - */ - - if (OrderInfoEnum.ESC_KPFLX_1.getKey().equals(orderInfoEsc.getKpflx()) || OrderInfoEnum.ESC_KPFLX_2.getKey().equals(orderInfoEsc.getKpflx())) { - /* - * 二手车订单主体-经营、拍卖单位名称 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109108, orderInfoEsc.getJypmdwMc(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 二手车订单主体-经营、拍卖单位地址 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109109, orderInfoEsc.getJypmdwDz(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 二手车订单主体-经营、拍卖单位税号 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109110, orderInfoEsc.getJypmdwSh(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 二手车订单主体-经营、拍卖单位银行账号 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109111, orderInfoEsc.getJypmdwYhzh(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 二手车订单主体-经营、拍卖单位电话 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109112, orderInfoEsc.getJypmdwDh(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - } else { - /* - * 二手车订单主体-经营、拍卖单位名称 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109108A, orderInfoEsc.getJypmdwMc(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 二手车订单主体-经营、拍卖单位地址 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109109A, orderInfoEsc.getJypmdwDz(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 二手车订单主体-经营、拍卖单位税号 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109110A, orderInfoEsc.getJypmdwSh(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 二手车订单主体-经营、拍卖单位银行账号 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109111A, orderInfoEsc.getJypmdwYhzh(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 二手车订单主体-经营、拍卖单位电话 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109112A, orderInfoEsc.getJypmdwDh(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - } - - - if (OrderInfoEnum.ESC_KPFLX_3.getKey().equals(orderInfoEsc.getKpflx())) { - /* - * 二手车订单主体-二手车市场名称 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109113, orderInfoEsc.getScMc(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 二手车订单主体-二手车市场税号 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109114, orderInfoEsc.getScSh(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 二手车订单主体-二手车市场地址 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109115, orderInfoEsc.getScDz(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 二手车订单主体-二手车市场银行账号 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109116, orderInfoEsc.getScYhzh(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 二手车订单主体-二手车市场电话 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109117, orderInfoEsc.getScDh(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 二手车订单主体-二手车销方税号 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109123, orderInfoEsc.getEscXhfdm(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 二手车订单主体-二手车销方名称 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109124, orderInfoEsc.getEscXhfmc(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 二手车订单主体-二手车销方地址 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109125, orderInfoEsc.getEscXhfdz(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 二手车订单主体-二手车销方电话 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109126, orderInfoEsc.getEscXhfdh(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - } else { - /* - * 二手车订单主体-二手车市场名称 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109113A, orderInfoEsc.getScMc(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 二手车订单主体-二手车市场税号 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109114A, orderInfoEsc.getScSh(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 二手车订单主体-二手车市场地址 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109115A, orderInfoEsc.getScDz(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 二手车订单主体-二手车市场银行账号 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109116A, orderInfoEsc.getScYhzh(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 二手车订单主体-二手车市场电话 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109117A, orderInfoEsc.getScDh(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 二手车订单主体-二手车销方税号 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109123A, orderInfoEsc.getEscXhfdm(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 二手车订单主体-二手车销方名称 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109124A, orderInfoEsc.getEscXhfmc(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 二手车订单主体-二手车销方地址 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109125A, orderInfoEsc.getEscXhfdz(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 二手车订单主体-二手车销方电话 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109126A, orderInfoEsc.getEscXhfdh(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - } - - - /* - * 二手车订单主体-车购税完税凭证号码 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109118, orderInfoEsc.getScCgswspzhm(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 二手车订单主体-备用字段1 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109119, orderInfoEsc.getByzd1(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 二手车订单主体-备用字段2 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109120, orderInfoEsc.getByzd2(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 二手车订单主体-备用字段3 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_109121, orderInfoEsc.getByzd3(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - - return resultMapList; - } - - - private static Map checkGhfParam(OrderInfo orderInfo, String kpfs, String isEdit, String terminalCode) { - - Map checkResultMap = new HashMap<>(10); - checkResultMap.put(OrderManagementConstant.ERRORCODE, OrderInfoContentEnum.SUCCESS.getKey()); - /* - * 新增购买方ID,ID非必填,如果填写ID需要保证购方税号,名称,地址,电话,银行,帐号等非必填. - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107286, orderInfo.getGhfId()); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - return checkResultMap; - } - - /* - * 购货方名称,购货方税号,购货方地址,购货方电话,购货方银行,购货方帐号先按照非必填的进行校验 - */ - - /* - * 订单主体-购买方纳税人名称 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107288, orderInfo.getGhfMc(), terminalCode); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - return checkResultMap; - } - - /* - * 订单主体-购买方纳税人识别号 - */ - checkResultMap = CheckParamUtil.checkNsrsbhParam(OrderInfoContentEnum.CHECK_ISS7PRI_107031, - OrderInfoContentEnum.CHECK_ISS7PRI_107023, orderInfo.getGhfNsrsbh()); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - return checkResultMap; - } - - /* - * 订单主体-购买方地址 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107289, orderInfo.getGhfDz()); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - return checkResultMap; - } - - /* - * 订单主体-购买方电话 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107290, orderInfo.getGhfDh()); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - return checkResultMap; - } - - /* - * 订单主体-购买方银行 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107291, orderInfo.getGhfYh()); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - return checkResultMap; - } - - /* - * 订单主体-购买方帐号 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107292, orderInfo.getGhfZh()); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - return checkResultMap; - } - - /* - * 订单主体-购货方地址和电话总长度 - * 由于企业区分不开银行帐号,所以校验支持地址和电话总长度100,默认应该是85 - */ - String ghfdzdh = (StringUtils.isBlank(orderInfo.getGhfDz()) ? "" : orderInfo.getGhfDz()) + (StringUtils.isBlank(orderInfo.getGhfDh()) ? "" : orderInfo.getGhfDh()); - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107269, ghfdzdh); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - return checkResultMap; - } - - /* - * 订单主体-购货方银行和帐号总长度 - * 由于企业区分不开银行帐号,所以校验支持银行帐号总长度100,默认应该是85 - */ - String ghfyhzh = (StringUtils.isBlank(orderInfo.getGhfYh()) ? "" : orderInfo.getGhfYh()) + (StringUtils.isBlank(orderInfo.getGhfZh()) ? "" : orderInfo.getGhfZh()); - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107270, ghfyhzh); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - return checkResultMap; - } - - //如果是专票并且购方id为空,购货方地址,购货方银行为必填,购货方名称,购货方税号为必填,同时校验税号合法性 - boolean zpGf = StringUtils.isBlank(orderInfo.getGhfId()) && (OrderInfoEnum.ORDER_INVOICE_TYPE_0.getKey().equals(orderInfo.getFpzlDm()) || OrderInfoEnum.ORDER_INVOICE_TYPE_52.getKey().equals(orderInfo.getFpzlDm())); - if (zpGf) { - - if (OrderInfoEnum.INVOICE_BILLING_TYPE_0.getKey().equals(orderInfo.getKplx())) { - /* - * 专票-购买方地址 - * 如果为蓝票时进行校验 - * 由于企业区分不开地址电话,所以校验支持地址电话总长度100,默认应该是80 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107265, orderInfo.getGhfDz()); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - return checkResultMap; - } - - /* - * 专票-购买方银行 - * 如果为蓝票时进行校验 - * 由于企业区分不开银行帐号,所以校验支持银行帐号总长度100 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107266, orderInfo.getGhfYh()); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - return checkResultMap; - } - } - - - /* - * 订单主体-购买方名称 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107032, orderInfo.getGhfMc()); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - return checkResultMap; - } - - /* - * 订单主体-购买方纳税人识别号 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107027, orderInfo.getGhfNsrsbh()); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - return checkResultMap; - } - - - } - - /* - * 如果开票方式为自动开票校验数据必填 - * 开票方式0为自动开票 - * - */ - if (OrderInfoEnum.ORDER_REQUEST_TYPE_0.getKey().equals(kpfs)) { - - if (StringUtils.isBlank(orderInfo.getGhfId())) { - - - /* - * 订单主体-购买方企业类型 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107035, orderInfo.getGhfQylx()); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - return checkResultMap; - } - - /* - * 订单主体-购买方名称 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107032, orderInfo.getGhfMc()); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - return checkResultMap; - } - } - - } - - if (StringUtils.isNotBlank(orderInfo.getGhfQylx())) { - - //订单主体-企业类型合法性(企业类型只能为:01企业,02机关事业单位,03个人,04其他) - if (!OrderInfoEnum.GHF_QYLX_01.getKey().equals(orderInfo.getGhfQylx()) - && !OrderInfoEnum.GHF_QYLX_02.getKey().equals(orderInfo.getGhfQylx()) - && !OrderInfoEnum.GHF_QYLX_03.getKey().equals(orderInfo.getGhfQylx()) - && !OrderInfoEnum.GHF_QYLX_04.getKey().equals(orderInfo.getGhfQylx())) { - return generateErrorMap(OrderInfoContentEnum.CHECK_ISS7PRI_107036); - } - - /* - * 原订单中购方类型是“01企业”时,若编辑订单后将购方税号置空,允许提交开票。在保存订单提交开票时,不校验购方税号是否为空 - * 若未编辑订单,则需要保证购方税号非空并且正确 - */ - if (OrderInfoEnum.GHF_QYLX_01.getKey().equals(orderInfo.getGhfQylx())) { - if (StringUtils.isBlank(isEdit)) { - //未编辑状态 - checkResultMap = CheckParamUtil.checkNsrsbhParam(OrderInfoContentEnum.CHECK_ISS7PRI_107027, - OrderInfoContentEnum.CHECK_ISS7PRI_107023, orderInfo.getGhfNsrsbh()); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - return checkResultMap; - } - } else { - //编辑状态 - //原订单中购方类型是“01企业”,购方税号为空时,编辑订单后传给底层接口的购方类型传“04其他” - if (StringUtils.isBlank(orderInfo.getGhfNsrsbh())) { - orderInfo.setGhfQylx(OrderInfoEnum.GHF_QYLX_04.getKey()); - } - } - } - } - - - /* - * 订单主体-购买方省份 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107037, orderInfo.getGhfSf()); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - return checkResultMap; - } - - /* - * 订单主体-购买方手机 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107040, orderInfo.getGhfSj()); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - return checkResultMap; - } - - /* - * 订单主体-购买方邮箱 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107042, orderInfo.getGhfEmail()); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - return checkResultMap; - } - /* - * 如果税控设备为U180,并且是电票,需要校验邮箱必填 - */ - boolean check = (OrderInfoEnum.TAX_EQUIPMENT_U180_JSP.getKey().equals(terminalCode) || OrderInfoEnum.TAX_EQUIPMENT_U180_UKEY.getKey().equals(terminalCode)) && (OrderInfoEnum.ORDER_INVOICE_TYPE_51.getKey().equals(orderInfo.getFpzlDm()) || OrderInfoEnum.ORDER_INVOICE_TYPE_52.getKey().equals(orderInfo.getFpzlDm())) && StringUtils.isEmpty(orderInfo.getGhfEmail()); - if (check) { - return generateErrorMap(OrderInfoContentEnum.CHECK_ISS7PRI_107042A); - } - - return checkResultMap; - } - - /** - * 校验请求订单批次数据信息中的订单明细信息正确性与合法性 - * - * @param orderItemInfo - * @param itemLength - * @param kplx - * @param fpzldm - * @param qdbz - * @param qylx - * @param ggxhSet - * @param sgfp - * @param sphh - * @param terminalCode - * @return - */ - private static List> checkCommonOrderItems(OrderItemInfo orderItemInfo, int itemLength, String kplx, String fpzldm, String qdbz, String qylx, Set ggxhSet, boolean sgfp, int sphh, String terminalCode) { - List> resultMapList = new ArrayList<>(); - Map checkResultMap = new HashMap<>(5); - checkResultMap.put(OrderManagementConstant.ERRORCODE, OrderInfoContentEnum.SUCCESS.getKey()); - String errorMsg = "第" + (sphh + 1) + "行,"; - - /* - * 校验包含金额的数据格式问题,如果格式不合法赋值为空,继续后续操作 - */ - //校验单价 - if (StringUtils.isNotBlank(orderItemInfo.getXmdj())) { - //判断小数点后位数,默认为8位,如果为全电,为15位 - String patternXmdj = PatternConstant.PATTERN_XMDJ; - if(CommonUtils.judgeIsQdfp("",fpzldm)){ - patternXmdj = PatternConstant.PATTERN_QD_XMDJ; - } - if (!orderItemInfo.getXmdj().matches(patternXmdj)) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107152)); - return resultMapList; - } - } - //校验数量 - if (StringUtils.isNotBlank(orderItemInfo.getXmsl())) { - //判断小数点后位数,默认为8位,如果为全电,为15位 - String patternXmsl = PatternConstant.PATTERN_XMSL; - if(CommonUtils.judgeIsQdfp("",fpzldm)){ - patternXmsl = PatternConstant.PATTERN_QD_XMSL; - } - if (!orderItemInfo.getXmsl().matches(patternXmsl)) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107153)); - return resultMapList; - } - } - //校验金额 - if (StringUtils.isNotBlank(orderItemInfo.getXmje())) { - if (!orderItemInfo.getXmje().matches(PatternConstant.PATTERN_XMJE)) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107160)); - return resultMapList; - } - } - //校验税额 - if (StringUtils.isNotBlank(orderItemInfo.getSe())) { - if (!orderItemInfo.getSe().matches(PatternConstant.PATTERN_XMJE)) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107161)); - return resultMapList; - } - } - //校验扣除额 - if (StringUtils.isNotBlank(orderItemInfo.getKce())) { - if (!orderItemInfo.getKce().matches(PatternConstant.PATTERN_XMJE)) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107167)); - return resultMapList; - } - } - //校验税率 - if (StringUtils.isNotBlank(orderItemInfo.getSl())) { - if (!orderItemInfo.getSl().matches(PatternConstant.PATTERN_SL)) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107168)); - return resultMapList; - } - } - - /* - * 订单明细信息-商品行序号 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107058, orderItemInfo.getSphxh(), sphh); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 订单明细信息-规格型号 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107059, orderItemInfo.getGgxh(), sphh); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 订单明细信息-发票行性质 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107055, orderItemInfo.getFphxz(), sphh); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - //发票行性质只能为:0正常行、1折扣行、2被折扣行、6清单红字发票 - if (StringUtils.isNotBlank(orderItemInfo.getFphxz()) - && !OrderInfoEnum.FPHXZ_CODE_0.getKey().equals(orderItemInfo.getFphxz()) - && !OrderInfoEnum.FPHXZ_CODE_1.getKey().equals(orderItemInfo.getFphxz()) - && !OrderInfoEnum.FPHXZ_CODE_2.getKey().equals(orderItemInfo.getFphxz()) - && !OrderInfoEnum.QD_FPHXZ_CODE_00.getKey().equals(orderItemInfo.getFphxz()) - && !OrderInfoEnum.QD_FPHXZ_CODE_01.getKey().equals(orderItemInfo.getFphxz()) - && !OrderInfoEnum.QD_FPHXZ_CODE_02.getKey().equals(orderItemInfo.getFphxz()) - && !OrderInfoEnum.FPHXZ_CODE_6.getKey().equals(orderItemInfo.getFphxz())) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107056)); - } - //发票行性质为清单红票时处理逻辑. - /* - * 清单红票时开票类型必须为红票; - * 2.清单红票时,明细行数量不能大于1 - * 3.清单红票时,规格型号,单位,单价,数量必须为空. - */ - if (OrderInfoEnum.FPHXZ_CODE_6.getKey().equals(orderItemInfo.getFphxz())) { - if (OrderInfoEnum.ORDER_BILLING_INVOICE_TYPE_1.getKey().equals(kplx)) { - if (itemLength > 1) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107147)); - } - if (!StringUtils.isBlank(orderItemInfo.getGgxh()) || !StringUtils.isBlank(orderItemInfo.getXmdw()) || !StringUtils.isBlank(orderItemInfo.getXmsl()) || !StringUtils.isBlank(orderItemInfo.getXmdj())) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107150)); - } - } else { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107148)); - } - } else { - /* - * 非清单红票时: - * 1.备用字段如果为1,商品数量不能为空或者为0 - * 2.备用字段如果为1,商品单价不能为空或者为0 - * 3.商品编码必填 - * 4.税率必填 - * 5.收购发票,税率和税额不能为空 - */ - if (ConfigureConstant.STRING_1.equals(orderItemInfo.getByzd1())) { - if (StringUtils.isBlank(orderItemInfo.getXmsl()) || ConfigureConstant.STRING_0.equals(orderItemInfo.getXmsl())) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107151)); - } else { - if (DecimalCalculateUtil.stringCompare(orderItemInfo.getXmsl(),ConfigureConstant.STRING_000) == 0) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107151)); - } - - if (StringUtils.isBlank(orderItemInfo.getXmdj()) || ConfigureConstant.STRING_0.equals(orderItemInfo.getXmdj())) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107144)); - } - if (DecimalCalculateUtil.stringCompare(orderItemInfo.getXmdj(),ConfigureConstant.STRING_000) == 0) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107144)); - } - } - - } - //商品编码非必传 - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107100, orderItemInfo.getSpbm(), sphh); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - //税率必传 - if (StringUtils.isBlank(orderItemInfo.getSl())) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107146)); - } - //收购发票 - if (sgfp) { - if (StringUtils.isNotBlank(orderItemInfo.getSl())) { - if (!ConfigureConstant.STRING_0.equals(orderItemInfo.getSl()) && !ConfigureConstant.STRING_000.equals(orderItemInfo.getSl())) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107157)); - } - } - if (StringUtils.isNotBlank(orderItemInfo.getSe())) { - if (!ConfigureConstant.STRING_0.equals(orderItemInfo.getSe()) && !ConfigureConstant.STRING_000.equals(orderItemInfo.getSe()) && !ConfigureConstant.STRING_000_.equals(orderItemInfo.getSe())) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107157)); - } - } - - //清单标志为收购发票时,发票种类只能是专票或者是电票 - if (!OrderInfoEnum.ORDER_INVOICE_TYPE_2.getKey().equals(fpzldm) && !OrderInfoEnum.ORDER_INVOICE_TYPE_51.getKey().equals(fpzldm) && !OrderInfoEnum.ORDER_INVOICE_TYPE_52.getKey().equals(fpzldm)) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107158)); - } - } - } - - - /* - * 订单明细信息-项目名称 - */ - if (OrderInfoEnum.ORDER_INVOICE_TYPE_42.getKey().equals(fpzldm) || OrderInfoEnum.ORDER_INVOICE_TYPE_12.getKey().equals(fpzldm)) { - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107057A, orderItemInfo.getXmmc(), terminalCode, sphh); - } else { - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107057, orderItemInfo.getXmmc(), terminalCode, sphh); - } - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - - /* - * 订单明细信息-项目单位 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107060, orderItemInfo.getXmdw(), terminalCode, sphh); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 订单明细信息-扣除额 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107061, orderItemInfo.getKce(), sphh); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - //合计税额为不为0时,需要保证税额为小数点后两位 - if (StringUtils.isNotBlank(orderItemInfo.getKce()) && ConfigureConstant.INT_2 != ValidateUtil.checkNumberic(orderItemInfo.getKce())) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107154)); - } - //扣除额数据明细行不能大于1条 - if (StringUtils.isNotEmpty(orderItemInfo.getKce()) && itemLength > ConfigureConstant.INT_1) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107155)); - } - - //扣除额发票不支持机动车和二手车,和机动车专票 - if (StringUtils.isNotEmpty(orderItemInfo.getKce())) { - if (OrderInfoEnum.ORDER_INVOICE_TYPE_42.getKey().equals(fpzldm) && OrderInfoEnum.ORDER_INVOICE_TYPE_12.getKey().equals(fpzldm)) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107155A)); - } - if (OrderInfoEnum.QDBZ_CODE_5.getKey().equals(qdbz) || - OrderInfoEnum.QDBZ_CODE_6.getKey().equals(qdbz)) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107155B)); - } - } - - /* - * 订单明细信息-项目金额 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107145, orderItemInfo.getXmje(), terminalCode, sphh); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } else { - //项目金额不能为0或者0.00 - if (ConfigureConstant.STRING_0.equals(orderItemInfo.getXmje()) || ConfigureConstant.STRING_000.equals(orderItemInfo.getXmje())) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107081)); - } - //合计金额为不为0时,需要保证金额为小数点后两位 - if (ConfigureConstant.DOUBLE_PENNY_ZERO != new BigDecimal(orderItemInfo.getXmje()).doubleValue() && ConfigureConstant.INT_2 != ValidateUtil.checkNumberic(orderItemInfo.getXmje())) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107062)); - } - } - - - /* - * 订单明细信息-项目税额 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107134, orderItemInfo.getSe(), terminalCode, sphh); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - if (StringUtils.isNotEmpty(orderItemInfo.getSe())) { - //合计税额为不为0时,需要保证税额为小数点后两位 - if (ConfigureConstant.DOUBLE_PENNY_ZERO != new BigDecimal(orderItemInfo.getSe()).doubleValue() && ConfigureConstant.INT_2 != ValidateUtil.checkNumberic(orderItemInfo.getSe())) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107133)); - } - /* - * 校验税额,根据折扣行去判断 - * 蓝票,折扣行税额必须为负,红票折扣行必须为正 - * 蓝票非折扣行必须为正,红票非折扣行必须为负 - */ - if (OrderInfoEnum.INVOICE_BILLING_TYPE_0.getKey().equals(kplx)) { - if (OrderInfoEnum.FPHXZ_CODE_1.getKey().equals(orderItemInfo.getFphxz())) { - - //蓝票折扣行税额必须小于0 - if (new BigDecimal(orderItemInfo.getSe()).compareTo(BigDecimal.ZERO) > ConfigureConstant.INT_0) { - resultMapList.add(generateErrorMap(OrderInfoContentEnum.CHECK_ISS7PRI_107136A)); - } - } else { - //蓝票非折扣行税额必须大于0 - if (new BigDecimal(orderItemInfo.getSe()).compareTo(BigDecimal.ZERO) < ConfigureConstant.INT_0) { - resultMapList.add(generateErrorMap(OrderInfoContentEnum.CHECK_ISS7PRI_107136B)); - } - } - } else if (OrderInfoEnum.INVOICE_BILLING_TYPE_1.getKey().equals(kplx)) { - if (OrderInfoEnum.FPHXZ_CODE_1.getKey().equals(orderItemInfo.getFphxz())) { - - //红票折扣行税额必须大于0 - if (new BigDecimal(orderItemInfo.getSe()).compareTo(BigDecimal.ZERO) < ConfigureConstant.INT_0) { - resultMapList.add(generateErrorMap(OrderInfoContentEnum.CHECK_ISS7PRI_107136C)); - } - } else { - //红票非折扣行税额必须小于0 - if (new BigDecimal(orderItemInfo.getSe()).compareTo(BigDecimal.ZERO) > ConfigureConstant.INT_0) { - resultMapList.add(generateErrorMap(OrderInfoContentEnum.CHECK_ISS7PRI_107136D)); - } - } - } - - } else { - //含税标志为0时,税额不能为空 - if (OrderInfoEnum.HSBZ_0.getKey().equals(orderItemInfo.getHsbz())) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107131)); - } - //清单红字发票时,税额不能为空 - if (OrderInfoEnum.FPHXZ_CODE_6.getKey().equals(orderItemInfo.getFphxz())) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107137)); - } - } - - - /* - * 订单明细信息-项目数量 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107051, orderItemInfo.getXmsl(), terminalCode, sphh); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - if (StringUtils.isNotBlank(orderItemInfo.getXmsl())) { - - if (DecimalCalculateUtil.stringCompare(orderItemInfo.getXmsl(), ConfigureConstant.STRING_000) == 0) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107156)); - } - } - - /* - * 订单明细信息-项目单价 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107149, orderItemInfo.getXmdj(), terminalCode, sphh); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - if (StringUtils.isNotBlank(orderItemInfo.getXmdj())) { - - if (DecimalCalculateUtil.stringCompare(orderItemInfo.getXmdj(), ConfigureConstant.STRING_000) == 0) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107159)); - } - } - - /* - * 项目单价乘以项目数量 必须等于项目金额 误差 0.01 - */ - if (StringUtils.isNotBlank(orderItemInfo.getXmdj()) && StringUtils.isNotBlank(orderItemInfo.getXmsl()) && StringUtils.isNotBlank(orderItemInfo.getXmje())) { - - String xmje = DecimalCalculateUtil.mul(orderItemInfo.getXmdj(), orderItemInfo.getXmsl()); - - String jewc = DecimalCalculateUtil.bigDecimalSubAbs(xmje, orderItemInfo.getXmje()); - if (DecimalCalculateUtil.stringCompare(jewc, ConfigureConstant.STRING_001) > 0) { - /* - * 判断单价是否一致,用金额除以数量得到单价,保留小数点后8位后比较,如果不一致再返回错误, - */ - //判断小数点后位数,默认为8位,如果为全电,为15位 - int afterPointLength = ConfigureConstant.INT_8; - if(CommonUtils.judgeIsQdfp("",fpzldm)){ - afterPointLength = ConfigureConstant.INT_15; - } - String jsXmdj = DecimalCalculateUtil.divNew(orderItemInfo.getXmje(), orderItemInfo.getXmsl(), afterPointLength); - if (DecimalCalculateUtil.stringCompare(jsXmdj, orderItemInfo.getXmdj()) != 0) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.INVOICE_XMMX_JE_ERROR)); - } - - } - - } - - /* - * 订单明细信息-自行编码 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107063, orderItemInfo.getZxbm(), terminalCode, sphh); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - - /* - * 订单明细信息-税率 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107071, orderItemInfo.getSl(), terminalCode, sphh); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 订单明细信息-含税标志 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107064, orderItemInfo.getHsbz(), sphh); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - //含税标志只能为0和1:0表示都不含税,1表示都含税 - if (StringUtils.isNotBlank(orderItemInfo.getHsbz()) && !OrderInfoEnum.HSBZ_1.getKey().equals(orderItemInfo.getHsbz()) && !OrderInfoEnum.HSBZ_0.getKey().equals(orderItemInfo.getHsbz())) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107065)); - } - //含税标志为0时,税额不能为空 - if (OrderInfoEnum.HSBZ_0.getKey().equals(orderItemInfo.getHsbz()) && StringUtils.isBlank(orderItemInfo.getSe())) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107139)); - } - - /* - * 订单明细信息-商品编码 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107100, orderItemInfo.getSpbm(), sphh); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - //商品编码必须为19位数字 - if (StringUtils.isNotBlank(orderItemInfo.getSpbm())) { - boolean spbm = false; - for (int j = 0; j < orderItemInfo.getSpbm().length(); j++) { - char c = orderItemInfo.getSpbm().charAt(j); - if ((c < '0' || c > '9')) { - spbm = true; - break; - } - } - if (spbm) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107101)); - } - } - - - /* - * 订单明细信息-增值税特殊管理 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107105, orderItemInfo.getZzstsgl(), sphh); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - - /* - * 订单明细信息-优惠政策标识 - */ - checkResultMap = CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107103, orderItemInfo.getYhzcbs(), sphh); - if (!OrderInfoContentEnum.SUCCESS.getKey().equals(checkResultMap.get(OrderManagementConstant.ERRORCODE))) { - resultMapList.add(checkResultMap); - } - //优惠政策标识只能为0或1,0:不使用,1:使用 - if (StringUtils.isNotBlank(orderItemInfo.getYhzcbs()) && !OrderInfoEnum.YHZCBS_0.getKey().equals(orderItemInfo.getYhzcbs()) && !OrderInfoEnum.YHZCBS_1.getKey().equals(orderItemInfo.getYhzcbs())) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107102)); - } - //优惠政策标识为1时; - if (ConfigureConstant.STRING_1.equals(orderItemInfo.getYhzcbs())) { - if (StringUtils.isBlank(orderItemInfo.getZzstsgl())) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107104)); - } - //订单明细信息中YHZCBS(优惠政策标识)为1, 且税率为0, 则LSLBS只能根据实际情况选择"0或1或2"中的一种, 不能选择3, 且ZZSTSGL内容也只能写与0/1/2对应的"出口零税/免税/不征税 - if (!StringUtils.isBlank(orderItemInfo.getSl()) && - ConfigureConstant.STRING_0.equals(orderItemInfo.getSl()) && - !OrderInfoEnum.LSLBS_0.getKey().equals(orderItemInfo.getLslbs()) && - !OrderInfoEnum.LSLBS_1.getKey().equals(orderItemInfo.getLslbs()) && - !OrderInfoEnum.LSLBS_2.getKey().equals(orderItemInfo.getLslbs()) && - (StringUtils.isBlank(orderItemInfo.getZzstsgl()))) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107132)); - } - - } - if (OrderInfoEnum.YHZCBS_0.getKey().equals(orderItemInfo.getYhzcbs())) { - if (!StringUtils.isBlank(orderItemInfo.getZzstsgl())) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107106)); - } - } - - /* - * 订单明细信息-零税率标识 - */ - if (!StringUtils.isBlank(orderItemInfo.getLslbs()) && !OrderInfoEnum.LSLBS_0.getKey().equals(orderItemInfo.getLslbs()) && !OrderInfoEnum.LSLBS_1.getKey().equals(orderItemInfo.getLslbs()) && !OrderInfoEnum.LSLBS_2.getKey().equals(orderItemInfo.getLslbs()) && !OrderInfoEnum.LSLBS_3.getKey().equals(orderItemInfo.getLslbs())) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107138)); - } - - - /* - * 税率非空时,逻辑判断 - */ - if (StringUtils.isNotBlank(orderItemInfo.getSl())) { - /* - * 增值税特殊管理不为空,不为不征税,不为免税,不为出口零税逻辑处理 - * 如果是按5%简易征收需要保证税率为0.05 - * 如果是按3%简易征收需要保证税率为0.03 - * 如果是简易征收需要保证税率为0.03或0.04或0.05 - * 如果是按5%简易征收减按1.5%计征需要保证税率为0.015 - */ - if ((!StringUtils.isBlank(orderItemInfo.getZzstsgl())) && - (!ConfigureConstant.STRING_BZS.equals(orderItemInfo.getZzstsgl())) && - (!ConfigureConstant.STRING_MS.equals(orderItemInfo.getZzstsgl())) && - (!ConfigureConstant.STRING_CKLS.equals(orderItemInfo.getZzstsgl()))) { - - if (orderItemInfo.getZzstsgl().contains(ConfigureConstant.STRING_ERROR_PERCENT)) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.COMMODITY_MESSAGE_SYNC_ERROR_173033)); - } - switch (orderItemInfo.getZzstsgl()) { - case ConfigureConstant.STRING_JYZS5: - if (!ConfigureConstant.STRING_005.equals(orderItemInfo.getSl())) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107108)); - } - break; - case ConfigureConstant.STRING_JYZS3: - if (!ConfigureConstant.STRING_003.equals(orderItemInfo.getSl())) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107109)); - } - break; - case ConfigureConstant.STRING_JYZS: - if (!ConfigureConstant.STRING_003.equals(orderItemInfo.getSl()) && !ConfigureConstant.STRING_004.equals(orderItemInfo.getSl()) && !ConfigureConstant.STRING_005.equals(orderItemInfo.getSl())) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107110)); - } - break; - case ConfigureConstant.STRING_JYZS5_1: - if (!ConfigureConstant.STRING_0015.equals(orderItemInfo.getSl())) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107111)); - } - - break; - default: - break; - } - - } - - //零税率标识不为空,税率必须为0 - if ((!StringUtils.isBlank(orderItemInfo.getLslbs())) && DecimalCalculateUtil.stringCompare(orderItemInfo.getSl(),ConfigureConstant.STRING_000) != 0) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107112)); - } - //零税率标识为空,税率不能为0 二手车不进行此校验 - if (!StringUtils.equals(OrderInfoEnum.ORDER_INVOICE_TYPE_42.getKey(), fpzldm)) { - if ((StringUtils.isBlank(orderItemInfo.getLslbs())) && (DecimalCalculateUtil.stringCompare(orderItemInfo.getSl(), ConfigureConstant.STRING_000) == 0)) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107113)); - } - } - /* - * 税率不为空时,如果是专票,并且税率为0,提示错误,专票不可以开具0税率发票 - */ - boolean result = (OrderInfoEnum.ORDER_INVOICE_TYPE_0.getKey().equals(fpzldm) || OrderInfoEnum.ORDER_INVOICE_TYPE_52.getKey().equals(fpzldm)) && ConfigureConstant.STRING_000.equals(DecimalCalculateUtil.decimalFormatToStringNew(orderItemInfo.getSl(),ConfigureConstant.INT_2)); - - if (result) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107118)); - } - - /* - * 如果税率为0,并且是差额票提示不允许开具 - */ - boolean result1 = ConfigureConstant.STRING_000.equals(DecimalCalculateUtil.decimalFormatToStringNew(orderItemInfo.getSl(),ConfigureConstant.INT_2)) && StringUtils.isNotEmpty(orderItemInfo.getKce()); - - if (result1) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107119)); - } - - } - - //订单明细信息中零税率标识为0/1/2, 但增值税特殊管理内容不为'出口零税/免税/不征税'; - boolean result1 = StringUtils.isBlank(orderItemInfo.getZzstsgl()) && - (OrderInfoEnum.LSLBS_0.getKey().equals(orderItemInfo.getLslbs()) || - OrderInfoEnum.LSLBS_1.getKey().equals(orderItemInfo.getLslbs()) || - OrderInfoEnum.LSLBS_2.getKey().equals(orderItemInfo.getLslbs())); - if (result1) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107114)); - } - - if (OrderInfoEnum.LSLBS_0.getKey().equals(orderItemInfo.getLslbs()) && !ConfigureConstant.STRING_CKLS.equals(orderItemInfo.getZzstsgl())) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107114)); - } - if (OrderInfoEnum.LSLBS_1.getKey().equals(orderItemInfo.getLslbs()) && !ConfigureConstant.STRING_MS.equals(orderItemInfo.getZzstsgl())) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107114)); - } - if (OrderInfoEnum.LSLBS_2.getKey().equals(orderItemInfo.getLslbs()) && !ConfigureConstant.STRING_BZS.equals(orderItemInfo.getZzstsgl())) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107114)); - } - boolean result2 = OrderInfoEnum.LSLBS_3.getKey().equals(orderItemInfo.getLslbs()) && (!StringUtils.isBlank(orderItemInfo.getZzstsgl()) || !OrderInfoEnum.YHZCBS_0.getKey().equals(orderItemInfo.getYhzcbs())); - if (result2) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107140)); - } - - - /* - * 新增机动车专票校验, - * - */ - if (StringUtils.isNotBlank(qdbz) && StringUtils.isNotBlank(qylx) && - (OrderInfoEnum.QDBZ_CODE_5.getKey().equals(qdbz) || OrderInfoEnum.QDBZ_CODE_6.getKey().equals(qdbz)) && - OrderInfoEnum.INVOICE_BILLING_TYPE_0.getKey().equals(kplx)) { - //当企业类型不为空并且为1或2时,并且是机动车专用发票时,规格型号栏可以为空,单位、单价和数量不能为空,单位必须为“辆”,数量必须是1,一车一行。 - //当企业类型是 `生产企业`时,规格型号栏可以为空,单位、单价和数量不能为空,单位必须为“辆” - //当规格型号为空时,数量可以大于1的整数,当规格型号不为空时,数量必须是1 - //如果开红票,当规格型号为空时,数量可以是-1,-2,-3等,当规格型号不为空时,数量必须是-1 - if (OrderInfoEnum.JDCQYLX_01.getKey().equals(qylx)) { - if (OrderInfoEnum.FPHXZ_CODE_0.getKey().equals(orderItemInfo.getFphxz()) - || OrderInfoEnum.QD_FPHXZ_CODE_00.getKey().equals(orderItemInfo.getFphxz()) - || OrderInfoEnum.QD_FPHXZ_CODE_02.getKey().equals(orderItemInfo.getFphxz()) - || OrderInfoEnum.FPHXZ_CODE_2.getKey().equals(orderItemInfo.getFphxz())) { - //单位 - if (!ConfigureConstant.STRING_LINAG.equals(orderItemInfo.getXmdw())) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107180)); - } - //数量 - if (StringUtils.isBlank(orderItemInfo.getXmsl())) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107181A)); - } else { - //蓝票 - if (StringUtils.equals(OrderInfoEnum.ORDER_BILLING_INVOICE_TYPE_0.getKey(), kplx)) { - if (StringUtils.isNotBlank(orderItemInfo.getGgxh())) { - if (DecimalCalculateUtil.stringCompareAbs(ConfigureConstant.STRING_1, orderItemInfo.getXmsl()) != 0) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107181C)); - } - } else { - if (DecimalCalculateUtil.stringCompare(ConfigureConstant.STRING_0, orderItemInfo.getXmsl()) == 0) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107181)); - } - if (new BigDecimal(orderItemInfo.getXmsl()).compareTo(new BigDecimal(new BigDecimal(orderItemInfo.getXmsl()).intValue())) != 0) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107181)); - } - } - } - //红票 - if (StringUtils.equals(OrderInfoEnum.ORDER_BILLING_INVOICE_TYPE_1.getKey(), kplx)) { - if (StringUtils.isNotBlank(orderItemInfo.getGgxh())) { - - if (DecimalCalculateUtil.stringCompare(ConfigureConstant.STRING_1_, orderItemInfo.getXmsl()) != 0) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107181E)); - } - } else { - if (DecimalCalculateUtil.stringCompare(ConfigureConstant.STRING_0, orderItemInfo.getXmsl()) < 1) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107181D)); - } - if (DecimalCalculateUtil.stringCompare(ConfigureConstant.STRING_0, orderItemInfo.getXmsl()) == 1 && - new BigDecimal(orderItemInfo.getXmsl()).compareTo(new BigDecimal(new BigDecimal(orderItemInfo.getXmsl()).intValue())) != 0) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107181D)); - } - } - } - } - //单价 - if (StringUtils.isBlank(orderItemInfo.getXmdj())) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107182)); - } - } - } - //当企业类型为经销商时,规格型号、单位、单价和数量不能为空,单位必须为“辆”,数量必须是1,一车一行 - //如果开红票,数量必须是-1 - if (OrderInfoEnum.JDCQYLX_02.getKey().equals(qylx)) { - if (OrderInfoEnum.FPHXZ_CODE_0.getKey().equals(orderItemInfo.getFphxz()) - || OrderInfoEnum.QD_FPHXZ_CODE_00.getKey().equals(orderItemInfo.getFphxz()) - || OrderInfoEnum.QD_FPHXZ_CODE_02.getKey().equals(orderItemInfo.getFphxz()) - || OrderInfoEnum.FPHXZ_CODE_2.getKey().equals(orderItemInfo.getFphxz())) { - //单位 - if (!ConfigureConstant.STRING_LINAG.equals(orderItemInfo.getXmdw())) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107180)); - } - //规格型号 - if (StringUtils.isBlank(orderItemInfo.getGgxh())) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107183)); - } - //判断规格型号是否重复 - if (ggxhSet.size() != sphh + 1) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107184)); - } - //数量 - if (StringUtils.equals(OrderInfoEnum.ORDER_BILLING_INVOICE_TYPE_0.getKey(), kplx)) { - //蓝票 - if (DecimalCalculateUtil.stringCompareAbs(ConfigureConstant.STRING_1, orderItemInfo.getXmsl()) != 0) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107181C)); - } - } else if (StringUtils.equals(OrderInfoEnum.ORDER_BILLING_INVOICE_TYPE_1.getKey(), kplx)) { - //红票 - if (!ConfigureConstant.STRING_1_.equals(orderItemInfo.getXmsl())) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107181E)); - } - } - //单价 - if (StringUtils.isBlank(orderItemInfo.getXmdj())) { - resultMapList.add(CheckParamUtil.generateErrorMap(null, errorMsg, OrderInfoContentEnum.CHECK_ISS7PRI_107182)); - } - } - } - } - return resultMapList; - } - - /** - * 组装返回信息 - * - * @param orderInfoContentEnum - * @return - */ - private static Map generateErrorMap(OrderInfoContentEnum orderInfoContentEnum) { - Map errorMap = new HashMap<>(2); - errorMap.put(OrderManagementConstant.ERRORCODE, orderInfoContentEnum.getKey()); - errorMap.put(OrderManagementConstant.ERRORMESSAGE, orderInfoContentEnum.getMessage()); - log.error("{}单条数据校验结果码为:{},校验结果信息为:{}", LOGGER_MSG, orderInfoContentEnum.getKey(), orderInfoContentEnum.getMessage()); - return errorMap; - } - - /** - * 组装返回信息 - * - * @param code - * @param msg - * @return - */ - public static Map generateErrorMap(String code, String msg) { - - Map errorMap = new HashMap<>(2); - errorMap.put(OrderManagementConstant.ERRORCODE, code); - errorMap.put(OrderManagementConstant.ERRORMESSAGE, msg); - log.error("{}数据校验结果码为:{},校验结果信息为:{}", LOGGER_MSG, code, msg); - return errorMap; - } - -} diff --git a/order-check/src/test/java/test.java b/order-check/src/test/java/test.java deleted file mode 100644 index 15f6c0f5..00000000 --- a/order-check/src/test/java/test.java +++ /dev/null @@ -1,218 +0,0 @@ -import com.dxhy.order.constant.DdpcxxReqBO; -import com.dxhy.order.util.OrderCheckUtil; -import com.dxhy.order.utils.JsonUtils; - -import java.util.Map; - -/** - * 验证测试类 - * - * @author ZSC-DXHY - * @date 创建时间: 2021-12-23 17:01 - */ -public class test { - - public static void main(String[] args) { - String content = "{\n" + - " \"DDZXX\": [\n" + - " {\n" + - " \"DDMXXX\": [\n" + - " {\n" + - " \"XMMC\": \"猪伪狂犬\",\n" + - " \"HSBZ\": \"1\",\n" + - " \"ZXBM\": \"\",\n" + - " \"LSLBS\": \"\",\n" + - " \"DJ\": 5.66387219,\n" + - " \"ZZSTSGL\": \"\",\n" + - " \"KCE\": \"\",\n" + - " \"SPBM\": \"3070401000000000000\",\n" + - " \"XH\": \"1\",\n" + - " \"SPSL\": 20,\n" + - " \"GGXH\": \"规格型号\",\n" + - " \"SE\": \"0.00\",\n" + - " \"DW\": \"个\",\n" + - " \"YHZCBS\": \"0\",\n" + - " \"SL\": \"0.06\",\n" + - " \"BYZD3\": \"\",\n" + - " \"BYZD2\": \"\",\n" + - " \"JE\": 113.28,\n" + - " \"BYZD1\": \"\",\n" + - " \"FPHXZ\": \"0\"\n" + - " },\n" + - " {\n" + - " \"XMMC\": \"猪伪狂犬\",\n" + - " \"HSBZ\": \"1\",\n" + - " \"ZXBM\": \"\",\n" + - " \"LSLBS\": \"\",\n" + - " \"DJ\": 8.22814328,\n" + - " \"ZZSTSGL\": \"\",\n" + - " \"KCE\": \"\",\n" + - " \"SPBM\": \"3070401000000000000\",\n" + - " \"XH\": \"2\",\n" + - " \"SPSL\": 20,\n" + - " \"GGXH\": \"规格型号\",\n" + - " \"SE\": \"0.00\",\n" + - " \"DW\": \"个\",\n" + - " \"YHZCBS\": \"0\",\n" + - " \"SL\": \"0.06\",\n" + - " \"BYZD3\": \"\",\n" + - " \"BYZD2\": \"\",\n" + - " \"JE\": 164.56,\n" + - " \"BYZD1\": \"\",\n" + - " \"FPHXZ\": \"0\"\n" + - " },\n" + - " {\n" + - " \"XMMC\": \"猪伪狂犬\",\n" + - " \"HSBZ\": \"1\",\n" + - " \"ZXBM\": \"\",\n" + - " \"LSLBS\": \"\",\n" + - " \"DJ\": 4.75287175,\n" + - " \"ZZSTSGL\": \"\",\n" + - " \"KCE\": \"\",\n" + - " \"SPBM\": \"3070401000000000000\",\n" + - " \"XH\": \"3\",\n" + - " \"SPSL\": 20,\n" + - " \"GGXH\": \"规格型号\",\n" + - " \"SE\": \"0.00\",\n" + - " \"DW\": \"个\",\n" + - " \"YHZCBS\": \"0\",\n" + - " \"SL\": \"0.06\",\n" + - " \"BYZD3\": \"\",\n" + - " \"BYZD2\": \"\",\n" + - " \"JE\": 95.06,\n" + - " \"BYZD1\": \"\",\n" + - " \"FPHXZ\": \"0\"\n" + - " },\n" + - " {\n" + - " \"XMMC\": \"猪伪狂犬\",\n" + - " \"HSBZ\": \"1\",\n" + - " \"ZXBM\": \"\",\n" + - " \"LSLBS\": \"\",\n" + - " \"DJ\": 8.93277735,\n" + - " \"ZZSTSGL\": \"\",\n" + - " \"KCE\": \"\",\n" + - " \"SPBM\": \"3070401000000000000\",\n" + - " \"XH\": \"4\",\n" + - " \"SPSL\": 20,\n" + - " \"GGXH\": \"规格型号\",\n" + - " \"SE\": \"0.00\",\n" + - " \"DW\": \"个\",\n" + - " \"YHZCBS\": \"0\",\n" + - " \"SL\": \"0.06\",\n" + - " \"BYZD3\": \"\",\n" + - " \"BYZD2\": \"\",\n" + - " \"JE\": 178.66,\n" + - " \"BYZD1\": \"\",\n" + - " \"FPHXZ\": \"0\"\n" + - " },\n" + - " {\n" + - " \"XMMC\": \"猪伪狂犬\",\n" + - " \"HSBZ\": \"1\",\n" + - " \"ZXBM\": \"\",\n" + - " \"LSLBS\": \"\",\n" + - " \"DJ\": 2.06513322,\n" + - " \"ZZSTSGL\": \"\",\n" + - " \"KCE\": \"\",\n" + - " \"SPBM\": \"3070401000000000000\",\n" + - " \"XH\": \"5\",\n" + - " \"SPSL\": 20,\n" + - " \"GGXH\": \"规格型号\",\n" + - " \"SE\": \"0.00\",\n" + - " \"DW\": \"个\",\n" + - " \"YHZCBS\": \"0\",\n" + - " \"SL\": \"0.06\",\n" + - " \"BYZD3\": \"\",\n" + - " \"BYZD2\": \"\",\n" + - " \"JE\": 41.30,\n" + - " \"BYZD1\": \"\",\n" + - " \"FPHXZ\": \"0\"\n" + - " },\n" + - " {\n" + - " \"XMMC\": \"猪伪狂犬\",\n" + - " \"HSBZ\": \"1\",\n" + - " \"ZXBM\": \"\",\n" + - " \"LSLBS\": \"\",\n" + - " \"DJ\": 8.04168463,\n" + - " \"ZZSTSGL\": \"\",\n" + - " \"KCE\": \"\",\n" + - " \"SPBM\": \"3070401000000000000\",\n" + - " \"XH\": \"6\",\n" + - " \"SPSL\": 20,\n" + - " \"GGXH\": \"规格型号\",\n" + - " \"SE\": \"0.00\",\n" + - " \"DW\": \"个\",\n" + - " \"YHZCBS\": \"0\",\n" + - " \"SL\": \"0.06\",\n" + - " \"BYZD3\": \"\",\n" + - " \"BYZD2\": \"\",\n" + - " \"JE\": 160.83,\n" + - " \"BYZD1\": \"\",\n" + - " \"FPHXZ\": \"0\"\n" + - " }\n" + - " ],\n" + - " \"DDTXX\": {\n" + - " \"XHFSBH\": \"15000120561127953X\",\n" + - " \"QDXMMC\": \"(详见销货清单)\",\n" + - " \"GMFZH\": \"645877777888999\",\n" + - " \"YWLX\": \"5336ywlx753.69\",\n" + - " \"DDSJ\": \"20211124170202\",\n" + - " \"DDH\": \"zsc4444\",\n" + - " \"KPR\": \"wzxx\",\n" + - " \"DDQQLSH\": \"11124170202_FE41\",\n" + - " \"QDBZ\": \"1\",\n" + - " \"SFCF\": \"0\",\n" + - " \"FHR\": \"\",\n" + - " \"KPLX\": \"0\",\n" + - " \"XHFMC\": \"1销项测试有限公司\",\n" + - " \"XHFDZ\": \"北京市数码大厦#A座\",\n" + - " \"BZ\": \"TEST\\r\\ntest1\",\n" + - " \"BYZD4\": \"\",\n" + - " \"BYZD3\": \"\",\n" + - " \"CHYY\": \"\",\n" + - " \"BYZD2\": \"\",\n" + - " \"BYZD1\": \"\",\n" + - " \"XHFYH\": \"交通银行\",\n" + - " \"HJJE\": 753.69,\n" + - " \"NSRSBH\": \"15000120561127953X\",\n" + - " \"THDH\": \"\",\n" + - " \"BYZD5\": \"\",\n" + - " \"GMFLX\": \"01\",\n" + - " \"XHFDH\": \"62178941\",\n" + - " \"GMFYH\": \"wzxxbank\",\n" + - " \"HZXXBBH\": \"\",\n" + - " \"GMFBM\": \"\",\n" + - " \"GMFDH\": \"010-84567891\",\n" + - " \"JSHJ\": 753.69,\n" + - " \"BMBBBH\": \"36.0\",\n" + - " \"YFPDM\": \"\",\n" + - " \"GMFDZYX\": \"3563228216@qq.com\",\n" + - " \"YFPHM\": \"\",\n" + - " \"NSRMC\": \"1销项测试有限公司\",\n" + - " \"TQM\": \"\",\n" + - " \"TSCHBZ\": \"\",\n" + - " \"HJSE\": 0,\n" + - " \"GMFSJH\": \"13123456789\",\n" + - " \"GMFMC\": \"光大银行股份有限公司广州分行\",\n" + - " \"GMFDZ\": \"wz购方地址\",\n" + - " \"SKR\": \"\",\n" + - " \"XHFZH\": \"612321123312\",\n" + - " \"GMFSBH\": \"1403016L1NN5336\",\n" + - " \"GMFSF\": \"\"\n" + - " }\n" + - " }\n" + - " ],\n" + - " \"DDPCXX\": {\n" + - " \"KPFS\": \"0\",\n" + - " \"FPLXDM\": \"2\",\n" + - " \"CPYBS\": \"\",\n" + - " \"DDQQPCH\": \"wz12111241702025601\",\n" + - " \"KZZD\": \"\",\n" + - " \"KPZD\": \"-1\",\n" + - " \"NSRSBH\": \"15000120561127953X\"\n" + - " }\n" + - "}"; - DdpcxxReqBO ddpcxxReqBO = JsonUtils.getInstance().parseObject(content, DdpcxxReqBO.class); - Map stringStringMap = OrderCheckUtil.checkInterfaceParam(ddpcxxReqBO); - System.out.println(JsonUtils.getInstance().toJsonString(stringStringMap)); - } -}