fubin hace 2 años
padre
commit
02f042c0d7

+ 27 - 0
src/main/java/com/dk/mdm/controller/sale/OutReturnController.java

@@ -1,7 +1,12 @@
 package com.dk.mdm.controller.sale;
 
+import com.dk.common.response.ResponseResultVO;
 import com.dk.mdm.model.pojo.sale.OutReturn;
 import com.dk.common.service.BaseService;
+import com.dk.mdm.model.vo.sale.OutReturnVO;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RestController;
@@ -20,4 +25,26 @@ public class OutReturnController{
     @Autowired
     private OutReturnService outReturnService;
 
+    /**
+     * @desc : 新建退货
+     * @author : 付斌
+     * @date : 2023/1/9 10:48
+     */
+    @ApiOperation(value = "新建退货", notes = "新建退货")
+    @PostMapping({"insert"})
+    public ResponseResultVO<?> insert(@RequestBody OutReturnVO outReturnVO) {
+        return outReturnService.insert(outReturnVO);
+    }
+
+    /**
+     * @desc : 编辑退货
+     * @author : 付斌
+     * @date : 2023/1/9 10:49
+     */
+    @ApiOperation(value = "编辑退货", notes = "编辑退货")
+    @PostMapping({"update"})
+    public ResponseResultVO<Boolean> update(@RequestBody OutReturnVO outReturnVO) {
+        return outReturnService.update(outReturnVO);
+    }
+
 }

+ 2 - 2
src/main/java/com/dk/mdm/infrastructure/convert/sale/OrderItemConvert.java

@@ -5,7 +5,7 @@ import com.dk.mdm.model.vo.sale.OrderItemVO;
 import org.mapstruct.Mapper;
 
 /**
- * @desc   : Order转换类
+ * @desc   : OrderItem转换类
  * @author : 付斌
  * @date   : 2024-02-28 10:18
  */
@@ -17,6 +17,6 @@ public interface OrderItemConvert {
      * @author : 付斌
      * @date   : 2024-02-28 15:25
      */
-    OrderItem convertToPo(OrderItemVO orderVO);
+    OrderItem convertToPo(OrderItemVO orderItemVO);
 
 }

+ 22 - 0
src/main/java/com/dk/mdm/infrastructure/convert/sale/OutReturnConvert.java

@@ -0,0 +1,22 @@
+package com.dk.mdm.infrastructure.convert.sale;
+
+import com.dk.mdm.model.pojo.sale.OutReturn;
+import com.dk.mdm.model.vo.sale.OutReturnVO;
+import org.mapstruct.Mapper;
+
+/**
+ * @desc   : OutReturn转换类
+ * @author : 付斌
+ * @date   : 2024-02-28 10:18
+ */
+@Mapper(componentModel = "spring")
+public interface OutReturnConvert {
+
+    /**
+     * @desc   : 转换vo为pojo
+     * @author : 付斌
+     * @date   : 2024-02-28 15:26
+     */
+    OutReturn convertToPo(OutReturnVO outReturnVO);
+
+}

+ 22 - 0
src/main/java/com/dk/mdm/infrastructure/convert/sale/OutReturnItemConvert.java

@@ -0,0 +1,22 @@
+package com.dk.mdm.infrastructure.convert.sale;
+
+import com.dk.mdm.model.pojo.sale.OutReturnItem;
+import com.dk.mdm.model.vo.sale.OutReturnItemVO;
+import org.mapstruct.Mapper;
+
+/**
+ * @desc   : OutReturnItem转换类
+ * @author : 付斌
+ * @date   : 2024-02-28 10:18
+ */
+@Mapper(componentModel = "spring")
+public interface OutReturnItemConvert {
+
+    /**
+     * @desc   : 转换vo为pojo
+     * @author : 付斌
+     * @date   : 2024-02-28 15:25
+     */
+    OutReturnItem convertToPo(OutReturnItemVO outReturnItemVO);
+
+}

+ 6 - 0
src/main/java/com/dk/mdm/model/vo/sale/OutReturnVO.java

@@ -21,6 +21,7 @@ import lombok.experimental.Accessors;
 import java.io.Serializable;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
