Commit 2adb35b86f602a90357795312a2a310ef6160cc4

Authored by yeqianyong
1 parent 6e21cdf9

楚江erp:台账明细-手续完善状态逻辑处理

@@ -28,7 +28,9 @@ import org.springframework.transaction.annotation.Transactional; @@ -28,7 +28,9 @@ import org.springframework.transaction.annotation.Transactional;
28 import org.springframework.stereotype.Service; 28 import org.springframework.stereotype.Service;
29 import java.time.LocalDateTime; 29 import java.time.LocalDateTime;
30 import java.util.ArrayList; 30 import java.util.ArrayList;
  31 +import java.util.Collections;
31 import java.util.List; 32 import java.util.List;
  33 +import java.util.Map;
32 34
33 @Service 35 @Service
34 public class FundOrderingUnitDetailServiceImpl extends BaseMpServiceImpl<FundOrderingUnitDetailMapper, FundOrderingUnitDetail> implements FundOrderingUnitDetailService { 36 public class FundOrderingUnitDetailServiceImpl extends BaseMpServiceImpl<FundOrderingUnitDetailMapper, FundOrderingUnitDetail> implements FundOrderingUnitDetailService {
@@ -157,6 +159,15 @@ public class FundOrderingUnitDetailServiceImpl extends BaseMpServiceImpl<FundOrd @@ -157,6 +159,15 @@ public class FundOrderingUnitDetailServiceImpl extends BaseMpServiceImpl<FundOrd
157 } 159 }
158 160
159 @Override 161 @Override
  162 + public List<Map<String, Object>> listByLedgerIds(List<String> ledgerIds) {
  163 + if (CollectionUtils.isEmpty(ledgerIds)) {
  164 + return Collections.emptyList();
  165 + }
  166 +
  167 + return getBaseMapper().queryFundsCoordinateStatus(ledgerIds);
  168 + }
  169 +
  170 + @Override
160 public void cleanCacheByKey(Serializable key) { 171 public void cleanCacheByKey(Serializable key) {
161 172
162 } 173 }
@@ -28,6 +28,7 @@ import com.lframework.starter.web.core.components.resp.PageResult; @@ -28,6 +28,7 @@ import com.lframework.starter.web.core.components.resp.PageResult;
28 import com.lframework.starter.common.utils.Assert; 28 import com.lframework.starter.common.utils.Assert;
29 import com.lframework.xingyun.sc.service.contract.ContractDistributorStandardService; 29 import com.lframework.xingyun.sc.service.contract.ContractDistributorStandardService;
30 import com.lframework.xingyun.sc.service.customer.CustomerCreditService; 30 import com.lframework.xingyun.sc.service.customer.CustomerCreditService;
  31 +import com.lframework.xingyun.sc.service.ledger.FundOrderingUnitDetailService;
31 import com.lframework.xingyun.sc.service.order.PurchaseOrderInfoService; 32 import com.lframework.xingyun.sc.service.order.PurchaseOrderInfoService;
32 import com.lframework.xingyun.sc.service.order.PurchaseOrderLineService; 33 import com.lframework.xingyun.sc.service.order.PurchaseOrderLineService;
33 import com.lframework.xingyun.sc.service.shipments.ShipmentsOrderInfoService; 34 import com.lframework.xingyun.sc.service.shipments.ShipmentsOrderInfoService;
@@ -84,6 +85,8 @@ public class ReceiptLedgerInfoServiceImpl extends BaseMpServiceImpl<ReceiptLedge @@ -84,6 +85,8 @@ public class ReceiptLedgerInfoServiceImpl extends BaseMpServiceImpl<ReceiptLedge
84 private ContractDistributorStandardService contractDistributorStandardService; 85 private ContractDistributorStandardService contractDistributorStandardService;
85 @Resource 86 @Resource
86 private DraftRequestCarTicketService draftRequestCarTicketService; 87 private DraftRequestCarTicketService draftRequestCarTicketService;
  88 + @Resource
  89 + private FundOrderingUnitDetailService fundOrderingUnitDetailService;
