Commit 2adb35b86f602a90357795312a2a310ef6160cc4

Authored by yeqianyong
1 parent 6e21cdf9

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

... ... @@ -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 }
... ...
... ... @@ -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>
... ...