|
|
@@ -28,7 +28,6 @@ import org.springblade.core.tool.api.R;
|
|
|
import org.springblade.core.tool.utils.BeanUtil;
|
|
|
import org.springblade.core.tool.utils.Func;
|
|
|
import org.springblade.los.billno.entity.BusinessBillNo;
|
|
|
-import org.springblade.los.billno.service.IBillNoCenterService;
|
|
|
import org.springblade.los.billno.service.IBusinessBillNoService;
|
|
|
import org.springblade.los.business.files.entity.FilesCenter;
|
|
|
import org.springblade.los.business.files.service.IFilesCenterService;
|
|
|
@@ -48,6 +47,7 @@ import java.math.BigDecimal;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
+import java.util.Objects;
|
|
|
|
|
|
/**
|
|
|
* 业务-海运进出口 服务实现类
|
|
|
@@ -71,8 +71,6 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
|
|
|
private final IContainersCommodityService containersCommodityService;
|
|
|
|
|
|
- private final IBillNoCenterService billNoCenterService;
|
|
|
-
|
|
|
private final IFeeCenterService feeCenterService;
|
|
|
|
|
|
private final IBusinessBillNoService businessBillNoService;
|
|
|
@@ -124,133 +122,111 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
bills.setUpdateTime(new Date());
|
|
|
bills.setUpdateUserName(AuthUtil.getUserName());
|
|
|
}
|
|
|
- this.saveOrUpdate(bills);
|
|
|
- if (ObjectUtils.isNotNull(bills.getFeeCenterListC())) {
|
|
|
- for (FeeCenter item : bills.getFeeCenterListC()) {
|
|
|
- item.setSrcId(bills.getSrcId());
|
|
|
- item.setSrcCnName(bills.getSrcCnName());
|
|
|
- item.setSrcEnName(bills.getSrcEnName());
|
|
|
- item.setBillCorpId(bills.getCorpId());
|
|
|
- item.setBillCorpCnName(bills.getCorpCnName());
|
|
|
- item.setBillCorpEnName(bills.getCorpEnName());
|
|
|
- item.setLineId(bills.getLineId());
|
|
|
- item.setLineCnName(bills.getLineCnName());
|
|
|
- item.setLineEnName(bills.getLineEnName());
|
|
|
- item.setVesselId(bills.getVesselId());
|
|
|
- item.setVesselCnName(bills.getVesselCnName());
|
|
|
- item.setVesselEnName(bills.getVesselEnName());
|
|
|
- item.setVoyageNo(bills.getVoyageNo());
|
|
|
- item.setMblno(bills.getMblno());
|
|
|
- item.setHblno(bills.getHblno());
|
|
|
- item.setEtd(bills.getEtd());
|
|
|
- item.setEta(bills.getEta());
|
|
|
- item.setPolId(bills.getPolId());
|
|
|
- item.setPolCode(bills.getPolCode());
|
|
|
- item.setPolCnName(bills.getPolCnName());
|
|
|
- item.setPolEnName(bills.getPolEnName());
|
|
|
- item.setPodId(bills.getPodId());
|
|
|
- item.setPodCode(bills.getPodCode());
|
|
|
- item.setPodCnName(bills.getPodCnName());
|
|
|
- item.setPodEnName(bills.getPodEnName());
|
|
|
- if (item.getId() == null) {
|
|
|
- item.setPid(bills.getId());
|
|
|
- item.setCreateTime(new Date());
|
|
|
- item.setCreateUser(AuthUtil.getUserId());
|
|
|
- item.setCreateUserName(AuthUtil.getUserName());
|
|
|
- if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
|
|
|
- item.setCreateDept(deptId);
|
|
|
- item.setBranchId(deptId);
|
|
|
- item.setCreateDeptName(deptName);
|
|
|
- }
|
|
|
- } else {
|
|
|
- item.setUpdateUser(AuthUtil.getUserId());
|
|
|
- item.setUpdateUserName(AuthUtil.getUserName());
|
|
|
- }
|
|
|
- }
|
|
|
- feeCenterService.saveOrUpdateBatch(bills.getFeeCenterListC());
|
|
|
- }
|
|
|
- /*//预配箱型箱量
|
|
|
+
|
|
|
+ /**-------------箱型箱量计算---------*/
|
|
|
+ Integer GP20 = 0;
|
|
|
+ Integer GP40 = 0;
|
|
|
+ Integer HC40 = 0;
|
|
|
+ Integer GP45 = 0;
|
|
|
+ Integer GP48 = 0;
|
|
|
+ String boxTypeSum = "";
|
|
|
if (ObjectUtils.isNotNull(bills.getPreContainersList())) {
|
|
|
for (PreContainers item : bills.getPreContainersList()) {
|
|
|
- if (item.getId() == null) {
|
|
|
- item.setPid(bills.getId());
|
|
|
- item.setCreateTime(new Date());
|
|
|
- item.setCreateUser(AuthUtil.getUserId());
|
|
|
- item.setCreateUserName(AuthUtil.getUserName());
|
|
|
- if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
|
|
|
- item.setCreateDept(deptId);
|
|
|
- item.setBranchId(deptId);
|
|
|
- item.setCreateDeptName(deptName);
|
|
|
- }
|
|
|
- } else {
|
|
|
- item.setUpdateUser(AuthUtil.getUserId());
|
|
|
- item.setUpdateUserName(AuthUtil.getUserName());
|
|
|
+ if ("20GP".equals(item.getCntrTypeCode())) {
|
|
|
+ GP20 += item.getQuantity();
|
|
|
+ } else if ("40GP".equals(item.getCntrTypeCode())) {
|
|
|
+ GP40 += item.getQuantity();
|
|
|
+ } else if ("40HC".equals(item.getCntrTypeCode())) {
|
|
|
+ HC40 += item.getQuantity();
|
|
|
+ } else if ("45GP".equals(item.getCntrTypeCode())) {
|
|
|
+ GP45 += item.getQuantity();
|
|
|
+ } else if ("48GP".equals(item.getCntrTypeCode())) {
|
|
|
+ GP48 += item.getQuantity();
|
|
|
}
|
|
|
}
|
|
|
- preContainersService.saveOrUpdateBatch(bills.getPreContainersList());
|
|
|
+ if (GP20 > 0) {
|
|
|
+ boxTypeSum = "20GP * " + boxTypeSum + ",";
|
|
|
+ } else if (GP40 > 0) {
|
|
|
+ boxTypeSum = "40GP * " + boxTypeSum + ",";
|
|
|
+ } else if (HC40 > 0) {
|
|
|
+ boxTypeSum = "40HC * " + boxTypeSum + ",";
|
|
|
+ } else if (GP45 > 0) {
|
|
|
+ boxTypeSum = "45GP * " + boxTypeSum + ",";
|
|
|
+ } else if (GP48 > 0) {
|
|
|
+ boxTypeSum = "48GP * " + boxTypeSum + ",";
|
|
|
+ }
|
|
|
+ if (boxTypeSum.length() > 0) {
|
|
|
+ boxTypeSum = boxTypeSum.substring(0, boxTypeSum.length() - 1);
|
|
|
+ bills.setQuantityCntrDescr(boxTypeSum);
|
|
|
+ }
|
|
|
}
|
|
|
- //财务核算要素
|
|
|
- if (ObjectUtils.isNotNull(bills.getContainersList())) {
|
|
|
- for (Containers item : bills.getContainersList()) {
|
|
|
- if (item.getId() == null) {
|
|
|
- item.setPid(bills.getId());
|
|
|
- item.setCreateTime(new Date());
|
|
|
- item.setCreateUser(AuthUtil.getUserId());
|
|
|
- item.setCreateUserName(AuthUtil.getUserName());
|
|
|
- if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
|
|
|
- item.setCreateDept(deptId);
|
|
|
- item.setBranchId(deptId);
|
|
|
- item.setCreateDeptName(deptName);
|
|
|
- }
|
|
|
- } else {
|
|
|
- item.setUpdateUser(AuthUtil.getUserId());
|
|
|
- item.setUpdateUserName(AuthUtil.getUserName());
|
|
|
+ bills.setQuantityV20(GP20);
|
|
|
+ bills.setQuantityV40(GP40);
|
|
|
+ bills.setQuantityV40hc(HC40);
|
|
|
+ bills.setQuantityV45(GP45);
|
|
|
+ bills.setQuantityV48(GP48);
|
|
|
+ /**-------------箱型箱量计算---------*/
|
|
|
+
|
|
|
+ /**-------------费用计算---------*/
|
|
|
+ BigDecimal amountDr = new BigDecimal("0.00");
|
|
|
+ BigDecimal amountCr = new BigDecimal("0.00");
|
|
|
+ BigDecimal amountProfit = new BigDecimal("0.00");
|
|
|
+ BigDecimal amountDrUsd = new BigDecimal("0.00");
|
|
|
+ BigDecimal amountCrUsd = new BigDecimal("0.00");
|
|
|
+ BigDecimal amountProfitUsd = new BigDecimal("0.00");
|
|
|
+ BigDecimal amountDrLoc = new BigDecimal("0.00");
|
|
|
+ BigDecimal amountCrLoc = new BigDecimal("0.00");
|
|
|
+ BigDecimal amountProfitLoc = new BigDecimal("0.00");
|
|
|
+ if (ObjectUtils.isNotNull(bills.getFeeCenterListC())) {
|
|
|
+ for (FeeCenter item : bills.getFeeCenterListC()) {
|
|
|
+ if ("USD".equals(item.getCurCode())) {
|
|
|
+ amountCrUsd = amountDrUsd.add(item.getAmount());
|
|
|
+ } else if ("CNY".equals(item.getCurCode())) {
|
|
|
+ amountCr = amountDrUsd.add(item.getAmount());
|
|
|
}
|
|
|
}
|
|
|
- containersService.saveOrUpdateBatch(bills.getContainersList());
|
|
|
- for (Containers item : bills.getContainersList()) {
|
|
|
- if (ObjectUtils.isNotNull(item.getContainersBillsList())) {
|
|
|
- for (ContainersBills itemBills : item.getContainersBillsList()) {
|
|
|
- if (itemBills.getId() == null) {
|
|
|
- itemBills.setPpId(bills.getId());
|
|
|
- itemBills.setPid(item.getId());
|
|
|
- itemBills.setCreateTime(new Date());
|
|
|
- itemBills.setCreateUser(AuthUtil.getUserId());
|
|
|
- itemBills.setCreateUserName(AuthUtil.getUserName());
|
|
|
- if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
|
|
|
- itemBills.setCreateDept(deptId);
|
|
|
- itemBills.setBranchId(deptId);
|
|
|
- itemBills.setCreateDeptName(deptName);
|
|
|
- }
|
|
|
- } else {
|
|
|
- itemBills.setUpdateUser(AuthUtil.getUserId());
|
|
|
- itemBills.setUpdateUserName(AuthUtil.getUserName());
|
|
|
- }
|
|
|
- }
|
|
|
- containersBillsService.saveOrUpdateBatch(item.getContainersBillsList());
|
|
|
+ }
|
|
|
+ if (ObjectUtils.isNotNull(bills.getFeeCenterListD())) {
|
|
|
+ for (FeeCenter item : bills.getFeeCenterListD()) {
|
|
|
+ if ("USD".equals(item.getCurCode())) {
|
|
|
+ amountDrUsd = amountDrUsd.add(item.getAmount());
|
|
|
+ } else if ("CNY".equals(item.getCurCode())) {
|
|
|
+ amountDrUsd = amountDrUsd.add(item.getAmount());
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- //文件
|
|
|
- if (ObjectUtils.isNotNull(bills.getFilesList())) {
|
|
|
- for (FilesCenter item : bills.getFilesList()) {
|
|
|
- if (item.getId() == null) {
|
|
|
- item.setPid(bills.getId());
|
|
|
- item.setCreateTime(new Date());
|
|
|
- item.setCreateUser(AuthUtil.getUserId());
|
|
|
- item.setCreateUserName(AuthUtil.getUserName());
|
|
|
- if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
|
|
|
- item.setCreateDept(deptId);
|
|
|
- item.setBranchId(deptId);
|
|
|
- item.setCreateDeptName(deptName);
|
|
|
- }
|
|
|
- } else {
|
|
|
- item.setUpdateUser(AuthUtil.getUserId());
|
|
|
- item.setUpdateUserName(AuthUtil.getUserName());
|
|
|
- }
|
|
|
+
|
|
|
+ //主单应加上分单费用
|
|
|
+ if ("MM".equals(bills.getBillType()) && ObjectUtils.isNotNull(bills.getId())) {
|
|
|
+ List<Bills> details = baseMapper.selectList(new LambdaQueryWrapper<Bills>()
|
|
|
+ .eq(Bills::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(Bills::getIsDeleted, 0)
|
|
|
+ .eq(Bills::getMasterId, bills.getId()));
|
|
|
+ if (details.size() > 0) {
|
|
|
+ amountDr = amountDr.add(details.stream().map(Bills::getAmountDr).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ amountCr = amountCr.add(details.stream().map(Bills::getAmountCr).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ amountDrUsd = amountDrUsd.add(details.stream().map(Bills::getAmountDrUsd).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ amountCrUsd = amountCrUsd.add(details.stream().map(Bills::getAmountCrUsd).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ amountDrLoc = amountDrLoc.add(details.stream().map(Bills::getAmountDrLoc).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ amountCrLoc = amountCrLoc.add(details.stream().map(Bills::getAmountCrLoc).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
}
|
|
|
- filesCenterService.saveOrUpdateBatch(bills.getFilesList());
|
|
|
- }*/
|
|
|
+ }
|
|
|
+ //利润 = 收 - 付
|
|
|
+ amountProfit = amountDr.subtract(amountCr);
|
|
|
+ amountProfitUsd = amountDrUsd.subtract(amountCrUsd);
|
|
|
+ amountProfitLoc = amountDrLoc.subtract(amountCrLoc);
|
|
|
+
|
|
|
+ bills.setAmountDr(amountDr);
|
|
|
+ bills.setAmountCr(amountCr);
|
|
|
+ bills.setAmountProfit(amountProfit);
|
|
|
+ bills.setAmountDrUsd(amountDrUsd);
|
|
|
+ bills.setAmountCrUsd(amountCrUsd);
|
|
|
+ bills.setAmountProfitUsd(amountProfitUsd);
|
|
|
+ bills.setAmountDrLoc(amountDrLoc);
|
|
|
+ bills.setAmountCrLoc(amountCrLoc);
|
|
|
+ bills.setAmountProfitLoc(amountProfitLoc);
|
|
|
+ /**-------------费用计算---------*/
|
|
|
+ this.saveOrUpdate(bills);
|
|
|
return R.data(bills);
|
|
|
}
|
|
|
|
|
|
@@ -305,7 +281,6 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(FeeCenter::getBillType, detail.getBillType())
|
|
|
.eq(FeeCenter::getPid, detail.getId())
|
|
|
- .eq(FeeCenter::getSrcId, detail.getId())
|
|
|
.eq(FeeCenter::getDc, "C")
|
|
|
.eq(FeeCenter::getBillNo, detail.getBillNo())
|
|
|
));
|
|
|
@@ -314,7 +289,6 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(FeeCenter::getBillType, detail.getBillType())
|
|
|
.eq(FeeCenter::getPid, detail.getId())
|
|
|
- .eq(FeeCenter::getSrcId, detail.getId())
|
|
|
.eq(FeeCenter::getDc, "D")
|
|
|
.eq(FeeCenter::getBillNo, detail.getBillNo())
|
|
|
));
|