Browse Source

2024年4月22日17:36:45

纪新园 1 year ago
parent
commit
5af821e2f8

+ 1 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/reportManagement/mapper/TWhgenlegMapper.java

@@ -91,6 +91,7 @@ public interface TWhgenlegMapper {
      * @return 结果
      */
     public int updateTWhgenlegData(@Param("map") Map<String, Object> map);
+    public int updateTWhgenlegDataNew(@Param("map") Map<String, Object> map);
 
     List<Map<String, Object>> selectInventoryList(TWhgenleg tWhgenleg);
 

+ 14 - 2
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/component/impl/QueryWhgenlegServiceImpl.java

@@ -218,9 +218,21 @@ public class QueryWhgenlegServiceImpl implements QueryWhgenlegService {
         whgenleg.setfCorpid(warehouseBills.getfCorpid());
         // 贸易方式
         if (operate.equals(WarehouseTypeEnum.CONFIRM_OPERATION.getType()) && !frequency.equals(FIRST)) {
-            whgenleg.setfTrademodeid(warehouseBills.getfNewTrademodeid());
+            if (WarehouseTypeEnum.HWTG.getType().equals(warehouseBills.getfBilltype())){
+                whgenleg.setfTrademodeid(warehouseBills.getfTrademodeid());
+            }else{
+                whgenleg.setfTrademodeid(warehouseBills.getfNewTrademodeid());
+            }
         } else {
-            whgenleg.setfTrademodeid(warehouseBills.getfTrademodeid());
+            if (WarehouseTypeEnum.HWTG.getType().equals(warehouseBills.getfBilltype())){
+                if (operate.equals(WarehouseTypeEnum.CONFIRM_OPERATION.getType())){
+                    whgenleg.setfTrademodeid(warehouseBills.getfTrademodeid());
+                }else{
+                    whgenleg.setfTrademodeid(warehouseBills.getfNewTrademodeid());
+                }
+            }else{
+                whgenleg.setfTrademodeid(warehouseBills.getfTrademodeid());
+            }
         }
         // 提单号
         whgenleg.setfMblno(item.getfMblno());

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

@@ -4842,6 +4842,22 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                     } else { // 4、 存在 进行跟新库存
                         updateTWhgenlegData(wbItem, tWhgenle1.getfId(), WarehouseTypeEnum.SJRK.getType());
                     }
+                } else {
+                    if (WarehouseTypeEnum.HWTG.getType().equals(billsType)) {
+                        /*//  1、  库存 <  调拨件数  提示库存不足
+                        judgeItemQty(tWhgenle, wbItem, i);
+                        // 2、 库存足够 先 进行出库操作
+                        updateTWhgenlegData(wbItem, tWhgenle.getfId(), WarehouseTypeEnum.SJCK.getType());*/
+                        // 3、 进行入库操作 查询是否存在库存
+                        TWhgenleg tWhgenle1 = queryWhgenlegService.secondStockWhgenleg(tWarehouseBills, wbItem, goods.getIfCntrno(), WarehouseTypeEnum.NOT_JUDGE_BOX.getType());
+//                    throw new RuntimeException("......");
+                        if (StringUtils.isNull(tWhgenle1)) {   // 5、 不存在 进行新增库存
+                            throw new RuntimeException("未查到库存");
+//                            instalTWhgenleg(tWarehouseBills, wbItem);
+                        } else { // 4、 存在 进行跟新库存
+                            updateTWhgenlegDataNew(tWarehouseBills, wbItem, tWhgenle1.getfId(), WarehouseTypeEnum.SJRK.getType());
+                        }
+                    }
                 }
                 wbItem.setfBillstatus(40L);
             } else if (WarehouseTypeEnum.HQZY.getType().equals(billsType)) { // 货转
@@ -5087,6 +5103,16 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         return AjaxResult.success("成功", map);
     }
 
