diff --git a/dxhy-base/src/main/java/com/dxhy/base/controller/BaseInvoiceController.java b/dxhy-base/src/main/java/com/dxhy/base/controller/BaseInvoiceController.java index 251bca6c..c5127580 100644 --- a/dxhy-base/src/main/java/com/dxhy/base/controller/BaseInvoiceController.java +++ b/dxhy-base/src/main/java/com/dxhy/base/controller/BaseInvoiceController.java @@ -1,8 +1,12 @@ package com.dxhy.base.controller; +import cn.hutool.core.codec.Base64; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.dxhy.base.entity.BaseReturnData; +import com.dxhy.base.entity.BaseReturnEntity; import com.dxhy.base.entity.BaseTDxRecordInvoice; import com.dxhy.base.model.BaseDrgxReqVO; import com.dxhy.base.service.fpxxrz.BaseCxrzfpService; @@ -22,8 +26,7 @@ import com.dxhy.common.utils.R; import com.dxhy.common.vo.Tax; import com.dxhy.common.vo.TaxOrgCode; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang.StringUtils; -import org.apache.commons.lang3.ObjectUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -31,6 +34,7 @@ import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import javax.xml.ws.Response; import java.math.BigDecimal; import java.util.*; import java.util.regex.Matcher; @@ -199,13 +203,6 @@ public class BaseInvoiceController extends AbstractController { gfshList = UserInfoUtil.getGfshAll(getUserInfo().getOrg()); } pramsMap.put("gfsh", gfshList); - - boolean flag = checkList(gfshList); - - if (flag){ - pramsMap.put("sign","88"); - log.info("登陆账号无税号"); - } //所属组织 // List companyCodeList = new ArrayList<>(); // if (StringUtils.isNotBlank(companyCode)){ @@ -573,14 +570,6 @@ public class BaseInvoiceController extends AbstractController { } pramsMap.put("gfsh", gfshList); - boolean flag = checkList(gfshList); - - log.info("gfshList.size(){}",gfshList.size()); - if (flag){ - pramsMap.put("sign","88"); - log.info("登陆账号无税号"); - } - //所属组织 // List companyCodeList = new ArrayList<>(); // if (StringUtils.isNotBlank(companyCode) && !"99".equals(companyCode)){ @@ -690,25 +679,6 @@ public class BaseInvoiceController extends AbstractController { } - public boolean checkList(List list) { - boolean flag =false; - if (list == null || list.isEmpty()){ - flag = true; - }else { - String s = list.toString().replace("[","").replace("]",""); - if (StringHelper.isBlank(s)){ - flag = true; - } - if (StringHelper.isNotBlank(s) && s.contains(",")){ - String replace = s.replace(",", ""); - if (StringHelper.isBlank(replace)){ - flag = true; - } - } - } - return flag; - } - /** * 智能勾选查询 qsfs 默认传9 * @@ -850,31 +820,35 @@ public class BaseInvoiceController extends AbstractController { @SysLog("调用智能勾选查询接口") @ResponseBody public Object sgrzzngxcx(@RequestBody Map map) { -// String gfsh = (String)map.get("gfsh"); -// String invoiceType = (String)map.get("invoiceType"); -// String invoiceSource = (String)map.get("invoiceSource"); -// String kpksrq = (String)map.get("kpksrq"); -// String kpjsrq = (String)map.get("kpjsrq"); -// String qszt = (String)map.get("qszt"); -// String qsfs = (String)map.get("qsfs"); -// String businessCode = (String)map.get("businessCode"); -// String invoiceNo = (String)map.get("invoiceNo"); -// String qsksrq = (String)map.get("qsksrq"); -// String qsjsrq = (String)map.get("qsjsrq"); -// String xfmc = (String)map.get("xfmc"); -// String position = (String)map.get("position"); -// String fpzt = (String)map.get("invoiceStatus"); -// String sfkrz = (String)map.get("sfkrz"); -// String qsr = (String)map.get("qsr"); -// String bzdh = (String) map.get("bzdh"); + String inAccountStatus = (String) map.get("inAccountStatus"); String companyCode = (String) map.get("companyCode"); String gfsh = (String)map.get("gfsh"); String maxTax = (String) map.get("maxTax"); String menuId = (String)map.get("menuId"); String company = (String)map.get("company"); - int curr = (int) map.get("curr"); - int size = (int) map.get("size"); + String isChooseAll = (String) map.get("isChooseAll"); + + if (org.apache.commons.lang3.StringUtils.isBlank(isChooseAll)){ + isChooseAll = "N"; + } + int curr = 0; + int size = 0; + if ("N".equalsIgnoreCase(isChooseAll)){ + + if (map.get("curr") != null){ + curr = (int) map.get("curr"); + }else { + ResponseEntity.ok(R.error("分页数据不能为空")); + } + + + if (map.get("size")!= null){ + size = (int) map.get("size"); + }else { + ResponseEntity.ok(R.error("分页大小不能为空")); + } + } if (StringUtils.isBlank(inAccountStatus)){ return ResponseEntity.ok(R.error("入账状态不能为空")); @@ -887,45 +861,19 @@ public class BaseInvoiceController extends AbstractController { try { BigDecimal tax = new BigDecimal(maxTax); } catch (NumberFormatException e) { - return ResponseEntity.ok(R.error("输入税额上线格式不对,请重新输入")); + return ResponseEntity.ok(R.error("输入税额上限格式不对,请重新输入")); } Map pramsMap = new HashMap<>(16); -// pramsMap.put("bzdh", bzdh); -// pramsMap.put("payment", map.get("payment")); -// pramsMap.put("paymentStatus", map.get("paymentStatus")); -// pramsMap.put("paymentDateStart", map.get("paymentDateStart")); -// pramsMap.put("paymentDateEnd", map.get("paymentDateEnd")); -// pramsMap.put("settlementNo", map.get("settlementNo")); -// pramsMap.put("voucherNumber", map.get("voucherNumber")); -// pramsMap.put("snVoucherNumber", map.get("snVoucherNumber")); -// pramsMap.put("postingTimeEnd", map.get("postingTimeEnd")); -// pramsMap.put("postingTimeStart", map.get("postingTimeStart")); -// pramsMap.put("imageNumber", map.get("imageNumber")); -// if (map.get("accountPeriod") != null && !"".equals(map.get("accountPeriod"))) { -// String accountPeriod = map.get("accountPeriod").toString().substring(0,7); -// pramsMap.put("accountPeriod", accountPeriod); -// log.info("accountPeriod:{}",accountPeriod); -// } -// -// if (sfkrz != null) { -// if (!"99".equals(sfkrz)) { -// pramsMap.put("sfkrz", sfkrz); -// } -// } -// if (invoiceSource != null) { -// if (!"99".equals(invoiceSource)) { -// pramsMap.put("invoiceSource", invoiceSource); -// } -// } pramsMap.put("inAccountStatus", inAccountStatus); pramsMap.put("company", company); - pramsMap.put("company", "BIGB"); pramsMap.put("menuId", menuId); - pramsMap.put("menuId", "118061"); pramsMap.put("maxTax",maxTax); + pramsMap.put("curr",curr); + pramsMap.put("size",size); + pramsMap.put("isChooseAll",isChooseAll); pramsMap.put("business", getUserInfo().getBusiness()); pramsMap.put("dbName", getUserInfo().getDbName()); List taxList = getUserInfo().getOrg(); @@ -937,101 +885,129 @@ public class BaseInvoiceController extends AbstractController { } else { gfshList = UserInfoUtil.getGfshAll(getUserInfo().getOrg()); } - if (ObjectUtils.isNotEmpty(gfshList)){ - pramsMap.put("gfsh", gfshList); - }else { - return ResponseEntity.ok(R.error("购方税号不能为空")); - } + + //TODO 合并分支后把checkList加上可以让用户不使用上级权限就可以进行认证 + + pramsMap.put("gfsh",gfshList); + + pramsMap.put("sign","99"); + if (StringHelper.isNotBlank(companyCode) && "99".equals(companyCode)){ + pramsMap.put("companyCodes",getUserInfo().getCompanyCodes()); + log.info("组织机构====>{}",pramsMap.get("companyCodes")); + } if (StringUtils.isNotBlank(companyCode)){ pramsMap.put("companyCode",companyCode); } -// if (!StringUtils.isBlank(invoiceType)) { -// if (!"99".equals(invoiceType)) { -// pramsMap.put("invoiceType", invoiceType); -// } -// } else { -// return ResponseEntity.ok(R.error("发票类型不能为空!")); -// } -// if (StringUtils.isNotBlank(fpzt)) { -// pramsMap.put("fpzt", fpzt); -// } else { -// return ResponseEntity.ok(R.error("发票状态不能为空")); -// } -// pramsMap.put("businessCode", "99"); -// if (!StringUtils.isBlank(qszt)) { -// if (!"99".equals(qszt)) { -// pramsMap.put("qszt", qszt); -// if ("1".equals(qszt)) { -// if (!StringUtils.isBlank(qsksrq)) { -// pramsMap.put("qsksrq", qsksrq); -// } else { -// return ResponseEntity.ok(R.error("签收开始日期不能为空!")); -// } -// if (!StringUtils.isBlank(qsjsrq)) { -// pramsMap.put("qsjsrq", qsjsrq); -// } else { -// return ResponseEntity.ok(R.error("签收结束日期不能为空!")); -// } -// if (!StringUtils.isBlank(qsfs)) { -// // 表示全部 -// if (!"99".equals(qsfs)) { -// pramsMap.put("qsfs", qsfs); -// } -// } else { -// return ResponseEntity.ok(R.error("签收方式不能为空!")); -// } -// pramsMap.put("businessCode", businessCode); -// } + try { + return ResponseEntity + .ok(R.ok().put("data", baseInvoiceManualCheckService.inTellingCheck(pramsMap))); + } catch (Exception e) { + e.printStackTrace(); + log.error("", e); + return ResponseEntity.ok(R.error(CommonConstants.MSG_ERR_DEFAULT)); + } + + } + + @PostMapping("/sggx/afterInTellingCheck") + @SysLog("智能勾选后认证") + @ResponseBody + public Object afterInTellingCheck(@RequestBody Map map) { + + String isChooseAll = (String) map.get("isChooseAll"); + + if (StringUtils.isBlank(isChooseAll)){ + isChooseAll = "Y"; + } + + map.put("isChooseAll",isChooseAll); + int curr = 1; + int size = 10; + int count = 0; + + Map pramsMap = new HashMap<>(16); + + String companyCode = (String) map.get("companyCode"); + String gfsh = (String)map.get("gfsh"); + List gfshList = new ArrayList<>(); + if(StringUtils.isNotBlank(gfsh) && "99".equals(gfsh)){ + gfshList=UserInfoUtil.getGfshAll(getUserInfo().getOrg()); + }else { + gfshList.add(gfsh); + } + String gxType = (String) map.get("gxType"); + + if (StringUtils.isBlank(gxType)){ + return ResponseEntity.ok(R.error("所选发票勾选类型不能为空")); + } + + map.put("business", getUserInfo().getBusiness()); + map.put("dbName", getUserInfo().getDbName()); + List taxList = getUserInfo().getOrg(); + map.put("taxList", taxList); + map.put("gfsh",gfshList); + map.put("qsflag", getUserInfo().getQsStatus()); +// List gfshList = new ArrayList<>(); +// if (!"99".equals(gfsh) && StringUtils.isNotBlank(gfsh)) { +// gfshList.add(gfsh); +// } else { +// gfshList = UserInfoUtil.getGfshAll(getUserInfo().getOrg()); // } -// } else { -// return ResponseEntity.ok(R.error("签收状态不能为空!")); -// } -// String qsflag = getUserInfo().getQsStatus(); -// if ("1".equals(qsflag)) { -// pramsMap.put("qszt", "1"); -// } -// if (!StringUtils.isBlank(kpksrq)) { -// pramsMap.put("kpksrq", kpksrq); -// } else { -// return ResponseEntity.ok(R.error("开票开始日期不能为空!")); -// } -// if (!StringUtils.isBlank(kpjsrq)) { -// pramsMap.put("kpjsrq", kpjsrq); -// } else { -// return ResponseEntity.ok(R.error("开票结束日期不能为空!")); -// } // -// if (!StringUtils.isBlank(position)) { -// pramsMap.put("username", getUserName()); -// pramsMap.put("position", position); -// } -// -// //发票号码 -// if (!StringUtils.isBlank(invoiceNo)) { -// if(invoiceNo.length()==8){ -// pramsMap.put("invoiceNo", invoiceNo); -// }else { -// pramsMap.put("eleInvoiceNo", invoiceNo); -// } -// } +// //todo合并分支后把checkList加上可以让用户不使用上级权限就可以进行认证 // +// map.put("gfsh",gfshList); // -// if (!StringUtils.isBlank(xfmc)) { -// pramsMap.put("xfmc", xfmc); -// } -// if (!StringUtils.isBlank(qsr)) { -// pramsMap.put("qsr", qsr); -// } + map.put("sign","99"); + if (StringHelper.isNotBlank(companyCode) && "99".equals(companyCode)){ + map.put("companyCodes",getUserInfo().getCompanyCodes()); + log.info("组织机构====>{}",map.get("companyCodes")); + } + + if (StringUtils.isNotBlank(companyCode)){ + map.put("companyCode",companyCode); + } + String sgrzzngxcx = baseInvoiceManualCheckService.inTellingCheck(map); + log.info("sgrzzngxcx======={}",sgrzzngxcx); + String decodeStr = Base64.decodeStr(sgrzzngxcx); + + BaseReturnEntity baseReturnEntity = JSON.parseObject(decodeStr, BaseReturnEntity.class); + List dataList = baseReturnEntity.getDataList(); + StringBuilder uuids = new StringBuilder(); + StringBuilder dkses = new StringBuilder(); + if (dataList != null && dataList.size() > 0){ + for (int i = 0; i < dataList.size(); i++) { + uuids.append(dataList.get(i).getUuid()); + dkses.append(dataList.get(i).getTaxAmount()); + if (i{}",uuids); + log.info("dkses====>{}",dkses); + }else { + return ResponseEntity.ok(R.error("没有可操作的数据")); + + } + pramsMap.put("uuids",uuids); + pramsMap.put("dkses",dkses); + pramsMap.put("name", getUserName()); + pramsMap.put("dbName", getUserInfo().getDbName()); + pramsMap.put("loginName", getLoginName()); + pramsMap.put("userName", getUserName()); + pramsMap.put("gxType", gxType); + pramsMap.put("gfsh", gfshList); try { return ResponseEntity - .ok(R.ok().put("data", baseInvoiceManualCheckService.inTellingCheck(pramsMap))); + .ok(R.ok().put("data", baseIRzTDxRecordInvoiceService.identifiByIds(pramsMap, curr, size, count))); } catch (Exception e) { e.printStackTrace(); log.error("", e); diff --git a/dxhy-base/src/main/java/com/dxhy/base/controller/BaseRzTDxRecordInvoiceController.java b/dxhy-base/src/main/java/com/dxhy/base/controller/BaseRzTDxRecordInvoiceController.java index 4574ac2a..eef0a688 100644 --- a/dxhy-base/src/main/java/com/dxhy/base/controller/BaseRzTDxRecordInvoiceController.java +++ b/dxhy-base/src/main/java/com/dxhy/base/controller/BaseRzTDxRecordInvoiceController.java @@ -136,9 +136,37 @@ public class BaseRzTDxRecordInvoiceController extends AbstractController { String xfmc = (String)map.get("xfmc"); String position = (String)map.get("position"); String fpzt = (String)map.get("invoiceStatus"); - + String companyCode = (String) map.get("companyCode"); String qsr = (String)map.get("qsr"); + String bzdh = (String) map.get("bzdh"); + String bzr = (String) map.get("bzr"); + String inAccountStatus = (String) map.get("inAccountStatus"); + String sfkrz = (String)map.get("sfkrz"); + String suspendDate = (String) map.get("suspendDate"); + if (org.apache.commons.lang3.StringUtils.isNotEmpty(suspendDate) && suspendDate.length() >7){ + suspendDate = suspendDate.substring(0,7); + } + String suspendStatus = (String) map.get("suspendStastus"); + + Map pramsMap = new HashMap<>(20); + pramsMap.put("bzdh",bzdh); + pramsMap.put("bzr",bzr); + pramsMap.put("inAccountStatus",inAccountStatus); + pramsMap.put("suspendDate",suspendDate); + pramsMap.put("suspendStatus",suspendStatus); + if (sfkrz != null) { + if (!"99".equals(sfkrz)) { + pramsMap.put("sfkrz", sfkrz); + } + } + if(pramsMap.get("imageNumber") != null){ + pramsMap.put("imageNumber",pramsMap.get("imageNumber")); + } + pramsMap.put("postingTimeEnd", map.get("postingTimeEnd")); + pramsMap.put("snVoucherNumber", map.get("snVoucherNumber")); + pramsMap.put("postingTimeStart", map.get("postingTimeStart")); + pramsMap.put("company", map.get("company")); pramsMap.put("business", getUserInfo().getBusiness()); pramsMap.put("dbName", getUserInfo().getDbName()); pramsMap.put("name", getUserName()); @@ -146,6 +174,13 @@ public class BaseRzTDxRecordInvoiceController extends AbstractController { List taxList = getUserInfo().getOrg(); pramsMap.put("taxList", taxList); pramsMap.put("qsflag", getUserInfo().getQsStatus()); + if (map.get("accountPeriod") != null && !"".equals(map.get("accountPeriod"))) { + String accountPeriod = map.get("accountPeriod").toString().substring(0,7); + pramsMap.put("accountPeriod", accountPeriod); + log.info("accountPeriod:{}",accountPeriod); + } + + List gfshList = new ArrayList<>(); if (!"99".equals(gfsh) && StringUtils.isNotBlank(gfsh)) { @@ -155,6 +190,14 @@ public class BaseRzTDxRecordInvoiceController extends AbstractController { } pramsMap.put("gfsh", gfshList); + if (StringHelper.isNotBlank(companyCode) && "99".equals(companyCode)){ + pramsMap.put("companyCodes",getUserInfo().getCompanyCodes()); + log.info("组织机构====>{}",pramsMap.get("companyCodes")); + } + if (org.apache.commons.lang3.StringUtils.isNotBlank(companyCode)){ + pramsMap.put("companyCode",companyCode); + } + if (!StringUtils.isBlank(invoiceType)) { if (!"99".equals(invoiceType)) { pramsMap.put("invoiceType", invoiceType); @@ -272,15 +315,47 @@ public class BaseRzTDxRecordInvoiceController extends AbstractController { String xfmc = (String)map.get("xfmc"); String position = (String)map.get("position"); String fpzt = (String)map.get("invoiceStatus"); - + String companyCode = (String) map.get("companyCode"); String qsr = (String)map.get("qsr"); + String bzdh = (String) map.get("bzdh"); + String bzr = (String) map.get("bzr"); + String inAccountStatus = (String) map.get("inAccountStatus"); + String sfkrz = (String)map.get("sfkrz"); + String suspendDate = (String) map.get("suspendDate"); + if (org.apache.commons.lang3.StringUtils.isNotEmpty(suspendDate) && suspendDate.length() >7){ + suspendDate = suspendDate.substring(0,7); + } + String suspendStatus = (String) map.get("suspendStastus"); + Map pramsMap = new HashMap<>(20); + pramsMap.put("bzdh",bzdh); + pramsMap.put("bzr",bzr); + pramsMap.put("inAccountStatus",inAccountStatus); + pramsMap.put("suspendDate",suspendDate); + pramsMap.put("suspendStatus",suspendStatus); + if (sfkrz != null) { + if (!"99".equals(sfkrz)) { + pramsMap.put("sfkrz", sfkrz); + } + } + if(pramsMap.get("imageNumber") != null){ + pramsMap.put("imageNumber",pramsMap.get("imageNumber")); + } pramsMap.put("business", getUserInfo().getBusiness()); pramsMap.put("dbName", getUserInfo().getDbName()); pramsMap.put("name", getUserName()); List taxList = getUserInfo().getOrg(); pramsMap.put("taxList", taxList); pramsMap.put("qsflag", getUserInfo().getQsStatus()); + if (map.get("accountPeriod") != null && !"".equals(map.get("accountPeriod"))) { + String accountPeriod = map.get("accountPeriod").toString().substring(0,7); + pramsMap.put("accountPeriod", accountPeriod); + log.info("accountPeriod:{}",accountPeriod); + } + pramsMap.put("postingTimeEnd", map.get("postingTimeEnd")); + pramsMap.put("snVoucherNumber", map.get("snVoucherNumber")); + pramsMap.put("postingTimeStart", map.get("postingTimeStart")); + pramsMap.put("company", map.get("company")); List gfshList = new ArrayList<>(); if (!"99".equals(gfsh) && StringUtils.isNotBlank(gfsh)) { @@ -371,6 +446,13 @@ public class BaseRzTDxRecordInvoiceController extends AbstractController { } else { return ResponseEntity.ok(R.error("购方信息不能为空!")); } + if (StringHelper.isNotBlank(companyCode) && "99".equals(companyCode)){ + pramsMap.put("companyCodes",getUserInfo().getCompanyCodes()); + log.info("组织机构====>{}",pramsMap.get("companyCodes")); + } + if (org.apache.commons.lang3.StringUtils.isNotBlank(companyCode)){ + pramsMap.put("companyCode",companyCode); + } String invoiceSource = (String)map.get("invoiceSource"); if (!StringUtils.isBlank(invoiceSource) && !"99".equals(invoiceSource)) { pramsMap.put("invoiceSource", invoiceSource); diff --git a/dxhy-base/src/main/java/com/dxhy/base/dao/BaseTDxRecordInvoiceDao.java b/dxhy-base/src/main/java/com/dxhy/base/dao/BaseTDxRecordInvoiceDao.java index 9a89c5f9..fa2b4cce 100644 --- a/dxhy-base/src/main/java/com/dxhy/base/dao/BaseTDxRecordInvoiceDao.java +++ b/dxhy-base/src/main/java/com/dxhy/base/dao/BaseTDxRecordInvoiceDao.java @@ -218,4 +218,6 @@ public interface BaseTDxRecordInvoiceDao extends BaseMapper pramsMap); List findSuspendStatus(@Param("uuids") List uuids); + + List selectChooseHj(Map pramsMap); } diff --git a/dxhy-base/src/main/java/com/dxhy/base/entity/BaseReturnData.java b/dxhy-base/src/main/java/com/dxhy/base/entity/BaseReturnData.java new file mode 100644 index 00000000..ba20bb90 --- /dev/null +++ b/dxhy-base/src/main/java/com/dxhy/base/entity/BaseReturnData.java @@ -0,0 +1,16 @@ +package com.dxhy.base.entity; + +import lombok.Data; + +@Data +@SuppressWarnings("AlibabaClassNamingShouldBeCamel") +public class BaseReturnData { + + private static final long serialVersionUID = -2166713217995969349L; + + private String code; + + private String data; + + private String message; +} diff --git a/dxhy-base/src/main/java/com/dxhy/base/entity/BaseReturnEntity.java b/dxhy-base/src/main/java/com/dxhy/base/entity/BaseReturnEntity.java new file mode 100644 index 00000000..df1afa2b --- /dev/null +++ b/dxhy-base/src/main/java/com/dxhy/base/entity/BaseReturnEntity.java @@ -0,0 +1,22 @@ +package com.dxhy.base.entity; + +import lombok.Data; + +import java.util.List; + +@Data +@SuppressWarnings("AlibabaClassNamingShouldBeCamel") +public class BaseReturnEntity { + + private static final long serialVersionUID = -2166713217995969349L; + + private String hjse; + + private List dataList; + + private String hjsl; + + private String hjje; + + private String total; +} diff --git a/dxhy-base/src/main/java/com/dxhy/base/model/BaseSggxCxRespVO.java b/dxhy-base/src/main/java/com/dxhy/base/model/BaseSggxCxRespVO.java index ee54d389..085f0547 100644 --- a/dxhy-base/src/main/java/com/dxhy/base/model/BaseSggxCxRespVO.java +++ b/dxhy-base/src/main/java/com/dxhy/base/model/BaseSggxCxRespVO.java @@ -165,4 +165,5 @@ public class BaseSggxCxRespVO { private String bzr; + private String uuid; } diff --git a/dxhy-base/src/main/java/com/dxhy/base/service/invoicecheck/BaseInvoiceManualCheckServiceImpl.java b/dxhy-base/src/main/java/com/dxhy/base/service/invoicecheck/BaseInvoiceManualCheckServiceImpl.java index 133de029..d5e4dc9c 100644 --- a/dxhy-base/src/main/java/com/dxhy/base/service/invoicecheck/BaseInvoiceManualCheckServiceImpl.java +++ b/dxhy-base/src/main/java/com/dxhy/base/service/invoicecheck/BaseInvoiceManualCheckServiceImpl.java @@ -12,8 +12,8 @@ import javax.annotation.Resource; import com.dxhy.common.constant.DictConstant; import com.dxhy.common.utils.DateUtils; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang.StringUtils; import org.apache.commons.lang3.ObjectUtils; +import org.apache.commons.lang3.StringUtils; import org.jetbrains.annotations.NotNull; import org.springframework.stereotype.Service; @@ -229,9 +229,9 @@ public class BaseInvoiceManualCheckServiceImpl extends MpBaseServiceImpl pramsMap) { log.info("入参是:{}",pramsMap); - JSONObject json; + JSONObject json = new JSONObject(); DynamicContextHolder.push(pramsMap.get("dbName") + DbConstant.BUSINESS_READ); try { String company = (String)pramsMap.get("company"); String menuId = (String)pramsMap.get("menuId"); - json = tabulateRedisService.getTabulateMenu(company, menuId); + if (StringUtils.isNotBlank(menuId)){ + json = tabulateRedisService.getTabulateMenu(company, menuId); + } List gfshList = (List)pramsMap.get("gfsh"); - - List gfshList1 = new ArrayList<>(); - if (gfshList.size() > 0) { - List curList = super.baseMapper.selectDksh(pramsMap); - for (BaseTDxDkCount cur : curList) { - String skssq = cur.getSkssq(); - String year = skssq.substring(0, 4); - String mon = skssq.substring(4); - LocalDate localDate = LocalDate.of(Integer.parseInt(year), Integer.parseInt(mon), 1); - LocalDate localDate1 = localDate.plusMonths(1); - LocalDate localDate2 = LocalDate.now(); - if ("0".equals(cur.getTjStatus()) || "3".equals(cur.getTjStatus()) - || localDate2.isBefore(localDate1)) { - gfshList1.add(cur.getTaxno()); + String sign = (String) pramsMap.get("sign"); + + //如果有自己的税号则选择出在未申请抵扣的税号 + if (!"88".equals(sign)){ + List gfshList1 = new ArrayList<>(); + if (gfshList.size() > 0) { + List curList = super.baseMapper.selectDksh(pramsMap); + for (BaseTDxDkCount cur : curList) { + String skssq = cur.getSkssq(); + String year = skssq.substring(0, 4); + String mon = skssq.substring(4); + LocalDate localDate = LocalDate.of(Integer.parseInt(year), Integer.parseInt(mon), 1); + LocalDate localDate1 = localDate.plusMonths(1); + LocalDate localDate2 = LocalDate.now(); + if ("0".equals(cur.getTjStatus()) || "3".equals(cur.getTjStatus()) + || localDate2.isBefore(localDate1)) { + gfshList1.add(cur.getTaxno()); + } } - } - if(ObjectUtils.isEmpty(gfshList1)|| gfshList1.size()==0){ - json.put("code","501"); - json.put("message","税号已经申请抵扣"); + if(ObjectUtils.isEmpty(gfshList1)|| gfshList1.size()==0){ + json.put("code","501"); + json.put("message","税号已经申请抵扣"); + return super.responseResult(json); + }else { + pramsMap.put("gfsh",gfshList1); + } + } else { + json.put("code", "501"); + json.put("message", "账号下无可用税号"); return super.responseResult(json); - }else { - pramsMap.put("gfsh",gfshList1); } - } else { + } + + + + String hjsl = "0"; + String hjje = "0"; + String hjse = "0"; + List hjList = super.baseMapper.selectChooseHj(pramsMap); + BaseTDxRecordInvoice hjxx = hjList.get(0); + hjsl = hjxx.getSfygx(); + if (!"0".equals(hjsl)) { + hjje = AmountFormatUtil.fmtMicrometer(MathUtil.round(hjxx.getInvoiceAmount().toPlainString())); + hjse = AmountFormatUtil.fmtMicrometer(MathUtil.round(hjxx.getTaxAmount().toPlainString())); + } + json.put("hjsl", AmountFormatUtil.fmtMicrometer(hjsl)); + json.put("hjje", hjje); + json.put("hjse", hjse); + if ("0".equals(hjsl)) { + json.put("message", "无可操作的数据"); json.put("code", "501"); - json.put("message", "账号下无可用税号"); return super.responseResult(json); } + String isChooseAll = (String) pramsMap.get("isChooseAll"); + + if ("N".equals(isChooseAll)){ + int total = Integer.parseInt(hjsl); + + int curr = (int) pramsMap.get("curr"); + int size = (int) pramsMap.get("size"); + int totalPage = total % size == 0?total/size:total/size+1; + + if (curr<1){ + curr =1; + } + if (curr>totalPage){ + curr = totalPage; + } + curr = (curr -1)*size; + pramsMap.put("curr",curr); + } - PageHelper.startPage(1, 200); List pageList = super.baseMapper.selectInTellingCheck(pramsMap); if (pageList == null || pageList.size() == 0){ @@ -500,14 +544,8 @@ public class BaseInvoiceManualCheckServiceImpl extends MpBaseServiceImpl returnList = new ArrayList<>(); //记录数量 - int count = 0; + int count = 1; //税额上限 - BigDecimal maxTax = new BigDecimal((String)pramsMap.get("maxTax")); - //统计税额 - BigDecimal currentTax = new BigDecimal("0"); - //统计金额 - BigDecimal hjje = new BigDecimal("0"); - List businessList = (List)pramsMap.get("business"); if (pageList.size() > 0) { @@ -521,97 +559,18 @@ public class BaseInvoiceManualCheckServiceImpl extends MpBaseServiceImpl"+maxTax+",currentTax====>"+currentTax+",taxAmount===>"+pageList.get(i).getTaxAmount()); - - if (maxTax.compareTo(currentTax) >0){ - count++; - log.info("count++{}"+count+",currentTax==》"+currentTax+",hjje===>"+hjje); - //发票状态不能认证 -// String invoiceStatus="07"; -// if ( pageList.get(i).getInvoiceStatus() != null && !invoiceStatus.contains(pageList.get(i).getInvoiceStatus()) -// || pageList.get(i).getInvoiceAmount() != null && pageList.get(i).getInvoiceAmount().compareTo(new BigDecimal(0)) < 0 -// || pageList.get(i).getTaxAmount() != null && pageList.get(i).getTaxAmount().compareTo(new BigDecimal(0)) < 0) { -// -// currentTax = currentTax.subtract(pageList.get(i).getTaxAmount()); -// hjje = hjje.subtract(pageList.get(i).getInvoiceAmount()); -// count--; -// log.info("count--{}"+count+",currentTax==》"+currentTax+",hjje===>"+hjje); -// continue; -// } - //发票税号一申请抵扣统计 -// if (!gfshList1.contains(pageList.get(i).getGfTaxNo())) { -// //该发票税号已申请抵扣统计 -// log.info("申请统计的购方税号为{}",pageList.get(i).getGfTaxNo()); -// currentTax = currentTax.subtract(pageList.get(i).getTaxAmount()); -// hjje = hjje.subtract(pageList.get(i).getInvoiceAmount()); -// count--; -// log.info("已申请抵扣统计 count-- ==={}"+count+",currentTax==》"+currentTax+",hjje===>"+hjje); -// -// continue; -// } - BaseSggxCxRespVO vo = getBaseSggxCxRespVO(pageList.get(i), count, taxnoList, businessList); - -// log.info("智能勾选查询返回对象VO {}",vo); - - log.info("returnList添加vo"); - returnList.add(vo); - }else { - log.info("统计税额超出税额上限减去最后一个,并结束循环遍历"); - currentTax = currentTax.subtract(pageList.get(i).getTaxAmount()); - hjje = hjje.subtract(pageList.get(i).getInvoiceAmount()); - - if (i collect = pageList.stream().skip(i + 1).sorted(Comparator.comparing(BaseTDxRecordInvoice::getTaxAmount)).collect(Collectors.toList()); - log.info("collect====>{}",collect.stream().map(BaseTDxRecordInvoice::getTaxAmount).collect(Collectors.toList())); - if (collect != null && collect.size() > 0){ - log.info("从小到大排序在进行添加"); - for (int j = 0; j < collect.size(); j++) { - if (collect.get(j).getTaxAmount().compareTo(new BigDecimal("0"))<1){ - continue; - } - currentTax = currentTax.add(collect.get(j).getTaxAmount()); - hjje = hjje.add(collect.get(j).getInvoiceAmount()); - log.info("maxTax====>"+maxTax+",currentTax====>"+currentTax); - if (maxTax.compareTo(currentTax)>0){ - count++; - log.info("最小排序count++{}"+count+",currentTax==》"+currentTax+",hjje===>"+hjje); - - BaseSggxCxRespVO vo = getBaseSggxCxRespVO(collect.get(j), count, taxnoList, businessList); - log.info("returnList添加vo"); - returnList.add(vo); - }else { - log.info("最小排序统计税额超出税额上限减去最后一个,并结束循环遍历"); - currentTax = currentTax.subtract(collect.get(j).getTaxAmount()); - hjje = hjje.subtract(collect.get(j).getInvoiceAmount()); - break; - } - } - } - } + BaseSggxCxRespVO vo = getBaseSggxCxRespVO(pageList.get(i), count, taxnoList, businessList); + count++; + log.info("returnList添加vo"); + returnList.add(vo); + } - break; - } + } + json.put("total", hjsl); + json.put("datalist", returnList); - } - } - if(returnList == null || returnList.size() == 0){ - json.put("message","无可操作的数据"); - json.put("code","501"); - return super.responseResult(json); - }else { - json.put("hjje", hjje); - json.put("hjse", currentTax); - json.put("total", count); - json.put("datalist", returnList); - } } catch (Exception e) { // 统一设置操作异常标识 log.info("错误信息为:{}",e.getMessage()); @@ -646,6 +605,7 @@ public class BaseInvoiceManualCheckServiceImpl extends MpBaseServiceImpl implements BaseIRzTDxRecordInvoiceService { @@ -401,6 +403,8 @@ public class BaseRzTDxRecordInvoiceServiceImpl extends MpBaseServiceImpl pramsMap) { + log.info("一键认证查询总数入参{}",pramsMap); + String hjsl = "0"; String hjje = "0"; String hjse = "0"; @@ -412,8 +416,13 @@ public class BaseRzTDxRecordInvoiceServiceImpl extends MpBaseServiceImpl pramsMap) { + log.info("一键认证入参{}",pramsMap); + String rzts = "0"; String hjje = "0"; String hjse = "0"; diff --git a/dxhy-base/src/main/resources/mapper/BaseFpZhMapper.xml b/dxhy-base/src/main/resources/mapper/BaseFpZhMapper.xml index 714c6539..18b4e39f 100644 --- a/dxhy-base/src/main/resources/mapper/BaseFpZhMapper.xml +++ b/dxhy-base/src/main/resources/mapper/BaseFpZhMapper.xml @@ -73,7 +73,7 @@ bdk_date,t.rzh_back_msg,t.in_account_status,t.payment_status,date_format(t.payment_date,'%Y-%m-%d')payment_date, voucher_number,t.ele_invoice_no, sn_voucher_number, account_period, posting_time ,image_id from t_dx_record_invoice t - WHERE date_format(t.invoice_date,'%Y-%m-%d') between #{kpksrq} and #{kpjsrq} + WHERE t.invoice_date between #{kpksrq} and #{kpjsrq} and (t.invoice_type in('01','03','08','14','31','283','161','183','185') or (t.invoice_type ='32' and t.lq_tdyslxDm='08')) and t.bdk_status in ('1','2') and t.export_mark = '0' @@ -353,7 +353,7 @@ resultMap="RzcxhjResultMap" databaseId="mysql"> select count(1) hjsl,sum(t.invoice_amount)hjje,sum(t.tax_amount)hjse from t_dx_record_invoice t - WHERE date_format(t.invoice_date,'%Y-%m-%d') between #{kpksrq} and #{kpjsrq} + WHERE t.invoice_date between #{kpksrq} and #{kpjsrq} and (t.invoice_type in('01','03','08','14','31','283','161','183','185') or (t.invoice_type ='32' and t.lq_tdyslxDm='08')) and t.auth_status != '0' and t.bdk_status in ('1','2') diff --git a/dxhy-base/src/main/resources/mapper/BaseSggxcxMapper.xml b/dxhy-base/src/main/resources/mapper/BaseSggxcxMapper.xml index f4ba951e..cf4a629a 100644 --- a/dxhy-base/src/main/resources/mapper/BaseSggxcxMapper.xml +++ b/dxhy-base/src/main/resources/mapper/BaseSggxcxMapper.xml @@ -35,6 +35,7 @@ + @@ -71,7 +72,7 @@ t.inaccount_status,t.payment_status,DATE_FORMAT(t.payment_date,'%Y-%m-%d')payment_date,t.settlement_no,t.ele_invoice_no from t_dx_record_invoice t left join t_dx_tax_current c on t.gf_tax_no = c.taxno left join t_dx_dk_count d on c.taxno = d.taxno and c.current_tax_period = d.skssq - WHERE date_format(t.invoice_date,'%Y-%m-%d') between #{kpksrq} and #{kpjsrq} + WHERE t.invoice_date between #{kpksrq} and #{kpjsrq} and (t.invoice_type in('01','03','08','14','31','283','161','183','185') or (t.invoice_type ='32' and t.lq_tdyslxDm='08')) and t.rzh_yesorno = '0' and t.auth_status in('0','5','6') @@ -81,14 +82,14 @@ and t.invoice_status in ('0','7') and t.invoice_amount>0 and t.tax_amount>=0 - and date_format(t.invoice_date,'%Y%m%d') between c.select_start_date and c.select_end_date + and t.invoice_date between c.select_start_date and c.select_end_date and d.tj_status in('0','3') and (t.invoice_status in ('1','2','3','4','8','80') or t.invoice_amount <0 or t.tax_amount <0 or - date_format(t.invoice_date,'%Y%m%d') <= c.select_start_date or - date_format(t.invoice_date,'%Y%m%d') >= + t.invoice_date <= c.select_start_date or + t.invoice_date >= c.select_end_date or d.tj_status in ('1','2')) @@ -395,7 +396,7 @@ select count(1) hjsl,sum(t.invoice_amount)hjje,sum(t.tax_amount)hjse from t_dx_record_invoice t left join t_dx_tax_current c on t.gf_tax_no = c.taxno left join t_dx_dk_count d on c.taxno = d.taxno and c.current_tax_period = d.skssq - WHERE date_format(t.invoice_date,'%Y-%m-%d') between #{kpksrq} and #{kpjsrq} + WHERE t.invoice_date between #{kpksrq} and #{kpjsrq} and (t.invoice_type in('01','03','08','14','31','283','161','183','185') or (t.invoice_type ='32' and t.lq_tdyslxDm='08')) and t.rzh_yesorno = '0' and t.auth_status in('0','5','6') @@ -408,14 +409,14 @@ and t.invoice_status in ('0','7') and t.invoice_amount>0 and t.tax_amount>=0 - and date_format(t.invoice_date,'%Y%m%d') between c.select_start_date and c.select_end_date + and t.invoice_date between c.select_start_date and c.select_end_date and d.tj_status in('0','3') and (t.invoice_status in ('1','2','3','4','8','80') or t.invoice_amount <0 or t.tax_amount <0 or - date_format(t.invoice_date,'%Y%m%d') <= c.select_start_date or - date_format(t.invoice_date,'%Y%m%d') >= + t.invoice_date <= c.select_start_date or + t.invoice_date >= c.select_end_date or d.tj_status in ('1','2')) @@ -1021,8 +1022,8 @@ ,t.qs_type,t.qs_status,t.dk_tax_amount,t.qs_name from t_dx_record_invoice t left join t_dx_tax_current c on t.gf_tax_no = c.taxno left join t_dx_dk_count d on c.taxno = d.taxno and c.current_tax_period = d.skssq - WHERE date_format(t.invoice_date,'%Y-%m-%d') between #{kpksrq} and #{kpjsrq} - and t.invoice_type in('01','03','08','14','31','283','161','183','185') or (t.invoice_type ='32' and t.lq_tdyslxDm='08') + WHERE t.invoice_date between #{kpksrq} and #{kpjsrq} + and (t.invoice_type in('01','03','08','14','31','283','161','183','185') or (t.invoice_type ='32' and t.lq_tdyslxDm='08')) and t.rzh_yesorno = '0' and t.invoice_status in ('0','7') and t.auth_status in('0','5','6') @@ -1030,11 +1031,74 @@ and t.invoice_amount>0 and t.tax_amount>=0 and d.tj_status in('0','3') - and date_format(t.invoice_date,'%Y%m%d') between c.select_start_date and c.select_end_date + and invoice_date between c.select_start_date and c.select_end_date + and t.company = #{company} and t.gf_tax_no in #{item} + + and (t.comp_code in + + #{companyCode} + + or t.comp_code is null or t.comp_code = '' + ) + + + + and t.comp_code = #{companyCode} + + + and (t.comp_code = '' or t.comp_code is null) + + + and t.invoice_status in ('0','7') + and t.invoice_amount>0 + and t.tax_amount>=0 + and t.invoice_date between c.select_start_date and c.select_end_date + and d.tj_status in('0','3') + + + and (t.invoice_status in ('1','2','3','4','8','80') or t.invoice_amount <0 or t.tax_amount <0 or + t.invoice_date <= c.select_start_date or + t.invoice_date >= + c.select_end_date or d.tj_status in ('1','2')) + + + + and t.suspend_status = '1' + + + and (t.suspend_status = '' or t.suspend_status is null or t.suspend_status = '0') + + + and t.suspend_date = #{suspendDate} + + + and t.bzr like concat('%',#{bzr},'%') + + + and t.bzdh = #{bzdh} + + + and t.inaccount_status = #{inAccountStatus} + + + and (t.inaccount_status = '0' or t.inaccount_status = '' or t.inaccount_status is null) + + + and t.sn_voucher_number = #{snVoucherNumber} + + + and t.posting_time between #{postingTimeStart} and #{postingTimeEnd} + + + and t.image_id = #{imageNumber} + + + and t.account_period = #{accountPeriod} + and t.qs_status = #{qszt} @@ -1187,11 +1251,14 @@ - select t.invoice_type,t.dept_id,t.dept_name,t.comp_code - ,t.id,t.invoice_code,t.invoice_no,t.gf_name,t.gf_tax_no,t.xf_name, - DATE_FORMAT(t.invoice_date,'%Y-%m-%d')invoice_date,t.invoice_amount,t.tax_amount,t.invoice_status,DATE_FORMAT(t.qs_date,'%Y-%m-%d')qs_date - ,t.qs_type,t.qs_status,t.dk_tax_amount,t.qs_name,t.sn_voucher_number,t.posting_time,t.image_id,t.account_period, - case date_format(t.invoice_date,'%Y%m%d') between c.select_start_date and c.select_end_date when - true then 1 - else 2 end authStatus,t.bzdh,t.bzr,t.suspend_status,t.suspend_date, - t.inaccount_status,t.payment_status,DATE_FORMAT(t.payment_date,'%Y-%m-%d')payment_date,t.settlement_no,t.ele_invoice_no - from t_dx_record_invoice t left join t_dx_tax_current c on t.gf_tax_no = c.taxno - left join t_dx_dk_count d on c.taxno = d.taxno and c.current_tax_period = d.skssq - WHERE (t.invoice_type in('01','03','08','14','31','283','161','183','185') or (t.invoice_type ='32' and t.lq_tdyslxDm='08')) - and t.rzh_yesorno = '0' - and t.auth_status in('0','5','6') - and t.export_mark = '0' - and t.company = #{company} - and t.invoice_status = '0' - and t.tax_amount > 0 - and t.gf_tax_no in - - #{item} - - - - and t.comp_code = #{companyCode} - - - and (t.comp_code = '' or t.comp_code is null) + SELECT * + FROM ( + SELECT tax_amount, + (@total := @total + tax_amount) AS max_tax, + invoice_type, + comp_code, + uuid, + invoice_code, + invoice_no, + gf_name, + gf_tax_no, + xf_name, + DATE_FORMAT(invoice_date,'%Y-%m-%d')invoice_date, + invoice_amount, + invoice_status, + DATE_FORMAT(qs_date,'%Y-%m-%d')qs_date, + qs_type, + qs_status, + dk_tax_amount, + qs_name, + sn_voucher_number, + posting_time, + image_id, + account_period, + bzdh, + bzr, + suspend_status, + suspend_date, + inaccount_status, + payment_status, + DATE_FORMAT(payment_date,'%Y-%m-%d')payment_date, + settlement_no, + ele_invoice_no + FROM t_dx_record_invoice, (SELECT @total := 0) AS t + WHERE tax_amount != '' + and tax_amount > 0 + and (invoice_type in('01','03','08','14','31','283','161','183','185') or (invoice_type ='32' and lq_tdyslxDm='08')) + and rzh_yesorno = '0' + and auth_status in('0','5','6') + and export_mark = '0' + and invoice_status = '0' + and company = #{company} + + and gf_tax_no in + + #{item} + + + + + and (comp_code in + + #{companyCode} + + or comp_code is null or comp_code = '' + ) + + + and comp_code = #{companyCode} + + + and (comp_code = '' or comp_code is null) + + + + and inaccount_status = '1' + + + + and qs_status = '1' + + + ORDER BY tax_amount + ) AS subquery + WHERE + + limit #{curr},#{size} - - and t.inaccount_status = '1' - + - - and date_format(t.qs_date,'%Y-%m-%d') between #{qsksrq} and #{qsjsrq} - - - and t.voucher_number like concat('%',concat(#{voucherNumber},'%')) - - - = #{paymentDateStart} ]]> - - - - - - and t.payment_status = #{paymentStatus} - - - and t.invoice_type = '14' or (t.invoice_type = '32' and t.lq_tdyslxDm='08') - - - and t.invoice_type = #{invoiceType} - - - and t.invoice_source = #{invoiceSource} - - - and t.invoice_status = #{fpzt} - - - and t.qs_type = #{qsfs} - - - and t.xf_name like concat(#{xfmc},'%') - - - and t.qs_name = #{qsr} - - - and t.settlement_no like concat(#{settlementNo},'%') - - - and t.invoice_no = #{invoiceNo} - - - - and t.qs_name = #{username} + + + + + + diff --git a/dxhy-common/src/main/java/com/dxhy/common/service/impl/DictdetaServciceImpl.java b/dxhy-common/src/main/java/com/dxhy/common/service/impl/DictdetaServciceImpl.java index 7cf18049..a57096ad 100644 --- a/dxhy-common/src/main/java/com/dxhy/common/service/impl/DictdetaServciceImpl.java +++ b/dxhy-common/src/main/java/com/dxhy/common/service/impl/DictdetaServciceImpl.java @@ -34,7 +34,6 @@ public class DictdetaServciceImpl implements DictdetaServcice { @Override public String queryDictName(String type,String code) { - log.info("type={},code={}",type,code); String dictJson = redisUtils.get(RedisConstant.KEY_DICT + type); List dictdetaModels = JSON.parseArray(dictJson, DictdetaModel.class); Map collect = dictdetaModels.stream().collect(Collectors.toMap(DictdetaModel::getDictcode, DictdetaModel::getDictname)); diff --git a/dxhy-core/pom.xml b/dxhy-core/pom.xml index 53abe822..45cd4923 100644 --- a/dxhy-core/pom.xml +++ b/dxhy-core/pom.xml @@ -150,7 +150,7 @@ com.dxhy.jxpt dxhy-oss - 3.2.9 + 3.3.3 diff --git a/dxhy-customs/pom.xml b/dxhy-customs/pom.xml index bf6ef95a..400bed9a 100644 --- a/dxhy-customs/pom.xml +++ b/dxhy-customs/pom.xml @@ -111,7 +111,7 @@ com.dxhy.jxpt dxhy-oss - 3.2.9 + 3.3.3 com.alibaba.cloud diff --git a/dxhy-erp/pom.xml b/dxhy-erp/pom.xml index 550b4269..1341d782 100644 --- a/dxhy-erp/pom.xml +++ b/dxhy-erp/pom.xml @@ -107,7 +107,7 @@ com.dxhy.jxpt dxhy-oss - 3.2.9 + 3.3.3 com.twelvemonkeys.imageio diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/controller/SDNYMainProcessController.java b/dxhy-erp/src/main/java/com/dxhy/erp/controller/SDNYMainProcessController.java index 7923e143..5d092c32 100644 --- a/dxhy-erp/src/main/java/com/dxhy/erp/controller/SDNYMainProcessController.java +++ b/dxhy-erp/src/main/java/com/dxhy/erp/controller/SDNYMainProcessController.java @@ -606,18 +606,13 @@ public class SDNYMainProcessController extends AbstractController { } else { object.setZFILED5(environment); } -// object.setZFILED5(environment); + List sapInvoiceInfos = new ArrayList<>(); if (invoiceInfoList != null && invoiceInfoList.size() > 0) { for (SNInvoice invoice : invoiceInfoList) { String fplxdm = ""; String snFplx = ""; -// if (invoice.getPurchaserTaxNo() == null || "".equals(invoice.getPurchaserTaxNo())){ -// invoice.setPurchaserTaxNo(taxno); -// } -// if (invoice.getPurchaserName() == null || "".equals(invoice.getPurchaserName())){ -// invoice.setPurchaserName(taxname); -// } + result = snPushCheckRecordService.updateInvoicePoll(company, taxno, reimburse, invoice, fplxdm, imageId, compCode); //价税分离判断 diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/service/SNPushCheckRecordService.java b/dxhy-erp/src/main/java/com/dxhy/erp/service/SNPushCheckRecordService.java index 46d5a178..6b0cd5df 100644 --- a/dxhy-erp/src/main/java/com/dxhy/erp/service/SNPushCheckRecordService.java +++ b/dxhy-erp/src/main/java/com/dxhy/erp/service/SNPushCheckRecordService.java @@ -11,6 +11,7 @@ import com.dxhy.common.enums.FplxEnum; import com.dxhy.common.enums.SNFplxEnum; import com.dxhy.common.util.InvoiceUtil; import com.dxhy.common.util.StringHelper; +import com.dxhy.common.utils.R; import com.dxhy.common.vo.UserInfo; import com.dxhy.erp.dao.*; import com.dxhy.erp.entity.*; @@ -30,6 +31,7 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.ResponseEntity; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; @@ -95,6 +97,12 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter { @Resource private SysDeptDao sysDeptDao; + @Resource + private SNPushCheckRecordService snPushCheckRecordService; + + @Resource + private SignSaveInvoiceInfoService signSaveInvoiceInfoService; + @Resource private TdxPlatformCheckLogService platformCheckLogService; @@ -451,8 +459,8 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter { jsonObject.put("tonnage", invoiceData.get("dw")); jsonObject.put("limitPeople", invoiceData.get("xcrs")); String taxRate = ""; - if (invoiceData.get("sl")==null||StringUtils.isBlank(invoiceData.get("sl").toString())|| - "免税".equals(invoiceData.get("sl").toString())|| "不征税".equals(invoiceData.get("sl").toString()) || "***".equals(invoiceData.get("sl").toString())) { + if (invoiceData.get("sl") == null || StringUtils.isBlank(invoiceData.get("sl").toString()) || + "免税".equals(invoiceData.get("sl").toString()) || "不征税".equals(invoiceData.get("sl").toString()) || "***".equals(invoiceData.get("sl").toString())) { taxRate = "0"; jsonObject.put("taxRate", taxRate); } else { @@ -615,14 +623,19 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter { InvoiceInfo invoiceInfo = convertToInvoiceInfo(invoice); log.info("进行价税分离的发票信息为:{}", invoiceInfo); ServiceResult invoiceResult = new ServiceResult<>(); + + boolean flag = false; //0523晚成伟提出新需求,客运汽车票必须实名才可以进行价税分离 - if(SNFplxEnum.KYQCP.getFplxDm().equals(fplxdm)){ - if(StringUtils.isEmpty(invoice.getRiderName()) || StringUtils.isEmpty(invoice.getIdcardNo())){ + if (SNFplxEnum.KYQCP.getFplxDm().equals(fplxdm)) { + if (StringUtils.isEmpty(invoice.getRiderName()) || StringUtils.isEmpty(invoice.getIdcardNo())) { log.info("非实名的实名客票 不需要做价税分离"); + flag = true; + invoiceResult.setMsg("ok"); + invoiceResult.setResult(true); } - invoiceResult.setMsg("ok"); - invoiceResult.setResult(true); - }else { + } + + if(!flag) { invoiceResult = this.valoremTaxCount(invoiceInfo, "Y"); InvoiceInfo data = invoiceResult.getData(); if (data != null) { @@ -637,6 +650,7 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter { } } + if (!"ok".equals(invoiceResult.getMsg()) && !"0000".equals(invoiceResult.getMsg())) { log.info("价税分离失败:{}", invoiceResult.getMsg()); return invoiceResult.getMsg(); @@ -675,6 +689,62 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter { if ("01".equals(fplxdm) || "02".equals(fplxdm) || "03".equals(fplxdm) || "04".equals(fplxdm) || "08".equals(fplxdm) || "10".equals(fplxdm) || "11".equals(fplxdm) || "14".equals(fplxdm) || "15".equals(fplxdm) || "31".equals(fplxdm) || "32".equals(fplxdm)) { + DynamicContextHolder.push("business" + DbConstant.BUSINESS_WRITE); + String fpdm = invoice.getInvoiceCode(); + String fphm = invoice.getInvoiceNumber(); + + QueryWrapper recordWrapper = new QueryWrapper<>(); + if (StringUtils.isEmpty(fpdm)) { + recordWrapper.eq("uuid", fphm); + } else { + recordWrapper.eq("uuid", fpdm + fphm); + } + + BaseTDxRecordInvoice update = baseTDxRecordInvoiceDao.selectOne(recordWrapper); + Map pramsMap = new HashMap<>(); + JSONObject checkInvoiceResult = null; + + //如果提交的发票信息在底账库不存在,则重新补充查验,插入数据库中. + if (update == null) { + try { + //传入的参数为:{billingDate=2023-04-24, totalAmount=9708.74, purchaserTaxNo=91370000MA3RD38A9Q, invoiceNumber=02014197, invoiceType=10100, + // invoiceCode=3700222130, checkCode=} + pramsMap.put("invoiceCode", fpdm); + pramsMap.put("invoiceNumber", fphm); + if (StringUtils.isNotEmpty(invoice.getBillingDate())) { + String billingDate = invoice.getBillingDate().replaceAll("-", ""); + pramsMap.put("billingDate", billingDate); + } + if("31".equals(invoice.getInvoiceType()) || "32".equals(invoice.getInvoiceType())){ + pramsMap.put("totalAmount", invoice.getAmountTax()); + }else{ + pramsMap.put("totalAmount", invoice.getTotalAmount()); + } + + pramsMap.put("purchaserTaxNo", invoice.getPurchaserTaxNo()); + if("31".equals(invoice.getInvoiceType()) || "32".equals(invoice.getInvoiceType())){ + pramsMap.put("invoiceType", "21"); + }else { + pramsMap.put("invoiceType", invoice.getInvoiceType()); + } + + checkInvoiceResult = snPushCheckRecordService.singleCheckInvoice(pramsMap); + log.info("补充查验结果为:{}", checkInvoiceResult); + } catch (Exception e) { + e.printStackTrace(); + log.error("补充查验失败,errormsg:{}", e.getMessage()); + } + + if (!checkInvoiceResult.containsKey("code")) { + if (!checkInvoiceResult.containsKey("cyjg")) { + checkInvoiceResult.put("invoiceNo", checkInvoiceResult.getString("invoiceNumber")); + log.info("补充查验的结果为:{}", checkInvoiceResult); + signSaveInvoiceInfoService.saveQueryInvoiceResult(checkInvoiceResult, "", "1", "business"); + } + } + } + DynamicContextHolder.push(DbConstant.BASICS_WRITE); + //可查验发票,已入库,更新票池 Integer integer = this.pushInvoiceToRecordInvoice2(invoice, imageId, compCode); log.info("可查验发票,更新底账库完成"); @@ -720,10 +790,10 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter { log.info("uuid={}", uuid); reimburse.setSelectId(uuid); - if (StringHelper.isNotBlank(invoice.getTaxRate())){ + if (StringHelper.isNotBlank(invoice.getTaxRate())) { reimburse.setTaxRate(invoice.getTaxRate()); reimburse.setTaxCode(getTaxCode(invoice.getTaxRate())); - }else { + } else { reimburse.setTaxRate("0%"); reimburse.setTaxCode(getTaxCode(reimburse.getTaxRate())); } diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/InvoiceAuthServiceImpl.java b/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/InvoiceAuthServiceImpl.java index dc16e642..7935c53b 100644 --- a/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/InvoiceAuthServiceImpl.java +++ b/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/InvoiceAuthServiceImpl.java @@ -19,7 +19,6 @@ import com.dxhy.erp.model.auth.InterfaceCode; import com.dxhy.erp.service.InvoiceAuthService; import com.dxhy.erp.service.TDxInvoiceReimburseService; import com.dxhy.erp.utils.CheckUtils; -import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; import org.springframework.stereotype.Service; @@ -35,7 +34,6 @@ import java.util.*; */ @SuppressWarnings({"AlibabaMethodTooLong", "AlibabaUndefineMagicConstant"}) @Service -@Slf4j public class InvoiceAuthServiceImpl extends MpBaseServiceImpl implements InvoiceAuthService { @@ -366,9 +364,8 @@ public class InvoiceAuthServiceImpl extends MpBaseServiceImpl{}",xxbs); DynamicContextHolder.push("business"+DbConstant.BUSINESS_READ); - if(fplxList.contains(zdata1.getZFPLX()) && !"X".equals(xxbs)){ + if(fplxList.contains(zdata1.getZFPLX()) && !"X".equalsIgnoreCase(xxbs)){ TdxRecordInvoice recordInvoiceByUuid = tDxrecordInvoiceDao.getRecordInvoiceByUuid(uuid); if(recordInvoiceByUuid!=null){ UpdateWrapper updateWrapper = new UpdateWrapper(); @@ -424,7 +421,7 @@ public class InvoiceAuthServiceImpl extends MpBaseServiceImpl{}",pramsMap.get("companyCodes")); + } + if (StringUtils.isNotBlank(companyCode)){ + pramsMap.put("companyCode",companyCode); + }else { + return ResponseEntity.ok(R.error("所属组织不能为空")); + } + if (pramsMap.get("kpksrq") != null && !"".equals(pramsMap.get("kpksrq"))) { pramsMap.put("kpksrq", DateUtils.getMorning(DateUtils.strToDate(pramsMap.get("kpksrq").toString()))); } @@ -199,6 +219,25 @@ public class ExtFpzhcxController extends AbstractController { } + public boolean checkList(List list) { + boolean flag =false; + if (list == null || list.isEmpty()){ + flag = true; + }else { + String s = list.toString().replace("[","").replace("]",""); + if (StringHelper.isBlank(s)){ + flag = true; + } + if (StringHelper.isNotBlank(s) && s.contains(",")){ + String replace = s.replace(",", ""); + if (StringHelper.isBlank(replace)){ + flag = true; + } + } + } + return flag; + } + /** * 报表异常发票查询 * diff --git a/dxhy-extend/src/main/resources/mapper/ExtBbfpzhMapper.xml b/dxhy-extend/src/main/resources/mapper/ExtBbfpzhMapper.xml index a565392a..7cdc8932 100644 --- a/dxhy-extend/src/main/resources/mapper/ExtBbfpzhMapper.xml +++ b/dxhy-extend/src/main/resources/mapper/ExtBbfpzhMapper.xml @@ -69,11 +69,30 @@ t.settlement_no,t.inaccount_status,t.bzdh, t.settlement_status,t.voucher_number,t.total_amount,t.sn_voucher_number,t.posting_time,t.image_id,t.account_period from t_dx_record_invoice t - WHERE t.company = #{company} and t.invoice_date between #{kpksrq} and #{kpjsrq} - and t.gf_tax_no in - - #{item} - + WHERE t.company = #{company} + and t.invoice_date between #{kpksrq} and #{kpjsrq} + + + and t.gf_tax_no in + + #{item} + + + + + and (t.comp_code in + + #{companyCode} + + or t.comp_code is null or t.comp_code = '' + ) + + + and t.comp_code = #{companyCode} + + + and (t.comp_code = '' or t.comp_code is null) + and t.bzdh = #{bzdh} @@ -331,10 +350,29 @@ select count(1) hjsl,sum(t.invoice_amount)hjje,sum(t.tax_amount)hjse from t_dx_record_invoice t where t.invoice_date between #{kpksrq} and #{kpjsrq} - and t.company = #{company} and t.gf_tax_no in - - #{item} - + and t.company = #{company} + + + and t.gf_tax_no in + + #{item} + + + + + and (t.comp_code in + + #{companyCode} + + or t.comp_code is null or t.comp_code = '' + ) + + + and t.comp_code = #{companyCode} + + + and (t.comp_code = '' or t.comp_code is null) + and t.invoice_status = #{invoiceStatus} diff --git a/dxhy-extend/src/main/resources/mapper/ExtBbycfpcxMapper.xml b/dxhy-extend/src/main/resources/mapper/ExtBbycfpcxMapper.xml index 3915015b..60b6c659 100644 --- a/dxhy-extend/src/main/resources/mapper/ExtBbycfpcxMapper.xml +++ b/dxhy-extend/src/main/resources/mapper/ExtBbycfpcxMapper.xml @@ -182,7 +182,7 @@ where t.invoice_status != '0' and t.invoice_type in ('01','03','08','14','31') and t.company = #{company} - and DATE_FORMAT(t.invoice_date,'%Y-%m-%d') between #{kpksrq} and #{kpjsrq} + and t.invoice_date between #{kpksrq} and #{kpjsrq} and t.gf_tax_no in #{item} diff --git a/dxhy-extend/src/main/resources/mapper/ExtJxssbbMapper.xml b/dxhy-extend/src/main/resources/mapper/ExtJxssbbMapper.xml index 8b883a47..11a9b730 100644 --- a/dxhy-extend/src/main/resources/mapper/ExtJxssbbMapper.xml +++ b/dxhy-extend/src/main/resources/mapper/ExtJxssbbMapper.xml @@ -13,8 +13,10 @@ select count(1) totalCount, ifnull(sum(invoice_amount), 0) totalAmount, ifnull(sum(dk_tax_amount), 0) totalTax FROM t_dx_record_invoice - WHERE valid='1' and invoice_type in ('01','03','08','14','31') AND invoice_status='0' AND - rzh_yesorno='1' + WHERE valid='1' + and (invoice_type in('01','03','08','14','31','283','161','183','185') or (invoice_type ='32' and t.lq_tdyslxDm='08')) + AND invoice_status='0' + AND rzh_yesorno='1' and rzh_belong_date = #{skssq} @@ -54,9 +56,11 @@