|
|
@@ -158,10 +158,6 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
private final ZrUtil zrUtil;
|
|
|
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
@Override
|
|
|
public IPage<BillsVO> selectBillsPage(IPage<BillsVO> page, BillsVO bills) {
|
|
|
return page.setRecords(baseMapper.selectBillsPage(page, bills));
|
|
|
@@ -300,15 +296,14 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
// 初始创建为1
|
|
|
bills.setVersion("1");
|
|
|
this.save(bills);
|
|
|
- }
|
|
|
- else {
|
|
|
+ } else {
|
|
|
Bills dataSourceBill = baseMapper.selectOne(new LambdaQueryWrapper<Bills>().select(Bills::getId, Bills::getVersion).eq(Bills::getId, bills.getId()));
|
|
|
if (!Objects.equals(dataSourceBill.getVersion(), bills.getVersion())) {
|
|
|
return R.fail(601, "数据已被其他用户更新,请等待刷新后重试");
|
|
|
}
|
|
|
// 每更新一次往上累加一次版本
|
|
|
// 旧数据处理
|
|
|
- int version = StringUtil.isBlank(dataSourceBill.getVersion()) ? 1 :Integer.parseInt(dataSourceBill.getVersion());
|
|
|
+ int version = StringUtil.isBlank(dataSourceBill.getVersion()) ? 1 : Integer.parseInt(dataSourceBill.getVersion());
|
|
|
bills.setVersion(String.valueOf(version + 1));
|
|
|
List<Long> ids = count.stream().map(Bills::getId).distinct().collect(Collectors.toList());
|
|
|
if (!"MH".equals(bills.getBillType())) {
|
|
|
@@ -574,7 +569,7 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
.distinct().filter(Objects::nonNull).collect(Collectors.joining(",")));
|
|
|
}
|
|
|
}
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
bills.setQuantityCntrDescr(null);
|
|
|
}
|
|
|
bills.setQuantityV20(V20);
|
|
|
@@ -3500,4 +3495,85 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
baseMapper.updateById(bills);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public R documentVerification(Bills billss) throws Exception {
|
|
|
+ Object object = StringTools.handle(billss, "Bills");
|
|
|
+ Bills bills = JSONObject.parseObject(JSONObject.toJSONString(object), Bills.class);
|
|
|
+ String branchId = deptUtils.getDeptPid() + "";
|
|
|
+ //获取部门ids对应中文名
|
|
|
+ if (ObjectUtils.isNotNull(bills.getMblno())) {
|
|
|
+ bills.setMblno(bills.getMblno().replaceAll(" ", ""));
|
|
|
+ }
|
|
|
+ List<Bills> count = baseMapper.selectList(new LambdaQueryWrapper<Bills>()
|
|
|
+ .eq(Bills::getBranchId, branchId)
|
|
|
+ .eq(Bills::getCreateDept, AuthUtil.getDeptId())
|
|
|
+ .eq(Bills::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(Bills::getIsDeleted, 0)
|
|
|
+ .eq(Bills::getMblno, bills.getMblno()));
|
|
|
+ if ("SE".equals(bills.getBusinessType())) {
|
|
|
+ bills.setBillDate(bills.getEtd());
|
|
|
+ } else {
|
|
|
+ bills.setBillDate(bills.getEta());
|
|
|
+ }
|
|
|
+ if (ObjectUtils.isNotNull(bills.getBillDate())) {
|
|
|
+ LocalDate date = bills.getBillDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
|
|
|
+ int year = date.getYear();
|
|
|
+ int month = date.getMonthValue();
|
|
|
+ FinPeriod finPeriod = finPeriodMapper.selectOne(new LambdaQueryWrapper<FinPeriod>()
|
|
|
+ .eq(FinPeriod::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(FinPeriod::getIsDeleted, 0)
|
|
|
+ .eq(FinPeriod::getPeriodYear, year)
|
|
|
+ .eq(FinPeriod::getPeriodMonth, month));
|
|
|
+ if (finPeriod != null) {
|
|
|
+ if (1 == finPeriod.getIsClosed()) {
|
|
|
+ return R.data("1", year + "年" + month + "月账期已结转,保存失败");
|
|
|
+ }
|
|
|
+ if (1 == finPeriod.getLockingStatus()) {
|
|
|
+ return R.data("1", year + "年" + month + "月账期已锁定,保存失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<Bills> dateList = baseMapper.selectList(new LambdaQueryWrapper<Bills>()
|
|
|
+ .eq(Bills::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(Bills::getIsDeleted, 0)
|
|
|
+ .eq(Bills::getVesselId, bills.getVesselId())
|
|
|
+ .eq(Bills::getVoyageNo, bills.getVoyageNo()));
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
+ if (bills.getId() == null) {
|
|
|
+ if (!"MH".equals(bills.getBillType())) {
|
|
|
+ if (ObjectUtils.isNotNull(bills.getMblno())) {
|
|
|
+ List<Bills> billsList = count.stream().filter(e -> e.getTeamId().equals(AuthUtil.getPostId())).collect(Collectors.toList());
|
|
|
+ if (!billsList.isEmpty()) {
|
|
|
+ return R.data("1", "提单号不允许重复:" + bills.getMblno());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (ObjectUtils.isNotNull(bills.getVesselId()) && ObjectUtils.isNotNull(bills.getVoyageNo())) {
|
|
|
+ if (!dateList.isEmpty() && dateList.stream().anyMatch(e -> !e.getBillDate().equals(bills.getBillDate()))) {
|
|
|
+ List<Bills> bills1 = dateList.stream().filter(e -> !e.getBillDate().equals(bills.getBillDate())).collect(Collectors.toList());
|
|
|
+ return R.data("2", "系统已存在船名,航次,日期" + sdf.format(bills1.get(0).getBillDate()) + "与当前所填日期不符,是否确认?");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ List<Bills> billsList = count.stream().filter(e -> ObjectUtils.isNotNull(e.getTeamId()) && e.getTeamId().equals(AuthUtil.getPostId())).collect(Collectors.toList());
|
|
|
+ if (!billsList.isEmpty()) {
|
|
|
+ List<Long> ids = billsList.stream().map(Bills::getId).distinct().collect(Collectors.toList());
|
|
|
+ if (!"MH".equals(bills.getBillType())) {
|
|
|
+ if (ObjectUtils.isNotNull(bills.getMblno())) {
|
|
|
+ if (!ids.contains(bills.getId())) {
|
|
|
+ return R.data("1", "提单号不允许重复:" + bills.getMblno());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (ObjectUtils.isNotNull(bills.getVesselId()) && ObjectUtils.isNotNull(bills.getVoyageNo())) {
|
|
|
+ if (!dateList.isEmpty() && dateList.stream().anyMatch(e -> !e.getId().equals(bills.getId()) && !e.getBillDate().equals(bills.getBillDate()))) {
|
|
|
+ List<Bills> bills1 = dateList.stream().filter(e -> !e.getId().equals(bills.getId()) && !e.getBillDate().equals(bills.getBillDate())).collect(Collectors.toList());
|
|
|
+ return R.data("2", "系统已存在船名,航次,日期" + sdf.format(bills1.get(0).getBillDate()) + "与当前所填日期不符,是否确认?");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return R.data("0");
|
|
|
+ }
|
|
|
+
|
|
|
}
|