koushanshan 2 лет назад
Родитель
Сommit
f57db07f50

+ 2 - 1
src/main/java/com/dk/mdm/model/pojo/ivt/Outbound.java

@@ -8,6 +8,7 @@ import java.io.Serializable;
 import com.dk.common.infrastructure.annotaiton.ExportTitle;
 import com.dk.common.infrastructure.handler.*;
 import com.dk.common.model.pojo.PageInfo;
+import com.dk.common.model.vo.AnnexVO;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.AllArgsConstructor;
@@ -198,7 +199,7 @@ public class Outbound extends PageInfo<Outbound> implements Serializable {
     @Excel(name = "附件 (index(显示顺序)、name(文件名)、path(路径)、type(类型)、time(上传时间)...)")
     @ApiModelProperty(value = "附件 (index(显示顺序)、name(文件名)、path(路径)、type(类型)、time(上传时间)...)")
     @TableField(typeHandler = JsonTypeHandler.class)
-    private JSONArray annexPaths;
+    private List<AnnexVO> annexPaths;
 
 
     /**

+ 2 - 1
src/main/java/com/dk/mdm/model/response/ivt/OutboundResponse.java

@@ -10,6 +10,7 @@ import com.dk.common.infrastructure.handler.JsonTypeHandler;
 import com.dk.common.infrastructure.handler.TimestampTypeHandler;
 import com.dk.common.infrastructure.handler.UuidTypeHandler;
 import com.dk.common.model.pojo.PageInfo;
+import com.dk.common.model.vo.AnnexVO;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -206,7 +207,7 @@ public class OutboundResponse extends PageInfo<OutboundResponse> implements Seri
     @Excel(name = "附件 (index(显示顺序)、name(文件名)、path(路径)、type(类型)、time(上传时间)...)")
     @ApiModelProperty(value = "附件 (index(显示顺序)、name(文件名)、path(路径)、type(类型)、time(上传时间)...)")
     @TableField(typeHandler = JsonTypeHandler.class)
-    private JSONArray annexPaths;
+    private List<AnnexVO> AnnexPaths;
 
 
     /**

+ 2 - 0
src/main/java/com/dk/mdm/model/vo/ivt/InboundVO.java

@@ -259,6 +259,8 @@ public class InboundVO {
     private List<InboundItemVO> deleteItemList;
 
 
+    @ApiModelProperty(value = "编辑标识")
+    private Boolean limitEdit;
 
     private static final long serialVersionUID = 1L;
 

+ 5 - 1
src/main/java/com/dk/mdm/model/vo/ivt/OutboundVO.java

@@ -10,6 +10,7 @@ import com.dk.common.infrastructure.handler.JsonTypeHandler;
 import com.dk.common.infrastructure.handler.TimestampTypeHandler;
 import com.dk.common.infrastructure.handler.UuidTypeHandler;
 import com.dk.common.model.pojo.PageInfo;
+import com.dk.common.model.vo.AnnexVO;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -176,7 +177,7 @@ public class OutboundVO{
      */
     @ApiModelProperty(value = "附件 (index(显示顺序)、name(文件名)、path(路径)、type(类型)、time(上传时间)...)")
     @TableField(typeHandler = JsonTypeHandler.class)
-    private JSONArray annexPaths;
+    private List<AnnexVO> annexPaths;
 
 
     /**
@@ -301,6 +302,9 @@ public class OutboundVO{
     @ApiModelProperty(value = "员工明细")
     private List<Map<String, Object>> staffList;
 
+    @ApiModelProperty(value = "编辑标识")
+    private Boolean limitEdit;
+
 
 
 

+ 2 - 1
src/main/java/com/dk/mdm/service/ivt/inbound/InboundCheckService.java

@@ -71,6 +71,7 @@ public class InboundCheckService extends BaseService<Inbound> {
 	 */
 	@Transactional(rollbackFor = {Exception.class})
 	public ResponseResultVO<?> checkInboundInsert(Map<String, Object> map) {
+
 		//region map转json
 		JSONObject total = new JSONObject();
 		JSONArray detail = new JSONArray();
@@ -108,7 +109,6 @@ public class InboundCheckService extends BaseService<Inbound> {
 		inboundMapper.insert(inbound);
 		//endregion
 
-
 		//region 明细
 		//校验明细
 		if (inboundVO.getItemList().size() == 0) {
@@ -151,6 +151,7 @@ public class InboundCheckService extends BaseService<Inbound> {
 //		inventoryService.updateInventoryInformation(invMap);
 		//endregion
 
+
 		return ResponseResultUtil.success(inboundVO);
 	}
 

+ 629 - 605
src/main/java/com/dk/mdm/service/ivt/inbound/InboundOtherService.java

@@ -18,6 +18,8 @@ import com.dk.mdm.mapper.ivt.InboundItemMapper;
 import com.dk.mdm.mapper.ivt.InboundMapper;
 import com.dk.mdm.model.pojo.ivt.Inbound;
 import com.dk.mdm.model.pojo.ivt.InboundItem;
+import com.dk.mdm.model.pojo.ivt.Outbound;
+import com.dk.mdm.model.pojo.ivt.OutboundItem;
 import com.dk.mdm.model.pojo.pur.Purchase;
 import com.dk.mdm.model.pojo.pur.PurchaseItem;
 import com.dk.mdm.model.query.ivt.InboundItemQuery;
@@ -26,6 +28,7 @@ import com.dk.mdm.model.response.ivt.InboundItemResponse;
 import com.dk.mdm.model.response.ivt.InboundResponse;
 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.service.common.CommonService;
 import com.dk.mdm.service.ivt.inventory.InventoryService;
 import io.swagger.annotations.ApiOperation;
@@ -44,616 +47,637 @@ import java.util.UUID;
 
 
 /**
- * @desc   : 其他入库业务层
- * @date   : 2024/3/7 14:11
  * @author : 寇珊珊
+ * @desc : 其他入库业务层
+ * @date : 2024/3/7 14:11
  */
 @Service
 public class InboundOtherService extends BaseService<Inbound> {
 
-	@Override
-	public BaseMapper<Inbound> getRepository() {
-		return inboundMapper;
-	}
-
-	@Autowired
-	private InboundMapper inboundMapper;
-
-	@Autowired
-	private InboundConvert inboundConvert;
-
-	@Autowired
-	private InboundItemMapper inboundItemMapper;
-
-	@Autowired
-	private InboundItemConvert inboundItemConvert;
-
-	@Autowired
-	private CommonService commonService;
-
-	@Autowired
-	private CommonMapper commonMapper;
-
-	@Autowired
-	private InventoryService inventoryService;
-
-
-	/**
-	 * @desc   : 条件查询
-	 * @date   : 2024/3/7 14:12
-	 * @author : 寇珊珊
-	 */
-	@Pagination
-	public ResponseResultVO<PageList<InboundResponse>> selectByCond(InboundQuery inboundQuery) {
-		return super.mergeListWithCount(inboundQuery, inboundMapper.selectByCond(inboundQuery),
-				inboundMapper.countByCond(inboundQuery));
-	}
-
-	/**
-	 * @desc   : 查询明细
-	 * @date   : 2024/3/9 15:43
-	 * @author : 寇珊珊
-	 */
-	@Pagination
-	public ResponseResultVO<Map<String, Object>> selectOtherInboundItemInfoById(String id) {
-		Map<String, Object> result = new HashMap<>();
-		// 商品明细
-		List<InboundItemResponse> inboundItemResponses = inboundItemMapper.selectByCond(new InboundItemQuery().setIntoId(id));
-		result.put("itemList", inboundItemResponses);
-		// 收款
-
-		// 附件
-		return ResponseResultUtil.success(result);
-	}
-
-
-	/**
-	 * @desc   : 其他入库新建
-	 * @date   : 2024/3/7 14:13
-	 * @author : 寇珊珊
-	 */
-	@Transactional(rollbackFor = {Exception.class})
-	public ResponseResultVO<?> otherInboundInsert(InboundVO inboundVO) {
-		//region  查询当前公司的系统参数  自动办理信息  并赋值
-		Map<String, Object> map = new HashMap<>();
-		map.put("cpId", inboundVO.getCpId());
-		map.put("code", "IVT_001");
-		//自动办理标识
-		String flgHandleSetting = commonMapper.getSettingValue(map);
-		//自动办理标识为1 自动办理入库
-		if(Constant.FlgAutoHandleStringType.ONE.getValue().equals(flgHandleSetting)){
-			inboundVO.setFlgHandleSetting(Constant.FlgHandleSetting.TRUE.getValue());
-			inboundVO.setFlgAutoHandle(Constant.FlgAutoHandle.TRUE.getValue());
-		}
-		//endregion
-
-		//region  总单
-		//获取 id/单号
-		Map<String , Object> codeMap = commonService.getUniqueNoteCode(Constant.docNameConstant.OTHERINBOUND.getName(),false);
-		inboundVO.setIntoId(codeMap.get("outId").toString()).
-				setIntoNo(codeMap.get("outNote").toString());
-		//入库类型
-		inboundVO.setIntoType(Constant.IntoType.OTHER.getName());
-		//自动入库标识
-		if (inboundVO.getFlgAutoHandle()) {
-			//已入库
-			inboundVO.setIntoStatus(Constant.IntoStatus.YIRUKU.getName());
-		} else {
-			//入库中
-			inboundVO.setIntoStatus(Constant.IntoStatus.RUKUZHONG.getName());
-		}
-		//入库状态等于已入库 更新合计入库数量/金额 = 入库中数量/入库中金额
-		if (Constant.IntoStatus.YIRUKU.getName().equals(inboundVO.getIntoStatus())) {
-			inboundVO.setIntoQty(inboundVO.getIntoingQty())
-					.setIntoAmt(inboundVO.getIntoingAmt())
-					.setIntoingQty(BigDecimal.ZERO)
-					.setIntoingAmt(BigDecimal.ZERO)
-			;
-		}else{
-			inboundVO.setIntoQty(BigDecimal.ZERO)
-					.setIntoAmt(BigDecimal.ZERO)
-			;
-		}
-		//实体转换
-		Inbound inbound = inboundConvert.convertToPo(inboundVO);
-		inboundMapper.insert(inbound);
-		//endregion
-
-		//region 明细
-		//校验明细
-		if (inboundVO.getItemList().size() == 0) {
-			throw new BaseBusinessException(ErrorCodeEnum.INBOUND_ITEM_NOT_EXIST.getCode(),
-					ErrorCodeEnum.INBOUND_ITEM_NOT_EXIST.getMessage());
-		}
-		for (InboundItemVO inboundItemVO : inboundVO.getItemList()) {
-			//region 将库存需要的参数赋值
-			inboundItemVO.setInventoryType(Constant.InventoryType.INBOUND.getName());
-			inboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.OTHER_INBOUND.getValue());
-			//endregion
-
-			//总单id
-			inboundItemVO.setIntoId(inboundVO.getIntoId());
-			//入库类型
-			inboundItemVO.setIntoType(inboundVO.getIntoType());
-			//出库数量
-			inboundItemVO.setOutQty(BigDecimal.ZERO);
-			//入库状态等于已入库 更新合计入库数量/金额 = 入库中数量/入库中金额
-			if (Constant.IntoStatus.YIRUKU.getName().equals(inboundVO.getIntoStatus())) {
-				inboundItemVO
-						.setIntoQty(inboundItemVO.getIntoingQty())
-						.setIntoAmt(inboundItemVO.getIntoingAmt())
-						.setIntoingQty(BigDecimal.ZERO)
-						.setIntoingAmt(BigDecimal.ZERO)
-						.setCostPrice(inboundItemVO.getPriceInto())
-						.setCostAmt(inboundItemVO.getOutQty().multiply(inboundItemVO.getPriceInto()).setScale(2, BigDecimal.ROUND_HALF_UP))
-				;
-			}else{
-				inboundItemVO
-						.setIntoQty(BigDecimal.ZERO)
-						.setIntoAmt(BigDecimal.ZERO);
-			}
-			//入库状态
-			inboundItemVO.setIntoStatus(inboundVO.getIntoStatus());
-			//实体转换
-			InboundItem inboundItem = inboundItemConvert.convertToPo(inboundItemVO);
-			inboundItemMapper.insert(inboundItem);
-		}
-		//endregion
-
-
-		//todo 如果是已入库 调用库存  后续写库存这里补上
-		//region 库存
-		if(Constant.IntoStatus.YIRUKU.getName().equals(inboundVO.getIntoStatus())){
-			Map<String, Object> invMap = new HashMap<>();
-			map.put("intoDetail",inboundVO.getItemList());
-			inventoryService.updateInventoryInformation(invMap);
-		}
-		//endregion
-
-
-		return ResponseResultUtil.success(inboundVO);
-	}
-
-
-	/**
-	 * @desc : 其他入库编辑
-	 * @date : 2024/3/25 16:25
-	 * @author : 寇珊珊
-	 */
-	@Transactional(rollbackFor = {Exception.class})
-	public ResponseResultVO<?> otherInboundUpdate(InboundVO inboundVO) {
-		//region 明细数量金额  求和
-		BigDecimal sumQty = inboundVO.getItemList().stream().map(InboundItemVO::getIntoingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
-		BigDecimal sumAmt = inboundVO.getItemList().stream().map(InboundItemVO::getIntoingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
-		//endregion
-
-		//region  自动办理参数为true  已入库编辑
-		//自动办理参数为true
-		if (Constant.FlgHandleSetting.TRUE.getValue().equals(inboundVO.getFlgHandleSetting())) {
-
-			//region 修改明细
-			List<InboundItemVO> itemList = inboundVO.getItemList();
-			for (InboundItemVO inboundItemVO : itemList) {
-				//根据id查询
-				InboundItemResponse inboundItemResponse = inboundItemMapper.selectById(inboundItemVO.getItemId());
-				//region 将库存需要的参数赋值
-				inboundItemVO.setInventoryType(Constant.InventoryType.INBOUND.getName());
-				inboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.PURCHASE_ORDER.getValue());
-				//编辑之前的数
-				inboundItemVO.setQtyBeforeUpdate(inboundItemResponse.getIntoQty());
-				inboundItemVO.setAmtBeforeUpdate(inboundItemResponse.getIntoAmt());
-				//编辑之后的数
-				inboundItemVO.setIntoQty(inboundItemVO.getIntoQty());
-				inboundItemVO.setIntoAmt(inboundItemVO.getIntoAmt());
-
-				//endregion
-
-				//赋值
-				InboundItem inboundItem = new InboundItem();
-				inboundItem.setItemId(inboundItemVO.getItemId());
-				inboundItem.setIntoQty(inboundItemVO.getIntoingQty());
-				inboundItem.setIntoAmt(inboundItemVO.getIntoingAmt());
-				inboundItem.setCostPrice(inboundItemVO.getPriceInto());
-				inboundItem.setCostAmt(inboundItemVO.getIntoQty().multiply(inboundItemVO.getPriceInto()).setScale(6, BigDecimal.ROUND_HALF_UP));
-				//修改
-				inboundItemMapper.update(inboundItem,
-						new UpdateWrapper<InboundItem>().lambda()
-								.eq(InboundItem::getItemId, UUID.fromString(inboundItem.getItemId()))
-				);
-			}
-			//endregion
-
-			//region  修改入库总单
-			Inbound inbound = new Inbound();
-			inbound.setIntoId(inboundVO.getIntoId());
-			inbound.setIntoQty(sumQty);
-			inbound.setIntoAmt(sumAmt);
-			//修改
-			inboundMapper.update(inbound,
-					new UpdateWrapper<Inbound>().lambda().eq(Inbound::getIntoId, UUID.fromString(inbound.getIntoId()))
-			);
-			//endregion
-
-			//region  todo调用库存
-			Map<String, Object> map = new HashMap<>();
-			map.put("intoDetail", inboundVO.getItemList());
-			inventoryService.updateInventoryInformation(map);
-			//endregion
-		}
-		//endregion
-
-		//region 自动办理参数false  入库中编辑
-		//自动办理标识为false 并且 自动办理参数为false  入库中
-		if (!inboundVO.getFlgAutoHandle() && Constant.FlgHandleSetting.FALSE.getValue().equals(inboundVO.getFlgHandleSetting())) {
-			//region 修改明细
-			List<InboundItemVO> itemList = inboundVO.getItemList();
-			for (InboundItemVO inboundItemVO : itemList) {
-				//赋值
-				InboundItem inboundItem = new InboundItem();
-				inboundItem.setItemId(inboundItemVO.getItemId());
-				inboundItem.setIntoingQty(inboundItemVO.getIntoingQty());
-				inboundItem.setIntoingAmt(inboundItemVO.getIntoingAmt());
-				//修改
-				inboundItemMapper.update(inboundItem,
-						new UpdateWrapper<InboundItem>().lambda()
-								.eq(InboundItem::getItemId, UUID.fromString(inboundItem.getItemId()))
-				);
-			}
-			//endregion
-			//region  修改入库总单
-			Inbound inbound = new Inbound();
-			inbound.setIntoId(inboundVO.getIntoId());
-			inbound.setIntoingQty(sumQty);
-			inbound.setIntoingAmt(sumAmt);
-			//修改
-			inboundMapper.update(inbound,
-					new UpdateWrapper<Inbound>().lambda().eq(Inbound::getIntoId, UUID.fromString(inbound.getIntoId()))
-			);
-			//endregion
-		}
-		//endregion
-
-		return ResponseResultUtil.success(inboundVO);
-	}
-
-	/**
-	 * @desc : 其他入库作废
-	 * @date : 2024/3/25 16:25
-	 * @author : 寇珊珊
-	 */
-	@Transactional(rollbackFor = {Exception.class})
-	public ResponseResultVO<?> otherInboundRepeal(String intoId) {
-		//region  查询总单  查询明细
-		//根据id查询 此条入库单的数据还未更改前的数据
-		InboundResponse inboundResponse = inboundMapper.selectById(intoId);
-		//根据总单id查询
-		List<InboundItemResponse> inboundItemResponseList = inboundItemMapper.selectByCond(new InboundItemQuery().setIntoId(inboundResponse.getIntoId()));
-		//endregion
-
-		//region  自动办理参数为true  已入库编辑
-		//自动办理参数为true
-		if (Constant.FlgHandleSetting.TRUE.getValue().equals(inboundResponse.getFlgHandleSetting())) {
-			//region   todo  退账 当单据红的账款id不为空说明有账, 要先退账才能进行操作
-			if (inboundResponse.getReceivableId() != null) {
-
-			}
-			//endregion
-
-			//region 修改明细
-			for (InboundItemResponse inboundItemResponse : inboundItemResponseList) {
-				//region 将库存需要的参数赋值
-				inboundItemResponse.setInventoryType(Constant.InventoryType.INBOUND.getName());
-				inboundItemResponse.setInventoryDocCode(Constant.InventoryDocCode.PURCHASE_ORDER.getValue());
-				inboundItemResponse.setIntoQty(inboundItemResponse.getIntoQty().negate());
-				inboundItemResponse.setIntoAmt(inboundItemResponse.getIntoAmt().negate());
-				//endregion
-
-				//赋值
-				InboundItem inboundItem = new InboundItem();
-				inboundItem.setItemId(inboundItemResponse.getItemId());
-				inboundItem.setFlgValid(false);
-				//修改
-				inboundItemMapper.update(inboundItem,
-						new UpdateWrapper<InboundItem>().lambda()
-								.eq(InboundItem::getItemId, UUID.fromString(inboundItem.getItemId()))
-				);
-			}
-			//endregion
-
-			//region  修改入库总单
-			Inbound inbound = new Inbound();
-			inbound.setIntoId(inboundResponse.getIntoId());
-			inbound.setFlgValid(false);
-			//修改
-			inboundMapper.update(inbound,
-					new UpdateWrapper<Inbound>().lambda().eq(Inbound::getIntoId, UUID.fromString(inbound.getIntoId()))
-			);
-			//endregion
-
-			//region
-			Map<String, Object> map = new HashMap<>();
-			map.put("intoDetail", inboundItemResponseList);
-			inventoryService.updateInventoryInformation(map);
-			//endregion
-		}
-		//endregion
-
-		//region 自动办理参数false  入库中编辑
-		//自动办理标识为false 并且 自动办理参数为false  入库中
-		if (!inboundResponse.getFlgAutoHandle() && Constant.FlgHandleSetting.FALSE.getValue().equals(inboundResponse.getFlgHandleSetting())) {
-			//region 修改明细
-			for (InboundItemResponse inboundItemResponse : inboundItemResponseList) {
-				//赋值
-				InboundItem inboundItem = new InboundItem();
-				inboundItem.setItemId(inboundItemResponse.getItemId());
-				inboundItem.setIntoingQty(BigDecimal.ZERO);
-				inboundItem.setIntoingAmt(BigDecimal.ZERO);
-				//修改
-				inboundItemMapper.update(inboundItem,
-						new UpdateWrapper<InboundItem>().lambda()
-								.eq(InboundItem::getItemId, UUID.fromString(inboundItem.getItemId()))
-				);
-			}
-			//endregion
-
-			//region  修改入库总单
-			Inbound inbound = new Inbound();
-			inbound.setIntoId(inboundResponse.getIntoId());
-			inbound.setIntoingQty(BigDecimal.ZERO);
-			inbound.setIntoAmt(BigDecimal.ZERO);
-			//修改
-			inboundMapper.update(inbound,
-					new UpdateWrapper<Inbound>().lambda().eq(Inbound::getIntoId, UUID.fromString(inbound.getIntoId()))
-			);
-			//endregion
-		}
-		//endregion
-
-		return ResponseResultUtil.success();
-	}
-
-
-	/**
-	 * @desc   : 其他入库办理
-	 * @date   : 2024/3/7 15:47
-	 * @author : 寇珊珊
-	 */
-	@Transactional(rollbackFor = {Exception.class})
-	public ResponseResultVO<?> otherHandleInbound(InboundVO inboundVO) {
-		//region 编辑明细
-		//校验明细
-		if (inboundVO.getItemList().size() == 0) {
-			throw new BaseBusinessException(ErrorCodeEnum.INBOUND_ITEM_NOT_EXIST.getCode(),
-					ErrorCodeEnum.INBOUND_ITEM_NOT_EXIST.getMessage());
-		}
-		for (InboundItemVO inboundItemVO : inboundVO.getItemList()) {
-			//region 将库存需要的参数赋值
-			inboundItemVO.setInventoryType(Constant.InventoryType.INBOUND.getName());
-			inboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.OTHER_INBOUND.getValue());
-			//endregion
-			//region  修改明细
-			if (inboundItemVO.getIntoId() != null) {
-				InboundItemResponse inboundItemResponse = inboundItemMapper.selectById(inboundItemVO.getItemId());
-				//region 校验数量是否超出
-				if (inboundItemVO.getIntoingQty().compareTo(inboundItemResponse.getIntoingQty()) > 0) {
-					throw new BaseBusinessException(ErrorCodeEnum.CANNOT_EXCEED_THE_QUANTITY_IN_THE_OUTBOUND_SHIPMENT.getCode(),
-							ErrorCodeEnum.CANNOT_EXCEED_THE_QUANTITY_IN_THE_OUTBOUND_SHIPMENT.getMessage());
-				}
-				//endregion
-
-				//region 编辑明细
-				inboundItemVO
-						.setIntoQty(inboundItemResponse.getIntoQty().add(inboundItemVO.getIntoingQty()))
-						.setIntoAmt(inboundItemResponse.getIntoAmt().add(inboundItemVO.getIntoingAmt()))
-						.setIntoingQty(BigDecimal.ZERO)
-						.setIntoingAmt(BigDecimal.ZERO)
-						.setCostPrice(inboundItemVO.getPriceInto())
-						.setCostPrice(inboundItemVO.getIntoQty().subtract(inboundItemVO.getCostPrice()).setScale(2, BigDecimal.ROUND_HALF_UP))
-				;
-				//入库状态
-				String intoStatus = this.setIntoStatus(inboundItemVO.getIntoingQty(), inboundItemVO.getIntoQty());
-				inboundItemVO.setIntoStatus(intoStatus);
-				//实体转换
-				InboundItem inboundItem = inboundItemConvert.convertToPo(inboundItemVO);
-				//修改
-				inboundItemMapper.update(inboundItem,
-						new UpdateWrapper<InboundItem>().lambda()
-								.eq(InboundItem::getItemId, UUID.fromString(inboundItem.getItemId()))
-				);
-				//endregion
-			}
-			//endregion
-
-			//region 新建明细
-			else {
-				inboundItemVO
-						.setIntoQty(inboundItemVO.getIntoingQty())
-						.setIntoAmt(inboundItemVO.getIntoingAmt())
-						.setIntoId(inboundVO.getIntoId())
-						.setCostPrice(inboundItemVO.getPriceInto())
-						.setCostAmt(inboundItemVO.getIntoQty().multiply(inboundItemVO.getPriceInto()).setScale(2, BigDecimal.ROUND_HALF_UP))
-						.setIntoType(Constant.IntoType.OTHER.getName())
-						.setIntoingQty(BigDecimal.ZERO)
-						.setIntoingAmt(BigDecimal.ZERO)
-				;
-				//入库状态
-				String intoStatus = this.setIntoStatus(inboundItemVO.getIntoingQty(), inboundItemVO.getIntoQty());
-				inboundItemVO.setIntoStatus(intoStatus);
-				//实体转换
-				InboundItem inboundItem = inboundItemConvert.convertToPo(inboundItemVO);
-				//新建
-				inboundItemMapper.insert(inboundItem);
-			}
-			//endregion
-		}
-		//endregion
-
-		//region 删除明细
-		if (inboundVO.getDeleteItemList() != null) {
-			for (InboundItemVO inboundItemVO : inboundVO.getDeleteItemList()) {
-				if (inboundItemVO.getItemId() != null) {
-					InboundItem inboundItem = inboundItemConvert.convertToPo(inboundItemVO);
-					inboundItem.setFlgValid(false);
-					//修改
-					inboundItemMapper.update(inboundItem,
-							new UpdateWrapper<InboundItem>().lambda()
-									.eq(InboundItem::getItemId, UUID.fromString(inboundItem.getItemId()))
-					);
-				}
-			}
-		}
-		//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.setIntoingQty(BigDecimal.ZERO);
-		inboundVO.setIntoingAmt(BigDecimal.ZERO);
-		//入库状态
-		String intoStatus = this.setIntoStatus(inboundVO.getIntoingQty(), inboundVO.getIntoQty());
-		inboundVO.setIntoStatus(intoStatus);
-		//实体转换
-		Inbound inbound = inboundConvert.convertToPo(inboundVO);
-		//修改
-		inboundMapper.update(inbound,
-				new UpdateWrapper<Inbound>().lambda()
-						.eq(Inbound::getIntoId, UUID.fromString(inbound.getIntoId()))
-		);
-		//endregion
-
-		//region 修改库存
-		Map<String, Object> map = new HashMap<>();
-		map.put("intoDetail", inboundVO.getItemList());
-		inventoryService.updateInventoryInformation(map);
-		//endregion
-		return ResponseResultUtil.success(inboundVO);
-	}
-
-
-	/**
-	 * @desc   : 其它入库撤销
-	 * @date   : 2024/3/7 17:06
-	 * @author : 寇珊珊
-	 */
-	@Transactional(rollbackFor = {Exception.class})
-	public ResponseResultVO<?> otherInboundCancel(InboundVO inboundVO) {
-		//region 总单数据信息
-		InboundResponse inboundResponse = inboundMapper.selectById(inboundVO.getIntoId());
-		Inbound inbound = new Inbound();
-		inbound.setIntoId(inboundResponse.getIntoId())
-				.setIntoDate(null)
-				.setIntoStatus(Constant.IntoStatus.RUKUZHONG.getName())
-				.setIntoingQty(inboundResponse.getIntoQty())
-				.setIntoingAmt(inboundResponse.getIntoAmt())
-				.setIntoQty(BigDecimal.ZERO)
-				.setIntoAmt(BigDecimal.ZERO);
-		//修改
-		inboundMapper.update(inbound,
-				new UpdateWrapper<Inbound>().lambda()
-						.eq(Inbound::getIntoId, UUID.fromString(inbound.getIntoId()))
-		);
-		//endregion
-
-		//region 明细数据
-		InboundItemQuery inboundItemQuery = new InboundItemQuery().setIntoId(inbound.getIntoId());
-		//根据总单查明细
-		List<InboundItemResponse> inboundItemResponseList = inboundItemMapper.selectByCond(inboundItemQuery);
-		for (InboundItemResponse inboundItemResponse : inboundItemResponseList) {
-			//region 将库存需要的参数赋值
-			inboundItemResponse.setInventoryType(Constant.InventoryType.INBOUND.getName());
-			inboundItemResponse.setInventoryDocCode(Constant.InventoryDocCode.OTHER_INBOUND.getValue());
-			//region
-			InboundItem inboundItem = new InboundItem();
-			inboundItem
-					.setIntoId(inbound.getIntoId())
-					.setIntoStatus(Constant.IntoStatus.RUKUZHONG.getName())
-					.setIntoingQty(inboundItemResponse.getInvQty())
-					.setIntoingAmt(inboundItemResponse.getIntoAmt())
-					.setIntoQty(BigDecimal.ZERO)
-					.setIntoAmt(BigDecimal.ZERO)
-					.setCostPrice(BigDecimal.ZERO)
-					.setCostAmt(BigDecimal.ZERO)
-					.setItemId(inboundItemResponse.getItemId());
-			//修改
-			inboundItemMapper.update(inboundItem,
-					new UpdateWrapper<InboundItem>().lambda()
-							.eq(InboundItem::getItemId, UUID.fromString(inboundItem.getItemId()))
-			);
-			//数量金额取反 用于给库存使用
-			inboundItemResponse.setIntoQty(inboundItemResponse.getIntoQty().negate());
-			inboundItemResponse.setIntoAmt(inboundItemResponse.getIntoAmt().negate());
-		}
-		//endregion
-
-		//region 修改库存
-		Map<String, Object> map = new HashMap<>();
-		map.put("intoDetail", inboundItemResponseList);
-		inventoryService.updateInventoryInformation(map);
-		//endregion
-
-		return ResponseResultUtil.success();
-	}
-
-
-	/**
-	 * @desc : 入库状态通用(目前本页面)
-	 * @date : 2024/3/9 8:59
-	 * @author : 寇珊珊
-	 */
-	public String setIntoStatus(BigDecimal intoingQty, BigDecimal intoQty) {
-		//入库状态
-		String intoStatus = null;
-		//已入库数量>=0 入库中数量>0
-		if (intoQty.compareTo(BigDecimal.ZERO) >= 0 && intoingQty.compareTo(BigDecimal.ZERO) > 0 ) {
-			//入库中
-			intoStatus = Constant.IntoStatus.RUKUZHONG.getName();
-		}
-		//已入库数量=0 入库中数量=0
-		else if (intoQty.compareTo(BigDecimal.ZERO) == 0 && intoingQty.compareTo(BigDecimal.ZERO) == 0) {
-			//待入库
-			intoStatus = Constant.IntoStatus.DAIRUKU.getName();
-		}
-		//已入库数量>0 入库中数量=0
-		else if (intoQty.compareTo(BigDecimal.ZERO) >0 && intoingQty.compareTo(BigDecimal.ZERO)==0) {
-			//已入库
-			intoStatus = Constant.IntoStatus.YIRUKU.getName();
-		}
-		return intoStatus;
-	}
-
-
-
-
-	/**
-	 * @desc   : 条件查询 --- web端入库办理用
-	 * @date   : 2024/3/23 9:24
-	 * @author : 寇珊珊
-	 */
-	@Pagination
-	public ResponseResultVO<PageList<InboundResponse>> selectInbound(InboundQuery inboundQuery) {
-		return super.mergeListWithCount(inboundQuery, inboundMapper.selectInbound(inboundQuery),
-				inboundMapper.selectInboundCond(inboundQuery));
-	}
-
-	/**
-	 * @desc   : 查询明细查询 --- web端入库办理用
-	 * @date   : 2024/3/9 15:43
-	 * @author : 寇珊珊
-	 */
-	public ResponseResultVO<Map<String, Object>> selectInboundItem(String id) {
-		Map<String, Object> result = new HashMap<>();
-		// 商品明细
-		List<InboundItemResponse> inboundItemResponses = inboundItemMapper.selectInboundItem(new InboundItemQuery().setIntoId(id));
-		result.put("itemList", inboundItemResponses);
-		// 收款
-
-		// 附件
-		return ResponseResultUtil.success(result);
-	}
-
-
+    @Override
+    public BaseMapper<Inbound> getRepository() {
+        return inboundMapper;
+    }
+
+    @Autowired
+    private InboundMapper inboundMapper;
+
+    @Autowired
+    private InboundConvert inboundConvert;
+
+    @Autowired
+    private InboundItemMapper inboundItemMapper;
+
+    @Autowired
+    private InboundItemConvert inboundItemConvert;
+
+    @Autowired
+    private CommonService commonService;
+
+    @Autowired
+    private CommonMapper commonMapper;
+
+    @Autowired
+    private InventoryService inventoryService;
+
+
+    /**
+     * @desc : 条件查询
+     * @date : 2024/3/7 14:12
+     * @author : 寇珊珊
+     */
+    @Pagination
+    public ResponseResultVO<PageList<InboundResponse>> selectByCond(InboundQuery inboundQuery) {
+        return super.mergeListWithCount(inboundQuery, inboundMapper.selectByCond(inboundQuery),
+                inboundMapper.countByCond(inboundQuery));
+    }
+
+    /**
+     * @desc : 查询明细
+     * @date : 2024/3/9 15:43
+     * @author : 寇珊珊
+     */
+    @Pagination
+    public ResponseResultVO<Map<String, Object>> selectOtherInboundItemInfoById(String id) {
+        Map<String, Object> result = new HashMap<>();
+        // 商品明细
+        List<InboundItemResponse> inboundItemResponses = inboundItemMapper.selectByCond(new InboundItemQuery().setIntoId(id));
+        result.put("itemList", inboundItemResponses);
+        // 收款
+
+        // 附件
+        return ResponseResultUtil.success(result);
+    }
+
+
+    /**
+     * @desc : 其他入库新建
+     * @date : 2024/3/7 14:13
+     * @author : 寇珊珊
+     */
+    @Transactional(rollbackFor = {Exception.class})
+    public ResponseResultVO<?> otherInboundInsert(InboundVO inboundVO) {
+        //region  查询当前公司的系统参数  自动办理信息  并赋值
+        Map<String, Object> map = new HashMap<>();
+        map.put("cpId", inboundVO.getCpId());
+        map.put("code", "IVT_001");
+        //自动办理标识
+        String flgHandleSetting = commonMapper.getSettingValue(map);
+        //自动办理标识为1 自动办理入库
+        if (Constant.FlgAutoHandleStringType.ONE.getValue().equals(flgHandleSetting)) {
+            inboundVO.setFlgHandleSetting(Constant.FlgHandleSetting.TRUE.getValue());
+            inboundVO.setFlgAutoHandle(Constant.FlgAutoHandle.TRUE.getValue());
+        }
+        //endregion
+
+        //region  总单
+        //获取 id/单号
+        Map<String, Object> codeMap = commonService.getUniqueNoteCode(Constant.docNameConstant.OTHERINBOUND.getName(), false);
+        inboundVO.setIntoId(codeMap.get("outId").toString()).
+                setIntoNo(codeMap.get("outNote").toString());
+        //入库类型
+        inboundVO.setIntoType(Constant.IntoType.OTHER.getName());
+        //自动入库标识
+        if (inboundVO.getFlgAutoHandle()) {
+            //已入库
+            inboundVO.setIntoStatus(Constant.IntoStatus.YIRUKU.getName());
+        } else {
+            //入库中
+            inboundVO.setIntoStatus(Constant.IntoStatus.RUKUZHONG.getName());
+        }
+        //入库状态等于已入库 更新合计入库数量/金额 = 入库中数量/入库中金额
+        if (Constant.IntoStatus.YIRUKU.getName().equals(inboundVO.getIntoStatus())) {
+            inboundVO.setIntoQty(inboundVO.getIntoingQty())
+                    .setIntoAmt(inboundVO.getIntoingAmt())
+                    .setIntoingQty(BigDecimal.ZERO)
+                    .setIntoingAmt(BigDecimal.ZERO)
+            ;
+        } else {
+            inboundVO.setIntoQty(BigDecimal.ZERO)
+                    .setIntoAmt(BigDecimal.ZERO)
+            ;
+        }
+        //实体转换
+        Inbound inbound = inboundConvert.convertToPo(inboundVO);
+        inboundMapper.insert(inbound);
+        //endregion
+
+        //region 明细
+        //校验明细
+        if (inboundVO.getItemList().size() == 0) {
+            throw new BaseBusinessException(ErrorCodeEnum.INBOUND_ITEM_NOT_EXIST.getCode(),
+                    ErrorCodeEnum.INBOUND_ITEM_NOT_EXIST.getMessage());
+        }
+        for (InboundItemVO inboundItemVO : inboundVO.getItemList()) {
+            //region 将库存需要的参数赋值
+            inboundItemVO.setInventoryType(Constant.InventoryType.INBOUND.getName());
+            inboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.OTHER_INBOUND.getValue());
+            //endregion
+
+            //总单id
+            inboundItemVO.setIntoId(inboundVO.getIntoId());
+            //入库类型
+            inboundItemVO.setIntoType(inboundVO.getIntoType());
+            //出库数量
+            inboundItemVO.setOutQty(BigDecimal.ZERO);
+            //入库状态等于已入库 更新合计入库数量/金额 = 入库中数量/入库中金额
+            if (Constant.IntoStatus.YIRUKU.getName().equals(inboundVO.getIntoStatus())) {
+                inboundItemVO
+                        .setIntoQty(inboundItemVO.getIntoingQty())
+                        .setIntoAmt(inboundItemVO.getIntoingAmt())
+                        .setIntoingQty(BigDecimal.ZERO)
+                        .setIntoingAmt(BigDecimal.ZERO)
+                        .setCostPrice(inboundItemVO.getPriceInto())
+                        .setCostAmt(inboundItemVO.getOutQty().multiply(inboundItemVO.getPriceInto()).setScale(2, BigDecimal.ROUND_HALF_UP))
+                ;
+            } else {
+                inboundItemVO
+                        .setIntoQty(BigDecimal.ZERO)
+                        .setIntoAmt(BigDecimal.ZERO);
+            }
+            //入库状态
+            inboundItemVO.setIntoStatus(inboundVO.getIntoStatus());
+            //实体转换
+            InboundItem inboundItem = inboundItemConvert.convertToPo(inboundItemVO);
+            inboundItemMapper.insert(inboundItem);
+        }
+        //endregion
+
+
+        //todo 如果是已入库 调用库存  后续写库存这里补上
+        //region 库存
+        if (Constant.IntoStatus.YIRUKU.getName().equals(inboundVO.getIntoStatus())) {
+            Map<String, Object> invMap = new HashMap<>();
+            map.put("intoDetail", inboundVO.getItemList());
+            inventoryService.updateInventoryInformation(invMap);
+        }
+        //endregion
+
+
+        return ResponseResultUtil.success(inboundVO);
+    }
+
+
+    /**
+     * @desc : 其他入库编辑
+     * @date : 2024/3/25 16:25
+     * @author : 寇珊珊
+     */
+    @Transactional(rollbackFor = {Exception.class})
+    public ResponseResultVO<?> otherInboundUpdate(InboundVO inboundVO) {
+        //region 小编辑
+        if (!inboundVO.getLimitEdit()) {
+            Inbound inbound = new Inbound();
+            inbound.setIntoId(inboundVO.getIntoId());
+            inbound.setRemarks(inboundVO.getRemarks());
+            inbound.setAnnexPaths(inboundVO.getAnnexPaths());
+            inboundMapper.update(inbound,
+                    new UpdateWrapper<Inbound>().lambda()
+                            .eq(Inbound::getIntoId, UUID.fromString(inbound.getIntoId()))
+            );
+            for (InboundItemVO inboundItemVO : inboundVO.getItemList()) {
+                InboundItem inboundItem = new InboundItem();
+                inboundItem.setItemId(inboundItemVO.getItemId());
+                inboundItem.setRemarks(inboundItemVO.getRemarks());
+                inboundItemMapper.update(inboundItem,
+                        new UpdateWrapper<InboundItem>().lambda()
+                                .eq(InboundItem::getItemId, UUID.fromString(inboundItem.getItemId()))
+                );
+            }
+        }
+        //endregion
+        //region 大编辑
+        else {
+            //region 明细数量金额  求和
+            BigDecimal sumQty = inboundVO.getItemList().stream().map(InboundItemVO::getIntoingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
+            BigDecimal sumAmt = inboundVO.getItemList().stream().map(InboundItemVO::getIntoingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
+            //endregion
+
+            //region  自动办理参数为true  已入库编辑
+            //自动办理参数为true
+            if (Constant.FlgHandleSetting.TRUE.getValue().equals(inboundVO.getFlgHandleSetting())) {
+
+                //region 修改明细
+                List<InboundItemVO> itemList = inboundVO.getItemList();
+                for (InboundItemVO inboundItemVO : itemList) {
+                    //根据id查询
+                    InboundItemResponse inboundItemResponse = inboundItemMapper.selectById(inboundItemVO.getItemId());
+                    //region 将库存需要的参数赋值
+                    inboundItemVO.setInventoryType(Constant.InventoryType.INBOUND.getName());
+                    inboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.PURCHASE_ORDER.getValue());
+                    //编辑之前的数
+                    inboundItemVO.setQtyBeforeUpdate(inboundItemResponse.getIntoQty());
+                    inboundItemVO.setAmtBeforeUpdate(inboundItemResponse.getIntoAmt());
+                    //编辑之后的数
+                    inboundItemVO.setIntoQty(inboundItemVO.getIntoQty());
+                    inboundItemVO.setIntoAmt(inboundItemVO.getIntoAmt());
+
+                    //endregion
+
+                    //赋值
+                    InboundItem inboundItem = new InboundItem();
+                    inboundItem.setItemId(inboundItemVO.getItemId());
+                    inboundItem.setIntoQty(inboundItemVO.getIntoingQty());
+                    inboundItem.setIntoAmt(inboundItemVO.getIntoingAmt());
+                    inboundItem.setCostPrice(inboundItemVO.getPriceInto());
+                    inboundItem.setCostAmt(inboundItemVO.getIntoQty().multiply(inboundItemVO.getPriceInto()).setScale(6, BigDecimal.ROUND_HALF_UP));
+                    //修改
+                    inboundItemMapper.update(inboundItem,
+                            new UpdateWrapper<InboundItem>().lambda()
+                                    .eq(InboundItem::getItemId, UUID.fromString(inboundItem.getItemId()))
+                    );
+                }
+                //endregion
+
+                //region  修改入库总单
+                Inbound inbound = new Inbound();
+                inbound.setIntoId(inboundVO.getIntoId());
+                inbound.setIntoQty(sumQty);
+                inbound.setIntoAmt(sumAmt);
+                //修改
+                inboundMapper.update(inbound,
+                        new UpdateWrapper<Inbound>().lambda().eq(Inbound::getIntoId, UUID.fromString(inbound.getIntoId()))
+                );
+                //endregion
+
+                //region  todo调用库存
+                Map<String, Object> map = new HashMap<>();
+                map.put("intoDetail", inboundVO.getItemList());
+                inventoryService.updateInventoryInformation(map);
+                //endregion
+            }
+            //endregion
+
+            //region 自动办理参数false  入库中编辑
+            //自动办理标识为false 并且 自动办理参数为false  入库中
+            if (!inboundVO.getFlgAutoHandle() && Constant.FlgHandleSetting.FALSE.getValue().equals(inboundVO.getFlgHandleSetting())) {
+                //region 修改明细
+                List<InboundItemVO> itemList = inboundVO.getItemList();
+                for (InboundItemVO inboundItemVO : itemList) {
+                    //赋值
+                    InboundItem inboundItem = new InboundItem();
+                    inboundItem.setItemId(inboundItemVO.getItemId());
+                    inboundItem.setIntoingQty(inboundItemVO.getIntoingQty());
+                    inboundItem.setIntoingAmt(inboundItemVO.getIntoingAmt());
+                    //修改
+                    inboundItemMapper.update(inboundItem,
+                            new UpdateWrapper<InboundItem>().lambda()
+                                    .eq(InboundItem::getItemId, UUID.fromString(inboundItem.getItemId()))
+                    );
+                }
+                //endregion
+                //region  修改入库总单
+                Inbound inbound = new Inbound();
+                inbound.setIntoId(inboundVO.getIntoId());
+                inbound.setIntoingQty(sumQty);
+                inbound.setIntoingAmt(sumAmt);
+                //修改
+                inboundMapper.update(inbound,
+                        new UpdateWrapper<Inbound>().lambda().eq(Inbound::getIntoId, UUID.fromString(inbound.getIntoId()))
+                );
+                //endregion
+            }
+            //endregion
+
+        }
+        //endregion
+        return ResponseResultUtil.success(inboundVO);
+    }
+
+    /**
+     * @desc : 其他入库作废
+     * @date : 2024/3/25 16:25
+     * @author : 寇珊珊
+     */
+    @Transactional(rollbackFor = {Exception.class})
+    public ResponseResultVO<?> otherInboundRepeal(String intoId) {
+        //region  查询总单  查询明细
+        //根据id查询 此条入库单的数据还未更改前的数据
+        InboundResponse inboundResponse = inboundMapper.selectById(intoId);
+        //根据总单id查询
+        List<InboundItemResponse> inboundItemResponseList = inboundItemMapper.selectByCond(new InboundItemQuery().setIntoId(inboundResponse.getIntoId()));
+        //endregion
+
+        //region  自动办理参数为true  已入库编辑
+        //自动办理参数为true
+        if (Constant.FlgHandleSetting.TRUE.getValue().equals(inboundResponse.getFlgHandleSetting())) {
+            //region   todo  退账 当单据红的账款id不为空说明有账, 要先退账才能进行操作
+            if (inboundResponse.getReceivableId() != null) {
+
+            }
+            //endregion
+
+            //region 修改明细
+            for (InboundItemResponse inboundItemResponse : inboundItemResponseList) {
+                //region 将库存需要的参数赋值
+                inboundItemResponse.setInventoryType(Constant.InventoryType.INBOUND.getName());
+                inboundItemResponse.setInventoryDocCode(Constant.InventoryDocCode.PURCHASE_ORDER.getValue());
+                inboundItemResponse.setIntoQty(inboundItemResponse.getIntoQty().negate());
+                inboundItemResponse.setIntoAmt(inboundItemResponse.getIntoAmt().negate());
+                //endregion
+
+                //赋值
+                InboundItem inboundItem = new InboundItem();
+                inboundItem.setItemId(inboundItemResponse.getItemId());
+                inboundItem.setFlgValid(false);
+                //修改
+                inboundItemMapper.update(inboundItem,
+                        new UpdateWrapper<InboundItem>().lambda()
+                                .eq(InboundItem::getItemId, UUID.fromString(inboundItem.getItemId()))
+                );
+            }
+            //endregion
+
+            //region  修改入库总单
+            Inbound inbound = new Inbound();
+            inbound.setIntoId(inboundResponse.getIntoId());
+            inbound.setFlgValid(false);
+            //修改
+            inboundMapper.update(inbound,
+                    new UpdateWrapper<Inbound>().lambda().eq(Inbound::getIntoId, UUID.fromString(inbound.getIntoId()))
+            );
+            //endregion
+
+            //region
+            Map<String, Object> map = new HashMap<>();
+            map.put("intoDetail", inboundItemResponseList);
+            inventoryService.updateInventoryInformation(map);
+            //endregion
+        }
+        //endregion
+
+        //region 自动办理参数false  入库中编辑
+        //自动办理标识为false 并且 自动办理参数为false  入库中
+        if (!inboundResponse.getFlgAutoHandle() && Constant.FlgHandleSetting.FALSE.getValue().equals(inboundResponse.getFlgHandleSetting())) {
+            //region 修改明细
+            for (InboundItemResponse inboundItemResponse : inboundItemResponseList) {
+                //赋值
+                InboundItem inboundItem = new InboundItem();
+                inboundItem.setItemId(inboundItemResponse.getItemId());
+                inboundItem.setIntoingQty(BigDecimal.ZERO);
+                inboundItem.setIntoingAmt(BigDecimal.ZERO);
+                //修改
+                inboundItemMapper.update(inboundItem,
+                        new UpdateWrapper<InboundItem>().lambda()
+                                .eq(InboundItem::getItemId, UUID.fromString(inboundItem.getItemId()))
+                );
+            }
+            //endregion
+
+            //region  修改入库总单
+            Inbound inbound = new Inbound();
+            inbound.setIntoId(inboundResponse.getIntoId());
+            inbound.setIntoingQty(BigDecimal.ZERO);
+            inbound.setIntoAmt(BigDecimal.ZERO);
+            //修改
+            inboundMapper.update(inbound,
+                    new UpdateWrapper<Inbound>().lambda().eq(Inbound::getIntoId, UUID.fromString(inbound.getIntoId()))
+            );
+            //endregion
+        }
+        //endregion
+
+        return ResponseResultUtil.success();
+    }
+
+
+    /**
+     * @desc : 其他入库办理
+     * @date : 2024/3/7 15:47
+     * @author : 寇珊珊
+     */
+    @Transactional(rollbackFor = {Exception.class})
+    public ResponseResultVO<?> otherHandleInbound(InboundVO inboundVO) {
+        //region 编辑明细
+        //校验明细
+        if (inboundVO.getItemList().size() == 0) {
+            throw new BaseBusinessException(ErrorCodeEnum.INBOUND_ITEM_NOT_EXIST.getCode(),
+                    ErrorCodeEnum.INBOUND_ITEM_NOT_EXIST.getMessage());
+        }
+        for (InboundItemVO inboundItemVO : inboundVO.getItemList()) {
+            //region 将库存需要的参数赋值
+            inboundItemVO.setInventoryType(Constant.InventoryType.INBOUND.getName());
+            inboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.OTHER_INBOUND.getValue());
+            //endregion
+            //region  修改明细
+            if (inboundItemVO.getIntoId() != null) {
+                InboundItemResponse inboundItemResponse = inboundItemMapper.selectById(inboundItemVO.getItemId());
+                //region 校验数量是否超出
+                if (inboundItemVO.getIntoingQty().compareTo(inboundItemResponse.getIntoingQty()) > 0) {
+                    throw new BaseBusinessException(ErrorCodeEnum.CANNOT_EXCEED_THE_QUANTITY_IN_THE_OUTBOUND_SHIPMENT.getCode(),
+                            ErrorCodeEnum.CANNOT_EXCEED_THE_QUANTITY_IN_THE_OUTBOUND_SHIPMENT.getMessage());
+                }
+                //endregion
+
+                //region 编辑明细
+                inboundItemVO
+                        .setIntoQty(inboundItemResponse.getIntoQty().add(inboundItemVO.getIntoingQty()))
+                        .setIntoAmt(inboundItemResponse.getIntoAmt().add(inboundItemVO.getIntoingAmt()))
+                        .setIntoingQty(BigDecimal.ZERO)
+                        .setIntoingAmt(BigDecimal.ZERO)
+                        .setCostPrice(inboundItemVO.getPriceInto())
+                        .setCostPrice(inboundItemVO.getIntoQty().subtract(inboundItemVO.getCostPrice()).setScale(2, BigDecimal.ROUND_HALF_UP))
+                ;
+                //入库状态
+                String intoStatus = this.setIntoStatus(inboundItemVO.getIntoingQty(), inboundItemVO.getIntoQty());
+                inboundItemVO.setIntoStatus(intoStatus);
+                //实体转换
+                InboundItem inboundItem = inboundItemConvert.convertToPo(inboundItemVO);
+                //修改
+                inboundItemMapper.update(inboundItem,
+                        new UpdateWrapper<InboundItem>().lambda()
+                                .eq(InboundItem::getItemId, UUID.fromString(inboundItem.getItemId()))
+                );
+                //endregion
+            }
+            //endregion
+
+            //region 新建明细
+            else {
+                inboundItemVO
+                        .setIntoQty(inboundItemVO.getIntoingQty())
+                        .setIntoAmt(inboundItemVO.getIntoingAmt())
+                        .setIntoId(inboundVO.getIntoId())
+                        .setCostPrice(inboundItemVO.getPriceInto())
+                        .setCostAmt(inboundItemVO.getIntoQty().multiply(inboundItemVO.getPriceInto()).setScale(2, BigDecimal.ROUND_HALF_UP))
+                        .setIntoType(Constant.IntoType.OTHER.getName())
+                        .setIntoingQty(BigDecimal.ZERO)
+                        .setIntoingAmt(BigDecimal.ZERO)
+                ;
+                //入库状态
+                String intoStatus = this.setIntoStatus(inboundItemVO.getIntoingQty(), inboundItemVO.getIntoQty());
+                inboundItemVO.setIntoStatus(intoStatus);
+                //实体转换
+                InboundItem inboundItem = inboundItemConvert.convertToPo(inboundItemVO);
+                //新建
+                inboundItemMapper.insert(inboundItem);
+            }
+            //endregion
+        }
+        //endregion
+
+        //region 删除明细
+        if (inboundVO.getDeleteItemList() != null) {
+            for (InboundItemVO inboundItemVO : inboundVO.getDeleteItemList()) {
+                if (inboundItemVO.getItemId() != null) {
+                    InboundItem inboundItem = inboundItemConvert.convertToPo(inboundItemVO);
+                    inboundItem.setFlgValid(false);
+                    //修改
+                    inboundItemMapper.update(inboundItem,
+                            new UpdateWrapper<InboundItem>().lambda()
+                                    .eq(InboundItem::getItemId, UUID.fromString(inboundItem.getItemId()))
+                    );
+                }
+            }
+        }
+        //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.setIntoingQty(BigDecimal.ZERO);
+        inboundVO.setIntoingAmt(BigDecimal.ZERO);
+        //入库状态
+        String intoStatus = this.setIntoStatus(inboundVO.getIntoingQty(), inboundVO.getIntoQty());
+        inboundVO.setIntoStatus(intoStatus);
+        //实体转换
+        Inbound inbound = inboundConvert.convertToPo(inboundVO);
+        //修改
+        inboundMapper.update(inbound,
+                new UpdateWrapper<Inbound>().lambda()
+                        .eq(Inbound::getIntoId, UUID.fromString(inbound.getIntoId()))
+        );
+        //endregion
+
+        //region 修改库存
+        Map<String, Object> map = new HashMap<>();
+        map.put("intoDetail", inboundVO.getItemList());
+        inventoryService.updateInventoryInformation(map);
+        //endregion
+        return ResponseResultUtil.success(inboundVO);
+    }
+
+
+    /**
+     * @desc : 其它入库撤销
+     * @date : 2024/3/7 17:06
+     * @author : 寇珊珊
+     */
+    @Transactional(rollbackFor = {Exception.class})
+    public ResponseResultVO<?> otherInboundCancel(InboundVO inboundVO) {
+        //region 总单数据信息
+        InboundResponse inboundResponse = inboundMapper.selectById(inboundVO.getIntoId());
+        Inbound inbound = new Inbound();
+        inbound.setIntoId(inboundResponse.getIntoId())
+                .setIntoDate(null)
+                .setIntoStatus(Constant.IntoStatus.RUKUZHONG.getName())
+                .setIntoingQty(inboundResponse.getIntoQty())
+                .setIntoingAmt(inboundResponse.getIntoAmt())
+                .setIntoQty(BigDecimal.ZERO)
+                .setIntoAmt(BigDecimal.ZERO);
+        //修改
+        inboundMapper.update(inbound,
+                new UpdateWrapper<Inbound>().lambda()
+                        .eq(Inbound::getIntoId, UUID.fromString(inbound.getIntoId()))
+        );
+        //endregion
+
+        //region 明细数据
+        InboundItemQuery inboundItemQuery = new InboundItemQuery().setIntoId(inbound.getIntoId());
+        //根据总单查明细
+        List<InboundItemResponse> inboundItemResponseList = inboundItemMapper.selectByCond(inboundItemQuery);
+        for (InboundItemResponse inboundItemResponse : inboundItemResponseList) {
+            //region 将库存需要的参数赋值
+            inboundItemResponse.setInventoryType(Constant.InventoryType.INBOUND.getName());
+            inboundItemResponse.setInventoryDocCode(Constant.InventoryDocCode.OTHER_INBOUND.getValue());
+            //region
+            InboundItem inboundItem = new InboundItem();
+            inboundItem
+                    .setIntoId(inbound.getIntoId())
+                    .setIntoStatus(Constant.IntoStatus.RUKUZHONG.getName())
+                    .setIntoingQty(inboundItemResponse.getInvQty())
+                    .setIntoingAmt(inboundItemResponse.getIntoAmt())
+                    .setIntoQty(BigDecimal.ZERO)
+                    .setIntoAmt(BigDecimal.ZERO)
+                    .setCostPrice(BigDecimal.ZERO)
+                    .setCostAmt(BigDecimal.ZERO)
+                    .setItemId(inboundItemResponse.getItemId());
+            //修改
+            inboundItemMapper.update(inboundItem,
+                    new UpdateWrapper<InboundItem>().lambda()
+                            .eq(InboundItem::getItemId, UUID.fromString(inboundItem.getItemId()))
+            );
+            //数量金额取反 用于给库存使用
+            inboundItemResponse.setIntoQty(inboundItemResponse.getIntoQty().negate());
+            inboundItemResponse.setIntoAmt(inboundItemResponse.getIntoAmt().negate());
+        }
+        //endregion
+
+        //region 修改库存
+        Map<String, Object> map = new HashMap<>();
+        map.put("intoDetail", inboundItemResponseList);
+        inventoryService.updateInventoryInformation(map);
+        //endregion
+
+        return ResponseResultUtil.success();
+    }
+
+
+    /**
+     * @desc : 入库状态通用(目前本页面)
+     * @date : 2024/3/9 8:59
+     * @author : 寇珊珊
+     */
+    public String setIntoStatus(BigDecimal intoingQty, BigDecimal intoQty) {
+        //入库状态
+        String intoStatus = null;
+        //已入库数量>=0 入库中数量>0
+        if (intoQty.compareTo(BigDecimal.ZERO) >= 0 && intoingQty.compareTo(BigDecimal.ZERO) > 0) {
+            //入库中
+            intoStatus = Constant.IntoStatus.RUKUZHONG.getName();
+        }
+        //已入库数量=0 入库中数量=0
+        else if (intoQty.compareTo(BigDecimal.ZERO) == 0 && intoingQty.compareTo(BigDecimal.ZERO) == 0) {
+            //待入库
+            intoStatus = Constant.IntoStatus.DAIRUKU.getName();
+        }
+        //已入库数量>0 入库中数量=0
+        else if (intoQty.compareTo(BigDecimal.ZERO) > 0 && intoingQty.compareTo(BigDecimal.ZERO) == 0) {
+            //已入库
+            intoStatus = Constant.IntoStatus.YIRUKU.getName();
+        }
+        return intoStatus;
+    }
+
+
+    /**
+     * @desc : 条件查询 --- web端入库办理用
+     * @date : 2024/3/23 9:24
+     * @author : 寇珊珊
+     */
+    @Pagination
+    public ResponseResultVO<PageList<InboundResponse>> selectInbound(InboundQuery inboundQuery) {
+        return super.mergeListWithCount(inboundQuery, inboundMapper.selectInbound(inboundQuery),
+                inboundMapper.selectInboundCond(inboundQuery));
+    }
+
+    /**
+     * @desc : 查询明细查询 --- web端入库办理用
+     * @date : 2024/3/9 15:43
+     * @author : 寇珊珊
+     */
+    public ResponseResultVO<Map<String, Object>> selectInboundItem(String id) {
+        Map<String, Object> result = new HashMap<>();
+        // 商品明细
+        List<InboundItemResponse> inboundItemResponses = inboundItemMapper.selectInboundItem(new InboundItemQuery().setIntoId(id));
+        result.put("itemList", inboundItemResponses);
+        // 收款
+
+        // 附件
+        return ResponseResultUtil.success(result);
+    }
 
 
 }

+ 118 - 94
src/main/java/com/dk/mdm/service/ivt/inbound/InboundPurchaseReturnService.java

@@ -238,127 +238,151 @@ public class InboundPurchaseReturnService extends BaseService<Inbound> {
      */
     @Transactional(rollbackFor = {Exception.class})
     public ResponseResultVO<?> purchaseReturnInboundUpdate(InboundVO inboundVO) {
-        //region 根据id查询 此条入库单的数据还未更改前的数据
-        InboundResponse inboundResponse = inboundMapper.selectById(inboundVO.getIntoId());
-        BigDecimal sumQty = inboundVO.getItemList().stream().map(InboundItemVO::getIntoingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
-        BigDecimal sumAmt = inboundVO.getItemList().stream().map(InboundItemVO::getIntoingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
-        //endregion
-
-        //region  自动办理参数为true  已入库编辑
-        //自动办理参数为true
-        if (Constant.FlgHandleSetting.TRUE.getValue().equals(inboundVO.getFlgHandleSetting())) {
-            //region 退账
-            if (inboundVO.getReceivableId() != null) {
-                accountService.reversePayable(inboundVO.getIntoId(), Constant.InventoryDocCode.INTOBOUND.getTableName());
+        //region 小编辑
+        if (!inboundVO.getLimitEdit()) {
+            Inbound inbound = new Inbound();
+            inbound.setIntoId(inboundVO.getIntoId());
+            inbound.setRemarks(inboundVO.getRemarks());
+            inbound.setAnnexPaths(inboundVO.getAnnexPaths());
+            inboundMapper.update(inbound,
+                    new UpdateWrapper<Inbound>().lambda()
+                            .eq(Inbound::getIntoId, UUID.fromString(inbound.getIntoId()))
+            );
+            for (InboundItemVO inboundItemVO : inboundVO.getItemList()) {
+                InboundItem inboundItem = new InboundItem();
+                inboundItem.setItemId(inboundItemVO.getItemId());
+                inboundItem.setRemarks(inboundItemVO.getRemarks());
+                inboundItemMapper.update(inboundItem,
+                        new UpdateWrapper<InboundItem>().lambda()
+                                .eq(InboundItem::getItemId, UUID.fromString(inboundItem.getItemId()))
+                );
             }
+        }
+        //endregion
+        //region 大编辑
+        else {
+            //region 根据id查询 此条入库单的数据还未更改前的数据
+            InboundResponse inboundResponse = inboundMapper.selectById(inboundVO.getIntoId());
+            BigDecimal sumQty = inboundVO.getItemList().stream().map(InboundItemVO::getIntoingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
+            BigDecimal sumAmt = inboundVO.getItemList().stream().map(InboundItemVO::getIntoingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
             //endregion
 
-            //region 修改明细
-            List<InboundItemVO> itemList = inboundVO.getItemList();
-            for (InboundItemVO inboundItemVO : itemList) {
-
-                //region  不能新建
-                if(inboundItemVO.getSPurItemId()==null){
-                    throw new BaseBusinessException(ErrorCodeEnum.ITEMS_THAT_ARE_NOT_AVAILABLE_HANDLE.getCode(),
-                            ErrorCodeEnum.ITEMS_THAT_ARE_NOT_AVAILABLE_HANDLE.getMessage());
+            //region  自动办理参数为true  已入库编辑
+            //自动办理参数为true
+            if (Constant.FlgHandleSetting.TRUE.getValue().equals(inboundVO.getFlgHandleSetting())) {
+                //region 退账
+                if (inboundVO.getReceivableId() != null) {
+                    accountService.reversePayable(inboundVO.getIntoId(), Constant.InventoryDocCode.INTOBOUND.getTableName());
                 }
                 //endregion
 
-                //根据id查询
-                InboundItemResponse inboundItemResponse = inboundItemMapper.selectById(inboundItemVO.getItemId());
-
-                //region 将库存需要的参数赋值
-                inboundItemVO.setInventoryType(Constant.InventoryType.INBOUND.getName());
-                inboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.PURCHASE_RETURN.getValue());
-                //编辑之前的数
-                inboundItemVO.setQtyBeforeUpdate(inboundItemResponse.getIntoQty());
-                inboundItemVO.setAmtBeforeUpdate(inboundItemResponse.getIntoAmt());
-                //编辑之后的数
-                inboundItemVO.setIntoQty(inboundItemVO.getIntoQty());
-                inboundItemVO.setIntoAmt(inboundItemVO.getIntoAmt());
+                //region 修改明细
+                List<InboundItemVO> itemList = inboundVO.getItemList();
+                for (InboundItemVO inboundItemVO : itemList) {
+
+                    //region  不能新建
+                    if (inboundItemVO.getSPurItemId() == null) {
+                        throw new BaseBusinessException(ErrorCodeEnum.ITEMS_THAT_ARE_NOT_AVAILABLE_HANDLE.getCode(),
+                                ErrorCodeEnum.ITEMS_THAT_ARE_NOT_AVAILABLE_HANDLE.getMessage());
+                    }
+                    //endregion
+
+                    //根据id查询
+                    InboundItemResponse inboundItemResponse = inboundItemMapper.selectById(inboundItemVO.getItemId());
+
+                    //region 将库存需要的参数赋值
+                    inboundItemVO.setInventoryType(Constant.InventoryType.INBOUND.getName());
+                    inboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.PURCHASE_RETURN.getValue());
+                    //编辑之前的数
+                    inboundItemVO.setQtyBeforeUpdate(inboundItemResponse.getIntoQty());
+                    inboundItemVO.setAmtBeforeUpdate(inboundItemResponse.getIntoAmt());
+                    //编辑之后的数
+                    inboundItemVO.setIntoQty(inboundItemVO.getIntoQty());
+                    inboundItemVO.setIntoAmt(inboundItemVO.getIntoAmt());
+
+                    //endregion
+
+                    //赋值
+                    InboundItem inboundItem = new InboundItem();
+                    inboundItem.setItemId(inboundItemVO.getItemId());
+                    inboundItem.setIntoQty(inboundItemVO.getIntoingQty());
+                    inboundItem.setIntoAmt(inboundItemVO.getIntoingAmt());
+                    inboundItem.setCostPrice(inboundItemVO.getPriceInto());
+                    inboundItem.setCostAmt(inboundItemVO.getIntoQty().multiply(inboundItemVO.getPriceInto()).setScale(6, BigDecimal.ROUND_HALF_UP));
+                    //修改
+                    inboundItemMapper.update(inboundItem,
+                            new UpdateWrapper<InboundItem>().lambda()
+                                    .eq(InboundItem::getItemId, UUID.fromString(inboundItem.getItemId()))
+                    );
 
+                }
                 //endregion
 
-                //赋值
-                InboundItem inboundItem = new InboundItem();
-                inboundItem.setItemId(inboundItemVO.getItemId());
-                inboundItem.setIntoQty(inboundItemVO.getIntoingQty());
-                inboundItem.setIntoAmt(inboundItemVO.getIntoingAmt());
-                inboundItem.setCostPrice(inboundItemVO.getPriceInto());
-                inboundItem.setCostAmt(inboundItemVO.getIntoQty().multiply(inboundItemVO.getPriceInto()).setScale(6, BigDecimal.ROUND_HALF_UP));
+                //region  修改入库总单
+                Inbound inbound = new Inbound();
+                inbound.setIntoId(inboundVO.getIntoId());
+                inbound.setIntoQty(sumQty);
+                inbound.setIntoAmt(sumAmt);
                 //修改
-                inboundItemMapper.update(inboundItem,
-                        new UpdateWrapper<InboundItem>().lambda()
-                                .eq(InboundItem::getItemId, UUID.fromString(inboundItem.getItemId()))
+                inboundMapper.update(inbound,
+                        new UpdateWrapper<Inbound>().lambda().eq(Inbound::getIntoId, UUID.fromString(inbound.getIntoId()))
                 );
+                //endregion
 
-            }
-            //endregion
-
-            //region  修改入库总单
-            Inbound inbound = new Inbound();
-            inbound.setIntoId(inboundVO.getIntoId());
-            inbound.setIntoQty(sumQty);
-            inbound.setIntoAmt(sumAmt);
-            //修改
-            inboundMapper.update(inbound,
-                    new UpdateWrapper<Inbound>().lambda().eq(Inbound::getIntoId, UUID.fromString(inbound.getIntoId()))
-            );
-            //endregion
-
-            //region  账款
-            if (inboundVO.getReceivableId() != null) {
-                accountService.accPayable(inboundVO.getIntoId(), Constant.InventoryDocCode.INTOBOUND.getTableName());
-            }
-            //endregion
+                //region  账款
+                if (inboundVO.getReceivableId() != null) {
+                    accountService.accPayable(inboundVO.getIntoId(), Constant.InventoryDocCode.INTOBOUND.getTableName());
+                }
+                //endregion
 
-            //region  todo 调用库存
+                //region  todo 调用库存
 //                Map<String, Object> map = new HashMap<>();
 //                map.put("intoDetail",inboundVO.getItemList());
 //                inventoryService.updateInventoryInformation(map);
+                //endregion
+            }
             //endregion
-        }
-        //endregion
 
-        //region 自动办理参数false  入库中编辑
-        //自动办理标识为false 并且 自动办理参数为false  入库中
-        if (!inboundVO.getFlgAutoHandle() && Constant.FlgHandleSetting.FALSE.getValue().equals(inboundVO.getFlgHandleSetting())) {
-            //region 修改明细
-            List<InboundItemVO> itemList = inboundVO.getItemList();
-            for (InboundItemVO inboundItemVO : itemList) {
-                //region  不能新建
-                if(inboundItemVO.getSPurItemId()==null){
-                    throw new BaseBusinessException(ErrorCodeEnum.ITEMS_THAT_ARE_NOT_AVAILABLE_HANDLE.getCode(),
-                            ErrorCodeEnum.ITEMS_THAT_ARE_NOT_AVAILABLE_HANDLE.getMessage());
+            //region 自动办理参数false  入库中编辑
+            //自动办理标识为false 并且 自动办理参数为false  入库中
+            if (!inboundVO.getFlgAutoHandle() && Constant.FlgHandleSetting.FALSE.getValue().equals(inboundVO.getFlgHandleSetting())) {
+                //region 修改明细
+                List<InboundItemVO> itemList = inboundVO.getItemList();
+                for (InboundItemVO inboundItemVO : itemList) {
+                    //region  不能新建
+                    if (inboundItemVO.getSPurItemId() == null) {
+                        throw new BaseBusinessException(ErrorCodeEnum.ITEMS_THAT_ARE_NOT_AVAILABLE_HANDLE.getCode(),
+                                ErrorCodeEnum.ITEMS_THAT_ARE_NOT_AVAILABLE_HANDLE.getMessage());
+                    }
+                    //endregion
+
+                    //region 赋值明细
+                    InboundItem inboundItem = new InboundItem();
+                    inboundItem.setItemId(inboundItemVO.getItemId());
+                    inboundItem.setIntoingQty(inboundItemVO.getIntoingQty());
+                    inboundItem.setIntoingAmt(inboundItemVO.getIntoingAmt());
+                    //修改
+                    inboundItemMapper.update(inboundItem,
+                            new UpdateWrapper<InboundItem>().lambda()
+                                    .eq(InboundItem::getItemId, UUID.fromString(inboundItem.getItemId()))
+                    );
+                    //endregion
                 }
                 //endregion
-
-                //region 赋值明细
-                InboundItem inboundItem = new InboundItem();
-                inboundItem.setItemId(inboundItemVO.getItemId());
-                inboundItem.setIntoingQty(inboundItemVO.getIntoingQty());
-                inboundItem.setIntoingAmt(inboundItemVO.getIntoingAmt());
+                //region  修改入库总单
+                Inbound inbound = new Inbound();
+                inbound.setIntoId(inboundVO.getIntoId());
+                inbound.setIntoingQty(sumQty);
+                inbound.setIntoingAmt(sumAmt);
                 //修改
-                inboundItemMapper.update(inboundItem,
-                        new UpdateWrapper<InboundItem>().lambda()
-                                .eq(InboundItem::getItemId, UUID.fromString(inboundItem.getItemId()))
+                inboundMapper.update(inbound,
+                        new UpdateWrapper<Inbound>().lambda().eq(Inbound::getIntoId, UUID.fromString(inbound.getIntoId()))
                 );
                 //endregion
             }
             //endregion
-            //region  修改入库总单
-            Inbound inbound = new Inbound();
-            inbound.setIntoId(inboundVO.getIntoId());
-            inbound.setIntoingQty(sumQty);
-            inbound.setIntoingAmt(sumAmt);
-            //修改
-            inboundMapper.update(inbound,
-                    new UpdateWrapper<Inbound>().lambda().eq(Inbound::getIntoId, UUID.fromString(inbound.getIntoId()))
-            );
-            //endregion
         }
         //endregion
-
         return ResponseResultUtil.success(inboundVO);
     }
 

+ 204 - 153
src/main/java/com/dk/mdm/service/ivt/inbound/InboundPurchaseService.java

@@ -194,7 +194,7 @@ public class InboundPurchaseService extends BaseService<Inbound> {
             }
             //入库状态
             String intoStatus = this.setIntoStatus(purchaseResponse.getIntoingQty().add(purchaseUpdate.getIntoingQty()),
-                    purchaseResponse.getIntoQty().add(purchaseUpdate.getIntoQty()));
+                    purchaseResponse.getIntoQty().add(purchaseUpdate.getIntoQty()),purchaseResponse.getSumQuantity());
             purchaseUpdate.setIntoStatus(intoStatus);
             //修改
             int countRow = purchaseMapper.updateById(purchaseUpdate);
@@ -265,7 +265,7 @@ public class InboundPurchaseService extends BaseService<Inbound> {
                 }
                 //入库状态
                 String intoStatus = this.setIntoStatus(purchaseItemResponse.getIntoingQty().add(purchaseItem.getIntoingQty()),
-                        purchaseItemResponse.getIntoQty().add(purchaseItem.getIntoQty()));
+                        purchaseItemResponse.getIntoQty().add(purchaseItem.getIntoQty()),purchaseItemResponse.getItemQty());
                 purchaseItem.setIntoStatus(intoStatus);
                 int countRow = purchaseItemMapper.updateById(purchaseItem);
                 //数量超出
@@ -302,184 +302,209 @@ public class InboundPurchaseService extends BaseService<Inbound> {
      */
     @Transactional(rollbackFor = {Exception.class})
     public ResponseResultVO<?> purchaseInboundUpdate(InboundVO inboundVO) {
-        //region 根据id查询 此条入库单的数据还未更改前的数据
-        InboundResponse inboundResponse = inboundMapper.selectById(inboundVO.getIntoId());
-        BigDecimal sumQty = inboundVO.getItemList().stream().map(InboundItemVO::getIntoingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
-        BigDecimal sumAmt = inboundVO.getItemList().stream().map(InboundItemVO::getIntoingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
-        //endregion
-
-        //region  自动办理参数为true  已入库编辑
-        //自动办理参数为true
-        if (Constant.FlgHandleSetting.TRUE.getValue().equals(inboundVO.getFlgHandleSetting())) {
-            //region 退账
-            if (inboundVO.getReceivableId() != null) {
-                accountService.reversePayable(inboundVO.getIntoId(), Constant.InventoryDocCode.INTOBOUND.getTableName());
+        //region 小编辑
+        if (!inboundVO.getLimitEdit()) {
+            Inbound inbound = new Inbound();
+            inbound.setIntoId(inboundVO.getIntoId());
+            inbound.setRemarks(inboundVO.getRemarks());
+            inbound.setAnnexPaths(inboundVO.getAnnexPaths());
+            inboundMapper.update(inbound,
+                    new UpdateWrapper<Inbound>().lambda()
+                            .eq(Inbound::getIntoId, UUID.fromString(inbound.getIntoId()))
+            );
+            for (InboundItemVO inboundItemVO : inboundVO.getItemList()) {
+                InboundItem inboundItem = new InboundItem();
+                inboundItem.setItemId(inboundItemVO.getItemId());
+                inboundItem.setRemarks(inboundItemVO.getRemarks());
+                inboundItemMapper.update(inboundItem,
+                        new UpdateWrapper<InboundItem>().lambda()
+                                .eq(InboundItem::getItemId, UUID.fromString(inboundItem.getItemId()))
+                );
             }
+        }
+        //endregion
+        //region 大编辑
+        else {
+            //region 根据id查询 此条入库单的数据还未更改前的数据
+            InboundResponse inboundResponse = inboundMapper.selectById(inboundVO.getIntoId());
+            BigDecimal sumQty = inboundVO.getItemList().stream().map(InboundItemVO::getIntoingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
+            BigDecimal sumAmt = inboundVO.getItemList().stream().map(InboundItemVO::getIntoingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
             //endregion
 
-            //region 修改明细
-            List<InboundItemVO> itemList = inboundVO.getItemList();
-            for (InboundItemVO inboundItemVO : itemList) {
-                //根据id查询
-                InboundItemResponse inboundItemResponse = inboundItemMapper.selectById(inboundItemVO.getItemId());
-
-                //region  不能新建
-                if(inboundItemVO.getSPurItemId()==null){
-                    throw new BaseBusinessException(ErrorCodeEnum.ITEMS_THAT_ARE_NOT_AVAILABLE_HANDLE.getCode(),
-                            ErrorCodeEnum.ITEMS_THAT_ARE_NOT_AVAILABLE_HANDLE.getMessage());
+            //region  自动办理参数为true  已入库编辑
+            //自动办理参数为true
+            if (Constant.FlgHandleSetting.TRUE.getValue().equals(inboundVO.getFlgHandleSetting())) {
+                //region 退账
+                if (inboundVO.getReceivableId() != null) {
+                    accountService.reversePayable(inboundVO.getIntoId(), Constant.InventoryDocCode.INTOBOUND.getTableName());
                 }
                 //endregion
 
-                //region 将库存需要的参数赋值
-                inboundItemVO.setInventoryType(Constant.InventoryType.INBOUND.getName());
-                inboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.PURCHASE_ORDER.getValue());
-                //编辑之前的数
-                inboundItemVO.setQtyBeforeUpdate(inboundItemResponse.getIntoQty());
-                inboundItemVO.setAmtBeforeUpdate(inboundItemResponse.getIntoAmt());
-                //编辑之后的数
-                inboundItemVO.setIntoQty(inboundItemVO.getIntoQty());
-                inboundItemVO.setIntoAmt(inboundItemVO.getIntoAmt());
+                //region 修改明细
+                List<InboundItemVO> itemList = inboundVO.getItemList();
+                for (InboundItemVO inboundItemVO : itemList) {
+                    //根据id查询
+                    InboundItemResponse inboundItemResponse = inboundItemMapper.selectById(inboundItemVO.getItemId());
 
-                //endregion
+                    //region  不能新建
+                    if (inboundItemVO.getFromItemId() == null) {
+                        throw new BaseBusinessException(ErrorCodeEnum.ITEMS_THAT_ARE_NOT_AVAILABLE_HANDLE.getCode(),
+                                ErrorCodeEnum.ITEMS_THAT_ARE_NOT_AVAILABLE_HANDLE.getMessage());
+                    }
+                    //endregion
 
-                //赋值
-                InboundItem inboundItem = new InboundItem();
-                inboundItem.setItemId(inboundItemVO.getItemId());
-                inboundItem.setIntoQty(inboundItemVO.getIntoingQty());
-                inboundItem.setIntoAmt(inboundItemVO.getIntoingAmt());
-                inboundItem.setCostPrice(inboundItemVO.getPriceInto());
-                inboundItem.setCostAmt(inboundItemVO.getIntoQty().multiply(inboundItemVO.getPriceInto()).setScale(6, BigDecimal.ROUND_HALF_UP));
-                //修改
-                inboundItemMapper.update(inboundItem,
-                        new UpdateWrapper<InboundItem>().lambda()
-                                .eq(InboundItem::getItemId, UUID.fromString(inboundItem.getItemId()))
-                );
+                    //region 将库存需要的参数赋值
+                    inboundItemVO.setInventoryType(Constant.InventoryType.INBOUND.getName());
+                    inboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.PURCHASE_ORDER.getValue());
+                    //编辑之前的数
+                    inboundItemVO.setQtyBeforeUpdate(inboundItemResponse.getIntoQty());
+                    inboundItemVO.setAmtBeforeUpdate(inboundItemResponse.getIntoAmt());
+                    //编辑之后的数
+                    inboundItemVO.setIntoQty(inboundItemVO.getIntoQty());
+                    inboundItemVO.setIntoAmt(inboundItemVO.getIntoAmt());
 
-                //region  销售明细
-                if (inboundItemVO.getFromItemId() != null) {
-                    //根据id查询
-                    PurchaseItem purchaseItem = new PurchaseItem();
-                    purchaseItem.setItemId(inboundItemVO.getFromItemId());
-                    purchaseItem.setIntoQty(inboundItemResponse.getIntoQty().negate().add(inboundItemVO.getIntoingQty()));
-                    purchaseItem.setIntoAmt(inboundItemResponse.getIntoAmt().negate().add(inboundItemVO.getIntoingAmt()));
-                    int countRow = purchaseItemMapper.updateById(purchaseItem);
-                    //数量超出
-                    if (countRow == 0) {
-                        throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INVENTORY_QUANTITY_EXCEEDED.getMessage());
+                    //endregion
+
+                    //赋值
+                    InboundItem inboundItem = new InboundItem();
+                    inboundItem.setItemId(inboundItemVO.getItemId());
+                    inboundItem.setIntoQty(inboundItemVO.getIntoingQty());
+                    inboundItem.setIntoAmt(inboundItemVO.getIntoingAmt());
+                    inboundItem.setCostPrice(inboundItemVO.getPriceInto());
+                    inboundItem.setCostAmt(inboundItemVO.getIntoQty().multiply(inboundItemVO.getPriceInto()).setScale(6, BigDecimal.ROUND_HALF_UP));
+                    //修改
+                    inboundItemMapper.update(inboundItem,
+                            new UpdateWrapper<InboundItem>().lambda()
+                                    .eq(InboundItem::getItemId, UUID.fromString(inboundItem.getItemId()))
+                    );
+
+                    //region  销售明细
+                    if (inboundItemVO.getFromItemId() != null) {
+                        //根据id查询
+                        PurchaseItem purchaseItem = new PurchaseItem();
+                        purchaseItem.setItemId(inboundItemVO.getFromItemId());
+                        purchaseItem.setIntoQty(inboundItemResponse.getIntoQty().negate().add(inboundItemVO.getIntoingQty()));
+                        purchaseItem.setIntoAmt(inboundItemResponse.getIntoAmt().negate().add(inboundItemVO.getIntoingAmt()));
+                        int countRow = purchaseItemMapper.updateById(purchaseItem);
+                        //数量超出
+                        if (countRow == 0) {
+                            throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INVENTORY_QUANTITY_EXCEEDED.getMessage());
+                        }
                     }
+                    //endregion
                 }
                 //endregion
-            }
-            //endregion
 
-            //region  修改入库总单
-            Inbound inbound = new Inbound();
-            inbound.setIntoId(inboundVO.getIntoId());
-            inbound.setIntoQty(sumQty);
-            inbound.setIntoAmt(sumAmt);
-            //修改
-            inboundMapper.update(inbound,
-                    new UpdateWrapper<Inbound>().lambda().eq(Inbound::getIntoId, UUID.fromString(inbound.getIntoId()))
-            );
-            //endregion
+                //region  修改入库总单
+                Inbound inbound = new Inbound();
+                inbound.setIntoId(inboundVO.getIntoId());
+                inbound.setIntoQty(sumQty);
+                inbound.setIntoAmt(sumAmt);
+                //修改
+                inboundMapper.update(inbound,
+                        new UpdateWrapper<Inbound>().lambda().eq(Inbound::getIntoId, UUID.fromString(inbound.getIntoId()))
+                );
+                //endregion
 
-            //region 修改销售总单
-            Purchase purchase = new Purchase();
-            purchase.setPurId(inboundVO.getFromId());
-            purchase.setIntoQty(inboundResponse.getIntoQty().negate().add(sumQty));
-            purchase.setIntoAmt(inboundResponse.getIntoAmt().negate().add(sumAmt));
-            //修改
-            int countRow = purchaseMapper.updateById(purchase);
-            //数量超出
-            if (countRow == 0) {
-                throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INVENTORY_QUANTITY_EXCEEDED.getMessage());
-            }
-            //endregion
+                //region 修改销售总单
+                Purchase purchase = new Purchase();
+                purchase.setPurId(inboundVO.getFromId());
+                purchase.setIntoQty(inboundResponse.getIntoQty().negate().add(sumQty));
+                purchase.setIntoAmt(inboundResponse.getIntoAmt().negate().add(sumAmt));
+                //修改
+                int countRow = purchaseMapper.updateById(purchase);
+                //数量超出
+                if (countRow == 0) {
+                    throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INVENTORY_QUANTITY_EXCEEDED.getMessage());
+                }
+                //endregion
 
-            //region  账款
-            if (inboundVO.getReceivableId() != null) {
-                accountService.accPayable(inboundVO.getIntoId(), Constant.InventoryDocCode.INTOBOUND.getTableName());
-            }
-            //endregion
+                //region  账款
+                if (inboundVO.getReceivableId() != null) {
+                    accountService.accPayable(inboundVO.getIntoId(), Constant.InventoryDocCode.INTOBOUND.getTableName());
+                }
+                //endregion
 
-            //region  todo调用库存
+                //region  todo调用库存
 //                Map<String, Object> map = new HashMap<>();
 //                map.put("intoDetail",inboundVO.getItemList());
 //                inventoryService.updateInventoryInformation(map);
+                //endregion
+            }
             //endregion
-        }
-        //endregion
 
-        //region 自动办理参数false  入库中编辑
-        //自动办理标识为false 并且 自动办理参数为false  入库中
-        if (!inboundVO.getFlgAutoHandle() && Constant.FlgHandleSetting.FALSE.getValue().equals(inboundVO.getFlgHandleSetting())) {
-            //region 修改明细
-            List<InboundItemVO> itemList = inboundVO.getItemList();
-            for (InboundItemVO inboundItemVO : itemList) {
-                //根据id查询 获取到还未进行修改的数据
-                InboundItemResponse inboundItemResponse = inboundItemMapper.selectById(inboundItemVO.getItemId());
-
-                //region  不能新建
-                if(inboundItemVO.getSPurItemId()==null){
-                    throw new BaseBusinessException(ErrorCodeEnum.ITEMS_THAT_ARE_NOT_AVAILABLE_HANDLE.getCode(),
-                            ErrorCodeEnum.ITEMS_THAT_ARE_NOT_AVAILABLE_HANDLE.getMessage());
+            //region 自动办理参数false  入库中编辑
+            //自动办理标识为false 并且 自动办理参数为false  入库中
+            if (!inboundVO.getFlgAutoHandle() && Constant.FlgHandleSetting.FALSE.getValue().equals(inboundVO.getFlgHandleSetting())) {
+                //region 修改明细
+                List<InboundItemVO> itemList = inboundVO.getItemList();
+                for (InboundItemVO inboundItemVO : itemList) {
+                    //根据id查询 获取到还未进行修改的数据
+                    InboundItemResponse inboundItemResponse = inboundItemMapper.selectById(inboundItemVO.getItemId());
+
+                    //region  不能新建
+                    if (inboundItemVO.getFromItemId() == null) {
+                        throw new BaseBusinessException(ErrorCodeEnum.ITEMS_THAT_ARE_NOT_AVAILABLE_HANDLE.getCode(),
+                                ErrorCodeEnum.ITEMS_THAT_ARE_NOT_AVAILABLE_HANDLE.getMessage());
+                    }
+                    //endregion
+
+                    //赋值
+                    InboundItem inboundItem = new InboundItem();
+                    inboundItem.setItemId(inboundItemVO.getItemId());
+                    inboundItem.setIntoingQty(inboundItemVO.getIntoingQty());
+                    inboundItem.setIntoingAmt(inboundItemVO.getIntoingAmt());
+                    //修改
+                    inboundItemMapper.update(inboundItem,
+                            new UpdateWrapper<InboundItem>().lambda()
+                                    .eq(InboundItem::getItemId, UUID.fromString(inboundItem.getItemId()))
+                    );
+                    //region  销售明细
+                    if (inboundItemVO.getFromItemId() != null) {
+                        //根据id查询
+                        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()));
+                        int countRow = purchaseItemMapper.updateById(purchaseItem);
+                        //数量超出
+                        if (countRow == 0) {
+                            throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INVENTORY_QUANTITY_EXCEEDED.getMessage());
+                        }
+                    }
+                    //endregion
                 }
                 //endregion
 
-                //赋值
-                InboundItem inboundItem = new InboundItem();
-                inboundItem.setItemId(inboundItemVO.getItemId());
-                inboundItem.setIntoingQty(inboundItemVO.getIntoingQty());
-                inboundItem.setIntoingAmt(inboundItemVO.getIntoingAmt());
+                //region  修改入库总单
+                Inbound inbound = new Inbound();
+                inbound.setIntoId(inboundVO.getIntoId());
+                inbound.setIntoingQty(sumQty);
+                inbound.setIntoingAmt(sumAmt);
                 //修改
-                inboundItemMapper.update(inboundItem,
-                        new UpdateWrapper<InboundItem>().lambda()
-                                .eq(InboundItem::getItemId, UUID.fromString(inboundItem.getItemId()))
+                inboundMapper.update(inbound,
+                        new UpdateWrapper<Inbound>().lambda().eq(Inbound::getIntoId, UUID.fromString(inbound.getIntoId()))
                 );
-                //region  销售明细
-                if (inboundItemVO.getFromItemId() != null) {
-                    //根据id查询
-                    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()));
-                    int countRow = purchaseItemMapper.updateById(purchaseItem);
-                    //数量超出
-                    if (countRow == 0) {
-                        throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INVENTORY_QUANTITY_EXCEEDED.getMessage());
-                    }
+                //endregion
+
+                //region 修改采购总单
+                Purchase purchase = new Purchase();
+                purchase.setPurId(inboundVO.getFromId());
+                purchase.setIntoingQty(inboundResponse.getIntoingQty().negate().add(sumQty));
+                purchase.setIntoingAmt(inboundResponse.getIntoingAmt().negate().add(sumAmt));
+                //修改
+                int countRow = purchaseMapper.updateById(purchase);
+                //数量超出
+                if (countRow == 0) {
+                    throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INVENTORY_QUANTITY_EXCEEDED.getMessage());
                 }
                 //endregion
             }
             //endregion
 
-            //region  修改入库总单
-            Inbound inbound = new Inbound();
-            inbound.setIntoId(inboundVO.getIntoId());
-            inbound.setIntoingQty(sumQty);
-            inbound.setIntoingAmt(sumAmt);
-            //修改
-            inboundMapper.update(inbound,
-                    new UpdateWrapper<Inbound>().lambda().eq(Inbound::getIntoId, UUID.fromString(inbound.getIntoId()))
-            );
-            //endregion
-
-            //region 修改采购总单
-            Purchase purchase = new Purchase();
-            purchase.setPurId(inboundVO.getFromId());
-            purchase.setIntoingQty(inboundResponse.getIntoingQty().negate().add(sumQty));
-            purchase.setIntoingAmt(inboundResponse.getIntoingAmt().negate().add(sumAmt));
-            //修改
-            int countRow = purchaseMapper.updateById(purchase);
-            //数量超出
-            if (countRow == 0) {
-                throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INVENTORY_QUANTITY_EXCEEDED.getMessage());
-            }
-            //endregion
         }
         //endregion
-
         return ResponseResultUtil.success(inboundVO);
     }
 
@@ -657,7 +682,7 @@ public class InboundPurchaseService extends BaseService<Inbound> {
         }
         for (InboundItemVO inboundItemVO : inboundVO.getItemList()) {
             //region  不能新建
-            if(inboundItemVO.getSPurItemId()==null){
+            if (inboundItemVO.getFromItemId() == null) {
                 throw new BaseBusinessException(ErrorCodeEnum.ITEMS_THAT_ARE_NOT_AVAILABLE_HANDLE.getCode(),
                         ErrorCodeEnum.ITEMS_THAT_ARE_NOT_AVAILABLE_HANDLE.getMessage());
             }
@@ -686,7 +711,7 @@ public class InboundPurchaseService extends BaseService<Inbound> {
             purchaseItem.setIntoAmt(inboundItemVO.getIntoAmt());
             //入库状态
             String purItemIntoStatus = this.setIntoStatus(purchaseItemResponse.getIntoingQty().add(purchaseItem.getIntoingQty()),
-                    purchaseItemResponse.getIntoQty().add(purchaseItem.getIntoQty()));
+                    purchaseItemResponse.getIntoQty().add(purchaseItem.getIntoQty()),purchaseItemResponse.getItemQty());
             purchaseItem.setIntoStatus(purItemIntoStatus);
             int countRow = purchaseItemMapper.updateById(purchaseItem);
             //数量超出
@@ -743,7 +768,7 @@ public class InboundPurchaseService extends BaseService<Inbound> {
                     PurchaseItemResponse purchaseItemResponse = purchaseItemMapper.selectById(inboundItemVO.getFromItemId());
                     //入库状态
                     String intoStatus = this.setIntoStatus(purchaseItemResponse.getIntoingQty().add(purchaseItem.getIntoingQty()),
-                            purchaseItemResponse.getIntoQty().add(purchaseItem.getIntoQty()));
+                            purchaseItemResponse.getIntoQty().add(purchaseItem.getIntoQty()),purchaseItemResponse.getItemQty());
                     purchaseItem.setIntoStatus(intoStatus);
                     int countRow = purchaseItemMapper.updateById(purchaseItem);
                     //数量超出
@@ -791,7 +816,7 @@ public class InboundPurchaseService extends BaseService<Inbound> {
             PurchaseResponse purchaseResponse = purchaseMapper.selectById(inboundVO.getFromId());
             //入库状态
             String purIntoStatus = this.setIntoStatus(purchaseResponse.getIntoingQty().add(purchase.getIntoingQty()),
-                    purchaseResponse.getIntoQty().add(purchase.getIntoQty()));
+                    purchaseResponse.getIntoQty().add(purchase.getIntoQty()),purchase.getSumQuantity());
             purchase.setIntoStatus(purIntoStatus);
             //修改
             int countRow = purchaseMapper.updateById(purchase);
@@ -847,7 +872,7 @@ public class InboundPurchaseService extends BaseService<Inbound> {
             PurchaseResponse purchaseResponse = purchaseMapper.selectById(inboundVO.getFromId());
             //入库状态
             String intoStatus = this.setIntoStatus(purchaseResponse.getIntoingQty().add(purchase.getIntoingQty()),
-                    purchaseResponse.getIntoQty().add(purchase.getIntoQty()));
+                    purchaseResponse.getIntoQty().add(purchase.getIntoQty()),purchaseResponse.getSumQuantity());
             purchase.setIntoStatus(intoStatus);
             int countRow = purchaseMapper.updateById(purchase);
             //数量超出
@@ -890,7 +915,7 @@ public class InboundPurchaseService extends BaseService<Inbound> {
                 PurchaseItemResponse purchaseItemResponse = purchaseItemMapper.selectById(inboundItemResponse.getFromItemId());
                 //入库状态
                 String intoStatus = this.setIntoStatus(purchaseItemResponse.getIntoingQty().add(purchaseItem.getIntoingQty()),
-                        purchaseItemResponse.getIntoQty().add(purchaseItem.getIntoQty()));
+                        purchaseItemResponse.getIntoQty().add(purchaseItem.getIntoQty()),purchaseItemResponse.getItemQty());
                 purchaseItem.setIntoStatus(intoStatus);
                 //修改
                 int countRow = purchaseItemMapper.updateById(purchaseItem);
@@ -970,4 +995,30 @@ public class InboundPurchaseService extends BaseService<Inbound> {
         return intoStatus;
     }
 
+    /**
+     * @desc   : 上游单据入库状态通用(目前本页面)
+     * @date   : 2024/4/1 17:14
+     * @author : 寇珊珊
+     */
+    public String setIntoStatus(BigDecimal intoingQty, BigDecimal intoQty,BigDecimal sumQty) {
+        //入库状态
+        String intoStatus = null;
+        //入库中+已入库 小于 总数
+        if (intoingQty.add(intoingQty).compareTo(sumQty) < 0 ) {
+            //入库中
+            intoStatus = Constant.IntoStatus.RUKUZHONG.getName();
+        }
+        //已入库数量=0 入库中数量=0
+        else if (intoQty.compareTo(BigDecimal.ZERO) == 0 && intoingQty.compareTo(BigDecimal.ZERO) == 0) {
+            //待入库
+            intoStatus = Constant.IntoStatus.DAIRUKU.getName();
+        }
+        //入库中+已入库 等于 总数
+        else if (intoingQty.add(intoingQty).compareTo(sumQty) == 0) {
+            //已入库
+            intoStatus = Constant.IntoStatus.YIRUKU.getName();
+        }
+        return intoStatus;
+    }
+
 }

+ 120 - 43
src/main/java/com/dk/mdm/service/ivt/inventory/InventoryService.java

@@ -1,5 +1,6 @@
 package com.dk.mdm.service.ivt.inventory;
 
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.dk.common.infrastructure.annotaiton.Pagination;
 import com.dk.common.model.pojo.PageList;
 import com.alibaba.fastjson.JSON;
@@ -14,16 +15,10 @@ import com.dk.mdm.infrastructure.convert.ivt.InOutRecordConvert;
 import com.dk.mdm.infrastructure.convert.ivt.InboundConvert;
 import com.dk.mdm.infrastructure.convert.ivt.InventoryBatchConvert;
 import com.dk.mdm.infrastructure.convert.ivt.InventoryConvert;
-import com.dk.mdm.mapper.ivt.InOutRecordMapper;
-import com.dk.mdm.mapper.ivt.InventoryBatchMapper;
-import com.dk.mdm.mapper.ivt.OutboundItemCostMapper;
-import com.dk.mdm.model.pojo.ivt.InOutRecord;
-import com.dk.mdm.model.pojo.ivt.Inventory;
-import com.dk.mdm.mapper.ivt.InventoryMapper;
+import com.dk.mdm.mapper.ivt.*;
+import com.dk.mdm.model.pojo.ivt.*;
 import com.dk.common.service.BaseService;
 import com.dk.common.mapper.BaseMapper;
-import com.dk.mdm.model.pojo.ivt.InventoryBatch;
-import com.dk.mdm.model.pojo.ivt.OutboundItemCost;
 import com.dk.mdm.model.query.ivt.InboundQuery;
 import com.dk.mdm.model.query.ivt.InventoryBatchQuery;
 import com.dk.mdm.model.query.ivt.InventoryQuery;
@@ -35,6 +30,7 @@ import com.dk.mdm.model.response.ivt.InventoryResponse;
 import com.dk.mdm.model.vo.ivt.InOutRecordVO;
 import com.dk.mdm.model.vo.ivt.InventoryBatchVO;
 import com.dk.mdm.model.vo.ivt.InventoryVO;
+import com.dk.mdm.model.vo.ivt.OutboundItemVO;
 import org.springframework.stereotype.Service;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
@@ -42,9 +38,7 @@ import com.dk.common.infrastructure.constant.Constant;
 
 import java.math.BigDecimal;
 import java.time.LocalDate;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * @author : 寇珊珊
@@ -78,6 +72,15 @@ public class InventoryService extends BaseService<Inventory> {
     @Autowired
     private OutboundItemCostMapper outboundItemCostMapper;
 
+    @Autowired
+    private OutboundMapper outboundMapper;
+
+    @Autowired
+    private OutboundItemMapper outboundItemMapper;
+
+    @Autowired
+    private InboundItemMapper  inboundItemMapper;
+
 
     /**
      * @desc : 条件查询
@@ -98,6 +101,11 @@ public class InventoryService extends BaseService<Inventory> {
             rollbackFor = {Exception.class}
     )
     public ResponseResultVO<?> updateInventoryInformation(Map<String, Object> map) {
+        //region   返回的map
+        List<InOutRecordVO> intoReturnList = new ArrayList<>();
+        List<InOutRecordVO> outReturnList = new ArrayList<>();
+        //endregion
+
         //region map转json
         JSONArray intoDetail = new JSONArray();
         JSONArray outDetail = new JSONArray();
@@ -125,7 +133,9 @@ public class InventoryService extends BaseService<Inventory> {
             intoList = intoDetail.toJavaList(InOutRecordVO.class);
             intoList = this.setInOutRecordMessageByInto(intoList);
             //新建库存、库存批次,库存流水,出库成本
-            this.insertAllInventory(intoList);
+            intoReturnList = this.insertAllInventory(intoList);
+            //修改入库信息
+            this.updateIntobound(intoReturnList);
         }
         //出库操作库存
         else if (outDetail.size() > 0 && intoDetail.size() == 0) {
@@ -133,7 +143,9 @@ public class InventoryService extends BaseService<Inventory> {
             outList = outDetail.toJavaList(InOutRecordVO.class);
             outList = this.setInOutRecordMessageByOut(outList);
             //新建库存、库存批次,库存流水,出库成本
-            this.insertAllInventory(outList);
+            outReturnList= this.insertAllInventory(outList);
+            //修改出库信息
+            this.updateOutbound(outReturnList);
         }
         //库位移动操作库存
         else if (intoDetail.size() > 0 && outDetail.size() > 0) {
@@ -144,8 +156,12 @@ public class InventoryService extends BaseService<Inventory> {
             outList = outDetail.toJavaList(InOutRecordVO.class);
             outList = this.setInOutRecordMessageByOut(outList);
             //新建库存、库存批次,库存流水,出库成本
-            this.insertAllInventory(intoList);
-            this.insertAllInventory(outList);
+            //修改入库信息
+            intoReturnList  = this.insertAllInventory(intoList);
+            this.updateIntobound(intoReturnList);
+            //修改出库信息
+            outReturnList= this.insertAllInventory(outList);
+            this.updateOutbound(outReturnList);
         } else {
             throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.NO_MESSAGE_OPERATE_INVENTORY.getMessage());
         }
@@ -154,6 +170,67 @@ public class InventoryService extends BaseService<Inventory> {
     }
 
     /**
+     * @desc : 修改出库信息
+     * @date : 2024/4/1 14:30
+     * @author : 寇珊珊
+     */
+    @Transactional(
+            rollbackFor = {Exception.class}
+    )
+    public void updateOutbound(List<InOutRecordVO> inOutRecordVOList) {
+        //反写出库单金额 单价
+        if (Constant.InventoryType.OUTBOUND.getName().equals(inOutRecordVOList.get(0).getInventoryType())) {
+            BigDecimal sumOutQty = inOutRecordVOList.stream().map(InOutRecordVO::getIntoQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
+            BigDecimal sumOutAmt = inOutRecordVOList.stream().map(InOutRecordVO::getIntoAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
+            for (InOutRecordVO inOutRecordVO : inOutRecordVOList) {
+                //明细
+                OutboundItem outboundItem = new OutboundItem();
+                outboundItem.setOutQty(inOutRecordVO.getIntoQty());
+                outboundItem.setOutAmt(inOutRecordVO.getIntoAmt());
+                outboundItem.setPriceOut(inOutRecordVO.getCostPrice());
+                outboundItem.setCostPrice(inOutRecordVO.getCostPrice());
+                //修改
+                outboundItemMapper.update(outboundItem,
+                        new UpdateWrapper<OutboundItem>().lambda()
+                                .eq(OutboundItem::getItemId, UUID.fromString(outboundItem.getItemId()))
+                );
+            }
+            //总单
+            Outbound outbound = new Outbound();
+            outbound.setOutQty(sumOutQty);
+            outbound.setOutAmt(sumOutAmt);
+            //修改
+            outboundMapper.update(outbound,
+                    new UpdateWrapper<Outbound>().lambda().eq(Outbound::getOutId, UUID.fromString(outbound.getOutId()))
+            );
+        }
+    }
+    /**
+     * @desc : 修改入库信息
+     * @date : 2024/4/1 14:30
+     * @author : 寇珊珊
+     */
+    @Transactional(
+            rollbackFor = {Exception.class}
+    )
+    public void updateIntobound(List<InOutRecordVO> intoReturnList) {
+        //反写出库单金额 单价
+        if (Constant.InventoryType.INBOUND.getName().equals(intoReturnList.get(0).getInventoryType())) {
+            for (InOutRecordVO inOutRecordVO : intoReturnList) {
+                //明细
+                InboundItem inboundItem = new InboundItem();
+                inboundItem.setItemId(inOutRecordVO.getBiznisItemId());
+                inboundItem.setInvId(inOutRecordVO.getInvId());
+                //修改
+                inboundItemMapper.update(inboundItem,
+                        new UpdateWrapper<InboundItem>().lambda()
+                                .eq(InboundItem::getItemId, UUID.fromString(inboundItem.getItemId()))
+                );
+            }
+        }
+    }
+
+    /**
      * @desc : 入库----赋值并校验库存流水数据
      * @date : 2024/3/21 16:04
      * @author : 寇珊珊
@@ -250,11 +327,11 @@ public class InventoryService extends BaseService<Inventory> {
                 throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.FROM_ITEM_ID_IS_NULL.getMessage());
             }
             //库存业务类型是盘亏出库 不校验 入库价不为空
-            if (inventoryBatchVO.getPriceInto() == null && !Constant.InventoryDocCode.INVENTORY_LOSS.getValue().equals(inventoryBatchVO.getInventoryDocCode())){
+            if (inventoryBatchVO.getPriceInto() == null && !Constant.InventoryDocCode.INVENTORY_LOSS.getValue().equals(inventoryBatchVO.getInventoryDocCode())) {
                 throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.COST_PRICE_IS_NULL.getMessage());
             }
             //数量不为空 并且 >0
-            if (inventoryBatchVO.getIntoQty() == null && inventoryBatchVO.getIntoQty().compareTo(BigDecimal.ZERO)>0) {
+            if (inventoryBatchVO.getIntoQty() == null && inventoryBatchVO.getIntoQty().compareTo(BigDecimal.ZERO) > 0) {
                 throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.QTY_IS_NULL.getMessage());
             }
             //金额不为空
@@ -284,10 +361,10 @@ public class InventoryService extends BaseService<Inventory> {
             //不存在  新建
             if (inventoryResponse == null) {
                 //采购退货入库  或者  是出库但不是销售退货出库
-                if(Constant.InventoryDocCode.PURCHASE_RETURN.getValue().equals(inOutRecordVO.getInventoryDocCode())  ||
+                if (Constant.InventoryDocCode.PURCHASE_RETURN.getValue().equals(inOutRecordVO.getInventoryDocCode()) ||
                         (Constant.InventoryType.OUTBOUND.getName().equals(inOutRecordVO.getInventoryType()) &&
-                                ! Constant.InventoryDocCode.SALE_RETURN.getValue().equals(inOutRecordVO.getInventoryDocCode()))
-                ){
+                                !Constant.InventoryDocCode.SALE_RETURN.getValue().equals(inOutRecordVO.getInventoryDocCode()))
+                ) {
                     throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.SKU_IS_NOT_IN_INVENTORY.getMessage());
                 }
                 Inventory inventory = new Inventory();
@@ -298,7 +375,7 @@ public class InventoryService extends BaseService<Inventory> {
                 //非标号
                 inventory.setNonStdCode(inOutRecordVO.getNonStdCode());
                 //销售退货出库也是新建 但是数量要取反 因为传过来的时候负数
-                if(Constant.InventoryDocCode.SALE_RETURN.getValue().equals(inOutRecordVO.getInventoryDocCode())){
+                if (Constant.InventoryDocCode.SALE_RETURN.getValue().equals(inOutRecordVO.getInventoryDocCode())) {
                     //库存数量
                     inventory.setInvQty(inOutRecordVO.getIntoQty().negate());
                     //可售数量(可用量)
@@ -307,7 +384,7 @@ public class InventoryService extends BaseService<Inventory> {
                     inventory.setCostAmt(inOutRecordVO.getIntoAmt().negate());
                     //库存单价   存货资产/存货数量
                     inventory.setCostPrice(inventory.getCostAmt().negate().divide(inventory.getInvQty().negate()).setScale(2, BigDecimal.ROUND_HALF_UP));
-                }else{
+                } else {
                     //库存数量
                     inventory.setInvQty(inOutRecordVO.getIntoQty());
                     //可售数量(可用量)
@@ -339,9 +416,9 @@ public class InventoryService extends BaseService<Inventory> {
                 //实体转换
                 InventoryVO inventoryVO = inventoryConvert.convertToVO(inventory);
                 //采购退货入库  或者  是出库但不是销售退货出库
-                if(Constant.InventoryDocCode.PURCHASE_RETURN.getValue().equals(inOutRecordVO.getInventoryDocCode())  ||
-                        (Constant.InventoryType.OUTBOUND.getName().equals(inOutRecordVO.getInventoryType()) &&  ! Constant.InventoryDocCode.SALE_RETURN.getValue().equals(inOutRecordVO.getInventoryDocCode()))
-                ){
+                if (Constant.InventoryDocCode.PURCHASE_RETURN.getValue().equals(inOutRecordVO.getInventoryDocCode()) ||
+                        (Constant.InventoryType.OUTBOUND.getName().equals(inOutRecordVO.getInventoryType()) && !Constant.InventoryDocCode.SALE_RETURN.getValue().equals(inOutRecordVO.getInventoryDocCode()))
+                ) {
                     //更新库存  判断是否是库存数量和本次出库的数量一致,一致直接为0
                     if (inOutRecordVO.getIntoQty().abs().compareTo(inventoryResponse.getUsableQty()) == 0) {
                         inventory.setCostPrice(BigDecimal.ZERO);
@@ -349,7 +426,7 @@ public class InventoryService extends BaseService<Inventory> {
                         inventoryVO.setZeroFlag(true);
                     } else {
                         //根据上面的过滤如果是出库  数量取反(传值为正数改成负数)
-                        if(Constant.InventoryType.OUTBOUND.getName().equals(inOutRecordVO.getInventoryType())){
+                        if (Constant.InventoryType.OUTBOUND.getName().equals(inOutRecordVO.getInventoryType())) {
                             //库存数量
                             inventory.setInvQty(inOutRecordVO.getIntoQty().negate());
                             //库存资产
@@ -359,7 +436,7 @@ public class InventoryService extends BaseService<Inventory> {
                     }
                 }
                 //如果是销售退货出库  数量取反  (传值为负数改成正数)
-                if( Constant.InventoryDocCode.SALE_RETURN.getValue().equals(inOutRecordVO.getInventoryDocCode())){
+                if (Constant.InventoryDocCode.SALE_RETURN.getValue().equals(inOutRecordVO.getInventoryDocCode())) {
                     //库存数量
                     inventory.setInvQty(inOutRecordVO.getIntoQty().negate());
                     //库存资产
@@ -378,20 +455,20 @@ public class InventoryService extends BaseService<Inventory> {
     }
 
 
-   /*
-    * @desc   : 判断是新建还是更新库存流水
-    * @date   : 2024/3/29 16:32
-    * @author : 寇珊珊
-    */
+    /*
+     * @desc   : 判断是新建还是更新库存流水
+     * @date   : 2024/3/29 16:32
+     * @author : 寇珊珊
+     */
     @Transactional(
             rollbackFor = {Exception.class}
     )
     public InOutRecordVO checkInsertOrUpdateInventoryBatch(InOutRecordVO inOutRecordVO) {
         //region 新建 入库并且不是采购退货入库 或者是销售退货出库 走新建
-        if(Constant.InventoryDocCode.SALE_RETURN.getValue().equals(inOutRecordVO.getInventoryDocCode()) ||
+        if (Constant.InventoryDocCode.SALE_RETURN.getValue().equals(inOutRecordVO.getInventoryDocCode()) ||
                 (Constant.InventoryType.INBOUND.getName().equals(inOutRecordVO.getInventoryType()) &&
-                !Constant.InventoryDocCode.PURCHASE_RETURN.getValue().equals(inOutRecordVO.getInventoryDocCode()))
-        ){
+                        !Constant.InventoryDocCode.PURCHASE_RETURN.getValue().equals(inOutRecordVO.getInventoryDocCode()))
+        ) {
             //新建库存批次明细
             this.insertInventoryBatch(inOutRecordVO);
         }
@@ -413,7 +490,7 @@ public class InventoryService extends BaseService<Inventory> {
                     InventoryBatchVO inventoryBatchVO = new InventoryBatchVO();
                     //判断是否为最后一次扣减当前条库存
                     //是
-                    if(qty.abs().compareTo(inventoryBatchResponse.getInvQty())==0){
+                    if (qty.abs().compareTo(inventoryBatchResponse.getInvQty()) == 0) {
                         //主键赋值
                         inventoryBatchVO.setBatchId(inventoryBatchResponse.getBatchId());
                         //库存数量
@@ -436,13 +513,13 @@ public class InventoryService extends BaseService<Inventory> {
                     //不是
                     else {
                         //当前条库存批次明细够出库
-                        if(qty.abs().compareTo(inventoryBatchResponse.getInvQty())<0){
+                        if (qty.abs().compareTo(inventoryBatchResponse.getInvQty()) < 0) {
                             //主键赋值
                             inventoryBatchVO.setBatchId(inventoryBatchResponse.getBatchId());
                             //库存数量
                             inventoryBatchVO.setInvQty(inOutRecordVO.getIntoQty());
                             //存货资产
-                            inventoryBatchVO.setCostAmt( inventoryBatchVO.getInvQty().multiply(inventoryBatchResponse.getCostPrice()));
+                            inventoryBatchVO.setCostAmt(inventoryBatchVO.getInvQty().multiply(inventoryBatchResponse.getCostPrice()));
                             //清零标识
                             inventoryBatchVO.setZeroFlag(true);
                             inventoryBatchMapper.updateAmountAndQuantity(inventoryBatchVO);
@@ -457,7 +534,7 @@ public class InventoryService extends BaseService<Inventory> {
                             break;
                         }
                         //当前条库存批次明细不够出库
-                        if(qty.abs().compareTo(inventoryBatchResponse.getInvQty())>0){
+                        if (qty.abs().compareTo(inventoryBatchResponse.getInvQty()) > 0) {
                             //主键赋值
                             inventoryBatchVO.setBatchId(inventoryBatchResponse.getBatchId());
                             //库存数量
@@ -481,12 +558,12 @@ public class InventoryService extends BaseService<Inventory> {
                     }
                 }
                 inOutRecordVO.setIntoAmt(amt);
-            }else{
+            } else {
                 throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.CAN_OUTBOUND_QUANTITY_INSUFFICIENT.getMessage());
             }
         }
         //endregion
-        return  inOutRecordVO;
+        return inOutRecordVO;
     }
 
 
@@ -513,14 +590,14 @@ public class InventoryService extends BaseService<Inventory> {
         //非标号
         inventoryBatch.setNonStdCode(inOutRecordVO.getNonStdCode());
         //销售退货出库也是新建 但是数量要取反 因为传过来的时候负数
-        if(Constant.InventoryDocCode.SALE_RETURN.getValue().equals(inOutRecordVO.getInventoryDocCode())) {
+        if (Constant.InventoryDocCode.SALE_RETURN.getValue().equals(inOutRecordVO.getInventoryDocCode())) {
             //库存数量
             inventoryBatch.setInvQty(inOutRecordVO.getIntoQty().negate());
             //库存单价
             inventoryBatch.setCostPrice(inOutRecordVO.getPriceInto().negate());
             //货物资产
             inventoryBatch.setCostAmt(inOutRecordVO.getIntoAmt().negate());
-        }else{
+        } else {
             //库存数量
             inventoryBatch.setInvQty(inOutRecordVO.getIntoQty());
             //库存单价

+ 107 - 80
src/main/java/com/dk/mdm/service/ivt/outbound/OutboundOtherService.java

@@ -38,9 +38,9 @@ import java.util.UUID;
 
 
 /**
- * @desc   : 其他出库业务层
- * @date   : 2024/3/18 15:33
  * @author : 寇珊珊
+ * @desc : 其他出库业务层
+ * @date : 2024/3/18 15:33
  */
 @Service
 public class OutboundOtherService extends BaseService<Outbound> {
@@ -115,7 +115,7 @@ public class OutboundOtherService extends BaseService<Outbound> {
         //自动办理标识
         String flgHandleSetting = commonMapper.getSettingValue(map);
         //自动办理标识为1 自动办理出库
-        if(Constant.FlgAutoHandleStringType.ONE.getValue().equals(flgHandleSetting)){
+        if (Constant.FlgAutoHandleStringType.ONE.getValue().equals(flgHandleSetting)) {
             outboundVO.setFlgHandleSetting(Constant.FlgHandleSetting.TRUE.getValue());
             outboundVO.setFlgAutoHandle(Constant.FlgAutoHandle.TRUE.getValue());
         }
@@ -200,9 +200,9 @@ public class OutboundOtherService extends BaseService<Outbound> {
         //endregion
 
         //region 修改库存
-        if(Constant.OutStatus.YICHUKU.getName().equals(outboundVO.getOutStatus())){
+        if (Constant.OutStatus.YICHUKU.getName().equals(outboundVO.getOutStatus())) {
             Map<String, Object> invMap = new HashMap<>();
-            invMap.put("outDetail",outboundVO.getItemList());
+            invMap.put("outDetail", outboundVO.getItemList());
             inventoryService.updateInventoryInformation(invMap);
         }
         //endregion
@@ -218,100 +218,127 @@ public class OutboundOtherService extends BaseService<Outbound> {
      */
     @Transactional(rollbackFor = {Exception.class})
     public ResponseResultVO<?> otherOutboundUpdate(OutboundVO outboundVO) {
-        //region 明细数量金额  求和
-        BigDecimal sumQty = outboundVO.getItemList().stream().map(OutboundItemVO::getOutingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
-        BigDecimal sumAmt = outboundVO.getItemList().stream().map(OutboundItemVO::getOutingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
-        //endregion
-
-        //region  自动办理参数为true  已出库编辑
-        //自动办理参数为true
-        if (Constant.FlgHandleSetting.TRUE.getValue().equals(outboundVO.getFlgHandleSetting())) {
-
-            //region 修改明细
-            List<OutboundItemVO> itemList = outboundVO.getItemList();
-            for (OutboundItemVO outboundItemVO : itemList) {
-                //根据id查询
-                OutboundItemResponse outboundItemResponse = outboundItemMapper.selectById(outboundItemVO.getItemId());
-
-                //region 将库存需要的参数赋值
-                outboundItemVO.setInventoryType(Constant.InventoryType.INBOUND.getName());
-                outboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.PURCHASE_ORDER.getValue());
-                //编辑之前的数
-                outboundItemVO.setQtyBeforeUpdate(outboundItemResponse.getOutQty());
-                outboundItemVO.setAmtBeforeUpdate(outboundItemResponse.getOutAmt());
-                //编辑之后的数
-                outboundItemVO.setOutQty(outboundItemVO.getOutQty());
-                outboundItemVO.setOutAmt(outboundItemVO.getOutAmt());
-                //endregion
-
-                //赋值
+        //region 小编辑
+        if (!outboundVO.getLimitEdit()) {
+            Outbound  outbound = new Outbound();
+            outbound.setOutId(outboundVO.getOutId());
+            outbound.setRemarks(outboundVO.getRemarks());
+            outbound.setAnnexPaths(outboundVO.getAnnexPaths());
+            outboundMapper.update(outbound,
+                    new UpdateWrapper<Outbound>().lambda()
+                            .eq(Outbound::getOutId, UUID.fromString(outbound.getOutId()))
+            );
+            for (OutboundItemVO outboundItemVO : outboundVO.getItemList()) {
                 OutboundItem  outboundItem = new OutboundItem();
                 outboundItem.setItemId(outboundItemVO.getItemId());
-                outboundItem.setOutQty(outboundItemVO.getOutingQty());
-                outboundItem.setOutAmt(outboundItemVO.getOutingAmt());
-                outboundItem.setCostPrice(outboundItemVO.getPriceOut());
-                outboundItem.setCostAmt(outboundItemVO.getOutQty().multiply(outboundItemVO.getPriceOut()).setScale(6, BigDecimal.ROUND_HALF_UP));
-                //修改
+                outboundItem.setRemarks(outboundItemVO.getRemarks());
                 outboundItemMapper.update(outboundItem,
                         new UpdateWrapper<OutboundItem>().lambda()
                                 .eq(OutboundItem::getItemId, UUID.fromString(outboundItem.getItemId()))
                 );
             }
+        }
+        //endregion
+        //region 大编辑
+        else {
+            //region 明细数量金额  求和
+            BigDecimal sumQty = outboundVO.getItemList().stream().map(OutboundItemVO::getOutingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
+            BigDecimal sumAmt = outboundVO.getItemList().stream().map(OutboundItemVO::getOutingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
             //endregion
 
-            //region  修改出库总单
-            Outbound  outbound = new Outbound();
-            outbound.setOutId(outboundVO.getOutId());
-            outbound.setOutQty(sumQty);
-            outbound.setOutAmt(sumAmt);
-            //修改
-            outboundMapper.update(outbound,
-                    new UpdateWrapper<Outbound>().lambda().eq(Outbound::getOutId, UUID.fromString(outbound.getOutId()))
-            );
-            //endregion
+            //region  自动办理参数为true  已出库编辑
+            //自动办理参数为true
+            if (Constant.FlgHandleSetting.TRUE.getValue().equals(outboundVO.getFlgHandleSetting())) {
+
+                //region 修改明细
+                List<OutboundItemVO> itemList = outboundVO.getItemList();
+                for (OutboundItemVO outboundItemVO : itemList) {
+                    //根据id查询
+                    OutboundItemResponse outboundItemResponse = outboundItemMapper.selectById(outboundItemVO.getItemId());
+
+                    //region 将库存需要的参数赋值
+                    outboundItemVO.setInventoryType(Constant.InventoryType.INBOUND.getName());
+                    outboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.PURCHASE_ORDER.getValue());
+                    //编辑之前的数
+                    outboundItemVO.setQtyBeforeUpdate(outboundItemResponse.getOutQty());
+                    outboundItemVO.setAmtBeforeUpdate(outboundItemResponse.getOutAmt());
+                    //编辑之后的数
+                    outboundItemVO.setOutQty(outboundItemVO.getOutQty());
+                    outboundItemVO.setOutAmt(outboundItemVO.getOutAmt());
+                    //endregion
+
+                    //赋值
+                    OutboundItem outboundItem = new OutboundItem();
+                    outboundItem.setItemId(outboundItemVO.getItemId());
+                    outboundItem.setOutQty(outboundItemVO.getOutingQty());
+                    outboundItem.setOutAmt(outboundItemVO.getOutingAmt());
+                    outboundItem.setCostPrice(outboundItemVO.getPriceOut());
+                    outboundItem.setCostAmt(outboundItemVO.getOutQty().multiply(outboundItemVO.getPriceOut()).setScale(6, BigDecimal.ROUND_HALF_UP));
+                    //修改
+                    outboundItemMapper.update(outboundItem,
+                            new UpdateWrapper<OutboundItem>().lambda()
+                                    .eq(OutboundItem::getItemId, UUID.fromString(outboundItem.getItemId()))
+                    );
+                }
+                //endregion
 
-            //region 修改库存
-            if (Constant.OutStatus.YICHUKU.getName().equals(outboundVO.getOutStatus())) {
-                Map<String, Object> invMap = new HashMap<>();
-                invMap.put("outDetail", outboundVO.getItemList());
-                inventoryService.updateInventoryInformation(invMap);
+                //region  修改出库总单
+                Outbound outbound = new Outbound();
+                outbound.setOutId(outboundVO.getOutId());
+                outbound.setOutQty(sumQty);
+                outbound.setOutAmt(sumAmt);
+                //修改
+                outboundMapper.update(outbound,
+                        new UpdateWrapper<Outbound>().lambda().eq(Outbound::getOutId, UUID.fromString(outbound.getOutId()))
+                );
+                //endregion
+
+                //region 修改库存
+                if (Constant.OutStatus.YICHUKU.getName().equals(outboundVO.getOutStatus())) {
+                    Map<String, Object> invMap = new HashMap<>();
+                    invMap.put("outDetail", outboundVO.getItemList());
+                    inventoryService.updateInventoryInformation(invMap);
+                }
+                //endregion
             }
             //endregion
-        }
-        //endregion
 
-        //region 自动办理参数false  出库中编辑
-        //自动办理标识为false 并且 自动办理参数为false  出库中
-        if (!outboundVO.getFlgAutoHandle() && Constant.FlgHandleSetting.FALSE.getValue().equals(outboundVO.getFlgHandleSetting())) {
-            //region 修改明细
-            List<OutboundItemVO> itemList = outboundVO.getItemList();
-            for (OutboundItemVO outboundItemVO : itemList) {
-                //region 赋值明细
-                OutboundItem outboundItem = new OutboundItem();
-                outboundItem.setItemId(outboundItemVO.getItemId());
-                outboundItem.setOutingQty(outboundItemVO.getOutingQty());
-                outboundItem.setOutingAmt(outboundItemVO.getOutingAmt());
+            //region 自动办理参数false  出库中编辑
+            //自动办理标识为false 并且 自动办理参数为false  出库中
+            if (!outboundVO.getFlgAutoHandle() && Constant.FlgHandleSetting.FALSE.getValue().equals(outboundVO.getFlgHandleSetting())) {
+                //region 修改明细
+                List<OutboundItemVO> itemList = outboundVO.getItemList();
+                for (OutboundItemVO outboundItemVO : itemList) {
+                    //region 赋值明细
+                    OutboundItem outboundItem = new OutboundItem();
+                    outboundItem.setItemId(outboundItemVO.getItemId());
+                    outboundItem.setOutingQty(outboundItemVO.getOutingQty());
+                    outboundItem.setOutingAmt(outboundItemVO.getOutingAmt());
+                    //修改
+                    outboundItemMapper.update(outboundItem,
+                            new UpdateWrapper<OutboundItem>().lambda()
+                                    .eq(OutboundItem::getItemId, UUID.fromString(outboundItem.getItemId()))
+                    );
+                    //endregion
+                }
+                //endregion
+
+                //region  修改出库总单
+                Outbound outbound = new Outbound();
+                outbound.setOutId(outboundVO.getOutId());
+                outbound.setOutingQty(sumQty);
+                outbound.setOutingAmt(sumAmt);
                 //修改
-                outboundItemMapper.update(outboundItem,
-                        new UpdateWrapper<OutboundItem>().lambda()
-                                .eq(OutboundItem::getItemId, UUID.fromString(outboundItem.getItemId()))
+                outboundMapper.update(outbound,
+                        new UpdateWrapper<Outbound>().lambda().eq(Outbound::getOutId, UUID.fromString(outbound.getOutId()))
                 );
                 //endregion
             }
             //endregion
-            //region  修改出库总单
-            Outbound outbound  = new Outbound();
-            outbound.setOutId(outboundVO.getOutId());
-            outbound.setOutingQty(sumQty);
-            outbound.setOutingAmt(sumAmt);
-            //修改
-            outboundMapper.update(outbound,
-                    new UpdateWrapper<Outbound>().lambda().eq(Outbound::getOutId, UUID.fromString(outbound.getOutId()))
-            );
-            //endregion
         }
         //endregion
 
+
         return ResponseResultUtil.success(outboundVO);
     }
 
@@ -425,7 +452,7 @@ public class OutboundOtherService extends BaseService<Outbound> {
             //查询原单
             OutboundItemResponse outboundItemResponse = outboundItemMapper.selectById(outboundItemVO.getItemId());
             //region 校验数量是否超出
-            if(outboundItemVO.getOutingQty().compareTo(outboundItemResponse.getOutingQty()) > 0){
+            if (outboundItemVO.getOutingQty().compareTo(outboundItemResponse.getOutingQty()) > 0) {
                 throw new BaseBusinessException(ErrorCodeEnum.CANNOT_EXCEED_THE_QUANTITYIN_THE_WAREHOUSE.getCode(),
                         ErrorCodeEnum.CANNOT_EXCEED_THE_QUANTITYIN_THE_WAREHOUSE.getMessage());
             }
@@ -482,7 +509,7 @@ public class OutboundOtherService extends BaseService<Outbound> {
 
         //region 删除明细
         if (outboundVO.getDeleteItemList() != null) {
-         for (OutboundItemVO outboundItemVO : outboundVO.getDeleteItemList()) {
+            for (OutboundItemVO outboundItemVO : outboundVO.getDeleteItemList()) {
                 if (outboundItemVO.getItemId() != null) {
                     OutboundItem outboundItem = outboundItemConvert.convertToPo(outboundItemVO);
                     outboundItem.setFlgValid(false);

+ 179 - 155
src/main/java/com/dk/mdm/service/ivt/outbound/OutboundSaleOrderService.java

@@ -89,11 +89,11 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
     private InventoryService inventoryService;
 
     @Autowired
-    private AccountService  accountService;
+    private AccountService accountService;
 
     @Autowired
-    private  OutCommon outCommon;
-    
+    private OutCommon outCommon;
+
 
     /**
      * @desc : 销售出库新建
@@ -267,8 +267,8 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
         //endregion
 
         //region  已出库  账款
-        if(Constant.OutStatus.YICHUKU.getName().equals(outboundVO.getOutStatus())){
-            accountService.accPayable(outboundVO.getOutId(),Constant.InventoryDocCode.OUTBOUND.getTableName());
+        if (Constant.OutStatus.YICHUKU.getName().equals(outboundVO.getOutStatus())) {
+            accountService.accPayable(outboundVO.getOutId(), Constant.InventoryDocCode.OUTBOUND.getTableName());
         }
         //endregion
 
@@ -290,183 +290,207 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
      */
     @Transactional(rollbackFor = {Exception.class})
     public ResponseResultVO<?> saleOutboundUpdate(OutboundVO outboundVO) {
-        //region 根据id查询   并且明细数量金额  求和
-        OutboundResponse outboundResponse = outboundMapper.selectById(outboundVO.getOutId());
-        BigDecimal sumQty = outboundVO.getItemList().stream().map(OutboundItemVO::getOutingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
-        BigDecimal sumAmt = outboundVO.getItemList().stream().map(OutboundItemVO::getOutingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
-        //endregion
-
-        //region  自动办理参数为true  已入库编辑
-        //自动办理参数为true
-        if (Constant.FlgHandleSetting.TRUE.getValue().equals(outboundVO.getFlgHandleSetting())) {
-            //region 退账
-            if (outboundVO.getReceivableId() != null) {
-                accountService.reversePayable(outboundVO.getOutId(),Constant.InventoryDocCode.OUTBOUND.getTableName());
-            }
-            //endregion
-
-            //region 修改明细
-            List<OutboundItemVO> itemList = outboundVO.getItemList();
-            for (OutboundItemVO outboundItemVO : itemList) {
-                //根据id查询
-                OutboundItemResponse outboundItemResponse = outboundItemMapper.selectById(outboundItemVO.getItemId());
-
-                //region  不能新建
-                if(outboundItemVO.getSOrderItemId()==null){
-                    throw new BaseBusinessException(ErrorCodeEnum.ITEMS_THAT_ARE_NOT_AVAILABLE_HANDLE.getCode(),
-                            ErrorCodeEnum.ITEMS_THAT_ARE_NOT_AVAILABLE_HANDLE.getMessage());
-                }
-                //endregion
-
-                //region 将库存需要的参数赋值
-                outboundItemVO.setInventoryType(Constant.InventoryType.INBOUND.getName());
-                outboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.PURCHASE_ORDER.getValue());
-                //编辑之前的数
-                outboundItemVO.setQtyBeforeUpdate(outboundItemResponse.getOutQty());
-                outboundItemVO.setAmtBeforeUpdate(outboundItemResponse.getOutAmt());
-                //编辑之后的数
-                outboundItemVO.setOutQty(outboundItemVO.getOutQty());
-                outboundItemVO.setOutAmt(outboundItemVO.getOutAmt());
-                //endregion
-
-                //赋值
+        //region 小编辑
+        if (!outboundVO.getLimitEdit()) {
+            Outbound outbound = new Outbound();
+            outbound.setOutId(outboundVO.getOutId());
+            outbound.setRemarks(outboundVO.getRemarks());
+            outbound.setAnnexPaths(outboundVO.getAnnexPaths());
+            outboundMapper.update(outbound,
+                    new UpdateWrapper<Outbound>().lambda()
+                            .eq(Outbound::getOutId, UUID.fromString(outbound.getOutId()))
+            );
+            for (OutboundItemVO outboundItemVO : outboundVO.getItemList()) {
                 OutboundItem outboundItem = new OutboundItem();
                 outboundItem.setItemId(outboundItemVO.getItemId());
-                outboundItem.setOutQty(outboundItemVO.getOutingQty());
-                outboundItem.setOutAmt(outboundItemVO.getOutingAmt());
-                outboundItem.setCostPrice(outboundItemVO.getPriceOut());
-                outboundItem.setCostAmt(outboundItemVO.getOutQty().multiply(outboundItemVO.getPriceOut()).setScale(6, BigDecimal.ROUND_HALF_UP));
-                //修改
+                outboundItem.setRemarks(outboundItemVO.getRemarks());
                 outboundItemMapper.update(outboundItem,
                         new UpdateWrapper<OutboundItem>().lambda()
                                 .eq(OutboundItem::getItemId, UUID.fromString(outboundItem.getItemId()))
                 );
+            }
+        }
+        //endregion
+        //region 大编辑
+        else {
+            //region 根据id查询   并且明细数量金额  求和
+            OutboundResponse outboundResponse = outboundMapper.selectById(outboundVO.getOutId());
+            BigDecimal sumQty = outboundVO.getItemList().stream().map(OutboundItemVO::getOutingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
+            BigDecimal sumAmt = outboundVO.getItemList().stream().map(OutboundItemVO::getOutingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
+            //endregion
 
-                //region  销售明细
-                if (outboundItemVO.getFromItemId() != null) {
+            //region  自动办理参数为true  已入库编辑
+            //自动办理参数为true
+            if (Constant.FlgHandleSetting.TRUE.getValue().equals(outboundVO.getFlgHandleSetting())) {
+                //region 退账
+                if (outboundVO.getReceivableId() != null) {
+                    accountService.reversePayable(outboundVO.getOutId(), Constant.InventoryDocCode.OUTBOUND.getTableName());
+                }
+                //endregion
+
+                //region 修改明细
+                List<OutboundItemVO> itemList = outboundVO.getItemList();
+                for (OutboundItemVO outboundItemVO : itemList) {
                     //根据id查询
-                    OrderItem orderItem = new OrderItem();
-                    orderItem.setItemId(outboundItemVO.getFromItemId());
-                    orderItem.setOutQty(outboundItemResponse.getOutQty().negate().add(outboundItemVO.getOutingQty()));
-                    orderItem.setOutAmt(outboundItemResponse.getOutAmt().negate().add(outboundItemVO.getOutingAmt()));
-                    int countRow = orderItemMapper.updateById(orderItem);
-                    //数量超出
-                    if (countRow == 0) {
-                        throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INVENTORY_QUANTITY_EXCEEDED_OUTBOUND.getMessage());
+                    OutboundItemResponse outboundItemResponse = outboundItemMapper.selectById(outboundItemVO.getItemId());
+
+                    //region  不能新建
+                    if (outboundItemVO.getSOrderItemId() == null) {
+                        throw new BaseBusinessException(ErrorCodeEnum.ITEMS_THAT_ARE_NOT_AVAILABLE_HANDLE.getCode(),
+                                ErrorCodeEnum.ITEMS_THAT_ARE_NOT_AVAILABLE_HANDLE.getMessage());
                     }
+                    //endregion
+
+                    //region 将库存需要的参数赋值
+                    outboundItemVO.setInventoryType(Constant.InventoryType.INBOUND.getName());
+                    outboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.PURCHASE_ORDER.getValue());
+                    //编辑之前的数
+                    outboundItemVO.setQtyBeforeUpdate(outboundItemResponse.getOutQty());
+                    outboundItemVO.setAmtBeforeUpdate(outboundItemResponse.getOutAmt());
+                    //编辑之后的数
+                    outboundItemVO.setOutQty(outboundItemVO.getOutQty());
+                    outboundItemVO.setOutAmt(outboundItemVO.getOutAmt());
+                    //endregion
+
+                    //赋值
+                    OutboundItem outboundItem = new OutboundItem();
+                    outboundItem.setItemId(outboundItemVO.getItemId());
+                    outboundItem.setOutQty(outboundItemVO.getOutingQty());
+                    outboundItem.setOutAmt(outboundItemVO.getOutingAmt());
+                    outboundItem.setCostPrice(outboundItemVO.getPriceOut());
+                    outboundItem.setCostAmt(outboundItemVO.getOutQty().multiply(outboundItemVO.getPriceOut()).setScale(6, BigDecimal.ROUND_HALF_UP));
+                    //修改
+                    outboundItemMapper.update(outboundItem,
+                            new UpdateWrapper<OutboundItem>().lambda()
+                                    .eq(OutboundItem::getItemId, UUID.fromString(outboundItem.getItemId()))
+                    );
+
+                    //region  销售明细
+                    if (outboundItemVO.getFromItemId() != null) {
+                        //根据id查询
+                        OrderItem orderItem = new OrderItem();
+                        orderItem.setItemId(outboundItemVO.getFromItemId());
+                        orderItem.setOutQty(outboundItemResponse.getOutQty().negate().add(outboundItemVO.getOutingQty()));
+                        orderItem.setOutAmt(outboundItemResponse.getOutAmt().negate().add(outboundItemVO.getOutingAmt()));
+                        int countRow = orderItemMapper.updateById(orderItem);
+                        //数量超出
+                        if (countRow == 0) {
+                            throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INVENTORY_QUANTITY_EXCEEDED_OUTBOUND.getMessage());
+                        }
+                    }
+                    //endregion
                 }
                 //endregion
-            }
-            //endregion
 
-            //region  修改出库总单
-            Outbound outbound = new Outbound();
-            outbound.setOutId(outboundVO.getOutId());
-            outbound.setOutQty(sumQty);
-            outbound.setOutAmt(sumAmt);
-            //修改
-            outboundMapper.update(outbound,
-                    new UpdateWrapper<Outbound>().lambda().eq(Outbound::getOutId, UUID.fromString(outbound.getOutId()))
-            );
-            //endregion
+                //region  修改出库总单
+                Outbound outbound = new Outbound();
+                outbound.setOutId(outboundVO.getOutId());
+                outbound.setOutQty(sumQty);
+                outbound.setOutAmt(sumAmt);
+                //修改
+                outboundMapper.update(outbound,
+                        new UpdateWrapper<Outbound>().lambda().eq(Outbound::getOutId, UUID.fromString(outbound.getOutId()))
+                );
+                //endregion
 
 
-            //region 修改销售总单
-            Order order = new Order();
-            order.setOrderId(outboundVO.getFromId());
-            order.setOutQty(outboundResponse.getOutQty().negate().add(sumQty));
-            order.setOutAmt(outboundResponse.getOutAmt().negate().add(sumAmt));
-            //修改
-            int countRow = orderMapper.updateById(order);
-            //数量超出
-            if (countRow == 0) {
-                throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INVENTORY_QUANTITY_EXCEEDED_OUTBOUND.getMessage());
-            }
-            //endregion
+                //region 修改销售总单
+                Order order = new Order();
+                order.setOrderId(outboundVO.getFromId());
+                order.setOutQty(outboundResponse.getOutQty().negate().add(sumQty));
+                order.setOutAmt(outboundResponse.getOutAmt().negate().add(sumAmt));
+                //修改
+                int countRow = orderMapper.updateById(order);
+                //数量超出
+                if (countRow == 0) {
+                    throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INVENTORY_QUANTITY_EXCEEDED_OUTBOUND.getMessage());
+                }
+                //endregion
 
-            //region  账款
-            if (outboundVO.getReceivableId() != null) {
-                accountService.reversePayable(outboundVO.getOutId(),Constant.InventoryDocCode.OUTBOUND.getTableName());
-            }
-            //endregion
+                //region  账款
+                if (outboundVO.getReceivableId() != null) {
+                    accountService.reversePayable(outboundVO.getOutId(), Constant.InventoryDocCode.OUTBOUND.getTableName());
+                }
+                //endregion
 
-            //region 修改库存
+                //region 修改库存
 //                Map<String, Object> invMap = new HashMap<>();
 //                invMap.put("outDetail", outboundVO.getItemList());
 //                inventoryService.updateInventoryInformation(invMap);
+                //endregion
+            }
             //endregion
-        }
-        //endregion
 
-        //region 自动办理参数false  入库中编辑
-        //自动办理标识为false 并且 自动办理参数为false  入库中
-        if (!outboundVO.getFlgAutoHandle() && Constant.FlgHandleSetting.FALSE.getValue().equals(outboundVO.getFlgHandleSetting())) {
-            //region 修改明细
-            List<OutboundItemVO> itemList = outboundVO.getItemList();
-            for (OutboundItemVO outboundItemVO : itemList) {
-                //根据id查询 获取到还未进行修改的数据
-                OutboundItemResponse outboundItemResponse = outboundItemMapper.selectById(outboundItemVO.getItemId());
-
-                //region  不能新建
-                if(outboundItemVO.getSOrderItemId()==null){
-                    throw new BaseBusinessException(ErrorCodeEnum.ITEMS_THAT_ARE_NOT_AVAILABLE_HANDLE.getCode(),
-                            ErrorCodeEnum.ITEMS_THAT_ARE_NOT_AVAILABLE_HANDLE.getMessage());
+            //region 自动办理参数false  入库中编辑
+            //自动办理标识为false 并且 自动办理参数为false  入库中
+            if (!outboundVO.getFlgAutoHandle() && Constant.FlgHandleSetting.FALSE.getValue().equals(outboundVO.getFlgHandleSetting())) {
+                //region 修改明细
+                List<OutboundItemVO> itemList = outboundVO.getItemList();
+                for (OutboundItemVO outboundItemVO : itemList) {
+                    //根据id查询 获取到还未进行修改的数据
+                    OutboundItemResponse outboundItemResponse = outboundItemMapper.selectById(outboundItemVO.getItemId());
+
+                    //region  不能新建
+                    if (outboundItemVO.getSOrderItemId() == null) {
+                        throw new BaseBusinessException(ErrorCodeEnum.ITEMS_THAT_ARE_NOT_AVAILABLE_HANDLE.getCode(),
+                                ErrorCodeEnum.ITEMS_THAT_ARE_NOT_AVAILABLE_HANDLE.getMessage());
+                    }
+                    //endregion
+
+                    //region 赋值明细
+                    OutboundItem outboundItem = new OutboundItem();
+                    outboundItem.setItemId(outboundItemResponse.getItemId());
+                    outboundItem.setOutingQty(outboundItemResponse.getOutingQty());
+                    outboundItem.setOutingAmt(outboundItemResponse.getOutingAmt());
+                    //修改
+                    outboundItemMapper.update(outboundItem,
+                            new UpdateWrapper<OutboundItem>().lambda()
+                                    .eq(OutboundItem::getItemId, UUID.fromString(outboundItem.getItemId()))
+                    );
+                    //endregion
+
+                    //region  销售明细
+                    if (outboundItemVO.getFromItemId() != null) {
+                        //根据id查询
+                        OrderItem orderItem = new OrderItem();
+                        orderItem.setItemId(outboundItemVO.getFromItemId());
+                        orderItem.setOutingQty(outboundItemResponse.getOutingQty().negate().add(outboundItemVO.getOutingQty()));
+                        orderItem.setOutingAmt(outboundItemResponse.getOutingAmt().negate().add(outboundItemVO.getOutingAmt()));
+                        int countRow = orderItemMapper.updateById(orderItem);
+                        //数量超出
+                        if (countRow == 0) {
+                            throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INVENTORY_QUANTITY_EXCEEDED_OUTBOUND.getMessage());
+                        }
+                    }
+                    //endregion
                 }
                 //endregion
-
-                //region 赋值明细
-                OutboundItem outboundItem = new OutboundItem();
-                outboundItem.setItemId(outboundItemResponse.getItemId());
-                outboundItem.setOutingQty(outboundItemResponse.getOutingQty());
-                outboundItem.setOutingAmt(outboundItemResponse.getOutingAmt());
+                //region  修改入库总单
+                Outbound outbound = new Outbound();
+                outbound.setOutId(outboundVO.getOutId());
+                outbound.setOutingQty(sumQty);
+                outbound.setOutingAmt(sumAmt);
                 //修改
-                outboundItemMapper.update(outboundItem,
-                        new UpdateWrapper<OutboundItem>().lambda()
-                                .eq(OutboundItem::getItemId, UUID.fromString(outboundItem.getItemId()))
+                outboundMapper.update(outbound,
+                        new UpdateWrapper<Outbound>().lambda().eq(Outbound::getOutId, UUID.fromString(outbound.getOutId()))
                 );
                 //endregion
-
-                //region  销售明细
-                if (outboundItemVO.getFromItemId() != null) {
-                    //根据id查询
-                    OrderItem orderItem = new OrderItem();
-                    orderItem.setItemId(outboundItemVO.getFromItemId());
-                    orderItem.setOutingQty(outboundItemResponse.getOutingQty().negate().add(outboundItemVO.getOutingQty()));
-                    orderItem.setOutingAmt(outboundItemResponse.getOutingAmt().negate().add(outboundItemVO.getOutingAmt()));
-                    int countRow = orderItemMapper.updateById(orderItem);
-                    //数量超出
-                    if (countRow == 0) {
-                        throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INVENTORY_QUANTITY_EXCEEDED_OUTBOUND.getMessage());
-                    }
+                //region 修改采购总单
+                Order order = new Order();
+                order.setOrderId(outboundVO.getFromId());
+                order.setOutingQty(outboundResponse.getOutingQty().negate().add(sumQty));
+                order.setOutingAmt(outboundResponse.getOutingAmt().negate().add(sumAmt));
+                //修改
+                int countRow = orderMapper.updateById(order);
+                //数量超出
+                if (countRow == 0) {
+                    throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INVENTORY_QUANTITY_EXCEEDED_OUTBOUND.getMessage());
                 }
                 //endregion
             }
             //endregion
-            //region  修改入库总单
-            Outbound outbound = new Outbound();
-            outbound.setOutId(outboundVO.getOutId());
-            outbound.setOutingQty(sumQty);
-            outbound.setOutingAmt(sumAmt);
-            //修改
-            outboundMapper.update(outbound,
-                    new UpdateWrapper<Outbound>().lambda().eq(Outbound::getOutId, UUID.fromString(outbound.getOutId()))
-            );
-            //endregion
-            //region 修改采购总单
-            Order order = new Order();
-            order.setOrderId(outboundVO.getFromId());
-            order.setOutingQty(outboundResponse.getOutingQty().negate().add(sumQty));
-            order.setOutingAmt(outboundResponse.getOutingAmt().negate().add(sumAmt));
-            //修改
-            int countRow = orderMapper.updateById(order);
-            //数量超出
-            if (countRow == 0) {
-                throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INVENTORY_QUANTITY_EXCEEDED_OUTBOUND.getMessage());
-            }
-            //endregion
         }
         //endregion
-
         return ResponseResultUtil.success(outboundVO);
     }
 
@@ -490,7 +514,7 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
         if (Constant.FlgHandleSetting.TRUE.getValue().equals(outboundResponse.getFlgHandleSetting())) {
             //region 退账
             if (outboundResponse.getReceivableId() != null) {
-                accountService.reversePayable(outboundResponse.getOutId(),Constant.InventoryDocCode.OUTBOUND.getTableName());
+                accountService.reversePayable(outboundResponse.getOutId(), Constant.InventoryDocCode.OUTBOUND.getTableName());
             }
             //endregion
 
@@ -559,7 +583,7 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
 
             //region  入账
             if (outboundResponse.getReceivableId() != null) {
-                accountService.reversePayable(outboundResponse.getOutId(),Constant.InventoryDocCode.OUTBOUND.getTableName());
+                accountService.reversePayable(outboundResponse.getOutId(), Constant.InventoryDocCode.OUTBOUND.getTableName());
             }
             //endregion
 
@@ -655,7 +679,7 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
         }
         for (OutboundItemVO outboundItemVO : outboundVO.getItemList()) {
             //region  不能新建
-            if(outboundItemVO.getSOutItemId()==null){
+            if (outboundItemVO.getSOutItemId() == null) {
                 throw new BaseBusinessException(ErrorCodeEnum.ITEMS_THAT_ARE_NOT_AVAILABLE_HANDLE.getCode(),
                         ErrorCodeEnum.ITEMS_THAT_ARE_NOT_AVAILABLE_HANDLE.getMessage());
             }
@@ -807,7 +831,7 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
         //endregion
 
         //region  入账
-        accountService.reversePayable(outboundResponse.getOutId(),Constant.InventoryDocCode.OUTBOUND.getTableName());
+        accountService.reversePayable(outboundResponse.getOutId(), Constant.InventoryDocCode.OUTBOUND.getTableName());
         //endregion
 
         //region   调用库存
@@ -832,7 +856,7 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
 
         //region    退账
         if (outboundResponse.getReceivableId() != null) {
-            accountService.reversePayable(outboundResponse.getOutId(),Constant.InventoryDocCode.OUTBOUND.getTableName());
+            accountService.reversePayable(outboundResponse.getOutId(), Constant.InventoryDocCode.OUTBOUND.getTableName());
         }
         //endregion
 

+ 124 - 100
src/main/java/com/dk/mdm/service/ivt/outbound/OutboundSaleReturnService.java

@@ -356,132 +356,156 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
      */
     @Transactional(rollbackFor = {Exception.class})
     public ResponseResultVO<?> saleReturnOutboundUpdate(OutboundVO outboundVO) {
-        //region 明细数量金额  求和
-        BigDecimal sumQty = outboundVO.getItemList().stream().map(OutboundItemVO::getOutingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
-        BigDecimal sumAmt = outboundVO.getItemList().stream().map(OutboundItemVO::getOutingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
+        //region 小编辑
+        if (!outboundVO.getLimitEdit()) {
+            Outbound outbound = new Outbound();
+            outbound.setOutId(outboundVO.getOutId());
+            outbound.setRemarks(outboundVO.getRemarks());
+            outbound.setAnnexPaths(outboundVO.getAnnexPaths());
+            outboundMapper.update(outbound,
+                    new UpdateWrapper<Outbound>().lambda()
+                            .eq(Outbound::getOutId, UUID.fromString(outbound.getOutId()))
+            );
+            for (OutboundItemVO outboundItemVO : outboundVO.getItemList()) {
+                OutboundItem outboundItem = new OutboundItem();
+                outboundItem.setItemId(outboundItemVO.getItemId());
+                outboundItem.setRemarks(outboundItemVO.getRemarks());
+                outboundItemMapper.update(outboundItem,
+                        new UpdateWrapper<OutboundItem>().lambda()
+                                .eq(OutboundItem::getItemId, UUID.fromString(outboundItem.getItemId()))
+                );
+            }
+        }
         //endregion
+        //region 大编辑
+        else {
+            //region 明细数量金额  求和
+            BigDecimal sumQty = outboundVO.getItemList().stream().map(OutboundItemVO::getOutingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
+            BigDecimal sumAmt = outboundVO.getItemList().stream().map(OutboundItemVO::getOutingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
+            //endregion
+
+            //region  自动办理参数为true  已出库编辑
+            //自动办理参数为true
+            if (Constant.FlgHandleSetting.TRUE.getValue().equals(outboundVO.getFlgHandleSetting())) {
+                //region 退账
+                if (outboundVO.getReceivableId() != null) {
+                    accountService.reversePayable(outboundVO.getOutId(), Constant.InventoryDocCode.OUTBOUND.getTableName());
+                }
+                //endregion
 
-        //region  自动办理参数为true  已出库编辑
-        //自动办理参数为true
-        if (Constant.FlgHandleSetting.TRUE.getValue().equals(outboundVO.getFlgHandleSetting())) {
-            //region 退账
-            if (outboundVO.getReceivableId() != null) {
-                accountService.reversePayable(outboundVO.getOutId(), Constant.InventoryDocCode.OUTBOUND.getTableName());
-            }
-            //endregion
+                //region  反写出库总单 反写订单总单
+                this.updatePrimaryTotal(outboundVO, false);
+                //endregion
 
-            //region  反写出库总单 反写订单总单
-            this.updatePrimaryTotal(outboundVO, false);
-            //endregion
+                //region 修改明细
+                List<OutboundItemVO> itemList = outboundVO.getItemList();
+                for (OutboundItemVO outboundItemVO : itemList) {
+                    //根据id查询
+                    OutboundItemResponse outboundItemResponse = outboundItemMapper.selectById(outboundItemVO.getItemId());
+
+                    //region  不能新建
+                    if (outboundItemVO.getSOrderItemId() == null) {
+                        throw new BaseBusinessException(ErrorCodeEnum.ITEMS_THAT_ARE_NOT_AVAILABLE_HANDLE.getCode(),
+                                ErrorCodeEnum.ITEMS_THAT_ARE_NOT_AVAILABLE_HANDLE.getMessage());
+                    }
+                    //endregion
+
+                    //region 将库存需要的参数赋值
+                    outboundItemVO.setInventoryType(Constant.InventoryType.OUTBOUND.getName());
+                    outboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.SALE_RETURN.getValue());
+                    //编辑之前的数
+                    outboundItemVO.setQtyBeforeUpdate(outboundItemResponse.getOutQty());
+                    outboundItemVO.setAmtBeforeUpdate(outboundItemResponse.getOutAmt());
+                    //编辑之后的数
+                    outboundItemVO.setOutQty(outboundItemVO.getOutQty());
+                    outboundItemVO.setOutAmt(outboundItemVO.getOutAmt());
+                    //endregion
+
+                    //region 明细赋值
+                    OutboundItem outboundItem = new OutboundItem();
+                    outboundItem.setItemId(outboundItemVO.getItemId());
+                    outboundItem.setOutQty(outboundItemVO.getOutingQty());
+                    outboundItem.setOutAmt(outboundItemVO.getOutingAmt());
+                    outboundItem.setCostPrice(outboundItemVO.getPriceOut());
+                    outboundItem.setCostAmt(outboundItemVO.getOutQty().multiply(outboundItemVO.getPriceOut()).setScale(6, BigDecimal.ROUND_HALF_UP));
+                    //修改
+                    outboundItemMapper.update(outboundItem,
+                            new UpdateWrapper<OutboundItem>().lambda()
+                                    .eq(OutboundItem::getItemId, UUID.fromString(outboundItem.getItemId()))
+                    );
+                    //endregion
 
-            //region 修改明细
-            List<OutboundItemVO> itemList = outboundVO.getItemList();
-            for (OutboundItemVO outboundItemVO : itemList) {
-                //根据id查询
-                OutboundItemResponse outboundItemResponse = outboundItemMapper.selectById(outboundItemVO.getItemId());
-
-                //region  不能新建
-                if(outboundItemVO.getSOrderItemId()==null){
-                    throw new BaseBusinessException(ErrorCodeEnum.ITEMS_THAT_ARE_NOT_AVAILABLE_HANDLE.getCode(),
-                            ErrorCodeEnum.ITEMS_THAT_ARE_NOT_AVAILABLE_HANDLE.getMessage());
+                    //region  反写出库明细 反写订单明细
+                    this.updatePrimaryDetail(outboundItemVO, false);
+                    //endregion
                 }
                 //endregion
 
-                //region 将库存需要的参数赋值
-                outboundItemVO.setInventoryType(Constant.InventoryType.OUTBOUND.getName());
-                outboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.SALE_RETURN.getValue());
-                //编辑之前的数
-                outboundItemVO.setQtyBeforeUpdate(outboundItemResponse.getOutQty());
-                outboundItemVO.setAmtBeforeUpdate(outboundItemResponse.getOutAmt());
-                //编辑之后的数
-                outboundItemVO.setOutQty(outboundItemVO.getOutQty());
-                outboundItemVO.setOutAmt(outboundItemVO.getOutAmt());
-                //endregion
-
-                //region 明细赋值
-                OutboundItem outboundItem = new OutboundItem();
-                outboundItem.setItemId(outboundItemVO.getItemId());
-                outboundItem.setOutQty(outboundItemVO.getOutingQty());
-                outboundItem.setOutAmt(outboundItemVO.getOutingAmt());
-                outboundItem.setCostPrice(outboundItemVO.getPriceOut());
-                outboundItem.setCostAmt(outboundItemVO.getOutQty().multiply(outboundItemVO.getPriceOut()).setScale(6, BigDecimal.ROUND_HALF_UP));
+                //region  修改出库总单
+                Outbound outbound = new Outbound();
+                outbound.setOutId(outboundVO.getOutId());
+                outbound.setOutQty(sumQty);
+                outbound.setOutAmt(sumAmt);
                 //修改
-                outboundItemMapper.update(outboundItem,
-                        new UpdateWrapper<OutboundItem>().lambda()
-                                .eq(OutboundItem::getItemId, UUID.fromString(outboundItem.getItemId()))
+                outboundMapper.update(outbound,
+                        new UpdateWrapper<Outbound>().lambda().eq(Outbound::getOutId, UUID.fromString(outbound.getOutId()))
                 );
                 //endregion
 
-                //region  反写出库明细 反写订单明细
-                this.updatePrimaryDetail(outboundItemVO, false);
+                //region  账款
+                if (outboundVO.getReceivableId() != null) {
+                    accountService.reversePayable(outboundVO.getOutId(), Constant.InventoryDocCode.OUTBOUND.getTableName());
+                }
                 //endregion
-            }
-            //endregion
 
-            //region  修改出库总单
-            Outbound outbound = new Outbound();
-            outbound.setOutId(outboundVO.getOutId());
-            outbound.setOutQty(sumQty);
-            outbound.setOutAmt(sumAmt);
-            //修改
-            outboundMapper.update(outbound,
-                    new UpdateWrapper<Outbound>().lambda().eq(Outbound::getOutId, UUID.fromString(outbound.getOutId()))
-            );
-            //endregion
-
-            //region  账款
-            if (outboundVO.getReceivableId() != null) {
-                accountService.reversePayable(outboundVO.getOutId(), Constant.InventoryDocCode.OUTBOUND.getTableName());
-            }
-            //endregion
-
-            //region 修改库存
+                //region 修改库存
 //                Map<String, Object> invMap = new HashMap<>();
 //                invMap.put("outDetail", outboundVO.getItemList());
 //                inventoryService.updateInventoryInformation(invMap);
+                //endregion
+            }
             //endregion
-        }
-        //endregion
 
-        //region 自动办理参数false  出库中编辑
-        //自动办理标识为false 并且 自动办理参数为false  出库中
-        if (!outboundVO.getFlgAutoHandle() && Constant.FlgHandleSetting.FALSE.getValue().equals(outboundVO.getFlgHandleSetting())) {
-            //region 修改明细
-            List<OutboundItemVO> itemList = outboundVO.getItemList();
-            for (OutboundItemVO outboundItemVO : itemList) {
-                //region  不能新建
-                if(outboundItemVO.getSOrderItemId()==null){
-                    throw new BaseBusinessException(ErrorCodeEnum.ITEMS_THAT_ARE_NOT_AVAILABLE_HANDLE.getCode(),
-                            ErrorCodeEnum.ITEMS_THAT_ARE_NOT_AVAILABLE_HANDLE.getMessage());
+            //region 自动办理参数false  出库中编辑
+            //自动办理标识为false 并且 自动办理参数为false  出库中
+            if (!outboundVO.getFlgAutoHandle() && Constant.FlgHandleSetting.FALSE.getValue().equals(outboundVO.getFlgHandleSetting())) {
+                //region 修改明细
+                List<OutboundItemVO> itemList = outboundVO.getItemList();
+                for (OutboundItemVO outboundItemVO : itemList) {
+                    //region  不能新建
+                    if (outboundItemVO.getSOrderItemId() == null) {
+                        throw new BaseBusinessException(ErrorCodeEnum.ITEMS_THAT_ARE_NOT_AVAILABLE_HANDLE.getCode(),
+                                ErrorCodeEnum.ITEMS_THAT_ARE_NOT_AVAILABLE_HANDLE.getMessage());
+                    }
+                    //endregion
+
+                    //region 赋值明细
+                    OutboundItem outboundItem = new OutboundItem();
+                    outboundItem.setItemId(outboundItemVO.getItemId());
+                    outboundItem.setOutingQty(outboundItemVO.getOutingQty());
+                    outboundItem.setOutingAmt(outboundItemVO.getOutingAmt());
+                    //修改
+                    outboundItemMapper.update(outboundItem,
+                            new UpdateWrapper<OutboundItem>().lambda()
+                                    .eq(OutboundItem::getItemId, UUID.fromString(outboundItem.getItemId()))
+                    );
+                    //endregion
                 }
                 //endregion
-
-                //region 赋值明细
-                OutboundItem outboundItem = new OutboundItem();
-                outboundItem.setItemId(outboundItemVO.getItemId());
-                outboundItem.setOutingQty(outboundItemVO.getOutingQty());
-                outboundItem.setOutingAmt(outboundItemVO.getOutingAmt());
+                //region  修改出库总单
+                Outbound outbound = new Outbound();
+                outbound.setOutId(outboundVO.getOutId());
+                outbound.setOutingQty(sumQty);
+                outbound.setOutingAmt(sumAmt);
                 //修改
-                outboundItemMapper.update(outboundItem,
-                        new UpdateWrapper<OutboundItem>().lambda()
-                                .eq(OutboundItem::getItemId, UUID.fromString(outboundItem.getItemId()))
+                outboundMapper.update(outbound,
+                        new UpdateWrapper<Outbound>().lambda().eq(Outbound::getOutId, UUID.fromString(outbound.getOutId()))
                 );
                 //endregion
             }
             //endregion
-            //region  修改出库总单
-            Outbound outbound = new Outbound();
-            outbound.setOutId(outboundVO.getOutId());
-            outbound.setOutingQty(sumQty);
-            outbound.setOutingAmt(sumAmt);
-            //修改
-            outboundMapper.update(outbound,
-                    new UpdateWrapper<Outbound>().lambda().eq(Outbound::getOutId, UUID.fromString(outbound.getOutId()))
-            );
-            //endregion
         }
         //endregion
-
         return ResponseResultUtil.success(outboundVO);
     }
 
@@ -630,7 +654,7 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
         }
         for (OutboundItemVO outboundItemVO : outboundVO.getItemList()) {
             //region  不能新建
-            if(outboundItemVO.getSOrderItemId()==null){
+            if (outboundItemVO.getSOrderItemId() == null) {
                 throw new BaseBusinessException(ErrorCodeEnum.ITEMS_THAT_ARE_NOT_AVAILABLE_HANDLE.getCode(),
                         ErrorCodeEnum.ITEMS_THAT_ARE_NOT_AVAILABLE_HANDLE.getMessage());
             }