|
@@ -84,6 +84,11 @@ public class AwaitSendController {
|
|
|
private static List<LogisticsInfo> LOGISTICSINFO_LIST;
|
|
|
|
|
|
/**
|
|
|
+ * 产品名称和UUID的映射关系 保存在REDIS中的前缀名称
|
|
|
+ */
|
|
|
+ private static final String CACHE_PRODUCT_NAME_TO_UUID_NAME = "UUID_PRODUCT_";
|
|
|
+
|
|
|
+ /**
|
|
|
* 仓库查询待发货订单
|
|
|
* @param request
|
|
|
* @param salesOrder
|
|
@@ -254,15 +259,13 @@ public class AwaitSendController {
|
|
|
HttpServletRequest request) {
|
|
|
// 检查订单状态
|
|
|
SalesOrder salesOrderInfo = salesOrderService.getSalesOrderById(salesId);
|
|
|
- if(salesOrderInfo != null){
|
|
|
- //查询封装售后维修编号
|
|
|
- List<ComplaintDetectInfo> listDetect = complaintDetectInfoService.listComplaintDetectBySalesId(salesOrderInfo.getSalesOrderId());
|
|
|
- salesOrderInfo.setComplaintDetectInfoList(listDetect);
|
|
|
- }
|
|
|
assert salesOrderInfo != null;
|
|
|
if (salesOrderInfo.getSalesShippingStatus() != 11) {
|
|
|
return ResponseJson.getFAILURE().addResponseKeyValue("error","订单状态非通知配货,无法打印");
|
|
|
}
|
|
|
+ // 查询封装售后维修编号
|
|
|
+ List<ComplaintDetectInfo> listDetect = complaintDetectInfoService.listComplaintDetectBySalesId(salesOrderInfo.getSalesOrderId());
|
|
|
+ salesOrderInfo.setComplaintDetectInfoList(listDetect);
|
|
|
// 检查仓库的发货人信息
|
|
|
StoreShip storeShip = null;
|
|
|
if(salesOrderInfo.getSalesStoreId() != null){
|
|
@@ -291,6 +294,7 @@ public class AwaitSendController {
|
|
|
eOrderRequestData.Cost = (0.00);
|
|
|
eOrderRequestData.OtherCost = (0.0);
|
|
|
eOrderRequestData.Remark = salesId.toString();
|
|
|
+ eOrderRequestData.IsReturnPrintTemplate = 1;
|
|
|
// 收件人信息
|
|
|
String[] addrs = salesOrderInfo.getSalesAddressInfo().split(" ");
|
|
|
if (addrs.length <= 3) {
|
|
@@ -327,8 +331,11 @@ public class AwaitSendController {
|
|
|
int Goodsquantity = 0;
|
|
|
for (SalesOrderItem temp : items) {
|
|
|
goodName.append(temp.getProductAbbreviation())
|
|
|
- .append("(").append(temp.getColorAbbreviation()).append(")*")
|
|
|
- .append(temp.getItemNum()).append(";");
|
|
|
+ .append("(")
|
|
|
+ .append(temp.getColorAbbreviation())
|
|
|
+ .append(")*")
|
|
|
+ .append(temp.getItemNum())
|
|
|
+ .append(";");
|
|
|
if(temp.getColorIsWeight() != null){
|
|
|
colorIsWeight += temp.getColorIsWeight();
|
|
|
}
|
|
@@ -349,10 +356,13 @@ public class AwaitSendController {
|
|
|
}
|
|
|
// 20181113增加需求:产品名称后面增加打印订单日期
|
|
|
goodName.append("【D").append(DateTimeUtil.format(new Date(), "MMdd")).append("】");
|
|
|
- String uuid = RedisUtils.get(orderId);
|
|
|
+ // 生成一个uuid对应订单的产品信息,因为第三方系统不会完整保存产品名称到电子面单,会导致无法拣货
|
|
|
+ String key = CACHE_PRODUCT_NAME_TO_UUID_NAME + orderId;
|
|
|
+ String uuid = RedisUtils.get(key);
|
|
|
if(uuid == null){
|
|
|
uuid = UUIDGenerator.getUUID().substring(0, 8);
|
|
|
- RedisUtils.put(orderId,uuid);
|
|
|
+ RedisUtils.put(key,uuid);
|
|
|
+ RedisUtils.expire(key, DateTimeUtil.addDay(15));
|
|
|
}
|
|
|
// 增加产品信息
|
|
|
Map<String, Object> product1 = new HashMap<String, Object>();
|
|
@@ -363,16 +373,13 @@ public class AwaitSendController {
|
|
|
commodity.add(product1);
|
|
|
eOrderRequestData.Commodity = (commodity);
|
|
|
eOrderRequestData.Weight = (colorIsWeight/1000);
|
|
|
-
|
|
|
- //如果支持字母件则按照子母件方式传值
|
|
|
+ //如果订单是字母件则按照子母件方式传值
|
|
|
List<SalesOrder> orders = salesOrderService.listSublistCount(salesId);
|
|
|
if(logisticsInfo.getLogisticsIsLashSingle() == 1 && orders != null && orders.size() > 0){
|
|
|
eOrderRequestData.Quantity = (orders.size() + 1);
|
|
|
}else{
|
|
|
- eOrderRequestData.Quantity = (1);
|
|
|
+ eOrderRequestData.Quantity = 1;
|
|
|
}
|
|
|
-
|
|
|
- eOrderRequestData.IsReturnPrintTemplate = (1);
|
|
|
try {
|
|
|
// 向第三方系统【快递鸟】提交订单数据,第三方系统会检测订单是否重复
|
|
|
String json = OrderUtils.orderOnlineByJson(eOrderRequestData);
|
|
@@ -424,23 +431,20 @@ public class AwaitSendController {
|
|
|
JSONArray subTemplates = new JSONArray();
|
|
|
if(orders.size() == subPrintTemplates.size() && subPrintTemplates.size() == subOrders.size()){
|
|
|
// 整个产品的重量
|
|
|
- Double productWeight = 0.00;
|
|
|
SalesOrderItem it = new SalesOrderItem();
|
|
|
for(int i = 0 ;i < subPrintTemplates.size(); i++){
|
|
|
String subTemplate = subPrintTemplates.getString(i);
|
|
|
StringBuilder productName = new StringBuilder();
|
|
|
- int productsquantity = 0;
|
|
|
-
|
|
|
it.setItemOrderId(orders.get(i).getSalesId());
|
|
|
List<SalesOrderItem> its = salesOrderService.listSalesOrderItem(it);
|
|
|
for (SalesOrderItem temp : its) {
|
|
|
- productName.append(temp.getProductAbbreviation())
|
|
|
- .append("(").append(temp.getColorAbbreviation()).append(")*")
|
|
|
- .append(temp.getItemNum()).append(";");
|
|
|
- if(temp.getColorIsWeight() != null){
|
|
|
- productWeight += temp.getColorIsWeight();
|
|
|
- }
|
|
|
- productsquantity += temp.getItemNum();
|
|
|
+ productName
|
|
|
+ .append(temp.getProductAbbreviation())
|
|
|
+ .append("(")
|
|
|
+ .append(temp.getColorAbbreviation())
|
|
|
+ .append(")*")
|
|
|
+ .append(temp.getItemNum())
|
|
|
+ .append(";");
|
|
|
}
|
|
|
//替换产品名
|
|
|
subTemplate = subTemplate.replace(uuid, productName.toString());
|
|
@@ -449,8 +453,6 @@ public class AwaitSendController {
|
|
|
//替换备注
|
|
|
subTemplate = subTemplate.replace(salesId.toString(), orders.get(i).getSalesId().toString());
|
|
|
subTemplates.add(subTemplate);
|
|
|
-
|
|
|
- //修改订单状态
|
|
|
// 订单发货 : 仅针对已经通知通知配货的订单(如果已发货,此处不修改对应的订单数据)
|
|
|
SalesOrder order = new SalesOrder();
|
|
|
order.setSalesPostNum(subOrders.get(i).toString());
|
|
@@ -462,8 +464,6 @@ public class AwaitSendController {
|
|
|
if (msg == null || msg <= 0) {
|
|
|
return ResponseJson.getFAILURE().addResponseKeyValue("error", "子订单状态非通知配货,无法打印");
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
File fileTwo = new File(dir.getAbsolutePath() + File.separator + orders.get(i).getSalesOrderId() + ".txt");
|
|
|
if (!fileTwo.createNewFile()) {
|
|
|
return ResponseJson.getFAILURE().addResponseKeyValue("error", "创建子订单文件失败");
|
|
@@ -591,7 +591,7 @@ public class AwaitSendController {
|
|
|
@RequestParam(value = "pageNO", defaultValue = "1", required = false) Integer pageNO,
|
|
|
@RequestParam(value = "totalNum", defaultValue = "0", required = false) Integer totalNum) {
|
|
|
ResponseJson rj = ResponseJson.getFAILURE();
|
|
|
- salesOrder.setSalesShippingStatus(11); //salesShippingStatus
|
|
|
+ salesOrder.setSalesShippingStatus(11);
|
|
|
salesOrder.setEndOrderNO(pageSize);
|
|
|
|
|
|
// 分页获取订单信息(仓库只能查询已确认的订单)
|
|
@@ -606,9 +606,9 @@ public class AwaitSendController {
|
|
|
StringBuffer ids = new StringBuffer();
|
|
|
for (int i =0 ;i<salesOrderList.size();i++){
|
|
|
if(i == 0){
|
|
|
- ids.append("orderId=" + salesOrderList.get(i).getSalesId());
|
|
|
+ ids.append("orderId=").append(salesOrderList.get(i).getSalesId());
|
|
|
}else{
|
|
|
- ids.append("&orderId="+salesOrderList.get(i).getSalesId());
|
|
|
+ ids.append("&orderId=").append(salesOrderList.get(i).getSalesId());
|
|
|
}
|
|
|
}
|
|
|
if(ids.length() < 1){
|