Эх сурвалжийг харах

客户收款明细和库存调整后台

songyang 2 жил өмнө
parent
commit
872c7bd22c

+ 10 - 0
src/main/java/com/dk/mdm/controller/report/ReportController.java

@@ -79,6 +79,16 @@ public class ReportController  {
     public ResponseResultVO<List<Map<String, Object>>> getInboundDetailReport(@RequestBody Map<String, Object> param) {
         return reportService.getInboundDetailReport(param);
     }
+
+    /**
+     * @desc   : 客户收款明细表
+     * @author : 宋扬
+     * @date   : 2024/4/16 11:27
+     */
+    @PostMapping("rec_pay_detail_report")
+    public ResponseResultVO<List<Map<String, Object>>> getRecPayDetailReport(@RequestBody Map<String, Object> param) {
+        return reportService.getRecPayDetailReport(param);
+    }
 }
 
 

+ 7 - 0
src/main/java/com/dk/mdm/mapper/report/ReportMapper.java

@@ -79,4 +79,11 @@ public interface ReportMapper extends BaseMapper<JSONObject> {
      * @date   : 2024/4/11 16:56
      */
     List<Map<String, Object>> getInboundDetailReport(Map param);
+
+    /**
+     * @desc   : 客户收款明细表(主表)
+     * @author : 宋扬
+     * @date   : 2024/4/16 11:30
+     */
+    List<Map<String, Object>> getRecPayDetailReport(Map param);
 }

+ 66 - 0
src/main/java/com/dk/mdm/mapper/report/ReportMapper.xml

@@ -493,6 +493,42 @@
         </where>
     </sql>
 
