于继渤 2 лет назад
Родитель
Сommit
9e3c54fced

+ 9 - 2
src/main/java/com/dk/mdm/mapper/ivt/IntoReturnMapper.xml

@@ -105,6 +105,9 @@
 
         <result column="org_name" property="orgName"/>
         <result column="org_code" property="orgCode"/>
+        <result column="return_address" property="returnAddress"/>
+        <result column="out_status_name" property="outStatusName"/>
+        <result column="return_status_name" property="returnStatusName"/>
 
     </resultMap>
 
@@ -337,13 +340,15 @@
     </sql>
 
     <sql id="Base_Column_List_Join">
-
         tms.sup_name AS sup_name,
         tms.sup_code AS sup_code,
+        tms.return_address AS return_address,
         tmsf.staff_name AS staff_name,
         tmsf.staff_code AS staff_code,
         tmo.org_name AS org_name,
-        tmo.org_code AS org_code
+        tmo.org_code AS org_code,
+        tdk1.kind_name_i18n ->> 'zh_CN' AS out_status_name,
+        tdk2.kind_name_i18n ->> 'zh_CN' AS return_status_name
     </sql>
 
     <!-- 查询表t_psi_into_return,(条件查询+分页)列表 -->
@@ -355,6 +360,8 @@
         left join  dkic_b.t_mst_supplier tms  on  tms.sup_id = tpir.sup_id
         left join  dkic_b.t_mst_staff tmsf  on  tmsf.staff_id = tpir.staff_id
         left join  dkic_b.t_mst_org tmo  on  tmo.org_id = tpir.org_id
+        left join  sys.t_data_kind tdk1 on  tdk1.kind_code = tpir.out_status
+        left join  sys.t_data_kind tdk2 on  tdk2.kind_code = tpir.return_status
         <include refid="Condition_Response"/>
         <if test="pageSize != null and currentPage != null and pageSize != 0 and currentPage != 0">
             limit #{end} offset #{start}

+ 2 - 0
src/main/java/com/dk/mdm/mapper/pur/PurchaseMapper.java

@@ -31,6 +31,7 @@ public interface PurchaseMapper extends BaseMapper<Purchase>{
      */
     Long countByCond(PurchaseQuery purchaseQuery);
 
+
     /**
      * @desc   : 根据id查询
      * @author : 常皓宁
@@ -38,5 +39,6 @@ public interface PurchaseMapper extends BaseMapper<Purchase>{
      */
     PurchaseResponse  selectById(@Param("purId") String purId);
 
+    int updateAmount(Purchase purchase);
 }
 

+ 13 - 0
src/main/java/com/dk/mdm/mapper/pur/PurchaseMapper.xml

@@ -458,4 +458,17 @@
         FROM dkic_b.t_psi_purchase tpp
         <include refid="Condition_1"/>
     </select>
+
+    <update id="updateAmount" parameterType="com.dk.mdm.model.pojo.pur.Purchase">
+        update dkic_b.t_psi_purchase
+        <set>
+            <if test="returnQty!= null">
+                return_qty= #{returnQty},
+            </if>
+            <if test="returnAmt!= null">
+                return_amt = #{returnAmt},
+            </if>
+        </set>
+        where  pur_id = #{purId}::uuid
+    </update>
 </mapper>

+ 6 - 0
src/main/java/com/dk/mdm/model/response/ivt/IntoReturnResponse.java

