Quellcode durchsuchen

1.对账单合计优化
2.明细优化

heqinwei vor 7 Jahren
Ursprung
Commit
c0ca82aeb4

+ 1 - 1
applications/money/money-server/src/main/java/com/usoftchina/saas/money/mapper/CustomerCheckViewMapper.java

@@ -10,6 +10,6 @@ import java.util.List;
 public interface CustomerCheckViewMapper {
 public interface CustomerCheckViewMapper {
     List<CustomerCheckView> selectByCondition(@Param("con") String con, @Param("companyId") Long companyId);
     List<CustomerCheckView> selectByCondition(@Param("con") String con, @Param("companyId") Long companyId);
     String selectCalculateFields(@Param("fields") String fields, @Param("con") String con, @Param("companyId") Long companyId);
     String selectCalculateFields(@Param("fields") String fields, @Param("con") String con, @Param("companyId") Long companyId);
-    VendOrCustAdd selectCustAdd(@Param("sl_custid") Integer sl_custid, @Param("cons") String cons, @Param("companyId") Long companyId);
+    List<VendOrCustAdd> selectCustAdd(@Param("sl_custid") Integer sl_custid, @Param("cons") String cons, @Param("companyId") Long companyId);
     Integer getId(@Param("code") String code, @Param("companyId") Long companyId);
     Integer getId(@Param("code") String code, @Param("companyId") Long companyId);
 }
 }

+ 1 - 1
applications/money/money-server/src/main/java/com/usoftchina/saas/money/mapper/VendorAcountViewMapper.java

@@ -9,6 +9,6 @@ import java.util.List;
 public interface VendorAcountViewMapper {
 public interface VendorAcountViewMapper {
     List<VendorAcountView> selectByCondition(@Param("con")String con, @Param("companyId")Long companyId);
     List<VendorAcountView> selectByCondition(@Param("con")String con, @Param("companyId")Long companyId);
     String selectCalculateFields(@Param("fields") String fields, @Param("con") String con, @Param("companyId") Long companyId);
     String selectCalculateFields(@Param("fields") String fields, @Param("con") String con, @Param("companyId") Long companyId);
-    VendOrCustAdd selectVendAdd(@Param("sl_vendid") Integer sl_vendid, @Param("cons") String cons, @Param("companyId") Long companyId);
+    List<VendOrCustAdd> selectVendAdd(@Param("sl_vendid") Integer sl_vendid, @Param("cons") String cons, @Param("companyId") Long companyId);
     Integer getId(@Param("code") String code, @Param("companyId") Long companyId);
     Integer getId(@Param("code") String code, @Param("companyId") Long companyId);
 }
 }

+ 52 - 36
applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/MoneyReportServiceImpl.java

