parent
849225f75a
commit
020c145228
@ -0,0 +1,77 @@ |
|||||||
|
package com.dxhy.erp.dao; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||||
|
import com.dxhy.erp.entity.TDxCheckLog; |
||||||
|
import org.apache.ibatis.annotations.Mapper; |
||||||
|
import org.apache.ibatis.annotations.Param; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
import java.util.Map; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author jiaohongyang |
||||||
|
* @date 2019年3月26日 下午6:02:48 查验记录表dao |
||||||
|
*/ |
||||||
|
@Mapper |
||||||
|
public interface CheckLogDao extends BaseMapper<TDxCheckLog> { |
||||||
|
|
||||||
|
/** |
||||||
|
* 查询查验历史记录 |
||||||
|
* |
||||||
|
* @param pramsMap |
||||||
|
* 请求参数 |
||||||
|
* @return 返回结果 |
||||||
|
* @since 1.0 |
||||||
|
*/ |
||||||
|
List<TDxCheckLog> selectCheckHistory(Map<String, String> pramsMap); |
||||||
|
|
||||||
|
/** |
||||||
|
* 查询查验历史合计 |
||||||
|
* |
||||||
|
* @param pramsMap |
||||||
|
* 请求参数 |
||||||
|
* @return 返回结果 |
||||||
|
* @since 1.0 |
||||||
|
*/ |
||||||
|
List<TDxCheckLog> selectCheckHistoryHj(Map<String, String> pramsMap); |
||||||
|
|
||||||
|
/** |
||||||
|
* 查询查验历史统计信息 |
||||||
|
* |
||||||
|
* @param pramsMap |
||||||
|
* 请求参数 |
||||||
|
* @return 返回结果 |
||||||
|
* @since 1.0 |
||||||
|
*/ |
||||||
|
List<TDxCheckLog> selectCheckStatisticsCount(Map<String, String> pramsMap); |
||||||
|
|
||||||
|
/** |
||||||
|
* 查询查验历史-历史记录 |
||||||
|
* |
||||||
|
* @param pramsMap |
||||||
|
* 请求参数 |
||||||
|
* @return 返回结果 |
||||||
|
*/ |
||||||
|
List<TDxCheckLog> selectCheckHistoryDetail(Map<String, String> pramsMap); |
||||||
|
|
||||||
|
/** |
||||||
|
* 查验综合查询 |
||||||
|
* |
||||||
|
* @param pramsMap |
||||||
|
* 请求参数 |
||||||
|
* @return 返回结果 |
||||||
|
* @since 1.0 |
||||||
|
*/ |
||||||
|
List<TDxCheckLog> getCheckList(Map<String, Object> pramsMap); |
||||||
|
|
||||||
|
/** |
||||||
|
* 查验综合查询合计 |
||||||
|
* |
||||||
|
* @param pramsMap |
||||||
|
* 请求参数 |
||||||
|
* @return 返回结果 |
||||||
|
* @since 1.0 |
||||||
|
*/ |
||||||
|
List<TDxCheckLog> getCheckListHj(Map<String, Object> pramsMap); |
||||||
|
|
||||||
|
} |
@ -0,0 +1,15 @@ |
|||||||
|
package com.dxhy.erp.dao; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||||
|
import com.dxhy.erp.entity.TdxCheckInvoiceDetail; |
||||||
|
import org.apache.ibatis.annotations.Mapper; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author jiaohongyang |
||||||
|
* @date 2019年3月26日 下午6:02:48 查验明细表dao |
||||||
|
* |
||||||
|
*/ |
||||||
|
@Mapper |
||||||
|
public interface SignCheckInvoiceDetailDao extends BaseMapper<TdxCheckInvoiceDetail> { |
||||||
|
|
||||||
|
} |
@ -0,0 +1,17 @@ |
|||||||
|
package com.dxhy.erp.dao; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||||
|
import com.dxhy.erp.entity.TdxCheckVehicleSale; |
||||||
|
import org.apache.ibatis.annotations.Mapper; |
||||||
|
|
||||||
|
/** |
||||||
|
* |
||||||
|
* 查验机动车明细表dao |
||||||
|
* |
||||||
|
* @author jiaohongyang |
||||||
|
* @date 2019年3月26日 下午6:02:48 |
||||||
|
*/ |
||||||
|
@Mapper |
||||||
|
public interface SignCheckVehicleSaleDao extends BaseMapper<TdxCheckVehicleSale> { |
||||||
|
|
||||||
|
} |
@ -0,0 +1,68 @@ |
|||||||
|
package com.dxhy.erp.entity; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
import java.io.Serializable; |
||||||
|
|
||||||
|
/** |
||||||
|
* |
||||||
|
* 扫码查验返回页面对象 |
||||||
|
** |
||||||
|
* @author peipei.li * @date 2019-04-29 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class ExtSmcyVO implements Serializable { |
||||||
|
|
||||||
|
private static final long serialVersionUID = 922509817008537140L; |
||||||
|
|
||||||
|
/** |
||||||
|
* 发票唯一标识 |
||||||
|
*/ |
||||||
|
private String id; |
||||||
|
|
||||||
|
/** |
||||||
|
* 查验结果 |
||||||
|
*/ |
||||||
|
private String checkMassege; |
||||||
|
|
||||||
|
/** |
||||||
|
* 发票代码 |
||||||
|
*/ |
||||||
|
private String invoiceCode; |
||||||
|
|
||||||
|
/** |
||||||
|
* 发票号码 |
||||||
|
*/ |
||||||
|
private String invoiceNo; |
||||||
|
|
||||||
|
/** |
||||||
|
* 开票日期 |
||||||
|
*/ |
||||||
|
private String invoiceDate; |
||||||
|
|
||||||
|
/** |
||||||
|
* 金额 |
||||||
|
*/ |
||||||
|
private String invoiceAmount; |
||||||
|
|
||||||
|
/** |
||||||
|
* 校验码 |
||||||
|
*/ |
||||||
|
private String checkCode; |
||||||
|
|
||||||
|
/** |
||||||
|
* 发票类型 |
||||||
|
*/ |
||||||
|
private String invoiceType; |
||||||
|
|
||||||
|
/** |
||||||
|
* 查验结果代码 |
||||||
|
*/ |
||||||
|
private String handleCode; |
||||||
|
private String gfmc; |
||||||
|
private String xfmc; |
||||||
|
private Boolean detailState; |
||||||
|
private Boolean delState; |
||||||
|
private Boolean editState; |
||||||
|
private String totalAmount; |
||||||
|
} |
@ -0,0 +1,26 @@ |
|||||||
|
package com.dxhy.erp.service; |
||||||
|
|
||||||
|
import com.dxhy.common.service.MpBaseService; |
||||||
|
import com.dxhy.erp.entity.TdxCheckInvoiceDetail; |
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* |
||||||
|
* 查验明细业务处理接口 |
||||||
|
* |
||||||
|
* @author peipei.li |
||||||
|
* @date 2019-05-09 |
||||||
|
*/ |
||||||
|
public interface SignCheckRecordInvoiceDetailService extends MpBaseService<TdxCheckInvoiceDetail> { |
||||||
|
|
||||||
|
/** |
||||||
|
* 根据uuid查询发票明细 |
||||||
|
* |
||||||
|
* @param uuid |
||||||
|
* 发票唯一标识 |
||||||
|
* @return 返回结果 |
||||||
|
* @since 1.0 |
||||||
|
*/ |
||||||
|
List<TdxCheckInvoiceDetail> getInvoiceDetailListByUuid(String uuid); |
||||||
|
|
||||||
|
} |
@ -0,0 +1,22 @@ |
|||||||
|
package com.dxhy.erp.service; |
||||||
|
|
||||||
|
import com.dxhy.common.service.MpBaseService; |
||||||
|
import com.dxhy.erp.entity.TdxCheckVehicleSale; |
||||||
|
|
||||||
|
/** |
||||||
|
* |
||||||
|
* 查验机动车明细业务处理接口 * @author peipei.li * @date 2019-05-09 |
||||||
|
*/ |
||||||
|
public interface SignCheckVehicleSaleInvoiceService extends MpBaseService<TdxCheckVehicleSale> { |
||||||
|
|
||||||
|
/** |
||||||
|
* 根据uuid查询机动车明细 |
||||||
|
* |
||||||
|
* @param uuid |
||||||
|
* 发票唯一标识 |
||||||
|
* @return 返回结果 |
||||||
|
* @since 1.0 |
||||||
|
*/ |
||||||
|
TdxCheckVehicleSale getCheckInvoiceByUuid(String uuid); |
||||||
|
|
||||||
|
} |
@ -0,0 +1,27 @@ |
|||||||
|
package com.dxhy.erp.service; |
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject; |
||||||
|
|
||||||
|
/** |
||||||
|
* |
||||||
|
* 保存查验结果到查验相关记录表业务处理接口 |
||||||
|
* |
||||||
|
* @author peipei.li |
||||||
|
* @date 2019-05-09 |
||||||
|
*/ |
||||||
|
public interface SignSaveCheckInfoService { |
||||||
|
|
||||||
|
/** |
||||||
|
* 保存查验结果到查验相关表 |
||||||
|
* |
||||||
|
* @param queryInvoiceResult |
||||||
|
* 请求参数 |
||||||
|
* @param dbName |
||||||
|
* 数据源 |
||||||
|
* @param userid |
||||||
|
* 用户id |
||||||
|
* @since 1.0 |
||||||
|
*/ |
||||||
|
void saveCheckInfo(JSONObject queryInvoiceResult, String userid, String dbName); |
||||||
|
|
||||||
|
} |
@ -0,0 +1,335 @@ |
|||||||
|
package com.dxhy.erp.service.impl; |
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject; |
||||||
|
import com.dxhy.common.constant.DbConstant; |
||||||
|
import com.dxhy.common.datasource.config.DynamicContextHolder; |
||||||
|
import com.dxhy.common.enums.FplxEnum; |
||||||
|
import com.dxhy.common.service.TabulateRedisService; |
||||||
|
import com.dxhy.common.service.impl.MpBaseServiceImpl; |
||||||
|
import com.dxhy.common.util.*; |
||||||
|
import com.dxhy.common.utils.DateUtils; |
||||||
|
import com.dxhy.common.vo.UserInfo; |
||||||
|
import com.dxhy.erp.dao.CheckLogDao; |
||||||
|
import com.dxhy.erp.entity.ExtSmcyVO; |
||||||
|
import com.dxhy.erp.entity.TDxCheckLog; |
||||||
|
import com.dxhy.erp.entity.TdxCheckRecordInvoice; |
||||||
|
import com.dxhy.erp.service.InvoiceQueryService; |
||||||
|
import com.dxhy.erp.service.SignCheckRecordService; |
||||||
|
import com.dxhy.erp.service.SignSaveCheckInfoService; |
||||||
|
import com.dxhy.erp.utils.InvoiceQueryUtil; |
||||||
|
import com.dxhy.ofd.service.OfdService; |
||||||
|
import com.dxhy.oss.service.FileService; |
||||||
|
import lombok.extern.slf4j.Slf4j; |
||||||
|
import org.apache.commons.lang3.StringUtils; |
||||||
|
import org.springframework.beans.factory.annotation.Value; |
||||||
|
import org.springframework.stereotype.Service; |
||||||
|
|
||||||
|
import javax.annotation.Resource; |
||||||
|
import java.math.BigDecimal; |
||||||
|
import java.text.DecimalFormat; |
||||||
|
import java.util.*; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author ld |
||||||
|
*/ |
||||||
|
@SuppressWarnings({"AlibabaUndefineMagicConstant", "AlibabaMethodTooLong", "AlibabaStringConcat", |
||||||
|
"AlibabaAvoidComplexCondition", "AlibabaCollectionInitShouldAssignCapacity"}) |
||||||
|
@Service("invoiceQueryService") |
||||||
|
@Slf4j |
||||||
|
public class InvoiceQueryServiceImpl extends MpBaseServiceImpl<CheckLogDao, TDxCheckLog> |
||||||
|
implements InvoiceQueryService { |
||||||
|
|
||||||
|
@Resource |
||||||
|
private InvoiceQueryUtil invoiceQueryUtil; |
||||||
|
@Resource |
||||||
|
private OfdService ofdService; |
||||||
|
@Resource |
||||||
|
private ScanIdUtils scanIdUtils; |
||||||
|
|
||||||
|
@Resource |
||||||
|
private SignCheckRecordService signCheckRecordService; |
||||||
|
|
||||||
|
@Resource |
||||||
|
private SignSaveCheckInfoService signSaveCheckInfoService; |
||||||
|
|
||||||
|
@Resource |
||||||
|
private TabulateRedisService tabulateRedisService; |
||||||
|
@Resource |
||||||
|
private FileService fileService; |
||||||
|
/** |
||||||
|
* 只允许查验成功一次公司编码 |
||||||
|
*/ |
||||||
|
|
||||||
|
@Value("${checkCount.company}") |
||||||
|
private String companyCheck; |
||||||
|
|
||||||
|
|
||||||
|
@Override |
||||||
|
public String smQueryInvoice(Map<String, String> pramsMap) { |
||||||
|
|
||||||
|
String[] titlelist = {"查验结果描述", "发票代码", "发票号码", "开票日期", "发票金额", "校验码"}; |
||||||
|
String[] titleprop = |
||||||
|
{"checkMassege", "invoiceCode", "invoiceNo", "invoiceDate", "invoiceAmount", "checkCode", "invoiceType"}; |
||||||
|
// 需要设置返回列表标题时调用
|
||||||
|
JSONObject json = super.setTitleList(titlelist, titleprop); |
||||||
|
|
||||||
|
TDxCheckLog checkLog = this.checkSingleInvioce(pramsMap); |
||||||
|
|
||||||
|
List<ExtSmcyVO> returnList = new ArrayList<>(); |
||||||
|
ExtSmcyVO smcyVo = this.convertToSmcyView(checkLog); |
||||||
|
returnList.add(smcyVo); |
||||||
|
|
||||||
|
json.put("datalist", returnList); |
||||||
|
|
||||||
|
return super.responseResult(json); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public String checkingInvoiceInfo(String dbName, String uuid, UserInfo userInfo) { |
||||||
|
String notes = null; |
||||||
|
DynamicContextHolder.push(dbName + DbConstant.BUSINESS_READ); |
||||||
|
TdxCheckRecordInvoice checkRecordTmp = signCheckRecordService.getCheckInvoiceByUuid(uuid); |
||||||
|
if (checkRecordTmp != null) { |
||||||
|
if (!StringUtils.isBlank(checkRecordTmp.getCheckUser()) && userInfo != null |
||||||
|
&& !userInfo.getUsername().equals(checkRecordTmp.getCheckUser())) { |
||||||
|
notes = "该发票票已被他人查验,不可重复查验!"; |
||||||
|
return notes; |
||||||
|
} |
||||||
|
if ("0001".equals(checkRecordTmp.getCyjgCode())) { |
||||||
|
if (companyCheck.contains(userInfo.getCompany())) { |
||||||
|
notes = "该发票已查验成功,不可重复查验!"; |
||||||
|
return notes; |
||||||
|
} else if (DateUtils.getStringDateShort().equals(DateUtils.dateToStr(checkRecordTmp.getCreateDate()))) { |
||||||
|
notes = "该发票今日已查验成功,不可重复查验!"; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
return notes; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 查验一张发票信息,此方法为公共方法,多种查验方式公用 |
||||||
|
* |
||||||
|
* @param pramsMap |
||||||
|
* 请求参数 |
||||||
|
* @return 返回结果 |
||||||
|
* |
||||||
|
*/ |
||||||
|
private TDxCheckLog checkSingleInvioce(Map<String, String> pramsMap) { |
||||||
|
|
||||||
|
TDxCheckLog checkLog = new TDxCheckLog(); |
||||||
|
|
||||||
|
String userId = pramsMap.get("userid"); |
||||||
|
String invoiceType = pramsMap.get("invoiceType"); |
||||||
|
String invoiceCode = pramsMap.get("invoiceCode"); |
||||||
|
if (StringHelper.isBlank(invoiceType)) { |
||||||
|
if(FplxEnum.QDZZP.getFplxDm().equals(invoiceType) || FplxEnum.QDPP.getFplxDm().equals(invoiceType)){ |
||||||
|
invoiceType = "31"; |
||||||
|
}else { |
||||||
|
InvoiceUtil iu = new InvoiceUtil(invoiceCode); |
||||||
|
invoiceType = iu.getFplxdm(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
// 通行费发票二维码中的发票类型代码为10“电子发票”,需要单独根据发票代码判断发票类型
|
||||||
|
if (FplxEnum.DZP.getFplxDm().equals(invoiceType)) { |
||||||
|
InvoiceUtil iu = new InvoiceUtil(invoiceCode); |
||||||
|
if (FplxEnum.TXF.getFplxDm().equals(iu.getFplxdm())) { |
||||||
|
invoiceType = FplxEnum.TXF.getFplxDm(); |
||||||
|
} |
||||||
|
} |
||||||
|
String invoiceNo = pramsMap.get("invoiceNo"); |
||||||
|
String invoiceDate = pramsMap.get("invoiceDate"); |
||||||
|
String invoiceAmount = pramsMap.getOrDefault("invoiceAmount", ""); |
||||||
|
String taxAmount = pramsMap.getOrDefault("taxAmount", ""); |
||||||
|
String checkCode = pramsMap.getOrDefault("checkCode", ""); |
||||||
|
String gfmc = pramsMap.getOrDefault("gfmc", ""); |
||||||
|
String xfmc = pramsMap.getOrDefault("xfmc", ""); |
||||||
|
String saveHistory = pramsMap.getOrDefault("saveHistory", ""); |
||||||
|
String taxNo = pramsMap.getOrDefault("taxNo", ""); |
||||||
|
String company = pramsMap.get("company"); |
||||||
|
checkLog.setCheckUser(userId); |
||||||
|
if(FplxEnum.QDZZP.getFplxDm().equals(invoiceType) || FplxEnum.QDPP.getFplxDm().equals(invoiceType)){ |
||||||
|
checkLog.setInvoiceType(pramsMap.get("invoiceType")); |
||||||
|
if (!StringHelper.isBlank(invoiceAmount)) { |
||||||
|
try { |
||||||
|
checkLog.setTotalAmount(BigDecimal.valueOf(new DecimalFormat().parse(invoiceAmount).doubleValue())); |
||||||
|
checkLog.setInvoiceAmount(null); |
||||||
|
} catch (Exception e) { |
||||||
|
checkLog.setTotalAmount(new BigDecimal("0")); |
||||||
|
} |
||||||
|
} |
||||||
|
}else { |
||||||
|
if (!StringHelper.isBlank(invoiceAmount)) { |
||||||
|
try { |
||||||
|
checkLog.setInvoiceAmount(BigDecimal.valueOf(new DecimalFormat().parse(invoiceAmount).doubleValue())); |
||||||
|
} catch (Exception e) { |
||||||
|
checkLog.setInvoiceAmount(new BigDecimal("0")); |
||||||
|
} |
||||||
|
} |
||||||
|
checkLog.setInvoiceCode(invoiceCode); |
||||||
|
checkLog.setInvoiceType(invoiceType); |
||||||
|
} |
||||||
|
|
||||||
|
checkLog.setInvoiceNo(invoiceNo); |
||||||
|
|
||||||
|
if (!StringHelper.isBlank(invoiceDate)) { |
||||||
|
checkLog.setInvoiceDate(DateUtils.strToDate(invoiceDate)); |
||||||
|
} |
||||||
|
checkLog.setHandleDate(DateUtils.getSqlDateLong()); |
||||||
|
|
||||||
|
if (!StringHelper.isBlank(taxAmount)) { |
||||||
|
try { |
||||||
|
checkLog.setTaxAmount(BigDecimal.valueOf(new DecimalFormat().parse(taxAmount).doubleValue())); |
||||||
|
} catch (Exception e) { |
||||||
|
checkLog.setTaxAmount(new BigDecimal("0")); |
||||||
|
} |
||||||
|
} |
||||||
|
if (!StringHelper.isBlank(checkCode)) { |
||||||
|
checkLog.setCheckCode(checkCode); |
||||||
|
} |
||||||
|
checkLog.setBuyerName(gfmc); |
||||||
|
checkLog.setSalerName(xfmc); |
||||||
|
|
||||||
|
JSONObject queryInvoiceResult = |
||||||
|
invoiceQueryUtil.queryInvoice(invoiceCode, invoiceNo, invoiceDate, invoiceAmount, checkCode, taxNo,invoiceType); |
||||||
|
queryInvoiceResult.put("scanId", pramsMap.get("scanId")); |
||||||
|
queryInvoiceResult.put("company", pramsMap.get("company")); |
||||||
|
if (queryInvoiceResult.containsKey("returnCode")) { |
||||||
|
// 查验出错
|
||||||
|
checkLog.setHandleCode(queryInvoiceResult.getString("returnCode")); |
||||||
|
checkLog.setCheckMassege(queryInvoiceResult.getString("returnMessage")); |
||||||
|
if ("Y".equals(saveHistory)) { |
||||||
|
// 保存查验主表
|
||||||
|
TdxCheckRecordInvoice checkRecordInvoice = new TdxCheckRecordInvoice(); |
||||||
|
checkRecordInvoice.setScanId(pramsMap.get("scanId")); |
||||||
|
checkRecordInvoice.setUuid((StringUtils.isBlank(invoiceCode)?"":invoiceCode) + invoiceNo); |
||||||
|
checkRecordInvoice.setCheckUser(userId); |
||||||
|
checkRecordInvoice.setFphm(invoiceNo); |
||||||
|
checkRecordInvoice.setFpzl(invoiceType); |
||||||
|
checkRecordInvoice.setCompany(pramsMap.get("company")); |
||||||
|
if (!StringHelper.isBlank(invoiceDate)) { |
||||||
|
checkRecordInvoice.setKprq(DateUtils.strToStrDate2(invoiceDate)); |
||||||
|
} |
||||||
|
if(FplxEnum.QDZZP.getFplxDm().equals(invoiceType) || FplxEnum.QDPP.getFplxDm().equals(invoiceType)){ |
||||||
|
if (!StringHelper.isBlank(invoiceAmount)) { |
||||||
|
checkRecordInvoice.setJshj(invoiceAmount); |
||||||
|
} |
||||||
|
}else { |
||||||
|
checkRecordInvoice.setFpdm(invoiceCode); |
||||||
|
if (!StringHelper.isBlank(invoiceAmount)) { |
||||||
|
checkRecordInvoice.setJe(invoiceAmount); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if (!StringHelper.isBlank(taxAmount)) { |
||||||
|
checkRecordInvoice.setSe(taxAmount); |
||||||
|
} |
||||||
|
if (!StringHelper.isBlank(checkCode)) { |
||||||
|
checkRecordInvoice.setJym(checkCode); |
||||||
|
} |
||||||
|
checkRecordInvoice.setPdfMd5(Long.valueOf(scanIdUtils.createSerialNum())); |
||||||
|
checkRecordInvoice.setCreateDate(DateUtils.getSqlDateLong()); |
||||||
|
checkRecordInvoice.setCyjgCode(queryInvoiceResult.getString("returnCode")); |
||||||
|
checkRecordInvoice.setCyjgTip(queryInvoiceResult.getString("returnMessage")); |
||||||
|
signCheckRecordService.saveCheckRecordInvoice(checkRecordInvoice, pramsMap.get("dbName")); |
||||||
|
} |
||||||
|
} else { |
||||||
|
// 查验成功
|
||||||
|
if ("Y".equals(saveHistory)) { |
||||||
|
// 查验调用,保存查验记录
|
||||||
|
signSaveCheckInfoService.saveCheckInfo(queryInvoiceResult, pramsMap.get("userid"), pramsMap.get("dbName")); |
||||||
|
if(StringUtils.isNotBlank(queryInvoiceResult.getString("invoiceType"))){ |
||||||
|
checkLog.setInvoiceType(queryInvoiceResult.getString("invoiceType")); |
||||||
|
} |
||||||
|
} |
||||||
|
checkLog.setHandleCode(queryInvoiceResult.getString("resultCode")); |
||||||
|
checkLog.setCheckMassege(queryInvoiceResult.getString("resultTip")); |
||||||
|
try { |
||||||
|
checkLog.setTaxAmount(queryInvoiceResult.getBigDecimal("taxAmount")); |
||||||
|
} catch (Exception e) { |
||||||
|
checkLog.setTaxAmount(new BigDecimal(0)); |
||||||
|
} |
||||||
|
try { |
||||||
|
checkLog.setTotalAmount(queryInvoiceResult.getBigDecimal("totalAmount")); |
||||||
|
} catch (Exception e) { |
||||||
|
checkLog.setTotalAmount(new BigDecimal(0)); |
||||||
|
} |
||||||
|
try { |
||||||
|
if (FplxEnum.ESC.getFplxDm().equals(invoiceType)) { |
||||||
|
checkLog.setInvoiceAmount(queryInvoiceResult.getBigDecimal("carPrice")); |
||||||
|
} else { |
||||||
|
checkLog.setInvoiceAmount(queryInvoiceResult.getBigDecimal("invoiceAmount")); |
||||||
|
} |
||||||
|
} catch (Exception e) { |
||||||
|
checkLog.setInvoiceAmount(new BigDecimal(0)); |
||||||
|
} |
||||||
|
checkLog.setBuyerName(queryInvoiceResult.getString("buyerName")); |
||||||
|
checkLog.setSalerName(queryInvoiceResult.getString("salerName")); |
||||||
|
if(FplxEnum.ESC.getFplxDm().equals(invoiceType)){ |
||||||
|
checkLog.setBuyerName(queryInvoiceResult.getString("buyerUnitOrIndividual")); |
||||||
|
checkLog.setSalerName(queryInvoiceResult.getString("sellerUnitOrIndividual")); |
||||||
|
} |
||||||
|
} |
||||||
|
// 查验调用,保存查验日志
|
||||||
|
if ("Y".equals(saveHistory)) { |
||||||
|
DynamicContextHolder.push(pramsMap.get("dbName") + DbConstant.BUSINESS_WRITE); |
||||||
|
super.save(checkLog); |
||||||
|
} |
||||||
|
|
||||||
|
return checkLog; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 转换扫描查验显示对象 |
||||||
|
* |
||||||
|
* @param checkLog |
||||||
|
* 扫描查验结果 |
||||||
|
* @return 返回结果 |
||||||
|
* |
||||||
|
*/ |
||||||
|
private ExtSmcyVO convertToSmcyView(TDxCheckLog checkLog) { |
||||||
|
ExtSmcyVO smcyVo = new ExtSmcyVO(); |
||||||
|
String id = checkLog.getInvoiceCode() + "-" + checkLog.getInvoiceNo(); |
||||||
|
smcyVo.setId(id); |
||||||
|
smcyVo.setCheckMassege(checkLog.getCheckMassege()); |
||||||
|
smcyVo.setInvoiceCode(checkLog.getInvoiceCode()); |
||||||
|
smcyVo.setInvoiceNo(checkLog.getInvoiceNo()); |
||||||
|
if (checkLog.getInvoiceDate() != null) { |
||||||
|
smcyVo.setInvoiceDate(DateUtils.dateToStr(checkLog.getInvoiceDate())); |
||||||
|
} |
||||||
|
if (checkLog.getTotalAmount()!= null) { |
||||||
|
smcyVo.setTotalAmount( |
||||||
|
AmountFormatUtil.fmtMicrometer(MathUtil.round(checkLog.getTotalAmount().toPlainString()))); |
||||||
|
}else { |
||||||
|
smcyVo.setTotalAmount(""); |
||||||
|
} |
||||||
|
if (checkLog.getInvoiceAmount() != null) { |
||||||
|
smcyVo.setInvoiceAmount( |
||||||
|
AmountFormatUtil.fmtMicrometer(MathUtil.round(checkLog.getInvoiceAmount().toPlainString()))); |
||||||
|
} else { |
||||||
|
smcyVo.setInvoiceAmount(""); |
||||||
|
} |
||||||
|
|
||||||
|
if (checkLog.getCheckCode() != null) { |
||||||
|
smcyVo.setCheckCode(checkLog.getCheckCode()); |
||||||
|
} else { |
||||||
|
smcyVo.setCheckCode(""); |
||||||
|
} |
||||||
|
smcyVo.setInvoiceType(checkLog.getInvoiceType()); |
||||||
|
smcyVo.setHandleCode(checkLog.getHandleCode()); |
||||||
|
smcyVo.setGfmc(checkLog.getBuyerName()); |
||||||
|
smcyVo.setXfmc(checkLog.getSalerName()); |
||||||
|
if ("0001".equals(checkLog.getHandleCode())) { |
||||||
|
smcyVo.setDetailState(true); |
||||||
|
smcyVo.setDelState(false); |
||||||
|
smcyVo.setEditState(false); |
||||||
|
} else { |
||||||
|
smcyVo.setDelState(true); |
||||||
|
smcyVo.setEditState(true); |
||||||
|
smcyVo.setDetailState(false); |
||||||
|
} |
||||||
|
return smcyVo; |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,35 @@ |
|||||||
|
package com.dxhy.erp.service.impl; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
||||||
|
import com.dxhy.common.service.impl.MpBaseServiceImpl; |
||||||
|
import com.dxhy.erp.dao.SignCheckInvoiceDetailDao; |
||||||
|
import com.dxhy.erp.entity.TdxCheckInvoiceDetail; |
||||||
|
import com.dxhy.erp.service.SignCheckRecordInvoiceDetailService; |
||||||
|
import lombok.extern.slf4j.Slf4j; |
||||||
|
import org.springframework.stereotype.Service; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* |
||||||
|
* |
||||||
|
* 查验明细业务处理实现类 |
||||||
|
* |
||||||
|
* @author ld |
||||||
|
* |
||||||
|
*/ |
||||||
|
@Service("signCheckRecordInvoiceDetailService") |
||||||
|
@Slf4j |
||||||
|
|
||||||
|
public class SignCheckRecordInvoiceDetailServiceImpl extends |
||||||
|
MpBaseServiceImpl<SignCheckInvoiceDetailDao, TdxCheckInvoiceDetail> implements SignCheckRecordInvoiceDetailService { |
||||||
|
|
||||||
|
@Override |
||||||
|
public List<TdxCheckInvoiceDetail> getInvoiceDetailListByUuid(String uuid) { |
||||||
|
QueryWrapper<TdxCheckInvoiceDetail> queryWrapper = new QueryWrapper<>(); |
||||||
|
queryWrapper.eq("uuid", uuid); |
||||||
|
queryWrapper.orderByAsc("detail_no"); |
||||||
|
return super.list(queryWrapper); |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,33 @@ |
|||||||
|
package com.dxhy.erp.service.impl; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
||||||
|
import com.dxhy.common.service.impl.MpBaseServiceImpl; |
||||||
|
import com.dxhy.erp.dao.SignCheckVehicleSaleDao; |
||||||
|
import com.dxhy.erp.entity.TdxCheckVehicleSale; |
||||||
|
import com.dxhy.erp.service.SignCheckVehicleSaleInvoiceService; |
||||||
|
import lombok.extern.slf4j.Slf4j; |
||||||
|
import org.springframework.stereotype.Service; |
||||||
|
|
||||||
|
/** |
||||||
|
* |
||||||
|
* |
||||||
|
* 查验机动车明细业务处理实现类 |
||||||
|
* |
||||||
|
* @author ld |
||||||
|
* |
||||||
|
* |
||||||
|
*/ |
||||||
|
@Service("signCheckVehicleSaleInvoiceService") |
||||||
|
@Slf4j |
||||||
|
|
||||||
|
public class SignCheckVehicleSaleInvoiceServiceImpl extends |
||||||
|
MpBaseServiceImpl<SignCheckVehicleSaleDao, TdxCheckVehicleSale> implements SignCheckVehicleSaleInvoiceService { |
||||||
|
|
||||||
|
@Override |
||||||
|
public TdxCheckVehicleSale getCheckInvoiceByUuid(String uuid) { |
||||||
|
QueryWrapper<TdxCheckVehicleSale> queryWrapper = new QueryWrapper<>(); |
||||||
|
queryWrapper.eq("uuid", uuid); |
||||||
|
return super.getOne(queryWrapper); |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,302 @@ |
|||||||
|
package com.dxhy.erp.service.impl; |
||||||
|
|
||||||
|
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.common.constant.DbConstant; |
||||||
|
import com.dxhy.common.datasource.config.DynamicContextHolder; |
||||||
|
import com.dxhy.common.enums.FplxEnum; |
||||||
|
import com.dxhy.common.util.NumberToCN; |
||||||
|
import com.dxhy.common.util.ScanIdUtils; |
||||||
|
import com.dxhy.common.util.StringHelper; |
||||||
|
import com.dxhy.erp.entity.TdxCheckInvoiceDetail; |
||||||
|
import com.dxhy.erp.entity.TdxCheckRecordInvoice; |
||||||
|
import com.dxhy.erp.entity.TdxCheckVehicleSale; |
||||||
|
import com.dxhy.erp.service.SignCheckRecordInvoiceDetailService; |
||||||
|
import com.dxhy.erp.service.SignCheckRecordService; |
||||||
|
import com.dxhy.erp.service.SignCheckVehicleSaleInvoiceService; |
||||||
|
import com.dxhy.erp.service.SignSaveCheckInfoService; |
||||||
|
import lombok.extern.slf4j.Slf4j; |
||||||
|
import org.apache.commons.lang3.StringUtils; |
||||||
|
import org.springframework.stereotype.Service; |
||||||
|
import org.springframework.transaction.annotation.Transactional; |
||||||
|
|
||||||
|
import javax.annotation.Resource; |
||||||
|
import java.math.BigDecimal; |
||||||
|
import java.text.SimpleDateFormat; |
||||||
|
import java.util.ArrayList; |
||||||
|
import java.util.Date; |
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* |
||||||
|
* 保存查验结果到查验相关记录表业务处理实现类 |
||||||
|
* |
||||||
|
* @author ld |
||||||
|
*/ |
||||||
|
@SuppressWarnings("AlibabaUndefineMagicConstant") |
||||||
|
@Service("signSaveCheckInfoService") |
||||||
|
@Slf4j |
||||||
|
|
||||||
|
public class SignSaveCheckInfoServiceImpl implements SignSaveCheckInfoService { |
||||||
|
|
||||||
|
@Resource |
||||||
|
private ScanIdUtils scanIdUtils; |
||||||
|
|
||||||
|
@Resource |
||||||
|
private SignCheckRecordService signCheckRecordService; |
||||||
|
|
||||||
|
@Resource |
||||||
|
private SignCheckVehicleSaleInvoiceService signCheckVehicleSaleInvoiceService; |
||||||
|
|
||||||
|
|
||||||
|
@Resource |
||||||
|
private SignCheckRecordInvoiceDetailService signCheckRecordInvoiceDetailService; |
||||||
|
|
||||||
|
@Override |
||||||
|
public void saveCheckInfo(JSONObject queryInvoiceResult, String userid, String dbName) { |
||||||
|
String resultCode = queryInvoiceResult.getString("resultCode"); |
||||||
|
// 查验成功,结果一致
|
||||||
|
/* |
||||||
|
* 查验成功状态码 |
||||||
|
*/ |
||||||
|
String querySuccCode = "0001"; |
||||||
|
if (querySuccCode.equals(resultCode)) { |
||||||
|
TdxCheckRecordInvoice checkRecord = getRecordInvoice(queryInvoiceResult, userid); |
||||||
|
DynamicContextHolder.push(dbName + DbConstant.BUSINESS_WRITE); |
||||||
|
TdxCheckRecordInvoice checkRecordTmp = signCheckRecordService.getCheckInvoiceByUuid(checkRecord.getUuid()); |
||||||
|
if (checkRecordTmp != null) { |
||||||
|
if (StringUtils.isNotBlank(checkRecordTmp.getCycs())) { |
||||||
|
int cycs = Integer.parseInt(checkRecordTmp.getCycs()) + 1; |
||||||
|
checkRecord.setCycs(String.valueOf(cycs)); |
||||||
|
} else { |
||||||
|
checkRecord.setCycs("1"); |
||||||
|
} |
||||||
|
} else { |
||||||
|
checkRecord.setCycs("1"); |
||||||
|
} |
||||||
|
TdxCheckVehicleSale checkVehicleSale = getVehicleSaleInvoice(queryInvoiceResult); |
||||||
|
List<TdxCheckInvoiceDetail> checkRecordDetailList = getRecordInvoiceDetail(queryInvoiceResult); |
||||||
|
DynamicContextHolder.push(dbName + DbConstant.BUSINESS_WRITE); |
||||||
|
// 保存查验信息
|
||||||
|
saveCheckMxxx(checkRecord, checkVehicleSale, checkRecordDetailList); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public TdxCheckVehicleSale getVehicleSaleInvoice(JSONObject queryInvoiceResult) { |
||||||
|
String invoiceType = queryInvoiceResult.getString("invoiceType"); |
||||||
|
if (FplxEnum.JDC.getFplxDm().equals(invoiceType)) { |
||||||
|
String invoiceCode = queryInvoiceResult.getString("invoiceCode"); |
||||||
|
String invoiceNo = queryInvoiceResult.getString("invoiceNo"); |
||||||
|
String uuid = invoiceCode + invoiceNo; |
||||||
|
TdxCheckVehicleSale vehicleSaleInvoice = new TdxCheckVehicleSale(); |
||||||
|
vehicleSaleInvoice.setUuid(uuid); |
||||||
|
vehicleSaleInvoice.setBuyerIdNum(queryInvoiceResult.getString("buyerIDNum")); |
||||||
|
vehicleSaleInvoice.setVehicleType(queryInvoiceResult.getString("vehicleType")); |
||||||
|
vehicleSaleInvoice.setFactoryModel(queryInvoiceResult.getString("factoryModel")); |
||||||
|
vehicleSaleInvoice.setProductPlace(queryInvoiceResult.getString("productPlace")); |
||||||
|
vehicleSaleInvoice.setCertificate(queryInvoiceResult.getString("certificate")); |
||||||
|
vehicleSaleInvoice.setCertificateImport(queryInvoiceResult.getString("certificateImport")); |
||||||
|
vehicleSaleInvoice.setInspectionNum(queryInvoiceResult.getString("inspectionNum")); |
||||||
|
vehicleSaleInvoice.setEngineNo(queryInvoiceResult.getString("engineNo")); |
||||||
|
vehicleSaleInvoice.setVehicleNo(queryInvoiceResult.getString("vehicleNo")); |
||||||
|
vehicleSaleInvoice.setTaxBureauCode(queryInvoiceResult.getString("taxBureauCode")); |
||||||
|
vehicleSaleInvoice.setTaxBureauName(queryInvoiceResult.getString("taxBureauName")); |
||||||
|
vehicleSaleInvoice.setTaxRecords(queryInvoiceResult.getString("taxRecords")); |
||||||
|
vehicleSaleInvoice.setTonnage(queryInvoiceResult.getString("tonnage")); |
||||||
|
vehicleSaleInvoice.setLimitPeople(queryInvoiceResult.getString("limitPeople")); |
||||||
|
vehicleSaleInvoice.setTaxRate(queryInvoiceResult.getString("taxRate")); |
||||||
|
return vehicleSaleInvoice; |
||||||
|
}else if(FplxEnum.ESC.getFplxDm().equals(invoiceType)){ |
||||||
|
String invoiceCode = queryInvoiceResult.getString("invoiceCode"); |
||||||
|
String invoiceNo = queryInvoiceResult.getString("invoiceNo"); |
||||||
|
String uuid = invoiceCode + invoiceNo; |
||||||
|
|
||||||
|
TdxCheckVehicleSale vehicleSaleInvoice = new TdxCheckVehicleSale(); |
||||||
|
vehicleSaleInvoice.setUuid(uuid); |
||||||
|
vehicleSaleInvoice.setPlateNo(queryInvoiceResult.getString("licensePlate")); |
||||||
|
vehicleSaleInvoice.setRegistrationNo(queryInvoiceResult.getString("registrationNo")); |
||||||
|
if(StringUtils.isNotBlank(queryInvoiceResult.getString("vehicleType"))){ |
||||||
|
vehicleSaleInvoice.setVehicleType(queryInvoiceResult.getString("vehicleType")); |
||||||
|
} |
||||||
|
if(StringUtils.isNotBlank(queryInvoiceResult.getString("bandModel"))){ |
||||||
|
vehicleSaleInvoice.setFactoryModel(queryInvoiceResult.getString("bandModel")); |
||||||
|
} |
||||||
|
if(StringUtils.isNotBlank(queryInvoiceResult.getString("vehicleIdentificationNo"))){ |
||||||
|
vehicleSaleInvoice.setVehicleNo(queryInvoiceResult.getString("vehicleIdentificationNo")); |
||||||
|
} |
||||||
|
vehicleSaleInvoice.setCarPrice(queryInvoiceResult.getString("carPrice")); |
||||||
|
vehicleSaleInvoice.setVehicleAdminOffice(queryInvoiceResult.getString("vehicleAdminOffice")); |
||||||
|
vehicleSaleInvoice.setBuyerUnit(queryInvoiceResult.getString("buyerUnitOrIndividual")); |
||||||
|
vehicleSaleInvoice.setBuyerUnitCode(queryInvoiceResult.getString("buyerUnitCodeOrIdNo")); |
||||||
|
vehicleSaleInvoice.setBuyerUnitAddress(queryInvoiceResult.getString("buyerUnitOrIndividualAddress")); |
||||||
|
vehicleSaleInvoice.setBuyerPhone(queryInvoiceResult.getString("buyerPhone")); |
||||||
|
vehicleSaleInvoice.setSellerUnit(queryInvoiceResult.getString("sellerUnitOrIndividual")); |
||||||
|
vehicleSaleInvoice.setSellerUnitCode(queryInvoiceResult.getString("sellerUnitCodeOrIdNo")); |
||||||
|
vehicleSaleInvoice.setSellerUnitAddress(queryInvoiceResult.getString("sellerUnitOrIndividualAddress")); |
||||||
|
vehicleSaleInvoice.setSellerPhone(queryInvoiceResult.getString("sellerPhone")); |
||||||
|
vehicleSaleInvoice.setAuctionUnit(queryInvoiceResult.getString("businessUnit")); |
||||||
|
vehicleSaleInvoice.setAuctionAddress(queryInvoiceResult.getString("businessUnitAddress")); |
||||||
|
vehicleSaleInvoice.setAuctionTaxNo(queryInvoiceResult.getString("businessUnitTaxNo")); |
||||||
|
vehicleSaleInvoice.setAuctionBank(queryInvoiceResult.getString("businessUnitBankAndAccount")); |
||||||
|
vehicleSaleInvoice.setAuctionPhone(queryInvoiceResult.getString("businessUnitPhone")); |
||||||
|
vehicleSaleInvoice.setCarMarket(queryInvoiceResult.getString("lemonMarket")); |
||||||
|
vehicleSaleInvoice.setCarMarketTaxNo(queryInvoiceResult.getString("lemonMarketTaxNo")); |
||||||
|
vehicleSaleInvoice.setCarMarketAddress(queryInvoiceResult.getString("lemonMarketAddress")); |
||||||
|
vehicleSaleInvoice.setCarMarketBank(queryInvoiceResult.getString("lemonMarketBankAndAccount")); |
||||||
|
vehicleSaleInvoice.setCarMarketPhone(queryInvoiceResult.getString("lemonMarketPhone")); |
||||||
|
return vehicleSaleInvoice; |
||||||
|
} else { |
||||||
|
return null; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public List<TdxCheckInvoiceDetail> getRecordInvoiceDetail(JSONObject queryInvoiceResult) { |
||||||
|
if (queryInvoiceResult.containsKey("detailList")) { |
||||||
|
JSONArray dataArray = queryInvoiceResult.getJSONArray("detailList"); |
||||||
|
if (dataArray != null && dataArray.size() > 0) { |
||||||
|
String invoiceType = queryInvoiceResult.getString("invoiceType"); |
||||||
|
String invoiceCode = queryInvoiceResult.getString("invoiceCode"); |
||||||
|
String invoiceNo = queryInvoiceResult.getString("invoiceNo"); |
||||||
|
String uuid = invoiceCode + invoiceNo; |
||||||
|
List<TdxCheckInvoiceDetail> invoiceDetailList = new ArrayList<>(dataArray.size()); |
||||||
|
for (int i = 0; i < dataArray.size(); i++) { |
||||||
|
JSONObject invoiceDetailQuery = dataArray.getJSONObject(i); |
||||||
|
TdxCheckInvoiceDetail invoiceDetail = new TdxCheckInvoiceDetail(); |
||||||
|
invoiceDetail.setUuid(uuid); |
||||||
|
invoiceDetail.setDetailNo(invoiceDetailQuery.getString("detailNo")); |
||||||
|
invoiceDetail.setGoodsName(invoiceDetailQuery.getString("goodsName")); |
||||||
|
invoiceDetail.setModel(invoiceDetailQuery.getString("specificationModel")); |
||||||
|
invoiceDetail.setUnit(invoiceDetailQuery.getString("unit")); |
||||||
|
invoiceDetail.setNum(invoiceDetailQuery.getString("num")); |
||||||
|
invoiceDetail.setUnitPrice(invoiceDetailQuery.getString("unitPrice")); |
||||||
|
invoiceDetail.setDetailAmount(invoiceDetailQuery.getString("detailAmount")); |
||||||
|
invoiceDetail.setTaxRate(invoiceDetailQuery.getString("taxRate")); |
||||||
|
invoiceDetail.setTaxAmount(invoiceDetailQuery.getString("taxAmount")); |
||||||
|
if (FplxEnum.TXF.getFplxDm().equals(invoiceType)) { |
||||||
|
// 通行费发票
|
||||||
|
invoiceDetail.setCph(invoiceDetailQuery.getString("cph")); |
||||||
|
invoiceDetail.setLx(invoiceDetailQuery.getString("lx")); |
||||||
|
invoiceDetail.setTxrqq(invoiceDetailQuery.getString("txrqq")); |
||||||
|
invoiceDetail.setTxrqz(invoiceDetailQuery.getString("txrqz")); |
||||||
|
} |
||||||
|
invoiceDetailList.add(invoiceDetail); |
||||||
|
} |
||||||
|
return invoiceDetailList; |
||||||
|
} else { |
||||||
|
return null; |
||||||
|
} |
||||||
|
} else { |
||||||
|
return null; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public TdxCheckRecordInvoice getRecordInvoice(JSONObject queryInvoiceResult, String userid) { |
||||||
|
TdxCheckRecordInvoice invoice = new TdxCheckRecordInvoice(); |
||||||
|
|
||||||
|
String invoiceType = queryInvoiceResult.getString("invoiceType"); |
||||||
|
String invoiceCode = queryInvoiceResult.getString("invoiceCode"); |
||||||
|
String invoiceNo = queryInvoiceResult.getString("invoiceNo"); |
||||||
|
String uuid = invoiceCode + invoiceNo; |
||||||
|
|
||||||
|
invoice.setCyjgCode(queryInvoiceResult.getString("resultCode")); |
||||||
|
invoice.setCyjgTip(queryInvoiceResult.getString("resultTip")); |
||||||
|
invoice.setCycs(queryInvoiceResult.getString("checkCount")); |
||||||
|
invoice.setFpzl(invoiceType); |
||||||
|
if("31".equals(invoiceType) || "32".equals(invoiceType)){ |
||||||
|
invoice.setFphm(uuid); |
||||||
|
}else { |
||||||
|
invoice.setFpdm(invoiceCode); |
||||||
|
invoice.setFphm(invoiceNo); |
||||||
|
} |
||||||
|
invoice.setUuid(uuid); |
||||||
|
invoice.setGfsh(queryInvoiceResult.getString("buyerTaxNo")); |
||||||
|
invoice.setGfmc(queryInvoiceResult.getString("buyerName")); |
||||||
|
invoice.setGfdzdh(queryInvoiceResult.getString("buyerAddressPhone")); |
||||||
|
invoice.setGfyhzh(queryInvoiceResult.getString("buyerAccount")); |
||||||
|
invoice.setXfdzdh(queryInvoiceResult.getString("salerAddressPhone")); |
||||||
|
invoice.setXfyhzh(queryInvoiceResult.getString("salerAccount")); |
||||||
|
invoice.setXfmc(queryInvoiceResult.getString("salerName")); |
||||||
|
invoice.setXfsh(queryInvoiceResult.getString("salerTaxNo")); |
||||||
|
invoice.setJe(queryInvoiceResult.getString("invoiceAmount")); |
||||||
|
try { |
||||||
|
new BigDecimal(queryInvoiceResult.getString("taxAmount")); |
||||||
|
invoice.setSe(queryInvoiceResult.getString("taxAmount")); |
||||||
|
} catch (Exception e) { |
||||||
|
invoice.setSe("0"); |
||||||
|
} |
||||||
|
invoice.setJshj(queryInvoiceResult.getString("totalAmount")); |
||||||
|
if(FplxEnum.ESC.getFplxDm().equals(invoiceType)){ |
||||||
|
invoice.setJe(queryInvoiceResult.getString("carPrice")); |
||||||
|
invoice.setJshj(queryInvoiceResult.getString("carPrice")); |
||||||
|
invoice.setGfmc(queryInvoiceResult.getString("buyerUnitOrIndividual")); |
||||||
|
invoice.setGfsh(queryInvoiceResult.getString("buyerUnitCodeOrIdNo")); |
||||||
|
invoice.setGfdzdh(queryInvoiceResult.getString("buyerUnitOrIndividualAddress")); |
||||||
|
invoice.setXfmc(queryInvoiceResult.getString("sellerUnitOrIndividual")); |
||||||
|
invoice.setXfsh(queryInvoiceResult.getString("sellerUnitCodeOrIdNo")); |
||||||
|
invoice.setXfdzdh(queryInvoiceResult.getString("sellerUnitOrIndividualAddress")); |
||||||
|
} |
||||||
|
invoice.setKprq(queryInvoiceResult.getString("invoiceDate")); |
||||||
|
invoice.setJqbh(queryInvoiceResult.getString("machineNo")); |
||||||
|
invoice.setBz(queryInvoiceResult.getString("remark")); |
||||||
|
invoice.setJym(queryInvoiceResult.getString("checkCode")); |
||||||
|
invoice.setTxfbz(queryInvoiceResult.getString("txfbz")); |
||||||
|
invoice.setCreateDate(new Date()); |
||||||
|
invoice.setCheckUser(userid); |
||||||
|
invoice.setScanId(queryInvoiceResult.getString("scanId")); |
||||||
|
invoice.setZfbz(queryInvoiceResult.getString("isCancelled")); |
||||||
|
invoice.setCompany(queryInvoiceResult.getString("company")); |
||||||
|
invoice.setPdfMd5(Long.valueOf(scanIdUtils.createSerialNum())); |
||||||
|
return invoice; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* 保存查验信息 |
||||||
|
* |
||||||
|
* @param checkRecord |
||||||
|
* 请求参数 |
||||||
|
* @param checkVehicleSale |
||||||
|
* 请求参数 |
||||||
|
* @param checkRecordDetailList |
||||||
|
* 请求参数 |
||||||
|
* |
||||||
|
*/ |
||||||
|
@Transactional(rollbackFor = Exception.class) |
||||||
|
public void saveCheckMxxx(TdxCheckRecordInvoice checkRecord, TdxCheckVehicleSale checkVehicleSale, |
||||||
|
List<TdxCheckInvoiceDetail> checkRecordDetailList) { |
||||||
|
String uuid = checkRecord.getUuid(); |
||||||
|
{ |
||||||
|
// 删除重复数据,防止重复的操作
|
||||||
|
QueryWrapper<TdxCheckRecordInvoice> queryWrapper = new QueryWrapper<>(); |
||||||
|
queryWrapper.eq("uuid", uuid); |
||||||
|
signCheckRecordService.remove(queryWrapper); |
||||||
|
// 保存数据
|
||||||
|
signCheckRecordService.save(checkRecord); |
||||||
|
} |
||||||
|
|
||||||
|
if (checkVehicleSale != null) { |
||||||
|
// 删除重复数据,防止重复的操作
|
||||||
|
QueryWrapper<TdxCheckVehicleSale> queryWrapper = new QueryWrapper<>(); |
||||||
|
queryWrapper.eq("uuid", uuid); |
||||||
|
signCheckVehicleSaleInvoiceService.remove(queryWrapper); |
||||||
|
// 保存数据
|
||||||
|
signCheckVehicleSaleInvoiceService.save(checkVehicleSale); |
||||||
|
} |
||||||
|
|
||||||
|
if (checkRecordDetailList != null && checkRecordDetailList.size() > 0) { |
||||||
|
// 删除重复数据,防止重复的操作
|
||||||
|
QueryWrapper<TdxCheckInvoiceDetail> queryWrapper = new QueryWrapper<>(); |
||||||
|
queryWrapper.eq("uuid", uuid); |
||||||
|
signCheckRecordInvoiceDetailService.remove(queryWrapper); |
||||||
|
// 保存数据
|
||||||
|
/* |
||||||
|
* 批量操作的大小 |
||||||
|
*/ |
||||||
|
int batchSize = 500; |
||||||
|
signCheckRecordInvoiceDetailService.saveBatch(checkRecordDetailList, batchSize); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
} |
Loading…
Reference in new issue