|
|
|
|
@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|
|
|
|
import jakarta.annotation.Resource; |
|
|
|
|
import org.springblade.core.mp.support.Query; |
|
|
|
|
import org.springblade.core.tool.api.R; |
|
|
|
|
import org.springblade.core.tool.utils.Func; |
|
|
|
|
import org.springblade.desk.oem.mapper.PlatingTypeRulesMapper; |
|
|
|
|
import org.springblade.desk.oem.pojo.entity.OemStatementEntity; |
|
|
|
|
import org.springblade.desk.oem.pojo.entity.PlatingTypeRulesEntity; |
|
|
|
|
@ -68,6 +69,44 @@ public class OemStatementServiceImpl extends BaseServiceImpl<OemStatementMapper, |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public R oemManualSettlement(List<StatementVO> statementVOS, BigDecimal price) { |
|
|
|
|
// 初始化成功和失败计数器
|
|
|
|
|
AtomicInteger totalSuccess = new AtomicInteger(0); |
|
|
|
|
AtomicInteger totalError = new AtomicInteger(0); |
|
|
|
|
//按照镀后入库日期分组后,调用结算方法
|
|
|
|
|
Map<String, List<StatementVO>> groupedMap = statementVOS.stream() |
|
|
|
|
.filter(vo -> vo.getPutStoreTime() != null && !vo.getPutStoreTime().trim().isEmpty()) |
|
|
|
|
.collect(Collectors.groupingBy(StatementVO::getPutStoreTime)); |
|
|
|
|
groupedMap.entrySet().forEach(stringListEntry -> { |
|
|
|
|
R result = oemSettleAccounts(stringListEntry.getValue(), price, LocalDate.parse(stringListEntry.getKey())); |
|
|
|
|
|
|
|
|
|
if (result != null && result.isSuccess()) { |
|
|
|
|
Map<String, Object> data = (Map<String, Object>) result.getData(); |
|
|
|
|
if (data != null) { |
|
|
|
|
Object successObj = data.get("success"); |
|
|
|
|
Object errorObj = data.get("error"); |
|
|
|
|
|
|
|
|
|
if (successObj instanceof Integer) { |
|
|
|
|
totalSuccess.addAndGet((Integer) successObj); |
|
|
|
|
} else if (successObj instanceof Number) { |
|
|
|
|
totalSuccess.addAndGet(((Number) successObj).intValue()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (errorObj instanceof Integer) { |
|
|
|
|
totalError.addAndGet((Integer) errorObj); |
|
|
|
|
} else if (errorObj instanceof Number) { |
|
|
|
|
totalError.addAndGet(((Number) errorObj).intValue()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
return R.data(Map.of( |
|
|
|
|
"success", totalSuccess.get(), |
|
|
|
|
"error", totalError.get() |
|
|
|
|
)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public R oemSettleAccounts(List<StatementVO> statementVOS, BigDecimal price, LocalDate putStoreDate) { |
|
|
|
|
// 定义计数器
|
|
|
|
|
AtomicInteger countSuccess = new AtomicInteger(0); |
|
|
|
|
@ -110,7 +149,7 @@ public class OemStatementServiceImpl extends BaseServiceImpl<OemStatementMapper, |
|
|
|
|
//【结算异常】
|
|
|
|
|
statementVOList.forEach(statementVO -> { |
|
|
|
|
statementVO.setRosStatus(StatementVO.ERR_SETTLEMENT); |
|
|
|
|
statementVO.setMemo(String.format("外协厂商【%s】匹配无报价记录", oemName)); |
|
|
|
|
statementVO.setMemo(String.format("外协厂商【%s】-未找到报价", oemName)); |
|
|
|
|
}); |
|
|
|
|
} else { |
|
|
|
|
//工序分组Map<工序, 报价列表>
|
|
|
|
|
@ -209,13 +248,83 @@ public class OemStatementServiceImpl extends BaseServiceImpl<OemStatementMapper, |
|
|
|
|
|
|
|
|
|
//2.以外协名称查出的全部报价单
|
|
|
|
|
String oemName = listEntry.getKey(); |
|
|
|
|
List<PriceSheetVO> priceSheetAllList = getPriceSheets(oemName); |
|
|
|
|
// List<PriceSheetVO> priceSheetAllList = getPriceSheets(oemName);
|
|
|
|
|
|
|
|
|
|
//假数据测试用
|
|
|
|
|
List<PriceSheetVO> priceSheetAllList = new ArrayList<>(); |
|
|
|
|
PriceSheetVO priceSheet1 = new PriceSheetVO(); |
|
|
|
|
priceSheet1.setPrice("60"); |
|
|
|
|
priceSheet1.setSplyname(oemName); |
|
|
|
|
priceSheet1.setPrtum("件"); |
|
|
|
|
priceSheet1.setWono("WO-N2510424439-R002"); |
|
|
|
|
priceSheet1.setSeqid("GXJG-20250228018"); |
|
|
|
|
priceSheet1.setGxinfo("玻璃封接电化学抛光"); |
|
|
|
|
priceSheet1.setStartdat("2026-01-15"); |
|
|
|
|
priceSheetAllList.add(priceSheet1); |
|
|
|
|
PriceSheetVO priceSheet2 = new PriceSheetVO(); |
|
|
|
|
priceSheet2.setPrice("26"); |
|
|
|
|
priceSheet2.setSplyname(oemName); |
|
|
|
|
priceSheet2.setPrtum("件"); |
|
|
|
|
priceSheet2.setSeqid("GXJG-20250228012"); |
|
|
|
|
priceSheet2.setGxinfo("玻璃封接电镀去氧化皮"); |
|
|
|
|
priceSheet2.setPrtlotno("JI和JHT"); |
|
|
|
|
priceSheet2.setStairflag("单批阶梯价(按单件面积)"); |
|
|
|
|
priceSheet2.setLower("5"); |
|
|
|
|
priceSheet2.setUpper("0"); |
|
|
|
|
priceSheet2.setPrtno("21E6-575-10724-%螺母"); |
|
|
|
|
priceSheet2.setStartdat("2026-01-15"); |
|
|
|
|
priceSheetAllList.add(priceSheet2); |
|
|
|
|
PriceSheetVO priceSheet3 = new PriceSheetVO(); |
|
|
|
|
priceSheet3.setPrice("34"); |
|
|
|
|
priceSheet3.setSplyname(oemName); |
|
|
|
|
priceSheet3.setPrtum("件"); |
|
|
|
|
priceSheet3.setSeqid("GXJG-20250228012"); |
|
|
|
|
priceSheet3.setGxinfo("玻璃封接电镀去氧化皮"); |
|
|
|
|
priceSheet3.setPrtlotno("JI和JHT"); |
|
|
|
|
priceSheet3.setStairflag("单批阶梯价(按单件面积)"); |
|
|
|
|
priceSheet3.setLower("10"); |
|
|
|
|
priceSheet3.setUpper("5.00001"); |
|
|
|
|
priceSheet3.setPrtno("21E6-575-10724-%螺母"); |
|
|
|
|
priceSheet3.setStartdat("2026-01-15"); |
|
|
|
|
priceSheetAllList.add(priceSheet3); |
|
|
|
|
PriceSheetVO priceSheet4 = new PriceSheetVO(); |
|
|
|
|
priceSheet4.setPrice("15"); |
|
|
|
|
priceSheet4.setSplyname(oemName); |
|
|
|
|
priceSheet4.setPrtum("件"); |
|
|
|
|
priceSheet4.setSeqid("GXJG-20250228012"); |
|
|
|
|
priceSheet4.setGxinfo("玻璃封接电镀去氧化皮"); |
|
|
|
|
priceSheet4.setPrtlotno("JHT"); |
|
|
|
|
priceSheet4.setStairflag("非阶梯价"); |
|
|
|
|
priceSheet4.setPrtno("21E6-575-10724-%螺母"); |
|
|
|
|
priceSheet4.setStartdat("2026-01-15"); |
|
|
|
|
priceSheetAllList.add(priceSheet4); |
|
|
|
|
PriceSheetVO priceSheet5 = new PriceSheetVO(); |
|
|
|
|
priceSheet5.setPrice("99"); |
|
|
|
|
priceSheet5.setSplyname(oemName); |
|
|
|
|
priceSheet5.setPrtum("件"); |
|
|
|
|
priceSheet5.setSeqid("GXJG-20250228012"); |
|
|
|
|
priceSheet5.setGxinfo("玻璃封接电镀去氧化皮"); |
|
|
|
|
priceSheet5.setStairflag("非阶梯价"); |
|
|
|
|
priceSheet5.setPrtno("21E6-575-10724-%螺母"); |
|
|
|
|
priceSheet5.setRemark("氰化亚金钾380.01-400元/克(未税)"); |
|
|
|
|
priceSheet5.setStartdat("2026-01-15"); |
|
|
|
|
priceSheetAllList.add(priceSheet5); |
|
|
|
|
PriceSheetVO priceSheet6 = new PriceSheetVO(); |
|
|
|
|
priceSheet6.setPrice("200"); |
|
|
|
|
priceSheet6.setSplyname(oemName); |
|
|
|
|
priceSheet6.setPrtum("件"); |
|
|
|
|
priceSheet6.setSeqid("GXJG-20250228012"); |
|
|
|
|
priceSheet6.setGxinfo("玻璃封接电镀去氧化皮"); |
|
|
|
|
priceSheet6.setStairflag("非阶梯价"); |
|
|
|
|
priceSheet6.setPrtno("21E6-575-10724-%螺母"); |
|
|
|
|
priceSheet6.setRemark("氰化亚金钾400.01-500元/克(未税)"); |
|
|
|
|
priceSheet6.setStartdat("2026-01-16"); |
|
|
|
|
priceSheetAllList.add(priceSheet6); |
|
|
|
|
if (priceSheetAllList.isEmpty()) { |
|
|
|
|
//【结算异常】
|
|
|
|
|
statementVOList.forEach(statementVO -> { |
|
|
|
|
statementVO.setRosStatus(StatementVO.ERR_SETTLEMENT); |
|
|
|
|
statementVO.setMemo(String.format("外协厂商【%s】匹配无报价记录", oemName)); |
|
|
|
|
statementVO.setMemo(String.format("外协厂商【%s】-未找到报价", oemName)); |
|
|
|
|
}); |
|
|
|
|
} else { |
|
|
|
|
//工序分组Map<工序, 报价列表>
|
|
|
|
|
@ -292,76 +401,76 @@ public class OemStatementServiceImpl extends BaseServiceImpl<OemStatementMapper, |
|
|
|
|
BigDecimal price, LocalDate putStoreDate, |
|
|
|
|
AtomicInteger countSuccess, AtomicInteger countError) { |
|
|
|
|
// 1. 查询报价单
|
|
|
|
|
List<PriceSheetVO> priceSheetAllList = getPriceSheets(oemName, putStoreDate); |
|
|
|
|
// List<PriceSheetVO> priceSheetAllList = getPriceSheets(oemName, putStoreDate);
|
|
|
|
|
//假数据测试用
|
|
|
|
|
// List<PriceSheetVO> priceSheetAllList = new ArrayList<>();
|
|
|
|
|
// PriceSheetVO priceSheet1 = new PriceSheetVO();
|
|
|
|
|
// priceSheet1.setPrice("60");
|
|
|
|
|
// priceSheet1.setSplyname(oemName);
|
|
|
|
|
// priceSheet1.setPrtum("件");
|
|
|
|
|
// priceSheet1.setWono("WO-N2510424439-R002");
|
|
|
|
|
// priceSheet1.setSeqid("GXJG-20250228018");
|
|
|
|
|
// priceSheet1.setGxinfo("玻璃封接电化学抛光");
|
|
|
|
|
// priceSheetAllList.add(priceSheet1);
|
|
|
|
|
// PriceSheetVO priceSheet2 = new PriceSheetVO();
|
|
|
|
|
// priceSheet2.setPrice("26");
|
|
|
|
|
// priceSheet2.setSplyname(oemName);
|
|
|
|
|
// priceSheet2.setPrtum("件");
|
|
|
|
|
// priceSheet2.setSeqid("GXJG-20250228012");
|
|
|
|
|
// priceSheet2.setGxinfo("玻璃封接电镀去氧化皮");
|
|
|
|
|
// priceSheet2.setPrtlotno("JI和JHT");
|
|
|
|
|
// priceSheet2.setStairflag("单批阶梯价(按单件面积)");
|
|
|
|
|
// priceSheet2.setLower("5");
|
|
|
|
|
// priceSheet2.setUpper("0");
|
|
|
|
|
// priceSheet2.setPrtno("21E6-575-10724-%螺母");
|
|
|
|
|
// priceSheetAllList.add(priceSheet2);
|
|
|
|
|
// PriceSheetVO priceSheet3 = new PriceSheetVO();
|
|
|
|
|
// priceSheet3.setPrice("34");
|
|
|
|
|
// priceSheet3.setSplyname(oemName);
|
|
|
|
|
// priceSheet3.setPrtum("件");
|
|
|
|
|
// priceSheet3.setSeqid("GXJG-20250228012");
|
|
|
|
|
// priceSheet3.setGxinfo("玻璃封接电镀去氧化皮");
|
|
|
|
|
// priceSheet3.setPrtlotno("JI和JHT");
|
|
|
|
|
// priceSheet3.setStairflag("单批阶梯价(按单件面积)");
|
|
|
|
|
// priceSheet3.setLower("10");
|
|
|
|
|
// priceSheet3.setUpper("5.00001");
|
|
|
|
|
// priceSheet3.setPrtno("21E6-575-10724-%螺母");
|
|
|
|
|
// priceSheetAllList.add(priceSheet3);
|
|
|
|
|
// PriceSheetVO priceSheet4 = new PriceSheetVO();
|
|
|
|
|
// priceSheet4.setPrice("15");
|
|
|
|
|
// priceSheet4.setSplyname(oemName);
|
|
|
|
|
// priceSheet4.setPrtum("件");
|
|
|
|
|
// priceSheet4.setSeqid("GXJG-20250228012");
|
|
|
|
|
// priceSheet4.setGxinfo("玻璃封接电镀去氧化皮");
|
|
|
|
|
// priceSheet4.setPrtlotno("JHT");
|
|
|
|
|
// priceSheet4.setStairflag("非阶梯价");
|
|
|
|
|
// priceSheet4.setPrtno("21E6-575-10724-%螺母");
|
|
|
|
|
// priceSheetAllList.add(priceSheet4);
|
|
|
|
|
// PriceSheetVO priceSheet5 = new PriceSheetVO();
|
|
|
|
|
// priceSheet5.setPrice("99");
|
|
|
|
|
// priceSheet5.setSplyname(oemName);
|
|
|
|
|
// priceSheet5.setPrtum("件");
|
|
|
|
|
// priceSheet5.setSeqid("GXJG-20250228012");
|
|
|
|
|
// priceSheet5.setGxinfo("玻璃封接电镀去氧化皮");
|
|
|
|
|
// priceSheet5.setStairflag("非阶梯价");
|
|
|
|
|
// priceSheet5.setPrtno("21E6-575-10724-%螺母");
|
|
|
|
|
// priceSheet5.setRemark("氰化亚金钾380.01-400元/克(未税)");
|
|
|
|
|
// priceSheetAllList.add(priceSheet5);
|
|
|
|
|
// PriceSheetVO priceSheet6 = new PriceSheetVO();
|
|
|
|
|
// priceSheet6.setPrice("200");
|
|
|
|
|
// priceSheet6.setSplyname(oemName);
|
|
|
|
|
// priceSheet6.setPrtum("件");
|
|
|
|
|
// priceSheet6.setSeqid("GXJG-20250228012");
|
|
|
|
|
// priceSheet6.setGxinfo("玻璃封接电镀去氧化皮");
|
|
|
|
|
// priceSheet6.setStairflag("非阶梯价");
|
|
|
|
|
// priceSheet6.setPrtno("21E6-575-10724-%螺母");
|
|
|
|
|
// priceSheet6.setRemark("氰化亚金钾400.01-500元/克(未税)");
|
|
|
|
|
// priceSheetAllList.add(priceSheet6);
|
|
|
|
|
List<PriceSheetVO> priceSheetAllList = new ArrayList<>(); |
|
|
|
|
PriceSheetVO priceSheet1 = new PriceSheetVO(); |
|
|
|
|
priceSheet1.setPrice("60"); |
|
|
|
|
priceSheet1.setSplyname(oemName); |
|
|
|
|
priceSheet1.setPrtum("件"); |
|
|
|
|
priceSheet1.setWono("WO-N2510424439-R002"); |
|
|
|
|
priceSheet1.setSeqid("GXJG-20250228018"); |
|
|
|
|
priceSheet1.setGxinfo("玻璃封接电化学抛光"); |
|
|
|
|
priceSheetAllList.add(priceSheet1); |
|
|
|
|
PriceSheetVO priceSheet2 = new PriceSheetVO(); |
|
|
|
|
priceSheet2.setPrice("26"); |
|
|
|
|
priceSheet2.setSplyname(oemName); |
|
|
|
|
priceSheet2.setPrtum("件"); |
|
|
|
|
priceSheet2.setSeqid("GXJG-20250228012"); |
|
|
|
|
priceSheet2.setGxinfo("玻璃封接电镀去氧化皮"); |
|
|
|
|
priceSheet2.setPrtlotno("JI和JHT"); |
|
|
|
|
priceSheet2.setStairflag("单批阶梯价(按单件面积)"); |
|
|
|
|
priceSheet2.setLower("5"); |
|
|
|
|
priceSheet2.setUpper("0"); |
|
|
|
|
priceSheet2.setPrtno("21E6-575-10724-%螺母"); |
|
|
|
|
priceSheetAllList.add(priceSheet2); |
|
|
|
|
PriceSheetVO priceSheet3 = new PriceSheetVO(); |
|
|
|
|
priceSheet3.setPrice("34"); |
|
|
|
|
priceSheet3.setSplyname(oemName); |
|
|
|
|
priceSheet3.setPrtum("件"); |
|
|
|
|
priceSheet3.setSeqid("GXJG-20250228012"); |
|
|
|
|
priceSheet3.setGxinfo("玻璃封接电镀去氧化皮"); |
|
|
|
|
priceSheet3.setPrtlotno("JI和JHT"); |
|
|
|
|
priceSheet3.setStairflag("单批阶梯价(按单件面积)"); |
|
|
|
|
priceSheet3.setLower("10"); |
|
|
|
|
priceSheet3.setUpper("5.00001"); |
|
|
|
|
priceSheet3.setPrtno("21E6-575-10724-%螺母"); |
|
|
|
|
priceSheetAllList.add(priceSheet3); |
|
|
|
|
PriceSheetVO priceSheet4 = new PriceSheetVO(); |
|
|
|
|
priceSheet4.setPrice("15"); |
|
|
|
|
priceSheet4.setSplyname(oemName); |
|
|
|
|
priceSheet4.setPrtum("件"); |
|
|
|
|
priceSheet4.setSeqid("GXJG-20250228012"); |
|
|
|
|
priceSheet4.setGxinfo("玻璃封接电镀去氧化皮"); |
|
|
|
|
priceSheet4.setPrtlotno("JHT"); |
|
|
|
|
priceSheet4.setStairflag("非阶梯价"); |
|
|
|
|
priceSheet4.setPrtno("21E6-575-10724-%螺母"); |
|
|
|
|
priceSheetAllList.add(priceSheet4); |
|
|
|
|
PriceSheetVO priceSheet5 = new PriceSheetVO(); |
|
|
|
|
priceSheet5.setPrice("99"); |
|
|
|
|
priceSheet5.setSplyname(oemName); |
|
|
|
|
priceSheet5.setPrtum("件"); |
|
|
|
|
priceSheet5.setSeqid("GXJG-20250228012"); |
|
|
|
|
priceSheet5.setGxinfo("玻璃封接电镀去氧化皮"); |
|
|
|
|
priceSheet5.setStairflag("非阶梯价"); |
|
|
|
|
priceSheet5.setPrtno("21E6-575-10724-%螺母"); |
|
|
|
|
priceSheet5.setRemark("氰化亚金钾380.01-400元/克(未税)"); |
|
|
|
|
priceSheetAllList.add(priceSheet5); |
|
|
|
|
PriceSheetVO priceSheet6 = new PriceSheetVO(); |
|
|
|
|
priceSheet6.setPrice("200"); |
|
|
|
|
priceSheet6.setSplyname(oemName); |
|
|
|
|
priceSheet6.setPrtum("件"); |
|
|
|
|
priceSheet6.setSeqid("GXJG-20250228012"); |
|
|
|
|
priceSheet6.setGxinfo("玻璃封接电镀去氧化皮"); |
|
|
|
|
priceSheet6.setStairflag("非阶梯价"); |
|
|
|
|
priceSheet6.setPrtno("21E6-575-10724-%螺母"); |
|
|
|
|
priceSheet6.setRemark("氰化亚金钾400.01-500元/克(未税)"); |
|
|
|
|
priceSheetAllList.add(priceSheet6); |
|
|
|
|
if (priceSheetAllList.isEmpty()) { |
|
|
|
|
// 【结算异常】
|
|
|
|
|
statementVOList.forEach(statementVO -> { |
|
|
|
|
statementVO.setRosStatus(StatementVO.ERR_SETTLEMENT); |
|
|
|
|
statementVO.setMemo(String.format("外协厂商【%s】匹配无报价记录", oemName)); |
|
|
|
|
statementVO.setMemo(String.format("外协厂商【%s】-未找到报价", oemName)); |
|
|
|
|
}); |
|
|
|
|
} else { |
|
|
|
|
// 2. 工序分组Map<工序, 报价列表>
|
|
|
|
|
@ -435,7 +544,7 @@ public class OemStatementServiceImpl extends BaseServiceImpl<OemStatementMapper, |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public R approval(OemSettleAccountsApproval oemSettleAccountsApproval) { |
|
|
|
|
List<Long> ids = oemSettleAccountsApproval.getIds(); |
|
|
|
|
List<Long> ids = Func.toLongList(oemSettleAccountsApproval.getIds()); |
|
|
|
|
if (CollectionUtils.isEmpty(ids)) { |
|
|
|
|
return R.fail("未选取结算单"); |
|
|
|
|
} |
|
|
|
|
@ -568,7 +677,7 @@ public class OemStatementServiceImpl extends BaseServiceImpl<OemStatementMapper, |
|
|
|
|
if (!priceSheetMap.containsKey(psName)) { |
|
|
|
|
//【结算异常】
|
|
|
|
|
statementVO.setRosStatus(StatementVO.ERR_SETTLEMENT); |
|
|
|
|
statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】匹配无报价记录", statementVO.getOcName(), psName)); |
|
|
|
|
statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】-未找到报价", statementVO.getOcName(), psName)); |
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
//获得外协厂商该工序下报价单列表
|
|
|
|
|
@ -599,7 +708,7 @@ public class OemStatementServiceImpl extends BaseServiceImpl<OemStatementMapper, |
|
|
|
|
//多条【结算异常】
|
|
|
|
|
if (woNoPriceSheetList.size() > 1 && flag) { |
|
|
|
|
statementVO.setRosStatus(StatementVO.ERR_SETTLEMENT); |
|
|
|
|
statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,工作订单号【%s】匹配多条报价记录", statementVO.getOcName(), statementVO.getPartName(), statementVO.getWoCode())); |
|
|
|
|
statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,工作订单号【%s】-报价不唯一", statementVO.getOcName(), statementVO.getPartName(), statementVO.getWoCode())); |
|
|
|
|
//结算异常:多条报价记录结算结果
|
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
@ -621,7 +730,7 @@ public class OemStatementServiceImpl extends BaseServiceImpl<OemStatementMapper, |
|
|
|
|
priceSheetList = woNoPriceSheetMap.get("EMPTY_WONO"); |
|
|
|
|
if (priceSheetList.size() < 1) { |
|
|
|
|
statementVO.setRosStatus(StatementVO.ERR_SETTLEMENT); |
|
|
|
|
statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】匹配无报价记录", statementVO.getOcName(), statementVO.getPartName())); |
|
|
|
|
statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】-未找到报价", statementVO.getOcName(), statementVO.getPartName())); |
|
|
|
|
//结算异常:无报价记录结算结果
|
|
|
|
|
return true; |
|
|
|
|
} else { |
|
|
|
|
@ -649,7 +758,7 @@ public class OemStatementServiceImpl extends BaseServiceImpl<OemStatementMapper, |
|
|
|
|
if (priceSheetList.size() < 1) { |
|
|
|
|
//结算异常:无报价记录结算结果
|
|
|
|
|
statementVO.setRosStatus(StatementVO.ERR_SETTLEMENT); |
|
|
|
|
statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,物料名【%s】,质量等级【%s】匹配无报价记录", statementVO.getOcName(), statementVO.getPartName(), statementVO.getPartName(), statementVO.getProdIdent())); |
|
|
|
|
statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,物料名【%s】,质量等级【%s】-未找到报价", statementVO.getOcName(), statementVO.getPartName(), statementVO.getPartName(), statementVO.getProdIdent())); |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
//保存结果,结束当前规则匹配,进入下一规则匹配
|
|
|
|
|
@ -682,7 +791,7 @@ public class OemStatementServiceImpl extends BaseServiceImpl<OemStatementMapper, |
|
|
|
|
if (remarksByPrice.size() < 1) { |
|
|
|
|
//结算异常:无报价记录结算结果
|
|
|
|
|
statementVO.setRosStatus(StatementVO.ERR_SETTLEMENT); |
|
|
|
|
statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,金价银价【%s】匹配无报价记录", statementVO.getOcName(), statementVO.getPartName(), price)); |
|
|
|
|
statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,金价银价【%s】-未找到报价", statementVO.getOcName(), statementVO.getPartName(), price)); |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
//保存结果,结束当前规则匹配,进入下一规则匹配
|
|
|
|
|
@ -726,7 +835,7 @@ public class OemStatementServiceImpl extends BaseServiceImpl<OemStatementMapper, |
|
|
|
|
if (prtnoPriceSheetMap.isEmpty()) { |
|
|
|
|
//结算异常:无报价记录结算结果
|
|
|
|
|
statementVO.setRosStatus(StatementVO.ERR_SETTLEMENT); |
|
|
|
|
statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】涂色标、涂色带、涂箭头匹配无报价记录", statementVO.getOcName(), statementVO.getPartName())); |
|
|
|
|
statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】涂色标、涂色带、涂箭头-未找到报价", statementVO.getOcName(), statementVO.getPartName())); |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
//总价
|
|
|
|
|
@ -744,7 +853,7 @@ public class OemStatementServiceImpl extends BaseServiceImpl<OemStatementMapper, |
|
|
|
|
if (tjtPriceSheetList.size() > 1 && flag) { |
|
|
|
|
//结算异常:多条报价记录结算结果
|
|
|
|
|
statementVO.setRosStatus(StatementVO.ERR_SETTLEMENT); |
|
|
|
|
statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,涂箭头数量【%s】匹配多条报价记录", statementVO.getOcName(), statementVO.getPartName(), tjtNum)); |
|
|
|
|
statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,涂箭头数量【%s】-报价不唯一", statementVO.getOcName(), statementVO.getPartName(), tjtNum)); |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
//唯一使用此报价单**结算**
|
|
|
|
|
@ -758,7 +867,7 @@ public class OemStatementServiceImpl extends BaseServiceImpl<OemStatementMapper, |
|
|
|
|
if (tsdPriceSheetList.size() > 1 && flag) { |
|
|
|
|
//结算异常:多条报价记录结算结果
|
|
|
|
|
statementVO.setRosStatus(StatementVO.ERR_SETTLEMENT); |
|
|
|
|
statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,涂色带数量【%s】匹配多条报价记录", statementVO.getOcName(), statementVO.getPartName(), tsdNum)); |
|
|
|
|
statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,涂色带数量【%s】-报价不唯一", statementVO.getOcName(), statementVO.getPartName(), tsdNum)); |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
//唯一使用此报价单**结算**
|
|
|
|
|
@ -772,7 +881,7 @@ public class OemStatementServiceImpl extends BaseServiceImpl<OemStatementMapper, |
|
|
|
|
if (tsbPriceSheetList.size() > 1 && flag) { |
|
|
|
|
//结算异常:多条报价记录结算结果
|
|
|
|
|
statementVO.setRosStatus(StatementVO.ERR_SETTLEMENT); |
|
|
|
|
statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,涂色标数量【%s】匹配多条报价记录", statementVO.getOcName(), statementVO.getPartName(), tsbNum)); |
|
|
|
|
statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,涂色标数量【%s】-报价不唯一", statementVO.getOcName(), statementVO.getPartName(), tsbNum)); |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
//唯一使用此报价单**结算**
|
|
|
|
|
@ -792,7 +901,7 @@ public class OemStatementServiceImpl extends BaseServiceImpl<OemStatementMapper, |
|
|
|
|
} else { |
|
|
|
|
//结算异常:无报价记录结算结果
|
|
|
|
|
statementVO.setRosStatus(StatementVO.ERR_SETTLEMENT); |
|
|
|
|
statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】涂色标、涂色带、涂箭头匹配无报价记录", statementVO.getOcName(), statementVO.getPartName())); |
|
|
|
|
statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】涂色标、涂色带、涂箭头-未找到报价", statementVO.getOcName(), statementVO.getPartName())); |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
@ -829,12 +938,12 @@ public class OemStatementServiceImpl extends BaseServiceImpl<OemStatementMapper, |
|
|
|
|
} else if (trueCount > 1) { |
|
|
|
|
//结算异常:多条报价记录结算结果
|
|
|
|
|
statementVO.setRosStatus(StatementVO.ERR_SETTLEMENT); |
|
|
|
|
statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,物料号匹配多条报价记录", statementVO.getOcName(), statementVO.getPartName())); |
|
|
|
|
statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,物料号-报价不唯一", statementVO.getOcName(), statementVO.getPartName())); |
|
|
|
|
return true; |
|
|
|
|
} else { |
|
|
|
|
//结算异常:无报价记录结算结果
|
|
|
|
|
statementVO.setRosStatus(StatementVO.ERR_SETTLEMENT); |
|
|
|
|
statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,物料号匹配无报价记录", statementVO.getOcName(), statementVO.getPartName())); |
|
|
|
|
statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,物料号-未找到报价", statementVO.getOcName(), statementVO.getPartName())); |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
@ -951,7 +1060,7 @@ public class OemStatementServiceImpl extends BaseServiceImpl<OemStatementMapper, |
|
|
|
|
//如果无报价,结算异常:无报价记录结算结果
|
|
|
|
|
if (null == priceSheetList || priceSheetList.isEmpty()) { |
|
|
|
|
statementVO.setRosStatus(StatementVO.ERR_SETTLEMENT); |
|
|
|
|
statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,阶梯价匹配无报价记录", statementVO.getOcName(), statementVO.getPartName())); |
|
|
|
|
statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,阶梯价-未找到报价", statementVO.getOcName(), statementVO.getPartName())); |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
//如果只剩唯一报价,则直接使用
|
|
|
|
|
@ -978,11 +1087,11 @@ public class OemStatementServiceImpl extends BaseServiceImpl<OemStatementMapper, |
|
|
|
|
}).collect(Collectors.groupingBy(PriceSheetVO::getStairflag)); |
|
|
|
|
if (StairPriceSheetMap.keySet().size() > 1) { |
|
|
|
|
statementVO.setRosStatus(StatementVO.ERR_SETTLEMENT); |
|
|
|
|
statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,阶梯价类型【%s】匹配多条报价记录", statementVO.getOcName(), statementVO.getPartName(), String.join(", ", StairPriceSheetMap.keySet()))); |
|
|
|
|
statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,阶梯价类型【%s】-报价不唯一", statementVO.getOcName(), statementVO.getPartName(), String.join(", ", StairPriceSheetMap.keySet()))); |
|
|
|
|
return true; |
|
|
|
|
} else if (StairPriceSheetMap.keySet().size() < 1) { |
|
|
|
|
statementVO.setRosStatus(StatementVO.ERR_SETTLEMENT); |
|
|
|
|
statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,阶梯价匹配无报价记录", statementVO.getOcName(), statementVO.getPartName())); |
|
|
|
|
statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,阶梯价-未找到报价", statementVO.getOcName(), statementVO.getPartName())); |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
if (StairPriceSheetMap.keySet().contains("非阶梯价")) { |
|
|
|
|
@ -990,11 +1099,11 @@ public class OemStatementServiceImpl extends BaseServiceImpl<OemStatementMapper, |
|
|
|
|
List<PriceSheetVO> priceSheetVOS = StairPriceSheetMap.get("非阶梯价"); |
|
|
|
|
if (null == priceSheetVOS || priceSheetVOS.isEmpty()) { |
|
|
|
|
statementVO.setRosStatus(StatementVO.ERR_SETTLEMENT); |
|
|
|
|
statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,阶梯价【%s】匹配无报价记录", statementVO.getOcName(), statementVO.getPartName(), "非阶梯价")); |
|
|
|
|
statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,阶梯价【%s】-未找到报价", statementVO.getOcName(), statementVO.getPartName(), "非阶梯价")); |
|
|
|
|
return true; |
|
|
|
|
} else if (null != priceSheetVOS && priceSheetVOS.size() > 1 && flag) { |
|
|
|
|
statementVO.setRosStatus(StatementVO.ERR_SETTLEMENT); |
|
|
|
|
statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,阶梯价【%s】匹配多条报价记录", statementVO.getOcName(), statementVO.getPartName(), "非阶梯价")); |
|
|
|
|
statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,阶梯价【%s】-报价不唯一", statementVO.getOcName(), statementVO.getPartName(), "非阶梯价")); |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
//唯一使用此报价单**结算**
|
|
|
|
|
@ -1028,7 +1137,7 @@ public class OemStatementServiceImpl extends BaseServiceImpl<OemStatementMapper, |
|
|
|
|
}).collect(Collectors.toList()); |
|
|
|
|
if (null != priceSheetVOList && priceSheetVOList.size() > 1 && flag) { |
|
|
|
|
statementVO.setRosStatus(StatementVO.ERR_SETTLEMENT); |
|
|
|
|
statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,阶梯价【%s】匹配多条报价记录", statementVO.getOcName(), statementVO.getPartName(), "单批阶梯价(按单件面积)")); |
|
|
|
|
statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,阶梯价【%s】-报价不唯一", statementVO.getOcName(), statementVO.getPartName(), "单批阶梯价(按单件面积)")); |
|
|
|
|
return true; |
|
|
|
|
} else if ((null != priceSheetVOList && priceSheetVOList.size() == 1) || (!flag && null != priceSheetVOList && priceSheetVOList.size() > 1)) { |
|
|
|
|
//唯一使用此报价单**结算**
|
|
|
|
|
@ -1045,7 +1154,7 @@ public class OemStatementServiceImpl extends BaseServiceImpl<OemStatementMapper, |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
statementVO.setRosStatus(StatementVO.ERR_SETTLEMENT); |
|
|
|
|
statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,阶梯价【%s】匹配无报价记录", statementVO.getOcName(), statementVO.getPartName(), "单批阶梯价(按单件面积)")); |
|
|
|
|
statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,阶梯价【%s】-未找到报价", statementVO.getOcName(), statementVO.getPartName(), "单批阶梯价(按单件面积)")); |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
return true; |
|
|
|
|
@ -1068,7 +1177,7 @@ public class OemStatementServiceImpl extends BaseServiceImpl<OemStatementMapper, |
|
|
|
|
}).collect(Collectors.toList()); |
|
|
|
|
if (null != priceSheetVOList && priceSheetVOList.size() > 1 && flag) { |
|
|
|
|
statementVO.setRosStatus(StatementVO.ERR_SETTLEMENT); |
|
|
|
|
statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,阶梯价【%s】匹配多条报价记录", statementVO.getOcName(), statementVO.getPartName(), "单批阶梯价(按单批面积)")); |
|
|
|
|
statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,阶梯价【%s】-报价不唯一", statementVO.getOcName(), statementVO.getPartName(), "单批阶梯价(按单批面积)")); |
|
|
|
|
return true; |
|
|
|
|
} else if (null != priceSheetVOList && priceSheetVOList.size() == 1 || (!flag && null != priceSheetVOList && priceSheetVOList.size() > 1)) { |
|
|
|
|
//唯一使用此报价单**结算**
|
|
|
|
|
@ -1085,14 +1194,14 @@ public class OemStatementServiceImpl extends BaseServiceImpl<OemStatementMapper, |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
statementVO.setRosStatus(StatementVO.ERR_SETTLEMENT); |
|
|
|
|
statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,阶梯价【%s】匹配无报价记录", statementVO.getOcName(), statementVO.getPartName(), "单批阶梯价(按单批面积)")); |
|
|
|
|
statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,阶梯价【%s】-未找到报价", statementVO.getOcName(), statementVO.getPartName(), "单批阶梯价(按单批面积)")); |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
return true; |
|
|
|
|
} else { |
|
|
|
|
//todo:qyl 5.其他阶梯价类型暂不处理,找客户确认
|
|
|
|
|
statementVO.setRosStatus(StatementVO.ERR_SETTLEMENT); |
|
|
|
|
statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,阶梯价匹配无报价记录", statementVO.getOcName(), statementVO.getPartName())); |
|
|
|
|
statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,阶梯价-未找到报价", statementVO.getOcName(), statementVO.getPartName())); |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|