|
@@ -4,11 +4,15 @@ import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.core.map.MapUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import cn.hutool.json.JSONArray;
|
|
|
+import cn.hutool.json.JSONObject;
|
|
|
import cn.hutool.json.JSONUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.constant.CacheConstants;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.dto.OladingCommonRequest;
|
|
|
+import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
|
|
|
+import com.qunzhixinxi.hnqz.admin.config.TaxNotifyConfig;
|
|
|
+import com.qunzhixinxi.hnqz.admin.config.UpmsConfig;
|
|
|
import com.qunzhixinxi.hnqz.admin.entity.SysUserSub;
|
|
|
import com.qunzhixinxi.hnqz.admin.entity.WmScorePackage;
|
|
|
import com.qunzhixinxi.hnqz.admin.entity.WmScorePackageSettleNote;
|
|
@@ -17,24 +21,34 @@ import com.qunzhixinxi.hnqz.admin.enums.GigCallBackStatus;
|
|
|
import com.qunzhixinxi.hnqz.admin.enums.GigTypeEnum;
|
|
|
import com.qunzhixinxi.hnqz.admin.enums.OladingCertStatus;
|
|
|
import com.qunzhixinxi.hnqz.admin.enums.SubjectLocation;
|
|
|
+import com.qunzhixinxi.hnqz.admin.service.SysDeptService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.SysUserSubService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.WmScorePackageService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.WmScorePackageSettleNoteService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.gig.GigThirdApiService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.gig.SysUserSignCertService;
|
|
|
+import com.qunzhixinxi.hnqz.common.core.constant.CommonConstants;
|
|
|
import com.qunzhixinxi.hnqz.common.core.exception.ValidateCodeException;
|
|
|
+import com.qunzhixinxi.hnqz.common.core.util.R;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
|
+import org.apache.commons.lang.RandomStringUtils;
|
|
|
import org.springframework.data.redis.core.RedisTemplate;
|
|
|
+import org.springframework.http.HttpEntity;
|
|
|
+import org.springframework.http.HttpHeaders;
|
|
|
+import org.springframework.http.HttpMethod;
|
|
|
+import org.springframework.http.MediaType;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
+import org.springframework.web.client.RestTemplate;
|
|
|
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.util.Collections;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
+import java.util.Objects;
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
import java.util.stream.Collectors;
|
|
|
import java.util.stream.Stream;
|
|
@@ -53,6 +67,9 @@ public class GigThirdApiServiceImpl implements GigThirdApiService {
|
|
|
private final SysUserSignCertService sysUserSignCertService;
|
|
|
private final WmScorePackageSettleNoteService scorePackageSettleNoteService;
|
|
|
private final WmScorePackageService scorePackageService;
|
|
|
+ private final SysDeptService sysDeptService;
|
|
|
+ private final UpmsConfig upmsConfig;
|
|
|
+ private final TaxNotifyConfig taxNotifyConfig;
|
|
|
|
|
|
/**
|
|
|
* 正启之星回调业务处理
|
|
@@ -536,4 +553,48 @@ public class GigThirdApiServiceImpl implements GigThirdApiService {
|
|
|
sysUserSignCertService.batchChannelCert(userSignCertDTO);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 完单操作
|
|
|
+ *
|
|
|
+ * @param wmScorePackage
|
|
|
+ * @param note
|
|
|
+ */
|
|
|
+ public void finishTask(WmScorePackage wmScorePackage, WmScorePackageSettleNote note) {
|
|
|
+ SysDept dept = sysDeptService.getById(wmScorePackage.getDeptId());
|
|
|
+
|
|
|
+ String gigFinishTaskUrl = upmsConfig.getGigServiceUrl() + "/gig/operation/settlement/finish-task";
|
|
|
+ // 封装结算参数
|
|
|
+ Map<String, Object> params = new HashMap<>();
|
|
|
+ params.put("requestId", RandomStringUtils.randomAlphabetic(12));
|
|
|
+ params.put("endType", "CSO");
|
|
|
+ params.put("enterpriseCode", dept.getTaxCode());
|
|
|
+ params.put("subjectType", "OLADING");
|
|
|
+ params.put("channel", "DEFAULT");
|
|
|
+ params.put("subjectLocation", note.getSubjectLocation());
|
|
|
+ params.put("taskId", note.getThirdTaskId());
|
|
|
+ params.put("credentialLink", taxNotifyConfig.getTaskUrl() + "/#/h5/indexTask?id=" + note.getPackageId() + "&userId=" + note.getUserId());
|
|
|
+
|
|
|
+ // 发起完单操作
|
|
|
+ HttpHeaders headers = new HttpHeaders();
|
|
|
+ headers.setContentType(MediaType.APPLICATION_JSON);
|
|
|
+ log.info("阿拉丁完单操作req: {}", params);
|
|
|
+ HttpEntity<String> result = new RestTemplate().exchange(gigFinishTaskUrl, HttpMethod.POST, new HttpEntity<>(params, headers), String.class);
|
|
|
+ log.warn("阿拉丁完单操作resp: {}", result.getBody());
|
|
|
+ if (!JSONUtil.isJson(result.getBody())) {
|
|
|
+ log.warn("完单操作失败:taskId={}", note.getThirdTaskId());
|
|
|
+ }
|
|
|
+ JSONObject resultObj = JSONUtil.parseObj(result.getBody());
|
|
|
+ // {"code":0,"msg":"SUCCESS","data":{"success":true,"message":"成功","result":"4154"}}
|
|
|
+ if (Objects.equals(resultObj.getInt("code"), CommonConstants.SUCCESS)) {
|
|
|
+ JSONObject dataJsonObj = resultObj.getJSONObject("data");
|
|
|
+ if (dataJsonObj != null && dataJsonObj.getBool("success", false)) {
|
|
|
+ // 完单操作成功,更新状态
|
|
|
+ WmScorePackageSettleNote updateNote = new WmScorePackageSettleNote();
|
|
|
+ updateNote.setId(note.getId());
|
|
|
+ updateNote.setFinishTaskFlag(1);
|
|
|
+ scorePackageSettleNoteService.updateById(updateNote);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|