Просмотр исходного кода

Merge remote-tracking branch 'origin/purchaseChange' into purchaseChange

Administrator 7 лет назад
Родитель
Сommit
e11630c01c

+ 21 - 12
src/main/java/com/uas/platform/b2b/controller/PurcOrderChangeController.java

@@ -23,6 +23,7 @@ import com.uas.search.b2b.model.Sort;
 import com.uas.search.b2b.util.SearchConstants;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.ui.ModelMap;
+import org.springframework.util.CollectionUtils;
 import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.servlet.ModelAndView;
@@ -65,10 +66,18 @@ public class PurcOrderChangeController {
     public SPage<PurchaseOrderAll> findByPageInfo(PageParams pageParams, String searchFilter) {
         PageInfo pageInfo = new PageInfo(pageParams);
         SearchFilter filter =  JSONObject.parseObject(searchFilter, SearchFilter.class);
-        pageInfo.filter("enUU", SystemSession.getUser().getEnterprise().getUu());
-        pageInfo.filter("status",Status.NOT_REPLY.value());
-//        pageInfo.filter("source", "B2B");
-        return orderChangeService.findEnableToChange(pageInfo, filter);
+        com.uas.search.b2b.model.PageParams params = searchService.convertPageParams(pageParams, searchFilter);
+        if (!StringUtils.isEmpty(filter.getKeyword())) {
+            params.getFilters().put("pu_enuu", SystemSession.getUser().getEnterprise().getUu());
+            List<Sort> sortList = new ArrayList<>();
+            sortList.add(new Sort("pu_id", false, Sort.Type.LONG, new Long(1)));
+            params.getFilters().put(SearchConstants.SORT_KEY, sortList);
+            return searchService.findEnableToChange(filter.getKeyword(), params);
+        } else {
+            pageInfo.filter("enUU", SystemSession.getUser().getEnterprise().getUu());
+            return orderChangeService.findEnableToChange(pageInfo, filter);
+        }
+
     }
 
     /**
@@ -209,8 +218,8 @@ public class PurcOrderChangeController {
         modelAndView.addObject("state", "全部");
         modelAndView.addObject("data", filter.getKeyword() == null ? orderChangeService.findByPageInfo(pageInfo, filter).getContent()
                 : getAllPurcOrderChange(params, searchFilter).getContent());
-        modelAndView.setView(new JxlsExcelView("classpath:jxls-tpl/sale/purcChange", "客户采购变更单列表_全部"));
-        logger.log("客户采购变更单", "导出Excel列表", "导出全部Excel列表");
+        modelAndView.setView(new JxlsExcelView("classpath:jxls-tpl/sale/purcChange", "采购变更单列表_全部"));
+        logger.log("采购变更单", "导出Excel列表", "导出全部Excel列表");
         return modelAndView;
     }
 
@@ -234,8 +243,8 @@ public class PurcOrderChangeController {
         modelAndView.addObject("state", "已处理");
         modelAndView.addObject("data", filter.getKeyword() == null ? orderChangeService.findByPageInfo(pageInfo, filter).getContent()
                 : getPurcOrderChangeDone(params, searchFilter).getContent());
-        modelAndView.setView(new JxlsExcelView("classpath:jxls-tpl/sale/purcChange", "客户采购变更单列表_已处理"));
-        logger.log("客户采购变更单", "导出Excel列表", "导出已处理Excel列表");
+        modelAndView.setView(new JxlsExcelView("classpath:jxls-tpl/sale/purcChange", "采购变更单列表_已处理"));
+        logger.log("采购变更单", "导出Excel列表", "导出已处理Excel列表");
         return modelAndView;
     }
 
@@ -260,8 +269,8 @@ public class PurcOrderChangeController {
         modelAndView.addObject("state", "待确认");
         modelAndView.addObject("data", filter.getKeyword() == null ? orderChangeService.findByPageInfo(pageInfo, filter).getContent()
                 : getPurcOrderChangeTodo(params, searchFilter).getContent());
-        modelAndView.setView(new JxlsExcelView("classpath:jxls-tpl/sale/purcChange", "客户采购变更单列表_待确认"));
-        logger.log("客户采购变更单", "导出Excel列表", "导出待确认Excel列表");
+        modelAndView.setView(new JxlsExcelView("classpath:jxls-tpl/sale/purcChange", "采购变更单列表_待确认"));
+        logger.log("采购变更单", "导出Excel列表", "导出待确认Excel列表");
         return modelAndView;
     }
 
@@ -285,8 +294,8 @@ public class PurcOrderChangeController {
         modelAndView.addObject("state", "已处理");
         modelAndView.addObject("data", filter.getKeyword() == null ? orderChangeService.findByPageInfo(pageInfo, filter).getContent()
                 : getPurcOrderChangeUnread(params, searchFilter).getContent());
-        modelAndView.setView(new JxlsExcelView("classpath:jxls-tpl/sale/purcChange", "客户采购变更单列表_无需确认"));
-        logger.log("客户采购变更单", "导出Excel列表", "导出无需确认Excel列表");
+        modelAndView.setView(new JxlsExcelView("classpath:jxls-tpl/sale/purcChange", "采购变更单列表_无需确认"));
+        logger.log("采购变更单", "导出Excel列表", "导出无需确认Excel列表");
         return modelAndView;
     }
 

+ 8 - 0
src/main/java/com/uas/platform/b2b/search/SearchService.java

@@ -141,6 +141,14 @@ public interface SearchService {
 	 */
 	public SPage<PurchaseOrderChange> searchPurchaseOrderChangeIds(String keyword, PageParams pageParams);
 
+	/**
+	 * 查询可变更的采购单
+	 * @param keyword
+	 * @param pageParams
+	 * @return
+	 */
+	public SPage<PurchaseOrderAll> findEnableToChange(String keyword, PageParams pageParams);
+
 	/**
 	 * 客户打样申请单(所有)
 	 * 

+ 17 - 0
src/main/java/com/uas/platform/b2b/search/SearchServiceImpl.java

@@ -475,6 +475,23 @@ public class SearchServiceImpl implements com.uas.platform.b2b.search.SearchServ
 		return toSPage(idsPage, content);
 	}
 
+	public SPage<PurchaseOrderAll> findEnableToChange(String keyword, PageParams pageParams) {
+		SPage<Long> idsPage = searchService.searchIds(keyword, Table_name.PURC$ORDERS, pageParams);
+		List<PurchaseOrderAll> content = purchaseOrderAllDao.findAll(idsPage.getContent());
+		if (!CollectionUtils.isEmpty(content)) {
+			for (PurchaseOrderAll orderAll : content) {
+				if (!CollectionUtils.isEmpty(orderAll.getOrderItems())) {
+					for (PurchaseOrderAllItem item : orderAll.getOrderItems()) {
+						item.setLatestReplyQty(purchaseOrderService.findLastReplyQty(item.getId()));
+					}
+				}
+			}
+		}
+		sortByProperty(content, PurchaseOrderAll.class, "id", idsPage.getContent());
+		return toSPage(idsPage, content);
+	}
+
+
 	/**
 	 * 打样申请单
 	 */

+ 33 - 23
src/main/java/com/uas/platform/b2b/service/impl/PurcOrderChangeServiceImpl.java

@@ -1,10 +1,13 @@
 package com.uas.platform.b2b.service.impl;
 
+import com.uas.platform.b2b.core.util.ContextUtils;
 import com.uas.platform.b2b.dao.*;
+import com.uas.platform.b2b.event.PurchaseOrderChangeSaveReleaseEvent;
 import com.uas.platform.b2b.model.*;
 import com.uas.platform.b2b.service.PurcOrderChangeService;
 import com.uas.platform.b2b.support.SPageUtils;
 import com.uas.platform.b2b.support.SystemSession;
+import com.uas.platform.b2b.support.XingePusher;
 import com.uas.platform.core.model.Constant;
 import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.model.Status;
@@ -26,10 +29,7 @@ import javax.persistence.criteria.CriteriaBuilder;
 import javax.persistence.criteria.CriteriaQuery;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Root;
-import java.util.Date;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
 
 /**
  * 采购变更单
@@ -54,6 +54,12 @@ public class PurcOrderChangeServiceImpl implements PurcOrderChangeService {
     @Autowired
     private PurchaseOrderAllDao purchaseOrderAllDao;
 
+    @Autowired
+    private EnterpriseDao enterpriseDao;
+
+    @Autowired
+    private  UserDao userDao;
+
     /**
      * 查询符合条件的能变更的采购单
      *
@@ -82,17 +88,6 @@ public class PurcOrderChangeServiceImpl implements PurcOrderChangeService {
         Page<PurchaseOrderAll> pageOrders = purchaseOrderAllDao.findAll(new Specification<PurchaseOrderAll>() {
             @Override
             public Predicate toPredicate(Root<PurchaseOrderAll> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
-               /* Predicate[] predicates = pageInfo.getPredicates(root, query, builder);
-                if (filter != null && filter.getKeyword() != null) {
-                    predicates = Arrays.copyOf(predicates, predicates.length + 1);
-                    SetJoin<PurchaseOrderAll, PurchaseOrderAllItem> join = root
-                            .join(root.getModel().getSet("orderItems", PurchaseOrderAllItem.class), JoinType.INNER);
-                    Predicate title = builder.like(join.get("product").get("title").as(String.class), filter.getKeyword());
-                    predicates[predicates.length - 2] = title;
-                    Predicate brand = builder.like(join.get("product").get("brand").as(String.class), filter.getKeyword());
-                    predicates[predicates.length - 1] = brand;
-                }
-                return query.where(predicates).getRestriction();*/
                 return query.where(pageInfo.getPredicates(root, query, builder)).getRestriction();
             }
         }, pageInfo);