@@ -181,24 +181,32 @@ public class MoneyReportServiceImpl implements MoneyReportService {
 
 
                 Integer vid = new Integer(0);
                 Integer vid = new Integer(0);
                 vid = vendorAcountViewMapper.getId(vendorAcountView.getPi_vendcode(), Long.valueOf(vendorAcountView.getCompanyId()));
                 vid = vendorAcountViewMapper.getId(vendorAcountView.getPi_vendcode(), Long.valueOf(vendorAcountView.getCompanyId()));
-                VendOrCustAdd vendOrCustAdd = vendorAcountViewMapper.selectVendAdd(vid, cons, Long.valueOf(vendorAcountView.getCompanyId()));
-                if (vendOrCustAdd != null) {
-                    //封装成list
-                    Map<String, Double> map1 = new HashMap<>();
-                    map1.put("beginamount", vendOrCustAdd.getBeginamount());
-                    list1.add(map1);
-
-                    Map<String, Double> map2 = new HashMap<>();
-                    map2.put("nowamount", vendOrCustAdd.getNowamount());
-                    list1.add(map2);
-
-                    Map<String, Double> map3 = new HashMap<>();
-                    map3.put("nowpay", vendOrCustAdd.getNowpay());
-                    list1.add(map3);
-
-                    Map<String, Double> map4 = new HashMap<>();
-                    map4.put("nowbalance", vendOrCustAdd.getNowbalance());
-                    list1.add(map4);
+                List<VendOrCustAdd> vendOrCustAdds = vendorAcountViewMapper.selectVendAdd(vid, cons, Long.valueOf(vendorAcountView.getCompanyId()));
+                //封装成list
+                Map<String, Double> map1 = new HashMap<>();
+                map1.put("beginamount", new Double(0));
+                Map<String, Double> map2 = new HashMap<>();
+                map2.put("nowamount", new Double(0));
+                Map<String, Double> map3 = new HashMap<>();
+                map3.put("nowpay", new Double(0));
+                Map<String, Double> map4 = new HashMap<>();
+                map4.put("nowbalance", new Double(0));
+                if (vendOrCustAdds != null) {
+                    Iterator vlist = vendOrCustAdds.iterator();
+                    while (vlist.hasNext()) {
+                        VendOrCustAdd vendOrCustAdd = (VendOrCustAdd) vlist.next();
+                        map1.put("beginamount", vendOrCustAdd.getBeginamount() == null ? new Double(0) : vendOrCustAdd.getBeginamount());
+                        list1.add(map1);
+
+                        map2.put("nowamount", vendOrCustAdd.getNowamount() == null ? new Double(0) : vendOrCustAdd.getNowamount() + map2.get("nowamount"));
+                        list1.add(map2);
+
+                        map3.put("nowpay", vendOrCustAdd.getNowpay() == null ? new Double(0) : vendOrCustAdd.getNowpay() + map3.get("nowpay"));
+                        list1.add(map3);
+
+                        map4.put("nowbalance", map1.get("beginamount") +  map2.get("nowamount") - map3.get("nowpay"));
+                        list1.add(map4);
+                    }
                 }
                 }
             }
             }
         } else if("payDetail".equals(type)){
         } else if("payDetail".equals(type)){
@@ -226,24 +234,32 @@ public class MoneyReportServiceImpl implements MoneyReportService {
                 Integer vid = new Integer(0);
                 Integer vid = new Integer(0);
 
 
                 vid = customerCheckViewMapper.getId(customerCheckView.getPi_custcode(), Long.valueOf(customerCheckView.getCompanyId()));
                 vid = customerCheckViewMapper.getId(customerCheckView.getPi_custcode(), Long.valueOf(customerCheckView.getCompanyId()));
-                VendOrCustAdd vendOrCustAdd = customerCheckViewMapper.selectCustAdd(vid, cons, Long.valueOf(customerCheckView.getCompanyId()));
-                if (vendOrCustAdd != null) {
-                    //封装成list
-                    Map<String, Double> map1 = new HashMap<>();
-                    map1.put("beginamount", vendOrCustAdd.getBeginamount());
-                    list1.add(map1);
-
-                    Map<String, Double> map2 = new HashMap<>();
-                    map2.put("nowamount", vendOrCustAdd.getNowamount());
-                    list1.add(map2);
-
-                    Map<String, Double> map3 = new HashMap<>();
-                    map3.put("nowpay", vendOrCustAdd.getNowpay());
-                    list1.add(map3);
-
-                    Map<String, Double> map4 = new HashMap<>();
-                    map4.put("nowbalance", vendOrCustAdd.getNowbalance());
-                    list1.add(map4);
+                List<VendOrCustAdd> vendOrCustAdds = customerCheckViewMapper.selectCustAdd(vid, cons, Long.valueOf(customerCheckView.getCompanyId()));
+                //封装成list
+                Map<String, Double> map1 = new HashMap<>();
+                map1.put("beginamount", new Double(0));
+                Map<String, Double> map2 = new HashMap<>();
+                map2.put("nowamount", new Double(0));
+                Map<String, Double> map3 = new HashMap<>();
+                map3.put("nowpay", new Double(0));
+                Map<String, Double> map4 = new HashMap<>();
+                map4.put("nowbalance", new Double(0));
+                if (vendOrCustAdds != null) {
+                    Iterator vlist = vendOrCustAdds.iterator();
+                    while (vlist.hasNext()) {
+                        VendOrCustAdd vendOrCustAdd = (VendOrCustAdd) vlist.next();
+                        map1.put("beginamount", vendOrCustAdd.getBeginamount() == null ? new Double(0) : vendOrCustAdd.getBeginamount());
+                        list1.add(map1);
+
+                        map2.put("nowamount", vendOrCustAdd.getNowamount() == null ? new Double(0) : vendOrCustAdd.getNowamount() + map2.get("nowamount"));
+                        list1.add(map2);
+
+                        map3.put("nowpay", vendOrCustAdd.getNowpay() == null ? new Double(0) : vendOrCustAdd.getNowpay() + map3.get("nowpay"));
+                        list1.add(map3);
+
+                        map4.put("nowbalance", map1.get("beginamount") +  map2.get("nowamount") - map3.get("nowpay"));
+                        list1.add(map4);
+                    }
                 }
                 }
             }
             }
         }else if ("accountdetails".equals(type)){
         }else if ("accountdetails".equals(type)){

+ 1 - 1
applications/money/money-server/src/main/resources/mapper/CustomerCheckViewMapper.xml

@@ -58,7 +58,7 @@
     left join (select sum(sl_amount) as nowamount,sum(sl_preamount) as nowpay,sl_custid,sl_date from subledger where sl_kind !='期初余额'
     left join (select sum(sl_amount) as nowamount,sum(sl_preamount) as nowpay,sl_custid,sl_date from subledger where sl_kind !='期初余额'
     group by sl_custid,sl_date) b
     group by sl_custid,sl_date) b
     on a.sl_custid=b.sl_custid
     on a.sl_custid=b.sl_custid
-    where a.sl_custid=#{sl_custid} and ${cons} and a.companyid = #{companyId} limit 1
+    where a.sl_custid=#{sl_custid} and ${cons} and a.companyid = #{companyId}
   </select>
   </select>
 
 
     <select id="getId" resultType="java.lang.Integer">
     <select id="getId" resultType="java.lang.Integer">

+ 1 - 1
applications/money/money-server/src/main/resources/mapper/PayablesdetailMapper.xml

@@ -33,7 +33,7 @@
         ${con}
         ${con}
       </if>
       </if>
       <if test="companyId != null">
       <if test="companyId != null">
-        and  companyId = #{companyId} and pd_query =1
+        and  companyId = #{companyId} and pd_query =1 and (pd_addpay + pd_addpre + pd_remain) != 0
       </if>
       </if>
     </where>
     </where>
     order by pd_vendname asc, pd_detno asc, pd_date desc
     order by pd_vendname asc, pd_detno asc, pd_date desc

+ 1 - 1
applications/money/money-server/src/main/resources/mapper/ReceivablesdetailMapper.xml

@@ -33,7 +33,7 @@
         ${con}
         ${con}
       </if>
       </if>
       <if test="companyId != null">
       <if test="companyId != null">
-        and  companyId = #{companyId} and rd_query = 1
+        and  companyId = #{companyId} and rd_query = 1 and (rd_addrec + rd_addpre + rd_remain) != 0
       </if>
       </if>
     </where>
     </where>
     order by rd_custname asc, rd_detno asc, rd_date desc
     order by rd_custname asc, rd_detno asc, rd_date desc

+ 2 - 2
applications/money/money-server/src/main/resources/mapper/VendorAcountViewMapper.xml

@@ -52,7 +52,7 @@
   <resultMap id="BaseAddMap" type="com.usoftchina.saas.money.po.VendOrCustAdd" >
   <resultMap id="BaseAddMap" type="com.usoftchina.saas.money.po.VendOrCustAdd" >
     <result column="beginamount" property="beginamount" jdbcType="DOUBLE" />
     <result column="beginamount" property="beginamount" jdbcType="DOUBLE" />
     <result column="nowamount" property="nowamount" jdbcType="DOUBLE" />
     <result column="nowamount" property="nowamount" jdbcType="DOUBLE" />
-    <result column="nowpay" property="beginamount" jdbcType="DOUBLE" />
+    <result column="nowpay" property="nowpay" jdbcType="DOUBLE" />
     <result column="nowbalance" property="nowbalance" jdbcType="DOUBLE" />
     <result column="nowbalance" property="nowbalance" jdbcType="DOUBLE" />
   </resultMap>
   </resultMap>
   <select id="selectVendAdd" resultMap="BaseAddMap">
   <select id="selectVendAdd" resultMap="BaseAddMap">
@@ -61,7 +61,7 @@
     left join (select sum(sl_amount) as nowamount,sum(sl_preamount) as nowpay,sl_vendid,sl_date from subledger where sl_kind !='期初余额'
     left join (select sum(sl_amount) as nowamount,sum(sl_preamount) as nowpay,sl_vendid,sl_date from subledger where sl_kind !='期初余额'
     group by sl_vendid,sl_date) b
     group by sl_vendid,sl_date) b
     on a.sl_vendid=b.sl_vendid
     on a.sl_vendid=b.sl_vendid
-    where a.sl_vendid=#{sl_vendid} and ${cons} and a.companyid = #{companyId} limit 1
+    where a.sl_vendid=#{sl_vendid} and ${cons} and a.companyid = #{companyId}
   </select>
   </select>
 
 
   <select id="getId" resultType="java.lang.Integer">
   <select id="getId" resultType="java.lang.Integer">