Browse Source

基础资料-解决供应商/客户生成中间表问题

huangx 7 years ago
parent
commit
db618e4da5

+ 4 - 4
applications/document/document-server/src/main/java/com/usoftchina/saas/document/mapper/SubledgerMapper.java

@@ -25,11 +25,11 @@ public interface SubledgerMapper {
 
 
     List<Subledger> selectSubledgerBycondition(@Param("con") String con, @Param("companyId") Long companyId);
     List<Subledger> selectSubledgerBycondition(@Param("con") String con, @Param("companyId") Long companyId);
 
 
-    Subledger selectByKindCodeCustid(@Param("sl_code") String sl_code, @Param("sl_kind") String sl_kind,
-                                     @Param("sl_custid") Integer sl_custid);
+    Long selectByKindCodeCustid(@Param("sl_code") String sl_code, @Param("sl_kind") String sl_kind,
+                                     @Param("sl_custid") Integer sl_custid ,@Param("companyid") Long companyid);
 
 
-    Subledger selectByKindCodeVendid(@Param("sl_code") String sl_code, @Param("sl_kind") String sl_kind,
-                                     @Param("sl_vendid") Integer sl_vendid);
+    Long selectByKindCodeVendid(@Param("sl_code") String sl_code, @Param("sl_kind") String sl_kind,
+                                     @Param("sl_vendid") Integer sl_vendid ,@Param("companyid") Long companyid);
 
 
     void deleteCustomer(@Param("sl_code") String sl_code, @Param("sl_kind") String sl_kind,
     void deleteCustomer(@Param("sl_code") String sl_code, @Param("sl_kind") String sl_kind,
                         @Param("sl_custid") Integer sl_custid);
                         @Param("sl_custid") Integer sl_custid);

+ 24 - 23
applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/CustomerServiceImpl.java

@@ -267,29 +267,30 @@ public class CustomerServiceImpl extends CommonBaseServiceImpl<CustomerMapper, C
         //插入中间表
         //插入中间表
         Double amount = (customer.getCu_beginaramount() == null ? new Double(0) : customer.getCu_beginaramount())
         Double amount = (customer.getCu_beginaramount() == null ? new Double(0) : customer.getCu_beginaramount())
                 - (customer.getCu_beginprerecamount() == null ? new Double(0) : customer.getCu_beginprerecamount());
                 - (customer.getCu_beginprerecamount() == null ? new Double(0) : customer.getCu_beginprerecamount());
-            Subledger subledger = new Subledger();
-            subledger.setSl_code("期初余额");
-            subledger.setSl_kind("期初余额");
-            subledger.setSl_vendid(0);
-            subledger.setSl_custid(Math.toIntExact(customer.getId()));
-            subledger.setCompanyId(BaseContextHolder.getCompanyId());
-            subledger.setSl_date(DateUtils.getFirstDay(customer.getCu_begindate()));
-            subledger.setSl_ym(DateUtils.getYm(customer.getCu_begindate()));
-            if (amount > new Double(0)){
-                subledger.setSl_amount(amount);
-            }else {
-                subledger.setSl_preamount(amount);
-            }
-            subledger.setSl_orderamount(Math.abs(amount));
-            subledger.setSl_namount(Math.abs(amount));
-
-            Subledger subledger1 = subledgerMapper.selectByKindCodeCustid("期初余额","期初余额",
-                    Math.toIntExact(customer.getId()));
-            if (subledger1 == null) {
-                subledgerMapper.insertSelective(subledger);
-            }else {
-                subledgerMapper.updateByPrimaryKeySelective(subledger);
-            }
+        Subledger subledger = new Subledger();
+        subledger.setSl_code("期初余额");
+        subledger.setSl_kind("期初余额");
+        subledger.setSl_vendid(0);
+        subledger.setSl_custid(Math.toIntExact(customer.getId()));
+        subledger.setCompanyId(BaseContextHolder.getCompanyId());
+        subledger.setSl_date(DateUtils.getFirstDay(customer.getCu_begindate()));
+        subledger.setSl_ym(DateUtils.getYm(customer.getCu_begindate()));
+        if (amount > new Double(0)){
+            subledger.setSl_amount(amount);
+        }else {
+            subledger.setSl_preamount(amount);
+        }
+        subledger.setSl_orderamount(Math.abs(amount));
+        subledger.setSl_namount(Math.abs(amount));
+
+        Long sl_id  = subledgerMapper.selectByKindCodeCustid("期初余额","期初余额",
+                Math.toIntExact(customer.getId()),BaseContextHolder.getCompanyId());
+        subledger.setId(sl_id);
+        if ( sl_id!=null && sl_id > 0 ) {
+            subledgerMapper.updateByPrimaryKeySelective(subledger);
+        }else {
+            subledgerMapper.insertSelective(subledger);
+        }
 
 
         baseDTO = getBaseDTOById(cu_id);
         baseDTO = getBaseDTOById(cu_id);
         //日志记录
         //日志记录

+ 23 - 23
applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/VendorServiceImpl.java

@@ -221,29 +221,29 @@ public class VendorServiceImpl extends CommonBaseServiceImpl<VendorMapper, Vendo
         //插入中间表
         //插入中间表
         Double amount = (main.getVe_beginapamount() == null ? new Double(0) : main.getVe_beginapamount())
         Double amount = (main.getVe_beginapamount() == null ? new Double(0) : main.getVe_beginapamount())
                 - (main.getVe_beginprepayamount() == null ? new Double(0) : main.getVe_beginprepayamount());
                 - (main.getVe_beginprepayamount() == null ? new Double(0) : main.getVe_beginprepayamount());
-            Subledger subledger = new Subledger();
-            subledger.setSl_code("期初余额");
-            subledger.setSl_kind("期初余额");
-            subledger.setSl_vendid(Math.toIntExact(main.getId()));
-            subledger.setSl_custid(0);
-            subledger.setCompanyId(BaseContextHolder.getCompanyId());
-            subledger.setSl_date(DateUtils.getFirstDay(main.getVe_begindate()));
-            subledger.setSl_ym(DateUtils.getYm(main.getVe_begindate()));
-            if (amount > new Double(0)){
-                subledger.setSl_amount(amount);
-            }else {
-                subledger.setSl_preamount(amount);
-            }
-            subledger.setSl_orderamount(Math.abs(amount));
-            subledger.setSl_namount(Math.abs(amount));
-
-            Subledger subledger1 = subledgerMapper.selectByKindCodeVendid("期初余额","期初余额",
-                    Math.toIntExact(main.getId()));
-            if (subledger1 == null) {
-                subledgerMapper.insertSelective(subledger);
-            }else {
-                subledgerMapper.updateByPrimaryKeySelective(subledger);
-            }
+        Subledger subledger = new Subledger();
+        subledger.setSl_code("期初余额");
+        subledger.setSl_kind("期初余额");
+        subledger.setSl_vendid(Math.toIntExact(main.getId()));
+        subledger.setSl_custid(0);
+        subledger.setCompanyId(BaseContextHolder.getCompanyId());
+        subledger.setSl_date(DateUtils.getFirstDay(main.getVe_begindate()));
+        subledger.setSl_ym(DateUtils.getYm(main.getVe_begindate()));
+        if (amount > new Double(0)){
+            subledger.setSl_amount(amount);
+        }else {
+            subledger.setSl_preamount(amount);
+        }
+        subledger.setSl_orderamount(Math.abs(amount));
+        subledger.setSl_namount(Math.abs(amount));
+        Long sl_id = subledgerMapper.selectByKindCodeVendid("期初余额","期初余额",
+                Math.toIntExact(main.getId()),BaseContextHolder.getCompanyId());
+        subledger.setId(sl_id);
+        if ( sl_id!=null && sl_id > 0 ) {
+            subledgerMapper.updateByPrimaryKeySelective(subledger);
+        }else {
+            subledgerMapper.insertSelective(subledger);
+        }
 
 
         return generateMsgObj(main.getId(), code);
         return generateMsgObj(main.getId(), code);
     }
     }

