1 年之前
父節點
當前提交
0be47b4e27

+ 3 - 0
platform-dao/src/main/java/com/platform/dao/mapper/longyanpurchaseorder/LongYanPurchaseOrderMapper.java

@@ -1,5 +1,6 @@
 package com.platform.dao.mapper.longyanpurchaseorder;
 
+import com.platform.dao.dto.longyanpurchaseorder.LongYanPurchaseDetailDTO;
 import com.platform.dao.dto.longyanpurchaseorder.LongYanPurchaseOrderDTO;
 import com.platform.dao.config.MyMapper;
 import com.platform.dao.entity.longyanpurchaseorder.LongYanPurchaseOrder;
@@ -21,6 +22,8 @@ import java.util.List;
  */
 @Component
 public interface LongYanPurchaseOrderMapper extends MyMapper<LongYanPurchaseOrder> {
+    void updateBatchPurchaseOrder(List<LongYanPurchaseOrder> list);
+
     List<LongYanPurchaseOrderByConditionReportVO> getReportByCptcode(LongYanPurchaseOrderDTO dto);
     List<LongYanPurchaseOrderByConditionReportVO> getReportByCbustype(LongYanPurchaseOrderDTO dto);
     List<LongYanPurchaseOrderByConditionReportVO> getReportByOldOrNew(LongYanPurchaseOrderDTO dto);

+ 2 - 1
platform-dao/src/main/resources/mapper/longyanpurchaseorder/LongYanPurchaseDetailMapper.xml

@@ -121,7 +121,8 @@ ORDER BY totalNum DESC
             update t_long_yan_purchase_detail detail left join t_long_yan_purchase_order orders
             on detail.long_yang_purchase_order_id = orders.id
             <set>  detail.`purchased_num` = #{item.purchasedNum},
-            detail.`in_store_num` = #{item.inStoreNum}
+            detail.`in_store_num` = #{item.inStoreNum},
+            detail.detail_status = #{item.detailStatus}
         </set>
             where orders.yong_you_id = #{item.yongYouId}
         </foreach>

+ 11 - 0
platform-dao/src/main/resources/mapper/longyanpurchaseorder/LongYanPurchaseOrderMapper.xml

@@ -178,4 +178,15 @@
         group by
         cdepcode
     </select>
+
+    <update id="updateBatchPurchaseOrder" parameterType="java.util.List">
+        <foreach collection="list" item="item" index="index" open="" close="" separator=";">
+            update t_long_yan_purchase_order orders
+
+            <set>  orders.`status` = #{item.status}
+
+            </set>
+            where orders.yong_you_id = #{item.yongYouId}
+        </foreach>
+    </update>
 </mapper>

+ 58 - 34
platform-service/src/main/java/handler/yongyou/PurchaseOrderModNoticeHandler.java

@@ -1,9 +1,14 @@
 package handler.yongyou;
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.google.gson.JsonArray;
 import com.platform.common.enums.DictTypeEnum;
+import com.platform.common.util.BeanConverterUtil;
 import com.platform.common.util.JsonUtils;
 import com.platform.common.util.R;
+import com.platform.dao.dto.longyanpurchaseorder.LongYanPurchaseDetailDTO;
+import com.platform.dao.dto.longyanpurchaseorder.LongYanPurchaseOrderDTO;
 import com.platform.dao.dto.upms.ThirdInfoLogDTO;
 import com.platform.dao.entity.longyanpurchaseorder.LongYanPurchaseDetail;
 import com.platform.dao.entity.longyanpurchaseorder.LongYanPurchaseOrder;
@@ -21,6 +26,7 @@ import tk.mybatis.mapper.weekend.WeekendCriteria;
 
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -36,36 +42,45 @@ public class PurchaseOrderModNoticeHandler extends BaseRequestHandler {
         setServiceType(DictTypeEnum.THIRD_PARTY_YONGYOU_ADDSPARE.getType());
     }
 
-
     @Override
-    public R successHandler(FromYongYouBaseRequest req) {
-        PurchaseOrderStatusModNoticeRequest request = (PurchaseOrderStatusModNoticeRequest)req;
-        List<PurchaseDetails> purchaseDetails = request.getPurchaseDetails();
-        List<String> spareNos = purchaseDetails.stream().map(PurchaseDetails::getSpareNo).collect(Collectors.toList());
-        LongYanPurchaseOrder order = new LongYanPurchaseOrder();
-        order.setYongYouId(request.getYongYouId());
-        order = longYanPurchaseOrderMapper.selectOne(order);
-        LongYanPurchaseDetail detail = new LongYanPurchaseDetail();
-        detail.setLongYangPurchaseOrderId(order.getId());
-        Weekend<LongYanPurchaseDetail> weekend = new Weekend(LongYanPurchaseDetail.class);
-        WeekendCriteria<LongYanPurchaseDetail,Object> weekendCriteria = weekend.weekendCriteria();
-        weekendCriteria.andEqualTo(LongYanPurchaseDetail::getLongYangPurchaseOrderId,order.getId());
-        weekendCriteria.andIn(LongYanPurchaseDetail::getNo,spareNos);
-        List<LongYanPurchaseDetail> details = longYanPurchaseDetailMapper.selectByExample(weekend);
-        int count = 0;
-        for (PurchaseDetails details1:purchaseDetails){
-            if (1==details1.getStatus()){//已入库
-                count++;
-            }
-            for (LongYanPurchaseDetail detail1: details){
-                if (detail1.getNo().equals(details1.getSpareNo())){
-                    detail1.setDetailStatus(details1.getStatus());
-                    detail1.setUpdateTime(LocalDateTime.now());
-                    longYanPurchaseDetailMapper.updateByPrimaryKeySelective(detail1);
-                    break;
+    public R successHandler(FromYongYouBaseRequest req,String reqStr) {
+        ToYongYouBaseResponse response = new ToYongYouBaseResponse();
+        R r = new R();
+        try {
+//        PurchaseOrderStatusModNoticeRequest request = (PurchaseOrderStatusModNoticeRequest)req;
+            List<PurchaseOrderStatusModNoticeRequest> requests = JSONArray.parseArray(reqStr, PurchaseOrderStatusModNoticeRequest.class);
+            List<LongYanPurchaseDetailDTO> updateDetails = new ArrayList<>();
+            List<LongYanPurchaseOrder> updateOrders = new ArrayList<>();
+            for (PurchaseOrderStatusModNoticeRequest request : requests) {
+                List<PurchaseDetails> purchaseDetails = request.getPurchaseDetails();
+                List<String> spareNos = purchaseDetails.stream().map(PurchaseDetails::getSpareNo).collect(Collectors.toList());
+                LongYanPurchaseOrder order = new LongYanPurchaseOrder();
+                order.setYongYouId(request.getYongYouId());
+                order = longYanPurchaseOrderMapper.selectOne(order);
+                LongYanPurchaseDetail detail = new LongYanPurchaseDetail();
+                detail.setLongYangPurchaseOrderId(order.getId());
+                Weekend<LongYanPurchaseDetail> weekend = new Weekend(LongYanPurchaseDetail.class);
+                WeekendCriteria<LongYanPurchaseDetail, Object> weekendCriteria = weekend.weekendCriteria();
+                weekendCriteria.andEqualTo(LongYanPurchaseDetail::getLongYangPurchaseOrderId, order.getId());
+                weekendCriteria.andIn(LongYanPurchaseDetail::getNo, spareNos);
+                List<LongYanPurchaseDetail> details = longYanPurchaseDetailMapper.selectByExample(weekend);
+                List<LongYanPurchaseDetailDTO> dtos = BeanConverterUtil.copyListProperties(details, LongYanPurchaseDetailDTO.class);
+                int count = 0;
+                for (PurchaseDetails details1 : purchaseDetails) {
+                    if (1 == details1.getStatus()) {//已入库
+                        count++;
+                    }
+                    for (LongYanPurchaseDetailDTO detail1 : dtos) {
+                        if (detail1.getNo().equals(details1.getSpareNo())) {
+                            detail1.setYongYouId(request.getYongYouId());
+                            detail1.setDetailStatus(details1.getStatus());
+                            detail1.setPurchasedNum(details1.getPurchasedNum());
+                            detail1.setInStoreNum(details1.getInStoreNum());
+                            updateDetails.add(detail1);
+                            break;
+                        }
+                    }
                 }
-            }
-        }
 //        if (count==0){
 //            order.setStatus(LongYanPurchaseOrderStatusEnum.not_in_store.getValue());
 //        }else if (count>0&&count<purchaseDetails.size()){
@@ -76,15 +91,24 @@ public class PurchaseOrderModNoticeHandler extends BaseRequestHandler {
 //        order.setStatus(request.getStatus());
 //        order.setRefuseRemark(request.getRemark());
 //        order.setUpdateTime(LocalDateTime.now());
-        longYanPurchaseOrderMapper.updateByPrimaryKeySelective(order);
-        ToYongYouBaseResponse response = new ToYongYouBaseResponse();
-        R r = new R();
-        response.setResult(true);
-        response.setMsg("成功");
-        r.setData(response);
+                order.setStatus(request.getOrderStatus());
+                updateOrders.add(order);
+            }
+            longYanPurchaseDetailMapper.updateBatchPurchaseDetails(updateDetails);
+            longYanPurchaseOrderMapper.updateBatchPurchaseOrder(updateOrders);
+            response.setResult(true);
+            response.setMsg("成功");
+            r.setData(response);
+        }catch (Exception e){
+            response.setResult(false);
+            response.setMsg("失败");
+            r.setData(response);
+        }
         return r;
     }
 
+
+
     /**
      * 获取分页数据
      * @param req

+ 1 - 0
platform-service/src/main/java/handler/yongyou/request/PurchaseOrderStatusModNoticeRequest.java

@@ -6,6 +6,7 @@ import java.util.List;
 
 @Data
 public class PurchaseOrderStatusModNoticeRequest extends FromYongYouBaseRequest {
+    private Integer orderStatus;
     private String yongYouId;
     private List<PurchaseDetails> purchaseDetails;