package com.kingdee.eas.custom.shuiyou.six.osf.vo;
import com.kingdee.bos.BOSException;
import com.kingdee.bos.metadata.entity.FilterInfo;
import com.kingdee.bos.metadata.entity.FilterItemInfo;
import com.kingdee.bos.metadata.query.util.CompareType;
import com.kingdee.eas.custom.shuiyou.RequestStateEnum;
import com.kingdee.eas.custom.shuiyou.task.TaskStateEnum;
import org.apache.commons.lang.StringUtils;
import java.util.List;
/**
* 4.2.5.2扣除名单确认Body
* description: SixTConfirmInfo
* date: 2024/8/21 17:53
* author: lhbj
* version: 1.0
*/
public class SixTConfirmInfo {
/**
* 外部业务编号
* 外部业务编号,唯一,幂等需要,最长 64 位, 建议使用 UUID
*/
private String bizNo;
/**
* 企业名称
*/
private String qymc;
/**
* 密码类型
* 默认不传则设置为 0,
* 0 表示申报密码;
* 2 表示实名账号实名密码;
*/
private String mmlx;
/**
* 实名账号
* 当 mmlx=2 时,必填
*/
private String smzh;
/**
* 实名密码
* 当 mmlx=2 时,必填
*/
private String smmm;
/**
* 加密实名密码
* 默认不传则设置为 0,0 表示不加密;1 表示
* 加密
*/
private String jmsmmm;
/**
* 登记序号
* 存在多个登记序号时,需要指定传入一个.例:
* 10117440105249764755
*/
private String djxhid;
/**
* 扣缴单位纳税人识别号
*/
private String nsrsbh;
/**
* 地区编号
* 6位行政区划代码,精确到市级,例如:440100, 参考省市区编码
*/
private String areaid;
/**
* 部门编号
* 分部门代报时必传
*/
private String bmbh;
/**
* 部门名称
*/
private String bmmc;
/**
* 申报密码
* 当 mmlx=0 时,必填
*/
private String sbmm;
/**
* jmsbmm
* 加密申报密码
* 默认不传则设置为 0,0 表示不加密;1 表示
* 加密
*/
private String jmsbmm;
/**
* skssnd
* 税款所属年度 yyyy
*/
private String skssnd;
/**
* 请求id
*/
private String requestId;
private String sdyf;
/**
*
*/
private String TAXUNITID;
/**
*
*/
private String acceptId;
/**
* 扣除资格列表
*/
private List kczglb;
public String getBizNo() {
return bizNo;
}
public void setBizNo(String bizNo) {
this.bizNo = bizNo;
}
public String getQymc() {
return qymc;
}
public void setQymc(String qymc) {
this.qymc = qymc;
}
public String getMmlx() {
return mmlx;
}
public void setMmlx(String mmlx) {
this.mmlx = mmlx;
}
public String getSmzh() {
return smzh;
}
public void setSmzh(String smzh) {
this.smzh = smzh;
}
public String getSmmm() {
return smmm;
}
public void setSmmm(String smmm) {
this.smmm = smmm;
}
public String getJmsmmm() {
return jmsmmm;
}
public void setJmsmmm(String jmsmmm) {
this.jmsmmm = jmsmmm;
}
public String getDjxhid() {
return djxhid;
}
public void setDjxhid(String djxhid) {
this.djxhid = djxhid;
}
public String getNsrsbh() {
return nsrsbh;
}
public void setNsrsbh(String nsrsbh) {
this.nsrsbh = nsrsbh;
}
public String getAreaid() {
return areaid;
}
public void setAreaid(String areaid) {
this.areaid = areaid;
}
public String getBmbh() {
return bmbh;
}
public void setBmbh(String bmbh) {
this.bmbh = bmbh;
}
public String getBmmc() {
return bmmc;
}
public void setBmmc(String bmmc) {
this.bmmc = bmmc;
}
public String getSbmm() {
return sbmm;
}
public void setSbmm(String sbmm) {
this.sbmm = sbmm;
}
public String getJmsbmm() {
return jmsbmm;
}
public void setJmsbmm(String jmsbmm) {
this.jmsbmm = jmsbmm;
}
public String getSkssnd() {
return skssnd;
}
public void setSkssnd(String skssnd) {
this.skssnd = skssnd;
}
public List getKczglb() {
return kczglb;
}
public void setKczglb(List kczglb) {
this.kczglb = kczglb;
}
public String getRequestId() {
return requestId;
}
public void setRequestId(String requestId) {
this.requestId = requestId;
}
public String getTAXUNITID() {
return TAXUNITID;
}
public void setTAXUNITID(String TAXUNITID) {
this.TAXUNITID = TAXUNITID;
}
public String getAcceptId() {
return acceptId;
}
public void setAcceptId(String acceptId) {
this.acceptId = acceptId;
}
public String getSdyf() {
return sdyf;
}
public void setSdyf(String sdyf) {
this.sdyf = sdyf;
}
@Override
public String toString() {
return "SixTConfirmInfo{" +
"bizNo='" + bizNo + '\'' +
", qymc='" + qymc + '\'' +
", mmlx='" + mmlx + '\'' +
", smzh='" + smzh + '\'' +
", smmm='" + smmm + '\'' +
", jmsmmm='" + jmsmmm + '\'' +
", djxhid='" + djxhid + '\'' +
", nsrsbh='" + nsrsbh + '\'' +
", areaid='" + areaid + '\'' +
", bmbh='" + bmbh + '\'' +
", bmmc='" + bmmc + '\'' +
", sbmm='" + sbmm + '\'' +
", jmsbmm='" + jmsbmm + '\'' +
", skssnd='" + skssnd + '\'' +
", requestId='" + requestId + '\'' +
", sdyf='" + sdyf + '\'' +
", TAXUNITID='" + TAXUNITID + '\'' +
", acceptId='" + acceptId + '\'' +
", kczglb=" + kczglb +
'}';
}
public static void main(String[] args) throws BOSException {
String IdCardNo="828888199002010055";
for(int i=1;i<10;i++) {
IdCardNo=IdCardNo.substring(0,17);
IdCardNo+=i;
System.out.println(IdCardNo);
System.out.println(isIdCardNo(IdCardNo));
}
FilterInfo filterInfo = new FilterInfo();
filterInfo.getFilterItems().add(
new FilterItemInfo("requestState",
RequestStateEnum.NOTSTARTED_VALUE, CompareType.EQUALS));
filterInfo.getFilterItems().add(
new FilterItemInfo("state",
TaskStateEnum.DELETE_VALUE, CompareType.NOTEQUALS));
FilterInfo filterPre1Info = new FilterInfo();
filterPre1Info.getFilterItems().add(
new FilterItemInfo("taskPre.requestState",
RequestStateEnum.SUCCESSFUL_VALUE, CompareType.EQUALS));
filterPre1Info.getFilterItems().add(
new FilterItemInfo("taskPre.state",
TaskStateEnum.FINISHED_VALUE, CompareType.EQUALS));
FilterInfo filterPre2Info = new FilterInfo();
filterPre2Info.getFilterItems().add(
new FilterItemInfo("taskPre.id is null"));
filterPre1Info.mergeFilter(filterPre2Info,"or");
filterInfo.mergeFilter(filterPre1Info,"and");
System.out.println(filterInfo.toSql());
}
/**
* 校验是否为身份证号码
* @param IdCardNo
* @return
*/
public static boolean isIdCardNo(String IdCardNo){
boolean IdCardflag = false;
try {
if (!StringUtils.isEmpty(IdCardNo) && IdCardNo.length() == 18){
// 1.将身份证号码前面的17位数分别乘以不同的系数。
int[] coefficientArr = { 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 };
int sum = 0;
for (int i = 0; i < coefficientArr.length; i++) {
// Character.digit 在指定的基数返回字符ch的数值。如果基数是不在范围内MIN_RADIX≤基数≤MAX_RADIX或如果该值的通道是不是一个有效的数字在指定的基数-1,则返回。
// ch - the character to be converted(要转换的字符)
// ch - int类型,是字符的ASCII码,数字的ASCII码是48-57
// radix - the radix(基数) ----也就是进制数
sum += Character.digit(IdCardNo.charAt(i), 10) * coefficientArr[i];
}
// 余数数组
int[] remainderArr = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
// 身份证号码第18位数组
int[] lastArr = { 1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2 };
String matchDigit = "";
for (int i = 0; i < remainderArr.length; i++) {
int j = remainderArr[i];
if (j == sum % 11) {
matchDigit = String.valueOf(lastArr[i]);
if (lastArr[i] > 57) {
matchDigit = String.valueOf((char) lastArr[i]);
}
}
}
if (matchDigit.equals(IdCardNo.substring(IdCardNo.length() - 1))) {
IdCardflag = true;
}
}
}catch (Exception e) {
e.printStackTrace();
}
return IdCardflag;
}
}