Browse Source

凯和修改订单限制箱量和货物信息中的箱量一致,限制箱号不能重复

lazhaoqian 3 years ago
parent
commit
580fe5192c

+ 16 - 2
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/impl/TWarehouseBillsServiceImpl.java

@@ -2487,15 +2487,29 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         if (StringUtils.isNotEmpty(tWarehousebillsCntritems)) {
             JSONArray jsonCrArray = JSONArray.parseArray(tWarehousebillsCntritems);
             List<TWarehousebillsCntritems> tWarehousebillsCntritemsList = JSONObject.parseArray(jsonCrArray.toJSONString(), TWarehousebillsCntritems.class);
+            //获取货物信息
+            TWarehousebillsCntr warehousebillsCntr = tWarehousebillsCntrMapper.selectTWarehousebillsCntrByPId(warehouseBills.getfId());
+            if (warehousebillsCntr.getfCntrcount()< tWarehousebillsCntritemsList.size()){
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                return AjaxResult.error("箱信息中的箱量大于货物信息中的箱量");
+            }
             if (CollectionUtils.isNotEmpty(tWarehousebillsCntritemsList)) {
                 for (TWarehousebillsCntritems warehousebillsCntritems : tWarehousebillsCntritemsList) {
-                    TWarehousebillsCntr warehousebillsCntr = tWarehousebillsCntrMapper.selectTWarehousebillsCntrByPId(warehouseBills.getfId());
                     AjaxResult ajaxResult = this.judgeBoxPile(warehousebillsCntritems, warehousebillsCntr.getfCntrid());
                     String code = ajaxResult.get("code").toString();
                     if ("500".equals(code)) {
                         TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                         return ajaxResult;
                     }
+                    //先查箱号是否在对应的订单中存在存在不保存
+                    TWarehousebillsCntritems cntritems = new TWarehousebillsCntritems();
+                    cntritems.setfPid(warehouseBills.getfId());
+                    cntritems.setfCntrno(warehousebillsCntritems.getfCntrno());
+                    List<TWarehousebillsCntritems> list = tWarehousebillsCntritemsMapper.selectTWarehousebillsCntritemsList(cntritems);
+                    if (CollectionUtils.isNotEmpty(list)){
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                        return AjaxResult.error("箱号"+warehousebillsCntritems.getfCntrno()+"重复,请修改");
+                    }
                     warehousebillsCntritems.setfPid(warehouseBills.getfId());
                     warehousebillsCntritems.setCreateTime(DateUtils.getNowDate());
                     warehousebillsCntritems.setCreateBy(SecurityUtils.getUsername());
@@ -2558,11 +2572,11 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
             }
             map.put("warehousebillsfeesDrList", warehousebillsfeesDrList);
         }
+        int i = tWarehousebillsCntrMapper.deleteTWarehousebillsCntrfPid(warehouseBills.getfId());
         if (StringUtils.isNotEmpty(tWarehousebillsCntr) && !"[]".equals(tWarehousebillsCntr)){
             JSONArray jsonCrArray = JSONArray.parseArray(tWarehousebillsCntr);
             List<TWarehousebillsCntr> tWarehousebillsCntrList = JSONObject.parseArray(jsonCrArray.toJSONString(), TWarehousebillsCntr.class);
             if (CollectionUtils.isNotEmpty(tWarehousebillsCntrList)) {
-                int i = tWarehousebillsCntrMapper.deleteTWarehousebillsCntrfPid(warehouseBills.getfId());
                 for (TWarehousebillsCntr warehousebillsCntr : tWarehousebillsCntrList) {
                     warehousebillsCntr.setfPid(warehouseBills.getfId());
                     warehousebillsCntr.setCreateTime(DateUtils.getNowDate());