|
|
@@ -161,7 +161,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
if ("待结算".equals(settlement.getFinanceStatus())) {
|
|
|
throw new SecurityException("此结算单未结算 或者 已经撤销,禁止重复操作");
|
|
|
}
|
|
|
- if ("结算完成".equals(settlement.getFinanceStatus()) && "681169".equals(AuthUtil.getTenantId())){
|
|
|
+ if ("结算完成".equals(settlement.getFinanceStatus()) && "681169".equals(AuthUtil.getTenantId())) {
|
|
|
throw new SecurityException("此结算单已生成凭证,禁止撤销");
|
|
|
}
|
|
|
|
|
|
@@ -221,7 +221,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
Order order = new Order();
|
|
|
order.setOrderNo(settlement.getSrcOrderno());
|
|
|
Order order1 = orderDescClient.getByOrder(order);
|
|
|
- if (ObjectUtils.isNotNull(order1)){
|
|
|
+ if (ObjectUtils.isNotNull(order1)) {
|
|
|
orderFeesClient.updateOrder(order1.getId());
|
|
|
}
|
|
|
return model;
|
|
|
@@ -256,7 +256,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
itemsLambdaQueryWrapper.eq(Items::getPid, settlement.getId()).eq(Items::getIsDeleted, 0);
|
|
|
itemsLambdaQueryWrapper.last("limit 1");
|
|
|
List<Items> list = itemsMapper.selectList(itemsLambdaQueryWrapper);
|
|
|
- if (CollectionUtils.isNotEmpty(list)){
|
|
|
+ if (CollectionUtils.isNotEmpty(list)) {
|
|
|
//获取来源订单号
|
|
|
List<String> stringList = list.stream().filter(e -> StringUtils.isNotBlank(e.getSrcOrderno())).map(Items::getSrcOrderno).collect(Collectors.toList());
|
|
|
for (String s : stringList) {
|
|
|
@@ -269,7 +269,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
} else {
|
|
|
String accountName = settlement.getBelongCompany();
|
|
|
if (!"青岛通用沃德轮胎有限公司".equals(accountName)) {
|
|
|
- accountName="青岛达沃特轮胎有限公司";
|
|
|
+ accountName = "青岛达沃特轮胎有限公司";
|
|
|
}
|
|
|
LambdaQueryWrapper<JdTenant> jdTenantLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
jdTenantLambdaQueryWrapper
|
|
|
@@ -277,7 +277,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
.eq(JdTenant::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(JdTenant::getAccountName, accountName);
|
|
|
JdTenant jdTenant = jdTenantMapper.selectOne(jdTenantLambdaQueryWrapper);
|
|
|
- if(jdTenant != null) {
|
|
|
+ if (jdTenant != null) {
|
|
|
//销售
|
|
|
if ("XS".equals(order.getBillType())) {
|
|
|
//销售收款-保存凭证
|
|
|
@@ -492,6 +492,29 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
throw new SecurityException("撤销账单失败,已结算金额为负数");
|
|
|
}
|
|
|
accMapper.updateById(acc);
|
|
|
+
|
|
|
+ if (acc.getTradeType().equals("CMY")) {
|
|
|
+ Long srcFeesId = acc.getSrcFeesId();
|
|
|
+ if (srcFeesId == null) {
|
|
|
+ throw new SecurityException("操作失败,未获取到原业务信息");
|
|
|
+ }
|
|
|
+
|
|
|
+ OrderFees orderFees = orderFeesClient.getById(srcFeesId);
|
|
|
+ if (orderFees == null) {
|
|
|
+ throw new SecurityException("修改原单据失败");
|
|
|
+ }
|
|
|
+ //回退原业务表数据
|
|
|
+ if (orderFees.getSettlmentAmount() == null) {
|
|
|
+ throw new SecurityException("撤销账单失败,原业务表已收金额为空");
|
|
|
+ }
|
|
|
+ BigDecimal decimal = orderFees.getSettlmentAmount().subtract(items.getThisAmount());
|
|
|
+ if (decimal.compareTo(BigDecimal.ZERO) < 0) {
|
|
|
+ throw new SecurityException("撤销账单失败,剩余已收金额不够本次扣款");
|
|
|
+ }
|
|
|
+ orderFees.setSettlmentAmount(decimal);
|
|
|
+ orderFeesClient.submit(orderFees);
|
|
|
+ }
|
|
|
+
|
|
|
//修改原业务表数据
|
|
|
if (type == 1) {
|
|
|
Long srcParentId = acc.getSrcParentId();
|
|
|
@@ -605,8 +628,20 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
throw new SecurityException("结算金额超过账单明细总金额");
|
|
|
}*/
|
|
|
|
|
|
- if (acc.getTradeType().equals("CMY")){
|
|
|
+ if (acc.getTradeType().equals("CMY")) {
|
|
|
+ Long srcFeesId = acc.getSrcFeesId();
|
|
|
+ if (srcFeesId == null) {
|
|
|
+ throw new SecurityException("操作失败,未获取到原业务信息");
|
|
|
+ }
|
|
|
|
|
|
+ OrderFees orderFees = orderFeesClient.getById(srcFeesId);
|
|
|
+ if (orderFees == null) {
|
|
|
+ throw new SecurityException("修改原单据失败");
|
|
|
+ }
|
|
|
+ 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()));
|
|
|
+ accMapper.updateById(acc);
|
|
|
+ orderFeesClient.submit(orderFees);
|
|
|
}
|
|
|
|
|
|
//修改原业务表和账单明细的数据
|
|
|
@@ -753,7 +788,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
baseMapper.insert(settlement);
|
|
|
|
|
|
|
|
|
- if ((StringUtils.isBlank(tradeType)) || (StringUtils.isNotBlank(tradeType)) && !tradeType.equals(OrderTypeEnum.DOMESTIC.getType())){
|
|
|
+ if ((StringUtils.isBlank(tradeType)) || (StringUtils.isNotBlank(tradeType)) && !tradeType.equals(OrderTypeEnum.DOMESTIC.getType())) {
|
|
|
itemsList.forEach(e -> {
|
|
|
// 修改原费用明细状态
|
|
|
if (e.getSrcType() == 2) {
|
|
|
@@ -802,7 +837,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
e.setCorpName(corpMessage.getData().getCname());
|
|
|
}
|
|
|
});
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
for (Items e : itemsList) {// 修改原费用明细状态
|
|
|
if (e.getSrcType() == 2) {
|
|
|
Order order = orderDescClient.getById(e.getSrcParentId());
|
|
|
@@ -937,7 +972,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
|
|
|
@Override
|
|
|
@Transactional
|
|
|
- public void paymentApply(List<Items> itemsList, String billType, String belongCompany,String tradeType) {
|
|
|
+ public void paymentApply(List<Items> itemsList, String billType, String belongCompany, String tradeType) {
|
|
|
itemsList.forEach(e -> {
|
|
|
//产生凭证: 销售订单-生成账单
|
|
|
/* if(e.getSrcType()==1 && e.getItemType().equals("销售"))
|
|
|
@@ -953,8 +988,9 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
throw new SecurityException(exception.getMessage());
|
|
|
}
|
|
|
}*/
|
|
|
- if (!tradeType.equals(OrderTypeEnum.WOOD_HARVESTING_CLOUD.getType())){
|
|
|
- if ((StringUtils.isBlank(tradeType)) || (StringUtils.isNotBlank(tradeType)) && !tradeType.equals(OrderTypeEnum.DOMESTIC.getType())){
|
|
|
+ Acc acc = new Acc();
|
|
|
+ if (!tradeType.equals(OrderTypeEnum.WOOD_HARVESTING_CLOUD.getType())) {
|
|
|
+ if ((StringUtils.isBlank(tradeType)) || (StringUtils.isNotBlank(tradeType)) && !tradeType.equals(OrderTypeEnum.DOMESTIC.getType())) {
|
|
|
if (e.getSrcType() == 2) {
|
|
|
OrderFees orderFees = orderFeesClient.getById(e.getSrcFeesId());
|
|
|
if (orderFees == null) {
|
|
|
@@ -978,9 +1014,10 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ acc.setBillType(billType);
|
|
|
+ } else {
|
|
|
+ acc.setBillType(e.getSrcFeesType());
|
|
|
}
|
|
|
-
|
|
|
- Acc acc = new Acc();
|
|
|
BeanUtils.copyProperties(e, acc);
|
|
|
acc.setId(null);
|
|
|
acc.setDc("d");
|
|
|
@@ -989,12 +1026,11 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
acc.setSrcRefno(e.getSrcOrderno());
|
|
|
acc.setSrcParentId(e.getSrcParentId());
|
|
|
acc.setSrcBillNo(e.getBillNo());
|
|
|
- acc.setBillType(billType);
|
|
|
acc.setCreateTime(new Date());
|
|
|
acc.setTradeType(e.getTradeType());
|
|
|
- if (ObjectUtils.isNotNull(e.getStatusJT())){
|
|
|
+ if (ObjectUtils.isNotNull(e.getStatusJT())) {
|
|
|
acc.setStatus(e.getStatusJT());
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
acc.setStatus(0);
|
|
|
}
|
|
|
acc.setRemarks(e.getRemarks());
|
|
|
@@ -1025,6 +1061,9 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
if (!"681169".equals(SecureUtil.getTenantId())) {
|
|
|
model.setAmount(total);
|
|
|
}
|
|
|
+ if ("673511".equals(SecureUtil.getTenantId()) && itemsList.size() > 0) {
|
|
|
+ model.setBillNo(itemsList.get(0).getBillNo());
|
|
|
+ }
|
|
|
//如果id=null, 无论主表还是从表, 必然都是新增
|
|
|
Long id = settlementDTO.getId();
|
|
|
if (id == null) {
|
|
|
@@ -1247,9 +1286,9 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
//增加明细开票金额
|
|
|
acc.setInvoiceAmount(acc.getInvoiceAmount() != null ? acc.getInvoiceAmount().add(e.getThisAmount()) : new BigDecimal("0").add(e.getThisAmount()));
|
|
|
accMapper.updateById(acc);
|
|
|
- if (ObjectUtils.isNotNull(acc.getSrcFeesId())){
|
|
|
- orderFeesClient.updateInvoiceAmount(acc.getSrcFeesId(),acc.getInvoiceAmount());
|
|
|
- }else{
|
|
|
+ if (ObjectUtils.isNotNull(acc.getSrcFeesId())) {
|
|
|
+ orderFeesClient.updateInvoiceAmount(acc.getSrcFeesId(), acc.getInvoiceAmount());
|
|
|
+ } else {
|
|
|
throw new SecurityException("更新费用明细失败");
|
|
|
}
|
|
|
});
|
|
|
@@ -1499,7 +1538,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
|
|
|
|
|
|
//金蝶保存凭证测试-采购付款生成凭证
|
|
|
- public JdyTool.voucher toPurchaseJinDie(Date date,String subjectNumber, String account, String createUser, String corpName, String corpNumber, String accountId, String groupName, JdTenant jdTenant) {
|
|
|
+ public JdyTool.voucher toPurchaseJinDie(Date date, String subjectNumber, String account, String createUser, String corpName, String corpNumber, String accountId, String groupName, JdTenant jdTenant) {
|
|
|
JDYitems item = new JDYitems();
|
|
|
item.setDate(new SimpleDateFormat("yyyy-MM-dd").format(date));
|
|
|
List<JDYentries> entriesList = new ArrayList<>();
|
|
|
@@ -1519,9 +1558,9 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
if (dModule == null) {
|
|
|
throw new SecurityException("获取采购订单科目号失败");
|
|
|
}
|
|
|
- if (null != subjectNumber && !subjectNumber.equals("")){
|
|
|
+ if (null != subjectNumber && !subjectNumber.equals("")) {
|
|
|
dModule.setProjectCode(subjectNumber);
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
throw new SecurityException("科目编码为空");
|
|
|
}
|
|
|
d.setExplanation(dModule.getAbstractStatic() + "-" + corpName);
|
|
|
@@ -1610,7 +1649,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
|
|
|
|
|
|
//金蝶保存凭证测试-销售收款生成凭证
|
|
|
- public JdyTool.voucher toSaleCollectionJinDie(Date date,String subjectNumber, String account, String corpName,String corpNumber, String accountId, String groupName, JdTenant jdTenant) {
|
|
|
+ public JdyTool.voucher toSaleCollectionJinDie(Date date, String subjectNumber, String account, String corpName, String corpNumber, String accountId, String groupName, JdTenant jdTenant) {
|
|
|
JDYitems item = new JDYitems();
|
|
|
item.setDate(new SimpleDateFormat("yyyy-MM-dd").format(date));
|
|
|
List<JDYentries> entriesList = new ArrayList<>();
|
|
|
@@ -1630,9 +1669,9 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
if (dModule == null) {
|
|
|
throw new SecurityException("获取销售订单科目号失败");
|
|
|
}
|
|
|
- if (null != subjectNumber && !subjectNumber.equals("")){
|
|
|
+ if (null != subjectNumber && !subjectNumber.equals("")) {
|
|
|
dModule.setProjectCode(subjectNumber);
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
throw new SecurityException("科目编码为空");
|
|
|
}
|
|
|
d.setExplanation(dModule.getAbstractStatic() + "-" + corpName);
|
|
|
@@ -1802,7 +1841,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
}
|
|
|
|
|
|
//采购付款生成凭证
|
|
|
- public void testPurchaseSaveVoucher(Settlement settlement, String accountName, String createUser, String corpName, String corpNumber, String account) throws Exception {
|
|
|
+ public void testPurchaseSaveVoucher(Settlement settlement, String accountName, String createUser, String corpName, String corpNumber, String account) throws Exception {
|
|
|
// TODO 临时屏蔽
|
|
|
// if (!"test".equals(AuthUtil.getTenantId())) {
|
|
|
// return;
|
|
|
@@ -1855,7 +1894,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
return;
|
|
|
}
|
|
|
//2.采购收款-保存凭证
|
|
|
- JdyTool.voucher voucher = toPurchaseJinDie(settlement.getSettlementDate(),settlement.getSubjectNumber(), account, createUser, corpName, corpNumber, jdTenant.getAccountId(), group.getGroupName(), jdTenant);
|
|
|
+ JdyTool.voucher voucher = toPurchaseJinDie(settlement.getSettlementDate(), settlement.getSubjectNumber(), account, createUser, corpName, corpNumber, jdTenant.getAccountId(), group.getGroupName(), jdTenant);
|
|
|
if (voucher == null) {
|
|
|
throw new SecurityException("获取凭证信息失败");
|
|
|
}
|
|
|
@@ -1867,7 +1906,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
|
|
|
|
|
|
//销售收款生成账单
|
|
|
- public void testSaleCollectionSaveVoucher(Settlement settlement, String accountName, String corpName,String corpNumber, String account) throws Exception {
|
|
|
+ public void testSaleCollectionSaveVoucher(Settlement settlement, String accountName, String corpName, String corpNumber, String account) throws Exception {
|
|
|
// TODO 临时屏蔽
|
|
|
// if (!"test".equals(AuthUtil.getTenantId())) {
|
|
|
// return;
|
|
|
@@ -1919,7 +1958,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
return;
|
|
|
}
|
|
|
//2.销售收款-保存凭证
|
|
|
- JdyTool.voucher voucher = toSaleCollectionJinDie(settlement.getSettlementDate(),settlement.getSubjectNumber(), account, corpName, corpNumber, jdTenant.getAccountId(), group.getGroupName(), jdTenant);
|
|
|
+ JdyTool.voucher voucher = toSaleCollectionJinDie(settlement.getSettlementDate(), settlement.getSubjectNumber(), account, corpName, corpNumber, jdTenant.getAccountId(), group.getGroupName(), jdTenant);
|
|
|
if (voucher == null) {
|
|
|
throw new SecurityException("获取凭证信息失败");
|
|
|
}
|
|
|
@@ -2036,6 +2075,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
|
|
|
/**
|
|
|
* 首页获取今日收款或付款
|
|
|
+ *
|
|
|
* @param settlement
|
|
|
* @return
|
|
|
*/
|
|
|
@@ -2043,9 +2083,9 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
public CollectionPayment selMoneyToday(Settlement settlement) {
|
|
|
CollectionPayment collectionPayment = new CollectionPayment();
|
|
|
// 获取已收或已付金额
|
|
|
- collectionPayment.setReceived(baseMapper.selMoneyToday(AuthUtil.getTenantId(),settlement.getCreateStartDate(),settlement.getCreateEndDate(),"结算完成",settlement.getBillType()));
|
|
|
+ collectionPayment.setReceived(baseMapper.selMoneyToday(AuthUtil.getTenantId(), settlement.getCreateStartDate(), settlement.getCreateEndDate(), "结算完成", settlement.getBillType()));
|
|
|
// 获取待收或代付金额
|
|
|
- collectionPayment.setToBeReceived(baseMapper.selMoneyToday(AuthUtil.getTenantId(),settlement.getCreateStartDate(),settlement.getCreateEndDate(),"待结算",settlement.getBillType()));
|
|
|
+ collectionPayment.setToBeReceived(baseMapper.selMoneyToday(AuthUtil.getTenantId(), settlement.getCreateStartDate(), settlement.getCreateEndDate(), "待结算", settlement.getBillType()));
|
|
|
return collectionPayment;
|
|
|
}
|
|
|
|