+import java.util.List;
 
 /**
  *  出库退货
@@ -403,6 +404,11 @@ public class OutReturnVO extends PageInfo<OutReturnVO> implements Serializable {
     @ApiModelProperty(value = "数据操作数据库用户 (触发器自动处理)")
     private String opDbUser;
 
+    @ApiModelProperty(value = "明细")
+    private List<OutReturnItemVO> itemList;
+
+    @ApiModelProperty(value = "删除明细")
+    private List<OutReturnItemVO> deleteItemList;
 
     /*
      * 相关属性

+ 1 - 1
src/main/java/com/dk/mdm/service/ivt/OutboundService.java

@@ -173,7 +173,7 @@ public class OutboundService extends BaseService<Outbound> {
 		for (OutboundItemVO outboundItemVO : editOutboundItemVOList) {
 			// 出库中数量不能小于出库数量
 			if(outboundItemVO.getOutingQty().compareTo(outboundItemVO.getOutQty()) == -1){
-				throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ITEMQTY_NO_LESS_OUTQTY.getMessage());
+				throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.OUTINGQTY_NO_LESS_OUTQTY.getMessage());
 			} else {
 				OutboundItem outboundItem = outboundItemConvert.convertToPo(outboundItemVO);
 				outboundItemService.updateByUuid(outboundItem);

+ 101 - 10
src/main/java/com/dk/mdm/service/sale/OutReturnService.java

@@ -1,28 +1,119 @@
 package com.dk.mdm.service.sale;
 
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.dk.common.exception.BaseBusinessException;
+import com.dk.common.infrastructure.constant.Constant;
+import com.dk.common.infrastructure.enums.ErrorCodeEnum;
+import com.dk.common.response.ResponseCodeEnum;
+import com.dk.common.response.ResponseResultUtil;
+import com.dk.common.response.ResponseResultVO;
+import com.dk.mdm.infrastructure.convert.sale.OutReturnConvert;
+import com.dk.mdm.infrastructure.convert.sale.OutReturnItemConvert;
+import com.dk.mdm.mapper.sale.OutReturnItemMapper;
 import com.dk.mdm.model.pojo.sale.OutReturn;
+import com.dk.mdm.model.pojo.sale.OutReturnItem;
 import com.dk.mdm.mapper.sale.OutReturnMapper;
 import com.dk.common.service.BaseService;
 import com.dk.common.mapper.BaseMapper;
+import com.dk.mdm.model.vo.sale.OutReturnItemVO;
+import com.dk.mdm.model.vo.sale.OutReturnVO;
+import com.dk.mdm.service.common.CommonService;
 import org.springframework.stereotype.Service;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+import java.util.stream.Collectors;
+
 @Service
 @Transactional
 public class OutReturnService extends BaseService<OutReturn> {
 
-	@Override
-	public String getPrimaryKey() {
-		return "return_id";
-	}
+    @Override
+    public String getPrimaryKey() {
+        return "return_id";
+    }
+
+    @Override
+    public BaseMapper<OutReturn> getRepository() {
+        return outReturnMapper;
+    }
+
+    @Autowired
+    private OutReturnMapper outReturnMapper;
+
+    @Autowired
+    private OutReturnItemService outReturnItemService;
+
+    @Autowired
+    private OutReturnItemMapper outReturnItemMapper;
+
+    @Autowired
+    private CommonService commonService;
+
+    @Autowired
+    private OutReturnConvert outReturnConvert;
+
+    @Autowired
+    private OutReturnItemConvert outReturnItemConvert;
+
+    /**
+     * @desc : 新建方法
+     * @author : 付斌
+     * @date : 2023/1/9 10:49
+     */
+    @Transactional(
+            rollbackFor = {Exception.class}
+    )
+    public ResponseResultVO<?> insert(OutReturnVO outReturnVO) {
+
+        // 获取单号
+        Map<String, Object> codeMap = commonService.getUniqueNoteCode(Constant.docNameConstant.ORDER.getName(), false);
+        outReturnVO.setReturnId(codeMap.get("outId").toString()).setReturnNo(codeMap.get("outNote").toString())
+                .setReturnType(Constant.DocumentType.OUT_RETURN.getName());
+        // 转化实体
+        OutReturn outReturn = outReturnConvert.convertToPo(outReturnVO);
+        // 订单总单保存
+        super.insert(outReturn);
+
+        // 明细保存
+        if (outReturnVO.getItemList() != null && outReturnVO.getItemList().size() > 0) {
+            for (OutReturnItemVO outReturnItemVO : outReturnVO.getItemList()) {
+                OutReturnItem outReturnItem = outReturnItemConvert.convertToPo(outReturnItemVO);
+                outReturnItem.setReturnId(outReturn.getReturnId()).setCpId(outReturn.getCpId()).setIntoStatus(Constant.IntoStatus.DAIRUKU.getName());
+                outReturnItemMapper.insert(outReturnItem);
+            }
+        }
+        return ResponseResultUtil.success();
+    }
 
-	@Override
-	public BaseMapper<OutReturn> getRepository() {
-		return outReturnMapper;
-	}
+    /**
+     * @desc : 编辑方法
+     * @author : 付斌
+     * @date : 2023/1/9 10:49
+     */
+    @Transactional(
+            rollbackFor = {Exception.class}
+    )
+    public ResponseResultVO<Boolean> update(OutReturnVO outReturnVO) {
+        // 转化实体
+        OutReturn outReturn = outReturnConvert.convertToPo(outReturnVO);
 
-	@Autowired
-	private OutReturnMapper outReturnMapper;
+        // 编辑的
+        List<OutReturnItemVO> editOutReturnItemVOList = outReturnVO.getItemList().stream().filter(it -> it.getItemId() != null).collect(Collectors.toList());
+        for (OutReturnItemVO outReturnItemVO : editOutReturnItemVOList) {
+            // 入库中数量不能小于入库数量
+            if (outReturnItemVO.getIntoingQty().compareTo(outReturnItemVO.getIntoQty()) == -1) {
+                throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INTOINGQTY_NO_LESS_INTOQTY.getMessage());
+            } else {
+                OutReturnItem outReturnItem = outReturnItemConvert.convertToPo(outReturnItemVO);
+                outReturnItemService.updateByUuid(outReturnItem);
+            }
+        }
 
+        return ResponseResultUtil.success(super.update(outReturn, new UpdateWrapper<OutReturn>().lambda().eq(OutReturn::getReturnId,
+                UUID.fromString(outReturn.getReturnId()))));
+    }
 }