87 90
88 91
89 // 定义状态优先级顺序(从高到低) 92 // 定义状态优先级顺序(从高到低)
@@ -121,11 +124,34 @@ public class ReceiptLedgerInfoServiceImpl extends BaseMpServiceImpl<ReceiptLedge @@ -121,11 +124,34 @@ public class ReceiptLedgerInfoServiceImpl extends BaseMpServiceImpl<ReceiptLedge
121 List<SysDataDicItem> debtStatusList = sysDataDicItemService.findByDicCode("DEBT_STATUS"); 124 List<SysDataDicItem> debtStatusList = sysDataDicItemService.findByDicCode("DEBT_STATUS");
122 Map<String, String> debtStatusMap = debtStatusList.stream() 125 Map<String, String> debtStatusMap = debtStatusList.stream()
123 .collect(Collectors.toMap(SysDataDicItem::getCode, SysDataDicItem::getName, (v1, v2) -> v1)); 126 .collect(Collectors.toMap(SysDataDicItem::getCode, SysDataDicItem::getName, (v1, v2) -> v1));
  127 + // 获取资金协调状态
  128 + Map<String, String> fundCoordinateStatusMap = new HashMap<>();
  129 + List<String> ledgerIds = infoList.stream().map(ReceiptLedgerInfo::getId).collect(Collectors.toList());
  130 + List<Map<String, Object>> fundCoordinateStatusList = fundOrderingUnitDetailService.listByLedgerIds(ledgerIds);
  131 + if (CollectionUtils.isNotEmpty(fundCoordinateStatusList)) {
  132 + for (Map<String, Object> map : fundCoordinateStatusList) {
  133 + String ledgerId = (String) map.get("ledger_id");
  134 + String debtStatus = (String) map.get("debt_status");
  135 + String status = (String) map.get("status");
  136 +
  137 + fundCoordinateStatusMap.put(ledgerId + "_" + debtStatus, status);
  138 + }
  139 + }
