Commit 14a64e5d authored by Allen Chen's avatar Allen Chen

commit

parent f7515b13
File added
...@@ -6,6 +6,7 @@ import io.swagger.v3.oas.annotations.Operation; ...@@ -6,6 +6,7 @@ import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
...@@ -13,6 +14,8 @@ import org.springframework.web.bind.annotation.RequestBody; ...@@ -13,6 +14,8 @@ import org.springframework.web.bind.annotation.RequestBody;
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.*; import org.ta.pddserver.entity.*;
import org.ta.pddserver.lotto.ImagePdfGenerator;
import org.ta.pddserver.lotto.LottoLabelInfo;
import org.ta.pddserver.model.api.request.*; import org.ta.pddserver.model.api.request.*;
import org.ta.pddserver.model.api.response.*; import org.ta.pddserver.model.api.response.*;
import org.ta.pddserver.model.enums.ErrorEnum; import org.ta.pddserver.model.enums.ErrorEnum;
...@@ -82,6 +85,9 @@ public class PddLocalController { ...@@ -82,6 +85,9 @@ public class PddLocalController {
@Autowired @Autowired
private OutboundNoticeImpl outboundNoticeImpl; private OutboundNoticeImpl outboundNoticeImpl;
@Resource
private LottoConfigImpl lottoConfigImpl;
/*集运单列表*/ /*集运单列表*/
@Operation( @Operation(
summary = "分页查询收到的集运单列表", summary = "分页查询收到的集运单列表",
...@@ -1180,7 +1186,7 @@ public class PddLocalController { ...@@ -1180,7 +1186,7 @@ public class PddLocalController {
collectOrderImpl.updateOrderStatus(StatusEnum.FINISHOUTBOUND.getCode(), collectOrderResponse.getUid()); collectOrderImpl.updateOrderStatus(StatusEnum.FINISHOUTBOUND.getCode(), collectOrderResponse.getUid());
return JsonResponse.generateLocalCommonSuccessResponse(true); return JsonResponse.generateLocalCommonSuccessResponse(outBoundRequest.getOutPackageList());
} }
/*拣货完成后出库*/ /*拣货完成后出库*/
...@@ -1550,4 +1556,41 @@ public class PddLocalController { ...@@ -1550,4 +1556,41 @@ public class PddLocalController {
return JsonResponse.generateLocalCommonSuccessResponse(true); return JsonResponse.generateLocalCommonSuccessResponse(true);
} }
@PostMapping("/mailLabel")
public JSONObject mailLabel(HttpServletRequest request, HttpServletResponse response, @RequestBody MailNoRequest mailNoRequest) {
String mailNo = mailNoRequest.getMailNo();
LogOrderMailDetailIoEntity mailDetailIoEntity = logOrderMailDetailIoImpl.getOutboundByMailNo(mailNo);
if (mailDetailIoEntity == null) {
return JsonResponse.generateLocalCommonFailedResponse("-1", "未找到出库运单");
}
CollectReceiverDetailEntity receiverDetailEntity = collectReceiverDetailImpl.getInfoByOrderCode(mailDetailIoEntity.getLogisticsOrderCode());
LottoLabelInfo lottoLabelInfo = lottoConfigImpl.getLottoLabelInfoByPostCode(receiverDetailEntity.getPostCode());
if (lottoLabelInfo == null) {
return JsonResponse.generateLocalCommonFailedResponse("-1", "获取快递终端信息异常");
}
byte[] bytes = ImagePdfGenerator.generatePdfWithTextImage(
mailNo,
lottoLabelInfo.getPortCode(),
receiverDetailEntity.getName(),
receiverDetailEntity.getTelePhone(),
receiverDetailEntity.getPostCode(),
receiverDetailEntity.getDetailAddress(),
receiverDetailEntity.getOrderCode(),
lottoLabelInfo.getArea1(),
lottoLabelInfo.getArea2(),
lottoLabelInfo.getArea3(),
lottoLabelInfo.getArea4());
if (bytes == null) {
return JsonResponse.generateLocalCommonFailedResponse("-1", "面单制作失败");
}
JSONObject result = new JSONObject();
result.put("mailNo", mailNo);
result.put("file", Base64.getEncoder().encodeToString(bytes));
return JsonResponse.generateLocalCommonSuccessResponse(result);
}
} }
...@@ -655,22 +655,34 @@ public class PddOpenController { ...@@ -655,22 +655,34 @@ public class PddOpenController {
reverseNotifyImpl.save(reverseNotifyEntity); reverseNotifyImpl.save(reverseNotifyEntity);
String orderCode = notifyRequest.getOrderCode(); String orderCode = notifyRequest.getOrderCode();
if (notifyRequest.getType().toUpperCase().equals("HEBAO")) { if (notifyRequest.getType().toUpperCase().equals("HEBAO")) {
CollectOrderResponse collectOrderEntity = collectOrderImpl.getByOrderCode(orderCode); CollectOrderEntity collectOrderEntity = collectOrderImpl.getAllInfoByOrderCode(orderCode);
if (collectOrderEntity != null) { if (collectOrderEntity != null) {
if (collectOrderEntity.getRemarks() == null) {
collectOrderEntity.setRemarks(notifyRequest.getStatus());
} else {
collectOrderEntity.setRemarks(collectOrderEntity.getRemarks() + " > " + notifyRequest.getStatus());
}
if (notifyRequest.getStatus().toUpperCase().equals("CANCELOUTBOUND")) { if (notifyRequest.getStatus().toUpperCase().equals("CANCELOUTBOUND")) {
collectOrderImpl.updateOrderStatus(11, collectOrderEntity.getUid()); collectOrderEntity.setStatus(11);
} }
collectOrderImpl.updateById(collectOrderEntity);
} }
} else if (notifyRequest.getType().toUpperCase().equals("JIYUN")) { } else if (notifyRequest.getType().toUpperCase().equals("JIYUN")) {
LogOrderEntity logOrderEntity = orderImpl.getByOrderCode(orderCode); LogOrderEntity logOrderEntity = orderImpl.getByOrderCode(orderCode);
if (logOrderEntity != null) { if (logOrderEntity != null) {
if (logOrderEntity.getRemarks() == null) {
logOrderEntity.setRemarks(notifyRequest.getStatus());
} else {
logOrderEntity.setRemarks(logOrderEntity.getRemarks() + " > " + notifyRequest.getStatus());
}
if (notifyRequest.getStatus().toUpperCase().equals("REJECTSIGN")) { if (notifyRequest.getStatus().toUpperCase().equals("REJECTSIGN")) {
orderImpl.updateOrderStatus(11, logOrderEntity.getUid()); logOrderEntity.setStatus(11);
} else if (notifyRequest.getStatus().toUpperCase().equals("CANCELREJECTSIGN")) { } else if (notifyRequest.getStatus().toUpperCase().equals("CANCELREJECTSIGN")) {
orderImpl.updateOrderStatus(21, logOrderEntity.getUid()); logOrderEntity.setStatus(21);
} else if (notifyRequest.getStatus().toUpperCase().equals("ONLYREFUNDSUC")) { } else if (notifyRequest.getStatus().toUpperCase().equals("ONLYREFUNDSUC")) {
orderImpl.updateOrderStatus(31, logOrderEntity.getUid()); logOrderEntity.setStatus(31);
} }
orderImpl.updateById(logOrderEntity);
} }
} }
} }
......
...@@ -30,7 +30,8 @@ public class ImagePdfGenerator { ...@@ -30,7 +30,8 @@ public class ImagePdfGenerator {
String area1, String area1,
String area2, String area2,
String area3, String area3,
String area4) throws Exception { String area4) {
try {
// 1. 将文字转为图片(示例:韩文“안녕하세요,世界!”) // 1. 将文字转为图片(示例:韩文“안녕하세요,世界!”)
byte[] imageBytes = TextToImageUtils.textToImage( byte[] imageBytes = TextToImageUtils.textToImage(
mailCode, mailCode,
...@@ -64,6 +65,10 @@ public class ImagePdfGenerator { ...@@ -64,6 +65,10 @@ public class ImagePdfGenerator {
// 4. 关闭文档 // 4. 关闭文档
document.close(); document.close();
return pdfBaos.toByteArray(); return pdfBaos.toByteArray();
}catch (Exception e){
e.printStackTrace();
return null;
}
} }
......
package org.ta.pddserver.lotto;
import lombok.Data;
@Data
public class LottoLabelInfo {
private String portCode;
private String area1;
private String area2;
private String area3;
private String area4;
}
...@@ -18,7 +18,7 @@ import java.util.List; ...@@ -18,7 +18,7 @@ import java.util.List;
@Mapper @Mapper
public interface CollectOrderMapper extends BaseMapper<CollectOrderEntity> { public interface CollectOrderMapper extends BaseMapper<CollectOrderEntity> {
@Select("SELECT `uid`,`orderCode`, `itemQuantityTotal`, `segmentCode`, `consoType` FROM `collect_order` WHERE `orderCode` = #{orderCode};") @Select("SELECT `uid`,`orderCode`, `itemQuantityTotal`, `segmentCode`, `consoType`, `remarks` FROM `collect_order` WHERE `orderCode` = #{orderCode};")
CollectOrderResponse findByOrderCode(String orderCode); CollectOrderResponse findByOrderCode(String orderCode);
@Update("UPDATE `collect_order` SET `status` = #{status} WHERE `uid` = #{uid};") @Update("UPDATE `collect_order` SET `status` = #{status} WHERE `uid` = #{uid};")
......
...@@ -20,4 +20,7 @@ public interface LogOrderMailDetailIoMapper extends BaseMapper<LogOrderMailDetai ...@@ -20,4 +20,7 @@ public interface LogOrderMailDetailIoMapper extends BaseMapper<LogOrderMailDetai
@Select("SELECT `expressCode`, `mailNo` FROM `log_order_mail_detail_io` WHERE `logisticsOrderCode` = #{orderCode} AND `status` = 60 AND `action` = 'FINISHOUTBOUND';") @Select("SELECT `expressCode`, `mailNo` FROM `log_order_mail_detail_io` WHERE `logisticsOrderCode` = #{orderCode} AND `status` = 60 AND `action` = 'FINISHOUTBOUND';")
List<LogOrderMailDetailIoEntity> findOutByOrderCode(String orderCode); List<LogOrderMailDetailIoEntity> findOutByOrderCode(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';")
LogOrderMailDetailIoEntity findOutboundByMailNo(String mailNo);
} }
...@@ -34,7 +34,7 @@ public interface LogOrderMailDetailMapper extends BaseMapper<LogOrderMailDetailE ...@@ -34,7 +34,7 @@ public interface LogOrderMailDetailMapper extends BaseMapper<LogOrderMailDetailE
@Select("SELECT a.`uid`, a.`logisticsOrderCode` , a.`expressCode` ,a.`mailNo`, a.`updated`, a.`status`, b.`num` FROM `log_order_mail_detail` a, `log_order` b WHERE a.`mailNo` = #{mailNo} AND a.`logisticsOrderCode` = b.`logisticsOrderCode` ORDER BY a.`uid` DESC LIMIT 1;") @Select("SELECT a.`uid`, a.`logisticsOrderCode` , a.`expressCode` ,a.`mailNo`, a.`updated`, a.`status`, b.`remarks`, b.`num` FROM `log_order_mail_detail` a, `log_order` b WHERE a.`mailNo` = #{mailNo} AND a.`logisticsOrderCode` = b.`logisticsOrderCode` ORDER BY a.`uid` DESC LIMIT 1;")
MailNoResponse getInfoByMailNo(@Param("mailNo") String mailNo); MailNoResponse getInfoByMailNo(@Param("mailNo") String mailNo);
......
package org.ta.pddserver.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.ta.pddserver.entity.LottoConfigEntity;
@Mapper
public interface LottoConfigMapper extends BaseMapper<LottoConfigEntity> {
@Select("SELECT * FROM `lotto_config` WHERE `tag2` = #{tag2} ORDER BY `id` ASC LIMIT 1;")
LottoConfigEntity findByTag2(String tag2);
}
...@@ -15,4 +15,6 @@ public class CollectOrderResponse { ...@@ -15,4 +15,6 @@ public class CollectOrderResponse {
private String consoType; private String consoType;
private String remarks;
} }
...@@ -12,4 +12,5 @@ public class MailNoResponse { ...@@ -12,4 +12,5 @@ public class MailNoResponse {
private String updated; private String updated;
private String status; private String status;
private int num; private int num;
private String remarks;
} }
package org.ta.pddserver.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.ta.pddserver.entity.LottoConfigEntity;
public interface LottoConfigService extends IService<LottoConfigEntity> {
}
...@@ -32,4 +32,8 @@ public class LogOrderMailDetailIoImpl extends ServiceImpl<LogOrderMailDetailIoMa ...@@ -32,4 +32,8 @@ public class LogOrderMailDetailIoImpl extends ServiceImpl<LogOrderMailDetailIoMa
public List<LogOrderMailDetailIoEntity> getOutByOrderCode(String orderCode) { public List<LogOrderMailDetailIoEntity> getOutByOrderCode(String orderCode) {
return this.baseMapper.findOutByOrderCode(orderCode); return this.baseMapper.findOutByOrderCode(orderCode);
} }
public LogOrderMailDetailIoEntity getOutboundByMailNo(String mailNo) {
return this.baseMapper.findOutboundByMailNo(mailNo);
}
} }
\ 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.LottoConfigEntity;
import org.ta.pddserver.lotto.LottoLabelInfo;
import org.ta.pddserver.mapper.LottoConfigMapper;
import org.ta.pddserver.service.LottoConfigService;
@Service
public class LottoConfigImpl extends ServiceImpl<LottoConfigMapper, LottoConfigEntity> implements LottoConfigService {
public LottoLabelInfo getLottoLabelInfoByPostCode(String postCode){
LottoConfigEntity lottoConfigEntity = this.baseMapper.findByTag2(postCode);
if (lottoConfigEntity == null){
return null;
}
LottoLabelInfo info = new LottoLabelInfo();
info.setPortCode(lottoConfigEntity.getTag4());
info.setArea1(lottoConfigEntity.getTag3() + " - " + lottoConfigEntity.getTag5());
info.setArea2("X " + lottoConfigEntity.getTag7() + " " + lottoConfigEntity.getTag9());
info.setArea3(lottoConfigEntity.getTag11());
info.setArea4(lottoConfigEntity.getTag13());
return info;
}
}
\ No newline at end of file
...@@ -26,7 +26,8 @@ spring: ...@@ -26,7 +26,8 @@ spring:
application: application:
name: PddServer name: PddServer
server: server:
port: 9000 # 正式端口号 # port: 9000 # 正式端口号 - 向拼多多正式环境开放接口
port: 9100 # 正式端口号 - 向海际系统正式环境开放接口
# port: 8600 # 测试端口号 # port: 8600 # 测试端口号
logging: logging:
level: level:
...@@ -39,5 +40,5 @@ mybatis-plus: ...@@ -39,5 +40,5 @@ mybatis-plus:
pdd: pdd:
jyt: 0 jyt: 0
gd: 1 gd: 0
lotto: 1 lotto: 1
\ No newline at end of file
...@@ -41,15 +41,24 @@ public class PdfTest { ...@@ -41,15 +41,24 @@ public class PdfTest {
@Test @Test
public void test3() throws Exception { public void test3() throws Exception {
// try (FileOutputStream outputStream = new FileOutputStream("./test.pdf")) { try (FileOutputStream outputStream = new FileOutputStream("./PP25112111811160070553457.pdf")) {
// byte[] strToBytes = ImagePdfGenerator.generatePdfWithTextImage(); byte[] strToBytes = ImagePdfGenerator.generatePdfWithTextImage(
// outputStream.write(strToBytes); "317758904853",
// System.out.println("文件写入成功!"); "553",
// } catch (IOException e) { "JIN JIANYU",
// e.printStackTrace(); "01027179333",
// } catch (FontFormatException e) { "28488",
// throw new RuntimeException(e); "충청북도 청주시 청원구 우암로 46 충청북도 청주시 청원구 우암동 362-21 202호",
// } "PP25112111811160070553457",
"M-K1-우07",
"X 청주시 청원구",
"청주우암(대)",
"우07-조영선");
outputStream.write(strToBytes);
System.out.println("文件写入成功!");
} catch (IOException e) {
e.printStackTrace();
}
} }
@Test @Test
......
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