52 changed files with 1101 additions and 39 deletions
@ -0,0 +1,45 @@ |
|||
package com.yxt.anrui.fin.api.kingdee.voucher; |
|||
|
|||
import com.yxt.common.core.dto.Dto; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.awt.print.Book; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author Administrator |
|||
* @description |
|||
* @date 2023/9/12 18:13 |
|||
*/ |
|||
@Data |
|||
public class Voucher { |
|||
@ApiModelProperty("账簿") |
|||
public String accountBook; |
|||
@ApiModelProperty("业务日期") |
|||
public String bussDate; |
|||
@ApiModelProperty("凭证字") |
|||
public String voucherWord; |
|||
@ApiModelProperty("凭证号") |
|||
public String voucherNo; |
|||
@ApiModelProperty("收款明细") |
|||
public List<Voucher.VoucherResultDetailDto> resultDetails; |
|||
|
|||
@Data |
|||
public static class VoucherResultDetailDto implements Dto { |
|||
|
|||
|
|||
@ApiModelProperty("摘要") |
|||
public String remark; |
|||
@ApiModelProperty("科目编码") |
|||
public String subjectNo; |
|||
@ApiModelProperty("核算维度部门") |
|||
public String dimensionDept; |
|||
@ApiModelProperty("核算维度客户") |
|||
public String dimensionCustom; |
|||
@ApiModelProperty("借方金额") |
|||
public String debit; |
|||
@ApiModelProperty("贷方金额") |
|||
public String credit; |
|||
} |
|||
} |
@ -0,0 +1,59 @@ |
|||
package com.yxt.anrui.fin.biz.kingdee.voucher; |
|||
|
|||
import com.alibaba.fastjson.JSON; |
|||
import com.alibaba.fastjson.JSONArray; |
|||
import com.alibaba.fastjson.JSONObject; |
|||
import com.alibaba.fastjson.parser.Feature; |
|||
import com.yxt.anrui.fin.biz.kingdee.KingDeeUtils; |
|||
|
|||
import java.util.ArrayList; |
|||
import java.util.HashMap; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* 封装转换的类 |
|||
*/ |
|||
public class VoucherCastToKingDeeBillFields { |
|||
/** |
|||
* 构造金蝶需要的数据结构 并对字段赋值 |
|||
* |
|||
* @param map_fEntityModel_ |
|||
* @param vehicleList |
|||
* @return |
|||
*/ |
|||
public static String getKingDeeData(Map<String,String> map_fEntityModel_,List<Map<String,String>> vehicleList){ |
|||
/** |
|||
* 取模板 |
|||
*/ |
|||
String readJsonFile = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/voucher/data.json"); |
|||
String fEntityData_ = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/voucher/data_data1.json"); |
|||
String fEntityModel_ = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/voucher/data_model.json"); |
|||
|
|||
//模板字符创转json
|
|||
JSONObject jsonObj= JSONObject.parseObject(readJsonFile, Feature.OrderedField); |
|||
JSONObject jsonFEntityData_= JSONObject.parseObject(fEntityData_,Feature.OrderedField); |
|||
fEntityModel_ =KingDeeUtils.replaceTemplateParams(fEntityModel_, map_fEntityModel_); |
|||
JSONObject jsonFEntityModel_= JSONObject.parseObject(fEntityModel_,Feature.OrderedField); |
|||
|
|||
List<JSONObject> list_fEntity_=new ArrayList<>(); |
|||
|
|||
//对模板字段赋值 根据传递进来的map数据的集合进行赋值
|
|||
for(int i=0;i<vehicleList.size();i++){ |
|||
String fEntity_ = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/voucher/data_FEntity.json"); |
|||
Map<String,String> params=vehicleList.get(i); |
|||
Map<String,String> map_fEntity_=new HashMap<>(); |
|||
for (Map.Entry<String, String> entry : params.entrySet()) { |
|||
map_fEntity_.put(entry.getKey(),entry.getValue()); |
|||
} |
|||
fEntity_ =KingDeeUtils.replaceTemplateParams(fEntity_, map_fEntity_); |
|||
list_fEntity_.add(JSONObject.parseObject(fEntity_,Feature.OrderedField)); |
|||
} |
|||
|
|||
jsonFEntityModel_.put("FEntity", JSONArray.parseArray(JSON.toJSONString(list_fEntity_))); |
|||
jsonFEntityData_.put("Model",JSONObject.parseObject(JSON.toJSONString(jsonFEntityModel_),Feature.OrderedField)); |
|||
jsonObj.put("data",jsonFEntityData_.toJSONString()); |
|||
|
|||
return jsonObj.toJSONString(); |
|||
} |
|||
} |
@ -0,0 +1,98 @@ |
|||
package com.yxt.anrui.fin.biz.kingdee.voucher; |
|||
|
|||
import com.yxt.anrui.fin.api.kingdee.KingDeeBillId; |
|||
import com.yxt.anrui.fin.api.kingdee.KingDeeBillUrl; |
|||
import com.yxt.anrui.fin.api.kingdee.otherarreceivable.OtherReceivable; |
|||
import com.yxt.anrui.fin.api.kingdee.voucher.Voucher; |
|||
import com.yxt.anrui.fin.biz.kingdee.FinKingDeeService; |
|||
import com.yxt.common.base.utils.StringUtils; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import java.util.ArrayList; |
|||
import java.util.HashMap; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
@Service |
|||
public class VoucherService extends FinKingDeeService { |
|||
|
|||
/** |
|||
* 生成的凭证的数据,推送到金蝶的平台中 |
|||
* |
|||
* @param voucher |
|||
* @return |
|||
*/ |
|||
public ResultBean saveVoucher(Voucher voucher) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
//业务表的主表数据集合
|
|||
Map<String, String> map_fEntityModel_ = new HashMap<>(); |
|||
//物料的数组集合
|
|||
//账簿
|
|||
if (StringUtils.isBlank(voucher.getAccountBook())) { |
|||
return rb.setMsg("账簿不能为空"); |
|||
} |
|||
map_fEntityModel_.put("FAccountBookID", voucher.getAccountBook()); |
|||
//业务日期
|
|||
if (StringUtils.isBlank(voucher.getBussDate())) { |
|||
return rb.setMsg("业务日期不能为空"); |
|||
} |
|||
map_fEntityModel_.put("FDate", voucher.getBussDate()); |
|||
//凭证字
|
|||
if (StringUtils.isBlank(voucher.getVoucherWord())) { |
|||
return rb.setMsg("凭证字不能为空"); |
|||
} |
|||
map_fEntityModel_.put("FVOUCHERGROUPID", voucher.getVoucherWord()); |
|||
//凭证号
|
|||
if (StringUtils.isBlank(voucher.getVoucherNo())) { |
|||
return rb.setMsg("凭证号不能为空"); |
|||
} |
|||
map_fEntityModel_.put("FVOUCHERGROUPNO", voucher.getVoucherNo()); |
|||
|
|||
List<Voucher.VoucherResultDetailDto> voucherResultDetailDtos = voucher.getResultDetails() == null ? new ArrayList<>() : voucher.getResultDetails(); |
|||
//准备 物料列表的数据
|
|||
ResultBean<List<Map<String, String>>> vehicleListMap = createVehicleListsForReceivableBill(voucherResultDetailDtos); |
|||
if (!vehicleListMap.getSuccess()) { |
|||
return rb.setMsg(vehicleListMap.getMsg()); |
|||
} |
|||
String kingDeeData = VoucherCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_, vehicleListMap.getData()); |
|||
try { |
|||
ResultBean<String> resultBean1 = accessKingDeeInterface(KingDeeBillId.GL_VOUCHER.getID(), kingDeeData, KingDeeBillUrl.SAVE_URL.getURL()); |
|||
if (!resultBean1.getSuccess()) { |
|||
log.info("凭证保存失败!"); |
|||
return rb.setMsg("凭证保存失败!"); |
|||
} |
|||
log.info("凭证保存成功!"); |
|||
// String submitKD = getSubmitKD(resultBean1.getData(), KingDeeBillId.AR_OTHERRECEIVABLE.getID());
|
|||
// ResultBean<String> resultBean2 = accessKingDeeInterface(KingDeeBillId.AR_OTHERRECEIVABLE.getID(), submitKD, KingDeeBillUrl.SUBMIT_URL.getURL());
|
|||
// if (!resultBean2.getSuccess()) {
|
|||
// log.info("凭证提交失败!");
|
|||
// return rb.setMsg("凭证提交失败!");
|
|||
// }
|
|||
// log.info("凭证提交成功!");
|
|||
} catch (Exception e) { |
|||
e.printStackTrace(); |
|||
} |
|||
return rb.success(); |
|||
} |
|||
|
|||
public ResultBean<List<Map<String, String>>> createVehicleListsForReceivableBill(List<Voucher.VoucherResultDetailDto> voucherResultDetailDtos) { |
|||
ResultBean<List<Map<String, String>>> rb = ResultBean.fireFail(); |
|||
List<Map<String, String>> voucherDetailMap = new ArrayList<>(); |
|||
for (int i = 0; i < voucherResultDetailDtos.size(); i++) { |
|||
Voucher.VoucherResultDetailDto c = voucherResultDetailDtos.get(i); |
|||
Map<String, String> m = new HashMap<>(); |
|||
if (StringUtils.isBlank(c.getSubjectNo())) { |
|||
return rb.setMsg("科目编码不能为空"); |
|||
} |
|||
m.put("FEXPLANATION", c.getRemark()); |
|||
m.put("FACCOUNTID", c.getSubjectNo()); |
|||
m.put("FFLEX5", c.getDimensionDept()); |
|||
m.put("FFLEX6", c.getDimensionCustom()); |
|||
m.put("FDEBIT", c.getDebit()); |
|||
m.put("FCREDIT", c.getCredit()); |
|||
voucherDetailMap.add(m); |
|||
} |
|||
return rb.success().setData(voucherDetailMap); |
|||
} |
|||
} |
@ -0,0 +1,4 @@ |
|||
{ |
|||
"formId": "GL_VOUCHER", |
|||
"data": "@KD_data" |
|||
} |
@ -0,0 +1,24 @@ |
|||
{ |
|||
"FEXPLANATION": "@KD_FEXPLANATION", |
|||
"FACCOUNTID": { |
|||
"FNumber": "@KD_FACCOUNTID" |
|||
}, |
|||
"FDetailID": { |
|||
"FDETAILID__FFLEX5": { |
|||
"FNumber": "@KD_FFLEX5" |
|||
}, |
|||
"FDETAILID__FFLEX6": { |
|||
"FNumber": "@KD_FFLEX6" |
|||
} |
|||
}, |
|||
"FCURRENCYID": { |
|||
"FNumber": "PRE001" |
|||
}, |
|||
"FEXCHANGERATETYPE": { |
|||
"FNumber": "HLTX01_SYS" |
|||
}, |
|||
"FEXCHANGERATE": 1, |
|||
"FAMOUNTFOR": "", |
|||
"FDEBIT": "@KD_FDEBIT", |
|||
"FCREDIT": "@KD_FCREDIT" |
|||
} |
@ -0,0 +1,13 @@ |
|||
{ |
|||
"Creator": "", |
|||
"NeedUpDateFields": [], |
|||
"NeedReturnFields": [], |
|||
"IsDeleteEntry": "True", |
|||
"SubSystemId": "", |
|||
"IsVerifyBaseDataField": "false", |
|||
"IsEntryBatchFill": "True", |
|||
"ValidateFlag": "True", |
|||
"NumberSearch": "True", |
|||
"InterationFlags": "", |
|||
"Model": {} |
|||
} |
@ -0,0 +1,13 @@ |
|||
{ |
|||
"FVOUCHERID": 0, |
|||
"FAccountBookID": { |
|||
"FNumber": "@KD_FAccountBookID" |
|||
}, |
|||
"FDate": "@KD_FDate", |
|||
"FVOUCHERGROUPID": { |
|||
"FNumber": "@KD_FVOUCHERGROUPID" |
|||
}, |
|||
"FVOUCHERGROUPNO": "@KD_FVOUCHERGROUPNO", |
|||
|
|||
"FEntity": [] |
|||
} |
@ -0,0 +1,81 @@ |
|||
请求参数说明: |
|||
1.formid:业务对象表单Id,字符串类型(必录) |
|||
2.data:Json格式数据(详情参考Json格式数据)(必录) |
|||
2.1.Creator:创建者内码(非必录) |
|||
2.2.NeedUpDateFields:需要更新的字段,数组类型,格式:[key1,key2,...](非必录),注(更新单据体字段得加上单据体key) |
|||
2.3.NeedReturnFields:需返回结果的字段集合,数组类型,格式:[key,entitykey.key,...](非必录),注(返回单据体字段格式:entitykey.key) |
|||
2.4.IsDeleteEntry:是否删除已存在的分录,布尔类型,默认true(非必录) |
|||
2.5.SubSystemId:表单所在的子系统内码,字符串类型(非必录) |
|||
2.6.IsVerifyBaseDataField:是否验证所有的基础资料有效性,布尔类,默认false(非必录) |
|||
2.7.IsEntryBatchFill:是否批量填充分录,默认true(非必录) |
|||
2.8.ValidateFlag:是否验证标志,布尔类型,默认true(非必录) |
|||
2.9.NumberSearch:是否用编码搜索基础资料,布尔类型,默认true(非必录) |
|||
2.10.InterationFlags:交互标志集合,字符串类型,分号分隔,格式:"flag1;flag2;..."(非必录),例如(允许负库存标识:STK_InvCheckResult) |
|||
2.11.Model:表单数据包,Json类型(必录) |
|||
|
|||
字段说明: |
|||
核算维度:FDetailID |
|||
币别:FCURRENCYID (必填项) |
|||
摘要:FEXPLANATION |
|||
科目编码:FACCOUNTID (必填项) |
|||
原币金额:FAMOUNTFOR |
|||
借方金额:FDEBIT |
|||
汇率类型:FEXCHANGERATETYPE (必填项) |
|||
汇率:FEXCHANGERATE |
|||
调整期间:FADJPRD |
|||
引入版本号:FIMPORTVERSION |
|||
合计: :FAmountDisplay |
|||
打印次数:FPRINTTIMES |
|||
转存信息-转入:FDepositIn |
|||
转存信息-转出:FDepositOut |
|||
当前年度:FCurrentYear |
|||
当前期间:FCurrentPeriod |
|||
单价:FPrice |
|||
单位:FUnitId |
|||
科目全名:FAcctFullName |
|||
数量:FQty |
|||
上移下移之前的分录内码:FOldEntryId |
|||
现金流量#分录ID:FEXPORTENTRYID |
|||
科目单位数量:FAcctUnitQty |
|||
计量单位数量:FBaseUnitQty |
|||
结算方式:FSettleTypeID |
|||
本位币金额:FAmount |
|||
贷方金额:FCREDIT |
|||
借贷方向:FDC |
|||
是否已指定现金流量:FCASHFLOWITEM |
|||
是否参与多栏账汇总:FISMULTICOLLECT |
|||
结算号:FSETTLENO |
|||
科目名称:FACCOUNTNAME |
|||
修改日期:FModifyDate |
|||
作废状态:FInvalid |
|||
用户组:FCreaterGroup |
|||
借方总金额:FDEBITTOTAL |
|||
贷方总金额:FCREDITTOTAL |
|||
出纳:FCASHIERID |
|||
审核日期:FAuditDate |
|||
审核:FCHECKERID |
|||
过账:FPOSTERID |
|||
日期:FDate (必填项) |
|||
外币:FISFOREIGNCUR |
|||
凭证编号:FBillNo |
|||
账簿:FAccountBookID (必填项) |
|||
会计年度:FYEAR |
|||
期间:FPERIOD |
|||
凭证字:FVOUCHERGROUPID (必填项) |
|||
附件数:FATTACHMENTS |
|||
核算组织:FACCBOOKORGID |
|||
已指定现金流量项目:FISCASHFLOW |
|||
业务类型:FSourceBillKey |
|||
本位币(辅助):FBASECURRENCYID |
|||
数量金额核算:FIsQty |
|||
修改人:FModifierId |
|||
是否拆分:FIsSplit |
|||
凭证号:FVOUCHERGROUPNO (必填项) |
|||
创建日期:FCreateDate |
|||
操作类型:FOperateType |
|||
审核状态:FDocumentStatus (必填项) |
|||
制单:FCreatorId |
|||
取消复核操(作辅助):FCancleRecheck |
|||
来源系统:FSystemID |
|||
是否调整期凭证:FISADJUSTVOUCHER |
|||
出纳复核操作(辅助):FCashierRecheck |
@ -0,0 +1,20 @@ |
|||
package com.yxt.anrui.portal.api.sysreportparameter; |
|||
|
|||
import com.yxt.common.core.vo.Vo; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2023/11/6 |
|||
**/ |
|||
@Data |
|||
public class ParameterVo implements Vo { |
|||
private static final long serialVersionUID = -2632852485270066096L; |
|||
|
|||
@ApiModelProperty("列名") |
|||
private String colName; |
|||
@ApiModelProperty("注释") |
|||
private String colText; |
|||
} |
@ -0,0 +1,17 @@ |
|||
package com.yxt.anrui.portal.api.sysreportparameter; |
|||
|
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2023/11/6 |
|||
**/ |
|||
@Data |
|||
public class SysReportParameterColumn { |
|||
@ApiModelProperty("列名:英文字段") |
|||
private String colName; |
|||
@ApiModelProperty("注释,中文") |
|||
private String colText; |
|||
} |
@ -0,0 +1,34 @@ |
|||
package com.yxt.anrui.portal.api.sysreportparameter; |
|||
|
|||
import com.yxt.anrui.portal.api.sysreportparametermain.SysReportParameterMainFeignFallback; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import io.swagger.annotations.Api; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import org.springframework.cloud.openfeign.FeignClient; |
|||
import org.springframework.web.bind.annotation.PostMapping; |
|||
import org.springframework.web.bind.annotation.RequestBody; |
|||
import org.springframework.web.bind.annotation.RequestParam; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2023/11/6 |
|||
**/ |
|||
@Api(tags = "统计参数") |
|||
@FeignClient( |
|||
contextId = "anrui-portal-SysReportParameter", |
|||
name = "anrui-portal", |
|||
path = "v1/SysReportParameter", |
|||
fallback = SysReportParameterFeignFallback.class) |
|||
public interface SysReportParameterFeign { |
|||
|
|||
@ApiOperation("根据表名查询表里的列及注释") |
|||
@PostMapping("/selectList") |
|||
ResultBean<List<ParameterVo>> selectList(@RequestParam("tableKey") String tableKey); |
|||
|
|||
@ApiOperation("保存") |
|||
@PostMapping("/saveOrUpdate") |
|||
ResultBean saveOrUpdate(@RequestBody SysReportParameterQuery query); |
|||
} |
@ -0,0 +1,12 @@ |
|||
package com.yxt.anrui.portal.api.sysreportparameter; |
|||
|
|||
import org.springframework.stereotype.Component; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2023/11/6 |
|||
**/ |
|||
@Component |
|||
public class SysReportParameterFeignFallback { |
|||
} |
@ -0,0 +1,22 @@ |
|||
package com.yxt.anrui.portal.api.sysreportparameter; |
|||
|
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.util.ArrayList; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2023/11/6 |
|||
**/ |
|||
@Data |
|||
public class SysReportParameterList { |
|||
@ApiModelProperty("表名英文") |
|||
private String tableNameKey; |
|||
@ApiModelProperty("表名称中文") |
|||
private String tableNameValue; |
|||
|
|||
private List<SysReportParameterColumn> list = new ArrayList<>(); |
|||
} |
@ -0,0 +1,24 @@ |
|||
package com.yxt.anrui.portal.api.sysreportparameter; |
|||
|
|||
import com.yxt.common.core.query.Query; |
|||
import lombok.Data; |
|||
|
|||
import java.util.ArrayList; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2023/11/6 |
|||
**/ |
|||
@Data |
|||
public class SysReportParameterQuery implements Query { |
|||
private static final long serialVersionUID = -4341462338073397914L; |
|||
|
|||
private String sid; |
|||
|
|||
private List<SysReportParameterList> list = new ArrayList<>(); |
|||
|
|||
|
|||
|
|||
} |
@ -0,0 +1,21 @@ |
|||
package com.yxt.anrui.portal.api.sysreportparametermain; |
|||
|
|||
import com.yxt.common.core.vo.Vo; |
|||
import lombok.Data; |
|||
|
|||
import java.util.ArrayList; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2023/11/6 |
|||
**/ |
|||
@Data |
|||
public class SysReportParameterMainInitVo implements Vo { |
|||
private static final long serialVersionUID = -2829739921484847842L; |
|||
private String sid; |
|||
private String useOrgName; |
|||
|
|||
private List<SysReportParameterMainInitsVo> list = new ArrayList<>(); |
|||
} |
@ -0,0 +1,27 @@ |
|||
package com.yxt.anrui.portal.api.sysreportparametermain; |
|||
|
|||
import com.yxt.anrui.portal.api.sysreportparameter.SysReportParameterColumn; |
|||
import com.yxt.common.core.vo.Vo; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.util.ArrayList; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2023/11/6 |
|||
**/ |
|||
@Data |
|||
public class SysReportParameterMainInitsVo implements Vo { |
|||
private static final long serialVersionUID = 6976785085297583938L; |
|||
@ApiModelProperty("表名:英文") |
|||
private String tableNameKey; |
|||
@ApiModelProperty("表名中文") |
|||
private String tableNameValue; |
|||
@ApiModelProperty("列名中文拼接") |
|||
private String colTextString; |
|||
@ApiModelProperty("列名数组") |
|||
private List<SysReportParameterColumn> list = new ArrayList<>(); |
|||
} |
@ -0,0 +1,21 @@ |
|||
package com.yxt.anrui.portal.biz.sysreportparameter; |
|||
|
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|||
import com.yxt.anrui.portal.api.sysreportparameter.ParameterVo; |
|||
import com.yxt.anrui.portal.api.sysreportparameter.SysReportParameter; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
import org.apache.ibatis.annotations.Param; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2023/11/6 |
|||
**/ |
|||
@Mapper |
|||
public interface SysReportParameterMapper extends BaseMapper<SysReportParameter> { |
|||
List<ParameterVo> selectListOne(@Param("table_schema") String table_schema, @Param("table_name") String table_name); |
|||
|
|||
int deleteByMainSid(String sid); |
|||
} |
@ -0,0 +1,16 @@ |
|||
<?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.yxt.anrui.portal.biz.sysreportparameter.SysReportParameterMapper"> |
|||
<select id="selectListOne" resultType="com.yxt.anrui.portal.api.sysreportparameter.ParameterVo"> |
|||
SELECT COLUMN_NAME colName, column_comment colText |
|||
FROM INFORMATION_SCHEMA.COLUMNS |
|||
WHERE table_schema = #{table_schema} |
|||
and TABLE_NAME = #{table_name} and column_comment not like '%hiddencol_%'; |
|||
</select> |
|||
|
|||
<delete id="deleteByMainSid"> |
|||
delete |
|||
from sys_report_parameter |
|||
where mainSid = #{sid} |
|||
</delete> |
|||
</mapper> |
@ -0,0 +1,36 @@ |
|||
package com.yxt.anrui.portal.biz.sysreportparameter; |
|||
|
|||
import com.yxt.anrui.portal.api.sysreportparameter.ParameterVo; |
|||
import com.yxt.anrui.portal.api.sysreportparameter.SysReportParameterFeign; |
|||
import com.yxt.anrui.portal.api.sysreportparameter.SysReportParameterQuery; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import io.swagger.annotations.Api; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.web.bind.annotation.RequestMapping; |
|||
import org.springframework.web.bind.annotation.RestController; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2023/11/6 |
|||
**/ |
|||
@Api(tags = "统计参数") |
|||
@RestController |
|||
@RequestMapping("v1/SysReportParameter") |
|||
public class SysReportParameterRest implements SysReportParameterFeign { |
|||
|
|||
@Autowired |
|||
private SysReportParameterService sysReportParameterService; |
|||
|
|||
@Override |
|||
public ResultBean<List<ParameterVo>> selectList(String tableKey) { |
|||
return sysReportParameterService.selectList(tableKey); |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean saveOrUpdate(SysReportParameterQuery query) { |
|||
return sysReportParameterService.saveOrUpdates(query); |
|||
} |
|||
} |
@ -0,0 +1,59 @@ |
|||
package com.yxt.anrui.portal.biz.sysreportparameter; |
|||
|
|||
import com.yxt.anrui.portal.api.sysreportparameter.*; |
|||
import com.yxt.common.base.service.MybatisBaseService; |
|||
import com.yxt.common.base.utils.StringUtils; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import java.util.Arrays; |
|||
import java.util.Collections; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2023/11/6 |
|||
**/ |
|||
@Service |
|||
public class SysReportParameterService extends MybatisBaseService<SysReportParameterMapper, SysReportParameter> { |
|||
public ResultBean<List<ParameterVo>> selectList(String tableKey) { |
|||
ResultBean<List<ParameterVo>> rb = ResultBean.fireFail(); |
|||
if (StringUtils.isBlank(tableKey)) { |
|||
return rb.setMsg("请选择表"); |
|||
} |
|||
List<String> sys = Arrays.asList(tableKey.split("\\.")); |
|||
String table_schema = Arrays.asList(tableKey.split("\\.")).get(0); |
|||
String table_name = Arrays.asList(tableKey.split("\\.")).get(1); |
|||
List<ParameterVo> parameterVoList = baseMapper.selectListOne(table_schema, table_name); |
|||
return rb.success().setData(parameterVoList); |
|||
} |
|||
|
|||
public ResultBean saveOrUpdates(SysReportParameterQuery query) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
String sid = query.getSid(); |
|||
baseMapper.deleteByMainSid(sid); |
|||
List<SysReportParameterList> list = query.getList(); |
|||
list.removeAll(Collections.singleton(null)); |
|||
if (!list.isEmpty()) { |
|||
for (int i = 0; i < list.size(); i++) { |
|||
SysReportParameter sysReportParameter = new SysReportParameter(); |
|||
SysReportParameterList sysReportParameterList = list.get(i); |
|||
sysReportParameter.setMainSid(sid); |
|||
sysReportParameter.setTableNameKey(sysReportParameterList.getTableNameKey()); |
|||
sysReportParameter.setTableNameValue(sysReportParameterList.getTableNameValue()); |
|||
List<SysReportParameterColumn> lists = sysReportParameterList.getList(); |
|||
lists.removeAll(Collections.singleton(null)); |
|||
if (!lists.isEmpty()) { |
|||
for (int j = 0; j < lists.size(); j++) { |
|||
SysReportParameterColumn sysReportParameterColumn = lists.get(j); |
|||
sysReportParameter.setColName(sysReportParameterColumn.getColName()); |
|||
sysReportParameter.setColText(sysReportParameterColumn.getColText()); |
|||
baseMapper.insert(sysReportParameter); |
|||
} |
|||
} |
|||
} |
|||
} |
|||
return rb.success(); |
|||
} |
|||
} |
@ -0,0 +1,31 @@ |
|||
package com.yxt.anrui.portal.biz.sysreportparametermain; |
|||
|
|||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|||
import com.baomidou.mybatisplus.core.metadata.IPage; |
|||
import com.baomidou.mybatisplus.core.toolkit.Constants; |
|||
import com.yxt.anrui.portal.api.sysreportparameter.SysReportParameterColumn; |
|||
import com.yxt.anrui.portal.api.sysreportparametermain.SysReportParameterMain; |
|||
import com.yxt.anrui.portal.api.sysreportparametermain.SysReportParameterMainInitsVo; |
|||
import com.yxt.anrui.portal.api.sysreportparametermain.SysReportParameterMainVo; |
|||
import com.yxt.anrui.portal.api.sysuser.SysUser; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
import org.apache.ibatis.annotations.Param; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2023/11/6 |
|||
**/ |
|||
@Mapper |
|||
public interface SysReportParameterMainMapper extends BaseMapper<SysReportParameterMain> { |
|||
IPage<SysReportParameterMainVo> selectPageVo(IPage<SysReportParameterMain> page, @Param(Constants.WRAPPER) QueryWrapper<SysReportParameterMain> qw); |
|||
|
|||
SysReportParameterMain selectByUseOrgSid(String sid); |
|||
|
|||
List<SysReportParameterMainInitsVo> selectGroup(String sid); |
|||
|
|||
List<SysReportParameterColumn> selectGroups(String tableNameKey); |
|||
} |
@ -0,0 +1,47 @@ |
|||
<?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.yxt.anrui.portal.biz.sysreportparametermain.SysReportParameterMainMapper"> |
|||
<select id="selectPageVo" resultType="com.yxt.anrui.portal.api.sysreportparametermain.SysReportParameterMainVo"> |
|||
select spm.sid, |
|||
spm.useOrgName, |
|||
b.parameterValue |
|||
from sys_report_parameter_main spm |
|||
LEFT JOIN ( |
|||
SELECT a.parameterValue, |
|||
a.mainSid |
|||
FROM ( |
|||
SELECT concat( |
|||
tableNameValue, |
|||
':', |
|||
group_concat(colText SEPARATOR ',')) AS parameterValue, |
|||
mainSid |
|||
FROM sys_report_parameter |
|||
GROUP BY tableNameKey,mainSid |
|||
ORDER BY id ASC |
|||
) a) b ON b.mainSid = spm.sid |
|||
<where> |
|||
${ew.sqlSegment} |
|||
</where> |
|||
order by spm.id asc |
|||
</select> |
|||
|
|||
<select id="selectByUseOrgSid" resultType="com.yxt.anrui.portal.api.sysreportparametermain.SysReportParameterMain"> |
|||
select * |
|||
from sys_report_parameter_main |
|||
where useOrgSid = #{sid} |
|||
</select> |
|||
|
|||
<select id="selectGroup" resultType="com.yxt.anrui.portal.api.sysreportparametermain.SysReportParameterMainInitsVo"> |
|||
SELECT group_concat(colText SEPARATOR ',') AS colTextString, tableNameKey, tableNameValue |
|||
FROM sys_report_parameter |
|||
where mainSid = #{sid} |
|||
GROUP BY tableNameKey |
|||
ORDER BY id ASC |
|||
</select> |
|||
|
|||
<select id="selectGroups" resultType="com.yxt.anrui.portal.api.sysreportparameter.SysReportParameterColumn"> |
|||
select colName, colText |
|||
from sys_report_parameter |
|||
where tableNameKey = #{tableNameKey} |
|||
</select> |
|||
</mapper> |
@ -0,0 +1,100 @@ |
|||
package com.yxt.anrui.portal.biz.sysreportparametermain; |
|||
|
|||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|||
import com.baomidou.mybatisplus.core.metadata.IPage; |
|||
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo; |
|||
import com.yxt.anrui.portal.api.sysreportparameter.SysReportParameterColumn; |
|||
import com.yxt.anrui.portal.api.sysreportparametermain.*; |
|||
import com.yxt.anrui.portal.biz.sysorganization.SysOrganizationService; |
|||
import com.yxt.anrui.portal.biz.sysstafforg.SysStaffOrgService; |
|||
import com.yxt.common.base.service.MybatisBaseService; |
|||
import com.yxt.common.base.utils.PagerUtil; |
|||
import com.yxt.common.base.utils.StringUtils; |
|||
import com.yxt.common.core.query.PagerQuery; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import com.yxt.common.core.vo.PagerVo; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import java.util.Arrays; |
|||
import java.util.Collections; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2023/11/6 |
|||
**/ |
|||
@Service |
|||
public class SysReportParameterMainService extends MybatisBaseService<SysReportParameterMainMapper, SysReportParameterMain> { |
|||
|
|||
@Autowired |
|||
private SysOrganizationService sysOrganizationService; |
|||
@Autowired |
|||
private SysStaffOrgService sysStaffOrgService; |
|||
|
|||
public PagerVo<SysReportParameterMainVo> listPageVo(PagerQuery<SysReportParameterMainQuery> pagerQuery) { |
|||
SysReportParameterMainQuery query = pagerQuery.getParams(); |
|||
String orgPath = query.getOrgPath(); |
|||
List<String> stringList = Arrays.asList(orgPath.split("/")); |
|||
String sybOrgSid = orgPath.substring(37, 73); |
|||
QueryWrapper<SysReportParameterMain> qw = new QueryWrapper<>(); |
|||
if (query != null) { |
|||
if (StringUtils.isNotBlank(query.getUseOrgName())) {//分公司
|
|||
qw.like("spm.useOrgName", query.getUseOrgName()); |
|||
} |
|||
} |
|||
if (stringList.size() <= 2) { |
|||
List<SysOrganizationVo> sysOrganizationVos = sysOrganizationService.selectOrgByPSid(sybOrgSid).getData(); |
|||
if (!sysOrganizationVos.isEmpty()) { |
|||
for (SysOrganizationVo sysOrganizationVo : sysOrganizationVos) { |
|||
SysReportParameterMain sysReportParameterMain = baseMapper.selectByUseOrgSid(sysOrganizationVo.getSid()); |
|||
if (sysReportParameterMain == null) { |
|||
sysReportParameterMain = new SysReportParameterMain(); |
|||
sysReportParameterMain.setOrgSidPath(sysOrganizationVo.getOrgSidPath()); |
|||
sysReportParameterMain.setCreateOrgSid(sybOrgSid); |
|||
sysReportParameterMain.setUseOrgName(sysOrganizationVo.getName()); |
|||
sysReportParameterMain.setUseOrgSid(sysOrganizationVo.getSid()); |
|||
baseMapper.insert(sysReportParameterMain); |
|||
} |
|||
} |
|||
} |
|||
qw.eq("spm.createOrgSid", sybOrgSid); |
|||
} else { |
|||
String useOrgSid = sysStaffOrgService.getOrgSidByPath(orgPath).getData(); |
|||
qw.eq("spm.useOrgSid", useOrgSid); |
|||
} |
|||
IPage<SysReportParameterMain> page = PagerUtil.queryToPage(pagerQuery); |
|||
IPage<SysReportParameterMainVo> pagging = baseMapper.selectPageVo(page, qw); |
|||
PagerVo<SysReportParameterMainVo> p = PagerUtil.pageToVo(pagging, null); |
|||
return p; |
|||
} |
|||
|
|||
public static void main(String[] args) { |
|||
String orgPath = "fd6435f2-0005-11ec-a033-48452053aa33/78593187-75af-4ea1-94e6-62b7cc11bfcb/843db298-33ef-42fb-82dd-f6f3d455348c/1f6d2215-f591-40ea-b447-69cc9d7c1751"; |
|||
List<String> stringList = Arrays.asList(orgPath.split("/")); |
|||
System.out.println(stringList); |
|||
String sybOrgSid = orgPath.substring(37, 73); |
|||
System.out.println(sybOrgSid); |
|||
|
|||
} |
|||
|
|||
public ResultBean<SysReportParameterMainInitVo> getInit(String sid) { |
|||
ResultBean<SysReportParameterMainInitVo> rb = ResultBean.fireFail(); |
|||
SysReportParameterMainInitVo sysReportParameterMainInitVo = new SysReportParameterMainInitVo(); |
|||
SysReportParameterMain sysReportParameterMain = fetchBySid(sid); |
|||
sysReportParameterMainInitVo.setUseOrgName(sysReportParameterMain.getUseOrgName()); |
|||
List<SysReportParameterMainInitsVo> list = baseMapper.selectGroup(sid); |
|||
for (int i = 0; i < list.size(); i++) { |
|||
SysReportParameterMainInitsVo sysReportParameterMainInitsVo = list.get(i); |
|||
List<SysReportParameterColumn> lists = baseMapper.selectGroups(sysReportParameterMainInitsVo.getTableNameKey()); |
|||
lists.removeAll(Collections.singleton(null)); |
|||
if(!lists.isEmpty()){ |
|||
sysReportParameterMainInitsVo.setList(lists); |
|||
} |
|||
} |
|||
sysReportParameterMainInitVo.setList(list); |
|||
sysReportParameterMainInitVo.setSid(sid); |
|||
return rb.success().setData(sysReportParameterMainInitVo); |
|||
} |
|||
} |
@ -0,0 +1,27 @@ |
|||
package com.yxt.anrui.terminal.api.risk.baseInfo; |
|||
|
|||
import com.yxt.common.core.result.ResultBean; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import org.springframework.cloud.openfeign.FeignClient; |
|||
import org.springframework.cloud.openfeign.SpringQueryMap; |
|||
import org.springframework.web.bind.annotation.GetMapping; |
|||
import org.springframework.web.bind.annotation.ResponseBody; |
|||
|
|||
/** |
|||
* @Author dimengzhe |
|||
* @Date 2023/3/2 14:02 |
|||
* @Description |
|||
*/ |
|||
@FeignClient( |
|||
contextId = "anrui-terminal-AppAutoRiskBaseInfo", |
|||
name = "anrui-terminal", |
|||
path = "riskcenter/v1/baseInfo") |
|||
public interface AppAutoRiskBaseInfoFeign { |
|||
|
|||
@ApiOperation("获取风控各子应用模块待办数量:切换机构") |
|||
@GetMapping("/getToDoNum") |
|||
@ResponseBody |
|||
public ResultBean<AppAutoRiskBaseInfoVo> getToDoNum(@SpringQueryMap AppAutoRiskBaseInfoQuery baseInfoQuery); |
|||
|
|||
|
|||
} |
@ -0,0 +1,19 @@ |
|||
package com.yxt.anrui.terminal.api.risk.baseInfo; |
|||
|
|||
import com.yxt.common.core.query.Query; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @Author dimengzhe |
|||
* @Date 2023/3/3 11:22 |
|||
* @Description |
|||
*/ |
|||
@Data |
|||
public class AppAutoRiskBaseInfoQuery implements Query { |
|||
|
|||
@ApiModelProperty("用户sid") |
|||
private String userSid; |
|||
@ApiModelProperty("组织机构sid") |
|||
private String orgPath; |
|||
} |
@ -0,0 +1,18 @@ |
|||
package com.yxt.anrui.terminal.api.risk.baseInfo; |
|||
|
|||
import com.yxt.common.core.vo.Vo; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @Author dimengzhe |
|||
* @Date 2023/3/3 11:30 |
|||
* @Description |
|||
*/ |
|||
@Data |
|||
public class AppAutoRiskBaseInfoVo implements Vo { |
|||
|
|||
//家访考察代办
|
|||
private String jfkcNum; |
|||
//放款资料上传代办
|
|||
private String fkzlscNum; |
|||
} |
@ -0,0 +1,27 @@ |
|||
package com.yxt.anrui.terminal.biz.risk.baseinfo; |
|||
|
|||
import com.yxt.anrui.terminal.api.risk.baseInfo.AppAutoRiskBaseInfoFeign; |
|||
import com.yxt.anrui.terminal.api.risk.baseInfo.AppAutoRiskBaseInfoQuery; |
|||
import com.yxt.anrui.terminal.api.risk.baseInfo.AppAutoRiskBaseInfoVo; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Controller; |
|||
import org.springframework.web.bind.annotation.RequestMapping; |
|||
|
|||
/** |
|||
* @Author dimengzhe |
|||
* @Date 2023/3/3 11:24 |
|||
* @Description |
|||
*/ |
|||
@Controller |
|||
@RequestMapping("riskcenter/v1/baseInfo") |
|||
public class AppAutoRiskBaseInfoRest implements AppAutoRiskBaseInfoFeign { |
|||
|
|||
@Autowired |
|||
private AppAutoRiskBaseInfoService appAutoRiskBaseInfoService; |
|||
|
|||
@Override |
|||
public ResultBean<AppAutoRiskBaseInfoVo> getToDoNum(AppAutoRiskBaseInfoQuery baseInfoQuery) { |
|||
return appAutoRiskBaseInfoService.getToDoNum(baseInfoQuery); |
|||
} |
|||
} |
@ -0,0 +1,52 @@ |
|||
package com.yxt.anrui.terminal.biz.risk.baseinfo; |
|||
|
|||
import com.yxt.anrui.base.api.commoncontract.CommonContractFeign; |
|||
import com.yxt.anrui.base.api.commoncontract.CommonToDoNumQuery; |
|||
import com.yxt.anrui.riskcenter.api.loanfileexamine.LoanFileexamineFeign; |
|||
import com.yxt.anrui.riskcenter.api.loanhomevisitinvestigate.LoanHomevisitInvestigateFeign; |
|||
import com.yxt.anrui.riskcenter.api.loanhomevisitinvestigate.RiskToDoNumQuery; |
|||
import com.yxt.anrui.terminal.api.autoservice.baseInfo.AppAutoServiceBaseInfoQuery; |
|||
import com.yxt.anrui.terminal.api.autoservice.baseInfo.AppAutoServiceBaseInfoVo; |
|||
import com.yxt.anrui.terminal.api.risk.baseInfo.AppAutoRiskBaseInfoQuery; |
|||
import com.yxt.anrui.terminal.api.risk.baseInfo.AppAutoRiskBaseInfoVo; |
|||
import com.yxt.anrui.terminal.api.risk.loanhomevisitinvestigate.LoanHomeVisitInvestigateFeign; |
|||
import com.yxt.common.base.utils.StringUtils; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
/** |
|||
* @Author dimengzhe |
|||
* @Date 2023/3/3 11:27 |
|||
* @Description |
|||
*/ |
|||
@Service |
|||
public class AppAutoRiskBaseInfoService { |
|||
|
|||
@Autowired |
|||
private LoanHomevisitInvestigateFeign loanHomevisitInvestigateFeign; |
|||
@Autowired |
|||
private LoanFileexamineFeign loanFileexamineFeign; |
|||
|
|||
public ResultBean<AppAutoRiskBaseInfoVo> getToDoNum(AppAutoRiskBaseInfoQuery baseInfoQuery) { |
|||
String orgPath = baseInfoQuery.getOrgPath(); |
|||
String userSid = baseInfoQuery.getUserSid(); |
|||
ResultBean<AppAutoRiskBaseInfoVo> rb = ResultBean.fireFail(); |
|||
AppAutoRiskBaseInfoVo appAutoRiskBaseInfoVo = new AppAutoRiskBaseInfoVo(); |
|||
String jfkcNum = ""; |
|||
String fkzlscNum = ""; |
|||
if(StringUtils.isNotBlank(orgPath)){ |
|||
//切换机构
|
|||
RiskToDoNumQuery appToDoNumQuery = new RiskToDoNumQuery(); |
|||
appToDoNumQuery.setUserSid(userSid); |
|||
appToDoNumQuery.setOrgPath(orgPath); |
|||
//家访考察待办数量
|
|||
jfkcNum = loanHomevisitInvestigateFeign.getToDoNum(appToDoNumQuery).getData(); |
|||
//放款资料上传代办数量
|
|||
fkzlscNum = loanFileexamineFeign.getToDoNum(appToDoNumQuery).getData(); |
|||
} |
|||
appAutoRiskBaseInfoVo.setJfkcNum(jfkcNum); |
|||
appAutoRiskBaseInfoVo.setFkzlscNum(fkzlscNum); |
|||
return rb.success().setData(appAutoRiskBaseInfoVo); |
|||
} |
|||
} |
Loading…
Reference in new issue