Showing
5 changed files
with
66 additions
and
0 deletions
| ... | ... | @@ -28,7 +28,9 @@ import org.springframework.transaction.annotation.Transactional; |
| 28 | 28 | import org.springframework.stereotype.Service; |
| 29 | 29 | import java.time.LocalDateTime; |
| 30 | 30 | import java.util.ArrayList; |
| 31 | +import java.util.Collections; | |
| 31 | 32 | import java.util.List; |
| 33 | +import java.util.Map; | |
| 32 | 34 | |
| 33 | 35 | @Service |
| 34 | 36 | public class FundOrderingUnitDetailServiceImpl extends BaseMpServiceImpl<FundOrderingUnitDetailMapper, FundOrderingUnitDetail> implements FundOrderingUnitDetailService { |
| ... | ... | @@ -157,6 +159,15 @@ public class FundOrderingUnitDetailServiceImpl extends BaseMpServiceImpl<FundOrd |
| 157 | 159 | } |
| 158 | 160 | |
| 159 | 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 | 171 | public void cleanCacheByKey(Serializable key) { |
| 161 | 172 | |
| 162 | 173 | } | ... | ... |
| ... | ... | @@ -28,6 +28,7 @@ import com.lframework.starter.web.core.components.resp.PageResult; |
| 28 | 28 | import com.lframework.starter.common.utils.Assert; |
| 29 | 29 | import com.lframework.xingyun.sc.service.contract.ContractDistributorStandardService; |
| 30 | 30 | import com.lframework.xingyun.sc.service.customer.CustomerCreditService; |
| 31 | +import com.lframework.xingyun.sc.service.ledger.FundOrderingUnitDetailService; | |
| 31 | 32 | import com.lframework.xingyun.sc.service.order.PurchaseOrderInfoService; |
| 32 | 33 | import com.lframework.xingyun.sc.service.order.PurchaseOrderLineService; |
| 33 | 34 | import com.lframework.xingyun.sc.service.shipments.ShipmentsOrderInfoService; |
| ... | ... | @@ -84,6 +85,8 @@ public class ReceiptLedgerInfoServiceImpl extends BaseMpServiceImpl<ReceiptLedge |
| 84 | 85 | private ContractDistributorStandardService contractDistributorStandardService; |
| 85 | 86 | @Resource |
| 86 | 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 | 124 | List<SysDataDicItem> debtStatusList = sysDataDicItemService.findByDicCode("DEBT_STATUS"); |
| 122 | 125 | Map<String, String> debtStatusMap = debtStatusList.stream() |
| 123 | 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 | 140 | for (ReceiptLedgerInfo info : infoList) { |
| 125 | 141 | String customerType = info.getCustomerType(); |
| 126 | 142 | String enterpriseType = enterpriseTypeMap.get(customerType); |
| 127 | 143 | String debtStatus = info.getDebtStatus(); |
| 128 | 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 | 156 | info.setCustomerType(enterpriseType); |
| 131 | 157 | info.setDebtStatus(debtStatusName); | ... | ... |
| ... | ... | @@ -6,6 +6,7 @@ import com.lframework.xingyun.sc.vo.ledger.detail.QueryFundOrderingUnitDetailVo; |
| 6 | 6 | import org.apache.ibatis.annotations.Param; |
| 7 | 7 | |
| 8 | 8 | import java.util.List; |
| 9 | +import java.util.Map; | |
| 9 | 10 | |
| 10 | 11 | /** |
| 11 | 12 | * <p> |
| ... | ... | @@ -23,4 +24,12 @@ public interface FundOrderingUnitDetailMapper extends BaseMapper<FundOrderingUni |
| 23 | 24 | List<FundOrderingUnitDetail> query(@Param("vo") QueryFundOrderingUnitDetailVo vo); |
| 24 | 25 | |
| 25 | 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 | } | ... | ... |
xingyun-sc/src/main/java/com/lframework/xingyun/sc/service/ledger/FundOrderingUnitDetailService.java
| ... | ... | @@ -7,6 +7,7 @@ import com.lframework.xingyun.sc.vo.ledger.detail.CreateFundOrderingUnitDetailVo |
| 7 | 7 | import com.lframework.xingyun.sc.vo.ledger.detail.QueryFundOrderingUnitDetailVo; |
| 8 | 8 | import com.lframework.xingyun.sc.vo.ledger.detail.UpdateFundOrderingUnitDetailVo; |
| 9 | 9 | import java.util.List; |
| 10 | +import java.util.Map; | |
| 10 | 11 | |
| 11 | 12 | /** |
| 12 | 13 | * 资金协调手续订货单位明细表 Service |
| ... | ... | @@ -57,4 +58,12 @@ public interface FundOrderingUnitDetailService extends BaseMpService<FundOrderin |
| 57 | 58 | * 批量新增 |
| 58 | 59 | */ |
| 59 | 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 | 96 | ) |
| 97 | 97 | </foreach> |
| 98 | 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 | 110 | </mapper> | ... | ... |