Jelajahi Sumber

Merge branch 'master' of http://git.dongkesoft.com:9001/iBOSS-2.0-Mini/iboss-server-mdm

于继渤 1 tahun lalu
induk
melakukan
4c1c08d72b

+ 5 - 4
src/main/java/com/dk/mdm/mapper/ivt/InboundItemMapper.xml

@@ -1074,10 +1074,11 @@
     <!--查询当前订单下是否存在退货单-->
     <select id="selectHasReturn" resultType="Long">
         SELECT count(1)
-        FROM dkic_b.t_psi_inbound_item
-        where flg_valid = #{flgValid}
-          AND s_pur_id = #{sPurId,typeHandler=UuidTypeHandler}
-          AND into_type = #{intoType}
+        FROM dkic_b.t_psi_inbound_item ti
+                 left join dkic_b.t_psi_inbound t on t.into_id = ti.into_id
+        where t.flg_valid = #{flgValid}
+          AND ti.s_pur_id = #{sPurId,typeHandler=UuidTypeHandler}
+          AND ti.into_type = #{intoType}
     </select>
 
 </mapper>

+ 5 - 4
src/main/java/com/dk/mdm/mapper/ivt/OutboundItemMapper.xml

@@ -862,10 +862,11 @@ sys.f_remove_zero(out_qty) as out_qty, out_amt, sys.f_remove_zero(return_qty) as
     <!--查询当前订单下是否存在退货单-->
     <select id="selectHasReturn" resultType="Long">
         SELECT count(1)
-        FROM dkic_b.t_psi_outbound_item
-        where flg_valid = #{flgValid}
-          AND s_order_id = #{sOrderId, typeHandler=UuidTypeHandler}
-          AND out_type = #{outType}
+        FROM dkic_b.t_psi_outbound_item ti
+                 left join dkic_b.t_psi_outbound t on  t.out_id = ti.out_id
+        where t.flg_valid = #{flgValid}
+          AND ti.s_order_id = #{sOrderId, typeHandler=UuidTypeHandler}
+          AND ti.out_type = #{outType}
     </select>
 
 </mapper>

+ 5 - 1
src/main/java/com/dk/mdm/service/ivt/inbound/InboundOtherService.java

@@ -312,6 +312,8 @@ public class InboundOtherService extends BaseService<Inbound> {
                         //endregion
 
                         InboundItem inboundItem = new InboundItem();
+                        inboundItem.setWhId(inboundItemVO.getWhId());
+                        inboundItem.setNonStdCode(inboundItemVO.getNonStdCode());
                         inboundItem.setItemId(inboundItemVO.getItemId());
                         inboundItem.setIntoQty(inboundItemVO.getIntoingQty());
                         inboundItem.setIntoAmt(inboundItemVO.getIntoingAmt());
@@ -384,7 +386,7 @@ public class InboundOtherService extends BaseService<Inbound> {
                 );
                 //endregion
 
-                //region  todo调用库存
+                //region  调用库存
                 Map<String, Object> map = new HashMap<>();
                 map.put("intoDetail", inboundVO.getItemList());
                 map.put("delIntoDetail", inboundVO.getDeleteItemList());
@@ -403,6 +405,8 @@ public class InboundOtherService extends BaseService<Inbound> {
                         //region 编辑赋值
                         InboundItem inboundItem = new InboundItem();
                         inboundItem.setItemId(inboundItemVO.getItemId());
+                        inboundItem.setWhId(inboundItemVO.getWhId());
+                        inboundItem.setNonStdCode(inboundItemVO.getNonStdCode());
                         inboundItem.setIntoingQty(inboundItemVO.getIntoingQty());
                         inboundItem.setIntoingAmt(inboundItemVO.getIntoingAmt());
                         //修改

+ 19 - 12
src/main/java/com/dk/mdm/service/ivt/outbound/OutboundSaleOrderService.java

@@ -186,6 +186,12 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
                     //查询库存是否存在
                     InventoryResponse inventoryResponse = this.checkInventoryExist(outboundItemVO);
                     if (inventoryResponse != null) {
+                        //库存量小于本次出库数量
+                        if(inventoryResponse.getInvQty().compareTo(outboundItemVO.getOutingQty())<0){
+                            throw new BaseBusinessException(ErrorCodeEnum.SKU_IS_NOT_IN_INVENTORY.getCode(),
+                                    ErrorCodeEnum.SKU_IS_NOT_IN_INVENTORY.getMessage());
+                        }
+                        //region  todo  2024年7月10日14:36:47  严格按照库存数量足够额为准
                         BigDecimal invQty = inventoryResponse.getInvQty().subtract(outboundItemVO.getOutingQty());
                         // (库存量  大于等于  本次出库数量不用做任何处理)
                         //库存量 小于  本次出库数量
@@ -194,6 +200,7 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
                             //不够库存数量----新建出库中数量
                             outboundItemVO.setNotEnoughInventoryQty(invQty.abs());
                         }
+                        //endregion
                     } else {
                         //todo 2024年7月2日09:23:38 修改成无库存不允许出库
 //                        //不够库存数量----新建出库中数量
@@ -554,7 +561,7 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
                 int countRow = orderItemMapper.updateById(orderItem);
                 //数量超出
                 if (countRow == 0) {
-                    throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INVENTORY_QUANTITY_EXCEEDED_OUTBOUND.getMessage());
+                    throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.UPDATE_ORDER_ERROR.getMessage());
                 }
             }
             //endregion