@@ -148,11 +143,17 @@ public class PurcOrderChangeServiceImpl implements PurcOrderChangeService {
             }
         }
        List<PurchaseOrderChangeItem> items = changeItemDao.save(change.getOrderChangeItems());
-       if (change.getUnNeedReply().equals(Constant.YES)) {
+       if (change.getUnNeedReply() == 1) {
            PurchaseOrderInfo orderInfo = orderInfoDao.findOne(change.getOrderId());
-           orderInfo.setPayments(change.getNewPayments());
-           orderInfo.setCurrency(change.getNewCurrency());
-           orderInfo.setRate(change.getNewRate());
+           if (!StringUtils.isEmpty(change.getNewPayments())) {
+               orderInfo.setPayments(change.getNewPayments());
+           }
+           if (!StringUtils.isEmpty(change.getNewCurrency())) {
+               orderInfo.setCurrency(change.getNewCurrency());
+           }
+           if (!StringUtils.isEmpty(change.getNewRate())) {
+               orderInfo.setRate(change.getNewRate());
+           }
            orderInfoDao.save(orderInfo);
            Set<PurchaseOrderChangeItem> itemList = change.getOrderChangeItems();
            //orderInfoItemDao.save(itemList);
@@ -160,10 +161,18 @@ public class PurcOrderChangeServiceImpl implements PurcOrderChangeService {
            while (changeItemIterator.hasNext()) {
                PurchaseOrderChangeItem changeItem = changeItemIterator.next();
                PurcOrderInfoItem orderInfoItem = orderInfoItemDao.findOne(changeItem.getOrderItemId());
-               orderInfoItem.setQty(changeItem.getNewQty());
-               orderInfoItem.setTaxrate(changeItem.getNewTaxrate());
-               orderInfoItem.setDelivery(changeItem.getNewDelivery());
-               orderInfoItem.setPrice(changeItem.getNewPrice());
+               if (!StringUtils.isEmpty(changeItem.getNewQty())) {
+                   orderInfoItem.setQty(changeItem.getNewQty());
+               }
+               if (!StringUtils.isEmpty(changeItem.getNewTaxrate())) {
+                   orderInfoItem.setTaxrate(changeItem.getNewTaxrate());
+               }
+               if (!StringUtils.isEmpty(changeItem.getNewDelivery())) {
+                   orderInfoItem.setDelivery(changeItem.getNewDelivery());
+               }
+               if (!StringUtils.isEmpty(changeItem.getNewPrice())) {
+                   orderInfoItem.setPrice(changeItem.getNewPrice());
+               }
                orderInfoItemDao.save(orderInfoItem);
            }
            //无需更改的采购变更单无需再次传到ERP
@@ -171,6 +180,7 @@ public class PurcOrderChangeServiceImpl implements PurcOrderChangeService {
            change.setReplySendStatus((short)Status.DOWNLOADED.value());
            changeDao.save(change);
        }
+
         return new ModelMap("id", items.get(0).getOrderChange().getId());
     }
 

+ 22 - 8
src/main/java/com/uas/platform/b2b/service/impl/PurchaseOrderChangeServiceImpl.java

@@ -394,22 +394,36 @@ public class PurchaseOrderChangeServiceImpl implements PurchaseOrderChangeServic
 						"供应商:" + vendor.getEnName(), "", "");
 			}
 		}