124 for (ReceiptLedgerInfo info : infoList) { 140 for (ReceiptLedgerInfo info : infoList) {
125 String customerType = info.getCustomerType(); 141 String customerType = info.getCustomerType();
126 String enterpriseType = enterpriseTypeMap.get(customerType); 142 String enterpriseType = enterpriseTypeMap.get(customerType);
127 String debtStatus = info.getDebtStatus(); 143 String debtStatus = info.getDebtStatus();
128 String debtStatusName = debtStatusMap.get(debtStatus); 144 String debtStatusName = debtStatusMap.get(debtStatus);
  145 + String applyStatus = fundCoordinateStatusMap.get(info.getId() + "_" + debtStatusName);
  146 + if ("FIRST_COORDINATE".equals(debtStatus) || "SECOND_COORDINATE".equals(debtStatus) || "CLEAR_DEBTS".equals(debtStatus)) {
  147 + if ("AUDIT".equals(applyStatus)) {
  148 + info.setApplyStatus("批复中");
  149 + } else if ("PASS".equals(applyStatus) || "REFUSE".equals(applyStatus)) {
  150 + info.setApplyStatus("已申请");
  151 + } else {
  152 + info.setApplyStatus("未申请");
  153 + }
  154 + }
129 155
130 info.setCustomerType(enterpriseType); 156 info.setCustomerType(enterpriseType);
131 info.setDebtStatus(debtStatusName); 157 info.setDebtStatus(debtStatusName);
@@ -6,6 +6,7 @@ import com.lframework.xingyun.sc.vo.ledger.detail.QueryFundOrderingUnitDetailVo; @@ -6,6 +6,7 @@ import com.lframework.xingyun.sc.vo.ledger.detail.QueryFundOrderingUnitDetailVo;
6 import org.apache.ibatis.annotations.Param; 6 import org.apache.ibatis.annotations.Param;
7 7
8 import java.util.List; 8 import java.util.List;
  9 +import java.util.Map;
9 10
10 /** 11 /**
11 * <p> 12 * <p>
@@ -23,4 +24,12 @@ public interface FundOrderingUnitDetailMapper extends BaseMapper<FundOrderingUni @@ -23,4 +24,12 @@ public interface FundOrderingUnitDetailMapper extends BaseMapper<FundOrderingUni
23 List<FundOrderingUnitDetail> query(@Param("vo") QueryFundOrderingUnitDetailVo vo); 24 List<FundOrderingUnitDetail> query(@Param("vo") QueryFundOrderingUnitDetailVo vo);
24 25
25 void batchAdd(@Param("list") List<FundOrderingUnitDetail> list); 26 void batchAdd(@Param("list") List<FundOrderingUnitDetail> list);
  27 +
  28 + /**
  29 + * 根据应收款台账ID获取协调状态
  30 + *
  31 + * @param ledgerIds 应收款台账ID集合
  32 + * @return List<Map<String, Object>>
  33 + */
  34 + List<Map<String, Object>> queryFundsCoordinateStatus(@Param("ledgerIds") List<String> ledgerIds);
26 } 35 }
@@ -7,6 +7,7 @@ import com.lframework.xingyun.sc.vo.ledger.detail.CreateFundOrderingUnitDetailVo @@ -7,6 +7,7 @@ import com.lframework.xingyun.sc.vo.ledger.detail.CreateFundOrderingUnitDetailVo
7 import com.lframework.xingyun.sc.vo.ledger.detail.QueryFundOrderingUnitDetailVo; 7 import com.lframework.xingyun.sc.vo.ledger.detail.QueryFundOrderingUnitDetailVo;
8 import com.lframework.xingyun.sc.vo.ledger.detail.UpdateFundOrderingUnitDetailVo; 8 import com.lframework.xingyun.sc.vo.ledger.detail.UpdateFundOrderingUnitDetailVo;
9 import java.util.List; 9 import java.util.List;
  10 +import java.util.Map;
10 11
11 /** 12 /**
12 * 资金协调手续订货单位明细表 Service 13 * 资金协调手续订货单位明细表 Service
@@ -57,4 +58,12 @@ public interface FundOrderingUnitDetailService extends BaseMpService<FundOrderin @@ -57,4 +58,12 @@ public interface FundOrderingUnitDetailService extends BaseMpService<FundOrderin
57 * 批量新增 58 * 批量新增
58 */ 59 */
59 void batchAdd(List<CreateFundOrderingUnitDetailVo> createFundOrderingUnitDetailVoList); 60 void batchAdd(List<CreateFundOrderingUnitDetailVo> createFundOrderingUnitDetailVoList);
  61 +
  62 + /**
  63 + * 根据应收款台账ID获取协调明细记录
  64 + *
  65 + * @param ledgerIds 应收款台账ID集合
  66 + * @return List<Map<String, Object>>
  67 + */
  68 + List<Map<String, Object>> listByLedgerIds(List<String> ledgerIds);
60 } 69 }
@@ -96,4 +96,15 @@ @@ -96,4 +96,15 @@
96 ) 96 )
97 </foreach> 97 </foreach>
98 </insert> 98 </insert>
  99 +
  100 + <select id="queryFundsCoordinateStatus" resultType="java.util.Map">
  101 + select fud.ledger_id,fud.status as debt_status,fc.status
  102 + from fund_ordering_unit_detail fud
  103 + left join fund_ordering_unit fu on fud.fund_ordering_unit_id = fu.id
  104 + left join fund_coordination fc on fu.fund_id = fc.id
  105 + where fud.ledger_id in
  106 + <foreach collection="ledgerIds" open="(" separator="," close=")" item="item">
  107 + #{item}
  108 + </foreach>
  109 + </select>
99 </mapper> 110 </mapper>