|
@@ -87,7 +87,7 @@ public class PayServiceImpl implements PayService {
|
|
|
if (!isHave[0]) {
|
|
|
token[0] = getToken();
|
|
|
}
|
|
|
- HashMap<String, Object> param = new HashMap<>();
|
|
|
+ Map<String, Object> param = new HashMap<>();
|
|
|
param.put("access_token", token[0]);
|
|
|
//获取申请人数据
|
|
|
List<Map> userName = new ArrayList<>();
|
|
@@ -106,52 +106,69 @@ public class PayServiceImpl implements PayService {
|
|
|
List<String> companionsUserIds = (List<String>)formData.get("出行人(同行人)");
|
|
|
List<String> companionsWorkNumbers = getNumberByUserId(companionsUserIds);
|
|
|
List<Map> companionsUserName = getUserFormByNumber(companionsWorkNumbers, token[0]);
|
|
|
+ userName.addAll(companionsUserName);
|
|
|
names = companionsUserName.stream().map(item -> item.get("name")).collect(Collectors.toList());
|
|
|
}
|
|
|
+ // 去重
|
|
|
+ List<Map> uniqueUsers= new ArrayList<>(userName.stream()
|
|
|
+ .filter(m -> m != null) // 过滤掉空值
|
|
|
+ .collect(Collectors.toMap(
|
|
|
+ m -> m.toString(), // 使用 map 的 toString() 作为唯一标识符
|
|
|
+ m -> m, // 保留原 map
|
|
|
+ (existing, replacement) -> existing // 遇到重复时保留已有元素
|
|
|
+ )).values());
|
|
|
+ extracted(formData, param, uniqueUsers, names);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void extracted(Map formData, Map<String, Object> param, List<Map> userName, List<Object> names) {
|
|
|
+ String uuid = UUID.randomUUID().toString();
|
|
|
BigDecimal defaultValue = new BigDecimal("0.0");
|
|
|
for (Map detail : (List<Map>) formData.get("日程")) {
|
|
|
- if ("汽车".equals(detail.get("交通工具"))){
|
|
|
- detail.put("出发城市",UtilMap.getString(detail,"出发城市").split("市")[0]);
|
|
|
- detail.put("目的城市",UtilMap.getString(detail,"目的城市").split("市")[0]);
|
|
|
- }
|
|
|
- // 生成UUID
|
|
|
- String uuid = UUID.randomUUID().toString();
|
|
|
- DocumentHeader documentHeader = new DocumentHeader();
|
|
|
+ for (int i = 0; i < userName.size(); i++) {
|
|
|
+ if ("汽车".equals(detail.get("交通工具"))){
|
|
|
+ detail.put("出发城市",UtilMap.getString(detail,"出发城市").split("市")[0]);
|
|
|
+ detail.put("目的城市",UtilMap.getString(detail,"目的城市").split("市")[0]);
|
|
|
+ }
|
|
|
+ // 生成UUID
|
|
|
+ log.info("记录系统单据编号id:{}",uuid);
|
|
|
+ DocumentHeader documentHeader = new DocumentHeader();
|
|
|
// documentHeader.setExternal_id(formData.get("出差流水号").toString());
|
|
|
- documentHeader.setExternal_id(uuid);
|
|
|
- documentHeader.setHeader_type_code("SQ001");
|
|
|
- documentHeader.setStatus("approved");
|
|
|
- documentHeader.setCreated_by_code(userName.get(0).get("code").toString());//
|
|
|
+ uuid = uuid + userName.get(i).get("code");
|
|
|
+ documentHeader.setExternal_id(uuid);
|
|
|
+ documentHeader.setHeader_type_code("SQ001");
|
|
|
+ documentHeader.setStatus("approved");
|
|
|
+ documentHeader.setCreated_by_code(userName.get(i).get("code").toString());//
|
|
|
// documentHeader.setCreatedByCode(formData.get("userId").toString());
|
|
|
// documentHeader.setSubmitUserCode(formData.get("userId").toString());
|
|
|
- documentHeader.setSubmit_user_code(userName.get(0).get("code").toString());//
|
|
|
- documentHeader.setSubmit_date(Long.valueOf(formData.get("createTime").toString()));
|
|
|
- documentHeader.setBranch_code(getCompany(userName.get(0).get("depCode").toString(),token[0]));
|
|
|
- documentHeader.setSubmit_department_code(userName.get(0).get("depCode").toString());//
|
|
|
- documentHeader.setColumn1(formData.get("出差类型") == null ? "" : BUSINESS_TYPE.get(formData.get("出差类型").toString()));
|
|
|
+ documentHeader.setSubmit_user_code(userName.get(i).get("code").toString());//
|
|
|
+ documentHeader.setSubmit_date(Long.valueOf(formData.get("createTime").toString()));
|
|
|
+ documentHeader.setBranch_code(getCompany(userName.get(i).get("depCode").toString(), param.get("access_token").toString()));
|
|
|
+ documentHeader.setSubmit_department_code(userName.get(i).get("depCode").toString());//
|
|
|
+ documentHeader.setColumn1(formData.get("出差类型") == null ? "" : BUSINESS_TYPE.get(formData.get("出差类型").toString()));
|
|
|
// documentHeader.setColumn1("1");
|
|
|
- documentHeader.setStart_datetime(DateUtil.parse(detail.get("开始时间").toString(), "yyyy-MM-dd").getTime());
|
|
|
- documentHeader.setEnd_datetime(DateUtil.parse(detail.get("结束时间").toString(), "yyyy-MM-dd").getTime());
|
|
|
- documentHeader.setColumn2(formData.get("出差天数").toString());
|
|
|
- documentHeader.setDestination_city_name(detail.get("出发城市").toString());
|
|
|
- documentHeader.setDestination_city_to_name(detail.get("目的城市").toString());
|
|
|
- documentHeader.setDestination_cities(detail.get("目的城市").toString());
|
|
|
- documentHeader.setColumn15(BUSINESS_TOOL.get(detail.get("交通工具").toString()));
|
|
|
- documentHeader.setColumn16(names.toString().replace("[","").replace("]",""));//同行人
|
|
|
- documentHeader.setDescription(formData.get("备注") == null ? "" : formData.get("备注").toString());
|
|
|
+ documentHeader.setStart_datetime(DateUtil.parse(detail.get("开始时间").toString(), "yyyy-MM-dd").getTime());
|
|
|
+ documentHeader.setEnd_datetime(DateUtil.parse(detail.get("结束时间").toString(), "yyyy-MM-dd").getTime());
|
|
|
+ documentHeader.setColumn2(formData.get("出差天数").toString());
|
|
|
+ documentHeader.setDestination_city_name(detail.get("出发城市").toString());
|
|
|
+ documentHeader.setDestination_city_to_name(detail.get("目的城市").toString());
|
|
|
+ documentHeader.setDestination_cities(detail.get("目的城市").toString());
|
|
|
+ documentHeader.setColumn15(BUSINESS_TOOL.get(detail.get("交通工具").toString()));
|
|
|
+ documentHeader.setColumn16(names.toString().replace("[","").replace("]",""));//同行人
|
|
|
+ documentHeader.setDescription(formData.get("出差事由") == null ? "" : formData.get("出差事由").toString());
|
|
|
// documentHeader.setDescription("123123");
|
|
|
- documentHeader.setTotal_amount(defaultValue);
|
|
|
- documentHeader.setTotal_claim_amount(defaultValue);
|
|
|
- documentHeader.setTotal_pay_amount(defaultValue);
|
|
|
- documentHeader.setTotal_net_amount(defaultValue);
|
|
|
- documentHeader.setTotal_tax_amount(defaultValue);
|
|
|
- documentHeader.setTotal_pay_currency_amount(defaultValue);
|
|
|
+ documentHeader.setTotal_amount(defaultValue);
|
|
|
+ documentHeader.setTotal_claim_amount(defaultValue);
|
|
|
+ documentHeader.setTotal_pay_amount(defaultValue);
|
|
|
+ documentHeader.setTotal_net_amount(defaultValue);
|
|
|
+ documentHeader.setTotal_tax_amount(defaultValue);
|
|
|
+ documentHeader.setTotal_pay_currency_amount(defaultValue);
|
|
|
|
|
|
- log.info("documentHeader:{}",documentHeader.toString());
|
|
|
- HashMap<String, Object> data = new HashMap<>();
|
|
|
- data.put("header", documentHeader);
|
|
|
- Map<String, Object> body = UtilMap.map("bizId, timestamp, data", uuid, new Date().getTime(), data);
|
|
|
- DDR.doPost(getRequestUrl(POST_DATA_URL), null, param, body);
|
|
|
+ log.info("documentHeader:{}",documentHeader.toString());
|
|
|
+ HashMap<String, Object> data = new HashMap<>();
|
|
|
+ data.put("header", documentHeader);
|
|
|
+ Map<String, Object> body = UtilMap.map("bizId, timestamp, data", uuid, new Date().getTime(), data);
|
|
|
+ DDR.doPost(getRequestUrl(POST_DATA_URL), null, param, body);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|