Przeglądaj źródła

采购一键作废
采购编辑
销售退货编辑成本金额和成本单价

koushanshan 1 rok temu
rodzic
commit
d8ed5770fd

+ 10 - 1
src/main/java/com/dk/mdm/mapper/pur/PurchaseItemMapper.xml

@@ -565,7 +565,16 @@
             </if>
         </set>
         where item_id = #{et.itemId,typeHandler=UuidTypeHandler}
-        and  item_qty >= (into_qty + intoing_qty)
+        and  item_qty >= (
+        into_qty
+        <if test=" et!=null and et.updateIntoMessageFlag != null and et.updateIntoMessageFlag ">
+            + #{et.intoQty,jdbcType=NUMERIC}
+        </if>
+        + intoing_qty
+        <if test=" et!=null and et.updateIntoingMessageFlag != null and et.updateIntoingMessageFlag ">
+            + #{et.intoingQty,jdbcType=NUMERIC}
+        </if>
+        )
     </update>
 
 </mapper>

+ 10 - 1
src/main/java/com/dk/mdm/mapper/pur/PurchaseMapper.xml

@@ -800,7 +800,16 @@
             </if>
         </set>
         where pur_id = #{et.purId,typeHandler=UuidTypeHandler}
-        and  sum_quantity >= (into_qty + intoing_qty)
+        and sum_quantity >= (
+        into_qty
+        <if test=" et!=null and et.updateIntoMessageFlag != null and et.updateIntoMessageFlag ">
+            + #{et.intoQty,jdbcType=NUMERIC}
+        </if>
+        + intoing_qty
+        <if test=" et!=null and et.updateIntoingMessageFlag != null and et.updateIntoingMessageFlag ">
+            + #{et.intoingQty,jdbcType=NUMERIC}
+        </if>
+        )
     </update>
 
     <!-- 采购跟踪-->

+ 1 - 0
src/main/java/com/dk/mdm/model/pojo/pur/Purchase.java

@@ -405,6 +405,7 @@ public class Purchase extends PageInfo<Purchase> implements Serializable {
     private Boolean updateIntoingMessageFlag;
 
 
+
     private static final long serialVersionUID = 1L;
 
 }

+ 10 - 0
src/main/java/com/dk/mdm/model/pojo/pur/PurchaseItem.java

@@ -325,6 +325,16 @@ public class PurchaseItem extends PageInfo<PurchaseItem> implements Serializable
      * @TableField(exist = false)
      */
 
+    @TableField(exist = false)
+    @ApiModelProperty(value = "采购编辑已入库入库单信息标识 true走特殊处理,false不走特殊处理")
+    private Boolean updateIntoMessageFlag;
+
+
+
+    @TableField(exist = false)
+    @ApiModelProperty(value = "采购编辑入库中入库单信息标识 true走特殊处理,false不走特殊处理")
+    private Boolean updateIntoingMessageFlag;
+
 
     private static final long serialVersionUID = 1L;
 

+ 50 - 54
src/main/java/com/dk/mdm/service/ivt/inbound/InboundPurchaseService.java

