提交 7205b0db authored 作者: 000516's avatar 000516

aint301杂发回写勤策/回单

上级 dea0da1d
......@@ -14,7 +14,7 @@ public interface IOrdersSentDao {
OrdersSentDto getSent(String sentNo);
void updatePushqcByAhSentNo(String ahSentNo);
void updatePushqcBySentNo(String sentNo);
List<OrdersSentDto> getNotReceiptSent();
......
......@@ -52,11 +52,11 @@ public class OrdersSentDaoImpl implements IOrdersSentDao {
}
/**
* 根据发货单编号更新push_qc状态
* @param ahSentNo 发货单编号
* @param sentNo 发货单编号
*/
@Override
public void updatePushqcByAhSentNo(String ahSentNo) {
ordersSentMapper.updatePushqcByAhSentNo(ahSentNo);
public void updatePushqcBySentNo(String sentNo) {
ordersSentMapper.updatePushqcByAhSentNo(sentNo);
}
/**
......
......@@ -19,7 +19,7 @@ public interface OrdersSentMapper extends BaseMapper<OrdersSent> {
OrdersSent selectBySentNo(String sentNo);
void updatePushqcByAhSentNo(String ahSentNo);
void updatePushqcByAhSentNo(String sentNo);
List<OrdersSent> getNotReceiptSent();
......
......@@ -7,7 +7,7 @@ import lombok.Getter;
* @date : 2025-08-13 10
* @describe :
*/
public interface SentReceiptEnum {
public interface OrderEnum {
/**
* 回单状态类型
......@@ -73,4 +73,25 @@ public interface SentReceiptEnum {
this.desc = desc;
}
}
/**
* 订单类型
*/
@Getter
enum OrderTypeEnum {
/**
* 发货单
*/
SENT("X06"),
/**
* 杂发单
*/
MIX("N02");
private String type;
OrderTypeEnum(String type) {
this.type = type;
}
}
}
......@@ -6,7 +6,7 @@ import com.sfa.common.core.enums.ECode;
import com.sfa.common.core.exception.ServiceException;
import com.sfa.common.core.utils.DateUtils;
import com.sfa.job.domain.order.dao.IOrdersSentDao;
import com.sfa.job.enums.SentReceiptEnum;
import com.sfa.job.enums.OrderEnum;
import com.sfa.job.pojo.response.OrdersSentDto;
import com.sfa.job.service.order.IOrdersSentQueryService;
import com.sfa.job.util.JdtcUtil;
......@@ -47,8 +47,14 @@ public class OrdersSentQueryServiceImpl implements IOrdersSentQueryService {
List<OrdersSentDto> sents = ordersSentDao.findByPushqcStatus();
log.info("查询未推送到勤策的发货单:{}", sents.size());
for (OrdersSentDto sent : sents) {
// 修改勤策物流https地址
pushQc(sent);
// 判断是发货单、杂发单
if (OrderEnum.OrderTypeEnum.SENT.getType().equals(sent.getType())){
pushQcX06(sent);
}
// 判断是发货单、杂发单
if (OrderEnum.OrderTypeEnum.MIX.getType().equals(sent.getType())){
pushQcN02(sent);
}
}
}
......@@ -114,7 +120,7 @@ public class OrdersSentQueryServiceImpl implements IOrdersSentQueryService {
OrdersSentDto ordersSentDto = new OrdersSentDto()
.setExpressNo(jdInfo.getString("waybillCode"))
.setOperateEndDatetime(jdInfo.getDate("orderTime"))
.setReceiptFlag(SentReceiptEnum.ReceiptEnum.NO.getDesc());
.setReceiptFlag(OrderEnum.ReceiptEnum.NO.getDesc());
/**
* 京东回单照片暂无获取API
*/
......@@ -167,12 +173,12 @@ public class OrdersSentQueryServiceImpl implements IOrdersSentQueryService {
OrdersSentDto ordersSentDto = new OrdersSentDto()
.setExpressNo(expressNo)
.setOperateEndDatetime(operateEndTime)
.setReceiptFlag(SentReceiptEnum.KyeReceiptEnum.getDesc(receiptFlag));
.setReceiptFlag(OrderEnum.KyeReceiptEnum.getDesc(receiptFlag));
/**
* 回单类型为回单原件、回单照片时查询照片,否则跳过
*/
if (!SentReceiptEnum.KyeReceiptEnum.hasPhoto(receiptFlag)){
if (!OrderEnum.KyeReceiptEnum.hasPhoto(receiptFlag)){
ordersSentDao.updateByExpressNo(ordersSentDto);
return;
}
......@@ -192,7 +198,10 @@ public class OrdersSentQueryServiceImpl implements IOrdersSentQueryService {
ordersSentDao.updateByExpressNo(ordersSentDto);
}
private void pushQc(OrdersSentDto sent){
/**
* 发货单
*/
private void pushQcX06(OrdersSentDto sent){
try {
log.info("start push qc sent no [{}] 物流轨迹", sent.getAhSentNo());
String htmlPath = "";
......@@ -214,15 +223,38 @@ public class OrdersSentQueryServiceImpl implements IOrdersSentQueryService {
}
// 勤策中发货单按安徽匹配
Map<String, Object> params = qinCeUtils.modifySentDefinedValParams(sent.getAhSentNo(), htmlPath,sent.getTransportName());
Map<String, Object> params = qinCeUtils.modifySentDefinedValParams(sent.getAhSentNo(), htmlPath,sent.getTransportName(),sent.getExpressNo());
String url = qinCeUtils.builderUrl(QinCeUtils.MODIFY_SENT_DEFINED_VAL, params);
qinCeUtils.postQC(url, params);
// 推送成功
ordersSentDao.updatePushqcByAhSentNo(sent.getAhSentNo());
ordersSentDao.updatePushqcBySentNo(sent.getAhSentNo());
log.info("end push qc sent no [{}] 物流轨迹", sent.getAhSentNo());
}catch (Exception e) {
log.error("勤策推送物流地址失败,物流信息:{},异常信息:{}", JSONObject.toJSONString(sent),e.getMessage());
}
}
/**
* 杂发单
* @param sent
*/
private void pushQcN02(OrdersSentDto sent) {
try {
log.info("start push qc sent no [{}] 物流轨迹", sent.getBjSentNo());
String transport = sent.getTransport();
if ("104".equals(transport)){
sent.setTransportName("丰诺");
}
// 勤策中发货单按安徽匹配
Map<String, Object> params = qinCeUtils.modifySentDefinedValParams(sent.getBjSentNo(), null,sent.getTransportName(),sent.getExpressNo());
String url = qinCeUtils.builderUrl(QinCeUtils.MODIFY_SENT_DEFINED_VAL, params);
qinCeUtils.postQC(url, params);
// 推送成功
ordersSentDao.updatePushqcBySentNo(sent.getBjSentNo());
log.info("end push qc sent no [{}] 物流轨迹", sent.getBjSentNo());
}catch (Exception e) {
log.error("勤策推送物流地址失败,物流信息:{},异常信息:{}", JSONObject.toJSONString(sent),e.getMessage());
}
}
}
......@@ -67,17 +67,20 @@ public class QinCeUtils {
return params;
}
public Map<String, Object> modifySentDefinedValParams(String sentNo,String wlHtmlPath,String transportName){
public Map<String, Object> modifySentDefinedValParams(String sentNo,String wlHtmlPath,String transportName,String exNo){
Map<String,Object> val1 = new HashMap<>();
val1.put("ext_key","物流轨迹");
val1.put("ext_value",wlHtmlPath);
Map<String,Object> val2 = new HashMap<>();
val2.put("ext_key","物流承运商");
val2.put("ext_value",transportName);
Map<String,Object> val3 = new HashMap<>();
val3.put("ext_key","物流单号");
val3.put("ext_value",exNo);
Map<String,Object> params = new HashMap<>();
params.put("sent_no",sentNo);
params.put("exts", Arrays.asList(val1,val2));
params.put("exts", Arrays.asList(val1,val2,val3));
return params;
}
......
......@@ -26,7 +26,7 @@
</resultMap>
<select id="findUnsyncQc" resultMap="ordersSentResultMap">
select send_id, ah_sent_no, bj_sent_no, transport,transport_name, express_no,dd_no
select send_id, ah_sent_no, bj_sent_no, transport,transport_name, express_no,dd_no,type
from orders_sent
where push_qc = 1
</select>
......@@ -45,7 +45,16 @@
</select>
<update id="updatePushqcByAhSentNo" parameterType="java.lang.String">
update orders_sent set push_qc = 0 where ah_sent_no = #{ahSentNo}
update orders_sent
set push_qc = 0
<where>
<if test="sentNo.startsWith('BJHQ')">
bj_sent_no = #{sentNo}
</if>
<if test="sentNo.startsWith('AHSD')">
ah_sent_no = #{sentNo}
</if>
</where>
</update>
<select id="getNotReceiptSent" resultMap="ordersSentResultMap">
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论