Commit afa24791 authored by Allen Chen's avatar Allen Chen

commit

parent e123ddab
...@@ -13,7 +13,7 @@ public class ApiConfig implements WebMvcConfigurer { ...@@ -13,7 +13,7 @@ public class ApiConfig implements WebMvcConfigurer {
@Override @Override
public void addCorsMappings(CorsRegistry registry) { public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**") // 对所有路径应用CORS配置 registry.addMapping("/**") // 对所有路径应用CORS配置
.allowedOrigins("http://localhost:8021","http://localhost:8022", "http://ppd-jy-cc.linyihaiji-dt.com", "http://ppd-h5.linyihaiji-dt.com") // 允许的源 .allowedOrigins("http://localhost:8021","http://localhost:8022", "http://ppd-jy-cc.linyihaiji-dt.com", "http://ppd-h5.linyihaiji-dt.com", "http://localhost:9100") // 允许的源
.allowedMethods("GET", "POST", "PUT", "DELETE") // 允许的方法 .allowedMethods("GET", "POST", "PUT", "DELETE") // 允许的方法
.allowedHeaders("*") // 允许的头部 .allowedHeaders("*") // 允许的头部
.allowCredentials(true) // 是否发送cookies等凭证信息 .allowCredentials(true) // 是否发送cookies等凭证信息
......
...@@ -32,10 +32,11 @@ public class SecurityConfig { ...@@ -32,10 +32,11 @@ public class SecurityConfig {
http.csrf(csrf -> csrf.disable()) http.csrf(csrf -> csrf.disable())
.sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) .sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
.authorizeHttpRequests(auth -> auth .authorizeHttpRequests(auth -> auth
.requestMatchers("/hj-api/**", "/../auth/login", "/logistics/**", "/pda/**").permitAll() .anyRequest().permitAll()
// .requestMatchers("/pdd-open", "/pdd-open/**", "/pdd-lg", "/pdd-lg/**", "/hj-api/**", "/../auth/login", "/logistics/**", "/pda/**", "/operation/**").permitAll()
// .requestMatchers("/hj-api/*").hasRole("ADMIN") // .requestMatchers("/hj-api/*").hasRole("ADMIN")
.requestMatchers("/test/**").hasAnyRole("ADMIN", "USER") // .requestMatchers("/test/**").hasAnyRole("ADMIN", "USER")
.anyRequest().authenticated() // .anyRequest().authenticated()
) )
.addFilterBefore(jwtAuthFilter, UsernamePasswordAuthenticationFilter.class) .addFilterBefore(jwtAuthFilter, UsernamePasswordAuthenticationFilter.class)
.userDetailsService(userDetailsService); .userDetailsService(userDetailsService);
......
...@@ -26,20 +26,26 @@ public class UserDetailsServiceImpl implements UserDetailsService { ...@@ -26,20 +26,26 @@ public class UserDetailsServiceImpl implements UserDetailsService {
@Override @Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
log.info("UserDetailsManager loadUserByUsername username={}", username); // log.info("UserDetailsManager loadUserByUsername username={}", username);
UserEntity userEntity = userService.getInfoByAccount(username); // UserEntity userEntity = userService.getInfoByAccount(username);
//
if (userEntity == null) { // if (userEntity == null) {
log.info("UserDetailsManager loadUserByUsername user is null"); // log.info("UserDetailsManager loadUserByUsername user is null");
//用户不存在,抛出异常 // //用户不存在,抛出异常
throw new UsernameNotFoundException(username); // throw new UsernameNotFoundException(username);
} else { // } else {
log.info("UserDetailsManager loadUserByUsername user is find! " + passwordEncoder.encode(userEntity.getPassword())); // log.info("UserDetailsManager loadUserByUsername user is find! " + passwordEncoder.encode(userEntity.getPassword()));
return org.springframework.security.core.userdetails.User.withUsername(userEntity.getAccount()) // return org.springframework.security.core.userdetails.User.withUsername(userEntity.getAccount())
.password(passwordEncoder.encode(userEntity.getPassword())) // .password(passwordEncoder.encode(userEntity.getPassword()))
.roles("ADMIN", "USER") // .roles("ADMIN", "USER")
.authorities("delete", "update", "read", "edit") // .authorities("delete", "update", "read", "edit")
.build(); // .build();
} // }
return org.springframework.security.core.userdetails.User.withUsername("Allen")
.password(passwordEncoder.encode("25d55ad283aa400af464c76d713c07ad"))
.roles("ADMIN", "USER")
.authorities("delete", "update", "read", "edit")
.build();
} }
} }
...@@ -55,6 +55,9 @@ public class DataGetController { ...@@ -55,6 +55,9 @@ public class DataGetController {
TraceObjectEntity traceObject = new TraceObjectEntity(); TraceObjectEntity traceObject = new TraceObjectEntity();
traceObject.setTrackingNumber(traceObjectRequest.getTrackingNumber()); traceObject.setTrackingNumber(traceObjectRequest.getTrackingNumber());
traceObject.setTrackingOrderNo(traceObjectRequest.getTrackingOrderNo()); traceObject.setTrackingOrderNo(traceObjectRequest.getTrackingOrderNo());
LogOrderMailDetailIoEntity ioEntity = logOrderMailDetailIoImpl.getOutboundByMailNo(traceObject.getTrackingNumber());
traceObject.setTrackingNumber(ioEntity.getUpMailNo());
traceObject.setTrackingOrderNo(ioEntity.getLogisticsOrderCode());
traceObject.setId(traceObjectRequest.getId()); traceObject.setId(traceObjectRequest.getId());
traceObject.setStatusCode(traceObjectRequest.getStatusCode()); traceObject.setStatusCode(traceObjectRequest.getStatusCode());
traceObject.setDescription(traceObjectRequest.getDescription()); traceObject.setDescription(traceObjectRequest.getDescription());
...@@ -88,7 +91,7 @@ public class DataGetController { ...@@ -88,7 +91,7 @@ public class DataGetController {
requests.setShip_id(PddAPIConfig.SHIP_ID); requests.setShip_id(PddAPIConfig.SHIP_ID);
requests.setTarget_client_id(PddAPIConfig.CLIENT_ID); requests.setTarget_client_id(PddAPIConfig.CLIENT_ID);
requests.setTimestamp(System.currentTimeMillis() / 1000); requests.setTimestamp(System.currentTimeMillis() / 1000);
PddLogisticsCoTrackNotifyRequest.DataObject dataObject = getDataObject(traceObjectRequest.getTrackingNumber()); PddLogisticsCoTrackNotifyRequest.DataObject dataObject = getDataObject(traceObjectRequest.getTrackingNumber(), ioEntity.getUpMailNo());
requests.setDataObject(dataObject); requests.setDataObject(dataObject);
requests.encodeData(); requests.encodeData();
requests.setSign(PddSignTool.generateSign(requests, PddAPIConfig.CLIENT_SECRET)); requests.setSign(PddSignTool.generateSign(requests, PddAPIConfig.CLIENT_SECRET));
...@@ -104,11 +107,15 @@ public class DataGetController { ...@@ -104,11 +107,15 @@ public class DataGetController {
/*出库详情*/ /*出库详情*/
@PostMapping("/orderInfo") @PostMapping("/orderInfo")
public JSONObject collectOrderInfo(HttpServletRequest request, @RequestBody CollectOrderRequest collectOrderRequest) { public JSONObject collectOrderInfo(HttpServletRequest request, @RequestBody CollectOrderRequest collectOrderRequest) {
String orderCode = collectOrderRequest.getOrderCode();
if (orderCode.contains("-")) {
orderCode = orderCode.split("-")[0];
}
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
CollectOrderInfoResponse collectOrderInfoResponse = collectOrderImpl.getInfoByOrderCode(collectOrderRequest.getOrderCode()); CollectOrderInfoResponse collectOrderInfoResponse = collectOrderImpl.getInfoByOrderCode(orderCode);
List<CollectOrderDetailResponse> list = collectOrderDetailImpl.getListByOrderCode(collectOrderRequest.getOrderCode()); List<CollectOrderDetailResponse> list = collectOrderDetailImpl.getListByOrderCode(orderCode);
CollectReceiverDetailResponse collectOrderReceiverDetailResponse = collectReceiverDetailImpl.getByOrderCode(collectOrderRequest.getOrderCode()); CollectReceiverDetailResponse collectOrderReceiverDetailResponse = collectReceiverDetailImpl.getByOrderCode(orderCode);
List<LogOrderMailDetailIoEntity> logistics = logOrderMailDetailIoImpl.getOutByOrderCode(collectOrderRequest.getOrderCode()); List<LogOrderMailDetailIoEntity> logistics = logOrderMailDetailIoImpl.getOutByWxOrderCode(collectOrderRequest.getOrderCode());
map.put("info", collectOrderInfoResponse); map.put("info", collectOrderInfoResponse);
map.put("detail", list); map.put("detail", list);
map.put("receiver", collectOrderReceiverDetailResponse); map.put("receiver", collectOrderReceiverDetailResponse);
...@@ -126,14 +133,16 @@ public class DataGetController { ...@@ -126,14 +133,16 @@ public class DataGetController {
return JsonResponse.generateLocalCommonSuccessResponse(collectOrderImpl.getList(collectOrderListRequest), ""); return JsonResponse.generateLocalCommonSuccessResponse(collectOrderImpl.getList(collectOrderListRequest), "");
} }
private PddLogisticsCoTrackNotifyRequest.DataObject getDataObject(String code) { private PddLogisticsCoTrackNotifyRequest.DataObject getDataObject(String code, String newCode) {
PddLogisticsCoTrackNotifyRequest.DataObject dataObjects = new PddLogisticsCoTrackNotifyRequest.DataObject(); PddLogisticsCoTrackNotifyRequest.DataObject dataObjects = new PddLogisticsCoTrackNotifyRequest.DataObject();
dataObjects.setTraces(new ArrayList<>()); dataObjects.setTraces(new ArrayList<>());
List<TraceObjectEntity> list = traceObjectImpl.selectByTrackingNumber(code); List<TraceObjectEntity> list = traceObjectImpl.selectByTrackingNumber(code);
List<org.ta.pddserver.model.pddlg.common.TraceObject> traceObjects = new ArrayList<>(); List<org.ta.pddserver.model.pddlg.common.TraceObject> traceObjects = new ArrayList<>();
for (TraceObjectEntity traceObjectEntity : list) { for (TraceObjectEntity traceObjectEntity : list) {
dataObjects.getTraces().add(TraceObject.createFromTraceEntity(traceObjectEntity)); TraceObject obj = TraceObject.createFromTraceEntity(traceObjectEntity);
obj.setTrackingNumber(newCode);
dataObjects.getTraces().add(obj);
} }
return dataObjects; return dataObjects;
......
...@@ -16,14 +16,13 @@ import org.ta.pddserver.model.api.request.InBoundRequest; ...@@ -16,14 +16,13 @@ import org.ta.pddserver.model.api.request.InBoundRequest;
import org.ta.pddserver.model.enums.StatusEnum; import org.ta.pddserver.model.enums.StatusEnum;
import org.ta.pddserver.model.pddjy.request.JYBaseRequestModel; import org.ta.pddserver.model.pddjy.request.JYBaseRequestModel;
import org.ta.pddserver.model.pddjy.request.PddServiceConsoInboundRequest; import org.ta.pddserver.model.pddjy.request.PddServiceConsoInboundRequest;
import org.ta.pddserver.service.impl.LogOrderImpl; import org.ta.pddserver.service.impl.*;
import org.ta.pddserver.service.impl.LogOrderMailDetailImpl;
import org.ta.pddserver.service.impl.LogOrderMailDetailIoImpl;
import org.ta.pddserver.service.impl.StorageImpl;
import org.ta.pddserver.utils.*; import org.ta.pddserver.utils.*;
import java.util.Date; import java.util.Date;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
@RequestMapping("/operation") @RequestMapping("/operation")
@Slf4j @Slf4j
...@@ -38,6 +37,14 @@ public class OperationController { ...@@ -38,6 +37,14 @@ public class OperationController {
LogOrderMailDetailIoImpl logOrderMailDetailIoImpl; LogOrderMailDetailIoImpl logOrderMailDetailIoImpl;
@Resource @Resource
StorageImpl storageImpl; StorageImpl storageImpl;
@Resource
UnpackNoticeImpl unpackNoticeImpl;
@Resource
OutboundNoticeImpl outboundNoticeImpl;
@Resource
PackageDetailImpl packageDetailImpl;
@Resource
TempStorageImpl tempStorageImpl;
/*入库*/ /*入库*/
@Operation( @Operation(
...@@ -141,4 +148,64 @@ public class OperationController { ...@@ -141,4 +148,64 @@ public class OperationController {
} }
/*统计数字*/
@Operation(
summary = "统计数字",
description = "",
deprecated = false // 是否废弃
)
@PostMapping("/statics")
public JSONObject statics(HttpServletRequest request) {
String today = TimeTool.getNowDate() + " 00:00:00";
Map<String, Long> result = new HashMap<>();
// 集运单下发
result.put("logisticAll", logOrderImpl.count());
result.put("logisticToday", logOrderImpl.countFromDate(today));
// 包裹下发
result.put("logMailAll", logOrderMailDetailImpl.count());
result.put("logMailToday", logOrderMailDetailImpl.countFromDate(today));
// 拆包通知下发
result.put("unpackNoticeAll", unpackNoticeImpl.count());
result.put("unpackNoticeToday", unpackNoticeImpl.countFromDate(today));
// 出库下发
result.put("outboundNoticeAll", outboundNoticeImpl.count());
result.put("outboundNoticeToday", outboundNoticeImpl.countFromDate(today));
// 入库包裹
result.put("inboundAll", logOrderMailDetailImpl.countEntered());
result.put("inboundToday", logOrderMailDetailImpl.countEnteredFromDate(TimeTool.getNowDate()));
// 打包数量
result.put("packageAll", packageDetailImpl.count());
result.put("packageToday", packageDetailImpl.countToday(today));
// 申报出库单数量
result.put("outboundOrderAll", logOrderMailDetailIoImpl.countOutboundOrder());
result.put("outboundOrderToday", logOrderMailDetailIoImpl.countOutboundOrderFromDate(today));
// 出库包裹数量
result.put("outboundPackageAll", logOrderMailDetailIoImpl.countOutboundPackage());
result.put("outboundPackageToday", logOrderMailDetailIoImpl.countOutboundPackageDate(today));
// 在架包裹数量
result.put("storageAll", storageImpl.count()); // 总数量
result.put("storageOned", storageImpl.countOned());
// 在架临时包裹数量
result.put("tempStorageAll", tempStorageImpl.count());
// 拆包数量
// result.put("inboundAll", logOrderMailDetailImpl.countEntered());
// result.put("inboundToday", logOrderMailDetailImpl.countEnteredFromDate(today));
// 出库包裹数量
// result.put("inboundAll", logOrderMailDetailImpl.countEntered());
// result.put("inboundToday", logOrderMailDetailImpl.countEnteredFromDate(today));
return JsonResponse.generateLocalCommonSuccessResponse(result, "");
}
} }
...@@ -37,6 +37,8 @@ public class PDAController { ...@@ -37,6 +37,8 @@ public class PDAController {
StorageImpl storageImpl; StorageImpl storageImpl;
@Resource @Resource
ShelvesImpl shelvesImpl; ShelvesImpl shelvesImpl;
@Resource
OutboundRecordImpl outboundRecordImpl;
/** /**
* PDA 签收 * PDA 签收
...@@ -54,7 +56,7 @@ public class PDAController { ...@@ -54,7 +56,7 @@ public class PDAController {
if (logOrderEntity == null) { if (logOrderEntity == null) {
return JsonResponse.generateOpenCommonFailedResponse(-1, "2集运单无记录"); return JsonResponse.generateOpenCommonFailedResponse(-1, "2集运单无记录");
} }
if (logOrderEntity.getRemarks() != null || !logOrderEntity.getRemarks().isEmpty()) { if (logOrderEntity.getRemarks() != null && !logOrderEntity.getRemarks().isEmpty()) {
// 需要拒收 // 需要拒收
return JsonResponse.generateOpenCommonFailedResponse(-1, "3集运单需要特殊处理"); return JsonResponse.generateOpenCommonFailedResponse(-1, "3集运单需要特殊处理");
} }
...@@ -117,7 +119,6 @@ public class PDAController { ...@@ -117,7 +119,6 @@ public class PDAController {
public JSONObject getPosition(HttpServletRequest request, @RequestBody StorageRequest storageRequest) { public JSONObject getPosition(HttpServletRequest request, @RequestBody StorageRequest storageRequest) {
StorageEntity storageEntity = storageImpl.getInfoByMailNo(storageRequest.getMailNo()); StorageEntity storageEntity = storageImpl.getInfoByMailNo(storageRequest.getMailNo());
if (storageEntity != null) { if (storageEntity != null) {
shelvesImpl.updateNum(storageEntity.getCode().substring(0, 1), Integer.parseInt(storageEntity.getCode().substring(1, 2)), Integer.parseInt(storageEntity.getCode().substring(3, 4)));
return JsonResponse.generateLocalCommonSuccessResponse(storageEntity, "查询成功0"); return JsonResponse.generateLocalCommonSuccessResponse(storageEntity, "查询成功0");
} }
//当前包裹未上架,开始分配上架 //当前包裹未上架,开始分配上架
...@@ -135,7 +136,8 @@ public class PDAController { ...@@ -135,7 +136,8 @@ public class PDAController {
storageEntity2.setNum(0); storageEntity2.setNum(0);
storageEntity2.setBuyerCode(storageEntity.getBuyerCode()); storageEntity2.setBuyerCode(storageEntity.getBuyerCode());
storageImpl.save(storageEntity2); storageImpl.save(storageEntity2);
shelvesImpl.updateNum(storageEntity.getCode().substring(0, 1), Integer.parseInt(storageEntity.getCode().substring(1, 2)), Integer.parseInt(storageEntity.getCode().substring(3, 4))); String[] codes = storageEntity.getCode().split("-");
shelvesImpl.updateNum(1, codes[0].substring(0, 1), Integer.parseInt(codes[0].substring(1)), Integer.parseInt(codes[1]));
return JsonResponse.generateLocalCommonSuccessResponse(storageEntity2, "查询成功1"); return JsonResponse.generateLocalCommonSuccessResponse(storageEntity2, "查询成功1");
} }
// 集运单未分配位置 // 集运单未分配位置
...@@ -152,7 +154,8 @@ public class PDAController { ...@@ -152,7 +154,8 @@ public class PDAController {
storageEntity2.setNum(0); storageEntity2.setNum(0);
storageEntity2.setBuyerCode(storageEntity.getBuyerCode()); storageEntity2.setBuyerCode(storageEntity.getBuyerCode());
storageImpl.save(storageEntity2); storageImpl.save(storageEntity2);
shelvesImpl.updateNum(storageEntity.getCode().substring(0, 1), Integer.parseInt(storageEntity.getCode().substring(1, 2)), Integer.parseInt(storageEntity.getCode().substring(3, 4))); String[] codes = storageEntity.getCode().split("-");
shelvesImpl.updateNum(1, codes[0].substring(0, 1), Integer.parseInt(codes[0].substring(1)), Integer.parseInt(codes[1]));
return JsonResponse.generateLocalCommonSuccessResponse(storageEntity2, "查询成功2"); return JsonResponse.generateLocalCommonSuccessResponse(storageEntity2, "查询成功2");
} }
ShelvesEntity shelvesEntity = shelvesImpl.getUsableOrdered(); ShelvesEntity shelvesEntity = shelvesImpl.getUsableOrdered();
...@@ -162,7 +165,7 @@ public class PDAController { ...@@ -162,7 +165,7 @@ public class PDAController {
storageEntity2.setNum(0); storageEntity2.setNum(0);
storageEntity2.setBuyerCode(logOrderEntity.getBuyerCode()); storageEntity2.setBuyerCode(logOrderEntity.getBuyerCode());
storageImpl.save(storageEntity2); storageImpl.save(storageEntity2);
shelvesImpl.updateNum(shelvesEntity.getLevel1(), shelvesEntity.getLevel2(), shelvesEntity.getLevel3()); shelvesImpl.updateNum(1, shelvesEntity.getLevel1(), shelvesEntity.getLevel2(), shelvesEntity.getLevel3());
return JsonResponse.generateLocalCommonSuccessResponse(storageEntity2, "查询成功3"); return JsonResponse.generateLocalCommonSuccessResponse(storageEntity2, "查询成功3");
} }
...@@ -187,4 +190,28 @@ public class PDAController { ...@@ -187,4 +190,28 @@ public class PDAController {
return JsonResponse.generateLocalCommonSuccessResponse(true, "上架成功"); return JsonResponse.generateLocalCommonSuccessResponse(true, "上架成功");
} }
/**
* PDA 出库扫码
* @param request httpRequest
* @param receiveRequest 出库扫码请求
* @return 回复信息
*/
@PostMapping("/outScan")
public JSONObject outScan(HttpServletRequest request, @RequestBody ReceiveRequest receiveRequest) {
LogOrderMailDetailIoEntity entity = logOrderMailDetailIoImpl.getOutboundByMailNo(receiveRequest.getMailNo());
if (entity == null) {
return JsonResponse.generateOpenCommonFailedResponse(-1, "未找到出库信息");
}
OutboundRecordEntity outboundRecordEntity = outboundRecordImpl.getByMailNo(receiveRequest.getMailNo());
if (outboundRecordEntity == null) {
outboundRecordEntity = new OutboundRecordEntity();
outboundRecordEntity.setMailNo(receiveRequest.getMailNo());
outboundRecordEntity.setOrderCode(entity.getLogisticsOrderCode());
outboundRecordImpl.save(outboundRecordEntity);
return JsonResponse.generateLocalCommonSuccessResponse(outboundRecordEntity, "扫码成功");
}
return JsonResponse.generateLocalCommonSuccessResponse(outboundRecordEntity, "重复扫码");
}
} }
...@@ -8,6 +8,7 @@ import jakarta.servlet.http.HttpServletRequest; ...@@ -8,6 +8,7 @@ import jakarta.servlet.http.HttpServletRequest;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import org.ta.pddserver.config.PddAPIConfig; import org.ta.pddserver.config.PddAPIConfig;
import org.ta.pddserver.entity.GDAttachmentEntity; import org.ta.pddserver.entity.GDAttachmentEntity;
...@@ -34,6 +35,7 @@ import java.util.*; ...@@ -34,6 +35,7 @@ import java.util.*;
@Slf4j @Slf4j
@RestController @RestController
@RequestMapping("/gd")
public class PddGDController { public class PddGDController {
@Resource @Resource
......
...@@ -97,6 +97,10 @@ public class PddLocalController { ...@@ -97,6 +97,10 @@ public class PddLocalController {
private TempStorageImpl tempStorageImpl; private TempStorageImpl tempStorageImpl;
@Autowired @Autowired
private UserImpl userImpl; private UserImpl userImpl;
@Autowired
private ShelvesImpl shelvesImpl;
@Autowired
private CollectFreightFeeDetailImpl collectFreightFeeDetailImpl;
/*集运单列表*/ /*集运单列表*/
@Operation( @Operation(
...@@ -1033,11 +1037,12 @@ public class PddLocalController { ...@@ -1033,11 +1037,12 @@ public class PddLocalController {
if (!respObject.getBoolean("success")) { if (!respObject.getBoolean("success")) {
return JsonResponse.generateOpenCommonFailedResponse(-1, "拼多多订单出库失败"); return JsonResponse.generateOpenCommonFailedResponse(-1, "拼多多订单出库失败");
} }
WorldexUtil.noticePddOrderOut(notifyRequest.getOrderCode()); int i = 1;
if (outBoundRequest.getOutPackageList() != null && outBoundRequest.getOutPackageList().size() > 0) { if (outBoundRequest.getOutPackageList() != null && outBoundRequest.getOutPackageList().size() > 0) {
for (OutBoundRequest.OutPackage outPackage : outBoundRequest.getOutPackageList()) { for (OutBoundRequest.OutPackage outPackage : outBoundRequest.getOutPackageList()) {
LogOrderMailDetailIoEntity logOrderMailDetailIoEntity = new LogOrderMailDetailIoEntity(); LogOrderMailDetailIoEntity logOrderMailDetailIoEntity = new LogOrderMailDetailIoEntity();
logOrderMailDetailIoEntity.setMailNo(outPackage.getMailNo()); logOrderMailDetailIoEntity.setMailNo(outPackage.getMailNo());
logOrderMailDetailIoEntity.setUpMailNo(outPackage.getMailNo());
logOrderMailDetailIoEntity.setExpressCode(outPackage.getExpressCode()); logOrderMailDetailIoEntity.setExpressCode(outPackage.getExpressCode());
logOrderMailDetailIoEntity.setLogisticsOrderCode(outBoundRequest.getOrderCode()); logOrderMailDetailIoEntity.setLogisticsOrderCode(outBoundRequest.getOrderCode());
logOrderMailDetailIoEntity.setExpressCode(outPackage.getExpressCode()); logOrderMailDetailIoEntity.setExpressCode(outPackage.getExpressCode());
...@@ -1045,6 +1050,7 @@ public class PddLocalController { ...@@ -1045,6 +1050,7 @@ public class PddLocalController {
logOrderMailDetailIoEntity.setAction("FINISHOUTBOUND"); logOrderMailDetailIoEntity.setAction("FINISHOUTBOUND");
logOrderMailDetailIoEntity.setReq(JSON.toJSONString(requestModel)); logOrderMailDetailIoEntity.setReq(JSON.toJSONString(requestModel));
logOrderMailDetailIoEntity.setResp(resp); logOrderMailDetailIoEntity.setResp(resp);
logOrderMailDetailIoEntity.setWxOrderCode(notifyRequest.getOrderCode() + "-" + (i ++));
if (outPackage.getOutBound() != null && outPackage.getOutBound().size() > 0) { if (outPackage.getOutBound() != null && outPackage.getOutBound().size() > 0) {
logOrderMailDetailIoEntity.setRemarks(JSONObject.toJSONString(outPackage.getOutBound())); logOrderMailDetailIoEntity.setRemarks(JSONObject.toJSONString(outPackage.getOutBound()));
} }
...@@ -1054,6 +1060,7 @@ public class PddLocalController { ...@@ -1054,6 +1060,7 @@ public class PddLocalController {
for (CollectMailDetailEntity lists : list) { for (CollectMailDetailEntity lists : list) {
Boolean result = collectMailDetailImpl.updateByMailNo(lists.getMailNo(), logOrderMailDetailIoEntity.getStatus()); Boolean result = collectMailDetailImpl.updateByMailNo(lists.getMailNo(), logOrderMailDetailIoEntity.getStatus());
} }
WorldexUtil.noticePddOrderOut(logOrderMailDetailIoEntity.getWxOrderCode());
} }
} }
collectOrderImpl.updateOrderStatus(StatusEnum.FINISHOUTBOUND.getCode(), collectOrderResponse.getUid()); collectOrderImpl.updateOrderStatus(StatusEnum.FINISHOUTBOUND.getCode(), collectOrderResponse.getUid());
...@@ -1404,16 +1411,23 @@ public class PddLocalController { ...@@ -1404,16 +1411,23 @@ public class PddLocalController {
List<String> toMailList = new ArrayList<>(); List<String> toMailList = new ArrayList<>();
List<StorageListResponse> toRemoveList = new ArrayList<>(); List<StorageListResponse> toRemoveList = new ArrayList<>();
Map<String, Integer> integerMap = new HashMap<>();
if (list.size() != storageDelRequest.getMailNo().size()) { if (list.size() != storageDelRequest.getMailNo().size()) {
return JsonResponse.generateLocalCommonFailedResponse("-1", "下架包裹数量异常"); return JsonResponse.generateLocalCommonFailedResponse("-1", "下架包裹数量异常");
} }
StorageListResponse first = list.get(0);
String ids = "("; String ids = "(";
for (StorageListResponse lists : list) { for (StorageListResponse lists : list) {
for (String mailNoLists : storageDelRequest.getMailNo()) { for (String mailNoLists : storageDelRequest.getMailNo()) {
if (lists.getMailNo().equals(mailNoLists)) { if (lists.getMailNo().equals(mailNoLists)) {
if (integerMap.containsKey(lists.getCode())) {
integerMap.put(lists.getCode(), integerMap.get(lists.getCode()) + 1);
} else {
integerMap.put(lists.getCode(), 1);
}
toRemoveList.add(lists); toRemoveList.add(lists);
toMailList.add(mailNoLists); toMailList.add(mailNoLists);
ids += "'" + mailNoLists + "',"; ids += "'" + mailNoLists + "',";
...@@ -1434,6 +1448,13 @@ public class PddLocalController { ...@@ -1434,6 +1448,13 @@ public class PddLocalController {
//删除位置 //删除位置
storageImpl.storageDel(ids); storageImpl.storageDel(ids);
// 释放货架位置
for (String code: integerMap.keySet()) {
String[] codes = code.split("-");
shelvesImpl.updateNum(-1, codes[0].substring(0, 1), Integer.parseInt(codes[0].substring(1)), Integer.parseInt(codes[1]));
}
//根据type 区分修改状态 //根据type 区分修改状态
if (("pick").equals(storageDelRequest.getType())) { if (("pick").equals(storageDelRequest.getType())) {
// 出库拣货下架 // 出库拣货下架
...@@ -1519,15 +1540,15 @@ public class PddLocalController { ...@@ -1519,15 +1540,15 @@ public class PddLocalController {
return JsonResponse.generateLocalCommonFailedResponse("-1", "未找到出库信息"); return JsonResponse.generateLocalCommonFailedResponse("-1", "未找到出库信息");
} }
List<CollectMailDetailEntity> mailDetailList = collectMailDetailImpl.getListByOrderCode(orderCode); List<PackageDetailEntity> packages = packageDetailImpl.getByOrderCode(orderCode);
//
// if (lottoLabelInfo == null) {
// return JsonResponse.generateLocalCommonFailedResponse("-1", "获取快递终端信息异常");
// }
byte[] bytes = ImagePdfCollectGenerator.generatePdQRfWithCollectTextImage(orderCode, orderCode.startsWith("PT") ? "退运" : "出库", "" + mailDetailList.size() + "件");
byte[] bytes = null;
if(packages!= null && packages.size()>0){
bytes = ImagePdfCollectGenerator.generatePdQRfWithCollectTextImage(orderCode, "拆包出库", "已打包" + packages.size() + "件");
} else {
List<CollectMailDetailEntity> mailDetailList = collectMailDetailImpl.getListByOrderCode(orderCode);
bytes = ImagePdfCollectGenerator.generatePdQRfWithCollectTextImage(orderCode, orderCode.startsWith("PT") ? "退运" : "出库", "" + mailDetailList.size() + "件");
}
if (bytes == null) { if (bytes == null) {
return JsonResponse.generateLocalCommonFailedResponse("-1", "面单制作失败"); return JsonResponse.generateLocalCommonFailedResponse("-1", "面单制作失败");
...@@ -1769,9 +1790,43 @@ public class PddLocalController { ...@@ -1769,9 +1790,43 @@ public class PddLocalController {
@PostMapping("/collectOrderAllInfo") @PostMapping("/collectOrderAllInfo")
public Map<String, Object> collectOrderAllInfo(HttpServletRequest request, @RequestBody UnpackNoticeRequest unpackNoticeRequest) { public Map<String, Object> collectOrderAllInfo(HttpServletRequest request, @RequestBody UnpackNoticeRequest unpackNoticeRequest) {
Map<String, Object> map = new HashMap<>();
String orderCode = unpackNoticeRequest.getOrderCode(); String orderCode = unpackNoticeRequest.getOrderCode();
CollectOrderEntity collectOrderEntity = collectOrderImpl.getAllInfoByOrderCode(orderCode); CollectOrderEntity collectOrderEntity = collectOrderImpl.getAllInfoByOrderCode(orderCode);
if (collectOrderEntity == null) {
return JsonResponse.generateOpenCommonFailedResponse(-1, "未找到出库信息");
}
Map<String, Object> map = new HashMap<>();
map.put("CollectOrder", collectOrderEntity);
CollectReceiverDetailEntity collectReceiver = collectReceiverDetailImpl.getInfoByOrderCode(orderCode);
map.put("CollectReceiverDetail", collectReceiver);
List<CollectOrderDetailResponse> list = collectOrderDetailImpl.getListByOrderCode(orderCode);
map.put("CollectOrderDetail", list);
List<CollectMailDetailEntity> list1 = collectMailDetailImpl.getListByOrderCode(orderCode);
map.put("CollectMailDetail", list1);
OutboundNoticeEntity noticeEntity = outboundNoticeImpl.getByOrderCode(orderCode);
map.put("OutboundNotice", noticeEntity);
List<LogOrderMailDetailIoEntity> list2 = logOrderMailDetailIoImpl.getOutByOrderCode(orderCode);
map.put("LogOrderMailDetailIo", list2);
UnpackNoticeEntity unpackNoticeEntity = unpackNoticeImpl.getByCode(orderCode);
map.put("UnpackNotice", unpackNoticeEntity);
List<UnpackMailDetailEntity> list3 = unpackMailDetailImpl.getListByCode(orderCode);
map.put("UnpackMailDetail", list3);
return JsonResponse.generateLocalCommonSuccessResponse(map, "");
}
@PostMapping("/collectOrderAllInfoByPayOrder")
public Map<String, Object> collectOrderAllInfoByPayOrder(HttpServletRequest request, @RequestBody UnpackNoticeRequest unpackNoticeRequest) {
String payOrderCode = unpackNoticeRequest.getOrderCode();
CollectFreightFeeDetailEntity freightFeeDetail = collectFreightFeeDetailImpl.getByPayOrder(payOrderCode);
if (freightFeeDetail == null) {
return JsonResponse.generateOpenCommonFailedResponse(-1, "未找到支付单信息");
}
String orderCode = freightFeeDetail.getOrderCode();
CollectOrderEntity collectOrderEntity = collectOrderImpl.getAllInfoByOrderCode(orderCode);
if (collectOrderEntity == null) {
return JsonResponse.generateOpenCommonFailedResponse(-1, "未找到出库信息");
}
Map<String, Object> map = new HashMap<>();
map.put("CollectOrder", collectOrderEntity); map.put("CollectOrder", collectOrderEntity);
CollectReceiverDetailEntity collectReceiver = collectReceiverDetailImpl.getInfoByOrderCode(orderCode); CollectReceiverDetailEntity collectReceiver = collectReceiverDetailImpl.getInfoByOrderCode(orderCode);
map.put("CollectReceiverDetail", collectReceiver); map.put("CollectReceiverDetail", collectReceiver);
......
...@@ -91,6 +91,8 @@ public class PddOpenController { ...@@ -91,6 +91,8 @@ public class PddOpenController {
CollectFreightFeeDetailDiscountDetailImpl collectFreightFeeDetailDiscountDetailImpl; CollectFreightFeeDetailDiscountDetailImpl collectFreightFeeDetailDiscountDetailImpl;
@Resource @Resource
CollectFreightFeeDetailFeeDetailImpl collectFreightFeeDetailFeeDetailImpl; CollectFreightFeeDetailFeeDetailImpl collectFreightFeeDetailFeeDetailImpl;
@Resource
LogOrderMailDetailIoImpl logOrderMailDetailIoImpl;
@Resource @Resource
ManufacturerImpl manufacturerImpl; ManufacturerImpl manufacturerImpl;
...@@ -314,12 +316,20 @@ public class PddOpenController { ...@@ -314,12 +316,20 @@ public class PddOpenController {
PddLogisticsCoTrackQueryRequest subRequest = JSON.parseObject(body, PddLogisticsCoTrackQueryRequest.class); PddLogisticsCoTrackQueryRequest subRequest = JSON.parseObject(body, PddLogisticsCoTrackQueryRequest.class);
subRequest.parseData(); subRequest.parseData();
log.info("pdd.logistics.co.track.query 拼多多向物流公司查询指定运单号当前的完整物流轨迹信息。快递公司运单号:{}", subRequest.getDataObject().getTrackingNumber()); log.info("pdd.logistics.co.track.query 拼多多向物流公司查询指定运单号当前的完整物流轨迹信息。快递公司运单号:{}", subRequest.getDataObject().getTrackingNumber());
LogOrderMailDetailIoEntity ioEntity = logOrderMailDetailIoImpl.getOutboundByUpMailNo(subRequest.getDataObject().getTrackingNumber());
List<TraceObjectEntity> TraceObjectlist = traceObjectImpl.selectByTrackingNumber(subRequest.getDataObject().getTrackingNumber()); List<TraceObjectEntity> TraceObjectlist = traceObjectImpl.selectByTrackingNumber(ioEntity.getMailNo());
List<TraceObject> list = new ArrayList<TraceObject>(); List<TraceObject> list = new ArrayList<TraceObject>();
for (TraceObjectEntity traceObjectEntity : TraceObjectlist) { for (TraceObjectEntity traceObjectEntity : TraceObjectlist) {
list.add(TraceObject.createFromTraceEntity(traceObjectEntity)); TraceObject traceObject = TraceObject.createFromTraceEntity(traceObjectEntity);
String orderNo = traceObject.getTrackingOrderNo();
if (orderNo.contains("-")) {
orderNo = orderNo.substring(0, orderNo.indexOf("-"));
}
traceObject.setTrackingOrderNo(orderNo);
traceObject.setTrackingNumber(ioEntity.getUpMailNo());
list.add(traceObject);
} }
JSONObject jsonObject = JsonResponse.generateLGCommonSuccessResponse(requestParam.getShip_id(), list); JSONObject jsonObject = JsonResponse.generateLGCommonSuccessResponse(requestParam.getShip_id(), list);
log.info("RESP:\n{}", jsonObject.toJSONString()); log.info("RESP:\n{}", jsonObject.toJSONString());
......
...@@ -46,4 +46,10 @@ public class LogOrderMailDetailIoEntity { ...@@ -46,4 +46,10 @@ public class LogOrderMailDetailIoEntity {
@TableField(value = "resp") @TableField(value = "resp")
private String resp; private String resp;
@TableField(value = "wxOrderCode")
private String wxOrderCode;
@TableField(value = "upMailNo")
private String upMailNo;
} }
package org.ta.pddserver.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@TableName("outbound_record")
@Data
public class OutboundRecordEntity {
@TableId(value = "uid")
private String uid;
@TableField(value = "mailNo")
private String mailNo;
@TableField(value = "orderCode")
private String orderCode;
@TableField(value = "created")
private String created;
@TableField(value = "creator")
private String creator;
}
...@@ -2,8 +2,12 @@ package org.ta.pddserver.mapper; ...@@ -2,8 +2,12 @@ package org.ta.pddserver.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.ta.pddserver.entity.CollectFreightFeeDetailEntity; import org.ta.pddserver.entity.CollectFreightFeeDetailEntity;
@Mapper @Mapper
public interface CollectFreightFeeDetailMapper extends BaseMapper<CollectFreightFeeDetailEntity> { public interface CollectFreightFeeDetailMapper extends BaseMapper<CollectFreightFeeDetailEntity> {
@Select("SELECT * FROM `collect_freight_fee_detail` WHERE `payOrderId` = #{payOrderId} ORDER BY `uid` DESC LIMIT 1;")
CollectFreightFeeDetailEntity findByPayOrderId(@Param("payOrderId") String payOrderId);
} }
...@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; ...@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Select;
import org.springframework.security.core.parameters.P;
import org.ta.pddserver.entity.LogOrderMailDetailIoEntity; import org.ta.pddserver.entity.LogOrderMailDetailIoEntity;
import org.ta.pddserver.model.api.request.LogOrderMailDetailIoRequest; import org.ta.pddserver.model.api.request.LogOrderMailDetailIoRequest;
import org.ta.pddserver.model.api.response.LogOrderMailDetailIoListResponse; import org.ta.pddserver.model.api.response.LogOrderMailDetailIoListResponse;
...@@ -20,12 +21,30 @@ public interface LogOrderMailDetailIoMapper extends BaseMapper<LogOrderMailDetai ...@@ -20,12 +21,30 @@ public interface LogOrderMailDetailIoMapper extends BaseMapper<LogOrderMailDetai
@Select("SELECT `uid`, `created`,`status`, `logisticsOrderCode`, `expressCode`, `mailNo`, `action` FROM `log_order_mail_detail_io` WHERE `logisticsOrderCode` LIKE '%${logisticsOrderCode}%' AND `mailNo` LIKE '%${mailNo}%' AND `status` = #{status} ORDER BY uid DESC LIMIT #{offset}, #{size}; ") @Select("SELECT `uid`, `created`,`status`, `logisticsOrderCode`, `expressCode`, `mailNo`, `action` FROM `log_order_mail_detail_io` WHERE `logisticsOrderCode` LIKE '%${logisticsOrderCode}%' AND `mailNo` LIKE '%${mailNo}%' AND `status` = #{status} ORDER BY uid DESC LIMIT #{offset}, #{size}; ")
List<LogOrderMailDetailIoListResponse> getListByRequest(LogOrderMailDetailIoRequest param); List<LogOrderMailDetailIoListResponse> getListByRequest(LogOrderMailDetailIoRequest param);
@Select("SELECT `expressCode`, `mailNo` FROM `log_order_mail_detail_io` WHERE `logisticsOrderCode` = #{orderCode} AND `status` = 60 AND `action` = 'FINISHOUTBOUND';") @Select("SELECT `expressCode`, `mailNo`, `created`, `req`, `resp` FROM `log_order_mail_detail_io` WHERE `logisticsOrderCode` = #{orderCode} AND `status` = 60 AND `action` = 'FINISHOUTBOUND';")
List<LogOrderMailDetailIoEntity> findOutByOrderCode(String orderCode); List<LogOrderMailDetailIoEntity> findOutByOrderCode(@Param("orderCode") String orderCode);
@Select("SELECT `uid`, `created`,`status`, `logisticsOrderCode`, `expressCode`, `mailNo`, `action` FROM `log_order_mail_detail_io` WHERE `mailNo` = #{mailNo} AND `status` = 60 AND `action` = 'FINISHOUTBOUND';") @Select("SELECT * FROM `log_order_mail_detail_io` WHERE `mailNo` = #{mailNo} AND `status` = 60 AND `action` = 'FINISHOUTBOUND';")
LogOrderMailDetailIoEntity findOutboundByMailNo(String mailNo); LogOrderMailDetailIoEntity findOutboundByMailNo(String mailNo);
@Select("SELECT `uid`, `created`, `updated`, `logisticsOrderCode`, `expressCode`, `action` FROM `log_order_mail_detail_io` WHERE `mailNo` = #{mailNo} AND `action` = #{action}") @Select("SELECT `uid`, `created`, `updated`, `logisticsOrderCode`, `expressCode`, `action` FROM `log_order_mail_detail_io` WHERE `mailNo` = #{mailNo} AND `action` = #{action}")
MailDetailIoSelectResponse findInfoByMailNoAction(@Param("mailNo") String mailNo, @Param("action") String action); MailDetailIoSelectResponse findInfoByMailNoAction(@Param("mailNo") String mailNo, @Param("action") String action);
@Select("SELECT COUNT(*) FROM(SELECT `uid` FROM `log_order_mail_detail_io` WHERE `action` = 'FINISHOUTBOUND' GROUP BY `logisticsOrderCode`) a;")
Long countOutboundOrder();
@Select("SELECT COUNT(*) FROM(SELECT `uid` FROM `log_order_mail_detail_io` WHERE `action` = 'FINISHOUTBOUND' AND `created` > #{date} GROUP BY `logisticsOrderCode`) a;")
Long countOutboundOrderFromDate(@Param("date") String date);
@Select("SELECT COUNT(*) FROM `log_order_mail_detail_io` WHERE `action` = 'FINISHOUTBOUND';")
Long countOutboundPackage();
@Select("SELECT COUNT(*) FROM `log_order_mail_detail_io` WHERE `action` = 'FINISHOUTBOUND' AND `created` > #{date};")
Long countOutboundPackageDate(String today);
@Select("SELECT `uid`, `created`,`status`, `logisticsOrderCode`, `expressCode`, `mailNo`, `action` FROM `log_order_mail_detail_io` WHERE `upMailNo` = #{mailNo} AND `status` = 60 AND `action` = 'FINISHOUTBOUND';")
LogOrderMailDetailIoEntity findOutboundByUpMailNo(@Param("mailNo") String mailNo);
@Select("SELECT `expressCode`, `mailNo` FROM `log_order_mail_detail_io` WHERE `wxOrderCode` = #{orderCode} AND `status` = 60 AND `action` = 'FINISHOUTBOUND';")
List<LogOrderMailDetailIoEntity> findOutByWxOrderCode(@P("orderCode") String orderCode);
} }
...@@ -52,4 +52,13 @@ public interface LogOrderMailDetailMapper extends BaseMapper<LogOrderMailDetailE ...@@ -52,4 +52,13 @@ public interface LogOrderMailDetailMapper extends BaseMapper<LogOrderMailDetailE
@Select("SELECT COUNT(*) FROM `log_order_mail_detail` WHERE `logisticsOrderCode` = #{logisticsOrderCode} AND `status` = 20;") @Select("SELECT COUNT(*) FROM `log_order_mail_detail` WHERE `logisticsOrderCode` = #{logisticsOrderCode} AND `status` = 20;")
int countInboundedByOrderCode(@Param("logisticsOrderCode") String logisticsOrderCode); int countInboundedByOrderCode(@Param("logisticsOrderCode") String logisticsOrderCode);
@Select("SELECT COUNT(*) FROM `log_order_mail_detail` WHERE `created` > #{date}")
Long countFromDate(String today);
@Select("SELECT COUNT(*) FROM `log_order_mail_detail` WHERE `enterTime` > '2025-01-02'")
Long countEntered();
@Select("SELECT COUNT(*) FROM `log_order_mail_detail` WHERE `enterTime` = #{date}")
Long countEnteredFromDate(String today);
} }
...@@ -44,4 +44,7 @@ public interface LogOrderMapper extends BaseMapper<LogOrderEntity> { ...@@ -44,4 +44,7 @@ public interface LogOrderMapper extends BaseMapper<LogOrderEntity> {
@Update("UPDATE `log_order` SET `num` = `num` + 1 WHERE `logisticsOrderCode` = #{logisticsOrderCode};") @Update("UPDATE `log_order` SET `num` = `num` + 1 WHERE `logisticsOrderCode` = #{logisticsOrderCode};")
int updateNumByLogisticsOrderCode(@Param("num") int num, @Param("logisticsOrderCode") String logisticsOrderCode); int updateNumByLogisticsOrderCode(@Param("num") int num, @Param("logisticsOrderCode") String logisticsOrderCode);
@Select("SELECT COUNT(*) FROM `log_order` WHERE `created` > #{date}")
Long countFromDate(@Param("date") String date);
} }
...@@ -31,4 +31,7 @@ public interface OutboundNoticeMapper extends BaseMapper<OutboundNoticeEntity> { ...@@ -31,4 +31,7 @@ public interface OutboundNoticeMapper extends BaseMapper<OutboundNoticeEntity> {
@Select("SELECT * FROM `outbound_notice` WHERE `orderCode` = #{orderCode}") @Select("SELECT * FROM `outbound_notice` WHERE `orderCode` = #{orderCode}")
OutboundNoticeEntity findByOrderCode(String orderCode); OutboundNoticeEntity findByOrderCode(String orderCode);
@Select("SELECT COUNT(*) FROM `outbound_notice` WHERE `created` > #{date}")
Long countFromDate(String today);
} }
package org.ta.pddserver.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.ta.pddserver.entity.OutboundRecordEntity;
import java.util.List;
@Mapper
public interface OutboundRecordMapper extends BaseMapper<OutboundRecordEntity> {
@Select("SELECT * FROM `outbound_record` WHERE `mailNo` = #{mailNo};")
OutboundRecordEntity findByMailNo(@Param("mailNo") String mailNo);
}
...@@ -17,4 +17,7 @@ public interface PackageDetailMapper extends BaseMapper<PackageDetailEntity> { ...@@ -17,4 +17,7 @@ public interface PackageDetailMapper extends BaseMapper<PackageDetailEntity> {
@Select("SELECT * FROM `package_detail` WHERE `orderCode` = #{orderCode};") @Select("SELECT * FROM `package_detail` WHERE `orderCode` = #{orderCode};")
List<PackageDetailEntity> findByOrderCode(@Param("orderCode") String orderCode); List<PackageDetailEntity> findByOrderCode(@Param("orderCode") String orderCode);
@Select("SELECT COUNT(*) FROM `package_detail` WHERE `created` > #{date}")
Long countFromDate(@Param("date") String date);
} }
...@@ -32,6 +32,6 @@ public interface ShelvesMapper extends BaseMapper<ShelvesEntity> { ...@@ -32,6 +32,6 @@ public interface ShelvesMapper extends BaseMapper<ShelvesEntity> {
@Select("SELECT `uid`, `level1`, `level2`, `level3`, `allNum`, `lateNum`, `ined` FROM `shelves` WHERE `state` > 0 ORDER BY `allNum`-`lateNum`-`ined` DESC, `level3` ASC, `level2` ASC, `level1` ASC LIMIT 1;") @Select("SELECT `uid`, `level1`, `level2`, `level3`, `allNum`, `lateNum`, `ined` FROM `shelves` WHERE `state` > 0 ORDER BY `allNum`-`lateNum`-`ined` DESC, `level3` ASC, `level2` ASC, `level1` ASC LIMIT 1;")
ShelvesEntity findUsableOrdered(); ShelvesEntity findUsableOrdered();
@Update("UPDATE `shelves` SET `ined` = `ined` + 1 WHERE `level1` =#{level1} AND `level2` = #{level2} AND `level3` = #{level3};") @Update("UPDATE `shelves` SET `ined` = `ined` + #{num} WHERE `level1` =#{level1} AND `level2` = #{level2} AND `level3` = #{level3};")
int updateNum(@Param("level1") String level1, @Param("level2") int level2, @Param("level3") int level3); int updateNum(@Param("num")int num, @Param("level1") String level1, @Param("level2") int level2, @Param("level3") int level3);
} }
...@@ -35,10 +35,10 @@ public interface StorageMapper extends BaseMapper<StorageEntity> { ...@@ -35,10 +35,10 @@ public interface StorageMapper extends BaseMapper<StorageEntity> {
@Select("SELECT `code`, `place` FROM `storage` WHERE `mailNo` = #{mailNo}") @Select("SELECT `code`, `place` FROM `storage` WHERE `mailNo` = #{mailNo}")
StorageResponse storageSelect(@Param("mailNo") String mailNo); StorageResponse storageSelect(@Param("mailNo") String mailNo);
@Select("SELECT a.`mailNo`, a.`code` , a.`place` FROM `storage` a, `unpack_mail_detail` b WHERE b.`orderCode` = #{logisticsOrderCode} AND b.`mailNo` = a.`mailNo` ORDER BY a.`place`") @Select("SELECT b.`mailNo`, a.`code` , a.`place` FROM `unpack_mail_detail` b LEFT JOIN `storage` a ON b.`mailNo` = a.`mailNo` WHERE b.`orderCode` = #{logisticsOrderCode} ORDER BY a.`place`")
List<StorageListResponse> storageUnpackList(@Param("logisticsOrderCode") String logisticsOrderCode); List<StorageListResponse> storageUnpackList(@Param("logisticsOrderCode") String logisticsOrderCode);
@Select("SELECT a.`mailNo`, a.`code` , a.`place` FROM `storage` a, `collect_mail_detail` b WHERE b.`orderCode` = #{logisticsOrderCode} AND b.`mailNo` = a.`mailNo` ORDER BY a.`place`") @Select("SELECT b.`mailNo`, a.`code` , a.`place` FROM `collect_mail_detail` b LEFT JOIN `storage` a ON b.`mailNo` = a.`mailNo` WHERE b.`orderCode` = #{logisticsOrderCode} ORDER BY a.`place`")
List<StorageListResponse> storageCollectList(@Param("logisticsOrderCode") String logisticsOrderCode); List<StorageListResponse> storageCollectList(@Param("logisticsOrderCode") String logisticsOrderCode);
@Delete("DELETE FROM `storage` WHERE `mailNo` IN ${ids}") @Delete("DELETE FROM `storage` WHERE `mailNo` IN ${ids}")
...@@ -46,4 +46,7 @@ public interface StorageMapper extends BaseMapper<StorageEntity> { ...@@ -46,4 +46,7 @@ public interface StorageMapper extends BaseMapper<StorageEntity> {
@Select("SELECT * FROM `storage` WHERE `buyerCode` = #{buyerCode} LIMIT 1;") @Select("SELECT * FROM `storage` WHERE `buyerCode` = #{buyerCode} LIMIT 1;")
StorageEntity selectByBuyerCode(String buyerCode); StorageEntity selectByBuyerCode(String buyerCode);
@Select("SELECT COUNT(*) FROM `storage` WHERE `place` IS NOT NULL;")
Long countOned();
} }
...@@ -38,4 +38,7 @@ public interface UnpackNoticeMapper extends BaseMapper<UnpackNoticeEntity> { ...@@ -38,4 +38,7 @@ public interface UnpackNoticeMapper extends BaseMapper<UnpackNoticeEntity> {
@Update("UPDATE `unpack_notice` SET `num` = `num` + #{num} WHERE `uid` = #{uid};") @Update("UPDATE `unpack_notice` SET `num` = `num` + #{num} WHERE `uid` = #{uid};")
int updatePrintNum(@Param("num") int num, @Param("uid") String uid); int updatePrintNum(@Param("num") int num, @Param("uid") String uid);
@Select("SELECT COUNT(*) FROM `unpack_notice` WHERE `created` > #{date}")
Long countFromDate(String today);
} }
...@@ -170,6 +170,11 @@ public class TraceObject { ...@@ -170,6 +170,11 @@ public class TraceObject {
traceObject.setStatus(traceObjectEntity.getStatusCode()); traceObject.setStatus(traceObjectEntity.getStatusCode());
traceObject.setTimeZone(traceObjectEntity.getTimeZone()); traceObject.setTimeZone(traceObjectEntity.getTimeZone());
traceObject.setTrackingNumber(traceObjectEntity.getTrackingNumber()); traceObject.setTrackingNumber(traceObjectEntity.getTrackingNumber());
String orderNo = traceObjectEntity.getTrackingOrderNo();
if (orderNo.contains("-")) {
orderNo = orderNo.split("-")[0];
}
traceObject.setTrackingOrderNo(orderNo);
traceObject.setTransferFlag(traceObjectEntity.getTransferFlag()); traceObject.setTransferFlag(traceObjectEntity.getTransferFlag());
traceObject.setNextSiteName(traceObjectEntity.getNextSiteName()); traceObject.setNextSiteName(traceObjectEntity.getNextSiteName());
traceObject.setNextSiteType(traceObjectEntity.getNextSiteType()); traceObject.setNextSiteType(traceObjectEntity.getNextSiteType());
......
package org.ta.pddserver.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.ta.pddserver.entity.OutboundRecordEntity;
public interface OutboundRecordService extends IService<OutboundRecordEntity> {
}
...@@ -11,4 +11,7 @@ import org.ta.pddserver.service.CollectFreightFeeDetailService; ...@@ -11,4 +11,7 @@ import org.ta.pddserver.service.CollectFreightFeeDetailService;
public class CollectFreightFeeDetailImpl extends ServiceImpl<CollectFreightFeeDetailMapper, CollectFreightFeeDetailEntity> implements CollectFreightFeeDetailService { public class CollectFreightFeeDetailImpl extends ServiceImpl<CollectFreightFeeDetailMapper, CollectFreightFeeDetailEntity> implements CollectFreightFeeDetailService {
public CollectFreightFeeDetailEntity getByPayOrder(String payOrderCode) {
return this.baseMapper.findByPayOrderId(payOrderCode);
}
} }
\ No newline at end of file
...@@ -60,4 +60,8 @@ public class LogOrderImpl extends ServiceImpl<LogOrderMapper, LogOrderEntity> im ...@@ -60,4 +60,8 @@ public class LogOrderImpl extends ServiceImpl<LogOrderMapper, LogOrderEntity> im
public int updateReceiveNum(int num, String logisticsOrderCode) { public int updateReceiveNum(int num, String logisticsOrderCode) {
return this.baseMapper.updateNumByLogisticsOrderCode(num, logisticsOrderCode); return this.baseMapper.updateNumByLogisticsOrderCode(num, logisticsOrderCode);
} }
public Long countFromDate(String today) {
return this.baseMapper.countFromDate(today);
}
} }
\ No newline at end of file
...@@ -72,4 +72,16 @@ public class LogOrderMailDetailImpl extends ServiceImpl<LogOrderMailDetailMapper ...@@ -72,4 +72,16 @@ public class LogOrderMailDetailImpl extends ServiceImpl<LogOrderMailDetailMapper
public int getInboundedCountByOrderCode(String logisticsOrderCode) { public int getInboundedCountByOrderCode(String logisticsOrderCode) {
return this.baseMapper.countInboundedByOrderCode(logisticsOrderCode); return this.baseMapper.countInboundedByOrderCode(logisticsOrderCode);
} }
public Long countFromDate(String today) {
return this.baseMapper.countFromDate(today);
}
public Long countEntered() {
return this.baseMapper.countEntered();
}
public Long countEnteredFromDate(String today) {
return this.baseMapper.countEnteredFromDate(today);
}
} }
\ No newline at end of file
...@@ -35,11 +35,35 @@ public class LogOrderMailDetailIoImpl extends ServiceImpl<LogOrderMailDetailIoMa ...@@ -35,11 +35,35 @@ public class LogOrderMailDetailIoImpl extends ServiceImpl<LogOrderMailDetailIoMa
return this.baseMapper.findOutByOrderCode(orderCode); return this.baseMapper.findOutByOrderCode(orderCode);
} }
public List<LogOrderMailDetailIoEntity> getOutByWxOrderCode(String orderCode) {
return this.baseMapper.findOutByWxOrderCode(orderCode);
}
public LogOrderMailDetailIoEntity getOutboundByMailNo(String mailNo) { public LogOrderMailDetailIoEntity getOutboundByMailNo(String mailNo) {
return this.baseMapper.findOutboundByMailNo(mailNo); return this.baseMapper.findOutboundByMailNo(mailNo);
} }
public LogOrderMailDetailIoEntity getOutboundByUpMailNo(String mailNo) {
return this.baseMapper.findOutboundByUpMailNo(mailNo);
}
public MailDetailIoSelectResponse findInfoByMailNoAction(String mailNo, String action) { public MailDetailIoSelectResponse findInfoByMailNoAction(String mailNo, String action) {
return baseMapper.findInfoByMailNoAction(mailNo, action); return baseMapper.findInfoByMailNoAction(mailNo, action);
} }
public Long countOutboundOrder() {
return baseMapper.countOutboundOrder();
}
public Long countOutboundOrderFromDate(String today) {
return baseMapper.countOutboundOrderFromDate(today);
}
public Long countOutboundPackage() {
return baseMapper.countOutboundPackage();
}
public Long countOutboundPackageDate(String today) {
return baseMapper.countOutboundPackageDate(today);
}
} }
\ No newline at end of file
...@@ -37,4 +37,8 @@ public class OutboundNoticeImpl extends ServiceImpl<OutboundNoticeMapper, Outbou ...@@ -37,4 +37,8 @@ public class OutboundNoticeImpl extends ServiceImpl<OutboundNoticeMapper, Outbou
public OutboundNoticeEntity getByOrderCode(String orderCode) { public OutboundNoticeEntity getByOrderCode(String orderCode) {
return this.baseMapper.findByOrderCode(orderCode); return this.baseMapper.findByOrderCode(orderCode);
} }
public Long countFromDate(String today) {
return this.baseMapper.countFromDate(today);
}
} }
\ No newline at end of file
package org.ta.pddserver.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.ta.pddserver.entity.OutboundRecordEntity;
import org.ta.pddserver.mapper.OutboundRecordMapper;
import org.ta.pddserver.service.OutboundRecordService;
import org.ta.pddserver.utils.JsonResponse;
@Service
public class OutboundRecordImpl extends ServiceImpl<OutboundRecordMapper, OutboundRecordEntity> implements OutboundRecordService {
public OutboundRecordEntity getByMailNo(String mailNo) {
return this.baseMapper.findByMailNo(mailNo);
}
}
\ No newline at end of file
...@@ -24,4 +24,8 @@ public class PackageDetailImpl extends ServiceImpl<PackageDetailMapper, PackageD ...@@ -24,4 +24,8 @@ public class PackageDetailImpl extends ServiceImpl<PackageDetailMapper, PackageD
public List<PackageDetailEntity> getByOrderCode(String orderCode) { public List<PackageDetailEntity> getByOrderCode(String orderCode) {
return this.baseMapper.findByOrderCode(orderCode); return this.baseMapper.findByOrderCode(orderCode);
} }
public Long countToday(String today) {
return this.baseMapper.countFromDate(today);
}
} }
\ No newline at end of file
...@@ -24,7 +24,7 @@ public class ShelvesImpl extends ServiceImpl<ShelvesMapper, ShelvesEntity> imple ...@@ -24,7 +24,7 @@ public class ShelvesImpl extends ServiceImpl<ShelvesMapper, ShelvesEntity> imple
return this.baseMapper.findUsableOrdered(); return this.baseMapper.findUsableOrdered();
} }
public int updateNum(String level1, int level2, int level3) { public int updateNum(int num, String level1, int level2, int level3) {
return this.baseMapper.updateNum(level1, level2, level3); return this.baseMapper.updateNum(num, level1, level2, level3);
} }
} }
\ No newline at end of file
...@@ -89,4 +89,8 @@ public class StorageImpl extends ServiceImpl<StorageMapper, StorageEntity> imple ...@@ -89,4 +89,8 @@ public class StorageImpl extends ServiceImpl<StorageMapper, StorageEntity> imple
public StorageEntity getByBuyerCode(String buyerCode) { public StorageEntity getByBuyerCode(String buyerCode) {
return this.baseMapper.selectByBuyerCode(buyerCode); return this.baseMapper.selectByBuyerCode(buyerCode);
} }
public Long countOned() {
return this.baseMapper.countOned();
}
} }
\ No newline at end of file
...@@ -55,4 +55,8 @@ public class UnpackNoticeImpl extends ServiceImpl<UnpackNoticeMapper, UnpackNoti ...@@ -55,4 +55,8 @@ public class UnpackNoticeImpl extends ServiceImpl<UnpackNoticeMapper, UnpackNoti
public int updatePrintNum(int num, String uid) { public int updatePrintNum(int num, String uid) {
return this.baseMapper.updatePrintNum(num, uid); return this.baseMapper.updatePrintNum(num, uid);
} }
public Long countFromDate(String today) {
return this.baseMapper.countFromDate(today);
}
} }
\ No newline at end of file
...@@ -14,7 +14,7 @@ spring: ...@@ -14,7 +14,7 @@ spring:
url: jdbc:mysql://lyhj-mysql.mysql.rds.aliyuncs.com:3306/pdd_prod?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT url: jdbc:mysql://lyhj-mysql.mysql.rds.aliyuncs.com:3306/pdd_prod?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT
username: pdd username: pdd
password: pdd123 password: pdd123
# url: jdbc:mysql://rm-j6cv8n7zx12x0sqreuo.mysql.rds.aliyuncs.com:3306/pdd_test?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT # url: jdbc:mysql://rm-j6cv8n7zx12x0sqreuo.mysql.rds.aliyuncs.com:3306/pdd_prod?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT
# username: pdd # username: pdd
# password: pdd123 # password: pdd123
hikari: hikari:
...@@ -27,7 +27,7 @@ spring: ...@@ -27,7 +27,7 @@ spring:
application: application:
name: PddServer name: PddServer
server: server:
# port: 9000 # 正式端口号 - 向拼多多正式环境开放接口 # port: 9000 # 正式端口号 - 向拼多多正式环境开放接口
port: 9100 # 正式端口号 - 向海际系统正式环境开放接口 port: 9100 # 正式端口号 - 向海际系统正式环境开放接口
# port: 8600 # 测试端口号 # port: 8600 # 测试端口号
logging: logging:
......
...@@ -31,4 +31,9 @@ public class WordexAPITest { ...@@ -31,4 +31,9 @@ public class WordexAPITest {
org.ta.pddserver.model.enums.IdentityErrorType type = WorldexUtil.verifyIdentity("nanjiexi", "P11111111", "01099999999"); org.ta.pddserver.model.enums.IdentityErrorType type = WorldexUtil.verifyIdentity("nanjiexi", "P11111111", "01099999999");
log.info("type:{}", type); log.info("type:{}", type);
} }
@Test
public void noticePddOrderOut() {
WorldexUtil.noticePddOrderOut("PP25113011871977478850691-2");
}
} }
{ {
"client_id": "8f5f3f9c92e847b2894fc9c0afce3d61", "executeTime": "2025-12-01 22:08:32",
"request": "{\"executeTime\":\"2025-11-13 11:26:56\",\"isSplitOut\":\"N\",\"orderCode\":\"PP25111223915187411540070\",\"packageInfos\":[{\"expressCode\":\"LOTTO\",\"height\":1,\"inboundMailDetails\":[{\"expressCode\":\"STO\",\"mailNo\":\"777356048647417\"}],\"length\":27,\"outboundMailNo\":\"317758904816\",\"packageType\":\"6\",\"weight\":300,\"width\":25}],\"providerCode\":\"HAIJI_KR\",\"receiverDetail\":{\"city\":\"부평구\",\"country\":\"KR\",\"detailAddress\":\"인천광역시 부평구 부평동 126-9 유진마젤란주상복합 오피스텔1205호\",\"district\":\"부평동\",\"name\":\"REN SUPING\",\"province\":\"인천광역시\",\"telePhone\":\"01036196059\"},\"result\":{\"code\":0},\"segmentCode\":\"SENDTORECEVER\",\"senderDetail\":{\"city\":\"临沂市\",\"country\":\"CN\",\"detailAddress\":\"山东省临沂市兰山区横九路与纵十路交汇兰山财金智慧云仓五期二层二号仓\",\"district\":\"兰山区\",\"name\":\"海际临沂集运仓\",\"province\":\"山东省\",\"telePhone\":\"13857338630\"},\"timeZone\":\"UTC+8\"}", "isSplitOut": "N",
"request_id": "1763004416978", "orderCode": "PP25113011871977478850691",
"sign": "2CF1816C42C50BD1D7521713A900E57D", "packageInfos": [
"target_client_id": "8f5f3f9c92e847b2894fc9c0afce3d61", {
"timestamp": 1763004416, "expressCode": "LOTTO",
"type": "pdd.service.conso.outbound" "height": 31,
} "inboundMailDetails": [
{
"expressCode": "YZXB",
"mailNo": "9811703849420"
},
{
"expressCode": "YZXB",
"mailNo": "9811705187081"
},
{
"expressCode": "ZTO",
"mailNo": "78556294238881"
},
{
"expressCode": "ZTO",
"mailNo": "78556563266327"
}
],
"length": 68,
"outboundMailNo": "317758916543",
"packageType": "6",
"weight": 10680,
"width": 45
},
{
"expressCode": "LOTTO",
"height": 35,
"inboundMailDetails": [
{
"expressCode": "JTSD",
"mailNo": "JT5434723151031"
},
{
"expressCode": "JTSD",
"mailNo": "JT5434728428708"
},
{
"expressCode": "YTO",
"mailNo": "YT8817469231327"
},
{
"expressCode": "YTO",
"mailNo": "YT8817590232491"
},
{
"expressCode": "YUNDA",
"mailNo": "464887456093448"
},
{
"expressCode": "YUNDA",
"mailNo": "464888106028895"
},
{
"expressCode": "YZXB",
"mailNo": "9811684736415"
}
],
"length": 47,
"outboundMailNo": "317758916554",
"packageType": "6",
"weight": 5700,
"width": 30
}
],
"providerCode": "HAIJI_KR",
"receiverDetail": {
"city": "동대문구",
"country": "KR",
"detailAddress": "장안동372-5 장안뉴시티 513호",
"district": "장안동",
"name": "maxinyi",
"province": "서울특별시",
"telePhone": "01064649941"
},
"result": {
"code": 0
},
"segmentCode": "SENDTORECEVER",
"senderDetail": {
"city": "临沂市",
"country": "CN",
"detailAddress": "山东省临沂市兰山区横九路与纵十路交汇兰山财金智慧云仓五期二层二号仓",
"district": "兰山区",
"name": "海际临沂集运仓",
"province": "山东省",
"telePhone": "13857338630"
},
"timeZone": "UTC+8"
}
\ No newline at end of file
{ {
"client_id": "8f5f3f9c92e847b2894fc9c0afce3d61", "executeTime": "2025-12-01 15:34:03",
"request": "{\"executeTime\":\"2025-11-08 14:05:00\",\"logisticsOrderCode\":\"PC25110715653142530023271\",\"packageInfo\":{\"actualWeight\":1000,\"expressCode\":\"SF\",\"goodsType\":\"NORMAL\",\"height\":30,\"length\":30,\"mailNo\":\"SF3270717746148\",\"weight\":1000,\"width\":30},\"packageQuantity\":0,\"providerCode\":\"HAIJI_KR\",\"result\":{\"code\":0},\"status\":\"INBOUND\",\"timeZone\":\"UTC+8\"}", "isSplitOut": "N",
"request_id": "1762581900446", "orderCode": "PP25113001061997779456105",
"sign": "07404C9CEE97F481CE968AA9299509C7", "packageInfos": [],
"target_client_id": "8f5f3f9c92e847b2894fc9c0afce3d61", "providerCode": "HAIJI_KR",
"timestamp": 1762581900, "receiverDetail": {
"type": "pdd.service.conso.inbound" "city": "금천구",
"country": "KR",
"detailAddress": " 시흥대로148길38-18.1충(둑산동)\n",
"district": "금천구",
"name": "ZHANG ZHI HONG",
"province": "서울특별시",
"telePhone": "01042398188"
},
"result": {
"code": 0
},
"segmentCode": "SENDTORECEVER",
"senderDetail": {
"city": "临沂市",
"country": "CN",
"detailAddress": "山东省临沂市兰山区横九路与纵十路交汇兰山财金智慧云仓五期二层二号仓",
"district": "兰山区",
"name": "海际临沂集运仓",
"province": "山东省",
"telePhone": "13857338630"
},
"timeZone": "UTC+8"
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment