|
|
|
@ -1310,8 +1310,9 @@ public class OemStatementServiceImpl extends BaseServiceImpl<OemStatementMapper, |
|
|
|
statementVO.setWxLimitName(dictMap.get(statementVO.getWxLimit())); |
|
|
|
statementVO.setWxLimitName(dictMap.get(statementVO.getWxLimit())); |
|
|
|
boolean isRework = !StringUtils.isEmpty(statementVO.getReworkCode()) && !StringUtils.isEmpty(statementVO.getReworkNo()); |
|
|
|
boolean isRework = !StringUtils.isEmpty(statementVO.getReworkCode()) && !StringUtils.isEmpty(statementVO.getReworkNo()); |
|
|
|
boolean isFj = statementVO.getYpCode() != null && statementVO.getYpCode().startsWith("FJ"); |
|
|
|
boolean isFj = statementVO.getYpCode() != null && statementVO.getYpCode().startsWith("FJ"); |
|
|
|
boolean isDjDy = !StringUtils.isEmpty(statementVO.getWxLimitName()) && (statementVO.getWxLimitName().contains("镀金") || statementVO.getWxLimitName().contains("镀银")); |
|
|
|
boolean checkCaType = !StringUtils.isEmpty(statementVO.getWxLimitName()) && (statementVO.getWxLimitName().contains("镀金") || statementVO.getWxLimitName().contains("镀银")); |
|
|
|
boolean checkPs = "浸保护剂".equals(statementVO.getPsName()) || "除镀层".equals(statementVO.getPsName()) || "清洗(返工)".equals(statementVO.getPsName()); |
|
|
|
boolean checkPs = "浸保护剂".equals(statementVO.getPsName()) || "除镀层".equals(statementVO.getPsName()) || "清洗(返工)".equals(statementVO.getPsName()); |
|
|
|
|
|
|
|
boolean checkStatementCategory = "镀金".equals(statementVO.getStatementCategory()) || "镀银".equals(statementVO.getStatementCategory()) || "镀金丝".equals(statementVO.getStatementCategory()) || "镀银丝".equals(statementVO.getStatementCategory()); |
|
|
|
// 如果是返工订单,审理单对应责任部门为3400,不结算
|
|
|
|
// 如果是返工订单,审理单对应责任部门为3400,不结算
|
|
|
|
if (isRework && DEPT_CODE_REWORK.equals(statementVO.getResDept())) { |
|
|
|
if (isRework && DEPT_CODE_REWORK.equals(statementVO.getResDept())) { |
|
|
|
continue; |
|
|
|
continue; |
|
|
|
@ -1339,7 +1340,11 @@ public class OemStatementServiceImpl extends BaseServiceImpl<OemStatementMapper, |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
// 如果车间订单为【返工订单】并且工序对应工艺能力类型包含“镀金”、“镀银”,不结算
|
|
|
|
// 如果车间订单为【返工订单】并且工序对应工艺能力类型包含“镀金”、“镀银”,不结算
|
|
|
|
if (isRework && isDjDy) { |
|
|
|
if (isRework && checkCaType) { |
|
|
|
|
|
|
|
continue; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
// 如果车间订单为【返工订单】并且工序对应结算大类为“镀金”、“镀银”、“镀金丝”、“镀银丝”的不结算
|
|
|
|
|
|
|
|
if (isRework && checkStatementCategory) { |
|
|
|
continue; |
|
|
|
continue; |
|
|
|
} |
|
|
|
} |
|
|
|
statementVO.setRosStatus(OemStatementEntity.NO_SETTLEMENT); |
|
|
|
statementVO.setRosStatus(OemStatementEntity.NO_SETTLEMENT); |
|
|
|
@ -1589,6 +1594,48 @@ public class OemStatementServiceImpl extends BaseServiceImpl<OemStatementMapper, |
|
|
|
priceSheet3.setCoating_desc("涂箭头"); |
|
|
|
priceSheet3.setCoating_desc("涂箭头"); |
|
|
|
priceSheet3.setPrtlotno("JHT"); |
|
|
|
priceSheet3.setPrtlotno("JHT"); |
|
|
|
priceSheetAllList.add(priceSheet3); |
|
|
|
priceSheetAllList.add(priceSheet3); |
|
|
|
|
|
|
|
PriceSheetVO priceSheet4 = new PriceSheetVO(); |
|
|
|
|
|
|
|
priceSheet4.setPrice("60"); |
|
|
|
|
|
|
|
priceSheet4.setSplycode("wx000001"); |
|
|
|
|
|
|
|
priceSheet4.setSplyname(oemName); |
|
|
|
|
|
|
|
priceSheet4.setPrtum("件"); |
|
|
|
|
|
|
|
priceSheet4.setWono("320"); |
|
|
|
|
|
|
|
priceSheet4.setSeqid("GXJG-20250228018"); |
|
|
|
|
|
|
|
priceSheet4.setGxinfo("热处理铜合金电镀低应力镍"); |
|
|
|
|
|
|
|
priceSheet4.setStartdat("2026-01-15"); |
|
|
|
|
|
|
|
priceSheet4.setValiddat("2026-12-31"); |
|
|
|
|
|
|
|
priceSheet4.setStairflag("1"); |
|
|
|
|
|
|
|
priceSheet4.setCoating_desc("涂色标"); |
|
|
|
|
|
|
|
priceSheet4.setPrtlotno("JHT"); |
|
|
|
|
|
|
|
priceSheetAllList.add(priceSheet4); |
|
|
|
|
|
|
|
PriceSheetVO priceSheet5 = new PriceSheetVO(); |
|
|
|
|
|
|
|
priceSheet5.setPrice("60"); |
|
|
|
|
|
|
|
priceSheet5.setSplycode("wx000001"); |
|
|
|
|
|
|
|
priceSheet5.setSplyname(oemName); |
|
|
|
|
|
|
|
priceSheet5.setPrtum("件"); |
|
|
|
|
|
|
|
priceSheet5.setWono("320"); |
|
|
|
|
|
|
|
priceSheet5.setSeqid("GXJG-20250228018"); |
|
|
|
|
|
|
|
priceSheet5.setGxinfo("热处理铜合金电镀低应力镍"); |
|
|
|
|
|
|
|
priceSheet5.setStartdat("2026-01-15"); |
|
|
|
|
|
|
|
priceSheet5.setValiddat("2026-12-31"); |
|
|
|
|
|
|
|
priceSheet5.setStairflag("1"); |
|
|
|
|
|
|
|
priceSheet5.setCoating_desc("涂色带"); |
|
|
|
|
|
|
|
priceSheet5.setPrtlotno("JHT"); |
|
|
|
|
|
|
|
priceSheetAllList.add(priceSheet5); |
|
|
|
|
|
|
|
PriceSheetVO priceSheet6 = new PriceSheetVO(); |
|
|
|
|
|
|
|
priceSheet6.setPrice("60"); |
|
|
|
|
|
|
|
priceSheet6.setSplycode("wx000001"); |
|
|
|
|
|
|
|
priceSheet6.setSplyname(oemName); |
|
|
|
|
|
|
|
priceSheet6.setPrtum("件"); |
|
|
|
|
|
|
|
priceSheet6.setWono("320"); |
|
|
|
|
|
|
|
priceSheet6.setSeqid("GXJG-20250228018"); |
|
|
|
|
|
|
|
priceSheet6.setGxinfo("热处理铜合金电镀低应力镍"); |
|
|
|
|
|
|
|
priceSheet6.setStartdat("2026-01-15"); |
|
|
|
|
|
|
|
priceSheet6.setValiddat("2026-12-31"); |
|
|
|
|
|
|
|
priceSheet6.setStairflag("1"); |
|
|
|
|
|
|
|
priceSheet6.setCoating_desc("涂箭头"); |
|
|
|
|
|
|
|
priceSheet6.setPrtlotno("JHT"); |
|
|
|
|
|
|
|
priceSheetAllList.add(priceSheet6); |
|
|
|
return priceSheetAllList; |
|
|
|
return priceSheetAllList; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -2041,7 +2088,7 @@ public class OemStatementServiceImpl extends BaseServiceImpl<OemStatementMapper, |
|
|
|
if (vo.getSettleTime() != null) { |
|
|
|
if (vo.getSettleTime() != null) { |
|
|
|
vo.setSettleDate(SDF.format(vo.getSettleTime())); |
|
|
|
vo.setSettleDate(SDF.format(vo.getSettleTime())); |
|
|
|
} |
|
|
|
} |
|
|
|
if(vo.getRosStatus() != 3){ |
|
|
|
if (vo.getRosStatus() != 3) { |
|
|
|
vo.setMemo(""); |
|
|
|
vo.setMemo(""); |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
}); |
|
|
|
@ -2178,60 +2225,60 @@ public class OemStatementServiceImpl extends BaseServiceImpl<OemStatementMapper, |
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public R settlementConfirm(SettlementConfirmRequestQuery request) { |
|
|
|
public R settlementConfirm(SettlementConfirmRequestQuery request) { |
|
|
|
|
|
|
|
|
|
|
|
if (CollectionUtils.isEmpty(request.getIds())) { |
|
|
|
if (CollectionUtils.isEmpty(request.getIds())) { |
|
|
|
return R.fail("结算单ID不能为空"); |
|
|
|
return R.fail("结算单ID不能为空"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (request.getConfirmResult() == null) { |
|
|
|
|
|
|
|
return R.fail("确认结果不能为空"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 如果结算异常,异常原因必填
|
|
|
|
if (request.getConfirmResult() == null) { |
|
|
|
if (!request.getConfirmResult() && StringUtils.isEmpty(request.getErrorReason())) { |
|
|
|
return R.fail("确认结果不能为空"); |
|
|
|
return R.fail("结算异常时,异常原因必填"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 查询待确认状态的数据,验证数据状态
|
|
|
|
|
|
|
|
LambdaQueryWrapper<OemStatementEntity> queryWrapper = new LambdaQueryWrapper<>(); |
|
|
|
|
|
|
|
queryWrapper.in(OemStatementEntity::getId, request.getIds()); |
|
|
|
|
|
|
|
// 待确认状态
|
|
|
|
|
|
|
|
queryWrapper.eq(OemStatementEntity::getRosStatus, OemStatementEntity.IN_SETTLEMENT); |
|
|
|
|
|
|
|
List<OemStatementEntity> statements = this.list(queryWrapper); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (CollectionUtils.isEmpty(statements)) { |
|
|
|
|
|
|
|
return R.fail("未找到待确认状态的结算单"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (statements.size() != request.getIds().size()) { |
|
|
|
// 如果结算异常,异常原因必填
|
|
|
|
return R.fail("部分结算单不存在或状态不是待确认"); |
|
|
|
if (!request.getConfirmResult() && StringUtils.isEmpty(request.getErrorReason())) { |
|
|
|
} |
|
|
|
return R.fail("结算异常时,异常原因必填"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 查询待确认状态的数据,验证数据状态
|
|
|
|
// 3. 根据确认结果更新状态
|
|
|
|
LambdaQueryWrapper<OemStatementEntity> queryWrapper = new LambdaQueryWrapper<>(); |
|
|
|
List<OemStatementEntity> updateList = new ArrayList<>(); |
|
|
|
queryWrapper.in(OemStatementEntity::getId, request.getIds()); |
|
|
|
|
|
|
|
// 待确认状态
|
|
|
|
for (OemStatementEntity statement : statements) { |
|
|
|
queryWrapper.eq(OemStatementEntity::getRosStatus, OemStatementEntity.IN_SETTLEMENT); |
|
|
|
OemStatementEntity entity = new OemStatementEntity(); |
|
|
|
List<OemStatementEntity> statements = this.list(queryWrapper); |
|
|
|
entity.setId(statement.getId()); |
|
|
|
|
|
|
|
if (request.getConfirmResult()) { |
|
|
|
if (CollectionUtils.isEmpty(statements)) { |
|
|
|
// 结算正确:更新为【待审核】
|
|
|
|
return R.fail("未找到待确认状态的结算单"); |
|
|
|
entity.setRosStatus(OemStatementEntity.AWAITING_APPROVAL_SETTLEMENT); |
|
|
|
} |
|
|
|
entity.setMemo("结算确认通过"); |
|
|
|
|
|
|
|
} else { |
|
|
|
if (statements.size() != request.getIds().size()) { |
|
|
|
// 结算异常:更新为【结算异常】并记录异常原因
|
|
|
|
return R.fail("部分结算单不存在或状态不是待确认"); |
|
|
|
entity.setRosStatus(OemStatementEntity.ERR_SETTLEMENT); |
|
|
|
} |
|
|
|
entity.setMemo(request.getErrorReason()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 3. 根据确认结果更新状态
|
|
|
|
entity.setUpdateTime(new Date()); |
|
|
|
List<OemStatementEntity> updateList = new ArrayList<>(); |
|
|
|
updateList.add(entity); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!CollectionUtils.isEmpty(updateList)) { |
|
|
|
for (OemStatementEntity statement : statements) { |
|
|
|
this.updateBatchById(updateList); |
|
|
|
OemStatementEntity entity = new OemStatementEntity(); |
|
|
|
|
|
|
|
entity.setId(statement.getId()); |
|
|
|
|
|
|
|
if (request.getConfirmResult()) { |
|
|
|
|
|
|
|
// 结算正确:更新为【待审核】
|
|
|
|
|
|
|
|
entity.setRosStatus(OemStatementEntity.AWAITING_APPROVAL_SETTLEMENT); |
|
|
|
|
|
|
|
entity.setMemo("结算确认通过"); |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
// 结算异常:更新为【结算异常】并记录异常原因
|
|
|
|
|
|
|
|
entity.setRosStatus(OemStatementEntity.ERR_SETTLEMENT); |
|
|
|
|
|
|
|
entity.setMemo(request.getErrorReason()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return R.success(); |
|
|
|
entity.setUpdateTime(new Date()); |
|
|
|
|
|
|
|
updateList.add(entity); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!CollectionUtils.isEmpty(updateList)) { |
|
|
|
|
|
|
|
this.updateBatchById(updateList); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return R.success(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|