@@ -801,7 +808,7 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
                         int countRow = orderItemMapper.updateById(orderItem);
                         //数量超出
                         if (countRow == 0) {
-                            throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INVENTORY_QUANTITY_EXCEEDED_OUTBOUND.getMessage());
+                            throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.UPDATE_ORDER_ERROR.getMessage());
                         }
                     }
                     //endregion
@@ -846,7 +853,7 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
                             int countRow = orderItemMapper.updateById(orderItem);
                             //数量超出
                             if (countRow == 0) {
-                                throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INVENTORY_QUANTITY_EXCEEDED_OUTBOUND.getMessage());
+                                throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.UPDATE_ORDER_ERROR.getMessage());
                             }
                         }
                         //endregion
@@ -978,7 +985,7 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
                         int countRow = orderItemMapper.updateById(orderItem);
                         //数量超出
                         if (countRow == 0) {
-                            throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INVENTORY_QUANTITY_EXCEEDED_OUTBOUND.getMessage());
+                            throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.UPDATE_ORDER_ERROR.getMessage());
                         }
                     }
                     //endregion
@@ -1012,7 +1019,7 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
                             int countRow = orderItemMapper.updateById(orderItem);
                             //数量超出
                             if (countRow == 0) {
-                                throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INVENTORY_QUANTITY_EXCEEDED_OUTBOUND.getMessage());
+                                throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.UPDATE_ORDER_ERROR.getMessage());
                             }
                         }
                         //endregion
@@ -1260,7 +1267,7 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
                     int countRow = orderItemMapper.updateById(orderItem);
                     //数量超出
                     if (countRow == 0) {
-                        throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INVENTORY_QUANTITY_EXCEEDED_OUTBOUND.getMessage());
+                        throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.UPDATE_ORDER_ERROR.getMessage());
                     }
                 }
                 //endregion
@@ -1336,7 +1343,7 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
                     int countRow = orderItemMapper.updateById(orderItem);
                     //数量超出
                     if (countRow == 0) {
-                        throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INVENTORY_QUANTITY_EXCEEDED_OUTBOUND.getMessage());
+                        throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.UPDATE_ORDER_ERROR.getMessage());
                     }
                 }
                 //endregion
@@ -1555,7 +1562,7 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
                 int countRow = orderItemMapper.updateById(orderItem);
                 //数量超出
                 if (countRow == 0) {
-                    throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INVENTORY_QUANTITY_EXCEEDED_OUTBOUND.getMessage());
+                    throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.UPDATE_ORDER_ERROR.getMessage());
                 }
             }
             //endregion
@@ -1603,7 +1610,7 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
                     int countRow = orderItemMapper.updateById(orderItem);
                     //数量超出
                     if (countRow == 0) {
-                        throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INVENTORY_QUANTITY_EXCEEDED_OUTBOUND.getMessage());
+                        throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.UPDATE_ORDER_ERROR.getMessage());
                     }
                 }
                 //endregion
@@ -1829,7 +1836,7 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
                 int countRow = orderItemMapper.updateById(orderItem);
                 //数量超出
                 if (countRow == 0) {
-                    throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INVENTORY_QUANTITY_EXCEEDED_OUTBOUND.getMessage());
+                    throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.UPDATE_ORDER_ERROR.getMessage());
                 }
             }
             //endregion
@@ -1994,7 +2001,7 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
                             int countRow = orderItemMapper.updateById(orderItem);
                             //数量超出
                             if (countRow == 0) {
-                                throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INVENTORY_QUANTITY_EXCEEDED_OUTBOUND.getMessage());
+                                throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.UPDATE_ORDER_ERROR.getMessage());
                             }
                         }
                         //endregion
@@ -2070,7 +2077,7 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
                             int countRow = orderItemMapper.updateById(orderItem);
                             //数量超出
                             if (countRow == 0) {
-                                throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INVENTORY_QUANTITY_EXCEEDED_OUTBOUND.getMessage());
+                                throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.UPDATE_ORDER_ERROR.getMessage());
                             }
                         }
                         //endregion

+ 38 - 15
src/main/java/com/dk/mdm/service/pur/PurchaseService.java

@@ -6,49 +6,45 @@ import com.dk.common.exception.BaseBusinessException;
 import com.dk.common.infrastructure.annotaiton.Pagination;
 import com.dk.common.infrastructure.constant.Constant;
 import com.dk.common.infrastructure.enums.ErrorCodeEnum;
+import com.dk.common.mapper.BaseMapper;
 import com.dk.common.model.pojo.PageList;
 import com.dk.common.response.ResponseCodeEnum;
 import com.dk.common.response.ResponseResultUtil;
 import com.dk.common.response.ResponseResultVO;
