|
|
@@ -327,21 +327,22 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
{
|
|
|
throw new SecurityException("操作失败,没有绑定明细信息");
|
|
|
}
|
|
|
+ //获取账单明细对象
|
|
|
Acc acc = accMapper.selectById(accId);
|
|
|
if(acc==null)
|
|
|
{
|
|
|
throw new SecurityException("操作账单失败");
|
|
|
}
|
|
|
//结算成功后,更新acc表金额,采购收费 销售付费
|
|
|
- acc.setSettlementAmount(acc.getSettlementAmount()!=null?acc.getSettlementAmount().add(items.getThisAmount()):new BigDecimal("0").add(items.getThisAmount()));
|
|
|
+ /* acc.setSettlementAmount(acc.getSettlementAmount()!=null?acc.getSettlementAmount().add(items.getThisAmount()):new BigDecimal("0").add(items.getThisAmount()));
|
|
|
BigDecimal settlementAmount = acc.getSettlementAmount();
|
|
|
BigDecimal amount = acc.getAmount();
|
|
|
if(settlementAmount.compareTo(amount)>0)
|
|
|
{
|
|
|
throw new SecurityException("结算金额超过账单明细总金额");
|
|
|
- }
|
|
|
- accMapper.updateById(acc);
|
|
|
- //修改原业务表数据
|
|
|
+ }*/
|
|
|
+
|
|
|
+ //修改原业务表和账单明细的数据
|
|
|
if(type==1)
|
|
|
{ Long srcParentId = acc.getSrcParentId();
|
|
|
if(srcParentId==null)
|
|
|
@@ -353,32 +354,80 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
{
|
|
|
throw new SecurityException("修改原单据失败");
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 金币增加操作: (billType=申请,itemType=采购) 或者 (billType=收费,itemType=销售)
|
|
|
+ * 金币减少操作: (billType=申请,itemType=销售) 或者 (billType=收费,itemType=采购)
|
|
|
+ * */
|
|
|
+
|
|
|
//如果是人民币,修改人民结算字段
|
|
|
if(items.getCurrency().equals("CNY"))
|
|
|
{
|
|
|
- if(settlementDTO.getBillType().equals("申请")||settlementDTO.getBillType().equals("付费"))
|
|
|
+ //人民币-增加金额的操作
|
|
|
+ if
|
|
|
+ (
|
|
|
+ (settlementDTO.getBillType().equals("申请")&&settlementDTO.getItemType().equals("采购"))
|
|
|
+ ||
|
|
|
+ (settlementDTO.getBillType().equals("收费")&&settlementDTO.getItemType().equals("销售"))
|
|
|
+ )
|
|
|
{
|
|
|
+ //账单明细增加
|
|
|
+ acc.setSettlementAmount(acc.getSettlementAmount()!=null?acc.getSettlementAmount().add(items.getThisAmount()):new BigDecimal("0").add(items.getThisAmount()));
|
|
|
+ //原业务表增加
|
|
|
client.setSettlmentAmount(client.getSettlmentAmount()!=null?client.getSettlmentAmount().add(items.getThisAmount()):new BigDecimal("0").add(items.getThisAmount()));
|
|
|
}
|
|
|
- else if(settlementDTO.getBillType().equals("收费"))
|
|
|
+
|
|
|
+
|
|
|
+ //人民币-减少金额的操作
|
|
|
+ else if
|
|
|
+ (
|
|
|
+ (settlementDTO.getBillType().equals("申请")&&settlementDTO.getItemType().equals("销售"))
|
|
|
+ ||
|
|
|
+ (settlementDTO.getBillType().equals("收费")&&settlementDTO.getItemType().equals("采购"))
|
|
|
+ )
|
|
|
{
|
|
|
- client.setSettlmentAmount(client.getSettlmentAmount()!=null?items.getThisAmount().subtract(client.getSettlmentAmount()):items.getThisAmount().subtract(new BigDecimal("0")));
|
|
|
+ //账单明细减少
|
|
|
+ acc.setSettlementAmount(acc.getSettlementAmount()!=null?acc.getSettlementAmount().subtract(items.getThisAmount()):new BigDecimal("0").subtract(items.getThisAmount()));
|
|
|
+ //原业务表减少
|
|
|
+ client.setSettlmentAmount(client.getSettlmentAmount()!=null?client.getSettlmentAmount().subtract(items.getThisAmount()):new BigDecimal("0").subtract(items.getThisAmount()));
|
|
|
}
|
|
|
|
|
|
}
|
|
|
//如果是外币
|
|
|
else
|
|
|
{
|
|
|
- if(settlementDTO.getBillType().equals("申请")||settlementDTO.getBillType().equals("收费"))
|
|
|
+ //外币-增加金额的操作
|
|
|
+ if
|
|
|
+ (
|
|
|
+ (settlementDTO.getBillType().equals("申请")&&settlementDTO.getItemType().equals("采购"))
|
|
|
+ ||
|
|
|
+ (settlementDTO.getBillType().equals("收费")&&settlementDTO.getItemType().equals("销售"))
|
|
|
+ )
|
|
|
{
|
|
|
- client.setForeignSettlmentAmount(client.getForeignSettlmentAmount()!=null?client.getForeignSettlmentAmount().add(items.getThisAmount()):new BigDecimal("0").add(items.getThisAmount()));
|
|
|
+ //账单明细增加
|
|
|
+ acc.setSettlementAmount(acc.getSettlementAmount()!=null?acc.getSettlementAmount().add(items.getThisAmount()):new BigDecimal("0").add(items.getThisAmount()));
|
|
|
+ //原业务表增加
|
|
|
+ client.setSettlmentAmount(client.getSettlmentAmount()!=null?client.getSettlmentAmount().add(items.getThisAmount()):new BigDecimal("0").add(items.getThisAmount()));
|
|
|
}
|
|
|
- else if(settlementDTO.getBillType().equals("付费"))
|
|
|
+
|
|
|
+ //外币-减少金额的操作
|
|
|
+ else if
|
|
|
+ (
|
|
|
+ (settlementDTO.getBillType().equals("申请")&&settlementDTO.getItemType().equals("销售"))
|
|
|
+ ||
|
|
|
+ (settlementDTO.getBillType().equals("收费")&&settlementDTO.getItemType().equals("采购"))
|
|
|
+ )
|
|
|
{
|
|
|
- client.setForeignSettlmentAmount(client.getForeignSettlmentAmount()!=null?items.getThisAmount().subtract(client.getForeignSettlmentAmount()):items.getThisAmount().subtract(new BigDecimal("0")));
|
|
|
+ //账单明细减少
|
|
|
+ acc.setSettlementAmount(acc.getSettlementAmount()!=null?acc.getSettlementAmount().subtract(items.getThisAmount()):new BigDecimal("0").subtract(items.getThisAmount()));
|
|
|
+ //原业务表减少
|
|
|
+ client.setSettlmentAmount(client.getSettlmentAmount()!=null?client.getSettlmentAmount().subtract(items.getThisAmount()):new BigDecimal("0").subtract(items.getThisAmount()));
|
|
|
}
|
|
|
//client.setForeignSettlmentAmount(client.getForeignSettlmentAmount()!=null?client.getForeignSettlmentAmount().add(items.getThisAmount()):new BigDecimal("0").add(items.getThisAmount()));
|
|
|
}
|
|
|
+ //明细账单操作
|
|
|
+ accMapper.updateById(acc);
|
|
|
+ //原业务表
|
|
|
orderDescClient.updateOrder(client);
|
|
|
|
|
|
}
|
|
|
@@ -396,7 +445,29 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
{
|
|
|
throw new SecurityException("修改原单据失败");
|
|
|
}
|
|
|
- orderFees.setSettlmentAmount(orderFees.getSettlmentAmount()!=null?orderFees.getSettlmentAmount().add(items.getThisAmount()):new BigDecimal("0").add(items.getThisAmount()));
|
|
|
+ //增加操作
|
|
|
+ if
|
|
|
+ (
|
|
|
+ (settlementDTO.getBillType().equals("申请")&&settlementDTO.getItemType().equals("采购"))
|
|
|
+ ||
|
|
|
+ (settlementDTO.getBillType().equals("收费")&&settlementDTO.getItemType().equals("销售"))
|
|
|
+ )
|
|
|
+ {
|
|
|
+ acc.setSettlementAmount(acc.getSettlementAmount()!=null?acc.getSettlementAmount().add(items.getThisAmount()):new BigDecimal("0").add(items.getThisAmount()));
|
|
|
+ orderFees.setSettlmentAmount(orderFees.getSettlmentAmount()!=null?orderFees.getSettlmentAmount().add(items.getThisAmount()):new BigDecimal("0").add(items.getThisAmount()));
|
|
|
+ }
|
|
|
+ //减少操作
|
|
|
+ else if
|
|
|
+ (
|
|
|
+ (settlementDTO.getBillType().equals("申请")&&settlementDTO.getItemType().equals("销售"))
|
|
|
+ ||
|
|
|
+ (settlementDTO.getBillType().equals("收费")&&settlementDTO.getItemType().equals("采购"))
|
|
|
+ )
|
|
|
+ {
|
|
|
+ acc.setSettlementAmount(acc.getSettlementAmount()!=null?acc.getSettlementAmount().subtract(items.getThisAmount()):new BigDecimal("0").subtract(items.getThisAmount()));
|
|
|
+ orderFees.setSettlmentAmount(orderFees.getSettlmentAmount()!=null?orderFees.getSettlmentAmount().subtract(items.getThisAmount()):new BigDecimal("0").subtract(items.getThisAmount()));
|
|
|
+ }
|
|
|
+ accMapper.updateById(acc);
|
|
|
orderFeesClient.submit(orderFees);
|
|
|
}
|
|
|
else
|
|
|
@@ -463,7 +534,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
|
|
|
@Override
|
|
|
@Transactional
|
|
|
- public void applyList(List<Items> itemsList, String billType)
|
|
|
+ public void applyList(List<Items> itemsList, String billType,String url)
|
|
|
{
|
|
|
itemsList.forEach(e->{
|
|
|
|
|
|
@@ -487,14 +558,14 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
e.setCreateUser(AuthUtil.getUserId());
|
|
|
itemsMapper.insert(e);
|
|
|
|
|
|
- if(e.getCurrency().equals("CNY"))
|
|
|
+ /*if(e.getCurrency().equals("CNY"))
|
|
|
{
|
|
|
settlement.setAmount(e.getAmount());
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
settlement.setForeignAmount(e.getAmount());
|
|
|
- }
|
|
|
+ }*/
|
|
|
});
|
|
|
}
|
|
|
|
|
|
@@ -550,6 +621,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
Acc acc=new Acc();
|
|
|
BeanUtils.copyProperties(e,acc);
|
|
|
acc.setId(null);
|
|
|
+ acc.setItemType(e.getItemType());
|
|
|
acc.setAccSysNo(e.getSrcOrderno());
|
|
|
acc.setSrcParentId(e.getSrcParentId());
|
|
|
acc.setSrcBillNo(e.getBillNo());
|
|
|
@@ -672,6 +744,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
acc.setBillType(settlement.getBillType());
|
|
|
acc.setCreateTime(new Date());
|
|
|
acc.setStatus(0);
|
|
|
+ acc.setItemType(e.getItemType());
|
|
|
acc.setCreateUser(AuthUtil.getUserId());
|
|
|
acc.setCostType(e.getCostType());
|
|
|
acc.setSrcFeesId(e.getSrcFeesId());
|