Browse Source

2023年1月16日18:01:56

纪新园 3 years ago
parent
commit
bf108a4ae0

+ 7 - 0
blade-service-api/blade-box-tube-api/src/main/java/org/springblade/box/tube/entity/TradingBox.java

@@ -23,6 +23,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.util.Date;
@@ -270,6 +271,12 @@ public class TradingBox implements Serializable {
 	@TableField(exist = false)
 	private String source;
 
+	/**
+	 * 订单合计金额
+	 */
+	@ApiModelProperty(value = "订单合计金额")
+	private BigDecimal totalAmount;
+
 
 
 }

+ 6 - 0
blade-service-api/trade-finance-api/src/main/java/org/springblade/finance/vojo/Acc.java

@@ -536,4 +536,10 @@ public class Acc implements Serializable {
 	 */
 	@TableField(exist = false)
 	private String chargePay;
+
+	/**
+	 * 是否统计
+	 */
+	@TableField(exist = false)
+	private String whetherStatistics;
 }

+ 23 - 14
blade-service/blade-box-tube/src/main/java/org/springblade/box/tube/service/impl/TradingBoxServiceImpl.java

@@ -192,12 +192,15 @@ public class TradingBoxServiceImpl extends ServiceImpl<TradingBoxMapper, Trading
 	@Transactional(rollbackFor = Exception.class)
 	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
 	public TradingBox add(TradingBox tradingBox) {
-		LambdaQueryWrapper<TradingBox> lambdaQueryWrapper = new LambdaQueryWrapper<>();
-		lambdaQueryWrapper.eq(TradingBox::getIsDeleted, 0)
-			.eq(TradingBox::getTenantId, AuthUtil.getTenantId())
-			.eq(TradingBox::getType, tradingBox.getType())
-			.eq(TradingBox::getContractNo, tradingBox.getContractNo());
-		List<TradingBox> tradingBoxList = baseMapper.selectList(lambdaQueryWrapper);
+		List<TradingBox> tradingBoxList = new ArrayList<>();
+		if (ObjectUtils.isNotNull(tradingBox.getContractNo())){
+			LambdaQueryWrapper<TradingBox> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+			lambdaQueryWrapper.eq(TradingBox::getIsDeleted, 0)
+				.eq(TradingBox::getTenantId, AuthUtil.getTenantId())
+				.eq(TradingBox::getType, tradingBox.getType())
+				.eq(TradingBox::getContractNo, tradingBox.getContractNo());
+			tradingBoxList = baseMapper.selectList(lambdaQueryWrapper);
+		}
 		//判断id是否为空
 		if (tradingBox.getId() == null) {
 			if (tradingBoxList.size() > 0) {
@@ -229,6 +232,7 @@ public class TradingBoxServiceImpl extends ServiceImpl<TradingBoxMapper, Trading
 		//明细数据
 		List<TradingBoxItem> tradingBoxItemList = tradingBox.getTradingBoxItemsList();
 		if (ObjectUtils.isNotNull(tradingBoxItemList) && tradingBoxItemList.size() > 0) {
+			tradingBox.setTotalAmount(tradingBoxItemList.stream().map(TradingBoxItem::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
 			//箱号拼接字符串
 			List<String> codes = tradingBoxItemList.stream().map(TradingBoxItem::getCode).distinct().collect(Collectors.toList());
 			tradingBox.setCode(String.join(",", codes));
@@ -429,12 +433,15 @@ public class TradingBoxServiceImpl extends ServiceImpl<TradingBoxMapper, Trading
 
 	@Override
 	public TradingBox addRent(TradingBox tradingBox) {
-		LambdaQueryWrapper<TradingBox> lambdaQueryWrapper = new LambdaQueryWrapper<>();
-		lambdaQueryWrapper.eq(TradingBox::getIsDeleted, 0)
-			.eq(TradingBox::getTenantId, AuthUtil.getTenantId())
-			.eq(TradingBox::getType, tradingBox.getType())
-			.eq(TradingBox::getContractNo, tradingBox.getContractNo());
-		List<TradingBox> tradingBoxList = baseMapper.selectList(lambdaQueryWrapper);
+		List<TradingBox> tradingBoxList = new ArrayList<>();
+		if (ObjectUtils.isNotNull(tradingBox.getContractNo())) {
+			LambdaQueryWrapper<TradingBox> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+			lambdaQueryWrapper.eq(TradingBox::getIsDeleted, 0)
+				.eq(TradingBox::getTenantId, AuthUtil.getTenantId())
+				.eq(TradingBox::getType, tradingBox.getType())
+				.eq(TradingBox::getContractNo, tradingBox.getContractNo());
+			tradingBoxList = baseMapper.selectList(lambdaQueryWrapper);
+		}
 		//判断id是否为空
 		if (tradingBox.getId() == null) {
 			if (tradingBoxList.size() > 0) {
@@ -951,6 +958,8 @@ public class TradingBoxServiceImpl extends ServiceImpl<TradingBoxMapper, Trading
 		List<TradingBoxFees> tradingBoxFeesList = new ArrayList<>();
 		for (TradingBoxItem tradingBoxItem : tradingBoxItemList) {
 			ArchivesTrajectory archivesTrajectory = new ArchivesTrajectory();
+			archivesTrajectory.setAddress(tradingBox.getAddress());
+			archivesTrajectory.setNewDate(tradingBox.getRentDate());
 			tradingBoxItem.setUpdateUser(AuthUtil.getUserId());
 			tradingBoxItem.setUpdateTime(new Date());
 			tradingBoxItem.setUpdateUserName(AuthUtil.getUserName());
@@ -1266,7 +1275,7 @@ public class TradingBoxServiceImpl extends ServiceImpl<TradingBoxMapper, Trading
 			if (1 == tradingBoxFees.getFeesType()) {
 				items.setSrcFeesType("收费");
 			} else {
-				items.setSrcFeesType("付费");
+				items.setSrcFeesType("申请");
 			}
 			items.setSrcBoxBillType(tradingBoxFees.getBillType());
 			items.setItemType(tradingBox.getType());
@@ -1725,7 +1734,7 @@ public class TradingBoxServiceImpl extends ServiceImpl<TradingBoxMapper, Trading
 				if (1 == tradingBoxFees.getFeesType()) {
 					items.setSrcFeesType("收费");
 				} else {
-					items.setSrcFeesType("付费");
+					items.setSrcFeesType("申请");
 				}
 				items.setSrcBoxBillType(tradingBoxFees.getBillType());
 				items.setItemType(itemType);

+ 8 - 8
blade-service/blade-box-tube/src/main/java/org/springblade/box/tube/service/impl/TransferServiceImpl.java

@@ -148,8 +148,8 @@ public class TransferServiceImpl implements ITransferService {
 				if (tradingBoxItem.getId() == null) {
 					tradingBoxItem.setCreateUser(AuthUtil.getUserId());
 					tradingBoxItem.setCreateTime(new Date());
-					tradingBoxItem.setRentStartDate(new Date());
-					tradingBoxItem.setLeaseCommencementDate(new Date());
+					tradingBoxItem.setRentStartDate(tradingBox.getRentDate());
+					tradingBoxItem.setLeaseCommencementDate(tradingBox.getRentDate());
 					tradingBoxItem.setRentEndDate(null);
 					tradingBoxItem.setAmount(null);
 					tradingBoxItem.setPrice(null);
@@ -249,7 +249,7 @@ public class TransferServiceImpl implements ITransferService {
 
 		//账单数据
 		ApplyDTO applyDTO = new ApplyDTO();
-		applyDTO.setBillType("付费");
+		applyDTO.setBillType("申请");
 		applyDTO.setTradeType("BOX");
 		applyDTO.setBelongCompany(tradingBox.getPurchaseCompanyName());
 		//账单明细
@@ -273,7 +273,7 @@ public class TransferServiceImpl implements ITransferService {
 				tradingBoxFees.setItemId(fees.getData().getId());
 			}
 			if ("DCF".equals(tradingBox.getType())) {
-				tradingBoxFees.setFeesType(1);
+				tradingBoxFees.setFeesType(2);
 				tradingBoxFees.setBillType("堆存费");
 			}
 			tradingBoxFees.setPid(tradingBox.getId());
@@ -301,7 +301,7 @@ public class TransferServiceImpl implements ITransferService {
 			/*if (1 == tradingBoxFees.getFeesType()) {
 				items.setSrcFeesType("收费");
 			} else {*/
-				items.setSrcFeesType("付费");
+				items.setSrcFeesType("申请");
 //			}
 			items.setSrcBoxBillType(tradingBoxFees.getBillType());
 			items.setItemType(tradingBox.getType());
@@ -395,7 +395,7 @@ public class TransferServiceImpl implements ITransferService {
 				Acc acc = new Acc();
 				acc.setSrcParentId(tradingBox.getId());
 				acc.setSrcFeesId(tradingBoxFeesList.get(0).getId());
-				acc.setBillType("付费");
+				acc.setBillType("申请");
 				acc.setTradeType("BOX");
 				acc.setSrcType(5);
 				R<List<Acc>> r = financeClient.getAccListByCondition(acc);
@@ -417,10 +417,10 @@ public class TransferServiceImpl implements ITransferService {
 			tradingBoxItem.setUpdateUserName(AuthUtil.getUserName());
 			tradingBoxItem.setCount(tradingBoxItem.getCount()-1);
 			if (tradingBoxFeesList.size() == 1) {
-				tradingBoxItem.setRentEndDate(tradingBoxItem.getLeaseCommencementDate());
+				tradingBoxItem.setRentEndDate(null);
 				tradingBoxItem.setRentStartDate(tradingBoxItem.getLeaseCommencementDate());
 			} else {
-				tradingBoxItem.setRentEndDate(tradingBoxFeesList.get(0).getRentEndDate());
+				tradingBoxItem.setRentEndDate(tradingBoxFeesList.get(0).getRentStartDate());
 				tradingBoxItem.setRentStartDate(tradingBoxFeesList.get(0).getRentStartDate());
 			}
 			tradingBoxItemMapper.updateById(tradingBoxItem);

+ 10 - 7
blade-service/blade-box-tube/src/main/java/org/springblade/box/tube/service/impl/TransportServiceImpl.java

@@ -167,12 +167,15 @@ public class TransportServiceImpl extends ServiceImpl<TransportMapper, Transport
 	@Transactional(rollbackFor = Exception.class)
 	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
 	public Transport add(Transport transport) {
-		LambdaQueryWrapper<Transport> lambdaQueryWrapper = new LambdaQueryWrapper<>();
-		lambdaQueryWrapper.eq(Transport::getIsDeleted, 0)
-			.eq(Transport::getTenantId, AuthUtil.getTenantId())
-			.eq(Transport::getBillType, transport.getBillType())
-			.eq(Transport::getBillNo, transport.getBillNo());
-		List<Transport> transportList = baseMapper.selectList(lambdaQueryWrapper);
+		List<Transport> transportList = new ArrayList<>();
+		if (ObjectUtils.isNotNull(transport.getBillNo())) {
+			LambdaQueryWrapper<Transport> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+			lambdaQueryWrapper.eq(Transport::getIsDeleted, 0)
+				.eq(Transport::getTenantId, AuthUtil.getTenantId())
+				.eq(Transport::getBillType, transport.getBillType())
+				.eq(Transport::getBillNo, transport.getBillNo());
+			transportList = baseMapper.selectList(lambdaQueryWrapper);
+		}
 		if (transport.getId() == null) {
 			if (transportList.size() > 0) {
 				throw new Error("提单号已存在,请勿重复添加");
@@ -349,7 +352,7 @@ public class TransportServiceImpl extends ServiceImpl<TransportMapper, Transport
 			Archives archives = new Archives();
 
 			if ("2".equals(status) && "空箱入场".equals(type)) {
-				transportItem.setStatus("type");
+				transportItem.setStatus(type);
 				archives.setStatus("待使用");
 				//判断空箱入场时间是否大于合同时间  true 计算超期金额  false 不计算
 				if (transport.getExpiryDate().compareTo(newDate) < 0) {

+ 1 - 1
blade-service/blade-client/src/main/java/org/springblade/client/serial/service/impl/TableMessageServiceImpl.java

@@ -76,7 +76,7 @@ public class TableMessageServiceImpl extends ServiceImpl<TableMessageMapper, Tab
 				BladeFile bladeFile = minioTemplate.putFile(bucketName, fileName, multipartFile.getInputStream());
 				if (StringUtils.isNotBlank(bladeFile.getLink())) {
 					String link = bladeFile.getLink();
-					String replace = link.replace("http://121.37.83.47:9000/", "https://trade.tubaosoft.com/file/");
+					String replace = link.replace("http://121.37.83.47:9000/", "http://trade.tubaosoft.com/file/");
 					bladeFile.setLink(replace);
 					tableMessage.setFileUrl(bladeFile.getLink());
 				} else {

+ 8 - 2
blade-service/trade-finance/src/main/java/org/springblade/finance/controller/AccController.java

@@ -22,6 +22,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -180,7 +181,12 @@ public class AccController extends BladeController {
 		}
 		accLambdaQueryWrapper.eq(Acc::getStatus, 0);
 		accLambdaQueryWrapper.orderByDesc(Acc::getCreateTime);
-		IPage<Acc> pages = accService.page(Condition.getPage(query), accLambdaQueryWrapper);
+		IPage<Acc> pages = new Page<>();
+		if ("1".equals(acc.getWhetherStatistics())){
+			 pages = accService.whetherStatistics(Condition.getPage(query), acc);
+		}else{
+			 pages = accService.page(Condition.getPage(query), accLambdaQueryWrapper);
+		}
 		String corpIds = "";
 		String fleetName = "";
 		for (Acc accOne : pages.getRecords()) {
@@ -195,7 +201,7 @@ public class AccController extends BladeController {
 
 		List<CorpsDesc> fleetNameList = corpsDescClient.selectByCorpIds(fleetName);
 		for (Acc acc_ : pages.getRecords()) {
-			if (acc_.getTradeType().equals("ZDLU")) {
+			if (ObjectUtils.isNotNull(acc_.getTradeType()) && acc_.getTradeType().equals("ZDLU")) {
 				if (acc_.getCurrency().equals("1")) {
 					acc_.setCurrency("CNY");
 				} else if (acc_.getCurrency().equals("2")) {

+ 2 - 0
blade-service/trade-finance/src/main/java/org/springblade/finance/mapper/AccMapper.java

@@ -92,4 +92,6 @@ public interface AccMapper extends BaseMapper<Acc> {
 	List<Acc> SelPayItem(IPage<Acc> page, @Param("acc") Acc acc);
 
 	Map<String, Object> SumBillBalance(@Param("acc") Acc acc);
+
+    List<Acc> whetherStatistics(IPage<Acc> page, @Param("acc")Acc acc);
 }

+ 268 - 151
blade-service/trade-finance/src/main/java/org/springblade/finance/mapper/AccMapper.xml

@@ -9,8 +9,8 @@
         <result column="Companyid" property="companyid"/>
         <result column="parent_Companyid" property="parentCompanyid"/>
         <result column="AccTypeID" property="acctypeid"/>
-        <result column="AccDate" property="accdate"/>
-        <result column="AccSysNo" property="accsysno"/>
+        <result column="AccDate" property="accDate"/>
+        <result column="AccSysNo" property="accSysNo"/>
         <result column="Bill_type" property="billType"/>
         <result column="TableName" property="tablename"/>
         <result column="Src_SysNo" property="srcSysno"/>
@@ -20,7 +20,7 @@
         <result column="Src_refno" property="srcRefno"/>
         <result column="Src_Bill_NO" property="srcBillNo"/>
         <result column="DC" property="dc"/>
-        <result column="Corpid" property="corpid"/>
+        <result column="Corpid" property="corpId"/>
         <result column="quantity" property="quantity"/>
         <result column="Unit" property="unit"/>
         <result column="Price" property="price"/>
@@ -47,69 +47,75 @@
 
 
     <update id="updateByOrderId" parameterType="Long">
-        UPDATE finance_acc set status = 0  WHERE Src_parent_id = #{orderId}
+        UPDATE finance_acc
+        set status = 0
+        WHERE Src_parent_id = #{orderId}
     </update>
     <delete id="deleteBySrcFeesId">
-        delete from finance_acc where Src_fees_id = #{feesId}
+        delete
+        from finance_acc
+        where Src_fees_id = #{feesId}
     </delete>
     <delete id="deleteBySrcId">
-        delete from finance_acc where Src_id = #{srcId}
+        delete
+        from finance_acc
+        where Src_id = #{srcId}
     </delete>
 
     <select id="selBillBalance" resultType="org.springblade.finance.vojo.Acc">
         SELECT
-            FC.Corpid AS corpId,
-            BCD.cname AS corpName,
-            IFNULL( BC.amount, 0 ) AS amount,
-            IFNULL( FS.settlementAmount, 0 ) AS settlementAmount,
-            IFNULL( IFNULL( BC.amount, 0 ) - IFNULL( FS.settlementAmount, 0 ), 0 ) AS balance,
-            IFNULL( BO.in_overpayment, 0 ) AS inOverpayment
+        FC.Corpid AS corpId,
+        BCD.cname AS corpName,
+        IFNULL( BC.amount, 0 ) AS amount,
+        IFNULL( FS.settlementAmount, 0 ) AS settlementAmount,
+        IFNULL( IFNULL( BC.amount, 0 ) - IFNULL( FS.settlementAmount, 0 ), 0 ) AS balance,
+        IFNULL( BO.in_overpayment, 0 ) AS inOverpayment
         FROM finance_acc FC
         LEFT JOIN basic_corps_desc BCD ON BCD.id = FC.Corpid
         LEFT JOIN business_overpayment BO ON BO.corp_id = FC.Corpid
         LEFT JOIN (
-            SELECT
-                FC.Corpid AS corpId,
-                SUM( FC.Amount ) AS amount
-            FROM finance_acc FC
-            <where>
-                FC.tenant_id = #{acc.tenantId}
-                and FC.is_deleted = 0
-                and FC.bill_type = #{acc.billType}
-                <if test='acc.createDateList != null and acc.createDateList[0] != null and acc.createDateList[0]!= ""'>
-                    and FC.create_time &gt;= #{acc.createDateList[0]}
-                </if>
-                <if test='acc.createDateList != null and acc.createDateList[1] != null and acc.createDateList[1]!= ""'>
-                    and FC.create_time &lt;= #{acc.createDateList[1]}
-                </if>
-            </where>
-            GROUP BY
-            FC.Corpid
+        SELECT
+        FC.Corpid AS corpId,
+        SUM( FC.Amount ) AS amount
+        FROM finance_acc FC
+        <where>
+            FC.tenant_id = #{acc.tenantId}
+            and FC.is_deleted = 0
+            and FC.bill_type = #{acc.billType}
+            <if test='acc.createDateList != null and acc.createDateList[0] != null and acc.createDateList[0]!= ""'>
+                and FC.create_time &gt;= #{acc.createDateList[0]}
+            </if>
+            <if test='acc.createDateList != null and acc.createDateList[1] != null and acc.createDateList[1]!= ""'>
+                and FC.create_time &lt;= #{acc.createDateList[1]}
+            </if>
+        </where>
+        GROUP BY
+        FC.Corpid
         ) BC ON BC.corpId = FC.Corpid
         LEFT JOIN (
-            SELECT
-                FS.Corp_id AS corpId,
-                sum( FS.Amount ) AS settlementAmount
-            FROM  finance_settlement FS
-            <where>
-                FS.tenant_id = #{acc.tenantId}
-                AND FS.is_deleted = 0
-                AND FS.finance_status = '结算完成'
-                <if test='acc.billType != null and acc.billType != "" and acc.billType == "申请"'>
-                    AND FS.bill_type = '付费'
-                </if>
-                <if test='acc.billType != null and acc.billType != "" and acc.billType == "收费"'>
-                    AND FS.bill_type = #{acc.billType}
-                </if>
-                <if test='acc.createDateList != null and acc.createDateList[0] != null and acc.createDateList[0]!= ""'>
-                    and FS.completion_time &gt;= #{acc.createDateList[0]}
-                </if>
-                <if test='acc.createDateList != null and acc.createDateList[1] != null and acc.createDateList[1]!= ""'>
-                    and FS.completion_time &lt;= #{acc.createDateList[1]}
-                </if>
-            </where>
-            GROUP BY
-            FS.Corp_id
+        SELECT
+        FS.Corp_id AS corpId,
+        sum( FS.Amount ) AS settlementAmount
+        FROM finance_settlement FS
+        <where>
+            FS.tenant_id = #{acc.tenantId}
+            AND FS.is_deleted = 0
+            AND FS.finance_status = '结算完成'
+            <if test='acc.billType != null and acc.billType != "" and acc.billType == "申请"'>
+                AND FS.bill_type = '付费'
+            </if>
+            <if test='acc.billType != null and acc.billType != "" and acc.billType == "收费"'>
+                AND FS.bill_type = #{acc.billType}
+            </if>
+            <if test='acc.createDateList != null and acc.createDateList[0] != null and acc.createDateList[0]!= ""'>
+                and FS.completion_time &gt;= #{acc.createDateList[0]}
+            </if>
+            <if test='acc.createDateList != null and acc.createDateList[1] != null and acc.createDateList[1]!= ""'>
+                and FS.completion_time &lt;= #{acc.createDateList[1]}
+            </if>
+        </where>
+        GROUP BY
+        FS.Corp_id
         ) FS ON FS.corpId = FC.Corpid
         <where>
             FC.tenant_id = #{acc.tenantId}
@@ -125,9 +131,9 @@
 
     <select id="SelChargeItem" resultType="org.springblade.finance.vojo.Acc">
         SELECT
-            FA.AccSysNo AS accSysNo,
-            FA.quantity AS quantity,
-            FA.Amount AS amount
+        FA.AccSysNo AS accSysNo,
+        FA.quantity AS quantity,
+        FA.Amount AS amount
         FROM finance_acc FA
         <where>
             FA.tenant_id = #{acc.tenantId}
@@ -153,15 +159,15 @@
 
     <select id="SelPayItem" resultType="org.springblade.finance.vojo.Acc">
         SELECT
-            FI.src_orderNo AS accSysNo,
-            FI.quantity AS quantity,
-            FI.this_amount AS amount,
-            FS.subject_number AS subjectNumber,
-            FS.ACCOUNT_bank AS accountBank,
-            FS.ACCOUNT_NAME AS accountName,
-            FS.ACCOUNT_no AS accountNo,
-            FS.over_payment AS overPayment,
-            FS.case_over_payment AS caseOverPayment
+        FI.src_orderNo AS accSysNo,
+        FI.quantity AS quantity,
+        FI.this_amount AS amount,
+        FS.subject_number AS subjectNumber,
+        FS.ACCOUNT_bank AS accountBank,
+        FS.ACCOUNT_NAME AS accountName,
+        FS.ACCOUNT_no AS accountNo,
+        FS.over_payment AS overPayment,
+        FS.case_over_payment AS caseOverPayment
         FROM finance_settlement FS
         LEFT JOIN finance_items FI ON FI.pid = FS.id
         <where>
@@ -195,10 +201,12 @@
 
     <select id="SumBillBalance" resultType="java.util.Map">
         SELECT
-            IFNULL( ROUND( SUM(CASE WHEN bill_type = '收费' THEN Amount - Settlement_Amount ELSE 0 END) / 10000, 2), 0) AS ysAmount,
-            IFNULL( ROUND( SUM(CASE WHEN bill_type = '申请' THEN Amount - Settlement_Amount ELSE 0 END) / 10000, 2), 0) AS yfAmount
+        IFNULL( ROUND( SUM(CASE WHEN bill_type = '收费' THEN Amount - Settlement_Amount ELSE 0 END) / 10000, 2), 0) AS
+        ysAmount,
+        IFNULL( ROUND( SUM(CASE WHEN bill_type = '申请' THEN Amount - Settlement_Amount ELSE 0 END) / 10000, 2), 0) AS
+        yfAmount
         FROM
-            finance_acc
+        finance_acc
         <where>
             is_deleted = 0
             and tenant_id = #{acc.tenantId}
@@ -206,20 +214,22 @@
     </select>
 
     <select id="selectAccPage" resultMap="accResultMap">
-        select * from finance_acc where is_deleted = 0
+        select *
+        from finance_acc
+        where is_deleted = 0
     </select>
     <select id="salaryMessage" resultType="org.springblade.finance.vo.CostMessage">
         SELECT
-	    Corpid AS corpId,
-	    create_time AS accDate,
-	    IFNULL( SUM( Amount ), 0 ) AS amount,
-	    IFNULL( SUM( Settlement_Amount ), 0 ) AS settlementAmount,
-	    IFNULL( SUM( Amount ), 0 )- IFNULL( SUM( Settlement_Amount ), 0 ) AS outstandingAmount,
-	    IFNULL( SUM( Invoice_Amount ), 0 ) AS invoiceAmount
-    FROM
-	    finance_acc
-    WHERE
-	    is_deleted = 0
+        Corpid AS corpId,
+        create_time AS accDate,
+        IFNULL( SUM( Amount ), 0 ) AS amount,
+        IFNULL( SUM( Settlement_Amount ), 0 ) AS settlementAmount,
+        IFNULL( SUM( Amount ), 0 )- IFNULL( SUM( Settlement_Amount ), 0 ) AS outstandingAmount,
+        IFNULL( SUM( Invoice_Amount ), 0 ) AS invoiceAmount
+        FROM
+        finance_acc
+        WHERE
+        is_deleted = 0
         AND ( Corpid IS NOT NULL OR Corpid = '' )
         <if test="acc.tenantId!=null and acc.tenantId != ''">
             AND tenant_id = #{acc.tenantId}
@@ -245,28 +255,28 @@
         <if test="acc.corpId!=null">
             AND Corpid = #{acc.corpId}
         </if>
-    GROUP BY
-	    Corpid
+        GROUP BY
+        Corpid
     </select>
     <select id="salaryProfit" resultType="org.springblade.finance.vo.CostMessage">
         SELECT
-	c.corpId AS corpId,
-	d.accDate AS accDate,
-	IFNULL( d.amount, 0 ) AS amount,
-	IFNULL( c.amount, 0 ) AS handleAmount,
-	IFNULL( d.amount, 0 ) - IFNULL( c.amount, 0 ) AS profitAmount
-FROM
-	(
-	SELECT
-		Corpid AS corpId,
-		create_time AS accDate,
-		IFNULL( SUM( Amount ), 0 ) AS amount
-	FROM
-		finance_acc
-	WHERE
-		is_deleted = 0
-		AND DC = 'c'
-		AND ( Corpid IS NOT NULL OR Corpid = '' )
+        c.corpId AS corpId,
+        d.accDate AS accDate,
+        IFNULL( d.amount, 0 ) AS amount,
+        IFNULL( c.amount, 0 ) AS handleAmount,
+        IFNULL( d.amount, 0 ) - IFNULL( c.amount, 0 ) AS profitAmount
+        FROM
+        (
+        SELECT
+        Corpid AS corpId,
+        create_time AS accDate,
+        IFNULL( SUM( Amount ), 0 ) AS amount
+        FROM
+        finance_acc
+        WHERE
+        is_deleted = 0
+        AND DC = 'c'
+        AND ( Corpid IS NOT NULL OR Corpid = '' )
         <if test="acc.tenantId!=null and acc.tenantId != ''">
             AND tenant_id = #{acc.tenantId}
         </if>
@@ -285,20 +295,20 @@ FROM
         <if test="acc.corpId!=null">
             AND Corpid = #{acc.corpId}
         </if>
-	GROUP BY
-		Corpid
-	) c
-	LEFT JOIN (
-	SELECT
-		Corpid AS corpId,
-		create_time AS accDate,
-		IFNULL( SUM( Amount ), 0 ) AS amount
-	FROM
-		finance_acc
-	WHERE
-		is_deleted = 0
-		AND DC = 'd'
-		AND ( Corpid IS NOT NULL OR Corpid = '' )
+        GROUP BY
+        Corpid
+        ) c
+        LEFT JOIN (
+        SELECT
+        Corpid AS corpId,
+        create_time AS accDate,
+        IFNULL( SUM( Amount ), 0 ) AS amount
+        FROM
+        finance_acc
+        WHERE
+        is_deleted = 0
+        AND DC = 'd'
+        AND ( Corpid IS NOT NULL OR Corpid = '' )
         <if test="acc.tenantId!=null and acc.tenantId != ''">
             AND tenant_id = #{acc.tenantId}
         </if>
@@ -317,27 +327,27 @@ FROM
         <if test="acc.corpId!=null">
             AND Corpid = #{acc.corpId}
         </if>
-	GROUP BY
-		Corpid
-	) d ON d.corpId = c.corpId UNION ALL
-SELECT
-	d.corpId AS corpId,
-	d.accDate AS accDate,
-	IFNULL( d.amount, 0 ) AS amount,
-	IFNULL( c.amount, 0 ) AS handleAmount,
-	IFNULL( d.amount, 0 ) - IFNULL( c.amount, 0 ) AS profitAmount
-FROM
-	(
-	SELECT
-		Corpid AS corpId,
-		create_time AS accDate,
-		IFNULL( SUM( Amount ), 0 ) AS amount
-	FROM
-		finance_acc
-	WHERE
-		is_deleted = 0
-		AND DC = 'd'
-		AND ( Corpid IS NOT NULL OR Corpid = '' )
+        GROUP BY
+        Corpid
+        ) d ON d.corpId = c.corpId UNION ALL
+        SELECT
+        d.corpId AS corpId,
+        d.accDate AS accDate,
+        IFNULL( d.amount, 0 ) AS amount,
+        IFNULL( c.amount, 0 ) AS handleAmount,
+        IFNULL( d.amount, 0 ) - IFNULL( c.amount, 0 ) AS profitAmount
+        FROM
+        (
+        SELECT
+        Corpid AS corpId,
+        create_time AS accDate,
+        IFNULL( SUM( Amount ), 0 ) AS amount
+        FROM
+        finance_acc
+        WHERE
+        is_deleted = 0
+        AND DC = 'd'
+        AND ( Corpid IS NOT NULL OR Corpid = '' )
         <if test="acc.tenantId!=null and acc.tenantId != ''">
             AND tenant_id = #{acc.tenantId}
         </if>
@@ -356,20 +366,20 @@ FROM
         <if test="acc.corpId!=null">
             AND Corpid = #{acc.corpId}
         </if>
-	GROUP BY
-		Corpid
-	) d
-	LEFT JOIN (
-	SELECT
-		Corpid AS corpId,
-		create_time AS accDate,
-		IFNULL( SUM( Amount ), 0 ) AS amount
-	FROM
-		finance_acc
-	WHERE
-		is_deleted = 0
-		AND DC = 'c'
-		AND ( Corpid IS NOT NULL OR Corpid = '' )
+        GROUP BY
+        Corpid
+        ) d
+        LEFT JOIN (
+        SELECT
+        Corpid AS corpId,
+        create_time AS accDate,
+        IFNULL( SUM( Amount ), 0 ) AS amount
+        FROM
+        finance_acc
+        WHERE
+        is_deleted = 0
+        AND DC = 'c'
+        AND ( Corpid IS NOT NULL OR Corpid = '' )
         <if test="acc.tenantId!=null and acc.tenantId != ''">
             AND tenant_id = #{acc.tenantId}
         </if>
@@ -388,9 +398,9 @@ FROM
         <if test="acc.corpId!=null">
             AND Corpid = #{acc.corpId}
         </if>
-	GROUP BY
-	Corpid
-	) c ON d.corpId = c.corpId
+        GROUP BY
+        Corpid
+        ) c ON d.corpId = c.corpId
     </select>
 
     <select id="selectlastIssueAmount" resultType="java.util.Map">
@@ -416,9 +426,116 @@ FROM
     <select id="selectListCorpId" resultType="java.lang.Long">
         SELECT Corpid
         FROM finance_acc
-        WHERE
-            is_deleted = 0 and tenant_id = #{tenantId}
+        WHERE is_deleted = 0
+          and tenant_id = #{tenantId}
         GROUP BY Corpid
     </select>
+    <select id="whetherStatistics" resultMap="accResultMap">
+        select
+        AccSysNo ,
+        Bill_type ,
+        Src_refno ,
+        Src_Bill_NO ,
+        Corpid ,
+        sum( IFNULL( quantity, 0 ) ) AS quantity,
+        sum( IFNULL( Amount, 0 ) ) AS Amount,
+        sum( IFNULL( Invoice_Amount, 0 ) ) AS Invoice_Amount,
+        sum( IFNULL( Settlement_Amount, 0 ) ) AS Settlement_Amount,
+        sum( IFNULL( Apply_Amount, 0 ) ) AS Apply_Amount,
+        sum( IFNULL( Check_Amount, 0 ) ) AS Check_Amount
+        from finance_acc
+        where is_deleted = 0
+                and status = 0
+        <if test="acc.srcParentId != null">
+            <if test="acc.flag != null and acc.flag == 1">
+                AND Amount &gt;= Settlement_Amount
+            </if>
+            <if test="acc.flag != null and acc.flag == 2">
+                AND Amount &gt;= Invoice_Amount
+            </if>
+        </if>
+        <if test="acc.corpId !=null">
+            <if test="acc.flag != null and acc.flag == 1">
+                AND Amount &gt;= Settlement_Amount
+            </if>
+            <if test="acc.flag != null and acc.flag == 2">
+                AND Amount &gt;= Invoice_Amount
+            </if>
+        </if>
+        <if test="acc.srcParentId == null and acc.corpId == null">
+            <if test="acc.flag != null and acc.flag == 1">
+                AND Amount &gt;= Settlement_Amount
+            </if>
+            <if test="acc.flag != null and acc.flag == 2">
+                AND Amount &gt;= Invoice_Amount
+            </if>
+        </if>
+        <if test="acc.createStartDate != null and acc.createEndDate != null">
+            AND between (create_time,#{acc.createStartDate} and #{acc.createEndDate})
+        </if>
+        <if test="acc.billType!=null and acc.billType != ''">
+            AND Bill_type like concat(concat('%', #{acc.billType}),'%')
+        </if>
+        <if test="acc.accSysNo !=null and acc.accSysNo != ''">
+            AND AccSysNo like concat(concat('%', #{acc.accSysNo}),'%')
+        </if>
+        <if test="acc.srcBillNo !=null and acc.srcBillNo != ''">
+            AND Src_Bill_NO like concat(concat('%', #{acc.srcBillNo}),'%')
+        </if>
+        <if test="acc.corpId !=null">
+            AND Corpid = #{acc.corpId}
+        </if>
+        <if test="acc.itemType !=null and acc.itemType != ''">
+            AND item_type = #{acc.itemType}
+        </if>
+        <if test="acc.costType !=null and acc.costType != ''">
+            AND cost_type = #{acc.costType}
+        </if>
+        <if test="acc.createUser !=null">
+            AND create_user = #{acc.createUser}
+        </if>
+        <if test="acc.srcParentId !=null">
+            AND Src_parent_id = #{acc.srcParentId}
+        </if>
+        <if test="acc.srcSysno !=null and acc.srcSysno != ''">
+            AND Src_SysNo = #{acc.srcSysno}
+        </if>
+        <if test="acc.srcRefno !=null and acc.srcRefno != ''">
+            AND Src_refno = #{acc.srcRefno}
+        </if>
+        <if test="acc.dc !=null and acc.dc != ''">
+            AND DC = #{acc.dc}
+        </if>
+        <if test="acc.quantity !=null">
+            AND quantity like concat(concat('%', #{acc.quantity}),'%')
+        </if>
+        <if test="acc.settlementAmount !=null">
+            AND Settlement_Amount like concat(concat('%', #{acc.settlementAmount}),'%')
+        </if>
+        <if test="acc.checkStatus !=null and acc.checkStatus == 1">
+            AND Check_Amount &gt; #{acc.checkAmount}
+            AND Settlement_Amount &gt; #{acc.settlementAmount}
+            AND Invoice_Amount &gt; #{acc.invoiceAmount}
+        </if>
+        <if test="acc.checkStatus !=null and acc.checkStatus == 2">
+            AND Check_Amount = #{acc.checkAmount}
+            AND Settlement_Amount = #{acc.settlementAmount}
+            AND Invoice_Amount = #{acc.invoiceAmount}
+        </if>
+        <if test="acc.tenantId !=null and acc.tenantId != ''">
+            AND tenant_id = #{acc.tenantId}
+        </if>
+        <if test="acc.settlementStatus !=null and acc.settlementStatus == 1">
+            AND Amount = Settlement_Amount
+        </if>
+        <if test="acc.settlementStatus !=null and acc.settlementStatus == 2">
+            AND Amount != Settlement_Amount
+        </if>
+            group By Src_refno,
+        Bill_type,
+        AccSysNo,
+        Src_Bill_NO,
+        Corpid
+    </select>
 
 </mapper>

+ 2 - 0
blade-service/trade-finance/src/main/java/org/springblade/finance/service/IAccService.java

@@ -111,4 +111,6 @@ public interface IAccService extends IService<Acc> {
 	List<Acc> SelAccItemExport(Acc acc);
 
 	Map<String, Object> SumBillBalance(Acc acc);
+
+    IPage<Acc> whetherStatistics(IPage<Acc> page, Acc acc);
 }

+ 5 - 0
blade-service/trade-finance/src/main/java/org/springblade/finance/service/impl/AccServiceImpl.java

@@ -481,4 +481,9 @@ public class AccServiceImpl extends ServiceImpl<AccMapper, Acc> implements IAccS
 	public Map<String, Object> SumBillBalance(Acc acc){
 		return baseMapper.SumBillBalance(acc);
 	}
+
+	@Override
+	public IPage<Acc> whetherStatistics(IPage<Acc> page, Acc acc) {
+		return page.setRecords(baseMapper.whetherStatistics(page, acc));
+	}
 }