fubin преди 2 години
родител
ревизия
c8e6089605

+ 7 - 8
src/main/java/com/dk/mdm/generator/Generator.java

@@ -79,11 +79,11 @@ public class Generator {
         PackageConfig pc = new PackageConfig();
 //        pc.setModuleName("task");                  //模块包名
         pc.setParent("com.dk.mdm");        //父包路径
-        pc.setEntity("model.pojo.mst");                     //实体层路径
-        pc.setMapper("mapper.mst");                 //mapper层路径
-        pc.setXml("mapper.mst");                       //xml层路径
-        pc.setServiceImpl("service.mst");                   //业务层路径
-        pc.setController("controller.mst");             //控制层路径
+        pc.setEntity("model.pojo.ivt");                     //实体层路径
+        pc.setMapper("mapper.ivt");                 //mapper层路径
+        pc.setXml("mapper.ivt");                       //xml层路径
+        pc.setServiceImpl("service.ivt");                   //业务层路径
+        pc.setController("controller.ivt");             //控制层路径
         //app相关路径
 //        pc.setEntity("model.app.pojo.pset");                     //实体层路径
 //        pc.setMapper("mapper.app.pset");                 //mapper层路径
@@ -94,9 +94,8 @@ public class Generator {
 
         //4、策略配置
         StrategyConfig strategy = new StrategyConfig();
-        strategy.setTablePrefix("t_mst");                                             //表名前缀
-        strategy.setInclude("t_mst_setting_value");                                        //设置要映射的表名,只需改这里即可,可以是一个数组,一次性生成多张表。
-//        strategy.setInclude("t_mst_setting_value");                                        //设置要映射的表名,只需改这里即可,可以是一个数组,一次性生成多张表。
+        strategy.setTablePrefix("t_psi");                                             //表名前缀
+        strategy.setInclude("t_psi_outbound_item");                                        //设置要映射的表名,只需改这里即可,可以是一个数组,一次性生成多张表。
         strategy.setNaming(NamingStrategy.underline_to_camel);                      //转驼峰
         strategy.setColumnNaming(NamingStrategy.underline_to_camel);                //字段下划线转驼峰
         strategy.setEntityLombokModel(true);                                        //是否使用lombok开启注解

+ 3 - 2
src/main/java/com/dk/mdm/model/pojo/sale/OutReturn.java

@@ -18,6 +18,7 @@ import io.swagger.annotations.ApiModelProperty;
 import com.alibaba.fastjson.JSONObject;
 
 import java.math.BigDecimal;
+import java.time.LocalDate;
 import java.util.List;
 import java.time.LocalDateTime;
 
@@ -179,9 +180,9 @@ public class OutReturn extends PageInfo<OutReturn> implements Serializable {
      */
     @Excel(name = "取货日期")
     @ApiModelProperty(value = "取货日期")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     @TableField(typeHandler = TimestampTypeHandler.class)
-    private LocalDateTime pickupDate;
+    private LocalDate pickupDate;
 
 
     /**

+ 3 - 2
src/main/java/com/dk/mdm/model/query/sale/OutReturnQuery.java

@@ -20,6 +20,7 @@ import lombok.experimental.Accessors;
 
 import java.io.Serializable;
 import java.math.BigDecimal;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 
 /**
@@ -180,9 +181,9 @@ public class OutReturnQuery extends PageInfo<OutReturnQuery> implements Serializ
      */
     @Excel(name = "取货日期")
     @ApiModelProperty(value = "取货日期")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     @TableField(typeHandler = TimestampTypeHandler.class)
-    private LocalDateTime pickupDate;
+    private LocalDate pickupDate;
 
 
     /**

+ 3 - 2
src/main/java/com/dk/mdm/model/response/sale/OutReturnResponse.java

@@ -20,6 +20,7 @@ import lombok.experimental.Accessors;
 
 import java.io.Serializable;
 import java.math.BigDecimal;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 
 /**
@@ -180,9 +181,9 @@ public class OutReturnResponse extends PageInfo<OutReturnResponse> implements Se
      */
     @Excel(name = "取货日期")
     @ApiModelProperty(value = "取货日期")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     @TableField(typeHandler = TimestampTypeHandler.class)
-    private LocalDateTime pickupDate;
+    private LocalDate pickupDate;
 
 
     /**

+ 3 - 2
src/main/java/com/dk/mdm/model/vo/sale/OutReturnVO.java

@@ -20,6 +20,7 @@ import lombok.experimental.Accessors;
 
 import java.io.Serializable;
 import java.math.BigDecimal;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.util.List;
 
@@ -180,9 +181,9 @@ public class OutReturnVO extends PageInfo<OutReturnVO> implements Serializable {
      */
     @Excel(name = "取货日期")
     @ApiModelProperty(value = "取货日期")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     @TableField(typeHandler = TimestampTypeHandler.class)
-    private LocalDateTime pickupDate;
+    private LocalDate pickupDate;
 
 
     /**

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

@@ -112,7 +112,7 @@ public class OutboundService extends BaseService<Outbound> {
 					.setOutType(Constant.OutType.SALE.getName());
 				outboundItemMapper.insert(outboundItem);
 
-				// 反写订单出库中数量
+				// 反写订单出库中数量、金额
 				OrderItem orderItem = orderItemMapper.selectById(outboundItem.getFromItemId());
 				// 如果商品数量小于订单+本次出库单上的出库中数量
 				if(orderItem.getItemQty().compareTo(orderItem.getOutingQty().add(outboundItem.getOutingQty())) == -1){

+ 44 - 2
src/main/java/com/dk/mdm/service/sale/OutReturnService.java

@@ -9,12 +9,17 @@ 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.OrderItemMapper;
+import com.dk.mdm.mapper.sale.OrderMapper;
 import com.dk.mdm.mapper.sale.OutReturnItemMapper;
+import com.dk.mdm.model.pojo.sale.Order;
+import com.dk.mdm.model.pojo.sale.OrderItem;
 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.response.sale.OrderResponse;
 import com.dk.mdm.model.vo.sale.OutReturnItemVO;
 import com.dk.mdm.model.vo.sale.OutReturnVO;
 import com.dk.mdm.service.common.CommonService;
@@ -22,6 +27,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
 import java.util.List;
 import java.util.Map;
 import java.util.UUID;
@@ -51,6 +57,18 @@ public class OutReturnService extends BaseService<OutReturn> {
     private OutReturnItemMapper outReturnItemMapper;
 
     @Autowired
+    private OrderService orderService;
+
+    @Autowired
+    private OrderMapper orderMapper;
+
+    @Autowired
+    private OrderItemService orderItemService;
+
+    @Autowired
+    private OrderItemMapper orderItemMapper;
+
+    @Autowired
     private CommonService commonService;
 
     @Autowired
@@ -70,21 +88,45 @@ public class OutReturnService extends BaseService<OutReturn> {
     public ResponseResultVO<?> insert(OutReturnVO outReturnVO) {
 
         // 获取单号
-        Map<String, Object> codeMap = commonService.getUniqueNoteCode(Constant.docNameConstant.ORDER.getName(), false);
+        Map<String, Object> codeMap = commonService.getUniqueNoteCode(Constant.docNameConstant.ORDEROUT.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) {
+            double sumReturnQty = 0;    // 合计已出库退货数量
+            double sumReturnAmt = 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);
+
+                // 反写订单已出库退货数量、金额
+                OrderItem orderItem = orderItemMapper.selectById(outReturnItem.getOrderItemId());
+                // 如果出库数量小于订单上已退货+本次退货数量
+                if (orderItem.getOutQty().compareTo(orderItem.getReturnQty().add(outReturnItem.getItemQty())) == -1) {
+                    throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.OUTQTY_NO_LESS_RETURNQTY.getMessage());
+                }
+                OrderItem orderItemUpdate = new OrderItem();
+                orderItemUpdate.setReturnQty(orderItem.getReturnQty().add(outReturnItem.getItemQty()))
+                        .setReturnAmt(orderItem.getReturnAmt().add(outReturnItem.getItemAmt()))
+                        .setItemId(orderItem.getItemId());
+                orderItemService.updateByUuid(orderItemUpdate);
+                // 累加退货数量,金额
+                sumReturnQty += outReturnItem.getItemQty().doubleValue();
+                sumReturnAmt += outReturnItem.getItemAmt().doubleValue();
             }
+            // 更新订单上的退货数量,金额
+            OrderResponse orderResponse = orderMapper.selectById(outReturnVO.getOrderId());
+            Order orderUpdate = new Order();
+            orderUpdate.setReturnQty(orderResponse.getReturnQty().add(new BigDecimal(sumReturnQty)))
+                    .setReturnAmt(orderResponse.getReturnAmt().add(new BigDecimal(sumReturnAmt)))
+                    .setOrderId(outReturnVO.getOrderId());
+            orderService.updateByUuid(orderUpdate);
         }
         return ResponseResultUtil.success();
     }