Browse Source

1.修改资金转存反审核问题
2.放开资金资金转出账户资金不足限制
3.添加资金转存转入转出账户一样得限制提示
4.资金账户名称一样的限制
5.其他收入单,其他支出单币别汇率排序问题
6.资金账户添加币别报错问题

heqinwei 7 years ago
parent
commit
8504e8271b

+ 3 - 1
applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/exception/BizExceptionCode.java

@@ -43,6 +43,7 @@ public enum BizExceptionCode implements BaseExceptionCode {
     BIZ_IMPORT_ERROREXCEL(79318, "请导入对应的单据数据"),
     BIZ_ENABLE_B2B(79350, "未启用B2B"),
 
+
     NO_OPRATIONDATA(79400,"无可操作单据"),
     NULL_DATA(23232,"无数据"),
     PRODUCT_HASSTOCK(79401, "当前物料库存大于0,不允许禁用"),
@@ -74,6 +75,7 @@ public enum BizExceptionCode implements BaseExceptionCode {
     REQUIREDFIELD_NULL(79508,"存在必填字段为空"),
     USER_EXIST(79509, ""),
     CURRENCY_VALID(79510, "币别与源单据不一致不允许修改"),
+    BIZ_SAME(79511, "账户名称重复"),
 
     //采购 70000-71999
     PURCCHECKIN_POST_ERROR(70000,""),
@@ -117,7 +119,7 @@ public enum BizExceptionCode implements BaseExceptionCode {
     DOCUMENTS_AUDITED(74009,"存在已审核单据:%S"),
     DOCUMENTS_UNAUDITED(74010,"存在未审核单据:%S"),
     BANK_AMOUNT_NOTENOUGHS(74011, "资金账户:%S 余额不足"),
-    CURRENCY_NOT_EQUALS(74012, "币别不一致"),
+    BANKNAME_NOT_EQUALS(74012, "转出账户与转入账户相同"),
 
     //反结账
     EARLY_USERING(74012, "期初余额被使用,无法反结账"),

+ 2 - 0
applications/document/document-server/src/main/java/com/usoftchina/saas/document/mapper/BankinformationMapper.java

@@ -36,4 +36,6 @@ public interface BankinformationMapper extends CommonBaseMapper<Bankinformation>
 
     int validateCodeWhenUpdate(@Param("code") String code, @Param("id") Long id, @Param("companyId") Long company);
 
+    int getBankNameSame(@Param("name") String name, @Param("companyId") Long company);
+
 }

+ 7 - 0
applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/BankinformationServiceImpl.java

@@ -33,6 +33,8 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import static com.usoftchina.saas.commons.exception.BizExceptionCode.BIZ_SAME;
+
 /**
  * @author heqw
  * @date 2018/10/25 15:36
@@ -51,6 +53,11 @@ public class BankinformationServiceImpl extends CommonBaseServiceImpl<Bankinform
     @Transactional
     @Override
     public boolean save(Bankinformation bankinformation){
+        //判断账户名称是否存在
+        if (bankinformationMapper.getBankNameSame(bankinformation.getBk_bankname(), BaseContextHolder.getCompanyId()) > 0){
+            throw new BizException(BIZ_SAME.getCode(),BIZ_SAME.getMessage());
+        }
+
         bankinformation.setCompanyId(BaseContextHolder.getCompanyId());
         bankinformation.setBk_income(new Double(0));
         bankinformation.setBk_spending(new Double(0));

+ 5 - 2
applications/document/document-server/src/main/resources/mapper/BankinformationMapper.xml

@@ -24,7 +24,6 @@
     <result column="bk_spending" property="bk_spending" jdbcType="DOUBLE" />
     <result column="bk_income" property="bk_income" jdbcType="DOUBLE" />
     <result column="bk_currency" property="bk_currency" jdbcType="VARCHAR" />
-    <result column="cr_rate" property="cr_rate" jdbcType="DOUBLE" />
   </resultMap>
   <resultMap id="ResultMapWithBLOBs" type="com.usoftchina.saas.document.entities.Bankinformation" extends="BaseResultMap" >
     <result column="bk_remark" property="bk_remark" jdbcType="LONGVARCHAR" />
@@ -32,7 +31,7 @@
   <sql id="Base_Column_List" >
     bk_id, bk_bankcode, bk_bankname, bk_date, bk_type, bk_beginamount, bk_thisamount, 
     bk_status, bk_statuscode, bk_ym, bankinformation.companyid companyid,
-    bankinformation.updaterId updaterId, bankinformation.updateTime updateTime, bk_text1, bk_text2, bk_text3, bk_text4, bk_text5, bk_remark,bk_currency,cr_rate
+    bankinformation.updaterId updaterId, bankinformation.updateTime updateTime, bk_text1, bk_text2, bk_text3, bk_text4, bk_text5, bk_remark,bk_currency
   </sql>
   <sql id="Blob_Column_List" >
     bk_remark
@@ -367,4 +366,8 @@
   <select id="validateCodeWhenUpdate" resultType="int" >
         select count(*) from bankinformation where bk_bankcode = #{code} and bk_id != #{id} and companyId =#{companyId}
     </select>
+
+  <select id="getBankNameSame" resultType="int">
+    select count(*) from bankinformation where bk_bankname = #{name} and companyId =#{companyId}
+  </select>
 </mapper>

+ 14 - 12
applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/FundtransferServiceImpl.java

@@ -93,9 +93,9 @@ public class FundtransferServiceImpl extends CommonBaseServiceImpl<FundtransferM
             fundtransferdetail.setCompanyId(BaseContextHolder.getCompanyId());
             fundtransferdetail.setFtd_ftid(Math.toIntExact(id));
             fundtransferdetail.setFt_date(fundtransfer.getFt_date());
-//            if (!(fundtransferdetail.getFtd_currency().equals(fundtransferdetail.getFtd_incurrency()))){
-//                throw new BizException(500, BizExceptionCode.CURRENCY_NOT_EQUALS.getMessage());
-//            }
+            if (fundtransferdetail.getFtd_inbankname().equals(fundtransferdetail.getFtd_bankname())){
+                throw new BizException(BizExceptionCode.BANKNAME_NOT_EQUALS.getCode(), BizExceptionCode.BANKNAME_NOT_EQUALS.getMessage());
+            }
             if (fundtransferdetail.getId() > 0 ){
                 fundtransferdetailMapper.updateByPrimaryKeySelective(fundtransferdetail);
             }else {
@@ -118,12 +118,13 @@ public class FundtransferServiceImpl extends CommonBaseServiceImpl<FundtransferM
         DocBaseDTO docBaseDTO = this.insert(fundtran);
         Long id = docBaseDTO.getId();
 
-        List<String> bankName = fundtransferMapper.checkAmount(BaseContextHolder.getCompanyId(), id);
-        if (bankName.size() > 0){
-            String name = org.apache.commons.lang3.StringUtils.join(bankName, ",");
-            String message = BizExceptionCode.BANK_AMOUNT_NOTENOUGHS.getMessage();
-            throw new BizException(500, String.format(message, name));
-        }
+        //判断资金余额
+//        List<String> bankName = fundtransferMapper.checkAmount(BaseContextHolder.getCompanyId(), id);
+//        if (bankName.size() > 0){
+//            String name = org.apache.commons.lang3.StringUtils.join(bankName, ",");
+//            String message = BizExceptionCode.BANK_AMOUNT_NOTENOUGHS.getMessage();
+//            throw new BizException(500, String.format(message, name));
+//        }
 
 
         //取从表金额更新中间表、资金账号表
@@ -227,7 +228,7 @@ public class FundtransferServiceImpl extends CommonBaseServiceImpl<FundtransferM
             Double inamount = banksubledgerMapper.selectThisamount(fundtransferdetail.getFtd_inbankcode(), BaseContextHolder.getCompanyId());
             banksubledgerMapper.updateBankcode(amount, fundtransferdetail.getFtd_nowbalance(),
                     fundtransferdetail.getFtd_bankcode(), "+", BaseContextHolder.getCompanyId());
-            banksubledgerMapper.updateBankcode(inamount, fundtransferdetail.getFtd_nowbalance(),
+            banksubledgerMapper.updateBankcode(inamount, fundtransferdetail.getFtd_innowbalance(),
                     fundtransferdetail.getFtd_bankcode(), "-", BaseContextHolder.getCompanyId());
 
             //资金账号表
@@ -235,6 +236,7 @@ public class FundtransferServiceImpl extends CommonBaseServiceImpl<FundtransferM
             int bk_inid = fundtransferdetail.getFtd_inbankid();
 
             Double bk_amount = fundtransferdetail.getFtd_nowbalance();
+            Double bk_inamount = fundtransferdetail.getFtd_innowbalance();
             //付款方
             Bankinformation bankinformation = bankinformationMapper.selectByPrimaryKey(bk_id);
             Double beginamount = bankinformation.getBk_beginamount()== null ? new Double(0) : bankinformation.getBk_beginamount();
@@ -253,8 +255,8 @@ public class FundtransferServiceImpl extends CommonBaseServiceImpl<FundtransferM
             Double inspending = inbankinformation.getBk_spending() == null ? new Double(0) : inbankinformation.getBk_spending();
             Double inincomme = inbankinformation.getBk_income() == null ? new Double(0) : inbankinformation.getBk_income();
             Bankinformation newinbankinformation = new Bankinformation();
-            newinbankinformation.setBk_thisamount(inbeginamount + (inincomme-bk_amount) - inspending );
-            newinbankinformation.setBk_income(inincomme-bk_amount);
+            newinbankinformation.setBk_thisamount(inbeginamount + (inincomme-bk_inamount) - inspending );
+            newinbankinformation.setBk_income(inincomme-bk_inamount);
             newinbankinformation.setBk_spending(inspending);
             newinbankinformation.setId(Long.valueOf(bk_inid));
             newinbankinformation.setCompanyId(BaseContextHolder.getCompanyId());

+ 19 - 19
frontend/saas-web/app/view/money/othreceipts/FormPanel.js

@@ -56,12 +56,6 @@ Ext.define('saas.view.money.othreceipts.FormPanel', {
                 name: "or_bankname",
                 fieldLabel: "账户名称",
                 allowBlank: false
-            }, {
-                xtype: 'datefield',
-                name: 'or_date',
-                fieldLabel: '单据日期',
-                defaultValue: new Date(),
-                allowBlank: false
             }, {
                 xtype: 'condbfindtrigger',
                 fieldLabel: '币别汇率',
@@ -87,19 +81,25 @@ Ext.define('saas.view.money.othreceipts.FormPanel', {
                     decimalPrecision: 6,
                     vtype: 'positiveNumber'
                 },
-            // }, {
-            //     xtype: "currencyDbfindTrigger",
-            //     name: "or_currency",
-            //     fieldLabel: "币别",
-            //     defaultValue: 'RMB'
-            // }, {
-            //     xtype: "numberfield",
-            //     name: "or_rate",
-            //     fieldLabel: "汇率",
-            //     defaultValue: 1,
-            //     decimalPrecision: 6,
-            //     vtype: 'positiveNumber'
-            }, {
+                // }, {
+                //     xtype: "currencyDbfindTrigger",
+                //     name: "or_currency",
+                //     fieldLabel: "币别",
+                //     defaultValue: 'RMB'
+                // }, {
+                //     xtype: "numberfield",
+                //     name: "or_rate",
+                //     fieldLabel: "汇率",
+                //     defaultValue: 1,
+                //     decimalPrecision: 6,
+                //     vtype: 'positiveNumber'
+            },{
+                xtype: 'datefield',
+                name: 'or_date',
+                fieldLabel: '单据日期',
+                defaultValue: new Date(),
+                allowBlank: false
+            },  {
                 name: "detailGridField",
                 xtype: "detailGridField",
                 storeModel: 'saas.model.money.Othreceipts',