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

仓储业务保存bu时检测 提单号 在当前业务日是否出现多次

阿伏兔 4 лет назад
Родитель
Сommit
c714e925d3

+ 1 - 2
ruoyi-admin/src/main/java/com/ruoyi/web/controller/warehouse/warehouseBusiness/TWarehouseGoodsTransferController.java

@@ -105,10 +105,9 @@ public class TWarehouseGoodsTransferController extends BaseController {
         }
         if (StringUtils.isEmpty(mblnoStatus)) {
             // 判断是提单号是否在一天当中出现第二次或以上
-            AjaxResult result = itWarehouseBillsService.selectContainMblno(tWarehouseBills);
+            AjaxResult result = itWarehouseBillsService.selectContainMblno(tWarehouseBills, billsType);
             String ajaxCode = result.get("code").toString();
             if ("500".equals(ajaxCode)) {
-                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                 return result;
             }
         }

+ 3 - 4
ruoyi-admin/src/main/java/com/ruoyi/web/controller/warehouse/warehouseBusiness/TWarehouseInStockController.java

@@ -102,10 +102,9 @@ public class TWarehouseInStockController extends BaseController {
         }
         if (StringUtils.isEmpty(mblnoStatus)) {
             // 判断是提单号是否在一天当中出现第二次或以上
-            AjaxResult result = itWarehouseBillsService.selectContainMblno(tWarehouseBills);
-            String ajaxCode = result.get("code").toString();
-            if ("500".equals(ajaxCode)) {
-                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            AjaxResult result = itWarehouseBillsService.selectContainMblno(tWarehouseBills, billsType);
+            String data = result.get("data").toString();
+            if (StringUtils.isNotEmpty(data) && "false".equals(data)) {
                 return result;
             }
         }

+ 1 - 2
ruoyi-admin/src/main/java/com/ruoyi/web/controller/warehouse/warehouseBusiness/TWarehouseOutStockController.java

@@ -127,10 +127,9 @@ public class TWarehouseOutStockController extends BaseController {
         }
         if (StringUtils.isEmpty(mblnoStatus)) {
             // 判断是提单号是否在一天当中出现第二次或以上
-            AjaxResult result = itWarehouseBillsService.selectContainMblno(tWarehouseBills);
+            AjaxResult result = itWarehouseBillsService.selectContainMblno(tWarehouseBills, billsType);
             String ajaxCode = result.get("code").toString();
             if ("500".equals(ajaxCode)) {
-                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                 return result;
             }
         }

+ 1 - 2
ruoyi-admin/src/main/java/com/ruoyi/web/controller/warehouse/warehouseBusiness/TWarehouseStockTransferController.java

@@ -119,10 +119,9 @@ public class TWarehouseStockTransferController extends BaseController {
         }
         if (StringUtils.isEmpty(mblnoStatus)) {
             // 判断是提单号是否在一天当中出现第二次或以上
-            AjaxResult result = itWarehouseBillsService.selectContainMblno(warehouseBills);
+            AjaxResult result = itWarehouseBillsService.selectContainMblno(warehouseBills, billsType);
             String ajaxCode = result.get("code").toString();
             if ("500".equals(ajaxCode)) {
-                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                 return result;
             }
         }

+ 24 - 0
ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java

@@ -214,6 +214,30 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
     }
 
     /**
+     *  获取当天开始与结束日期
+     * @return
+     */
+    public static List<String> getSpecifyDay(Date date)
+    {
+        List<String> stringList = new ArrayList<>();
+        SimpleDateFormat format = new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS);
+        String firstday, lastday;
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+        calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
+        calendar.set(Calendar.MILLISECOND, 0);
+        Date dete1 = new Date(calendar.getTimeInMillis());//得到指定日期的开始时间
+        calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), 23, 59, 59);
+        calendar.set(Calendar.MILLISECOND, 999);
+        Date dete2 = new Date(calendar.getTimeInMillis());//得到指定日期的结束时间
+        firstday = format.format(dete1.getTime());
+        stringList.add(firstday);
+        lastday = format.format(dete2.getTime());
+        stringList.add(lastday);
+        return  stringList;
+    }
+
+    /**
      *  获取当前月份第一天与最后一天
      * @return
      */

+ 2 - 3
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/mapper/TWarehouseBillsMapper.java

@@ -103,9 +103,8 @@ public interface TWarehouseBillsMapper extends BaseMapper<TWarehouseBills> {
 
     /**
      *  根据提单号在当天时出现多少次
-     * @param getfMblno     提单号
-     * @param currentDay    当前日期
+     * @param warehouseBills     提单号
      * @return  结果
      */
-    public int selectContainMblno(@Param("mblNo") String getfMblno, @Param("currentDay") List<String> currentDay);
+    public int selectContainMblno(TWarehouseBills warehouseBills);
 }

+ 1 - 1
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/ITWarehouseBillsService.java

@@ -222,5 +222,5 @@ public interface ITWarehouseBillsService {
      * @param tWarehouseBills   仓库数据
      * @return  结果
      */
-    public AjaxResult selectContainMblno(String tWarehouseBills);
+    public AjaxResult selectContainMblno(String tWarehouseBills, String billsType);
 }

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

@@ -951,16 +951,16 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
      * @return  结果
      */
     @Override