@@ -410,6 +410,7 @@ public class InboundPurchaseService extends BaseService<Inbound> {
      */
     @Transactional(rollbackFor = {Exception.class})
     public ResponseResultVO<?> purchaseInboundUpdate(InboundVO inboundVO) {
+        String gradeCode = authUtils.getStaff().getGradeCode();
 
         //region 小编辑
         if (!inboundVO.getLimitEdit()) {
@@ -455,8 +456,7 @@ public class InboundPurchaseService extends BaseService<Inbound> {
                 //endregion
 
                 //region 修改明细
-                List<InboundItemVO> itemList = inboundVO.getItemList();
-                for (InboundItemVO inboundItemVO : itemList) {
+                for (InboundItemVO inboundItemVO : inboundVO.getItemList()) {
                     //根据id查询
                     InboundItemResponse inboundItemResponse = inboundItemMapper.selectById(inboundItemVO.getItemId());
 
@@ -492,6 +492,10 @@ public class InboundPurchaseService extends BaseService<Inbound> {
                                 new UpdateWrapper<InboundItem>().lambda()
                                         .eq(InboundItem::getItemId, UUID.fromString(inboundItem.getItemId()))
                         );
+
+                        //反算上游单据时小将这两个值清空
+                        inboundItemVO.setIntoingQty(BigDecimal.ZERO);
+                        inboundItemVO.setIntoingAmt(BigDecimal.ZERO);
                     }
                     //endregion
 
@@ -522,14 +526,17 @@ public class InboundPurchaseService extends BaseService<Inbound> {
                     }
                     //endregion
 
-                    //region  销售明细
+                    //region  采购明细
                     if (inboundItemVO.getFromItemId() != null) {
                         //根据id查询
                         PurchaseItemResponse purchaseItemResponse = purchaseItemMapper.selectById(inboundItemVO.getFromItemId());
                         PurchaseItem purchaseItem = new PurchaseItem();
                         purchaseItem.setItemId(inboundItemVO.getFromItemId());
-                        purchaseItem.setIntoQty(inboundItemResponse.getIntoQty().negate().add(inboundItemVO.getIntoQty()));
-                        purchaseItem.setIntoAmt(inboundItemResponse.getIntoAmt().negate().add(inboundItemVO.getIntoAmt()));
+                        purchaseItem.setIntoQty((purchaseItemResponse != null ? purchaseItemResponse.getIntoQty().negate() : BigDecimal.ZERO).add(inboundItemVO.getIntoQty()));
+                        purchaseItem.setIntoAmt((purchaseItemResponse != null ? purchaseItemResponse.getIntoAmt().negate() : BigDecimal.ZERO).add(inboundItemVO.getIntoAmt()));
+                        purchaseItem.setIntoingQty((purchaseItemResponse != null && purchaseItemResponse.getIntoingQty().compareTo(BigDecimal.ZERO) > 0) ? inboundItemVO.getIntoQty().negate() : BigDecimal.ZERO);
+                        purchaseItem.setIntoingAmt((purchaseItemResponse != null && purchaseItemResponse.getIntoingAmt().compareTo(BigDecimal.ZERO) > 0) ? inboundItemVO.getIntoAmt().negate() : BigDecimal.ZERO);
+                        purchaseItem.setUpdateIntoMessageFlag(true);
                         //入库状态
                         String intoStatus = this.setIntoStatus(purchaseItemResponse.getIntoingQty(),
                                 purchaseItemResponse.getIntoQty().add(purchaseItem.getIntoQty()), purchaseItemResponse.getItemQty());
@@ -545,11 +552,7 @@ public class InboundPurchaseService extends BaseService<Inbound> {
                 //endregion
 
                 //region 删除明细
-                BigDecimal delIntoQty = BigDecimal.ZERO;
-                BigDecimal delIntoAmt = BigDecimal.ZERO;
                 if (inboundVO.getDeleteItemList() != null && inboundVO.getDeleteItemList().size() > 0) {
-                    delIntoQty = inboundVO.getDeleteItemList().stream().map(InboundItemVO::getIntoQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
-                    delIntoAmt = inboundVO.getDeleteItemList().stream().map(InboundItemVO::getIntoAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
                     for (InboundItemVO inboundItemVO : inboundVO.getDeleteItemList()) {
                         if (inboundItemVO.getItemId() != null) {
 
@@ -569,24 +572,24 @@ public class InboundPurchaseService extends BaseService<Inbound> {
                             );
                         }
 
-                        //region  销售明细
-                        if (inboundItemVO.getFromItemId() != null) {
-                            //根据id查询
-                            PurchaseItemResponse purchaseItemResponse = purchaseItemMapper.selectById(inboundItemVO.getFromItemId());
-                            PurchaseItem purchaseItem = new PurchaseItem();
-                            purchaseItem.setItemId(inboundItemVO.getFromItemId());
-                            purchaseItem.setIntoQty(inboundItemVO.getIntoQty().negate());
-                            purchaseItem.setIntoAmt(inboundItemVO.getIntoAmt().negate());
-                            purchaseItem.setIntoingQty(inboundItemVO.getIntoQty());
-                            purchaseItem.setIntoingAmt(inboundItemVO.getIntoAmt());
-                            //入库状态
-                            String intoStatus = this.setIntoStatus(purchaseItemResponse.getIntoingQty().add(purchaseItem.getIntoingQty()),
-                                    purchaseItemResponse.getIntoQty().add(purchaseItem.getIntoQty()), purchaseItemResponse.getItemQty());
-                            purchaseItem.setIntoStatus(intoStatus);
-                            int countRow = purchaseItemMapper.updateById(purchaseItem);
-                            //数量超出
-                            if (countRow == 0) {
-                                throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INVENTORY_QUANTITY_EXCEEDED.getMessage());
+                        //region  采购明细
+                        if (!Constant.GradeCode.STD.getName().equals(gradeCode)) {
+                            if (inboundItemVO.getFromItemId() != null) {
+                                //根据id查询
+                                PurchaseItemResponse purchaseItemResponse = purchaseItemMapper.selectById(inboundItemVO.getFromItemId());
+                                PurchaseItem purchaseItem = new PurchaseItem();
+                                purchaseItem.setItemId(inboundItemVO.getFromItemId());
+                                purchaseItem.setIntoQty(inboundItemVO.getIntoQty().negate());
+                                purchaseItem.setIntoAmt(inboundItemVO.getIntoAmt().negate());
+                                //入库状态
+                                String intoStatus = this.setIntoStatus(purchaseItemResponse.getIntoingQty(),
+                                        purchaseItemResponse.getIntoQty().add(purchaseItem.getIntoQty()), purchaseItemResponse.getItemQty());
+                                purchaseItem.setIntoStatus(intoStatus);
+                                int countRow = purchaseItemMapper.updateById(purchaseItem);
+                                //数量超出
+                                if (countRow == 0) {
+                                    throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INVENTORY_QUANTITY_EXCEEDED.getMessage());
+                                }
                             }
                         }
                         //endregion
@@ -597,8 +600,8 @@ public class InboundPurchaseService extends BaseService<Inbound> {
                 //region  修改入库总单
                 Inbound inbound = new Inbound();
                 inbound.setIntoId(inboundVO.getIntoId());
-                inbound.setIntoQty(sumQty);
-                inbound.setIntoAmt(sumAmt);
+                inbound.setIntoQty(inboundVO.getIntoingQty());
+                inbound.setIntoAmt(inboundVO.getIntoingAmt());
                 //修改
                 inboundMapper.update(inbound,
                         new UpdateWrapper<Inbound>().lambda().eq(Inbound::getIntoId, UUID.fromString(inbound.getIntoId()))
@@ -629,8 +632,7 @@ public class InboundPurchaseService extends BaseService<Inbound> {
                     Constant.IntoStatus.DAIRUKU.getName().equals(inboundResponse.getIntoStatus())) {
 
                 //region 修改明细
-                List<InboundItemVO> itemList = inboundVO.getItemList();
-                for (InboundItemVO inboundItemVO : itemList) {
+                for (InboundItemVO inboundItemVO : inboundVO.getItemList()) {
 
                     //根据id查询 获取到还未进行修改的数据
                     InboundItemResponse inboundItemResponse = inboundItemMapper.selectById(inboundItemVO.getItemId());
@@ -672,15 +674,15 @@ public class InboundPurchaseService extends BaseService<Inbound> {
                     }
                     //endregion
 
-                    //region  销售明细
+                    //region  采购明细
                     if (inboundItemVO.getFromItemId() != null) {
                         //根据id查询
                         PurchaseItemResponse purchaseItemResponse = purchaseItemMapper.selectById(inboundItemVO.getFromItemId());
                         PurchaseItem purchaseItem = new PurchaseItem();
                         purchaseItem.setItemId(inboundItemVO.getFromItemId());
-                        //本次修改几个传几个(负数)  sql中是原数据+本次修改数据
-                        purchaseItem.setIntoingQty(inboundItemResponse.getIntoingQty().negate().add(inboundItemVO.getIntoingQty()));
-                        purchaseItem.setIntoingAmt(inboundItemResponse.getIntoingAmt().negate().add(inboundItemVO.getIntoingAmt()));
+                        purchaseItem.setIntoingQty((purchaseItemResponse != null ? purchaseItemResponse.getIntoingQty().negate() : BigDecimal.ZERO).add(inboundItemVO.getIntoingQty()));
+                        purchaseItem.setIntoingQty((purchaseItemResponse != null ? purchaseItemResponse.getIntoingAmt().negate() : BigDecimal.ZERO).add(inboundItemVO.getIntoingAmt()));
+                        purchaseItem.setUpdateIntoingMessageFlag(true);
                         //入库状态
                         String intoStatus = this.setIntoStatus(purchaseItemResponse.getIntoingQty().add(purchaseItem.getIntoingQty()),
                                 purchaseItemResponse.getIntoQty().add(purchaseItem.getIntoQty()), purchaseItemResponse.getItemQty());
@@ -696,11 +698,7 @@ public class InboundPurchaseService extends BaseService<Inbound> {
                 //endregion
 
                 //region 删除明细
-                BigDecimal delIntoQty = BigDecimal.ZERO;
-                BigDecimal delIntoAmt = BigDecimal.ZERO;
                 if (inboundVO.getDeleteItemList() != null && inboundVO.getDeleteItemList().size() > 0) {
-                    delIntoQty = inboundVO.getDeleteItemList().stream().map(InboundItemVO::getIntoingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
-                    delIntoAmt = inboundVO.getDeleteItemList().stream().map(InboundItemVO::getIntoingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
                     for (InboundItemVO inboundItemVO : inboundVO.getDeleteItemList()) {
                         //region 明细
                         if (inboundItemVO.getItemId() != null) {
@@ -714,7 +712,7 @@ public class InboundPurchaseService extends BaseService<Inbound> {
                         }
                         //endregion
 
-                        //region  销售明细
+                        //region  采购明细
                         if (inboundItemVO.getFromItemId() != null) {
                             //根据id查询
                             PurchaseItemResponse purchaseItemResponse = purchaseItemMapper.selectById(inboundItemVO.getFromItemId());
@@ -740,8 +738,8 @@ public class InboundPurchaseService extends BaseService<Inbound> {
                 //region  修改入库总单
                 Inbound inbound = new Inbound();
                 inbound.setIntoId(inboundVO.getIntoId());
-                inbound.setIntoingQty(sumQty);
-                inbound.setIntoingAmt(sumAmt);
+                inbound.setIntoingQty(inboundVO.getIntoingQty());
+                inbound.setIntoingAmt(inboundVO.getIntoingAmt());
                 //修改
                 inboundMapper.update(inbound,
                         new UpdateWrapper<Inbound>().lambda().eq(Inbound::getIntoId, UUID.fromString(inbound.getIntoId()))
@@ -827,11 +825,11 @@ public class InboundPurchaseService extends BaseService<Inbound> {
                         if (Constant.IntoStatus.YIRUKU.getName().equals(inboundResponse.getIntoStatus())) {
                             purchase.setIntoQty(purchaseSumQty.subtract(updatePurchaseIntoQty).subtract(purchaseDelOutQty));
                             purchase.setIntoAmt(purchaseSumAmt.subtract(updatePurchaseIntoAmt).subtract(purchaseDelOutAmt));
-                            purchase.setIntoingQty(purchaseDelOutQty);
-                            purchase.setIntoingAmt(purchaseDelOutAmt);
-                            purchase.setUpdateIntoingMessageFlag(true);
+//                            purchase.setIntoingQty(purchaseDelOutQty);
+//                            purchase.setIntoingAmt(purchaseDelOutAmt);
+                            purchase.setUpdateIntoMessageFlag(true);
                             //入库状态
-                            String intoStatus = this.setIntoStatus(purchaseResponse.getIntoingQty().add(purchase.getIntoingQty()),
+                            String intoStatus = this.setIntoStatus(purchaseResponse.getIntoingQty(),
                                     purchaseResponse.getIntoQty().add(purchase.getIntoQty()), purchaseResponse.getSumQuantity());
                             purchase.setIntoStatus(intoStatus);
                         }
@@ -961,7 +959,7 @@ public class InboundPurchaseService extends BaseService<Inbound> {
 //                );
                 //endregion
 
-                //region  销售明细
+                //region  采购明细
                 if (inboundItemResponse.getFromItemId() != null) {
                     //根据id查询
                     PurchaseItemResponse purchaseItemResponse = purchaseItemMapper.selectById(inboundItemResponse.getFromItemId());
@@ -1029,7 +1027,7 @@ public class InboundPurchaseService extends BaseService<Inbound> {
                 );
                 //endregion
 
-                //region  销售明细
+                //region  采购明细
                 if (inboundItemResponse.getFromItemId() != null) {
                     //根据id查询
                     PurchaseItemResponse purchaseItemResponse = purchaseItemMapper.selectById(inboundItemResponse.getFromItemId());
@@ -1316,10 +1314,8 @@ public class InboundPurchaseService extends BaseService<Inbound> {
         //endregion
 
         //region 编辑总单
-        BigDecimal sumIntoQty = inboundVO.getItemList().stream().map(InboundItemVO::getIntoQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
-        BigDecimal sumIntoAmt = inboundVO.getItemList().stream().map(InboundItemVO::getIntoAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
-        inboundVO.setIntoQty(sumIntoQty);
-        inboundVO.setIntoAmt(sumIntoAmt);
+        inboundVO.setIntoQty(inboundVO.getIntoingQty());
+        inboundVO.setIntoAmt(inboundVO.getIntoingAmt());
         inboundVO.setIntoingQty(BigDecimal.ZERO);
         inboundVO.setIntoingAmt(BigDecimal.ZERO);
         //入库状态
@@ -1639,7 +1635,7 @@ public class InboundPurchaseService extends BaseService<Inbound> {
      */
     @Transactional(rollbackFor = {Exception.class})
     public ResponseResultVO<?> oneKeyPurchaseInboundRepeal(String orderId) {
-        List<InboundItemResponse> InboundItemResponses = inboundItemMapper.selectByCond(new InboundItemQuery().setSPurId(orderId));
+        List<InboundItemResponse> InboundItemResponses = inboundItemMapper.selectByCond(new InboundItemQuery().setFromId(orderId));
         if (InboundItemResponses != null && InboundItemResponses.size() > 0) {
             Map<String, List<InboundItemResponse>> inboundItemMap = InboundItemResponses.stream().collect(Collectors.groupingBy(InboundItemResponse::getIntoId));
             for (String str : inboundItemMap.keySet()) {
@@ -1647,7 +1643,7 @@ public class InboundPurchaseService extends BaseService<Inbound> {
                 //根据id查询 此条入库单的数据还未更改前的数据
                 InboundResponse inboundResponse = inboundMapper.selectById(str);
                 //根据总单id查询
-                List<InboundItemResponse> inboundItemResponseList = inboundItemMapper.selectByCond(new InboundItemQuery().setOutId(inboundResponse.getIntoId()));
+                List<InboundItemResponse> inboundItemResponseList = inboundItemMapper.selectByCond(new InboundItemQuery().setIntoId(inboundResponse.getIntoId()));
                 //endregion
 
                 //region 已入库状态作废

+ 0 - 1
src/main/java/com/dk/mdm/service/ivt/outbound/OutboundSaleOrderService.java

@@ -2004,7 +2004,6 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
                     );
                     //endregion
 
-
                     //region 外协品新建外协入库单
                     //筛选出skuId为空的 走外协品逻辑
                     OutboundVO outboundVO = outboundConvert.convertResToVO(outboundResponse);

+ 2 - 0
src/main/java/com/dk/mdm/service/ivt/outbound/OutboundSaleReturnService.java

@@ -627,6 +627,8 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
                         outboundItem.setFactPrice(outboundItemVO.getFactPrice());
                         outboundItem.setFactAmt(outboundItemVO.getFactAmt());
                         outboundItem.setPriceOut(outboundItemVO.getPriceOut());
+                        outboundItem.setCostPrice(outboundItemVO.getCostPrice());
+                        outboundItem.setCostAmt(outboundItemVO.getCostAmt());
                         //修改
                         outboundItemMapper.update(outboundItem,
                                 new UpdateWrapper<OutboundItem>().lambda()

+ 28 - 17
src/main/java/com/dk/mdm/service/pur/PurchaseService.java

@@ -27,11 +27,13 @@ import com.dk.mdm.model.pojo.pur.Purchase;
 import com.dk.mdm.model.pojo.pur.PurchaseItem;
 import com.dk.mdm.model.query.ivt.InboundItemQuery;
 import com.dk.mdm.model.query.ivt.InboundQuery;
+import com.dk.mdm.model.query.ivt.OutboundItemQuery;
 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.InboundResponse;
+import com.dk.mdm.model.response.ivt.OutboundItemResponse;
 import com.dk.mdm.model.response.ivt.OutboundResponse;
 import com.dk.mdm.model.response.mst.GoodsSkuResponse;
 import com.dk.mdm.model.response.pur.PurchaseItemResponse;
@@ -361,16 +363,21 @@ public class PurchaseService extends BaseService<Purchase> {
             rollbackFor = {Exception.class}
     )
     public ResponseResultVO<Boolean> update(PurchaseVO purchasevo) {
+        String gradeCode = authUtils.getStaff().getGradeCode();
         // 转化实体
         Purchase purchase = purChaseConvert.convertToPo(purchasevo);
         //删除的
         List<PurchaseItemVO> deletePurchaseItemVOList = purchasevo.getDeletePurchaseItemList().stream().filter(it -> it.getItemId() != null).collect(Collectors.toList());
         if (deletePurchaseItemVOList.size() > 0) {
             for (PurchaseItemVO purchaseItemVO : deletePurchaseItemVOList) {
-                // 非待入库单据不能删除
-                if (!Constant.IntoStatus.DAIRUKU.getName().equals(purchaseItemVO.getIntoStatus())) {
-                    throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.NO_WAIT_INTO.getMessage());
-                } else {
+                if (!Constant.GradeCode.STD.getName().equals(gradeCode)) {
+                    //已转入库不能删除
+                    if (!Constant.IntoStatus.DAIRUKU.getName().equals(purchaseItemVO.getIntoStatus())) {
+                        throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.NO_WAIT_INTO.getMessage());
+                    } else {
+                        purchaseItemMapper.deleteById(purchaseItemVO.getItemId());
+                    }
+                }else{
                     purchaseItemMapper.deleteById(purchaseItemVO.getItemId());
                 }
             }
@@ -392,27 +399,27 @@ public class PurchaseService extends BaseService<Purchase> {
             purchaseItem.setIntoAmt(null);
             //endregion
             purchaseItemMapper.insert(purchaseItem);
+            purchaseItemVO.setItemId(purchaseItem.getItemId());
         }
         // 编辑的
         List<PurchaseItemVO> editPurchaseItemVOList = purchasevo.getEditPurchaseItemList().stream().filter(it -> it.getItemId() != null).collect(Collectors.toList());
         for (PurchaseItemVO purchaseItemVO : editPurchaseItemVOList) {
-            // 商品数量不能小于可转入库数量数量(入库中+已入库)
-            if (purchaseItemVO.getItemQty().compareTo(purchaseItemVO.getIntoQty().add(purchaseItemVO.getIntoingQty())) == -1) {
-                throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ITEMQTY_NO_LESS_INTOQTY.getMessage());
-            } else {
+            // 商品数量不能小于可转入库数量数量(入库中+已入库)  todo2024年7月15日15:22:14  注释掉,不然报错
+//            if (purchaseItemVO.getItemQty().compareTo(purchaseItemVO.getIntoQty().add(purchaseItemVO.getIntoingQty())) >=0) {
+//                throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ITEMQTY_NO_LESS_INTOQTY.getMessage());
+//            } else {
                 PurchaseItem purchaseItem = purchaseItemConvert.convertToPo(purchaseItemVO);
                 //region  已入库数量和入库金额 在入库会反写 ,
                 purchaseItem.setIntoQty(null);
                 purchaseItem.setIntoAmt(null);
                 //endregion
                 purchaseItemService.updataById(purchaseItem);
-            }
+//            }
         }
         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()) {
@@ -424,7 +431,6 @@ public class PurchaseService extends BaseService<Purchase> {
                 //存在明细
                 if(inboundResponseList!=null && inboundResponseList.size()>0){
 
-
                     //region 总单
                     InboundVO inboundVO = inboundConvert.convertPurchaseVOToInboundVO(purchasevo);
                     //id
@@ -458,7 +464,7 @@ public class PurchaseService extends BaseService<Purchase> {
 
                             //region 赋值 采购订单明细和入库单明细不一致的字段要单独set
                             //id制空,这里的id经过转换以后是采购订单明细的id
-                            inboundItemVO.setItemId(inboundItemResponses.get(0).getItemId());
+                            inboundItemVO.setItemId(inboundItemResponses != null && inboundItemResponses.size()>0 ?  inboundItemResponses.get(0).getItemId() : null );
                             //总单id
                             inboundItemVO.setIntoId(inboundResponse.getIntoId());
                             //来源id
@@ -516,13 +522,18 @@ public class PurchaseService extends BaseService<Purchase> {
                     //region 删除的明细
                     if (purchasevo.getDeletePurchaseItemList() != null && purchasevo.getDeletePurchaseItemList().size() > 0) {
                         for (PurchaseItemVO purchaseItemVO : purchasevo.getDeletePurchaseItemList()) {
+                            //拿到 订单明细对应的出库明细   订单明细id 和 出库单来源明细 是一 一 对应的 所以 get0 也是不会有问题的
+                            List<InboundItemResponse> inboundItemResponseList = inboundItemMapper.selectByCond(new InboundItemQuery().setFromItemId(purchaseItemVO.getItemId()));
+                            InboundItemResponse intoboundItemjson = null;
+                            if (inboundItemResponseList.size() != 0) { //没查到库存数据说明是新增的品 还没出库呢
+                                intoboundItemjson = inboundItemResponseList.get(0);
+                            }
                             //region 采购订单明细转换采购入库明细
                             InboundItemVO inboundItemVO = inboundItemConvert.convertPurchaseItemVOToInboundItemVO(purchaseItemVO);
                             //endregion
 
                             //region 赋值 采购订单明细和入库单明细不一致的字段要单独set
-                            //id制空,这里的id经过转换以后是采购订单明细的id
-                            inboundItemVO.setItemId(null);
+                            inboundItemVO.setItemId(intoboundItemjson == null ? null : intoboundItemjson.getItemId());
                             //总单id
                             inboundItemVO.setIntoId(inboundResponse.getIntoId());
                             //来源id
@@ -532,9 +543,9 @@ public class PurchaseService extends BaseService<Purchase> {
                             //入库价
                             inboundItemVO.setPriceInto(purchaseItemVO.getPricePur());
                             //入库中数量
-                            inboundItemVO.setIntoingQty(purchaseItemVO.getItemQty());
+                            inboundItemVO.setIntoQty(purchaseItemVO.getItemQty());
                             //已入库数量
-                            inboundItemVO.setIntoingAmt(purchaseItemVO.getItemAmt());
+                            inboundItemVO.setIntoAmt(purchaseItemVO.getItemAmt());
                             //todo 2024年7月10日10:19:01 成本单价和成本金额取前台传入的采购单价和采购金额 dl和z确认
                             //成本单价
                             inboundItemVO.setCostPrice(purchaseItemVO.getPricePur());
@@ -749,7 +760,7 @@ public class PurchaseService extends BaseService<Purchase> {
                 UUID.fromString(purUpdate.getPurId ())));
 
 
-        //region 作废库单
+        //region 作废库单
         inboundPurchaseService.oneKeyPurchaseInboundRepeal(id);
         //endregion
 

+ 1 - 0
src/main/java/com/dk/mdm/service/sale/OrderService.java

@@ -868,6 +868,7 @@ public class OrderService extends BaseService<Order> {
             accountService.updateMac(macId);
         }
         /**************************************** 客户收款end ********************************/
+
         if (Constant.GradeCode.STD.getName().equals(gradeCode)) { //订单 转 出库数据
             // 合并两个列表
             List<OrderItemVO> combinedList = Stream.concat(insertOrderItemVOList.stream(), editOrderItemVOList.stream())