+    <!-- 客户收款明细表条件列 -->
+    <sql id="Condition_RecPayDetailReport">
+        <where>
+            t.rp_type in ('收付款类型-收款', '收付款类型-退收款')
+            <if test="cpId != null">
+                AND t.cp_id = #{cpId}
+            </if>
+            <if test="rpNo != null and rpNo != ''">
+                AND t.rp_no LIKE concat('%',my_ex.likequery(#{rpNo}),'%')
+            </if>
+            <if test="contactPhone != null and contactPhone != ''">
+                AND t.contact_phone LIKE concat('%',my_ex.likequery(#{contactPhone}),'%')
+            </if>
+            <if test="biznisNo != null and biznisNo != ''">
+                AND t.biznis_no LIKE concat('%',my_ex.likequery(#{biznisNo}),'%')
+            </if>
+            <if test="cusName != null and cusName != ''">
+                AND tmc.cus_name LIKE concat('%',my_ex.likequery(#{cusName}),'%')
+            </if>
+            <if test="orgIdList != null and orgIdList.size() > 0">
+                AND t.org_id  =any(#{orgIdList, typeHandler=uuidListTypeHandler})
+            </if>
+            <if test="staffIdList != null and staffIdList.size() > 0">
+                AND t.staff_id  =any(#{staffIdList, typeHandler=uuidListTypeHandler})
+            </if>
+            <if test="accDateStart != null and accDateEnd != null">
+                AND t.acc_date &gt;= #{accDateStart}::timestamp with time zone
+                AND t.acc_date &lt; #{accDateEnd}::timestamp with time zone + interval '1 day'
+            </if>
+            <if test="makeTimeStart != null and makeTimeEnd != null">
+                AND t.make_time &gt;= #{makeTimeStart}::timestamp with time zone
+                AND t.make_time &lt; #{makeTimeEnd}::timestamp with time zone + interval '1 day'
+            </if>
+        </where>
+    </sql>
+
     <!-- 采购明细报表主表 -->
     <select id="getPurReport" resultType="java.util.Map">
         select
@@ -905,4 +941,34 @@
         </if>
     </select>
 
+    <!-- 客户收款明细报表主表 -->
+    <select id="getRecPayDetailReport" resultType="java.util.Map">
+        SELECT
+        t.rp_no                                             as "rpNo",
+        t.biznis_no                                         as "biznisNo",
+        tmo.org_name                                        as "orgName",
+        tms.staff_name                                      as "staffName",
+        tmc.cus_name                                        as "cusName",
+        tmc.cus_phone                                       as "cusPhone",
+        sys.f_get_name_i18n(tdk1.kind_name_i18n, #{i18n})   as "rpTypeName",
+        tmma.mac_name                                       as "macName",
+        tmrpi.amt_rec                                           as "amtRec",
+        t.acc_date                                          as "accDate",
+        t.remarks,
+        makestaff.staff_name                                as "makeStaffName"
+        FROM dkic_b.t_mac_rec_pay_item as tmrpi
+        left join dkic_b.t_mac_rec_pay t on tmrpi.rp_id = t.rp_id
+        left join dkic_b.t_mst_org tmo on tmo.org_id = t.org_id
+        left join dkic_b.t_mst_staff tms on tms.staff_id = t.staff_id
+        left join dkic_b.t_mst_staff as makestaff on makestaff.staff_id = t.make_staff
+        left join dkic_b.t_mst_customer tmc on tmc.cus_id = t.object_id
+        left join sys.t_data_kind as tdk1 on tdk1.kind_code = t.rp_type
+        left join dkic_b.t_mst_money_account tmma on tmma.mac_id = tmrpi.mac_id
+        <include refid="Condition_RecPayDetailReport"/>
+        order by  t.op_create_time desc
+        <if test="pageSize != null and currentPage != null and pageSize != 0 and currentPage != 0">
+            limit #{end} offset #{start}
+        </if>
+    </select>
+
 </mapper>

+ 89 - 60
src/main/java/com/dk/mdm/service/ivt/TransferService.java

@@ -12,19 +12,18 @@ import com.dk.common.response.ResponseResultVO;
 import com.dk.mdm.infrastructure.convert.ivt.TransferConvert;
 import com.dk.mdm.infrastructure.convert.ivt.TransferItemConvert;
 import com.dk.mdm.mapper.ivt.InboundItemMapper;
+import com.dk.mdm.mapper.ivt.OutboundItemMapper;
 import com.dk.mdm.mapper.ivt.TransferItemMapper;
-import com.dk.mdm.model.pojo.ivt.CheckItem;
-import com.dk.mdm.model.pojo.ivt.InboundItem;
-import com.dk.mdm.model.pojo.ivt.Transfer;
+import com.dk.mdm.model.pojo.ivt.*;
 import com.dk.mdm.mapper.ivt.TransferMapper;
 import com.dk.common.service.BaseService;
 import com.dk.common.mapper.BaseMapper;
-import com.dk.mdm.model.pojo.ivt.TransferItem;
 import com.dk.mdm.model.pojo.mac.RecPay;
 import com.dk.mdm.model.pojo.mac.RecPayItem;
 import com.dk.mdm.model.pojo.sale.Order;
 import com.dk.mdm.model.query.ivt.TransferQuery;
 import com.dk.mdm.model.response.ivt.InboundItemResponse;
+import com.dk.mdm.model.response.ivt.OutboundItemResponse;
 import com.dk.mdm.model.response.ivt.TransferResponse;
 import com.dk.mdm.model.vo.ivt.*;
 import com.dk.mdm.service.common.CommonService;
@@ -78,6 +77,9 @@ public class TransferService extends BaseService<Transfer> {
 	@Autowired
 	private InboundItemMapper inboundItemMapper;
 
+    @Autowired
+    private OutboundItemMapper outboundItemMapper;
+
 
 	/**
 	 * @desc   : 重写主键
@@ -145,7 +147,7 @@ public class TransferService extends BaseService<Transfer> {
 						.setScale(6, BigDecimal.ROUND_HALF_UP);*/
 				// 获取入库表实体
 				InboundVO inboundVO = new InboundVO();
-				List<InboundItem> inboundItemList=new ArrayList<>();
+				List<InboundItemVO> inboundItemVOList=new ArrayList<>();
 				// 获取出库表实体
 				OutboundVO outboundVO = new OutboundVO();
 				List<OutboundItemVO> outboundItemVOList=new ArrayList<>();
@@ -167,28 +169,46 @@ public class TransferService extends BaseService<Transfer> {
 					// 获取入库明细实体
 					for (TransferItemVO transferItemVO : transferVO.getItemList()) {
 						// 赋值入库明细实体
-						InboundItem inboundItem=new InboundItem();
-						inboundItem.setIntoingQty(transferItemVO.getTransferQty()).setFromId(transfer.getTransferId())
-								.setIntoingAmt(BigDecimal.ZERO).setPriceInto(BigDecimal.ZERO).setIntoId(transferItemVO.getInvId())
-								.setWhId(transferItemVO.getWhId()).setSkuId(transferItemVO.getSkuId())
-								.setNonStdCode(transferItemVO.getONonStdCode()).setItemIndex(transferItemVO.getItemIndex());
-						inboundItemList.add(inboundItem);
+						InboundItemVO inboundItemVO=new InboundItemVO();
+                        inboundItemVO.setItemIndex(transferItemVO.getItemIndex()).setSkuId(transferItemVO.getSkuId())
+                                .setIntoingQty(transferItemVO.getTransferQty()).setFromId(transfer.getTransferId())
+								.setIntoingAmt(BigDecimal.ZERO).setPriceInto(BigDecimal.ZERO)
+                                .setWhId(transferItemVO.getWhId()).setNonStdCode(transferItemVO.getONonStdCode());
+
+                        inboundItemVOList.add(inboundItemVO);
+
+                        // 赋值出库明细信息。
+                        OutboundItemVO outboundItemVO =new OutboundItemVO();
+                        outboundItemVO.setItemIndex(transferItemVO.getItemIndex()).setSkuId(transferItemVO.getSkuId())
+                                .setOutingQty(transferItemVO.getTransferQty()).setFromId(transfer.getTransferId())
+                                .setOutingAmt(BigDecimal.ZERO).setPriceOut(BigDecimal.ZERO)
+                                .setWhId(transferItemVO.getWhId()).setNonStdCode(transferItemVO.getONonStdCode());
+
+                        outboundItemVOList.add(outboundItemVO);
 					}
+
+                    // 赋值出库接口参数 总表和明细
+                    outboundCheckMap.put("total",outboundVO);
+                    outboundCheckMap.put("detail",outboundItemVOList);
+                    // 调用盘点出库接口
+                    OutboundVO outboundTransferVO = outboundCheckService.otherOutboundInsert(outboundCheckMap);
+
 					// 赋值入库接口参数 总表和明细
 					inboundMap.put("total", inboundVO);
-					inboundMap.put("detail", inboundItemList);
+					inboundMap.put("detail", inboundItemVOList);
 					// 调用入库接口
 					InboundVO inboundTransferVO = inboundCheckService.checkInboundInsert(inboundMap);
 					// 如果库存接口返回成功,则插入调整单明细数据
 					if (transferVO.getItemList() != null && transferVO.getItemList().size() > 0) {
 						for (TransferItemVO transferItemVO : transferVO.getItemList()) {
-							// 转换
+							// 转换库存调整单明细
 							TransferItem transferItem = transferItemConvert.convertToPo(transferItemVO);
 							// 在入库接口中获取入库明细数据
-							List<InboundItemVO> inboundItemVOList = inboundTransferVO.getItemList().stream()
+							inboundItemVOList = inboundTransferVO.getItemList().stream()
 									.filter(it -> it.getItemIndex().equals(transferItemVO.getItemIndex())).collect(Collectors.toList());
 							// 通过入库明细数据的item_id查询出inv_id
 							InboundItemResponse inboundItemResponse = inboundItemMapper.selectById(inboundItemVOList.get(0).getItemId());
+
 							// 获取调整主表uuid
 							transferItem.setTransferId(transfer.getTransferId()).setTransferDate(LocalDate.now())
 									.setInvId(inboundItemResponse.getInvId());
@@ -198,19 +218,18 @@ public class TransferService extends BaseService<Transfer> {
 							InboundItem inboundItem= new InboundItem();
 							inboundItem.setFromItemId(transferItem.getItemId()).setItemId(inboundItemResponse.getItemId());
 							inboundItemService.updateByUuid(inboundItem);
-							// 赋值出库明细信息。
-							OutboundItemVO outboundItemVO =new OutboundItemVO();
-							outboundItemVO.setFromItemId(transferItem.getItemId()).setItemIndex(transferItem.getItemIndex())
-									.setOutingQty(transferItem.getTransferQty()).setFromId(transferItem.getTransferId())
-									.setSkuId(transferItem.getSkuId()).setNonStdCode(transferItem.getONonStdCode())
-									.setInvId(transferItem.getOInvId()).setPriceOut(BigDecimal.ZERO).setOutingAmt(BigDecimal.ZERO);
-							outboundItemVOList.add(outboundItemVO);
+
+                            // 在出库接口中获取入库明细数据
+                            outboundItemVOList = outboundTransferVO.getItemList().stream()
+                                    .filter(it -> it.getItemIndex().equals(transferItemVO.getItemIndex())).collect(Collectors.toList());
+                            // 通过出库明细数据的item_id查询出inv_id
+                            OutboundItemResponse outboundItemResponse = outboundItemMapper.selectById(outboundItemVOList.get(0).getItemId());
+
+                            // 赋值出库明细值 并修改出库明细from_item_id值
+                            OutboundItem outboundItem= new OutboundItem();
+                            outboundItem.setFromItemId(transferItem.getItemId()).setItemId(outboundItemResponse.getItemId());
+                            inboundItemService.updateByUuid(inboundItem);
 						}
-						// 赋值出库接口参数 总表和明细
-						outboundCheckMap.put("total",outboundVO);
-						outboundCheckMap.put("detail",outboundItemVOList);
-						// 调用盘点出库接口
-						outboundCheckService.otherOutboundInsert(outboundCheckMap);
 					}
 				}
 				// 非标号调整
@@ -231,50 +250,60 @@ public class TransferService extends BaseService<Transfer> {
 					// 获取入库明细实体
 					for (TransferItemVO transferItemVO : transferVO.getItemList()) {
 						// 赋值入库明细实体
-						InboundItem inboundItem=new InboundItem();
-						inboundItem.setIntoingQty(transferItemVO.getTransferQty()).setFromId(transfer.getTransferId())
-								.setIntoingAmt(BigDecimal.ZERO).setPriceInto(BigDecimal.ZERO).setIntoId(transferItemVO.getInvId())
-								.setWhId(transferItemVO.getOWhId()).setSkuId(transferItemVO.getSkuId())
-								.setNonStdCode(transferItemVO.getNonStdCode()).setItemIndex(transferItemVO.getItemIndex());
-						inboundItemList.add(inboundItem);
+                        InboundItemVO inboundItemVO=new InboundItemVO();
+                        inboundItemVO.setItemIndex(transferItemVO.getItemIndex()).setSkuId(transferItemVO.getSkuId())
+                                .setIntoingQty(transferItemVO.getTransferQty()).setFromId(transfer.getTransferId())
+								.setIntoingAmt(BigDecimal.ZERO).setPriceInto(BigDecimal.ZERO)
+								.setWhId(transferItemVO.getOWhId()).setNonStdCode(transferItemVO.getNonStdCode());
+                        inboundItemVOList.add(inboundItemVO);
+
+                        // 赋值出库明细信息。
+                        OutboundItemVO outboundItemVO =new OutboundItemVO();
+                        outboundItemVO.setItemIndex(transferItemVO.getItemIndex()).setSkuId(transferItemVO.getSkuId())
+                                .setOutingQty(transferItemVO.getTransferQty()).setFromId(transfer.getTransferId())
+                                .setOutingAmt(BigDecimal.ZERO).setPriceOut(BigDecimal.ZERO)
+                                .setWhId(transferItemVO.getWhId()).setNonStdCode(transferItemVO.getONonStdCode());
+                        outboundItemVOList.add(outboundItemVO);
 					}
+                    // 赋值出库接口参数 总表和明细
+                    outboundCheckMap.put("total",outboundVO);
+                    outboundCheckMap.put("detail",outboundItemVOList);
+                    // 调用盘点出库接口
+                    OutboundVO outboundTransferVO = outboundCheckService.otherOutboundInsert(outboundCheckMap);
+
 					// 赋值入库接口参数 总表和明细
 					inboundMap.put("total", inboundVO);
-					inboundMap.put("detail", inboundItemList);
+					inboundMap.put("detail", inboundItemVOList);
 					// 调用入库接口
 					InboundVO inboundTransferVO = inboundCheckService.checkInboundInsert(inboundMap);
 					// 如果库存接口返回成功,则插入调整单明细数据
 					if (transferVO.getItemList() != null && transferVO.getItemList().size() > 0) {
 						for (TransferItemVO transferItemVO : transferVO.getItemList()) {
-							// 转换
+                            // 转换库存调整单明细
 							TransferItem transferItem = transferItemConvert.convertToPo(transferItemVO);
-							// 在入库接口中获取入库明细数据
-							List<InboundItemVO> inboundItemVOList = inboundTransferVO.getItemList().stream()
-									.filter(it -> it.getItemIndex().equals(transferItemVO.getItemIndex())).collect(Collectors.toList());
-							// 通过入库明细数据的item_id查询出inv_id
-							InboundItemResponse inboundItemResponse = inboundItemMapper.selectById(inboundItemVOList.get(0).getItemId());
-							// 获取调整主表uuid
-							transferItem.setTransferId(transfer.getTransferId()).setTransferDate(LocalDate.now())
-									.setInvId(inboundItemResponse.getInvId());
-							// 插入调整单明细数据
-							transferItemMapper.insert(transferItem);
-							// 赋值入库明细值 并修改入库明细from_item_id值
-							InboundItem inboundItem= new InboundItem();
-							inboundItem.setFromItemId(transferItem.getItemId()).setItemId(inboundItemResponse.getItemId());
-							inboundItemService.updateByUuid(inboundItem);
-							// 赋值出库明细信息。
-							OutboundItemVO outboundItemVO =new OutboundItemVO();
-							outboundItemVO.setFromItemId(transferItem.getItemId()).setItemIndex(transferItem.getItemIndex())
-									.setOutingQty(transferItem.getTransferQty()).setFromId(transferItem.getTransferId())
-									.setSkuId(transferItem.getSkuId()).setNonStdCode(transferItem.getONonStdCode())
-									.setInvId(transferItem.getOInvId()).setPriceOut(BigDecimal.ZERO).setOutingAmt(BigDecimal.ZERO);
-							outboundItemVOList.add(outboundItemVO);
+                            // 在入库接口中获取入库明细数据
+                            inboundItemVOList = inboundTransferVO.getItemList().stream()
+                                    .filter(it -> it.getItemIndex().equals(transferItemVO.getItemIndex())).collect(Collectors.toList());
+                            // 通过入库明细数据的item_id查询出inv_id
+                            InboundItemResponse inboundItemResponse = inboundItemMapper.selectById(inboundItemVOList.get(0).getItemId());
+
+                            // 获取调整主表uuid
+                            transferItem.setTransferId(transfer.getTransferId()).setTransferDate(LocalDate.now())
+                                    .setInvId(inboundItemResponse.getInvId());
+                            // 插入调整单明细数据
+                            transferItemMapper.insert(transferItem);
+                            // 赋值入库明细值 并修改入库明细from_item_id值
+                            InboundItem inboundItem= new InboundItem();
+                            inboundItem.setFromItemId(transferItem.getItemId()).setItemId(inboundItemResponse.getItemId());
+                            inboundItemService.updateByUuid(inboundItem);
+
+                            // 在出库接口中获取入库明细数据
+                            outboundItemVOList = outboundTransferVO.getItemList().stream()
+                                    .filter(it -> it.getItemIndex().equals(transferItemVO.getItemIndex())).collect(Collectors.toList());
+                            // 通过出库明细数据的item_id查询出inv_id
+                            OutboundItemResponse outboundItemResponse = outboundItemMapper.selectById(outboundItemVOList.get(0).getItemId());
 						}
-						// 赋值出库接口参数 总表和明细
-						outboundCheckMap.put("total",outboundVO);
-						outboundCheckMap.put("detail",outboundItemVOList);
-						// 调用盘点出库接口
-						outboundCheckService.otherOutboundInsert(outboundCheckMap);
+
 					}
 				}
 			}

+ 14 - 0
src/main/java/com/dk/mdm/service/report/ReportService.java

@@ -117,4 +117,18 @@ public class ReportService {
         return ResponseResultUtil.success(list);
     }
 
+    /**
+     * @desc   : 客户收款明细表
+     * @author : 宋扬
+     * @date   : 2024/4/16 11:29
+     */
+    public ResponseResultVO<List<Map<String, Object>>> getRecPayDetailReport(Map<String, Object> param) {
+        // 获取系统基础数据
+        List<Map<String, Object>> list=new ArrayList<>();
+        // 查询主表
+        list= reportMapper.getRecPayDetailReport(param);
+        return ResponseResultUtil.success(list);
+    }
+
+
 }