+ 6 - 6
applications/document/document-server/src/main/resources/mapper/SubledgerMapper.xml

@@ -247,20 +247,20 @@
         where sl_code = #{sl_code,jdbcType=VARCHAR}
         where sl_code = #{sl_code,jdbcType=VARCHAR}
     </select>
     </select>
 
 
-  <select id="selectByKindCodeCustid" resultMap="BaseResultMap">
+  <select id="selectByKindCodeCustid" resultType="java.lang.Long">
   select
   select
-  <include refid="Base_Column_List" />
+  ifnull(sl_id,0)
   from subledger
   from subledger
   where sl_code = #{sl_code,jdbcType=VARCHAR} and sl_kind = #{sl_kind,jdbcType=VARCHAR} and
   where sl_code = #{sl_code,jdbcType=VARCHAR} and sl_kind = #{sl_kind,jdbcType=VARCHAR} and
-    sl_custid = #{sl_custid,jdbcType=INTEGER}
+    sl_custid = #{sl_custid,jdbcType=INTEGER} and companyId = #{companyid,jdbcType=INTEGER}
   </select>
   </select>
 
 
-  <select id="selectByKindCodeVendid" resultMap="BaseResultMap">
+  <select id="selectByKindCodeVendid" resultType="java.lang.Long">
     select
     select
-    <include refid="Base_Column_List" />
+    ifnull(sl_id,0)
     from subledger
     from subledger
     where sl_code = #{sl_code,jdbcType=VARCHAR} and sl_kind = #{sl_kind,jdbcType=VARCHAR} and
     where sl_code = #{sl_code,jdbcType=VARCHAR} and sl_kind = #{sl_kind,jdbcType=VARCHAR} and
-    sl_vendid = #{sl_vendid,jdbcType=INTEGER}
+    sl_vendid = #{sl_vendid,jdbcType=INTEGER} and companyId = #{companyid,jdbcType=INTEGER}
   </select>
   </select>
 
 
   <delete id="deleteCustomer">
   <delete id="deleteCustomer">