+import com.dk.common.service.BaseService;
 import com.dk.mdm.infrastructure.convert.ivt.InboundConvert;
 import com.dk.mdm.infrastructure.convert.ivt.InboundItemConvert;
 import com.dk.mdm.infrastructure.convert.pur.PurChaseConvert;
 import com.dk.mdm.infrastructure.convert.pur.PurChaseItemConvert;
+import com.dk.mdm.infrastructure.util.AuthUtils;
 import com.dk.mdm.mapper.common.CommonMapper;
 import com.dk.mdm.mapper.ivt.InboundItemMapper;
 import com.dk.mdm.mapper.ivt.InboundMapper;
-import com.dk.mdm.mapper.ivt.InventoryMapper;
 import com.dk.mdm.mapper.mst.GoodsSkuMapper;
 import com.dk.mdm.mapper.pur.PurchaseItemMapper;
-import com.dk.mdm.model.pojo.mst.GoodsSku;
-import com.dk.mdm.model.pojo.pur.Purchase;
 import com.dk.mdm.mapper.pur.PurchaseMapper;
-import com.dk.common.service.BaseService;
-import com.dk.common.mapper.BaseMapper;
+import com.dk.mdm.model.pojo.pur.Purchase;
 import com.dk.mdm.model.pojo.pur.PurchaseItem;
-import com.dk.mdm.model.pojo.sale.Order;
 import com.dk.mdm.model.query.ivt.InboundItemQuery;
-import com.dk.mdm.model.query.ivt.InventoryQuery;
+import com.dk.mdm.model.query.ivt.InboundQuery;
+import com.dk.mdm.model.query.ivt.OutboundQuery;
 import com.dk.mdm.model.query.pur.PurchaseItemQuery;
 import com.dk.mdm.model.query.pur.PurchaseQuery;
-import com.dk.mdm.model.response.ivt.InboundItemResponse;
-import com.dk.mdm.model.response.ivt.InventoryResponse;
+import com.dk.mdm.model.response.ivt.InboundResponse;
+import com.dk.mdm.model.response.ivt.OutboundResponse;
 import com.dk.mdm.model.response.mst.GoodsSkuResponse;
 import com.dk.mdm.model.response.pur.PurchaseItemResponse;
 import com.dk.mdm.model.response.pur.PurchaseResponse;
 import com.dk.mdm.model.vo.ivt.InboundItemVO;
 import com.dk.mdm.model.vo.ivt.InboundVO;
-import com.dk.mdm.model.vo.ivt.OutboundItemVO;
-import com.dk.mdm.model.vo.ivt.OutboundVO;
 import com.dk.mdm.model.vo.pur.PurchaseItemVO;
 import com.dk.mdm.model.vo.pur.PurchaseVO;
 import com.dk.mdm.service.common.CommonService;
 import com.dk.mdm.service.ivt.inbound.InboundItemService;
-import com.dk.mdm.service.ivt.inbound.InboundPurchaseReturnService;
 import com.dk.mdm.service.ivt.inbound.InboundPurchaseService;
 import com.dk.mdm.service.ivt.inbound.InboundService;
-import org.springframework.stereotype.Service;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
@@ -112,6 +108,12 @@ public class PurchaseService extends BaseService<Purchase> {
     @Autowired
     private InboundItemMapper inboundItemMapper;
 
+    @Autowired
+    private AuthUtils authUtils;
+
+    @Autowired
+    private InboundMapper inboundMapper;
+
     /**
      * @desc : 条件查询
      * @author : 常皓宁
@@ -388,8 +390,29 @@ public class PurchaseService extends BaseService<Purchase> {
                 purchaseItemService.updataById(purchaseItem);
             }
         }
-        return ResponseResultUtil.success(super.update(purchase, new UpdateWrapper<Purchase>().lambda().eq(Purchase::getPurId,
-                UUID.fromString(purchase.getPurId ()))));
+        super.update(purchase, new UpdateWrapper<Purchase>().lambda().eq(Purchase::getPurId,
+                UUID.fromString(purchase.getPurId ())));
+
+        //region采购订单转入库编辑
+        String gradeCode = authUtils.getStaff().getGradeCode();
+        if (Constant.GradeCode.STD.getName().equals(gradeCode)) {
+            //自动入库
+            if (purchasevo.getInboundProcessingFlag() != null && purchasevo.getInboundProcessingFlag()) {
+                //标准版 只有一个入库单  所以get0 就可以 且 编辑采购订单得时候 一定是有入库单的
+                List<InboundResponse> inboundResponseList = inboundMapper.selectByCond(new InboundQuery().setFromId(purchasevo.getPurId()));
+                //存在入库单
+                if(inboundResponseList!=null && inboundResponseList.size()>0){
+                    InboundResponse inboundResponse = inboundResponseList.get(0);
+
+                }
+
+
+            }
+        }
+        //endregion
+
+
+        return ResponseResultUtil.success();
     }
 
     /**