@@ -323,8 +323,14 @@ public class IntoReturnResponse  implements Serializable {
     @ApiModelProperty(value = "部门编码")
     private String orgCode;
 
+    @ApiModelProperty(value = "供应商地址")
+    private String returnAddress;
 
+    @ApiModelProperty(value = "出库状态")
+    private String outStatusName;
 
+    @ApiModelProperty(value = "退货状态")
+    private String returnStatusName;
 
     private static final long serialVersionUID = 1L;
 

+ 4 - 9
src/main/java/com/dk/mdm/model/vo/ivt/IntoReturnItemVO.java

@@ -282,15 +282,10 @@ public class IntoReturnItemVO  implements Serializable {
     private String opDbUser;
 
 
-    /*
-     * 相关属性
-     * @TableField(exist = false)
-     */
-
-    /*
-     * 关联属性 + 查询条件
-     * @TableField(exist = false)
-     */
+    @Excel(name = "库存ID")
+    @ApiModelProperty(value = "库存ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String invId;
 
 
     private static final long serialVersionUID = 1L;

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

@@ -373,6 +373,8 @@ public class IntoReturnVO  implements Serializable {
     @ApiModelProperty(value = "退货明细")
     private List<IntoReturnItemVO> intoReturnItemVOList;
 
+
+
     private static final long serialVersionUID = 1L;
 
 }

+ 49 - 88
src/main/java/com/dk/mdm/service/ivt/IntoReturnService.java

@@ -21,6 +21,7 @@ import com.dk.mdm.mapper.ivt.IntoReturnMapper;
 import com.dk.common.service.BaseService;
 import com.dk.common.mapper.BaseMapper;
 import com.dk.mdm.model.pojo.ivt.IntoReturnItem;
+import com.dk.mdm.model.pojo.pur.Purchase;
 import com.dk.mdm.model.pojo.pur.PurchaseItem;
 import com.dk.mdm.model.query.ivt.IntoReturnQuery;
 import com.dk.mdm.model.query.pur.PurchaseQuery;
@@ -79,14 +80,12 @@ public class IntoReturnService extends BaseService<IntoReturn> {
     private OutboundService outboundService;
 
     @Autowired
-    private InboundService inboundService;
-
-    @Autowired
     private InboundMapper inboundMapper;
 
     @Autowired
     private InboundItemMapper inboundItemMapper;
 
+
     /**
      * @desc : 查询
      * @author : 于继渤
@@ -113,8 +112,10 @@ public class IntoReturnService extends BaseService<IntoReturn> {
             //返回 采购退货明细不可为空,请重新操作
             return ResponseResultUtil.error(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.PURCHASE_RETURN_DETAIL_NOT_EXIST.getMessage());
         }
+        //查询采购订单上的客户信息
+        PurchaseResponse purchaseResponse = purchaseMapper.selectById(intoReturnVO.getPurId());
         //设置总单
-        intoReturnVO = this.insertTotal(intoReturnVO);
+        intoReturnVO = this.insertTotal(intoReturnVO, purchaseResponse);
         //设置明细
         intoReturnItemVOList = this.insertDetail(intoReturnVO, intoReturnItemVOList);
 
@@ -123,7 +124,11 @@ public class IntoReturnService extends BaseService<IntoReturn> {
         inboundMapper.updateAmount(new Inbound().setIntoId(intoReturnVO.getIntoId())
                 .setReturnQty(inbound.getReturnQty().add(intoReturnVO.getSumQuantity()))
                 .setReturnAmt(inbound.getReturnAmt().add(intoReturnVO.getSumAmount())));
-
+        //反写订单已入库退货数量、金额
+        purchaseMapper.updateAmount(new Purchase().setPurId(purchaseResponse.getPurId())
+                .setReturnQty(purchaseResponse.getReturnQty().add(intoReturnVO.getSumQuantity()))
+                .setReturnAmt(purchaseResponse.getReturnAmt().add(intoReturnVO.getSumAmount()))
+        );
 
         //反写入库订单明细、反写订单明细
         for (IntoReturnItemVO intoReturnItemVO : intoReturnItemVOList) {
@@ -132,9 +137,9 @@ public class IntoReturnService extends BaseService<IntoReturn> {
             InboundItem inboundItem = inboundItemMapper.selectById(intoReturnItemVO.getIntoItemId());
             inboundItemMapper.updateAmount(
                     new InboundItem()
-                    .setItemId(inboundItem.getItemId())
-                    .setReturnQty(inboundItem.getReturnQty().add(intoReturnItemVO.getItemQty().setScale(6, BigDecimal.ROUND_HALF_UP)))
-                    .setReturnAmt(inboundItem.getReturnAmt().add(intoReturnItemVO.getItemAmt().setScale(6, BigDecimal.ROUND_HALF_UP)))
+                            .setItemId(inboundItem.getItemId())
+                            .setReturnQty(inboundItem.getReturnQty().add(intoReturnItemVO.getItemQty().setScale(6, BigDecimal.ROUND_HALF_UP)))
+                            .setReturnAmt(inboundItem.getReturnAmt().add(intoReturnItemVO.getItemAmt().setScale(6, BigDecimal.ROUND_HALF_UP)))
             );
             //TODO 反写订单出库明细 退货数量和退货金额
             //查询采购订单明细数据
@@ -149,41 +154,42 @@ public class IntoReturnService extends BaseService<IntoReturn> {
             );
         }
 
-//        //新建出库单
-//        OutboundVO outboundVO = new OutboundVO();
-//        //来源ID
-//        outboundVO.setFromId(intoReturnVO.getReturnId());
-//        //来源单号
-//        outboundVO.setFromNo(intoReturnVO.getReturnNo());
-//        //部门
-//        outboundVO.setOrgId(intoReturnVO.getOrgId());
-//        //员工
-//        outboundVO.setStaffId(intoReturnVO.getStaffId());
-//        //供应商
-//        outboundVO.setSupId(intoReturnVO.getSupId());
-//        //出库状态
-//        outboundVO.setOutStatus("出库状态-出库中");
-//        outboundVO.setMakeStaff(authUtils.getStaff().getStaffId());
-//        outboundVO.setCpId(authUtils.getStaff().getCpId());
-//        List<OutboundItemVO> itemList = new ArrayList<>();
-//        Integer itemIndex = 0;
-//
-//        for (IntoReturnItemVO intoReturnItemVO : intoReturnItemVOList) {
-//            OutboundItemVO outboundItemVO = new OutboundItemVO();
-//            outboundItemVO.setSkuId(intoReturnItemVO.getSkuId());
-//            outboundItemVO.setItemIndex(itemIndex +1);
-//            outboundItemVO.setPriceOut(intoReturnItemVO.getPriceReturn());
-//            outboundItemVO.setInvId("10112024-0305-0000-0000-000009593bb6");
-//            itemList.add(outboundItemVO);
-//        }
-//
-//        outboundVO.setItemList(itemList);
-//
-//
-//
-//        outboundService.insert(outboundVO);
+        //新建出库单
+        OutboundVO outboundVO = new OutboundVO();
+        //来源ID
+        outboundVO.setFromId(intoReturnVO.getReturnId());
+        //来源单号
+        outboundVO.setFromNo(intoReturnVO.getReturnNo());
+        //部门
+        outboundVO.setOrgId(intoReturnVO.getOrgId());
+        //员工
+        outboundVO.setStaffId(intoReturnVO.getStaffId());
+        //出库状态
+        outboundVO.setOutStatus(Constant.OutStatus.CHUKUZHONG.getName());
+        //供应商
+        outboundVO.setSupId(intoReturnVO.getSupId());
+        outboundVO.setMakeStaff(authUtils.getStaff().getStaffId());
+        outboundVO.setCpId(authUtils.getStaff().getCpId());
 
+        outboundVO.setFromId(intoReturnVO.getReturnId());
+        List<OutboundItemVO> itemList = new ArrayList<>();
+        Integer itemIndex = 0;
+        for (IntoReturnItemVO intoReturnItemVO : intoReturnItemVOList) {
+            //来源单ID 入库退货
+            OutboundItemVO outboundItemVO = new OutboundItemVO();
+
+            outboundItemVO.setFromId(intoReturnItemVO.getReturnId());
+            outboundItemVO.setFromItemId(intoReturnItemVO.getItemId());
+            outboundItemVO.setSkuId(intoReturnItemVO.getSkuId());
+            outboundItemVO.setItemIndex(itemIndex + 1);
+            outboundItemVO.setPriceOut(intoReturnItemVO.getPriceReturn());
+            outboundItemVO.setInvId(intoReturnItemVO.getInvId());
+            itemList.add(outboundItemVO);
+        }
 
+        outboundVO.setItemList(itemList);
+        //新建出库单
+        outboundService.insertOutBound(outboundVO);
         return ResponseResultUtil.success();
     }
 
@@ -193,13 +199,12 @@ public class IntoReturnService extends BaseService<IntoReturn> {
      * @author : 于继渤
      */
     @Transactional(rollbackFor = {Exception.class})
-    public IntoReturnVO insertTotal(IntoReturnVO intoReturnVO) {
+    public IntoReturnVO insertTotal(IntoReturnVO intoReturnVO, PurchaseResponse purchaseResponse) {
         // 获取单号
         Map<String, Object> codeMap = commonService.getUniqueNoteCode(Constant.docNameConstant.OUTBOUND.getName(), false);
         intoReturnVO.setReturnId(codeMap.get("outId").toString()).setReturnNo(codeMap.get("outNote").toString())
                 .setReturnType(Constant.returnType.PURRETURN.getName());
-        //查询采购订单上的客户信息
-        PurchaseResponse purchaseResponse = purchaseMapper.selectById(intoReturnVO.getPurId());
+
         //部门Id
         intoReturnVO.setOrgId(purchaseResponse.getOrgId());
         intoReturnVO.setReturnStatus("退货状态-通过");
@@ -257,50 +262,6 @@ public class IntoReturnService extends BaseService<IntoReturn> {
             IntoReturnItem intoReturnItem = intoReturnItemConvert.convertToPo(intoReturnItemVO);
             intoReturnItemService.insert(intoReturnItem);
 
-//			//已出库数量
-
-//			orderOutRejectItemVO.setOutOutQuantity(orderItem.getOutQuantity());
-//			//已出库金额
-//			orderOutRejectItemVO.setOutOutAmount(orderItem.getOutAmount());
-//			//已出库退货数量
-//			orderOutRejectItemVO.setOutRejectQuantity(orderItem.getRejectQuantity());
-//			//已出库退货金额
-//			orderOutRejectItemVO.setOutRejectAmount(orderItem.getRejectAmount());
-//			//退货差价
-//			orderOutRejectItemVO.setDifferencePrice(orderItem.getPriceSale().subtract(orderOutRejectItemVO.getOrderPriceSale()));
-//			//退货差额
-//			orderOutRejectItemVO.setDifferenceAmount(orderOutRejectItemVO.getDifferencePrice().multiply(orderOutRejectItemVO.getOutRejectQuantity()));
-//			// 出库中数量 - 已出库数量 < 本次出库数量
-//			if (orderOutRejectItemVO.getOutOutQuantity().add(orderOutRejectItemVO.getOutRejectQuantity()).compareTo(orderOutRejectItemVO.getRejectQuantity().negate()) == -1) {
-//				throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ORDER_GREATER_THAN_THE_REFUNDABLE_QUANTITY.getmessage());
-//			}
-//			//出库状态  出库中
-//			orderOutRejectItemVO.setOutStatus(Constant.OutStatusConstant.OUT_ORDER_NOT_OUT.getName());
-//			//出库中金额
-//			orderOutRejectItemVO.setOutGoingAmount(orderOutRejectItemVO.getRejectAmount().abs());
-//			//出库中数量
-//			orderOutRejectItemVO.setOutGoingQuantity(orderOutRejectItemVO.getRejectQuantity().abs());
-//			//出库中时间
-//			orderOutRejectItemVO.setOutGoingTime(LocalDateTime.now());
-//			//自动出库赋值  已出库数量、已出库金额、最后出库时间
-//			if (orderOutRejectVO.getFlgAutoIvt()) {
-//				//已出库数量
-//				orderOutRejectItemVO.setOutQuantity(orderOutRejectItemVO.getRejectQuantity().abs());
-//				//已出库金额
-//				orderOutRejectItemVO.setOutAmount(orderOutRejectItemVO.getRejectAmount().abs());
-//				//最后出库时间
-//				orderOutRejectItemVO.setOutTime(LocalDateTime.now());
-//			}
-//			//实体转换
-//			OrderOutRejectItem orderOutRejectItem = orderOutRejectItemConvert.convertToPo(orderOutRejectItemVO);
-//			//明细新建
-//			orderOutRejectItemMapper.insert(orderOutRejectItem);
-//			orderOutRejectItemVO.setItemId(orderOutRejectItem.getItemId());
-//		}
-//
-//		return orderOutRejectItemVOList;
-
-
         }
         return intoReturnItemVOList;
     }

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

@@ -12,6 +12,7 @@ import com.dk.common.response.ResponseResultVO;
 import com.dk.mdm.infrastructure.convert.ivt.OutboundConvert;
 import com.dk.mdm.infrastructure.convert.ivt.OutboundItemConvert;
 import com.dk.mdm.mapper.ivt.OutboundItemMapper;
+import com.dk.mdm.mapper.pur.PurchaseItemMapper;
 import com.dk.mdm.mapper.sale.OrderItemMapper;
 import com.dk.mdm.mapper.sale.OrderMapper;
 import com.dk.mdm.model.pojo.ivt.Outbound;
@@ -25,6 +26,7 @@ import com.dk.mdm.model.query.ivt.OutboundItemQuery;
 import com.dk.mdm.model.query.ivt.OutboundQuery;
 import com.dk.mdm.model.response.ivt.OutboundItemResponse;
 import com.dk.mdm.model.response.ivt.OutboundResponse;
+import com.dk.mdm.model.response.pur.PurchaseItemResponse;
 import com.dk.mdm.model.response.sale.OrderResponse;
 import com.dk.mdm.model.vo.ivt.OutboundItemVO;
 import com.dk.mdm.model.vo.ivt.OutboundVO;
@@ -86,6 +88,9 @@ public class OutboundService extends BaseService<Outbound> {
 	@Autowired
 	private OutboundItemConvert outboundItemConvert;
 
+	@Autowired
+	private PurchaseItemMapper purchaseItemMapper;
+
 	/**
 	 * @desc : 条件查询
 	 * @author : 付斌
@@ -215,4 +220,62 @@ public class OutboundService extends BaseService<Outbound> {
 		return ResponseResultUtil.success(super.update(outbound, new UpdateWrapper<Outbound>().lambda().eq(Outbound::getOutId,
 				UUID.fromString(outbound.getOutId()))));
 	}
+
+	/**
+	 * @desc : 采购退货出库
+	 * @author : 于继渤
+	 * @date : 2023/1/9 10:49
+	 */
+	@Transactional(
+			rollbackFor = {Exception.class}
+	)
+	public ResponseResultVO<?> insertOutBound(OutboundVO outboundVO) {
+
+		// 获取单号
+		Map<String , Object> codeMap = commonService.getUniqueNoteCode(Constant.docNameConstant.OUTBOUND.getName(),false);
+		outboundVO.setOutId(codeMap.get("outId").toString()).setOutNo(codeMap.get("outNote").toString())
+				.setOutType(Constant.OutType.PURRETURN.getName());
+		// 转化实体
+		Outbound outbound = outboundConvert.convertToPo(outboundVO);
+		// 总单保存
+		super.insert(outbound);
+
+		// 明细保存
+		if (outboundVO.getItemList() != null && outboundVO.getItemList().size() > 0) {
+			double sumOutingQty = 0;	// 合计出库中数量
+			double sumOutingAmt = 0;	// 合计出库中金额
+			for (OutboundItemVO outboundItemVO : outboundVO.getItemList()) {
+				OutboundItem outboundItem = outboundItemConvert.convertToPo(outboundItemVO);
+				outboundItem.setOutId(outbound.getOutId()).setCpId(outbound.getCpId()).setOutStatus(Constant.OutStatus.CHUKUZHONG.getName())
+						.setOutType(Constant.OutType.PURRETURN.getName());
+				outboundItemMapper.insert(outboundItem);
+
+//				PurchaseItemResponse purchaseItemResponse = purchaseItemMapper.selectById(outboundItem.getFromItemId());
+
+				// 如果商品数量小于订单+本次出库单上的出库中数量
+//				if(orderItem.getItemQty().compareTo(orderItem.getOutingQty().add(outboundItem.getOutingQty())) == -1){
+//					throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ITEMQTY_NO_LESS_OUTQTY.getMessage());
+//				}else{
+//					OrderItem orderItemUpdate = new OrderItem();
+//					orderItemUpdate.setOutingQty(orderItem.getOutingQty().add(outboundItem.getOutingQty()))
+//							.setOutingAmt(orderItem.getOutingAmt().add(outboundItem.getOutingAmt()))
+//							.setItemId(orderItem.getItemId());
+//					orderItemService.updateByUuid(orderItemUpdate);
+//					// 累加出库中数量,金额
+//					sumOutingQty += outboundItem.getOutingQty().doubleValue();
+//					sumOutingAmt += outboundItem.getOutingAmt().doubleValue();
+//				}
+			}
+//			// 更新订单上的出库中数量,金额,状态
+//			OrderResponse orderResponse = orderMapper.selectById(outboundVO.getFromId());
+//			Order orderUpdate = new Order();
+//			orderUpdate.setOutingQty(orderResponse.getOutingQty().add(new BigDecimal(sumOutingQty)))
+//					.setOutingAmt(orderResponse.getOutingAmt().add(new BigDecimal(sumOutingAmt)))
+//					.setOutStatus(Constant.OutStatus.CHUKUZHONG.getName())
+//					.setOrderId(outboundVO.getFromId());
+//			orderService.updateByUuid(orderUpdate);
+		}
+		return ResponseResultUtil.success();
+	}
+
 }