纪新园 1 год назад
Родитель
Сommit
09dcc6dda0
14 измененных файлов с 227 добавлено и 107 удалено
  1. 1 1
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/business/sea/entity/Bills.java
  2. 7 0
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/vo/OrderVO.java
  3. 7 2
      blade-service/blade-los/src/main/java/org/springblade/los/business/aea/controller/AeaBillsController.java
  4. 13 0
      blade-service/blade-los/src/main/java/org/springblade/los/business/aea/service/impl/AeaBillsServiceImpl.java
  5. 2 0
      blade-service/blade-los/src/main/java/org/springblade/los/business/customsDeclaration/controller/CustomsDeclarationController.java
  6. 13 0
      blade-service/blade-los/src/main/java/org/springblade/los/business/customsDeclaration/service/impl/CustomsDeclarationServiceImpl.java
  7. 22 18
      blade-service/blade-los/src/main/java/org/springblade/los/business/sea/controller/BillsController.java
  8. 15 48
      blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/BillsServiceImpl.java
  9. 54 15
      blade-service/blade-los/src/main/java/org/springblade/los/finance/genleg/service/impl/FinPeriodServiceImpl.java
  10. 38 17
      blade-service/blade-los/src/main/java/org/springblade/los/statisticAnalysis/service/impl/StatisticAnalysisServiceImpl.java
  11. 9 2
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/export/ExportOrderController.java
  12. 3 3
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/service/impl/OrderServiceImpl.java
  13. 24 0
      blade-service/trade-purchase/src/main/java/com/trade/purchase/enquiry/ShippingEnquiry.java
  14. 19 1
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/impl/OrderServiceImpl.java

+ 1 - 1
blade-service-api/blade-los-api/src/main/java/org/springblade/los/business/sea/entity/Bills.java

