Commit 82900ba020412c9a516efd644e774d704f21b321

Authored by zhangmeiyang
1 parent ade50705

金蝶对接pt4

etrade-thirdparty/src/main/java/com/diligrp/etrade/thirdparty/component/TransferComponent.java
@@ -13,7 +13,6 @@ import org.springframework.util.ObjectUtils; @@ -13,7 +13,6 @@ import org.springframework.util.ObjectUtils;
13 13
14 import java.time.LocalDateTime; 14 import java.time.LocalDateTime;
15 import java.time.format.DateTimeFormatter; 15 import java.time.format.DateTimeFormatter;
16 -import java.util.Objects;  
17 16
18 /** 17 /**
19 * Transfer Component (传输组件) 18 * Transfer Component (传输组件)
@@ -38,7 +37,7 @@ public class TransferComponent { @@ -38,7 +37,7 @@ public class TransferComponent {
38 * @param systemCode 系统代码 37 * @param systemCode 系统代码
39 */ 38 */
40 public void transBaseCo(BaseBillCo co, Long marketId, String systemCode) { 39 public void transBaseCo(BaseBillCo co, Long marketId, String systemCode) {
41 - co.setF_PZCW_Text(Objects.requireNonNull(OperateType.getOperateType(Integer.parseInt(co.getF_PZCW_Text()))).getName()); 40 + co.setF_PZCW_Text(OperateType.getOperateType(Integer.parseInt(co.getF_PZCW_Text())).getName());
42 co.setFDATE(LocalDateTime.now().format(DateTimeFormatter.ofPattern(Constants.DATE_TIME_FORMAT))); 41 co.setFDATE(LocalDateTime.now().format(DateTimeFormatter.ofPattern(Constants.DATE_TIME_FORMAT)));
43 co.setFCURRENCYID(new FCURRENCYID()); 42 co.setFCURRENCYID(new FCURRENCYID());
44 co.setFMAINBOOKSTDCURRID(new FMAINBOOKSTDCURRID()); 43 co.setFMAINBOOKSTDCURRID(new FMAINBOOKSTDCURRID());
etrade-thirdparty/src/main/java/com/diligrp/etrade/thirdparty/demarcate/AbstractBillHandler.java
@@ -4,13 +4,11 @@ import com.diligrp.etrade.core.util.JsonUtils; @@ -4,13 +4,11 @@ import com.diligrp.etrade.core.util.JsonUtils;
4 import com.diligrp.etrade.thirdparty.component.TransferComponent; 4 import com.diligrp.etrade.thirdparty.component.TransferComponent;
5 import com.diligrp.etrade.thirdparty.domain.co.business.BaseBillCo; 5 import com.diligrp.etrade.thirdparty.domain.co.business.BaseBillCo;
6 import com.diligrp.etrade.thirdparty.domain.dto.BusinessDetailDto; 6 import com.diligrp.etrade.thirdparty.domain.dto.BusinessDetailDto;
  7 +import com.diligrp.etrade.thirdparty.domain.dto.BusinessDto;
7 import com.diligrp.etrade.thirdparty.domain.dto.ClientDto; 8 import com.diligrp.etrade.thirdparty.domain.dto.ClientDto;
8 import com.diligrp.etrade.thirdparty.domain.model.FEntityDetail; 9 import com.diligrp.etrade.thirdparty.domain.model.FEntityDetail;
9 import com.diligrp.etrade.thirdparty.mapper.TransMapper; 10 import com.diligrp.etrade.thirdparty.mapper.TransMapper;
10 -import com.diligrp.etrade.thirdparty.type.BasicEnum;  
11 -import com.diligrp.etrade.thirdparty.type.BusinessEnum;  
12 -import com.diligrp.etrade.thirdparty.type.DynamicType;  
13 -import com.diligrp.etrade.thirdparty.type.SelectType; 11 +import com.diligrp.etrade.thirdparty.type.*;
14 import com.diligrp.etrade.thirdparty.utils.PurchaseOrderApiUtils; 12 import com.diligrp.etrade.thirdparty.utils.PurchaseOrderApiUtils;
15 import com.kingdee.bos.webapi.entity.IdentifyInfo; 13 import com.kingdee.bos.webapi.entity.IdentifyInfo;
16 import jakarta.annotation.Resource; 14 import jakarta.annotation.Resource;
@@ -20,6 +18,7 @@ import java.util.ArrayList; @@ -20,6 +18,7 @@ import java.util.ArrayList;
20 import java.util.HashMap; 18 import java.util.HashMap;
21 import java.util.List; 19 import java.util.List;
22 import java.util.Map; 20 import java.util.Map;
  21 +import java.util.stream.Collectors;
23 22
24 /** 23 /**
25 * 抽象业务处理程序 24 * 抽象业务处理程序
@@ -83,6 +82,38 @@ public abstract class AbstractBillHandler<T extends BaseBillCo> implements TypeM @@ -83,6 +82,38 @@ public abstract class AbstractBillHandler<T extends BaseBillCo> implements TypeM
83 t.getFSettleTypeID().setFNumber(data.getItemValue()); 82 t.getFSettleTypeID().setFNumber(data.getItemValue());
84 } 83 }
85 84
  85 + /**
  86 + * Transfer Dynamic Charge 项目
  87 + *
  88 + * @param data 数据
  89 + * @param entity 实体
  90 + */
  91 + protected static <T extends BaseBillCo> void transferDynamicChargeItem(T entity, List<BusinessDetailDto> data) {
  92 + Map<String, String> relationMap = new HashMap<>();
  93 + Map<String, String> codeMap = new HashMap<>();
  94 + for (BusinessDetailDto dto : data) {
  95 + if (!ObjectUtils.isEmpty(dto.getItemRelationId())) {
  96 + relationMap.put(String.valueOf(dto.getItemRelationId()), dto.getItemValue());
  97 + }
  98 + if (!ObjectUtils.isEmpty(dto.getItemCode())) {
  99 + codeMap.put(dto.getItemCode(), dto.getItemValue());
  100 + }
  101 + }
  102 + List<FEntityDetail> fEntityDetail = entity.getFEntityDetail().stream().filter(f -> ObjectUtils.isEmpty(f.getFCOSTID())).toList();
  103 + fEntityDetail.forEach(e -> {
  104 + var costId = e.getFASSETID().getFNUMBER();
  105 + if (relationMap.containsKey(costId)) {
  106 + e.getFCOSTID().setFNUMBER(relationMap.get(costId));
  107 + } else if (codeMap.containsKey(costId)) {
  108 + e.getFCOSTID().setFNUMBER(relationMap.get(costId));
  109 + }
  110 + });
  111 + }
  112 +
  113 + protected <T extends BaseBillCo> List<T> validDataSync(List<T> ts, Long marketId, String systemCode) {
  114 + return ts.stream().filter(t -> !isSync(marketId, systemCode, DynamicType.fromCode(t.getSystemDynamicCode()))).collect(Collectors.toList());
  115 + }
  116 +
86 117
87 /** 118 /**
88 * 固定转换 119 * 固定转换
@@ -106,34 +137,22 @@ public abstract class AbstractBillHandler&lt;T extends BaseBillCo&gt; implements TypeM @@ -106,34 +137,22 @@ public abstract class AbstractBillHandler&lt;T extends BaseBillCo&gt; implements TypeM
106 } 137 }
107 138
108 /** 139 /**
109 - * Transfer Dynamic Charge 项目  
110 * 140 *
111 - * @param data 数据  
112 - * @param entity 实体 141 + * 是否同步
  142 + *
  143 + * @param marketId 市场 ID
  144 + * @param systemCode 系统代码
  145 + * @return boolean
113 */ 146 */
114 - protected static <T extends BaseBillCo> void transferDynamicChargeItem(T entity, List<BusinessDetailDto> data) {  
115 - Map<String,String> relationMap = new HashMap<>();  
116 - Map<String,String> codeMap = new HashMap<>();  
117 - for (BusinessDetailDto dto : data) {  
118 - if (!ObjectUtils.isEmpty(dto.getItemRelationId())){  
119 - relationMap.put(String.valueOf(dto.getItemRelationId()), dto.getItemValue());  
120 - }  
121 - if (!ObjectUtils.isEmpty(dto.getItemCode())){  
122 - codeMap.put(dto.getItemCode(), dto.getItemValue());  
123 - } 147 + protected boolean isSync(Long marketId, String systemCode, DynamicType dynamicType) {
  148 + BusinessDto businessConfig = transMapper.getBusinessConfig(systemCode, marketId, dynamicType.code);
  149 + if (ObjectUtils.isEmpty(businessConfig)) {
  150 + return false;
124 } 151 }
125 - List<FEntityDetail> fEntityDetail = entity.getFEntityDetail().stream().filter(f -> ObjectUtils.isEmpty(f.getFCOSTID())).toList();  
126 - fEntityDetail.forEach(e->{  
127 - var costId = e.getFASSETID().getFNUMBER();  
128 - if (relationMap.containsKey(costId)){  
129 - e.getFCOSTID().setFNUMBER(relationMap.get(costId));  
130 - }else if (codeMap.containsKey(costId)){  
131 - e.getFCOSTID().setFNUMBER(relationMap.get(costId));  
132 - }  
133 - }); 152 + return ObjectUtils.nullSafeEquals(businessConfig.getSyncType(), SyncType.SYNC.code);
134 } 153 }
135 154
136 - protected void transferDataList(List<T> ts, Long marketId, String systemCode){ 155 + protected void transferDataList(List<T> ts, Long marketId, String systemCode) {
137 ts.forEach(e -> { 156 ts.forEach(e -> {
138 DynamicType dynamicType = DynamicType.fromCode(e.getSystemDynamicCode()); 157 DynamicType dynamicType = DynamicType.fromCode(e.getSystemDynamicCode());
139 transfer(e, marketId, systemCode); 158 transfer(e, marketId, systemCode);
@@ -157,7 +176,7 @@ public abstract class AbstractBillHandler&lt;T extends BaseBillCo&gt; implements TypeM @@ -157,7 +176,7 @@ public abstract class AbstractBillHandler&lt;T extends BaseBillCo&gt; implements TypeM
157 BasicEnum.FINANCIAL_CHANNEL_TYPE_TO_LOWER.code, 176 BasicEnum.FINANCIAL_CHANNEL_TYPE_TO_LOWER.code,
158 BasicEnum.FINANCIAL_BUSINESS_TYPE_TO_LOWER.code 177 BasicEnum.FINANCIAL_BUSINESS_TYPE_TO_LOWER.code
159 }; 178 };
160 - var dynamicParam = transMapper.getFixedWithQueryArrays(systemCode, dynamicType.code, marketId, SelectType.FIXED.getCode(),queryArrays ); 179 + var dynamicParam = transMapper.getFixedWithQueryArrays(systemCode, dynamicType.code, marketId, SelectType.FIXED.getCode(), queryArrays);
161 Map<String, BusinessDetailDto> map = new HashMap<>(); 180 Map<String, BusinessDetailDto> map = new HashMap<>();
162 dynamicParam.forEach(e -> map.computeIfAbsent(e.getCode(), k -> e)); 181 dynamicParam.forEach(e -> map.computeIfAbsent(e.getCode(), k -> e));
163 return map; 182 return map;
@@ -173,7 +192,7 @@ public abstract class AbstractBillHandler&lt;T extends BaseBillCo&gt; implements TypeM @@ -173,7 +192,7 @@ public abstract class AbstractBillHandler&lt;T extends BaseBillCo&gt; implements TypeM
173 */ 192 */
174 protected Map<String, List<BusinessDetailDto>> getFilteredDynamicDataMulti(DynamicType dynamicType, Long marketId, String systemCode) { 193 protected Map<String, List<BusinessDetailDto>> getFilteredDynamicDataMulti(DynamicType dynamicType, Long marketId, String systemCode) {
175 var queryArrays = new String[]{BasicEnum.CHARGE_ITEM_TO_LOWER.code}; 194 var queryArrays = new String[]{BasicEnum.CHARGE_ITEM_TO_LOWER.code};
176 - var dynamicParam = transMapper.getFixedWithQueryArrays(systemCode, dynamicType.code, marketId, SelectType.FIXED.getCode(),queryArrays); 195 + var dynamicParam = transMapper.getFixedWithQueryArrays(systemCode, dynamicType.code, marketId, SelectType.FIXED.getCode(), queryArrays);
177 Map<String, List<BusinessDetailDto>> map = new HashMap<>(); 196 Map<String, List<BusinessDetailDto>> map = new HashMap<>();
178 dynamicParam.forEach(e -> map.computeIfAbsent(e.getCode(), k -> new ArrayList<>()).add(e)); 197 dynamicParam.forEach(e -> map.computeIfAbsent(e.getCode(), k -> new ArrayList<>()).add(e));
179 return map; 198 return map;
@@ -187,7 +206,7 @@ public abstract class AbstractBillHandler&lt;T extends BaseBillCo&gt; implements TypeM @@ -187,7 +206,7 @@ public abstract class AbstractBillHandler&lt;T extends BaseBillCo&gt; implements TypeM
187 * @param ts 茨 206 * @param ts 茨
188 * @throws Exception 例外 207 * @throws Exception 例外
189 */ 208 */
190 - protected void sendPurchaseOrder(List<T> ts,Long marketId, String systemCode) throws Exception { 209 + protected void sendPurchaseOrder(List<T> ts, Long marketId, String systemCode) throws Exception {
191 var identifyInfo = new IdentifyInfo(); 210 var identifyInfo = new IdentifyInfo();
192 ClientDto clientParam = transMapper.getClientParam(systemCode, marketId); 211 ClientDto clientParam = transMapper.getClientParam(systemCode, marketId);
193 identifyInfo.setAppId(clientParam.getApplyId()); 212 identifyInfo.setAppId(clientParam.getApplyId());
etrade-thirdparty/src/main/java/com/diligrp/etrade/thirdparty/domain/dto/BusinessDto.java 0 → 100644
  1 +package com.diligrp.etrade.thirdparty.domain.dto;
  2 +
  3 +/**
  4 + * @Author: zhangmeiyang
  5 + * @CreateTime: 2024-10-31 10:32
  6 + * @Version: todo
  7 + */
  8 +public class BusinessDto {
  9 + private Long id;
  10 + private Long marketId;
  11 + private String systemCode;
  12 + private String code;
  13 + private String name;
  14 + private String syncType;
  15 +
  16 + public Long getId() {
  17 + return id;
  18 + }
  19 +
  20 + public void setId(Long id) {
  21 + this.id = id;
  22 + }
  23 +
  24 + public Long getMarketId() {
  25 + return marketId;
  26 + }
  27 +
  28 + public void setMarketId(Long marketId) {
  29 + this.marketId = marketId;
  30 + }
  31 +
  32 + public String getSystemCode() {
  33 + return systemCode;
  34 + }
  35 +
  36 + public void setSystemCode(String systemCode) {
  37 + this.systemCode = systemCode;
  38 + }
  39 +
  40 + public String getCode() {
  41 + return code;
  42 + }
  43 +
  44 + public void setCode(String code) {
  45 + this.code = code;
  46 + }
  47 +
  48 + public String getName() {
  49 + return name;
  50 + }
  51 +
  52 + public void setName(String name) {
  53 + this.name = name;
  54 + }
  55 +
  56 + public String getSyncType() {
  57 + return syncType;
  58 + }
  59 +
  60 + public void setSyncType(String syncType) {
  61 + this.syncType = syncType;
  62 + }
  63 +}
etrade-thirdparty/src/main/java/com/diligrp/etrade/thirdparty/handler/business/EntranceFeeBillHandler.java
@@ -18,9 +18,10 @@ import java.util.List; @@ -18,9 +18,10 @@ import java.util.List;
18 public class EntranceFeeBillHandler extends AbstractBillHandler<EntranceFeeBillCo> { 18 public class EntranceFeeBillHandler extends AbstractBillHandler<EntranceFeeBillCo> {
19 @Override 19 @Override
20 public void handle(String json, Long marketId, String systemCode) throws Exception{ 20 public void handle(String json, Long marketId, String systemCode) throws Exception{
21 - List<EntranceFeeBillCo> entranceFeeBillCos = JsonUtils.fromJsonString(json, new TypeReference<>() {});  
22 - transferDataList(entranceFeeBillCos, marketId, systemCode);  
23 - sendPurchaseOrder(entranceFeeBillCos, marketId, systemCode); 21 + List<EntranceFeeBillCo> origin = JsonUtils.fromJsonString(json, new TypeReference<>() {});
  22 + List<EntranceFeeBillCo> ts = validDataSync(origin, marketId, systemCode);
  23 + transferDataList(ts, marketId, systemCode);
  24 + sendPurchaseOrder(ts, marketId, systemCode);
24 } 25 }
25 26
26 @Override 27 @Override
etrade-thirdparty/src/main/java/com/diligrp/etrade/thirdparty/handler/business/SettleBillHandler.java
@@ -21,7 +21,7 @@ public class SettleBillHandler extends AbstractBillHandler&lt;SettleBillCo&gt; { @@ -21,7 +21,7 @@ public class SettleBillHandler extends AbstractBillHandler&lt;SettleBillCo&gt; {
21 public void handle(String json, Long marketId, String systemCode) throws Exception { 21 public void handle(String json, Long marketId, String systemCode) throws Exception {
22 List<SettleBillCo> settleBillCos = JsonUtils.fromJsonString(json, new TypeReference<>() {}); 22 List<SettleBillCo> settleBillCos = JsonUtils.fromJsonString(json, new TypeReference<>() {});
23 transferDataList(settleBillCos, marketId, systemCode); 23 transferDataList(settleBillCos, marketId, systemCode);
24 - super.sendPurchaseOrder(settleBillCos,marketId, systemCode); 24 + sendPurchaseOrder(settleBillCos,marketId, systemCode);
25 } 25 }
26 26
27 @Override 27 @Override
etrade-thirdparty/src/main/java/com/diligrp/etrade/thirdparty/handler/business/WeighingBillHandler.java
@@ -18,9 +18,10 @@ import java.util.List; @@ -18,9 +18,10 @@ import java.util.List;
18 public class WeighingBillHandler extends AbstractBillHandler<WeighingBillCo> { 18 public class WeighingBillHandler extends AbstractBillHandler<WeighingBillCo> {
19 @Override 19 @Override
20 public void handle(String json, Long marketId, String systemCode) throws Exception { 20 public void handle(String json, Long marketId, String systemCode) throws Exception {
21 - List<WeighingBillCo> weighingBillCos = JsonUtils.fromJsonString(json, new TypeReference<>() {});  
22 - transferDataList(weighingBillCos, marketId, systemCode);  
23 - sendPurchaseOrder(weighingBillCos, marketId, systemCode); 21 + List<WeighingBillCo> origin = JsonUtils.fromJsonString(json, new TypeReference<>() {});
  22 + List<WeighingBillCo> ts = validDataSync(origin, marketId, systemCode);
  23 + transferDataList(ts, marketId, systemCode);
  24 + sendPurchaseOrder(ts, marketId, systemCode);
24 } 25 }
25 26
26 @Override 27 @Override
etrade-thirdparty/src/main/java/com/diligrp/etrade/thirdparty/mapper/TransMapper.java
@@ -58,6 +58,16 @@ public interface TransMapper extends MybatisMapperSupport { @@ -58,6 +58,16 @@ public interface TransMapper extends MybatisMapperSupport {
58 @DataSource(DataSourceConstants.DS_KEY_SLAVE) 58 @DataSource(DataSourceConstants.DS_KEY_SLAVE)
59 BaseConfigDto getBaseConfig(@Param("systemCode") String systemCode, @Param("marketId") Long marketId); 59 BaseConfigDto getBaseConfig(@Param("systemCode") String systemCode, @Param("marketId") Long marketId);
60 60
  61 + /**
  62 + * 获取基本配置
  63 + *
  64 + * @param systemCode 系统代码
  65 + * @param marketId 市场 ID
  66 + * @return {@link BaseConfigDto}
  67 + */
  68 + @DataSource(DataSourceConstants.DS_KEY_SLAVE)
  69 + BusinessDto getBusinessConfig(@Param("systemCode") String systemCode, @Param("marketId") Long marketId,@Param("dynamicType")String dynamicType);
  70 +
61 71
62 /** 72 /**
63 * 获取客户 73 * 获取客户
etrade-thirdparty/src/main/java/com/diligrp/etrade/thirdparty/type/OperateType.java
1 package com.diligrp.etrade.thirdparty.type; 1 package com.diligrp.etrade.thirdparty.type;
2 2
  3 +import com.diligrp.etrade.thirdparty.error.ThirdPartyException;
  4 +
3 import java.util.ArrayList; 5 import java.util.ArrayList;
4 import java.util.Arrays; 6 import java.util.Arrays;
5 import java.util.List; 7 import java.util.List;
@@ -154,7 +156,7 @@ public enum OperateType { @@ -154,7 +156,7 @@ public enum OperateType {
154 return type; 156 return type;
155 } 157 }
156 } 158 }
157 - return null; 159 + throw new ThirdPartyException("错误的操作类型");
158 } 160 }
159 161
160 public static String getName(int code) { 162 public static String getName(int code) {
etrade-thirdparty/src/main/java/com/diligrp/etrade/thirdparty/type/SyncType.java 0 → 100644
  1 +package com.diligrp.etrade.thirdparty.type;
  2 +
  3 +public enum SyncType {
  4 + SYNC("1","打开同步"),
  5 + CLOSE("0","关闭");
  6 +
  7 + public final String code;
  8 + public final String name;
  9 +
  10 + SyncType(String code, String name) {
  11 + this.code = code;
  12 + this.name = name;
  13 + }
  14 +}
etrade-thirdparty/src/main/java/com/diligrp/etrade/thirdparty/utils/BillTypeApiUtils.java
@@ -37,7 +37,7 @@ public class BillTypeApiUtils extends BaseApiUtils { @@ -37,7 +37,7 @@ public class BillTypeApiUtils extends BaseApiUtils {
37 }); 37 });
38 var message = new GeneralSendMessage(); 38 var message = new GeneralSendMessage();
39 message.setModel(map); 39 message.setModel(map);
40 - message.setAutoSubmitAndAudit(true); 40 +// message.setAutoSubmitAndAudit(true);
41 return save(JsonUtils.toJsonString(message)); 41 return save(JsonUtils.toJsonString(message));
42 } 42 }
43 43
etrade-thirdparty/src/main/resources/com/diligrp/etrade/thirdparty/mapper/TransMapper.xml
@@ -115,4 +115,20 @@ @@ -115,4 +115,20 @@
115 AND system_code = #{systemCode} 115 AND system_code = #{systemCode}
116 AND dict_code = #{billTypeId} 116 AND dict_code = #{billTypeId}
117 </select> 117 </select>
  118 + <select id="getBusinessConfig" resultType="com.diligrp.etrade.thirdparty.domain.dto.BusinessDto">
  119 + SELECT
  120 + id AS id
  121 + , market_id AS marketId
  122 + , `code` AS code
  123 + , system_code AS systemCode
  124 + , `name` AS name
  125 + , sync_type AS syncType
  126 + FROM
  127 + `dili-basic-data`.financial_business
  128 + WHERE
  129 + 1 = 1
  130 + AND market_id = #{marketId}
  131 + AND system_code = #{systemCode}
  132 + AND `code` = #{dynamicType}
  133 + </select>
118 </mapper> 134 </mapper>