commit
912cf27d94
@ -0,0 +1,31 @@ |
||||
package com.dxhy.core.dao.frTask; |
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import com.dxhy.core.entity.frJob.VoucherRecordQueryDetail; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
import org.apache.ibatis.annotations.Param; |
||||
|
||||
import java.util.Date; |
||||
import java.util.List; |
||||
|
||||
@Mapper |
||||
public interface QueryDetailDataDao extends BaseMapper<VoucherRecordQueryDetail> { |
||||
|
||||
Date getBeginTime(String kjkmbh); |
||||
|
||||
Date getBeginTimefromRecord(); |
||||
|
||||
List<VoucherRecordQueryDetail> getDataFromRecord(@Param("beginTime") String beginTime, |
||||
@Param("endTime") String endTime, |
||||
@Param("kjkmbh") String kjkmbh); |
||||
|
||||
void insertDataToItem(List<VoucherRecordQueryDetail> voucherRecordQueryDetails); |
||||
|
||||
List<VoucherRecordQueryDetail> getDataFromRecordJe(@Param("beginTime") String beginTime, |
||||
@Param("endTime") String endTime, |
||||
@Param("kjkmbh") String kjkmbh); |
||||
|
||||
List<VoucherRecordQueryDetail> getDataFromRecordXx(@Param("beginTime") String beginTime, |
||||
@Param("endTime") String endTime, |
||||
@Param("kjkmbh") String kjkmbh); |
||||
} |
@ -0,0 +1,37 @@ |
||||
package com.dxhy.core.dao.frTask; |
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import com.dxhy.core.entity.frJob.FpTaxAmount; |
||||
import com.dxhy.core.entity.frJob.VoucherRecordQuery; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
import org.apache.ibatis.annotations.Param; |
||||
|
||||
import java.util.Date; |
||||
import java.util.List; |
||||
|
||||
@Mapper |
||||
public interface RecordToQueryDao extends BaseMapper<VoucherRecordQuery> { |
||||
|
||||
List<VoucherRecordQuery> getDataFromRecordItems(@Param("start")String beginTime, |
||||
@Param("end") String endTime, |
||||
@Param("kjkmbh")String kjkmbh); |
||||
|
||||
Date getBeginTime(String kjkmbh); |
||||
|
||||
Date getBeginTimefromRecord(); |
||||
|
||||
void insertDataToQuery(List<VoucherRecordQuery> voucherRecordQuerys); |
||||
|
||||
List<FpTaxAmount> getTaxAmount(List<String> bzdhs); |
||||
|
||||
List<VoucherRecordQuery> getDataXFromRecordItems(@Param("start") String start, |
||||
@Param("end") String end, |
||||
@Param("kjkmbh")String kjkmbh); |
||||
|
||||
List<FpTaxAmount> getXTaxAmount(List<String> bzdhs); |
||||
|
||||
List<VoucherRecordQuery> getDataZFromRecordItems(@Param("start") String start, |
||||
@Param("end") String end, |
||||
@Param("kjkmbh") String kjkmbh); |
||||
|
||||
} |
@ -0,0 +1,17 @@ |
||||
package com.dxhy.core.dao.frTask; |
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import com.dxhy.core.entity.frJob.VoucherRecordItemEntity; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
import org.apache.ibatis.annotations.Param; |
||||
|
||||
import java.util.List; |
||||
|
||||
@Mapper |
||||
public interface VoucherRecordItemDao extends BaseMapper<VoucherRecordItemEntity> { |
||||
|
||||
List<VoucherRecordItemEntity> getByTime(@Param("start")String start, |
||||
@Param("end") String end, |
||||
@Param("kjkmbh") String kjkmbh); |
||||
} |
@ -0,0 +1,120 @@ |
||||
package com.dxhy.core.enmu; |
||||
|
||||
|
||||
import com.google.common.collect.Maps; |
||||
|
||||
import java.util.Map; |
||||
|
||||
public enum FplxEnmu { |
||||
/** |
||||
* 专票代码 |
||||
*/ |
||||
ZP("01", "增值税专用发票"), |
||||
/** |
||||
* 机动车代码 |
||||
*/ |
||||
JDC("03","机动车销售统一发票"), |
||||
/** |
||||
* 普票代码 |
||||
*/ |
||||
PP("04", "增值税普通发票"), |
||||
|
||||
/** |
||||
* 电子票代码 |
||||
*/ |
||||
DZP("10", "增值税电子普通发票"), |
||||
/** |
||||
* 卷式发票代码 |
||||
*/ |
||||
JSP("11", "增值税普通发票(卷票)"), |
||||
/** |
||||
* 通行费发票代码 |
||||
*/ |
||||
TXF("14", "增值税电子普通发票(通行费)"), |
||||
|
||||
ESC("15", "二手车销售统一发票"), |
||||
/** |
||||
* 电子专票 |
||||
*/ |
||||
DZZP("08", "增值税电子专用发票"), |
||||
/** |
||||
* 海关缴款书 |
||||
*/ |
||||
HGJKS("17", "海关缴款书"), |
||||
/** |
||||
* 电子发票(增值税专用发票) |
||||
*/ |
||||
QDZZP("31", "电子发票(增值税专用发票)"), |
||||
/** |
||||
* 电子发票(普通发票) |
||||
*/ |
||||
QDPP("32", "电子发票(普通发票)"), |
||||
/** |
||||
* 机动车销售电子统一发票 |
||||
*/ |
||||
JDCDZ("183", "机动车销售电子统一发票"), |
||||
/** |
||||
* 二手车销售电子统一发票 |
||||
*/ |
||||
ESCDZ("184", "二手车销售电子统一发票"), |
||||
/** |
||||
* 纸质发票(增值税专用发票) |
||||
*/ |
||||
ZZDZ("185", "纸质发票(增值税专用发票)"), |
||||
/** |
||||
* 纸质发票(普通发票) |
||||
*/ |
||||
ZZPP("186", "纸质发票(普通发票)"), |
||||
/** |
||||
* 纸质发票(机动车销售统一发票) |
||||
*/ |
||||
ZZJDC("187", "纸质发票(机动车销售统一发票)"), |
||||
/** |
||||
* 纸质发票(二手车销售统一发票) |
||||
*/ |
||||
ZZESC("188", "纸质发票(二手车销售统一发票)"), |
||||
/** |
||||
* 增加电子发票(铁路电子客票) |
||||
*/ |
||||
TLKP("283", "增加电子发票(铁路电子客票)"), |
||||
/** |
||||
* 电子发票(航空运输客票电子行程单) |
||||
*/ |
||||
HKDZFP("161", "电子发票(航空运输客票电子行程单)"), |
||||
/** |
||||
* 货物运输业增值税专用发票 |
||||
*/ |
||||
HWYH("02", "货物运输业增值税专用发票"); |
||||
|
||||
private String fplxDm; |
||||
private String fplxMc; |
||||
|
||||
FplxEnmu(String fplxDm, String fplxMc) { |
||||
this.fplxDm = fplxDm; |
||||
this.fplxMc = fplxMc; |
||||
} |
||||
|
||||
public String getFplxDm() { |
||||
return fplxDm; |
||||
} |
||||
|
||||
public void setFplxDm(String fplxDm) { |
||||
this.fplxDm = fplxDm; |
||||
} |
||||
|
||||
public String getfplxMc() { |
||||
return fplxMc; |
||||
} |
||||
|
||||
public void setFplxMc(String fplxMc) { |
||||
this.fplxMc = fplxMc; |
||||
} |
||||
|
||||
public static Map<String,String> getFplxMap(){ |
||||
Map<String,String> fplxMap = Maps.newHashMap(); |
||||
for (FplxEnmu value : FplxEnmu.values()) { |
||||
fplxMap.put(value.fplxDm,value.fplxMc); |
||||
} |
||||
return fplxMap; |
||||
} |
||||
} |
@ -0,0 +1,49 @@ |
||||
package com.dxhy.core.enmu; |
||||
|
||||
import com.google.common.collect.Maps; |
||||
|
||||
import java.util.Map; |
||||
|
||||
public enum KjkmTaxEnmu { |
||||
|
||||
YJJXZZSSL("2221010101","16"), |
||||
YJJXZZSSS("2221010102","13"), |
||||
YJJXZZSS("2221010103","10"), |
||||
YJJXZZSJ("2221010104","9"), |
||||
YJJXZZSL("2221010105","6"), |
||||
YJJXZZSW("2221010106","5"), |
||||
YJJXZZST("2221010107","3"), |
||||
YJJXZZSE("2221010108","2"), |
||||
YJJXZZSZ("2221010109","0"), |
||||
YJJXZZSSQ("2221010110","17"), |
||||
YJJXZZSSY("2221010111","11"), |
||||
YJJXZZSY("2221010112","1"), |
||||
YJJXZZSYW("2221010113","1.5"), |
||||
YJXXZZSSL("2221010201","16"), |
||||
YJXXZZSSS("2221010202","13"), |
||||
YJXXZZSS("2221010203","10"), |
||||
YJXXZZSJ("2221010204","9"), |
||||
YJXXZZSL("2221010205","6"), |
||||
YJXXZZSW("2221010206","5"), |
||||
YJXXZZST("2221010207","3"), |
||||
YJXXZZSE("2221010208","2"), |
||||
YJXXZZSZ("2221010209","0"), |
||||
YJXXZZSSQ("2221010210","17"), |
||||
YJXXZZSSY("2221010211","11"), |
||||
YJXXZZSY("2221010212","1"); |
||||
|
||||
private String kjkm; |
||||
private String tax; |
||||
KjkmTaxEnmu(String kjkm,String tax){ |
||||
this.kjkm = kjkm; |
||||
this.tax = tax; |
||||
} |
||||
|
||||
public static Map<String,String> getTaxMap(){ |
||||
Map<String,String> taxMap = Maps.newHashMap(); |
||||
for (KjkmTaxEnmu value : KjkmTaxEnmu.values()) { |
||||
taxMap.put(value.kjkm,value.tax); |
||||
} |
||||
return taxMap; |
||||
} |
||||
} |
@ -0,0 +1,10 @@ |
||||
package com.dxhy.core.entity.frJob; |
||||
|
||||
import lombok.Data; |
||||
|
||||
@Data |
||||
public class FpTaxAmount { |
||||
private String key; |
||||
private String fpse; |
||||
private String fpje; |
||||
} |
@ -0,0 +1,10 @@ |
||||
package com.dxhy.core.entity.frJob; |
||||
|
||||
import lombok.Data; |
||||
|
||||
@Data |
||||
public class KjkmSl { |
||||
|
||||
private String kjkm; |
||||
private String sl; |
||||
} |
@ -0,0 +1,271 @@ |
||||
package com.dxhy.core.entity.frJob; |
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType; |
||||
import com.baomidou.mybatisplus.annotation.TableId; |
||||
import com.baomidou.mybatisplus.annotation.TableName; |
||||
import lombok.Data; |
||||
|
||||
import java.io.Serializable; |
||||
|
||||
@Data |
||||
@TableName("voucher_record_item") |
||||
public class VoucherRecordItemEntity implements Serializable { |
||||
|
||||
private static final long serialVersionUID = 1L; |
||||
|
||||
@TableId(type = IdType.AUTO) |
||||
/** |
||||
* 主键 |
||||
*/ |
||||
private Long id; |
||||
|
||||
/** |
||||
* 和主键关联的id |
||||
*/ |
||||
private Long relationId; |
||||
|
||||
/** |
||||
* 行项目编码 |
||||
*/ |
||||
private String docln; |
||||
|
||||
/** |
||||
* 借贷标识 |
||||
*/ |
||||
private String drcrk; |
||||
|
||||
/** |
||||
* 借贷描述 s借 h贷 |
||||
*/ |
||||
private String zdrcrk; |
||||
|
||||
/** |
||||
* 科目编码 |
||||
*/ |
||||
private String racct; |
||||
|
||||
/** |
||||
* 科目描述 |
||||
*/ |
||||
private String txt50; |
||||
|
||||
/** |
||||
* 借方金额 |
||||
*/ |
||||
private String zwslj; |
||||
|
||||
/** |
||||
* 贷方金额 |
||||
*/ |
||||
private String zwsld; |
||||
|
||||
/** |
||||
* 公司代码货币 |
||||
*/ |
||||
private String rhcur; |
||||
|
||||
/** |
||||
* 交易货币 |
||||
*/ |
||||
private String rwcur; |
||||
|
||||
/** |
||||
* 本位币借方金额 |
||||
*/ |
||||
private String zhslj; |
||||
|
||||
/** |
||||
* 本位币贷方金额 |
||||
*/ |
||||
private String zhsld; |
||||
|
||||
/** |
||||
* 公司代码货币 |
||||
*/ |
||||
private String phcur; |
||||
|
||||
/** |
||||
* 供应商编码 |
||||
*/ |
||||
private String lifnr; |
||||
|
||||
/** |
||||
* 供应商名称 |
||||
*/ |
||||
private String zname; |
||||
|
||||
/** |
||||
* 客户编码 |
||||
*/ |
||||
private String kunnr; |
||||
|
||||
/** |
||||
* 物料编码 |
||||
*/ |
||||
private String matnr; |
||||
|
||||
/** |
||||
* 物料名称 |
||||
*/ |
||||
private String maktx; |
||||
|
||||
/** |
||||
* 客户名称 |
||||
*/ |
||||
private String zname2; |
||||
|
||||
/** |
||||
* 供应商名称 |
||||
*/ |
||||
private String zname1; |
||||
|
||||
/** |
||||
* 数量 |
||||
*/ |
||||
private String msl; |
||||
|
||||
/** |
||||
* 单位 |
||||
*/ |
||||
private String runit; |
||||
|
||||
/** |
||||
* 税码 |
||||
*/ |
||||
private String mwskz; |
||||
|
||||
/** |
||||
* 税率 |
||||
*/ |
||||
private String kbetr; |
||||
|
||||
/** |
||||
* 成本中心 |
||||
*/ |
||||
private String rcntr; |
||||
|
||||
/** |
||||
* 成本中心名称 |
||||
*/ |
||||
private String ktext; |
||||
|
||||
/** |
||||
* wbs编码 |
||||
*/ |
||||
private String psPosid; |
||||
|
||||
/** |
||||
* wbs名称 |
||||
*/ |
||||
private String post1; |
||||
|
||||
/** |
||||
* 订单编号 |
||||
*/ |
||||
private String aufnr; |
||||
|
||||
/** |
||||
* 订单描述 |
||||
*/ |
||||
private String zktext; |
||||
|
||||
/** |
||||
* 销售订单 |
||||
*/ |
||||
private String kdauf; |
||||
|
||||
/** |
||||
* 销售订单行 |
||||
*/ |
||||
private String kdpos; |
||||
|
||||
/** |
||||
* 是否是集成销售业务 |
||||
*/ |
||||
private String zzjcfflag; |
||||
|
||||
/** |
||||
* 资产编码 |
||||
*/ |
||||
private String anln1; |
||||
|
||||
/** |
||||
* 资产名称 |
||||
*/ |
||||
private String zaatxt50; |
||||
|
||||
/** |
||||
* 功能范围 |
||||
*/ |
||||
private String rfarea; |
||||
|
||||
/** |
||||
* 功能范围名称 |
||||
*/ |
||||
private String fkbtx; |
||||
|
||||
/** |
||||
* 矿别 |
||||
*/ |
||||
private String ktype; |
||||
|
||||
/** |
||||
* 是否是集成销售业务,如果有销售订单号,则认为是集成销售设置为x |
||||
*/ |
||||
private String zzjcflag; |
||||
|
||||
/** |
||||
* 矿别名称 |
||||
*/ |
||||
private String zkname; |
||||
|
||||
/** |
||||
* zzfld1 |
||||
*/ |
||||
private String zzfld1; |
||||
|
||||
/** |
||||
* zzfld2 |
||||
*/ |
||||
private String zzfld2; |
||||
|
||||
/** |
||||
* zzfld3 |
||||
*/ |
||||
private String zzfld3; |
||||
|
||||
/** |
||||
* zzfld4 |
||||
*/ |
||||
private String zzfld4; |
||||
|
||||
/** |
||||
* zzfld5 |
||||
*/ |
||||
private String zzfld5; |
||||
|
||||
/** |
||||
* zzfld6 |
||||
*/ |
||||
private String zzfld6; |
||||
|
||||
/** |
||||
* zzfld7 |
||||
*/ |
||||
private String zzfld7; |
||||
|
||||
/** |
||||
* zzfld8 |
||||
*/ |
||||
private String zzfld8; |
||||
|
||||
/** |
||||
* zzfld9 |
||||
*/ |
||||
private String zzfld9; |
||||
|
||||
/** |
||||
* zzfld10 |
||||
*/ |
||||
private String zzfld10; |
||||
} |
@ -0,0 +1,79 @@ |
||||
package com.dxhy.core.entity.frJob; |
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName; |
||||
import lombok.Data; |
||||
|
||||
import java.util.Date; |
||||
|
||||
@Data |
||||
@TableName("voucher_record_query") |
||||
public class VoucherRecordQuery { |
||||
|
||||
private static final long serialVersionUID = 1L; |
||||
|
||||
|
||||
/** |
||||
* id |
||||
*/ |
||||
private String id; |
||||
|
||||
/** |
||||
* zq |
||||
*/ |
||||
private String zq; |
||||
|
||||
/** |
||||
* xfdm |
||||
*/ |
||||
private String xfdm; |
||||
|
||||
/** |
||||
* xfmc |
||||
*/ |
||||
private String xfmc; |
||||
|
||||
/** |
||||
* kb |
||||
*/ |
||||
private String kb; |
||||
|
||||
/** |
||||
* kjkmbh |
||||
*/ |
||||
private String kjkmbh; |
||||
|
||||
/** |
||||
* 会计科目 |
||||
*/ |
||||
private String kjkm; |
||||
|
||||
/** |
||||
* sl |
||||
*/ |
||||
private String sl; |
||||
|
||||
/** |
||||
* 报账单号 |
||||
*/ |
||||
private String bzdh; |
||||
|
||||
/** |
||||
* 会计凭证 |
||||
*/ |
||||
private String kjpz; |
||||
|
||||
/** |
||||
* 发票税额 |
||||
*/ |
||||
private String fpse; |
||||
|
||||
/** |
||||
* sap税额 |
||||
*/ |
||||
private String sapse; |
||||
|
||||
/** |
||||
* 创建时间 |
||||
*/ |
||||
private Date createTime; |
||||
} |
@ -0,0 +1,92 @@ |
||||
package com.dxhy.core.entity.frJob; |
||||
|
||||
import lombok.Data; |
||||
|
||||
@Data |
||||
public class VoucherRecordQueryDetail { |
||||
private static final long serialVersionUID = 1L; |
||||
/** |
||||
* id |
||||
*/ |
||||
private String id; |
||||
|
||||
/** |
||||
* uuid |
||||
*/ |
||||
private String uuid; |
||||
|
||||
/** |
||||
* zq |
||||
*/ |
||||
private String zq; |
||||
|
||||
/** |
||||
* xfdm |
||||
*/ |
||||
private String xfdm; |
||||
|
||||
/** |
||||
* xfmc |
||||
*/ |
||||
private String xfmc; |
||||
|
||||
/** |
||||
* kb |
||||
*/ |
||||
private String kb; |
||||
|
||||
/** |
||||
* 报账单号 |
||||
*/ |
||||
private String bzdh; |
||||
|
||||
/** |
||||
* 会计凭证 |
||||
*/ |
||||
private String kjpz; |
||||
|
||||
/** |
||||
* 发票税额 |
||||
*/ |
||||
private String fpse; |
||||
|
||||
/** |
||||
* 会计科目 |
||||
*/ |
||||
private String kjkm; |
||||
|
||||
/** |
||||
* kjkmbh |
||||
*/ |
||||
private String kjkmbh; |
||||
|
||||
/** |
||||
* sl |
||||
*/ |
||||
private String sl; |
||||
|
||||
/** |
||||
* fpdm |
||||
*/ |
||||
private String fpdm; |
||||
|
||||
/** |
||||
* fphm |
||||
*/ |
||||
private String fphm; |
||||
|
||||
/** |
||||
* fplx |
||||
*/ |
||||
private String fplx; |
||||
|
||||
/** |
||||
* fplxmc |
||||
*/ |
||||
private String fplxmc; |
||||
|
||||
/** |
||||
* 创建时间 |
||||
*/ |
||||
private String createTime; |
||||
} |
@ -0,0 +1,21 @@ |
||||
package com.dxhy.core.service.frJob; |
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService; |
||||
import com.dxhy.core.entity.frJob.VoucherRecordQueryDetail; |
||||
|
||||
|
||||
import java.text.ParseException; |
||||
|
||||
public interface QueryDetailDataService extends IService<VoucherRecordQueryDetail> { |
||||
//插入进项数据
|
||||
void insertJxDataToQueryDetail(); |
||||
|
||||
//插入销项数据
|
||||
void insertXxDataToQueryDetail(); |
||||
|
||||
//插入主营业务收入数据
|
||||
void insertZyDataToQueryDetail(); |
||||
|
||||
String[] getTime(String km); |
||||
|
||||
} |
@ -0,0 +1,105 @@ |
||||
package com.dxhy.core.service.frJob; |
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
||||
|
||||
|
||||
import com.dxhy.common.constant.DbConstant; |
||||
import com.dxhy.common.datasource.config.DynamicContextHolder; |
||||
import com.dxhy.core.dao.frTask.QueryDetailDataDao; |
||||
import com.dxhy.core.enmu.FplxEnmu; |
||||
import com.dxhy.core.entity.frJob.VoucherRecordQueryDetail; |
||||
import org.apache.commons.lang.ObjectUtils; |
||||
import org.apache.commons.lang.StringUtils; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.stereotype.Service; |
||||
import java.text.ParseException; |
||||
import java.text.SimpleDateFormat; |
||||
import java.util.Calendar; |
||||
import java.util.Date; |
||||
import java.util.List; |
||||
|
||||
@Service("queryDetailDataService") |
||||
public class QueryDetailDataServiceImpl extends ServiceImpl<QueryDetailDataDao, VoucherRecordQueryDetail> |
||||
implements QueryDetailDataService { |
||||
|
||||
@Autowired |
||||
private QueryDetailDataDao queryDetailDataDao; |
||||
|
||||
private static final String JXZZS = "22210101"; |
||||
|
||||
private static final String XXZZS = "22210102"; |
||||
|
||||
private static final String ZYYWSR = "6001"; |
||||
|
||||
|
||||
@Override |
||||
public void insertJxDataToQueryDetail(){ |
||||
//1.查询时间
|
||||
DynamicContextHolder.push("business"+ DbConstant.BUSINESS_READ); |
||||
String[] time = getTime(JXZZS); |
||||
//2.按照时间查询增量数据
|
||||
List<VoucherRecordQueryDetail> dataFromRecordItems = queryDetailDataDao.getDataFromRecord(time[0], time[1],JXZZS); |
||||
//3.添加发票类型
|
||||
if (dataFromRecordItems != null && dataFromRecordItems.size() != 0){ |
||||
dataFromRecordItems.stream().forEach(e->e.setFplxmc(FplxEnmu.getFplxMap().get(e.getFplx()))); |
||||
//4.添加入库
|
||||
this.saveOrUpdateBatch(dataFromRecordItems); |
||||
} |
||||
} |
||||
|
||||
@Override |
||||
public void insertXxDataToQueryDetail(){ |
||||
//1.查询时间
|
||||
DynamicContextHolder.push("business"+DbConstant.BUSINESS_READ); |
||||
String[] time = getTime(XXZZS); |
||||
//2.按照时间查询增量数据
|
||||
List<VoucherRecordQueryDetail> dataFromRecordItems = queryDetailDataDao.getDataFromRecordXx(time[0], time[1],XXZZS); |
||||
//3.添加发票类型
|
||||
if (dataFromRecordItems != null && dataFromRecordItems.size() != 0){ |
||||
dataFromRecordItems.stream().forEach(e->e.setFplxmc(FplxEnmu.getFplxMap().get(e.getFplx()))); |
||||
//4.添加入库
|
||||
this.saveOrUpdateBatch(dataFromRecordItems); |
||||
} |
||||
} |
||||
|
||||
@Override |
||||
public void insertZyDataToQueryDetail(){ |
||||
//1.查询时间
|
||||
DynamicContextHolder.push("business"+DbConstant.BUSINESS_READ); |
||||
String[] time = getTime(ZYYWSR); |
||||
//2.按照时间查询增量数据
|
||||
List<VoucherRecordQueryDetail> dataFromRecordItems = queryDetailDataDao.getDataFromRecordJe(time[0], time[1],ZYYWSR); |
||||
//3添加发票类型
|
||||
if (dataFromRecordItems != null && dataFromRecordItems.size() != 0){ |
||||
dataFromRecordItems.stream().forEach(e->e.setFplxmc(FplxEnmu.getFplxMap().get(e.getFplx()))); |
||||
//4.添加入库
|
||||
this.saveOrUpdateBatch(dataFromRecordItems); |
||||
} |
||||
} |
||||
|
||||
@Override |
||||
public String[] getTime(String km){ |
||||
//1.获取增量数据开始时间
|
||||
DynamicContextHolder.push("business"+DbConstant.BUSINESS_READ); |
||||
Date beginTime = queryDetailDataDao.getBeginTime(km); |
||||
//2.第一次取原表时间
|
||||
if (beginTime == null){ |
||||
beginTime = queryDetailDataDao.getBeginTimefromRecord(); |
||||
} |
||||
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
||||
|
||||
//3.时间转换求结束日期
|
||||
Calendar calendar = Calendar.getInstance(); |
||||
calendar.setTime(beginTime); |
||||
calendar.add(Calendar.DAY_OF_MONTH,-1); |
||||
//4.开始时间减一天
|
||||
String begin = format.format(calendar.getTime()); |
||||
//5.结束时间为现在加一天
|
||||
calendar.setTime(new Date()); |
||||
calendar.add(Calendar.DAY_OF_MONTH,1); |
||||
String end = format.format(calendar.getTime()); |
||||
|
||||
String[] time = {begin,end}; |
||||
return time; |
||||
} |
||||
} |
@ -0,0 +1,10 @@ |
||||
package com.dxhy.core.service.frJob; |
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService; |
||||
import com.dxhy.core.entity.frJob.VoucherRecordQuery; |
||||
|
||||
public interface RecordToQueryService extends IService<VoucherRecordQuery>{ |
||||
|
||||
void getDataForFr(); |
||||
|
||||
} |
@ -0,0 +1,215 @@ |
||||
package com.dxhy.core.service.frJob; |
||||
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
||||
import com.dxhy.common.constant.DbConstant; |
||||
import com.dxhy.common.datasource.config.DynamicContextHolder; |
||||
import com.dxhy.core.dao.frTask.RecordToQueryDao; |
||||
import com.dxhy.core.enmu.KjkmTaxEnmu; |
||||
import com.dxhy.core.entity.frJob.FpTaxAmount; |
||||
import com.dxhy.core.entity.frJob.VoucherRecordQuery; |
||||
import org.springframework.scheduling.annotation.Async; |
||||
import org.springframework.stereotype.Service; |
||||
import javax.annotation.Resource; |
||||
import java.text.SimpleDateFormat; |
||||
import java.util.Calendar; |
||||
import java.util.Date; |
||||
import java.util.List; |
||||
import java.util.Map; |
||||
import java.util.stream.Collectors; |
||||
|
||||
@Service("recordToQueryService") |
||||
public class RecordToQueryServiceImpl extends ServiceImpl<RecordToQueryDao, VoucherRecordQuery> implements RecordToQueryService { |
||||
|
||||
@Resource |
||||
private RecordToQueryDao recordToQueryDao; |
||||
|
||||
@Resource |
||||
private QueryDetailDataService queryDetailDataService; |
||||
|
||||
@Resource |
||||
private VoucherRecordItemService voucherRecordItemService; |
||||
|
||||
private final String JXZZS = "22210101"; |
||||
|
||||
private final String XXZZS = "22210102"; |
||||
|
||||
private final String ZYYWSR = "6001"; |
||||
|
||||
private final String JXSZC = "2221010900"; |
||||
|
||||
|
||||
|
||||
@Override |
||||
public void getDataForFr() { |
||||
//清洗sap错误税率
|
||||
boolean flag = voucherRecordItemService.refreshTax(); |
||||
if (!flag){ |
||||
throw new RuntimeException("刷新sap传送数据税率失败"); |
||||
} |
||||
//开始插入主数据信息
|
||||
boolean flag1 = this.insertJxDataToQuery(); |
||||
if (flag1){ |
||||
queryDetailDataService.insertJxDataToQueryDetail(); |
||||
} |
||||
boolean flag2 = this.insertXxDataToQuery(); |
||||
if (flag2){ |
||||
queryDetailDataService.insertXxDataToQueryDetail(); |
||||
} |
||||
boolean flag3 = this.insertZyDataToQuery(); |
||||
if (flag3){ |
||||
queryDetailDataService.insertZyDataToQueryDetail(); |
||||
} |
||||
this.insertOutDataToQuery(); |
||||
|
||||
} |
||||
|
||||
public boolean insertJxDataToQuery() { |
||||
|
||||
boolean flag = false; |
||||
//1.获取时间
|
||||
DynamicContextHolder.push("business"+ DbConstant.BUSINESS_READ); |
||||
String[] time = getTime(JXZZS); |
||||
|
||||
//2.查询数据
|
||||
List<VoucherRecordQuery> voucherRecordQuerys = |
||||
recordToQueryDao.getDataFromRecordItems(time[0], time[1],JXZZS); |
||||
|
||||
if (voucherRecordQuerys != null && voucherRecordQuerys.size() > 0){ |
||||
//3.查询税率
|
||||
Map<String, String> taxMap = KjkmTaxEnmu.getTaxMap(); |
||||
//4.清洗税率
|
||||
voucherRecordQuerys.forEach(v->{v.setSl(taxMap.get(v.getKjkmbh()));}); |
||||
|
||||
//5.报账单号去重
|
||||
List<String> bzdhs |
||||
= voucherRecordQuerys.stream().map(VoucherRecordQuery::getBzdh) |
||||
.distinct().collect(Collectors.toList()); |
||||
|
||||
//6.根据报账单号获取发票税额
|
||||
List<FpTaxAmount> taxAmounts = recordToQueryDao.getTaxAmount(bzdhs); |
||||
if (taxAmounts != null && taxAmounts.size()>0){ |
||||
Map<String, String> amountMap = taxAmounts.stream().collect(Collectors.toMap(FpTaxAmount::getKey, FpTaxAmount::getFpse)); |
||||
//7.添加税率
|
||||
voucherRecordQuerys.forEach(v->v.setFpse(amountMap.get(v.getSl()+v.getBzdh())==null?"0":amountMap.get(v.getSl()+v.getBzdh()))); |
||||
} |
||||
//8.保存或更新
|
||||
flag = this.saveOrUpdateBatch(voucherRecordQuerys); |
||||
|
||||
} |
||||
return flag; |
||||
} |
||||
|
||||
|
||||
public boolean insertXxDataToQuery() { |
||||
boolean flag = false; |
||||
//1.获取时间
|
||||
DynamicContextHolder.push("business"+DbConstant.BUSINESS_READ); |
||||
String[] time = getTime(XXZZS); |
||||
|
||||
//2.查询数据
|
||||
List<VoucherRecordQuery> voucherRecordQuerys = |
||||
recordToQueryDao.getDataXFromRecordItems(time[0],time[1],XXZZS); |
||||
|
||||
if (voucherRecordQuerys != null && voucherRecordQuerys.size() > 0) { |
||||
//3.查询税率
|
||||
Map<String, String> taxMap = KjkmTaxEnmu.getTaxMap(); |
||||
//4.清洗税率
|
||||
voucherRecordQuerys.forEach(v -> { |
||||
v.setSl(taxMap.get(v.getKjkmbh())); |
||||
}); |
||||
|
||||
//5.报账单号去重
|
||||
List<String> bzdhs |
||||
= voucherRecordQuerys.stream().map(VoucherRecordQuery::getBzdh) |
||||
.distinct().collect(Collectors.toList()); |
||||
|
||||
//6.根据报账单号获取发票税额
|
||||
List<FpTaxAmount> taxAmounts = recordToQueryDao.getXTaxAmount(bzdhs); |
||||
if (taxAmounts != null && taxAmounts.size() > 0) { |
||||
Map<String, String> amountMap = taxAmounts.stream().collect(Collectors.toMap(FpTaxAmount::getKey, FpTaxAmount::getFpse)); |
||||
|
||||
//7.添加税率
|
||||
voucherRecordQuerys.forEach(v -> v.setFpse(amountMap.get(v.getSl() + v.getBzdh()) == null ? "0" : amountMap.get(v.getSl() + v.getBzdh()))); |
||||
} |
||||
|
||||
//8.保存或更新
|
||||
flag = this.saveOrUpdateBatch(voucherRecordQuerys); |
||||
} |
||||
return flag; |
||||
} |
||||
|
||||
|
||||
public boolean insertZyDataToQuery() { |
||||
boolean flag = false; |
||||
//1.获取时间
|
||||
DynamicContextHolder.push("business"+DbConstant.BUSINESS_READ); |
||||
String[] time = getTime(ZYYWSR); |
||||
|
||||
//2.查询数据
|
||||
List<VoucherRecordQuery> voucherRecordQuerys = |
||||
recordToQueryDao.getDataZFromRecordItems(time[0],time[1],ZYYWSR); |
||||
|
||||
if (voucherRecordQuerys != null && voucherRecordQuerys.size() > 0) { |
||||
|
||||
//3.报账单号去重
|
||||
List<String> bzdhs |
||||
= voucherRecordQuerys.stream().map(VoucherRecordQuery::getBzdh) |
||||
.distinct().collect(Collectors.toList()); |
||||
|
||||
//4.根据报账单号获取发票税额
|
||||
List<FpTaxAmount> taxAmounts = recordToQueryDao.getXTaxAmount(bzdhs); |
||||
if (taxAmounts != null && taxAmounts.size() > 0) { |
||||
Map<String, String> amountMap = taxAmounts.stream().collect(Collectors.toMap(FpTaxAmount::getKey, FpTaxAmount::getFpje)); |
||||
|
||||
//5.添加税率
|
||||
voucherRecordQuerys.forEach(v -> v.setFpse(amountMap.get(v.getSl() + v.getBzdh()) == null ? "0" : amountMap.get(v.getSl() + v.getBzdh()))); |
||||
} |
||||
|
||||
//6.保存或更新
|
||||
flag = this.saveOrUpdateBatch(voucherRecordQuerys); |
||||
} |
||||
return flag; |
||||
} |
||||
|
||||
|
||||
public void insertOutDataToQuery() { |
||||
//获取时间
|
||||
DynamicContextHolder.push("business"+DbConstant.BUSINESS_READ); |
||||
String[] time = this.getTime(JXSZC); |
||||
//查询数据
|
||||
List<VoucherRecordQuery> dataFromRecordItems = recordToQueryDao.getDataFromRecordItems(time[0], time[1], JXSZC); |
||||
|
||||
if (dataFromRecordItems != null && dataFromRecordItems.size() != 0){ |
||||
|
||||
this.saveOrUpdateBatch(dataFromRecordItems); |
||||
|
||||
} |
||||
|
||||
} |
||||
|
||||
String[] getTime(String km){ |
||||
//1.获取增量数据对应时间
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
||||
|
||||
Date beginTime = recordToQueryDao.getBeginTime(km); |
||||
|
||||
//第一次数据为空
|
||||
if (beginTime == null){ |
||||
beginTime = recordToQueryDao.getBeginTimefromRecord(); |
||||
} |
||||
Calendar cal = Calendar.getInstance(); |
||||
|
||||
cal.setTime(beginTime); |
||||
cal.add(Calendar.DAY_OF_MONTH,-1); |
||||
|
||||
String start = sdf.format(cal.getTime()); |
||||
//结束日期设置为明天
|
||||
cal.setTime(new Date()); |
||||
cal.add(Calendar.DAY_OF_MONTH,1); |
||||
String end = sdf.format(cal.getTime()); |
||||
|
||||
String[] time = {start,end}; |
||||
return time; |
||||
} |
||||
} |
@ -0,0 +1,8 @@ |
||||
package com.dxhy.core.service.frJob; |
||||
|
||||
import java.text.ParseException; |
||||
|
||||
public interface VoucherRecordItemService { |
||||
|
||||
boolean refreshTax(); |
||||
} |
@ -0,0 +1,60 @@ |
||||
package com.dxhy.core.service.frJob; |
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
||||
import com.dxhy.common.constant.DbConstant; |
||||
import com.dxhy.common.datasource.config.DynamicContextHolder; |
||||
import com.dxhy.core.dao.frTask.VoucherRecordItemDao; |
||||
import com.dxhy.core.enmu.KjkmTaxEnmu; |
||||
import com.dxhy.core.entity.frJob.VoucherRecordItemEntity; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springframework.stereotype.Service; |
||||
import javax.annotation.Resource; |
||||
import java.text.SimpleDateFormat; |
||||
import java.util.Calendar; |
||||
import java.util.Date; |
||||
import java.util.List; |
||||
import java.util.Map; |
||||
|
||||
@Service("voucherRecordItemService") |
||||
@Slf4j |
||||
public class VoucherRecordItemServiceImpl extends ServiceImpl<VoucherRecordItemDao, VoucherRecordItemEntity> implements VoucherRecordItemService { |
||||
|
||||
@Resource |
||||
private VoucherRecordItemDao voucherRecordItemDao; |
||||
|
||||
@Resource |
||||
private QueryDetailDataService queryDetailDataService; |
||||
private static final String JXZZS = "22210101"; |
||||
|
||||
private static final String XXZZS = "22210102"; |
||||
|
||||
|
||||
@Override |
||||
public boolean refreshTax(){ |
||||
try { |
||||
DynamicContextHolder.push("business"+DbConstant.BUSINESS_READ); |
||||
String[] jxTime = queryDetailDataService.getTime(JXZZS); |
||||
//查询进项数据
|
||||
List<VoucherRecordItemEntity> jxVoucherRecordItems = voucherRecordItemDao.getByTime(jxTime[0], jxTime[1], JXZZS); |
||||
//税率枚举
|
||||
Map<String, String> taxMap = KjkmTaxEnmu.getTaxMap(); |
||||
if (jxVoucherRecordItems != null && jxVoucherRecordItems.size() != 0){ |
||||
jxVoucherRecordItems.stream().forEach(e->e.setKbetr(taxMap.get(e.getRacct()))); |
||||
this.updateBatchById(jxVoucherRecordItems); |
||||
} |
||||
String[] xxTime = queryDetailDataService.getTime(XXZZS); |
||||
//查询销项数据
|
||||
List<VoucherRecordItemEntity> xxVoucherRecordItems = voucherRecordItemDao.getByTime(xxTime[0], xxTime[1], XXZZS); |
||||
if (xxVoucherRecordItems != null && xxVoucherRecordItems.size() != 0){ |
||||
xxVoucherRecordItems.stream().forEach(e->e.setKbetr(taxMap.get(e.getRacct()))); |
||||
this.updateBatchById(xxVoucherRecordItems); |
||||
} |
||||
}catch (Exception e){ |
||||
e.printStackTrace(); |
||||
log.error("税率刷新时错误信息为{}",e.getMessage()); |
||||
return false; |
||||
} |
||||
|
||||
return true; |
||||
} |
||||
} |
@ -0,0 +1,44 @@ |
||||
package com.dxhy.core.task; |
||||
|
||||
import com.dxhy.common.constant.DbConstant; |
||||
import com.dxhy.common.datasource.config.DynamicContextHolder; |
||||
import com.dxhy.core.job.entity.ScheduleJobEntity; |
||||
import com.dxhy.core.job.service.ScheduleJobService; |
||||
import com.dxhy.core.service.frJob.RecordToQueryService; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springframework.stereotype.Component; |
||||
|
||||
import javax.annotation.Resource; |
||||
|
||||
@Component("frDataTask") |
||||
@Slf4j |
||||
public class FrDataTask { |
||||
@Resource |
||||
private ScheduleJobService scheduleJobService; |
||||
@Resource |
||||
private RecordToQueryService recordToQueryService; |
||||
|
||||
public void frIncrementData() { |
||||
log.info("帆软抽取增量数据定时任务开始--"); |
||||
DynamicContextHolder.push(DbConstant.BASICS_READ); |
||||
ScheduleJobEntity scheduleJobEntity = scheduleJobService.queryByBeanName("frDataTask", "frIncrementData"); |
||||
if (scheduleJobEntity != null && "0".equals(scheduleJobEntity.getJobStatus())) { |
||||
try { |
||||
scheduleJobEntity.setJobStatus("1"); |
||||
DynamicContextHolder.push(DbConstant.BASICS_WRITE); |
||||
scheduleJobService.updateById(scheduleJobEntity); |
||||
recordToQueryService.getDataForFr(); |
||||
log.info("帆软抽取增量数据定时任务结束--"); |
||||
} catch (Exception e) { |
||||
e.printStackTrace(); |
||||
log.error("帆软定时任务异常信息{}",e.getMessage()); |
||||
} finally { |
||||
log.info("帆软抽取增量数据定时--重置执行状态"); |
||||
scheduleJobEntity.setJobStatus("0"); |
||||
DynamicContextHolder.push(DbConstant.BASICS_WRITE); |
||||
scheduleJobService.updateById(scheduleJobEntity); |
||||
} |
||||
} |
||||
} |
||||
|
||||
} |
@ -0,0 +1,188 @@ |
||||
<?xml version="1.0" encoding="UTF-8" ?> |
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > |
||||
<mapper namespace="com.dxhy.core.dao.frTask.QueryDetailDataDao"> |
||||
|
||||
<resultMap id="RecordToQuery" type="com.dxhy.core.entity.frJob.VoucherRecordQueryDetail"> |
||||
<id property="id" column="id"/> |
||||
<result property="uuid" column="uuid"/> |
||||
<result property="zq" column="zq"/> |
||||
<result property="xfdm" column="xfdm"/> |
||||
<result property="xfmc" column="xfmc"/> |
||||
<result property="kb" column="kb"/> |
||||
<result property="kjkmbh" column="kjkmbh"/> |
||||
<result property="kjkm" column="kjkm"/> |
||||
<result property="bzdh" column="bzdh"/> |
||||
<result property="kjpz" column="kjpz"/> |
||||
<result property="fplx" column="fplx"/> |
||||
<result property="fphm" column="fphm"/> |
||||
<result property="fpdm" column="fpdm"/> |
||||
<result property="fpse" column="fpse"/> |
||||
<result property="sl" column="sl"/> |
||||
<result property="createTime" column="create_time"/> |
||||
</resultMap> |
||||
|
||||
<select id="getDataFromRecord" resultMap="RecordToQuery"> |
||||
select CONCAT(v.kjkmbh,t.uuid) as id, |
||||
t.uuid as uuid, |
||||
LEFT(v.budat,7) as zq, |
||||
v.xfdm, |
||||
v.xfmc, |
||||
v.kb, |
||||
v.kjkmbh, |
||||
v.kjkm, |
||||
t.bzdh, |
||||
GROUP_CONCAT(DISTINCT v.kjpz) as kjpz, |
||||
t.invoice_type as fplx, |
||||
t.invoice_no as fphm, |
||||
t.invoice_code as fpdm, |
||||
sum(CAST(d.tax_amount as decimal(16,2))) as fpse, |
||||
v.sl, |
||||
v.create_time |
||||
from t_dx_record_invoice t inner join dxhy_detail.t_dx_record_invoice_detail d |
||||
on t.uuid = d.uuid |
||||
inner join ( |
||||
select r.zbzdh, |
||||
CASE |
||||
WHEN LOCATE('.',i.kbetr) >0 |
||||
THEN CAST(i.kbetr as decimal(4,1)) |
||||
ELSE CAST(i.kbetr as decimal(3)) |
||||
END as sl, |
||||
r.bukrs as xfdm, |
||||
r.butxt as xfmc, |
||||
i.racct as kjkmbh, |
||||
i.txt50 as kjkm, |
||||
GROUP_CONCAT(DISTINCT r.belnr) as kjpz, |
||||
i.zkname as kb, |
||||
SUM(IFNULL(CAST(i.zhslj as DECIMAL(20,2)),0.00)) as sapse, |
||||
r.budat, |
||||
r.create_time |
||||
from voucher_record_item i inner join voucher_record r |
||||
on i.relation_id = r.id |
||||
where i.racct like CONCAT(#{kjkmbh},'%') |
||||
and r.create_time between #{beginTime} and #{endTime} |
||||
and r.zbzdh != '' |
||||
group by r.zbzdh,i.racct |
||||
) v on t.bzdh = v.zbzdh |
||||
where d.tax_rate = v.sl |
||||
and t.invoice_type in ('01','03','08','14','31','183') |
||||
group by d.uuid,d.tax_rate |
||||
</select> |
||||
|
||||
<select id="getBeginTime" resultType="java.util.Date" parameterType="java.lang.String"> |
||||
select STR_TO_DATE(create_time,'%Y-%m-%d %H:%i:%s') as createTime |
||||
from voucher_record_query_detail |
||||
where kjkmbh like CONCAT(#{kjkmbh},'%') |
||||
order by create_time desc limit 1 |
||||
</select> |
||||
|
||||
|
||||
<select id="getBeginTimefromRecord" resultType="java.util.Date"> |
||||
select create_time from voucher_record order by create_time limit 1 |
||||
</select> |
||||
|
||||
|
||||
<insert id="insertDataToItem" parameterType="com.dxhy.core.entity.frJob.VoucherRecordQueryDetail"> |
||||
insert IGNORE into voucher_record_query_item( `id`, `uuid`, `bzdh`, `kjpz`, `fpdm`, `fphm`, `fplx`, |
||||
`fpje`, `fpse`, `createTime`) values |
||||
<foreach collection="voucherRecordQueryItemItems" item="voucherRecordQueryItem" separator=","> |
||||
(#{voucherRecordQueryItem.id},#{voucherRecordQueryItem.uuid},#{voucherRecordQueryItem.bzdh}, |
||||
#{voucherRecordQueryItem.kjpz},#{voucherRecordQueryItem.fpdm},#{voucherRecordQueryItem.fphm}, |
||||
#{voucherRecordQueryItem.fplx},#{voucherRecordQueryItem.fpje},#{voucherRecordQueryItem.createTimev}) |
||||
</foreach> |
||||
</insert> |
||||
|
||||
|
||||
<select id="getDataFromRecordJe" resultMap="RecordToQuery"> |
||||
select CONCAT(v.kjkmbh,t.uuid) as id, |
||||
t.uuid as uuid, |
||||
LEFT(v.budat,7) as zq, |
||||
v.xfdm, |
||||
v.xfmc, |
||||
v.kb, |
||||
v.kjkmbh, |
||||
v.kjkm, |
||||
t.bzdh, |
||||
GROUP_CONCAT(DISTINCT v.kjpz) as kjpz, |
||||
t.invoice_type as fplx, |
||||
t.invoice_no as fphm, |
||||
t.invoice_code as fpdm, |
||||
sum(CAST(d.detail_amount as decimal(16,2))) as fpse, |
||||
v.sl, |
||||
v.create_time |
||||
from t_dx_sale_record_invoice t inner join dxhy_detail.t_dx_record_invoice_detail_sales d |
||||
on t.uuid = d.uuid |
||||
inner join ( |
||||
select r.zbzdh, |
||||
CASE |
||||
WHEN LOCATE('.',i.kbetr) >0 |
||||
THEN CAST(i.kbetr as decimal(4,1)) |
||||
ELSE CAST(i.kbetr as decimal(3)) |
||||
END as sl, |
||||
r.bukrs as xfdm, |
||||
r.butxt as xfmc, |
||||
i.racct as kjkmbh, |
||||
i.txt50 as kjkm, |
||||
GROUP_CONCAT(DISTINCT r.belnr) as kjpz, |
||||
i.zkname as kb, |
||||
SUM(IFNULL(CAST(i.zhslj as DECIMAL(20,2)),0.00)) as sapse, |
||||
r.budat, |
||||
r.create_time |
||||
from voucher_record_item i inner join voucher_record r |
||||
on i.relation_id = r.id |
||||
where i.racct like CONCAT(#{kjkmbh},'%') |
||||
and r.create_time between #{beginTime} and #{endTime} |
||||
and r.zbzdh != '' |
||||
group by r.zbzdh,i.racct |
||||
) v on t.bzdh = v.zbzdh |
||||
where d.tax_rate = v.sl |
||||
and t.invoice_type in ('01','03','08','14','31','183') |
||||
group by d.uuid,d.tax_rate |
||||
</select> |
||||
|
||||
<select id="getDataFromRecordXx" resultMap="RecordToQuery"> |
||||
select CONCAT(v.kjkmbh,t.uuid) as id, |
||||
t.uuid as uuid, |
||||
LEFT(v.budat,7) as zq, |
||||
v.xfdm, |
||||
v.xfmc, |
||||
v.kb, |
||||
v.kjkmbh, |
||||
v.kjkm, |
||||
t.bzdh, |
||||
GROUP_CONCAT(DISTINCT v.kjpz) as kjpz, |
||||
t.invoice_type as fplx, |
||||
t.invoice_no as fphm, |
||||
t.invoice_code as fpdm, |
||||
sum(CAST(d.tax_amount as decimal(16,2))) as fpse, |
||||
v.sl, |
||||
v.create_time |
||||
from t_dx_sale_record_invoice t inner join dxhy_detail.t_dx_record_invoice_detail_sales d |
||||
on t.uuid = d.uuid |
||||
inner join ( |
||||
select r.zbzdh, |
||||
CASE |
||||
WHEN LOCATE('.',i.kbetr) >0 |
||||
THEN CAST(i.kbetr as decimal(4,1)) |
||||
ELSE CAST(i.kbetr as decimal(3)) |
||||
END as sl, |
||||
r.bukrs as xfdm, |
||||
r.butxt as xfmc, |
||||
i.racct as kjkmbh, |
||||
i.txt50 as kjkm, |
||||
GROUP_CONCAT(DISTINCT r.belnr) as kjpz, |
||||
i.zkname as kb, |
||||
SUM(IFNULL(CAST(i.zhslj as DECIMAL(20,2)),0.00)) as sapse, |
||||
r.budat, |
||||
r.create_time |
||||
from voucher_record_item i inner join voucher_record r |
||||
on i.relation_id = r.id |
||||
where i.racct like CONCAT(#{kjkmbh},'%') |
||||
and r.create_time between #{beginTime} and #{endTime} |
||||
and r.zbzdh != '' |
||||
group by r.zbzdh,i.racct |
||||
) v on t.bzdh = v.zbzdh |
||||
where d.tax_rate = v.sl |
||||
and t.invoice_type in ('01','03','08','14','31','183') |
||||
group by d.uuid,d.tax_rate |
||||
</select> |
||||
</mapper> |
@ -0,0 +1,140 @@ |
||||
<?xml version="1.0" encoding="UTF-8" ?> |
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > |
||||
<mapper namespace="com.dxhy.core.dao.frTask.RecordToQueryDao"> |
||||
|
||||
<resultMap id="RecordToQuery" type="com.dxhy.core.entity.frJob.VoucherRecordQuery"> |
||||
<id property="id" column="id"/> |
||||
<result property="zq" column="zq"/> |
||||
<result property="sl" column="sl"/> |
||||
<result property="xfdm" column="xfdm"/> |
||||
<result property="xfmc" column="xfmc"/> |
||||
<result property="kb" column="kb"/> |
||||
<result property="kjkmbh" column="kjkmbh"/> |
||||
<result property="kjkm" column="kjkm"/> |
||||
<result property="sapse" column="sapse"/> |
||||
<result property="kjpz" column="pzh"/> |
||||
<result property="bzdh" column="bzdh"/> |
||||
<result property="createTime" column="create_time"/> |
||||
</resultMap> |
||||
|
||||
<select id="getDataFromRecordItems" resultMap="RecordToQuery"> |
||||
SELECT |
||||
CONCAT(i.racct,v.zbzdh) as id, |
||||
SUBSTRING(v.budat,1,7) zq, |
||||
i.kbetr as sl, |
||||
v.bukrs as xfdm, |
||||
v.butxt as xfmc, |
||||
i.zkname as kb, |
||||
i.racct as kjkmbh, |
||||
i.txt50 as kjkm, |
||||
sum(CAST(i.zhslj as decimal(20,2))) as sapse, |
||||
v.belnr as pzh, |
||||
v.zbzdh as bzdh, |
||||
v.create_time |
||||
FROM |
||||
dxhy_tertiary.voucher_record_item i |
||||
LEFT JOIN dxhy_tertiary.voucher_record v |
||||
ON v.id = i.relation_id |
||||
where i.racct like CONCAT(#{kjkmbh},'%') |
||||
and DATE_FORMAT(v.create_time,'%Y-%m-%d %H:%i:%s') between #{start} and #{end} |
||||
and v.zbzdh != '' |
||||
group by v.zbzdh,i.racct |
||||
</select> |
||||
|
||||
<select id="getBeginTime" resultType="java.util.Date"> |
||||
select STR_TO_DATE(create_time,'%Y-%m-%d %H:%i:%s') as create_time |
||||
from voucher_record_query |
||||
where kjkmbh like CONCAT(#{kjkmbh},'%') |
||||
order by create_time desc limit 1 |
||||
</select> |
||||
|
||||
|
||||
<select id="getBeginTimefromRecord" resultType="java.util.Date"> |
||||
select create_time from voucher_record order by create_time limit 1 |
||||
</select> |
||||
|
||||
|
||||
<insert id="insertDataToQuery" parameterType="com.dxhy.core.entity.frJob.VoucherRecordQuery"> |
||||
insert IGNORE into voucher_record_query( `id`, `zq`, `xfdm`, `xfmc`, `kb`, `kjkmbh`, `kjkm`, |
||||
`sapje`, `gysmc`, `gysdm`, `pzh` ,`gfmc`,`gsdm`,`bzdh`,`create_time`) values |
||||
<foreach collection="voucherRecordQuerys" item="voucherRecordQuery" separator=","> |
||||
(#{voucherRecordQuery.id},#{voucherRecordQuery.zq},#{voucherRecordQuery.xfdm},#{voucherRecordQuery.xfmc}, |
||||
#{voucherRecordQuery.kb},#{voucherRecordQuery.kjkmbh},#{voucherRecordQuery.kjkm},#{voucherRecordQuery.sapje}, |
||||
#{voucherRecordQuery.gysmc},#{voucherRecordQuery.gysdm},#{voucherRecordQuery.pzh},#{voucherRecordQuery.gfmc}, |
||||
#{voucherRecordQuery.gsdm},#{voucherRecordQuery.bzdh},#{voucherRecordQuery.create_time}) |
||||
</foreach> |
||||
</insert> |
||||
|
||||
<select id="getTaxAmount" parameterType="java.util.List" resultType="com.dxhy.core.entity.frJob.FpTaxAmount"> |
||||
select CONCAT(d.tax_rate,t.bzdh) as `key`,sum(CAST(d.tax_amount as decimal(20,2))) as fpse |
||||
from dxhy_detail.t_dx_record_invoice_detail d inner join t_dx_record_invoice t |
||||
on d.uuid = t.uuid |
||||
where t.bzdh in |
||||
<foreach collection="bzdhs" item="bzdh" open="(" separator="," close=")"> |
||||
#{bzdh} |
||||
</foreach> |
||||
and t.invoice_type in ('01','03','08','14','31','183') |
||||
group by d.uuid,d.tax_rate,t.bzdh |
||||
</select> |
||||
|
||||
<select id="getDataXFromRecordItems" resultMap="RecordToQuery"> |
||||
SELECT |
||||
CONCAT(i.racct,v.zbzdh) as id, |
||||
SUBSTRING(v.budat,1,7) zq, |
||||
i.kbetr as sl, |
||||
v.bukrs as xfdm, |
||||
v.butxt as xfmc, |
||||
i.zkname as kb, |
||||
i.racct as kjkmbh, |
||||
i.txt50 as kjkm, |
||||
sum(CAST(i.zwsld as decimal(20,2))) as sapse, |
||||
v.belnr as pzh, |
||||
v.zbzdh as bzdh, |
||||
v.create_time |
||||
FROM |
||||
dxhy_tertiary.voucher_record_item i |
||||
LEFT JOIN dxhy_tertiary.voucher_record v |
||||
ON v.id = i.relation_id |
||||
where i.racct like CONCAT(#{kjkmbh},'%') |
||||
and DATE_FORMAT(v.create_time,'%Y-%m-%d %H:%i:%s') between #{start} and #{end} |
||||
and v.zbzdh != '' |
||||
group by v.zbzdh,i.racct |
||||
</select> |
||||
|
||||
<select id="getXTaxAmount" parameterType="java.util.List" resultType="com.dxhy.core.entity.frJob.FpTaxAmount"> |
||||
select CONCAT(d.tax_rate,t.bzdh) as `key`,sum(CAST(d.tax_amount as decimal(20,2))) as fpse, |
||||
sum(CAST(d.detail_amount as decimal(20,2))) as fpje |
||||
from dxhy_detail.t_dx_record_invoice_detail_sales d inner join t_dx_sale_record_invoice t |
||||
on d.uuid = t.uuid |
||||
where t.bzdh in |
||||
<foreach collection="bzdhs" item="bzdh" open="(" separator="," close=")"> |
||||
#{bzdh} |
||||
</foreach> |
||||
and t.invoice_type in ('01','03','08','14','31','183') |
||||
group by d.uuid,d.tax_rate,t.bzdh |
||||
</select> |
||||
|
||||
<select id="getDataZFromRecordItems" resultMap="RecordToQuery"> |
||||
SELECT |
||||
CONCAT(i.racct,v.zbzdh) as id, |
||||
SUBSTRING(v.budat,1,7) zq, |
||||
i.kbetr as sl, |
||||
v.bukrs as xfdm, |
||||
v.butxt as xfmc, |
||||
i.zkname as kb, |
||||
i.racct as kjkmbh, |
||||
i.txt50 as kjkm, |
||||
sum(CAST(i.zwsld as decimal(20,2))) as sapse, |
||||
v.belnr as pzh, |
||||
v.zbzdh as bzdh, |
||||
v.create_time |
||||
FROM |
||||
dxhy_tertiary.voucher_record_item i |
||||
LEFT JOIN dxhy_tertiary.voucher_record v |
||||
ON v.id = i.relation_id |
||||
where i.racct like CONCAT(#{kjkmbh},'%') |
||||
and DATE_FORMAT(v.create_time,'%Y-%m-%d %H:%i:%s') between #{start} and #{end} |
||||
and v.zbzdh != '' |
||||
group by v.zbzdh,i.racct |
||||
</select> |
||||
</mapper> |
@ -0,0 +1,20 @@ |
||||
<?xml version="1.0" encoding="UTF-8" ?> |
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > |
||||
<mapper namespace="com.dxhy.core.dao.frTask.VoucherRecordItemDao"> |
||||
|
||||
<resultMap id="RecordToQuery" type="com.dxhy.core.entity.frJob.VoucherRecordItemEntity"> |
||||
<id property="id" column="id"/> |
||||
<result property="racct" column="racct"/> |
||||
</resultMap> |
||||
<select id="getByTime" resultMap="RecordToQuery"> |
||||
SELECT |
||||
i.id, |
||||
i.racct |
||||
FROM |
||||
dxhy_tertiary.voucher_record_item i |
||||
LEFT JOIN dxhy_tertiary.voucher_record v |
||||
ON v.id = i.relation_id |
||||
where DATE_FORMAT(v.create_time,'%Y-%m-%d %H:%i:%s') between #{start} and #{end} |
||||
and i.racct like CONCAT(#{kjkmbh},'%') |
||||
</select> |
||||
</mapper> |
Loading…
Reference in new issue