|
|
@@ -24,6 +24,7 @@ import lombok.AllArgsConstructor;
|
|
|
import org.springblade.core.secure.utils.AuthUtil;
|
|
|
import org.springblade.core.tool.api.R;
|
|
|
import org.springblade.core.tool.utils.Func;
|
|
|
+import org.springblade.core.tool.utils.StringUtil;
|
|
|
import org.springblade.los.Util.IDeptUtils;
|
|
|
import org.springblade.los.basic.corps.entity.BCorps;
|
|
|
import org.springblade.los.basic.corps.mapper.CorpsMapper;
|
|
|
@@ -136,6 +137,15 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
|
|
|
feeCenter.setCreateDeptName(deptName);
|
|
|
}
|
|
|
} else {
|
|
|
+ FeeCenter dataSourceBill = baseMapper.selectOne(new LambdaQueryWrapper<FeeCenter>()
|
|
|
+ .select(FeeCenter::getId, FeeCenter::getVersion).eq(FeeCenter::getId, feeCenter.getId()));
|
|
|
+ if (!Objects.equals(dataSourceBill.getVersion(), feeCenter.getVersion())) {
|
|
|
+ return R.fail(601, "数据已被其他用户更新,请等待刷新后重试");
|
|
|
+ }
|
|
|
+ // 每更新一次往上累加一次版本
|
|
|
+ // 旧数据处理
|
|
|
+ int version = StringUtil.isBlank(dataSourceBill.getVersion()) ? 1 : Integer.parseInt(dataSourceBill.getVersion());
|
|
|
+ feeCenter.setVersion(String.valueOf(version + 1));
|
|
|
feeCenter.setUpdateUser(AuthUtil.getUserId());
|
|
|
feeCenter.setUpdateTime(new Date());
|
|
|
feeCenter.setUpdateUserName(AuthUtil.getUserName());
|
|
|
@@ -237,7 +247,7 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
|
|
|
feeCenter.setElementsCode(items.getElementsCode());
|
|
|
|
|
|
feeCenter.setPid(bills.getId());
|
|
|
- feeCenter.setCntrNo(bills.getQuantityCntrTypesDescr());
|
|
|
+// feeCenter.setCntrNo(bills.getQuantityCntrTypesDescr());
|
|
|
feeCenter.setBillNo(bills.getBillNo());
|
|
|
feeCenter.setBusinessType(bills.getBusinessType());
|
|
|
feeCenter.setBillType(bills.getBillType());
|
|
|
@@ -599,6 +609,14 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
|
|
|
List<BCorps> bCorpsList = bCorpsService.list(new LambdaQueryWrapper<BCorps>()
|
|
|
.eq(BCorps::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(BCorps::getIsDeleted, 0));
|
|
|
+ List<FeeCenter> feeCenters1 = new ArrayList<>();
|
|
|
+ List<Long> idList = list.stream().map(FeeCenter::getId).filter(Objects::nonNull).collect(Collectors.toList());
|
|
|
+ if (!idList.isEmpty()){
|
|
|
+ feeCenters1 = baseMapper.selectList(new LambdaQueryWrapper<FeeCenter>()
|
|
|
+ .eq(FeeCenter::getTenantId,AuthUtil.getTenantId())
|
|
|
+ .eq(FeeCenter::getIsDeleted,0)
|
|
|
+ .in(FeeCenter::getId,idList));
|
|
|
+ }
|
|
|
for (FeeCenter feeCenter : list) {
|
|
|
if (!bCorpsList.isEmpty()) {
|
|
|
BCorps bCorps = bCorpsList.stream().filter(e -> e.getId().equals(feeCenter.getCorpId())).findFirst().orElse(null);
|
|
|
@@ -620,6 +638,19 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
|
|
|
feeCenter.setCreateDeptName(deptName);
|
|
|
}
|
|
|
} else {
|
|
|
+ if (!feeCenters1.isEmpty()){
|
|
|
+ FeeCenter dataSourceBill = feeCenters1.stream().filter(e-> e.getId().equals(feeCenter.getId()))
|
|
|
+ .findFirst().orElse(null);
|
|
|
+ if (dataSourceBill != null){
|
|
|
+ if (!Objects.equals(dataSourceBill.getVersion(), feeCenter.getVersion())) {
|
|
|
+ return R.fail(601, "数据已被其他用户更新,请等待刷新后重试");
|
|
|
+ }
|
|
|
+ // 每更新一次往上累加一次版本
|
|
|
+ // 旧数据处理
|
|
|
+ int version = StringUtil.isBlank(dataSourceBill.getVersion()) ? 1 : Integer.parseInt(dataSourceBill.getVersion());
|
|
|
+ feeCenter.setVersion(String.valueOf(version + 1));
|
|
|
+ }
|
|
|
+ }
|
|
|
feeCenter.setUpdateUser(AuthUtil.getUserId());
|
|
|
feeCenter.setUpdateTime(new Date());
|
|
|
feeCenter.setUpdateUserName(AuthUtil.getUserName());
|
|
|
@@ -967,8 +998,16 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
|
|
|
List<FeeCenter> feeCenterList = new ArrayList<>();
|
|
|
if (ObjectUtils.isNotNull(list) && !list.isEmpty()) {
|
|
|
Date date = list.get(0).getBillDate();
|
|
|
- BigDecimal exrateD = bCurrencyService.getCnyExrate(date, "USD", "D", "1");
|
|
|
- BigDecimal exrateC = bCurrencyService.getCnyExrate(date, "USD", "C", "1");
|
|
|
+// BigDecimal exrateD = bCurrencyService.getCnyExrate(date, "USD", "D", "1");
|
|
|
+// BigDecimal exrateC = bCurrencyService.getCnyExrate(date, "USD", "C", "1");
|
|
|
+ List<FeeCenter> feeCenters1 = new ArrayList<>();
|
|
|
+ List<Long> idList = list.stream().map(FeeCenter::getId).filter(Objects::nonNull).collect(Collectors.toList());
|
|
|
+ if (!idList.isEmpty()){
|
|
|
+ feeCenters1 = baseMapper.selectList(new LambdaQueryWrapper<FeeCenter>()
|
|
|
+ .eq(FeeCenter::getTenantId,AuthUtil.getTenantId())
|
|
|
+ .eq(FeeCenter::getIsDeleted,0)
|
|
|
+ .in(FeeCenter::getId,idList));
|
|
|
+ }
|
|
|
for (FeeCenter feeCenter : list) {
|
|
|
if (feeCenter.getId() == null) {
|
|
|
feeCenter.setCreateTime(new Date());
|
|
|
@@ -980,6 +1019,19 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
|
|
|
feeCenter.setCreateDeptName(deptName);
|
|
|
}
|
|
|
} else {
|
|
|
+ if (!feeCenters1.isEmpty()){
|
|
|
+ FeeCenter dataSourceBill = feeCenters1.stream().filter(e-> e.getId().equals(feeCenter.getId()))
|
|
|
+ .findFirst().orElse(null);
|
|
|
+ if (dataSourceBill != null){
|
|
|
+ if (!Objects.equals(dataSourceBill.getVersion(), feeCenter.getVersion())) {
|
|
|
+ return R.fail(601, "数据已被其他用户更新,请等待刷新后重试");
|
|
|
+ }
|
|
|
+ // 每更新一次往上累加一次版本
|
|
|
+ // 旧数据处理
|
|
|
+ int version = StringUtil.isBlank(dataSourceBill.getVersion()) ? 1 : Integer.parseInt(dataSourceBill.getVersion());
|
|
|
+ feeCenter.setVersion(String.valueOf(version + 1));
|
|
|
+ }
|
|
|
+ }
|
|
|
feeCenter.setUpdateUser(AuthUtil.getUserId());
|
|
|
feeCenter.setUpdateTime(new Date());
|
|
|
feeCenter.setUpdateUserName(AuthUtil.getUserName());
|
|
|
@@ -1019,17 +1071,10 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
|
|
|
feeCenter.setAmountLoc(amount);
|
|
|
feeCenter.setAmountDiscountLoc(amount);
|
|
|
} else {
|
|
|
- if ("D".equals(feeCenter.getDc())) {
|
|
|
- feeCenter.setAmountNetLoc(amountNet.multiply(exrateD));
|
|
|
- feeCenter.setAmountTaxLoc(amountTax.multiply(exrateD));
|
|
|
- feeCenter.setAmountLoc(amount.multiply(exrateD));
|
|
|
- feeCenter.setAmountDiscountLoc(amount.multiply(exrateD));
|
|
|
- } else {
|
|
|
- feeCenter.setAmountNetLoc(amountNet.multiply(exrateC));
|
|
|
- feeCenter.setAmountTaxLoc(amountTax.multiply(exrateC));
|
|
|
- feeCenter.setAmountLoc(amount.multiply(exrateC));
|
|
|
- feeCenter.setAmountDiscountLoc(amount.multiply(exrateC));
|
|
|
- }
|
|
|
+ feeCenter.setAmountNetLoc(amountNet.multiply(feeCenter.getExrate()));
|
|
|
+ feeCenter.setAmountTaxLoc(amountTax.multiply(feeCenter.getExrate()));
|
|
|
+ feeCenter.setAmountLoc(amount.multiply(feeCenter.getExrate()));
|
|
|
+ feeCenter.setAmountDiscountLoc(amount.multiply(feeCenter.getExrate()));
|
|
|
}
|
|
|
feeCenter.setAmountNet(amountNet);
|
|
|
feeCenter.setAmountTax(amountTax);
|
|
|
@@ -1060,6 +1105,13 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
|
|
|
for (String item : accBillNoList) {
|
|
|
BCorps bCorps = new BCorps();
|
|
|
bCorps.setAccBillNo(item);
|
|
|
+ List<FeeCenter> feeCenters = feeCenterList.stream().filter(e-> e.getAccBillNo().equals(item)).collect(Collectors.toList());
|
|
|
+ if (!feeCenters.isEmpty()){
|
|
|
+ bCorps.setCnName(feeCenters.get(0).getCorpCnName());
|
|
|
+ bCorps.setEnName(feeCenters.get(0).getCorpEnName());
|
|
|
+ bCorps.setShortName(feeCenters.get(0).getShortName());
|
|
|
+ bCorps.setId(feeCenters.get(0).getCorpId());
|
|
|
+ }
|
|
|
bCorpsList.add(bCorps);
|
|
|
}
|
|
|
}
|
|
|
@@ -1438,7 +1490,7 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
|
|
|
feeCenter.setElementsId(items.getElementsId());
|
|
|
feeCenter.setElementsCode(items.getElementsCode());
|
|
|
feeCenter.setPid(bills.getId());
|
|
|
- feeCenter.setCntrNo(bills.getQuantityCntrTypesDescr());
|
|
|
+// feeCenter.setCntrNo(bills.getQuantityCntrTypesDescr());
|
|
|
feeCenter.setBillNo(bills.getBillNo());
|
|
|
feeCenter.setBusinessType(bills.getBusinessType());
|
|
|
feeCenter.setBillType(bills.getBillType());
|