@@ -1341,7 +1341,7 @@ public class Bills implements Serializable {
 	@ApiModelProperty(value = "状态(业务参数配置)")
 	private Integer billStatus;
 	/**
-	 * 财务状态(业务参数配置)
+	 * 财务状态 0 新建  1 应收已录  2  应付已录  3 收付已录
 	 */
 	@ApiModelProperty(value = "财务状态(业务参数配置)")
 	private Integer accountStatus;

+ 7 - 0
blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/vo/OrderVO.java

@@ -181,4 +181,11 @@ public class OrderVO extends Order {
 	private String type;
 
 
+	/**
+	 * tab类型
+	 */
+	@TableField(exist = false)
+	private String tabType;
+
+
 }

+ 7 - 2
blade-service/blade-los/src/main/java/org/springblade/los/business/aea/controller/AeaBillsController.java

@@ -128,8 +128,13 @@ public class AeaBillsController extends BladeController {
 			.eq(ObjectUtils.isNotNull(aeaBills.getBusinessType()), AeaBills::getBusinessType, aeaBills.getBusinessType())
 			.eq(ObjectUtils.isNotNull(aeaBills.getSeaType()), AeaBills::getSeaType, aeaBills.getSeaType())
 			.eq(ObjectUtils.isNotNull(aeaBills.getBillStatus()), AeaBills::getBillStatus, aeaBills.getBillStatus())
-			.eq(ObjectUtils.isNotNull(aeaBills.getStatus()), AeaBills::getStatus, aeaBills.getStatus())
-			.orderByDesc(AeaBills::getCreateTime);
+			.eq(ObjectUtils.isNotNull(aeaBills.getAccountStatus()), AeaBills::getAccountStatus, aeaBills.getAccountStatus())
+			.eq(ObjectUtils.isNotNull(aeaBills.getStatus()), AeaBills::getStatus, aeaBills.getStatus());
+		if ("AE".equals(aeaBills.getBusinessType())) {
+			lambdaQueryWrapper.orderByDesc(AeaBills::getEtd);
+		} else {
+			lambdaQueryWrapper.orderByDesc(AeaBills::getEta);
+		}
 		IPage<AeaBills> pages = aeaBillsService.page(Condition.getPage(query), lambdaQueryWrapper);
 		return R.data(pages);
 	}

+ 13 - 0
blade-service/blade-los/src/main/java/org/springblade/los/business/aea/service/impl/AeaBillsServiceImpl.java

@@ -313,7 +313,9 @@ public class AeaBillsServiceImpl extends ServiceImpl<AeaBillsMapper, AeaBills> i
 		BigDecimal amountCrLoc = new BigDecimal("0.00");
 		BigDecimal amountProfitLoc = new BigDecimal("0.00");
 		//应付
+		int statusC = 0;
 		if (ObjectUtils.isNotNull(aeaBills.getFeeCenterListC())) {
+			statusC += 1;
 			for (FeeCenter item : aeaBills.getFeeCenterListC()) {
 				item.setPid(aeaBills.getId());
 				item.setBillNo(aeaBills.getBillNo());
@@ -356,7 +358,9 @@ public class AeaBillsServiceImpl extends ServiceImpl<AeaBillsMapper, AeaBills> i
 			feeCenterService.submitList(aeaBills.getFeeCenterListC());
 		}
 		//应收
+		int statusD = 0;
 		if (ObjectUtils.isNotNull(aeaBills.getFeeCenterListD())) {
+			statusD += 1;
 			for (FeeCenter item : aeaBills.getFeeCenterListD()) {
 				item.setPid(aeaBills.getId());
 				item.setBillNo(aeaBills.getBillNo());
@@ -398,6 +402,15 @@ public class AeaBillsServiceImpl extends ServiceImpl<AeaBillsMapper, AeaBills> i
 			}
 			feeCenterService.submitList(aeaBills.getFeeCenterListD());
 		}
+		if (0 == statusD && 0 == statusC) {
+			aeaBills.setAccountStatus(0);
+		} else if (1 == statusD && 0 == statusC) {
+			aeaBills.setAccountStatus(1);
+		} else if (0 == statusD && 1 == statusC) {
+			aeaBills.setAccountStatus(2);
+		}else if (1 == statusD && 1 == statusC) {
+			aeaBills.setAccountStatus(3);
+		}
 		BigDecimal quantity = aeaBills.getQuantity();
 		BigDecimal grossWeight = aeaBills.getGrossWeight();
 		BigDecimal measurement = aeaBills.getMeasurement();

+ 2 - 0
blade-service/blade-los/src/main/java/org/springblade/los/business/customsDeclaration/controller/CustomsDeclarationController.java

@@ -31,6 +31,7 @@ import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
+import org.springblade.los.business.aea.entity.AeaBills;
 import org.springblade.los.business.customsDeclaration.entity.CustomsDeclaration;
 import org.springblade.los.business.customsDeclaration.service.ICustomsDeclarationService;
 import org.springblade.los.business.customsDeclaration.vo.CustomsDeclarationVO;
@@ -82,6 +83,7 @@ public class CustomsDeclarationController extends BladeController {
 			.like(ObjectUtils.isNotNull(customsDeclaration.getContractAgreementNumber()),CustomsDeclaration::getContractAgreementNumber, customsDeclaration.getContractAgreementNumber())
 			.like(ObjectUtils.isNotNull(customsDeclaration.getRefno()),CustomsDeclaration::getRefno, customsDeclaration.getRefno())
 			.like(ObjectUtils.isNotNull(customsDeclaration.getCorpCnName()),CustomsDeclaration::getCorpCnName, customsDeclaration.getCorpCnName())
+			.eq(ObjectUtils.isNotNull(customsDeclaration.getAccountStatus()), CustomsDeclaration::getAccountStatus, customsDeclaration.getAccountStatus())
 			.orderByDesc(CustomsDeclaration::getCreateTime)
 		;
 		IPage<CustomsDeclaration> pages = customsDeclarationService.page(Condition.getPage(query), lambdaQueryWrapper);

+ 13 - 0
blade-service/blade-los/src/main/java/org/springblade/los/business/customsDeclaration/service/impl/CustomsDeclarationServiceImpl.java

@@ -245,7 +245,9 @@ public class CustomsDeclarationServiceImpl extends ServiceImpl<CustomsDeclaratio
 		BigDecimal amountCrLoc = new BigDecimal("0.00");
 		BigDecimal amountProfitLoc = new BigDecimal("0.00");
 		//应付
+		int statusC = 0;
 		if (ObjectUtils.isNotNull(customsDeclaration.getFeeCenterListC())) {
+			statusC += 1;
 			for (FeeCenter item : customsDeclaration.getFeeCenterListC()) {
 				item.setPid(customsDeclaration.getId());
 				item.setBillNo(customsDeclaration.getBillNo());
@@ -274,7 +276,9 @@ public class CustomsDeclarationServiceImpl extends ServiceImpl<CustomsDeclaratio
 			feeCenterService.submitList(customsDeclaration.getFeeCenterListC());
 		}
 		//应收
+		int statusD = 0;
 		if (ObjectUtils.isNotNull(customsDeclaration.getFeeCenterListD())) {
+			statusD += 1;
 			for (FeeCenter item : customsDeclaration.getFeeCenterListD()) {
 				item.setPid(customsDeclaration.getId());
 				item.setBillNo(customsDeclaration.getBillNo());
@@ -302,6 +306,15 @@ public class CustomsDeclarationServiceImpl extends ServiceImpl<CustomsDeclaratio
 			}
 			feeCenterService.submitList(customsDeclaration.getFeeCenterListD());
 		}
+		if (0 == statusD && 0 == statusC) {
+			customsDeclaration.setAccountStatus(0);
+		} else if (1 == statusD && 0 == statusC) {
+			customsDeclaration.setAccountStatus(1);
+		} else if (0 == statusD && 1 == statusC) {
+			customsDeclaration.setAccountStatus(2);
+		}else if (1 == statusD && 1 == statusC) {
+			customsDeclaration.setAccountStatus(3);
+		}
 		//利润 = 收 - 付
 		amountProfit = amountDr.subtract(amountCr);
 		amountProfitUsd = amountDrUsd.subtract(amountCrUsd);

+ 22 - 18
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/controller/BillsController.java

@@ -41,7 +41,6 @@ import org.springblade.los.business.sea.vo.BillsVO;
 import org.springblade.los.excel.BillsExcel;
 import org.springblade.system.entity.DictBiz;
 import org.springblade.system.feign.IDictBizClient;
-import org.springblade.system.feign.ISysClient;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
@@ -99,8 +98,8 @@ public class BillsController extends BladeController {
 			Bills::getCreateTime, Bills::getUpdateUserName, Bills::getUpdateTime, Bills::getStatus, Bills::getBillStatus,
 			Bills::getAccountStatus, Bills::getRemarks, Bills::getPackingUnit, Bills::getBillDate, Bills::getTeamName,
 			Bills::getCreateUser, Bills::getTeu, Bills::getIssueType, Bills::getBookingNo, Bills::getQuantityCntrDescr,
-			Bills::getCyCnName,Bills::getCarrierCnName,Bills::getSrcType,Bills::getSrcCnName,Bills::getBookingAgentCnName,
-			Bills::getHconsigneeCnName,Bills::getCreateDeptName,Bills::getLineCnName);
+			Bills::getCyCnName, Bills::getCarrierCnName, Bills::getSrcType, Bills::getSrcCnName, Bills::getBookingAgentCnName,
+			Bills::getHconsigneeCnName, Bills::getCreateDeptName, Bills::getLineCnName);
 		lambdaQueryWrapper.eq(Bills::getIsDeleted, 0)
 			.eq(Bills::getTenantId, AuthUtil.getTenantId())
 			.and(i -> i.isNull(Bills::getMasterId).or()
@@ -154,8 +153,13 @@ public class BillsController extends BladeController {
 			.eq(ObjectUtils.isNotNull(bills.getBusinessType()), Bills::getBusinessType, bills.getBusinessType())
 			.eq(ObjectUtils.isNotNull(bills.getSeaType()), Bills::getSeaType, bills.getSeaType())
 			.eq(ObjectUtils.isNotNull(bills.getBillStatus()), Bills::getBillStatus, bills.getBillStatus())
-			.eq(ObjectUtils.isNotNull(bills.getStatus()), Bills::getStatus, bills.getStatus())
-			.orderByDesc(Bills::getCreateTime);
+			.eq(ObjectUtils.isNotNull(bills.getAccountStatus()), Bills::getAccountStatus, bills.getAccountStatus())
+			.eq(ObjectUtils.isNotNull(bills.getStatus()), Bills::getStatus, bills.getStatus());
+		if ("SE".equals(bills.getBusinessType())) {
+			lambdaQueryWrapper.orderByDesc(Bills::getEtd);
+		} else {
+			lambdaQueryWrapper.orderByDesc(Bills::getEta);
+		}
 		IPage<Bills> pages = billsService.page(Condition.getPage(query), lambdaQueryWrapper);
 		return R.data(pages);
 	}
@@ -470,8 +474,8 @@ public class BillsController extends BladeController {
 			Bills::getCreateTime, Bills::getUpdateUserName, Bills::getUpdateTime, Bills::getStatus, Bills::getBillStatus,
 			Bills::getAccountStatus, Bills::getRemarks, Bills::getPackingUnit, Bills::getBillDate, Bills::getTeamName,
 			Bills::getCreateUser, Bills::getTeu, Bills::getIssueType, Bills::getBookingNo, Bills::getQuantityCntrDescr,
-			Bills::getCyCnName,Bills::getCarrierCnName,Bills::getSrcType,Bills::getSrcCnName,Bills::getBookingAgentCnName,
-			Bills::getHconsigneeCnName,Bills::getCreateDeptName,Bills::getLineCnName);
+			Bills::getCyCnName, Bills::getCarrierCnName, Bills::getSrcType, Bills::getSrcCnName, Bills::getBookingAgentCnName,
+			Bills::getHconsigneeCnName, Bills::getCreateDeptName, Bills::getLineCnName);
 		lambdaQueryWrapper.eq(Bills::getIsDeleted, 0)
 			.eq(Bills::getTenantId, AuthUtil.getTenantId())
 			.and(i -> i.isNull(Bills::getMasterId).or()
@@ -542,29 +546,29 @@ public class BillsController extends BladeController {
 			}
 			if (1 == item.getIsNeedDeclare()) {
 				billsExcel.setIsNeedDeclare("是");
-			}else{
+			} else {
 				billsExcel.setIsNeedDeclare("否");
 			}
 			if (1 == item.getIsNeedIq()) {
 				billsExcel.setIsNeedIq("是");
-			}else{
+			} else {
 				billsExcel.setIsNeedIq("否");
 			}
-			if(res1.isSuccess() && !res1.getData().isEmpty()){
-				DictBiz dictBiz = res1.getData().stream().filter(e-> e.getDictKey().equals(item.getAccountStatus()+"")).findFirst().orElse(null);
-				if (dictBiz !=null){
+			if (res1.isSuccess() && !res1.getData().isEmpty()) {
+				DictBiz dictBiz = res1.getData().stream().filter(e -> e.getDictKey().equals(item.getAccountStatus() + "")).findFirst().orElse(null);
+				if (dictBiz != null) {
 					billsExcel.setAccountStatus(dictBiz.getDictValue());
 				}
 			}
-			if(res2.isSuccess() && !res2.getData().isEmpty()){
-				DictBiz dictBiz = res2.getData().stream().filter(e-> e.getDictKey().equals(item.getStatus()+"")).findFirst().orElse(null);
-				if (dictBiz !=null){
+			if (res2.isSuccess() && !res2.getData().isEmpty()) {
+				DictBiz dictBiz = res2.getData().stream().filter(e -> e.getDictKey().equals(item.getStatus() + "")).findFirst().orElse(null);
+				if (dictBiz != null) {
 					billsExcel.setStatus(dictBiz.getDictValue());
 				}
 			}
-			if(res3.isSuccess() && !res3.getData().isEmpty()){
-				DictBiz dictBiz = res3.getData().stream().filter(e-> e.getDictKey().equals(item.getBillStatus()+"")).findFirst().orElse(null);
-				if (dictBiz !=null){
+			if (res3.isSuccess() && !res3.getData().isEmpty()) {
+				DictBiz dictBiz = res3.getData().stream().filter(e -> e.getDictKey().equals(item.getBillStatus() + "")).findFirst().orElse(null);
+				if (dictBiz != null) {
 					billsExcel.setBillStatus(dictBiz.getDictValue());
 				}
 			}

+ 15 - 48
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/BillsServiceImpl.java

@@ -449,7 +449,9 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 		BigDecimal amountCrLoc = new BigDecimal("0.00");
 		BigDecimal amountProfitLoc = new BigDecimal("0.00");
 		//应付
+		int statusC = 0;
 		if (ObjectUtils.isNotNull(bills.getFeeCenterListC())) {
+			statusC += 1;
 			for (FeeCenter item : bills.getFeeCenterListC()) {
 				item.setPid(bills.getId());
 				item.setBillNo(bills.getBillNo());
@@ -499,49 +501,9 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 			feeCenterService.submitList(bills.getFeeCenterListC());
 		}
 		//应收
-/*
-		FeeCenter feeCenterForUpdate = new FeeCenter();
-		if (ObjectUtils.isNotNull(bills)) {
-			feeCenterForUpdate.setPid(bills.getId());
-			feeCenterForUpdate.setBillNo(bills.getBillNo());
-			feeCenterForUpdate.setBusinessType(bills.getBusinessType());
-			feeCenterForUpdate.setBillType(bills.getBillType());
-			feeCenterForUpdate.setBillDate(bills.getBillDate());
-			feeCenterForUpdate.setSrcType(bills.getSrcType());
-			feeCenterForUpdate.setSrcId(bills.getSrcId());
-			feeCenterForUpdate.setSrcCnName(bills.getSrcCnName());
-			feeCenterForUpdate.setSrcEnName(bills.getSrcEnName());
-			feeCenterForUpdate.setBillCorpId(bills.getCorpId());
-			feeCenterForUpdate.setBillCorpCnName(bills.getCorpCnName());
-			feeCenterForUpdate.setBillCorpEnName(bills.getCorpEnName());
-			feeCenterForUpdate.setLineId(bills.getLineId());
-			feeCenterForUpdate.setLineCnName(bills.getLineCnName());
-			feeCenterForUpdate.setLineEnName(bills.getLineEnName());
-			feeCenterForUpdate.setVesselId(bills.getVesselId());
-			feeCenterForUpdate.setVesselEnName(bills.getVesselEnName());
-			feeCenterForUpdate.setVesselCnName(bills.getVesselCnName());
-			feeCenterForUpdate.setVoyageNo(bills.getVoyageNo());
-			feeCenterForUpdate.setMblno(bills.getMblno());
-			feeCenterForUpdate.setHblno(bills.getHblno());
-			feeCenterForUpdate.setEtd(bills.getEtd());
-			feeCenterForUpdate.setEta(bills.getEta());
-			feeCenterForUpdate.setPolId(bills.getPolId());
-			feeCenterForUpdate.setPolCode(bills.getPolCode());
-			feeCenterForUpdate.setPolCnName(bills.getPolCnName());
-			feeCenterForUpdate.setPolEnName(bills.getPolEnName());
-			feeCenterForUpdate.setPodId(bills.getPodId());
-			feeCenterForUpdate.setPodCode(bills.getPodCode());
-			feeCenterForUpdate.setPodCnName(bills.getPodCnName());
-			feeCenterForUpdate.setPodEnName(bills.getPodEnName());
-			feeCenterForUpdate.setPaymode(bills.getMpaymode());
-			feeCenterForUpdate.setPayplace(bills.getMpayplace());
-			feeCenterForUpdate.setRefno(bills.getRefno());
-			feeCenterForUpdate.setBookingNo(bills.getBookingNo());
-			feeCenterForUpdate.setCntrNo(bills.getQuantityCntrTypesDescr());
-		}
-*/
-
+		int statusD = 0;
 		if (ObjectUtils.isNotNull(bills.getFeeCenterListD())) {
+			statusD += 1;
 			for (FeeCenter item : bills.getFeeCenterListD()) {
 				item.setPid(bills.getId());
 				item.setBillNo(bills.getBillNo());
@@ -588,13 +550,18 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 					amountDrUsd = amountDrUsd.add(usd);
 				}
 			}
-/*
-			feeCenterService.update(feeCenterForUpdate,new LambdaQueryWrapper<FeeCenter>()
-				.eq(FeeCenter::getPid, bills.getId()));
-
-*/
 			feeCenterService.submitList(bills.getFeeCenterListD());
 		}
+		if (0 == statusD && 0 == statusC) {
+			bills.setAccountStatus(0);
+		} else if (1 == statusD && 0 == statusC) {
+			bills.setAccountStatus(1);
+		} else if (0 == statusD && 1 == statusC) {
+			bills.setAccountStatus(2);
+		}else if (1 == statusD && 1 == statusC) {
+			bills.setAccountStatus(3);
+		}
+
 		BigDecimal quantity = bills.getQuantity();
 		BigDecimal grossWeight = bills.getGrossWeight();
 		BigDecimal measurement = bills.getMeasurement();
@@ -1726,7 +1693,7 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 			.apply(ObjectUtils.isNotNull(bills.getIssueStatus()), "find_in_set(issue_status,'" + bills.getIssueStatus() + "')")
 			.eq(Bills::getIsDeleted, 0)
 			.eq(Bills::getTenantId, AuthUtil.getTenantId());
-		if ("1".equals(bills.getIfThisDept())){
+		if ("1".equals(bills.getIfThisDept())) {
 			lambdaQueryWrapper.apply("find_in_set(team_id,'" + AuthUtil.getPostId() + "')");
 		}
 		if ("SE".equals(bills.getBusinessType())) {

+ 54 - 15
blade-service/blade-los/src/main/java/org/springblade/los/finance/genleg/service/impl/FinPeriodServiceImpl.java

@@ -115,18 +115,23 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
 	@Transactional(rollbackFor = Exception.class)
 	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
 	public R init(FinPeriod finPeriod) {
+		LocalDate date = finPeriod.getBeginDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
+		Integer periodYear = date.getYear();
+		Integer periodMonth = date.getMonthValue();
 		List<FinPeriod> finPeriodList = baseMapper.selectList(new LambdaQueryWrapper<FinPeriod>()
 			.eq(FinPeriod::getTenantId, AuthUtil.getTenantId())
 			.eq(FinPeriod::getIsDeleted, 0)
 			.eq(FinPeriod::getBranchId, deptUtils.getDeptPid())
-			.gt(FinPeriod::getBeginDate, finPeriod.getBeginDate())
+			.ge(FinPeriod::getPeriodYear, periodYear)
+			.ge(FinPeriod::getPeriodMonth, periodMonth)
 		);
 		if (!finPeriodList.isEmpty()) {
 			FinPeriod detail = baseMapper.selectOne(new LambdaQueryWrapper<FinPeriod>()
 				.eq(FinPeriod::getTenantId, AuthUtil.getTenantId())
 				.eq(FinPeriod::getIsDeleted, 0)
 				.eq(FinPeriod::getBranchId, deptUtils.getDeptPid())
-				.eq(FinPeriod::getBeginDate, finPeriod.getBeginDate()));
+				.eq(FinPeriod::getPeriodYear, periodYear)
+				.eq(FinPeriod::getPeriodMonth, periodMonth));
 			if (detail != null) {
 				List<Long> ids = finPeriodList.stream().map(FinPeriod::getId).filter(id -> !id.equals(detail.getId())).distinct().collect(Collectors.toList());
 				if (!ids.isEmpty()) {
@@ -144,7 +149,8 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
 				.eq(FinVouchers::getTenantId, AuthUtil.getTenantId())
 				.eq(FinVouchers::getIsDeleted, 0)
 				.eq(FinVouchers::getBranchId, deptUtils.getDeptPid())
-				.gt(FinVouchers::getVoucherDate, finPeriod.getBeginDate()));
+				.ge(FinVouchers::getAccountYear, periodYear)
+				.ge(FinVouchers::getAccountMonth, periodMonth));
 			if (!finVouchersList.isEmpty()) {
 				for (FinVouchers item : finVouchersList) {
 					item.setVoucherStatus(0);
@@ -154,31 +160,64 @@ public class FinPeriodServiceImpl extends ServiceImpl<FinPeriodMapper, FinPeriod
 				}
 				finVouchersService.updateBatchById(finVouchersList);
 			}
-			LocalDate date = finPeriod.getBeginDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
-			Integer periodYear = date.getYear();
-			Integer periodMonth = date.getMonthValue();
 			List<FinGenlegCalc> finGenlegCalcList = finGenlegCalcService.list(new LambdaQueryWrapper<FinGenlegCalc>()
 				.eq(FinGenlegCalc::getTenantId, AuthUtil.getTenantId())
 				.eq(FinGenlegCalc::getBranchId, deptUtils.getDeptPid())
-				.gt(FinGenlegCalc::getAccyear, periodYear)
+				.ge(FinGenlegCalc::getAccyear, periodYear)
 				.ge(FinGenlegCalc::getAccmonth, periodMonth)
 			);
 			if (!finGenlegCalcList.isEmpty()) {
-				List<Long> ids = finGenlegCalcList.stream().map(FinGenlegCalc::getId).distinct().collect(Collectors.toList());
-				if (!ids.isEmpty()) {
-					finGenlegCalcService.removeByIds(ids);
+				List<FinGenlegCalc> finGenlegCalcs = finGenlegCalcList.stream().filter(e -> e.getAccyear().equals(periodYear) &&
+					e.getAccmonth().equals(periodMonth)).collect(Collectors.toList());
+				if (!finGenlegCalcs.isEmpty()) {
+					List<Long> idArr = finGenlegCalcs.stream().map(FinGenlegCalc::getId).distinct().collect(Collectors.toList());
+					List<Long> ids = finGenlegCalcList.stream().map(FinGenlegCalc::getId).filter(id -> !idArr.contains(id)).distinct().collect(Collectors.toList());
+					if (!ids.isEmpty()) {
+						finGenlegCalcService.removeByIds(ids);
+					}
+					for (FinGenlegCalc finGenlegCalc : finGenlegCalcs) {
+						finGenlegCalc.setAmountYearDr(finGenlegCalc.getAmountYearDr().subtract(finGenlegCalc.getAmountDr()));
+						finGenlegCalc.setAmountYearCr(finGenlegCalc.getAmountYearCr().subtract(finGenlegCalc.getAmountCr()));
+						finGenlegCalc.setAmountDr(new BigDecimal("0.00"));
+						finGenlegCalc.setAmountCr(new BigDecimal("0.00"));
+						finGenlegCalc.setAmountBlc(finGenlegCalc.getAmountLastBlc());
+						finGenlegCalc.setAmountYearDrUsd(finGenlegCalc.getAmountYearDrUsd().subtract(finGenlegCalc.getAmountDrUsd()));
+						finGenlegCalc.setAmountYearCrUsd(finGenlegCalc.getAmountYearCrUsd().subtract(finGenlegCalc.getAmountCrUsd()));
+						finGenlegCalc.setAmountDrUsd(new BigDecimal("0.00"));
+						finGenlegCalc.setAmountCrUsd(new BigDecimal("0.00"));
+						finGenlegCalc.setAmountUsdBlc(finGenlegCalc.getAmountLastBlcUsd());
+					}
+					finGenlegCalcService.updateBatchById(finGenlegCalcs);
 				}
 			}
 			List<FinGenleg> finGenlegList = finGenlegService.list(new LambdaQueryWrapper<FinGenleg>()
 				.eq(FinGenleg::getTenantId, AuthUtil.getTenantId())
 				.eq(FinGenleg::getBranchId, deptUtils.getDeptPid())
-				.gt(FinGenleg::getAccyear, periodYear)
+				.ge(FinGenleg::getAccyear, periodYear)
 				.ge(FinGenleg::getAccmonth, periodMonth)
 			);
-			if (!finGenlegCalcList.isEmpty()) {
-				List<Long> ids = finGenlegList.stream().map(FinGenleg::getId).distinct().collect(Collectors.toList());
-				if (!ids.isEmpty()) {
-					finGenlegService.removeByIds(ids);
+			if (!finGenlegList.isEmpty()) {
+				List<FinGenleg> finGenlegs = finGenlegList.stream().filter(e -> e.getAccyear().equals(periodYear) &&
+					e.getAccmonth().equals(periodMonth)).collect(Collectors.toList());
+				if (!finGenlegs.isEmpty()) {
+					List<Long> idArr = finGenlegs.stream().map(FinGenleg::getId).distinct().collect(Collectors.toList());
+					List<Long> ids = finGenlegList.stream().map(FinGenleg::getId).filter(id -> !idArr.contains(id)).distinct().collect(Collectors.toList());
+					if (!ids.isEmpty()) {
+						finGenlegService.removeByIds(ids);
+					}
+					for (FinGenleg finGenleg : finGenlegs) {
+						finGenleg.setAmountYearDr(finGenleg.getAmountYearDr().subtract(finGenleg.getAmountDr()));
+						finGenleg.setAmountYearCr(finGenleg.getAmountYearCr().subtract(finGenleg.getAmountCr()));
+						finGenleg.setAmountDr(new BigDecimal("0.00"));
+						finGenleg.setAmountCr(new BigDecimal("0.00"));
+						finGenleg.setAmountBlc(finGenleg.getAmountLastBlc());
+						finGenleg.setAmountYearDrUsd(finGenleg.getAmountYearDrUsd().subtract(finGenleg.getAmountDrUsd()));
+						finGenleg.setAmountYearCrUsd(finGenleg.getAmountYearCrUsd().subtract(finGenleg.getAmountCrUsd()));
+						finGenleg.setAmountDrUsd(new BigDecimal("0.00"));
+						finGenleg.setAmountCrUsd(new BigDecimal("0.00"));
+						finGenleg.setAmountUsdBlc(finGenleg.getAmountLastBlcUsd());
+					}
+					finGenlegService.updateBatchById(finGenlegs);
 				}
 			}
 		}

+ 38 - 17
blade-service/blade-los/src/main/java/org/springblade/los/statisticAnalysis/service/impl/StatisticAnalysisServiceImpl.java

@@ -592,37 +592,58 @@ public class StatisticAnalysisServiceImpl implements IStatisticAnalysisService {
 		long sum;
 		long refurbishment;
 		long complete;
-		LambdaQueryWrapper<Bills> lambdaQueryWrapper = new LambdaQueryWrapper<>();
-		lambdaQueryWrapper.eq(Bills::getTenantId, AuthUtil.getTenantId())
+		LambdaQueryWrapper<Bills> lambdaQueryWrapperSE = new LambdaQueryWrapper<>();
+		lambdaQueryWrapperSE.eq(Bills::getTenantId, AuthUtil.getTenantId())
 			.eq(Bills::getIsDeleted, 0)
 			.ge(Bills::getBillDate, dateStart)
 			.le(Bills::getBillDate, dateEnd);
 		if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("财务")) {
-			lambdaQueryWrapper.apply("find_in_set(team_id,'" + AuthUtil.getPostId() + "')");
+			lambdaQueryWrapperSE.apply("find_in_set(team_id,'" + AuthUtil.getPostId() + "')");
 		}
 		if (!AuthUtil.getUserRole().contains("admin")) {
-			lambdaQueryWrapper.eq(Bills::getBranchId, deptUtils.getDeptPid());
+			lambdaQueryWrapperSE.eq(Bills::getBranchId, deptUtils.getDeptPid());
 		}
-		lambdaQueryWrapper.eq(Bills::getBusinessType, "SE");
-		List<Bills> HYCKList = billsMapper.selectList(lambdaQueryWrapper);
-		lambdaQueryWrapper.eq(Bills::getBusinessType, "SI");
-		List<Bills> HYJKList = billsMapper.selectList(lambdaQueryWrapper);
-
-		LambdaQueryWrapper<AeaBills> aeaBillsLambdaQueryWrapper = new LambdaQueryWrapper<>();
-		aeaBillsLambdaQueryWrapper.eq(AeaBills::getTenantId, AuthUtil.getTenantId())
+		lambdaQueryWrapperSE.eq(Bills::getBusinessType, "SE");
+		List<Bills> HYCKList = billsMapper.selectList(lambdaQueryWrapperSE);
+		LambdaQueryWrapper<Bills> lambdaQueryWrapperSI = new LambdaQueryWrapper<>();
+		lambdaQueryWrapperSI.eq(Bills::getTenantId, AuthUtil.getTenantId())
+			.eq(Bills::getIsDeleted, 0)
+			.ge(Bills::getBillDate, dateStart)
+			.le(Bills::getBillDate, dateEnd);
+		if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("财务")) {
+			lambdaQueryWrapperSI.apply("find_in_set(team_id,'" + AuthUtil.getPostId() + "')");
+		}
+		if (!AuthUtil.getUserRole().contains("admin")) {
+			lambdaQueryWrapperSI.eq(Bills::getBranchId, deptUtils.getDeptPid());
+		}
+		lambdaQueryWrapperSI.eq(Bills::getBusinessType, "SI");
+		List<Bills> HYJKList = billsMapper.selectList(lambdaQueryWrapperSI);
+		LambdaQueryWrapper<AeaBills> aeaBillsLambdaQueryWrapperAE = new LambdaQueryWrapper<>();
+		aeaBillsLambdaQueryWrapperAE.eq(AeaBills::getTenantId, AuthUtil.getTenantId())
 			.eq(AeaBills::getIsDeleted, 0)
 			.ge(AeaBills::getBillDate, dateStart)
 			.le(AeaBills::getBillDate, dateEnd);
 		if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("财务")) {
-			aeaBillsLambdaQueryWrapper.apply("find_in_set(team_id,'" + AuthUtil.getPostId() + "')");
+			aeaBillsLambdaQueryWrapperAE.apply("find_in_set(team_id,'" + AuthUtil.getPostId() + "')");
 		}
 		if (!AuthUtil.getUserRole().contains("admin")) {
-			aeaBillsLambdaQueryWrapper.eq(AeaBills::getBranchId, deptUtils.getDeptPid());
+			aeaBillsLambdaQueryWrapperAE.eq(AeaBills::getBranchId, deptUtils.getDeptPid());
 		}
-		aeaBillsLambdaQueryWrapper.eq(AeaBills::getBusinessType, "AE");
-		List<AeaBills> KYCKList = aeaBillsMapper.selectList(aeaBillsLambdaQueryWrapper);
-		aeaBillsLambdaQueryWrapper.eq(AeaBills::getBusinessType, "AI");
-		List<AeaBills> KYJKList = aeaBillsMapper.selectList(aeaBillsLambdaQueryWrapper);
+		aeaBillsLambdaQueryWrapperAE.eq(AeaBills::getBusinessType, "AE");
+		List<AeaBills> KYCKList = aeaBillsMapper.selectList(aeaBillsLambdaQueryWrapperAE);
+		LambdaQueryWrapper<AeaBills> aeaBillsLambdaQueryWrapperAI = new LambdaQueryWrapper<>();
+		aeaBillsLambdaQueryWrapperAI.eq(AeaBills::getTenantId, AuthUtil.getTenantId())
+			.eq(AeaBills::getIsDeleted, 0)
+			.ge(AeaBills::getBillDate, dateStart)
+			.le(AeaBills::getBillDate, dateEnd);
+		if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("财务")) {
+			aeaBillsLambdaQueryWrapperAI.apply("find_in_set(team_id,'" + AuthUtil.getPostId() + "')");
+		}
+		if (!AuthUtil.getUserRole().contains("admin")) {
+			aeaBillsLambdaQueryWrapperAI.eq(AeaBills::getBranchId, deptUtils.getDeptPid());
+		}
+		aeaBillsLambdaQueryWrapperAI.eq(AeaBills::getBusinessType, "AI");
+		List<AeaBills> KYJKList = aeaBillsMapper.selectList(aeaBillsLambdaQueryWrapperAI);
 		Map<String, Object> map = new HashMap<>();
 		sum = HYCKList.size() + HYJKList.size() + KYCKList.size() + KYJKList.size();
 		refurbishment = HYCKList.stream().filter(e -> e.getBillStatus() == 1).count() +

+ 9 - 2
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/export/ExportOrderController.java

@@ -135,7 +135,6 @@ public class ExportOrderController extends BladeController {
 		lambdaQueryWrapper.le(Func.isNotEmpty(order.getDeliveryEndDate()), Order::getRequiredDeliveryDate, order.getDeliveryEndDate());//要求发货日期结束
 		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getArrivalDateStart()), Order::getRequiredArrivalDate, order.getArrivalDateStart());//要求到货日期开始
 		lambdaQueryWrapper.le(Func.isNotEmpty(order.getArrivalDateEnd()), Order::getRequiredArrivalDate, order.getArrivalDateEnd());//要求到货日期结束
-		lambdaQueryWrapper.like(Func.isNotEmpty(order.getOrderStatus()), Order::getOrderStatus, order.getOrderStatus());//单据状态
 		lambdaQueryWrapper.like(Func.isNotEmpty(order.getSysNo()), Order::getSysNo, order.getSysNo());//系统编号
 		lambdaQueryWrapper.eq(Func.isNotEmpty(order.getCreateUser()), Order::getCreateUser, order.getCreateUser());//制单人
 		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getCreateTimeStart()), Order::getCreateTime, order.getCreateTimeStart());//制单日期开始
@@ -149,6 +148,14 @@ public class ExportOrderController extends BladeController {
 		lambdaQueryWrapper.like(Func.isNotEmpty(order.getPlannedDeliveryStart()), Order::getPlannedDeliveryDate, order.getPlannedDeliveryStart());//计划交货开始
 		lambdaQueryWrapper.like(Func.isNotEmpty(order.getPlannedDeliveryEnd()), Order::getPlannedDeliveryDate, order.getPlannedDeliveryEnd());//计划交货结束
 		lambdaQueryWrapper.like(Func.isNotEmpty(order.getOrderRemark()), Order::getOrderRemark, order.getOrderRemark());//备注
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getOrderStatus()), Order::getOrderStatus, order.getOrderStatus());
+		if ("1".equals(order.getTabType())) {
+			lambdaQueryWrapper.eq(Order::getDocumentaryStatus, "寄单");
+		} else if ("2".equals(order.getTabType())) {
+			lambdaQueryWrapper.apply("documentary_status != '寄单' and order_status != '已取消'");
+		} else if ("3".equals(order.getTabType())) {
+			lambdaQueryWrapper.eq(Order::getOrderStatus, "已取消");
+		}
 		lambdaQueryWrapper.orderByDesc(Order::getId);
 		IPage<Order> page = orderService.page(Condition.getPage(query), lambdaQueryWrapper);
 		if (CollectionUtils.isNotEmpty(page.getRecords())) {
@@ -1770,7 +1777,7 @@ public class ExportOrderController extends BladeController {
 				item.setSrcItemId(null);
 				item.setSrcId(null);
 				item.setSrcOrderNo(null);
-				item.setPurchaseAmount(new BigDecimal("0.00"));
+//				item.setPurchaseAmount(new BigDecimal("0.00"));
 				item.setPurchaseQuantity(new BigDecimal("0.00"));
 				item.setFudaPurchaseStatus(null);
 				item.setBillNo(null);

+ 3 - 3
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/service/impl/OrderServiceImpl.java

@@ -389,7 +389,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 								if (!"1".equals(items.getDeduplication())){
 									if (orderListDS.contains(items.getPid())){
 										salesAmount = salesAmount.add(items.getSubTotalMoney());
-										costprie = salesAmount.add(items.getCostprie());
+										costprie = costprie.add(items.getCostprie());
 										if ((ObjectUtils.isNotNull(items.getReturnsNumber()) &&
 											new BigDecimal("0").compareTo(items.getReturnsNumber()) != 0)){
 											returnAmount = returnAmount.add(items.getReturnsAmount());
@@ -545,7 +545,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 								if (!"1".equals(items.getDeduplication())){
 									if (orderListDS.contains(items.getPid())){
 										salesAmount = salesAmount.add(items.getSubTotalMoney());
-										costprie = salesAmount.add(items.getCostprie());
+										costprie = costprie.add(items.getCostprie());
 										if ((ObjectUtils.isNotNull(items.getReturnsNumber()) &&
 											new BigDecimal("0").compareTo(items.getReturnsNumber()) != 0)){
 											returnAmount = returnAmount.add(items.getReturnsAmount());
@@ -2651,7 +2651,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 								if (!"1".equals(items.getDeduplication())){
 									if (orderListDS.contains(items.getPid())){
 										salesAmount = salesAmount.add(items.getSubTotalMoney());
-										costprie = salesAmount.add(items.getCostprie());
+										costprie = costprie.add(items.getCostprie());
 										if ((ObjectUtils.isNotNull(items.getReturnsNumber()) &&
 											new BigDecimal("0").compareTo(items.getReturnsNumber()) != 0)){
 											returnAmount = returnAmount.add(items.getReturnsAmount());

+ 24 - 0
blade-service/trade-purchase/src/main/java/com/trade/purchase/enquiry/ShippingEnquiry.java

@@ -16,7 +16,9 @@ import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import lombok.AllArgsConstructor;
 import org.springblade.client.entity.CorpsDesc;
+import org.springblade.client.entity.Message;
 import org.springblade.client.feign.ICorpsDescClient;
+import org.springblade.client.feign.IMessageClient;
 import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
@@ -30,6 +32,7 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
 import java.math.BigDecimal;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -54,6 +57,8 @@ public class ShippingEnquiry extends BladeController {
 
 	private final IOrderFreightService orderFreightService;
 
+	private final IMessageClient messageClient;//消息
+
 	private final String ERROR_MSG = "缺少查询信息";
 	private final ICorpsDescClient corpsDescClient;//获取客户信息
 	private final IUserClient userClient;//获取用户信息
@@ -186,6 +191,25 @@ public class ShippingEnquiry extends BladeController {
 			return R.fail(500,"已提交船务询价,请勿重复提交");
 		}
 		order.setIfShipping("已提交");
+		//循环发送消息
+		Message sendMessage = new Message();
+		sendMessage.setParameter(String.valueOf(orderMessage.getId()));
+		sendMessage.setUserName(AuthUtil.getUserName());
+		sendMessage.setUserId(AuthUtil.getUserId());
+		sendMessage.setToUserId(orderMessage.getBuyerId());
+		sendMessage.setToUserName(orderMessage.getBuyerName());
+		sendMessage.setMessageType(1);
+		sendMessage.setTenantId(AuthUtil.getTenantId());
+		sendMessage.setCreateUser(AuthUtil.getUserId());
+		sendMessage.setCreateTime(new Date());
+		sendMessage.setUrl("/exportTrade/shippingInquiry/index");
+		sendMessage.setPageLabel(order.getPageLabel());
+		sendMessage.setPageStatus(order.getPageStatus());
+		sendMessage.setMessageBody("您有船务询价" + orderMessage.getOrderNo() + "待处理,请查看");
+		R save = messageClient.save(sendMessage);
+		if (!save.isSuccess()) {
+			throw new SecurityException("发送消息失败");
+		}
 		return R.status(orderService.saveOrUpdate(order));
 	}
 

+ 19 - 1
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/impl/OrderServiceImpl.java

@@ -636,7 +636,25 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			submitDto.setOrderItemsList(orderItemsList.stream().map(orderItemMapstructMapper::toVo).collect(Collectors.toList()));
 		}
 
-
+		//循环发送消息
+		Message sendMessage = new Message();
+		sendMessage.setParameter(String.valueOf(submitDto.getId()));
+		sendMessage.setUserName(AuthUtil.getUserName());
+		sendMessage.setUserId(AuthUtil.getUserId());
+		sendMessage.setToUserId(submitDto.getCreateUser());
+		sendMessage.setToUserName(submitDto.getCreateUserName());
+		sendMessage.setMessageType(1);
+		sendMessage.setTenantId(AuthUtil.getTenantId());
+		sendMessage.setCreateUser(AuthUtil.getUserId());
+		sendMessage.setCreateTime(new Date());
+		sendMessage.setUrl("/exportTrade/customerInquiry/index");
+		sendMessage.setPageLabel(order.getPageLabel());
+		sendMessage.setPageStatus(order.getPageStatus());
+		sendMessage.setMessageBody("单号:" + submitDto.getOrderNo() + "船务询价已完成,请查看");
+		R save = messageClient.save(sendMessage);
+		if (!save.isSuccess()) {
+			throw new SecurityException("发送消息失败");
+		}
 		return R.data(submitDto);
 	}