Ver Fonte

add GetEacComInfo

1 há 2 semanas atrás
pai
commit
215e6d9a14
1 ficheiros alterados com 152 adições e 0 exclusões
  1. 152 0
      task/info.go

+ 152 - 0
task/info.go

@@ -0,0 +1,152 @@
+package task
+
+import (
+	"fmt"
+	"git.listensoft.net/tool/jspkit/common"
+	"git.listensoft.net/tool/jspkit/common/models"
+	"git.listensoft.net/tool/jspkit/common/variable"
+	"git.listensoft.net/tool/jspkit/logger"
+	"git.listensoft.net/tool/jspkit/taxerr"
+	"github.com/go-rod/rod"
+	"github.com/tidwall/gjson"
+	"regexp"
+	"strings"
+)
+
+func GetEacComInfo(task models.TaxTask) (models.CompanyInfo, error) {
+	//基础信息暂不校验
+	//去除税号中的换行符
+	task.TaxNo = strings.TrimSpace(task.TaxNo)
+	Compile := regexp.MustCompile("^[\u4e00-\u9fa5]+$") // 全中文判断
+	if Compile.MatchString(task.TaxNo) {
+		return models.CompanyInfo{}, taxerr.TaxNoError
+	}
+	cominfo := models.CompanyInfo{
+		ComName:  task.ComName,
+		TaxNo:    task.TaxNo,
+		IdNo:     task.IdNo,
+		Password: task.Password,
+		Zzrxm:    task.Zzrxm,
+		Zzridno:  task.Zzridno,
+		Zzrmm:    task.Zzrmm,
+		Xzsf:     task.Xzsf,
+		Tel:      task.Tel,
+		Area:     task.Address,
+		Period:   task.Period,
+	}
+	if task.Address == "sichuan" || task.Address == "xinjiang" {
+		regRuler := "^[0-9a-zA-Z]+$"
+		// 正则调用规则
+		reg := regexp.MustCompile(regRuler)
+		// 返回 MatchString 是否匹配
+		is_tel := reg.MatchString(task.TaxNo)
+		if !is_tel {
+			return cominfo, common.HandleError(nil, taxerr.NewUser(fmt.Sprintf(`"税号[%s]有误,请核实后重新发起"`, task.TaxNo)))
+		}
+	}
+	fmt.Println(gjson.Get(task.Data, "setting").String())
+	kjze := variable.Kjze(gjson.Get(task.Data, "setting.comKj").String())
+	if !kjze.Check() {
+		return cominfo, taxerr.NewUserV3("会计准则有误!", "任务发起异常请重新发起")
+	}
+	qysdslx := variable.Qysdslx(gjson.Get(task.Data, "setting.qysdsAOrB").String())
+	if !qysdslx.Check() {
+		return cominfo, taxerr.NewUserV3("企业所得税类型有误!", "任务发起异常请重新发起")
+	}
+	nsrlx := variable.Nsrlx(gjson.Get(task.Data, "setting.taxType").String())
+	if !nsrlx.Check() {
+		return cominfo, taxerr.NewUserV3("纳税人类型有误!", "任务发起异常请重新发起")
+	}
+	gslx := variable.Gslx(gjson.Get(task.Data, "setting.comType").String())
+	if !gslx.Check() {
+		return cominfo, taxerr.NewUserV3("公司类型有误!", "任务发起异常请重新发起")
+	}
+	xjllbSb := gjson.Get(task.Data, "setting.xjllbSb").String()
+	if xjllbSb == "是" {
+		cominfo.XjllbSb = true
+	}
+	bsbcwbb := gjson.Get(task.Data, "setting.bsbcwbb").String()
+	if bsbcwbb == "是" {
+		cominfo.Bsbcwbb = true
+	}
+	//不去判断这个东西了 不是 是 默认 否 即可
+	vatBc := gjson.Get(task.Data, `setting.vatBc`).String()
+	if vatBc == "是" {
+		cominfo.VatBc = true
+	}
+	sffgs := gjson.Get(task.Data, `setting.sffgs`).String()
+	if sffgs == "是" {
+		cominfo.Sffgs = true
+	}
+	lslf := gjson.Get(task.Data, `setting.lslf`).String()
+	if lslf == "是" {
+		cominfo.Lslf = true
+	}
+	sfxsbdc := gjson.Get(task.Data, `setting.sfxsbdc`).String()
+	if sfxsbdc == "是" {
+		cominfo.Sfsxbdc = true
+	}
+	sfhqdkfp := gjson.Get(task.Data, `setting.sfhqdkfp`).String() //是否获取代开发票
+	if sfhqdkfp == "是" {
+		cominfo.HqDkFp = true
+	}
+	sfhqckts := gjson.Get(task.Data, `setting.ckts`).String() //是否获取出口退税发票
+	if strings.Contains(sfhqckts, "是") {
+		cominfo.Ckts = true
+	}
+	gxqrAll := gjson.Get(task.Data, `setting.gxqrAll`).String() //是否勾选全部
+	if gxqrAll == "是" {
+		cominfo.GxqrAll = true
+	}
+	cscsts := gjson.Get(task.Data, `setting.cscsts`).String() //是否获取代开发票
+	if cscsts == "是" {
+		common.InfoCscsts = true
+		cominfo.Cscsts = true
+	}
+	jcwq := gjson.Get(task.Data, `setting.jcwq`).String() //是否获取代开发票
+	if jcwq == "是" {
+		cominfo.Jcwq = true
+	}
+	noTxfFp := gjson.Get(task.Data, `setting.noTxfFp`).String() //是否不采集通行费发票
+	if noTxfFp == "是" {
+		cominfo.NoTxfFp = true
+	}
+	wqsb := gjson.Get(task.Data, `setting.wqsb`).String() //是否获取代开发票
+	if wqsb == "是" {
+		cominfo.Wqsb = true
+	}
+	qzsbcwbb := gjson.Get(task.Data, `setting.qzsbcwbb`).String() //强制申报财报,如果已申报就直接更正
+	if qzsbcwbb == "是" || qzsbcwbb == "true" {
+		cominfo.Qzsbcwbb = true
+	}
+	if agTaxNo := gjson.Get(task.Data, `setting.dlLogin.idNo`).String(); agTaxNo != "" {
+		cominfo.Dldl = true
+		cominfo.AgTaxNo = agTaxNo
+		cominfo.AgTel = gjson.Get(task.Data, `setting.dlLogin.zzridno`).String()
+		cominfo.AgPwd = gjson.Get(task.Data, `setting.dlLogin.zzrmn`).String()
+	}
+	zgswjg := gjson.Get(task.Data, `setting.zgswjg`).String()
+	sfxy := gjson.Get(task.Data, `setting.sfxy`).String()
+	sbPwd := gjson.Get(task.Data, `setting.shebaoPassword`).String()
+	shebaoPasswordLogin := gjson.Get(task.Data, `setting.shebaoPasswordLogin`).String()
+	cominfo.Zgswjg = zgswjg
+	cominfo.Dlfs = task.LoginType
+	if cominfo.Dlfs == "新版登陆" { // 这边强制改一下 别跑任务提示登录方式不对 = =
+		cominfo.Dlfs = "新版登录"
+	}
+	cominfo.AccountSystem = kjze
+	cominfo.Qysdslx = qysdslx
+	cominfo.Nsrlx = nsrlx
+	cominfo.Gslx = gslx
+	cominfo.Sfxy = sfxy
+	cominfo.SheBaoPassword = sbPwd
+	cominfo.SheBaoPasswordLogin = shebaoPasswordLogin
+	rod.Try(func() {
+		if strings.Contains(cominfo.Tel, "#") {
+			cominfo.Tel = strings.Split(cominfo.Tel, "#")[0]
+		}
+	})
+	common.ComInfo = cominfo
+	logger.Info(cominfo)
+	return cominfo, nil
+}