|
@@ -23,6 +23,7 @@ import com.iamberry.wechat.tools.DateTimeUtil;
|
|
|
import net.sf.json.JSONArray;
|
|
|
import net.sf.json.JSONNull;
|
|
|
import net.sf.json.JSONObject;
|
|
|
+import org.apache.commons.beanutils.PropertyUtils;
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
@@ -33,6 +34,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import javax.xml.crypto.Data;
|
|
|
import java.beans.Transient;
|
|
|
+import java.lang.reflect.InvocationTargetException;
|
|
|
import java.util.*;
|
|
|
|
|
|
import static sun.misc.MessageUtils.where;
|
|
@@ -146,59 +148,6 @@ public class SalesOrderServiceImpl implements SalesOrderService {
|
|
|
return salesOrder;
|
|
|
}
|
|
|
|
|
|
- /*private List<SalesOrder> breakOrder(SalesOrder salesOrder) {
|
|
|
- List<SalesOrder> listSalesOrder = new ArrayList<>();
|
|
|
- List<SalesOrderItem> list = salesOrder.getSalesOrderItemList();
|
|
|
- //查询所有拆单规则
|
|
|
- List<DownsingleRuleInfo> listDownsingleRuleInfo = salesOrderService.listDownsingleRule();
|
|
|
- if (listDownsingleRuleInfo.size() < 1) {
|
|
|
- return listSalesOrder;
|
|
|
- }
|
|
|
- for (DownsingleRuleInfo downsingleRuleInfo : listDownsingleRuleInfo) {
|
|
|
- SalesOrder order = null;
|
|
|
- //保存原始订单集合,防止订单被篡改后无法还原
|
|
|
- List<SalesOrderItem> originalList = list;
|
|
|
- List<SalesOrderItem> itemList = new ArrayList<>();
|
|
|
- for (DownsingleRuleItemInfo downsingleRuleItemInfo : downsingleRuleInfo.getDownsingleRuleItemList()) {
|
|
|
-
|
|
|
- for (int i = 0; i < list.size(); i++) {
|
|
|
- if (list.get(i).getItemColorBar().equals(downsingleRuleItemInfo.getDownsingleItemBar())
|
|
|
- && downsingleRuleItemInfo.getDownsingleItemNum() <= list.get(i).getItemNum()) {
|
|
|
- if (downsingleRuleItemInfo.getDownsingleItemNum() < list.get(i).getItemNum()) {
|
|
|
- //如果规则数量小于订单项数量这需要将订单项拆分
|
|
|
- list.get(i).setItemNum(list.get(i).getItemNum() - downsingleRuleItemInfo.getDownsingleItemNum());
|
|
|
- SalesOrderItem orderItem = list.get(i);
|
|
|
- orderItem.setItemNum(downsingleRuleItemInfo.getDownsingleItemNum());
|
|
|
- itemList.add(list.get(i));
|
|
|
- } else {
|
|
|
- itemList.add(list.get(i));
|
|
|
- list.remove(i);
|
|
|
- break;
|
|
|
- }
|
|
|
- } else {
|
|
|
- itemList.clear();
|
|
|
- list = originalList;
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- if (itemList.size() > 0) {
|
|
|
- order = salesOrder;
|
|
|
- order.setSalesOrderItemList(itemList);
|
|
|
- }
|
|
|
- if (order != null) {
|
|
|
- listSalesOrder.add(order);
|
|
|
- }
|
|
|
- }
|
|
|
- if (list.size() > 0) {
|
|
|
- SalesOrder remainingOrder = new SalesOrder();
|
|
|
- remainingOrder = salesOrder;
|
|
|
- remainingOrder.setSalesOrderItemList(list);
|
|
|
- listSalesOrder.add(remainingOrder);
|
|
|
- }
|
|
|
- }*/
|
|
|
-
|
|
|
public void parseOrder(SalesOrder oginerOrder, List<SalesOrder> listOrder) {
|
|
|
// 订单项拆分完成,直接返回
|
|
|
if (oginerOrder.getSalesOrderItemList().size() <= 0) {
|
|
@@ -214,7 +163,9 @@ public class SalesOrderServiceImpl implements SalesOrderService {
|
|
|
// 拆单,比较的是数量和产品
|
|
|
Map<String, SalesOrderItem> itemMap = new HashMap<>(oginerOrder.getSalesOrderItemList().size());
|
|
|
for (SalesOrderItem item : oginerOrder.getSalesOrderItemList()) {
|
|
|
- itemMap.put(item.getItemColorBar(), item);
|
|
|
+ SalesOrderItem itemTwo = new SalesOrderItem();
|
|
|
+ BeanUtils.copyProperties(item,itemTwo);
|
|
|
+ itemMap.put(item.getItemColorBar(), itemTwo);
|
|
|
}
|
|
|
|
|
|
// 遍历拆单规则
|
|
@@ -232,10 +183,11 @@ public class SalesOrderServiceImpl implements SalesOrderService {
|
|
|
if (count == rule.getDownsingleRuleItemList().size()) {
|
|
|
// 满足拆单条件
|
|
|
SalesOrder newOrder = new SalesOrder();
|
|
|
- BeanUtils.copyProperties(oginerOrder, newOrder);
|
|
|
+ BeanUtils.copyProperties(oginerOrder,newOrder);
|
|
|
newOrder.setSalesOrderItemList(new ArrayList<SalesOrderItem>(count));
|
|
|
for (DownsingleRuleItemInfo item : rule.getDownsingleRuleItemList()) {
|
|
|
- SalesOrderItem temp = itemMap.get(item.getDownsingleItemBar());
|
|
|
+ SalesOrderItem temp = new SalesOrderItem();
|
|
|
+ BeanUtils.copyProperties(itemMap.get(item.getDownsingleItemBar()),temp);
|
|
|
temp.setItemNum(item.getDownsingleItemNum());
|
|
|
newOrder.getSalesOrderItemList().add(temp);
|
|
|
}
|
|
@@ -245,11 +197,23 @@ public class SalesOrderServiceImpl implements SalesOrderService {
|
|
|
for (DownsingleRuleItemInfo item : rule.getDownsingleRuleItemList()) {
|
|
|
if (item.getDownsingleItemNum() == itemMap.get(item.getDownsingleItemBar()).getItemNum()) {
|
|
|
// 数量和拆单规则相同,则删除原订单的订单项
|
|
|
- oginerOrder.getSalesOrderItemList().remove(itemMap.get(item.getDownsingleItemBar()));
|
|
|
+ /*oginerOrder.getSalesOrderItemList().remove(itemMap.get(item.getDownsingleItemBar()));*/
|
|
|
+ for(int i = 0;i<oginerOrder.getSalesOrderItemList().size();i++){
|
|
|
+ if(oginerOrder.getSalesOrderItemList().get(i).getItemColorBar() .equals(item.getDownsingleItemBar())){
|
|
|
+ oginerOrder.getSalesOrderItemList().remove(i);
|
|
|
+ }
|
|
|
+ }
|
|
|
} else {
|
|
|
- SalesOrderItem orderItem = itemMap.get(item.getDownsingleItemBar());
|
|
|
+// SalesOrderItem orderItem = itemMap.get(item.getDownsingleItemBar());
|
|
|
+ SalesOrderItem orderItem = new SalesOrderItem();
|
|
|
+ BeanUtils.copyProperties(itemMap.get(item.getDownsingleItemBar()),orderItem);
|
|
|
int oldCount = orderItem.getItemNum();
|
|
|
- orderItem.setItemNum(oldCount - item.getDownsingleItemNum());
|
|
|
+ /*orderItem.setItemNum(oldCount - item.getDownsingleItemNum());*/
|
|
|
+ for(int i = 0;i<oginerOrder.getSalesOrderItemList().size();i++){
|
|
|
+ if(oginerOrder.getSalesOrderItemList().get(i).getItemColorBar() .equals(item.getDownsingleItemBar())){
|
|
|
+ oginerOrder.getSalesOrderItemList().get(i).setItemNum(oldCount - item.getDownsingleItemNum());
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
parseOrder(oginerOrder, listOrder);
|