-    public AjaxResult selectContainMblno(String tWarehouseBills) {
+    public AjaxResult selectContainMblno(String tWarehouseBills, String billsType) {
         TWarehouseBills warehouseBills = JSONArray.parseObject(tWarehouseBills, TWarehouseBills.class);
-        List<String> currentDay = DateUtils.getCurrentDay();
+        warehouseBills.setfBilltype(billsType);
         String mblno = warehouseBills.getfMblno();
         Date bsdate = warehouseBills.getfBsdate();
-        int count = tWarehouseBillsMapper.selectContainMblno(mblno, currentDay);
-        if (count > 1) {
-            return AjaxResult.error("提单号:" + mblno + ",日期:" + DateUtils.dateTime(bsdate) + ",出现" + count + "次");
+        int count = tWarehouseBillsMapper.selectContainMblno(warehouseBills);
+        if (count >= 1) {
+            return AjaxResult.success("提单号:" + mblno + ",日期:" + DateUtils.dateTime(bsdate) + ",出现" + count + "次", false);
         }
-        return AjaxResult.success();
+        return AjaxResult.success(true);
     }
 
     @Override

+ 42 - 42
ruoyi-warehouse/src/main/resources/mapper/warehouseBusiness/TWarehousebillsMapper.xml

@@ -573,45 +573,45 @@
 
     <select id="selectInventorySJCKList" parameterType="TWarehousebills"  resultType="java.util.Map">
         SELECT
-        co.f_name AS fName,
-        it.f_bsdate AS fBsdate,
-        leg.f_mblno AS fMblno,
-        it.f_business_type AS fBusinessType,
-        dict.dict_label AS fBusinessTypes,
-        it.f_marks AS fMarks ,
-        goo.f_name AS fGoodsName,
-        dicttr.dict_label AS fTrademodeid,
-        it.f_qty AS fQty,
-        it.f_grossweight AS fGrossweight,
-        it.f_netweight AS fNetweight,
-        CASE
-        it.f_billtype
-        WHEN 'SJRK' THEN
-        '入库'
-        WHEN 'SJCK' THEN
-        '出库'
-        WHEN 'CKDB' THEN
-        '调拨'
-        END AS fBilltype ,
-        CASE
-        it.f_billtype
-        WHEN 'SJRK' THEN
-        it.f_warehouse_information
-        WHEN 'SJCK' THEN
-        it.f_warehouse_information
-        WHEN 'CKDB' THEN
-        it.f_orgwarehouse_information
-        END AS fWarehouseLocationids
+            co.f_name AS fName,
+            it.f_bsdate AS fBsdate,
+            leg.f_mblno AS fMblno,
+            it.f_business_type AS fBusinessType,
+            dict.dict_label AS fBusinessTypes,
+            it.f_marks AS fMarks ,
+            goo.f_name AS fGoodsName,
+            dicttr.dict_label AS fTrademodeid,
+            it.f_qty AS fQty,
+            it.f_grossweight AS fGrossweight,
+            it.f_netweight AS fNetweight,
+            CASE
+            it.f_billtype
+            WHEN 'SJRK' THEN
+            '入库'
+            WHEN 'SJCK' THEN
+            '出库'
+            WHEN 'CKDB' THEN
+            '调拨'
+            END AS fBilltype ,
+            CASE
+            it.f_billtype
+            WHEN 'SJRK' THEN
+            it.f_warehouse_information
+            WHEN 'SJCK' THEN
+            it.f_warehouse_information
+            WHEN 'CKDB' THEN
+            it.f_orgwarehouse_information
+            END AS fWarehouseLocationids
         FROM
-        t_warehousebills leg
-        left join sys_user u on leg.create_by = u.user_name
-        left join sys_dept d on leg.f_bsdeptid = d.dept_id
-        LEFT JOIN t_warehousebillsitems it ON leg.f_id = it.f_pid
-        LEFT JOIN t_goods goo ON it.f_goodsid = goo.f_id
-        LEFT JOIN t_corps co ON leg.f_corpid = co.f_id
-        LEFT JOIN sys_dict_data dict ON dict.dict_value = it.f_business_type
-        LEFT JOIN t_warehouse ware ON ware.f_id = it.f_warehouselocid
-        LEFT JOIN sys_dict_data dicttr ON dicttr.dict_value = leg.f_trademodeid
+            t_warehousebills leg
+            left join sys_user u on leg.create_by = u.user_name
+            left join sys_dept d on leg.f_bsdeptid = d.dept_id
+            LEFT JOIN t_warehousebillsitems it ON leg.f_id = it.f_pid
+            LEFT JOIN t_goods goo ON it.f_goodsid = goo.f_id
+            LEFT JOIN t_corps co ON leg.f_corpid = co.f_id
+            LEFT JOIN sys_dict_data dict ON dict.dict_value = it.f_business_type
+            LEFT JOIN t_warehouse ware ON ware.f_id = it.f_warehouselocid
+            LEFT JOIN sys_dict_data dicttr ON dicttr.dict_value = leg.f_trademodeid
         <where>
             dict.status = '0'
             AND dict.dict_type = 'storage_type'
@@ -694,15 +694,15 @@
         </if>
     </select>
 
-    <select id="selectContainMblno" resultType="int">
+    <select id="selectContainMblno" parameterType="TWarehousebills" resultType="int">
         SELECT
             count( f_id )
         FROM
-            t_warehouse
+            t_warehousebills
         where
             f_mblno = #{mblNo}
-            AND f_bsdate &gt; #{currentDay[0]}
-            AND f_bsdate &lt; #{currentDay[1]}
+            AND f_bsdate = #{currentDay}
+            AND f_billtype = #{fBilltype}
     </select>
 
     <insert id="insertTWarehousebills" parameterType="TWarehousebills" useGeneratedKeys="true" keyProperty="fId">