+    @Transactional
+    public int updateTWhgenlegDataNew(TWarehouseBills tWarehouseBills, TWarehousebillsitems warehousebillsitems, long whgenlegId, String billtype) {
+        Map<String, Object> map = new HashMap<>();
+        map.put("whgenlegId", whgenlegId);
+        map.put("billType", billtype);
+        map.put("tWarehouseBills", tWarehouseBills);
+        map.put("warehousebillsitems", warehousebillsitems);
+        return tWhgenlegMapper.updateTWhgenlegDataNew(map);
+    }
+
     /**
      * 判断数量、毛重、净重是否超出库存总帐
      *
@@ -5691,7 +5717,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                     BigDecimal grossweightblc;
                     if (Objects.equals(item.getfTransferWarehouselocid(), whgenleg.getfWarehouseid())) {
                         // 修改数量
-                        whgenleg.setfQtyblc(whgenleg.getfQtyblc().subtract(item.getfQty())  );
+                        whgenleg.setfQtyblc(whgenleg.getfQtyblc().subtract(item.getfQty()));
                         // 修改毛重
                         grossweightblc = whgenleg.getfGrossweightblc().subtract(item.getfGrossweight()).setScale(2, RoundingMode.HALF_UP);
                         // 修改净重
@@ -5715,7 +5741,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
 
                         if (Objects.equals(item.getfTocorpid(), whgenleg.getfCorpid())) {
                             // 修改数量
-                            whgenleg.setfQtyblc(whgenleg.getfQtyblc().subtract(item.getfQty()) );
+                            whgenleg.setfQtyblc(whgenleg.getfQtyblc().subtract(item.getfQty()));
                             // 修改毛重
                             grossweightblc = whgenleg.getfGrossweightblc().subtract(item.getfGrossweight()).setScale(2, RoundingMode.HALF_UP);
                             // 修改净重
@@ -7646,6 +7672,17 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                         // 查询库存总账
                         TWhgenleg whgenleg = queryWhgenlegService.stockWhgenleg(tWarehousebills, wb, goods.getIfCntrno(), WarehouseTypeEnum.UNDO_OPERATION.getType());
                         updateTWhgenlegData(wb, whgenleg.getfId(), WarehouseTypeEnum.SJCK_REVOKE.getType());
+                    }else{
+                        TWhgenleg whgenleg = queryWhgenlegService.stockWhgenleg(tWarehousebills, wb, goods.getIfCntrno(), WarehouseTypeEnum.UNDO_OPERATION.getType());
+                        if (StringUtils.isNotNull(whgenleg) && (wb.getfQty().compareTo(whgenleg.getfQtyblc()) <= 0)) {
+                            updateTWhgenlegDataNew(tWarehousebills,wb, whgenleg.getfId(), WarehouseTypeEnum.SJRK_REVOKE.getType());
+                        } else {
+                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                            return AjaxResult.error("第" + i + "行撤销数大于库存结余数");
+                        }
+                      /*  //  2、原货权方撤销出库
+                        // 查询库存总账
+                        updateTWhgenlegData(wb, whgenleg.getfId(), WarehouseTypeEnum.SJCK_REVOKE.getType());*/
                     }
                     wb.setfBillstatus(10L);
                 } else if (WarehouseTypeEnum.HQZY_REVOKE.getType().equals(billsType)) { // 货转撤销
@@ -7658,7 +7695,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                     // 查询库存总账
                     tWarehousebills.setfCorpid(fTocorpid);
                     TWhgenleg tWhgenle1 = queryWhgenlegService.secondStockWhgenleg(tWarehousebills, wb, goods.getIfCntrno(), WarehouseTypeEnum.CONFIRM_OPERATION.getType());
-                    if (StringUtils.isNotNull(tWhgenle1) && (wb.getfQty().compareTo(tWhgenle1.getfQtyblc()) <=0 )) {
+                    if (StringUtils.isNotNull(tWhgenle1) && (wb.getfQty().compareTo(tWhgenle1.getfQtyblc()) <= 0)) {
                         updateTWhgenlegData(wb, tWhgenle1.getfId(), WarehouseTypeEnum.SJRK_REVOKE.getType());
                     } else {
                         TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -9020,7 +9057,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
             //校验计费日期是等于库存总帐计费日,如果不相等则报错
             checkWhgenleg(item, tWhgenle);
             //  库存 <  出库件数
-            if (tWhgenle.getfQtyblc().compareTo(item.getfQty()) <0 ) {
+            if (tWhgenle.getfQtyblc().compareTo(item.getfQty()) < 0) {
                 throw new WarehouseException("库存明细第" + line + "行库存不足");
             }
             // 更新库存总账
@@ -10177,7 +10214,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
             tWarehousebillsitemsElabel.setfType(1);
             tWarehousebillsitemsElabel.setfStatus(2);
             List<TWarehousebillsitemsElabel> tWarehousebillsitemsElabelList = elabelMapper.selectList(tWarehousebillsitemsElabel);
-            if (!warehousebillsitems.getfQty().equals(new BigDecimal(tWarehousebillsitemsElabelList.size())) ) {
+            if (!warehousebillsitems.getfQty().equals(new BigDecimal(tWarehousebillsitemsElabelList.size()))) {
                 return AjaxResult.error("入库件数:" + warehousebillsitems.getfQty() + "与标签码数量:" + tWarehousebillsitemsElabelList.size() + "不一致,不允许入库");
             }
 
@@ -10238,7 +10275,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
             tWarehousebillsitemsElabel.setfType(2);
             tWarehousebillsitemsElabel.setfStatus(2);
             List<TWarehousebillsitemsElabel> tWarehousebillsitemsElabelList = elabelMapper.selectList(tWarehousebillsitemsElabel);
-            if (!warehousebillsitems.getfQty().equals(new BigDecimal(tWarehousebillsitemsElabelList.size()))  ) {
+            if (!warehousebillsitems.getfQty().equals(new BigDecimal(tWarehousebillsitemsElabelList.size()))) {
                 return AjaxResult.error("出库件数:" + warehousebillsitems.getfQty() + "与标签码数量:" + tWarehousebillsitemsElabelList.size() + "不一致,不允许出库");
             }
             // 跟新库存总账

+ 23 - 0
ruoyi-warehouse/src/main/resources/mapper/reportManagement/TWhgenlegMapper.xml

@@ -1980,4 +1980,27 @@
             unlock_time = now()
             where f_id = #{fId}
     </update>
+    <update id="updateTWhgenlegDataNew" parameterType="Map">
+        update t_whgenleg
+        <trim prefix="SET" suffixOverrides=",">
+            /*判断是否入库*/
+            <if test="map.billType == 'SJRK'">
+                <if test="map.tWarehouseBills.fNewTrademodeid != null">f_trademodeid = #{map.tWarehouseBills.fNewTrademodeid},</if>
+                f_chargedate = #{map.warehousebillsitems.fBsdate},
+                checklists = #{map.warehousebillsitems.checklists}
+                <if test="map.warehousebillsitems.fCustomno != null  and map.warehousebillsitems.fCustomno != ''">
+                    ,f_customno = #{map.warehousebillsitems.fCustomno}
+                </if>
+                <if test="map.warehousebillsitems.remark != null  and map.warehousebillsitems.remark != ''">
+                    ,remark = #{map.warehousebillsitems.remark}
+                </if>
+            </if>
+            /*判断是否撤销入库*/
+            <if test="map.billType == 'SJRKRevoke'">
+                <if test="map.tWarehouseBills.fTrademodeid != null">f_trademodeid = #{map.tWarehouseBills.fTrademodeid}</if>
+            </if>
+            -- update_by = NOW()
+        </trim>
+        where f_id = #{map.whgenlegId}
+    </update>
 </mapper>