-		if (orderChange.getAgreed().equals(Constant.YES)) {
+		if (orderChange.getAgreed() == 1) {
 			PurchaseOrderInfo orderInfo = purchaseOrderInfoDao.findOne(orderChange.getOrderId());
 			if (!StringUtils.isEmpty(orderInfo)) {
-				orderInfo.setPayments(orderChange.getNewPayments());
-				orderInfo.setCurrency(orderChange.getNewCurrency());
-				orderInfo.setRate(orderChange.getNewRate());
+				if (!StringUtils.isEmpty(change.getNewPayments())) {
+					orderInfo.setPayments(change.getNewPayments());
+				}
+				if (!StringUtils.isEmpty(change.getNewCurrency())) {
+					orderInfo.setCurrency(change.getNewCurrency());
+				}
+				if (!StringUtils.isEmpty(change.getNewRate())) {
+					orderInfo.setRate(change.getNewRate());
+				}
 				purchaseOrderInfoDao.save(orderInfo);
 				Set<PurchaseOrderChangeItem> itemList = orderChange.getOrderChangeItems();
 				Iterator<PurchaseOrderChangeItem> changeItemIterator = itemList.iterator();
 				while (changeItemIterator.hasNext()) {
 					PurchaseOrderChangeItem changeItem = changeItemIterator.next();
 					PurcOrderInfoItem orderInfoItem = purcOrderInfoItemDao.findOne(changeItem.getOrderItemId());
-					orderInfoItem.setPrice(changeItem.getNewPrice());
-					orderInfoItem.setQty(changeItem.getNewQty());
-					orderInfoItem.setTaxrate(changeItem.getNewTaxrate());
-					orderInfoItem.setDelivery(changeItem.getNewDelivery());
+					if (!StringUtils.isEmpty(changeItem.getNewQty())) {
+						orderInfoItem.setQty(changeItem.getNewQty());
+					}
+					if (!StringUtils.isEmpty(changeItem.getNewTaxrate())) {
+						orderInfoItem.setTaxrate(changeItem.getNewTaxrate());
+					}
+					if (!StringUtils.isEmpty(changeItem.getNewPrice())) {
+						orderInfoItem.setPrice(changeItem.getNewPrice());
+					}
+					if (!StringUtils.isEmpty(changeItem.getNewDelivery())) {
+						orderInfoItem.setDelivery(changeItem.getNewDelivery());
+					}
 					purcOrderInfoItemDao.save(orderInfoItem);
 				}
 			}

+ 12 - 0
src/main/webapp/resources/js/index/app.js

@@ -24166,8 +24166,20 @@ define(['toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
             // 单选
             $scope.checkOne = function (order) {
                 order.checked = !order.checked;
+                if ((order.checked) && ($scope.checkedOrder != null) && ($scope.checkedOrder != order)) {
+                    $scope.checkedOrder.checked = false;
+                    angular.forEach($scope.checkedOrder.orderItems, function (item) {
+                        item.checked = false;
+                    });
+                    $scope.checkedOrder = null;
+                    checkItems = [];
+                }
                 if (order.checked) {
                     $scope.checkedOrder = order;
+                    angular.forEach(order.orderItems, function (item) {
+                        item.checked = true;
+                        checkItems.push(item);
+                    });
                 } else {
                     $scope.checkedOrder = null;
                     angular.forEach(order.orderItems, function (item) {

+ 1 - 1
src/main/webapp/resources/tpl/index/purc/modal/enableOrderList.html

@@ -221,7 +221,7 @@
                 ng-class="{'text-bold': order.display>0}">
                 <td class="text-center">
                     <input type="checkbox" ng-click="checkOne(order)" ng-checked="order.checked"
-                           ng-disabled="checkedOrder != null && checkedOrder.id != order.id" >
+                            >
                 </td>
                 <td class="first" colspan="4">
                     <div class="order-main">