|
|
@@ -3503,6 +3503,87 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
}
|
|
|
|
|
|
@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");
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
public R<String> getReceiptUrl(Long billId) {
|
|
|
Bills bills = baseMapper.selectById(billId);
|
|
|
if (org.springframework.util.ObjectUtils.isEmpty(bills)) {
|