Browse Source

Merge remote-tracking branch 'origin/dev' into dev

heqinwei 7 years ago
parent
commit
7e8d609735
25 changed files with 650 additions and 70 deletions
  1. 12 0
      applications/commons/commons-api/src/main/java/com/usoftchina/saas/commons/api/CommonService.java
  2. 14 3
      applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/controller/CommonController.java
  3. 1 0
      applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/mapper/CommonMapper.java
  4. 1 0
      applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/service/CommonService.java
  5. 40 0
      applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/service/impl/CommonServiceImpl.java
  6. 5 0
      applications/commons/commons-server/src/main/resources/mapper/CommonMapper.xml
  7. 2 0
      applications/document/document-dto/src/main/java/com.usoftchina.saas.document.dto/CustomerDTO.java
  8. 3 1
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/CustomerServiceImpl.java
  9. 3 1
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/VendorServiceImpl.java
  10. 1 0
      applications/document/document-server/src/main/resources/mapper/CustomerMapper.xml
  11. 83 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/po/Paybalance.java
  12. 21 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/po/Recbalance.java
  13. 21 5
      applications/money/money-server/src/main/resources/mapper/PaybalanceMapper.xml
  14. 22 5
      applications/money/money-server/src/main/resources/mapper/RecbalanceMapper.xml
  15. 2 7
      applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/service/impl/ProdInOutServiceImpl.java
  16. 2 7
      applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/service/impl/SaleReportServiceImpl.java
  17. 9 9
      applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/service/impl/SaleServiceImpl.java
  18. 39 1
      frontend/saas-web/app/view/core/form/FormPanel.js
  19. 25 0
      frontend/saas-web/app/view/core/form/field/DetailGridField.js
  20. 10 0
      frontend/saas-web/app/view/document/vendor/BasePanel.js
  21. 96 16
      frontend/saas-web/app/view/money/payBalance/QueryPanel.js
  22. 77 4
      frontend/saas-web/app/view/money/payBalance/QueryPanelController.js
  23. 68 7
      frontend/saas-web/app/view/money/recBalance/QueryPanel.js
  24. 91 2
      frontend/saas-web/app/view/money/recBalance/QueryPanelController.js
  25. 2 2
      frontend/saas-web/app/view/stock/appropriationInOut/FormPanelController.js

+ 12 - 0
applications/commons/commons-api/src/main/java/com/usoftchina/saas/commons/api/CommonService.java

@@ -0,0 +1,12 @@
+package com.usoftchina.saas.commons.api;
+
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+@FeignClient("commons-server")
+public interface CommonService {
+
+    @PostMapping("/action/audit")
+    public String commonAudit(@RequestParam String table, @RequestParam String keyvalue, @RequestParam String status,
+                                      @RequestParam String statuscode, @RequestParam String auditdate, @RequestParam String auditman);
+}

+ 14 - 3
applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/controller/CommonController.java

@@ -3,9 +3,10 @@ package com.usoftchina.saas.commons.controller;
 import com.usoftchina.saas.base.Result;
 import com.usoftchina.saas.commons.service.CommonService;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.context.request.async.DeferredResult;
+
+import java.util.concurrent.CompletableFuture;
 
 @RestController
 public class CommonController {
@@ -23,4 +24,14 @@ public class CommonController {
         return Result.success(commonService.initCheck());
     }
 
+    @PostMapping("/action/audit")
+    public DeferredResult commonAudit(@RequestParam String table, @RequestParam String keyvalue, @RequestParam String status,
+                              @RequestParam String statuscode, @RequestParam String auditdate, @RequestParam String auditman) {
+
+        DeferredResult<String> deferredResult = new DeferredResult<>();
+        CompletableFuture.supplyAsync(() -> commonService.commonAudit(table, keyvalue, status, statuscode, auditdate, auditman))
+                .whenCompleteAsync((result, throwable) -> deferredResult.setResult(result));
+        return deferredResult;
+    }
+
 }

+ 1 - 0
applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/mapper/CommonMapper.java

@@ -14,4 +14,5 @@ public interface CommonMapper {
 
     int getCountVendor(@Param("companyId") Long companyId);
 
+    void commonAudit(String sql);
 }

+ 1 - 0
applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/service/CommonService.java

@@ -10,4 +10,5 @@ public interface CommonService {
      */
     InitStatusDTO initCheck();
 
+    String commonAudit(String table, String keyvalue, String status, String statuscode, String auditdate, String auditman);
 }

+ 40 - 0
applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/service/impl/CommonServiceImpl.java

@@ -2,11 +2,16 @@ package com.usoftchina.saas.commons.service.impl;
 
 import com.usoftchina.saas.commons.dto.InitStatusDTO;
 import com.usoftchina.saas.commons.mapper.CommonMapper;
+import com.usoftchina.saas.commons.po.Status;
 import com.usoftchina.saas.commons.service.CommonService;
 import com.usoftchina.saas.context.BaseContextHolder;
+import com.usoftchina.saas.utils.DateUtils;
+import com.usoftchina.saas.utils.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.Date;
+
 @Service
 public class CommonServiceImpl implements CommonService {
 
@@ -43,4 +48,39 @@ public class CommonServiceImpl implements CommonService {
         }
         return result;
     }
+
+    @Override
+    public String commonAudit(String table, String keyvalue, String status, String statuscode, String auditdate, String auditman) {
+        Long companyId = BaseContextHolder.getCompanyId();
+        if (StringUtils.isEmpty(table) || StringUtils.isEmpty(keyvalue)) {
+            return null;
+        }
+        String sql = praseSql(table, keyvalue, status, statuscode, auditdate, auditman, companyId);
+        if (null != sql) {
+            commonMapper.commonAudit(sql);
+        }
+        return "success";
+    }
+
+    private String praseSql(String table, String keyvalue, String status, String statuscode, String auditdate, String auditman, Long companyId) {
+        String sql = "update " + table + " set ";
+        StringBuilder sb = new StringBuilder();
+        if (!StringUtils.isEmpty(status)) {
+            sb.append(" " + status + " = '" + Status.AUDITED.getDisplay() + "',");
+        }
+        if (!StringUtils.isEmpty(statuscode)) {
+            sb.append(" " + statuscode + "='" + Status.AUDITED.name() + "',");
+        }
+        if (!StringUtils.isEmpty(auditdate)) {
+            sb.append(" " + auditdate + "='" + DateUtils.format(new Date(), "yyyy-MM-dd") + "',");
+        }
+        if (!StringUtils.isEmpty(auditman)) {
+            sb.append(" " + auditman + "='" + BaseContextHolder.getUserName() + "',");
+        }
+        if (sb.length() > 0) {
+            sql =  sql + sb.substring(0, sb.length() - 1) + " where " + keyvalue + " and companyId=" + companyId;
+            return sql;
+        }
+        return null;
+    }
 }

+ 5 - 0
applications/commons/commons-server/src/main/resources/mapper/CommonMapper.xml

@@ -13,7 +13,12 @@
     <select id="getCountCustomer" resultType="int">
         SELECT COUNT(*) FROM CUSTOMER WHERE COMPANYID=#{companyId} AND CU_STATUSCODE = 'OPEN'
     </select>
+
     <select id="getCountVendor" resultType="int">
         SELECT COUNT(*) FROM VENDOR WHERE COMPANYID=#{companyId} AND VE_STATUSCODE = 'OPEN'
     </select>
+
+    <update id="commonAudit" parameterType="string">
+      ${value}
+    </update>
 </mapper>

+ 2 - 0
applications/document/document-dto/src/main/java/com.usoftchina.saas.document.dto/CustomerDTO.java

@@ -61,4 +61,6 @@ public class CustomerDTO extends CommonBaseDTO implements Serializable {
     private Double cu_leftamount;
 
     private Double cu_recamount;
+
+    private Double cu_preamount;
 }

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

@@ -127,7 +127,9 @@ public class CustomerServiceImpl extends CommonBaseServiceImpl<CustomerMapper, C
         //应付款余额
         Double beginapamount = main.getCu_beginaramount()==null?new Double(0):main.getCu_beginaramount();
         Double beginprepayamount = main.getCu_beginprerecamount()==null?new Double(0):main.getCu_beginprerecamount();
-        customer.setCu_leftamount(beginapamount-beginprepayamount);
+        Double recamount = main.getCu_recamount()==null? new Double(0):main.getCu_recamount();
+        Double preamount = main.getCu_preamount()==null? new Double(0):main.getCu_preamount();
+        customer.setCu_leftamount(beginapamount-beginprepayamount+recamount-preamount);
 
         //编号校验
         cu_code = pushMaxnubmer(cu_code, cu_id);

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

@@ -129,7 +129,9 @@ public class VendorServiceImpl extends CommonBaseServiceImpl<VendorMapper, Vendo
             //更新应付款余额
             Double beginapamount = main.getVe_beginapamount()==null ? new Double(0):main.getVe_beginapamount();
             Double beginprepayamount = main.getVe_beginprepayamount()==null ? new Double(0):main.getVe_beginprepayamount();
-            main.setVe_leftamount(beginapamount-beginprepayamount);
+            Double payamount = main.getVe_payamount()==null? new Double(0):main.getVe_payamount();
+            Double preamount = main.getVe_preamount()==null? new Double(0):main.getVe_preamount();
+            main.setVe_leftamount(beginapamount-beginprepayamount+payamount-preamount);
             getMapper().insertSelective(main);
             Long mainId = main.getId();
             //更新明细表vc_veid

+ 1 - 0
applications/document/document-server/src/main/resources/mapper/CustomerMapper.xml

@@ -31,6 +31,7 @@
     <result column="cu_text5" jdbcType="VARCHAR" property="cu_text5" />
     <result column="cu_leftamount" jdbcType="DOUBLE" property="cu_leftamount" />
     <result column="cu_recamount" jdbcType="DOUBLE" property="cu_recamount" />
+    <result column="cu_preamount" jdbcType="DOUBLE" property="cu_preamount" />
   </resultMap>
   <sql id="Base_Column_List">
     cu_id, cu_code, cu_name, cu_uu, cu_type, cu_begindate, cu_beginaramount, cu_beginprerecamount, 

+ 83 - 0
applications/money/money-server/src/main/java/com/usoftchina/saas/money/po/Paybalance.java

@@ -63,6 +63,25 @@ public class Paybalance extends CommonBaseEntity implements Serializable {
 
     private Double ve_leftamount;
 
+    private String pd_bankname;
+
+    private String pd_paymethod;
+
+    private String pd_paycode;
+
+    private String pd_remark;
+
+    private String pbd_slcode;
+
+    private String pbd_slkind;
+
+    private Date pbd_sldate;
+
+    private Double pbd_amount;
+
+    private Double pbd_nowbalance;
+
+
     public Date getUpdatedate() {
         return updatedate;
     }
@@ -262,4 +281,68 @@ public class Paybalance extends CommonBaseEntity implements Serializable {
     public void setVe_leftamount(Double ve_leftamount) {
         this.ve_leftamount = ve_leftamount;
     }
+
+    public String getPd_bankname() {
+        return pd_bankname;
+    }
+
+    public void setPd_bankname(String pd_bankname) {
+        this.pd_bankname = pd_bankname;
+    }
+
+    public String getPbd_slcode() {
+        return pbd_slcode;
+    }
+
+    public void setPbd_slcode(String pbd_slcode) {
+        this.pbd_slcode = pbd_slcode;
+    }
+
+    public String getPbd_slkind() {
+        return pbd_slkind;
+    }
+
+    public void setPbd_slkind(String pbd_slkind) {
+        this.pbd_slkind = pbd_slkind;
+    }
+
+    public Date getPbd_sldate() {
+        return pbd_sldate;
+    }
+
+    public void setPbd_sldate(Date pbd_sldate) {
+        this.pbd_sldate = pbd_sldate;
+    }
+
+    public Double getPbd_amount() {
+        return pbd_amount;
+    }
+
+    public void setPbd_amount(Double pbd_amount) {
+        this.pbd_amount = pbd_amount;
+    }
+
+    public Double getPbd_nowbalance() {
+        return pbd_nowbalance;
+    }
+
+    public void setPbd_nowbalance(Double pbd_nowbalance) {
+        this.pbd_nowbalance = pbd_nowbalance;
+    }
+
+    public String getPd_paymethod() {
+        return pd_paymethod;
+    }
+
+    public void setPd_paymethod(String pd_paymethod) {
+        this.pd_paymethod = pd_paymethod;
+    }
+
+    public String getPd_remark() {
+        return pd_remark;
+    }
+
+    public void setPd_remark(String pd_remark) {
+        this.pd_remark = pd_remark;
+    }
 }

+ 21 - 0
applications/money/money-server/src/main/java/com/usoftchina/saas/money/po/Recbalance.java

@@ -63,6 +63,27 @@ public class Recbalance extends CommonBaseEntity implements Serializable {
 
     private Double cu_leftamount;
 
+    private String rd_bankname;
+
+    private String rd_paymethod;
+
+    private String rd_paycode;
+
+    private String rd_remark;
+
+    private String rbd_slcode;
+
+    private String rbd_slkind;
+
+    private Date rbd_sldate;
+
+    private Double rbd_amount;
+
+    private Double rbd_nowbalance;
+
+
+
+
     public Date getUpdatedate() {
         return updatedate;
     }

+ 21 - 5
applications/money/money-server/src/main/resources/mapper/PaybalanceMapper.xml

@@ -30,6 +30,15 @@
     <result column="pb_text4" jdbcType="VARCHAR" property="pb_text4" />
     <result column="pb_text5" jdbcType="VARCHAR" property="pb_text5" />
     <result column="ve_leftamount" jdbcType="DOUBLE" property="ve_leftamount" />
+    <result column="pd_bankname" jdbcType="VARCHAR" property="pd_bankname" />
+    <result column="pd_paymethod" jdbcType="VARCHAR" property="pd_paymethod" />
+    <result column="pd_paycode" jdbcType="VARCHAR" property="pd_paycode" />
+    <result column="pd_remark" jdbcType="VARCHAR" property="pd_remark" />
+    <result column="pbd_slcode" jdbcType="VARCHAR" property="pbd_slcode" />
+    <result column="pbd_slkind" jdbcType="VARCHAR" property="pbd_slkind" />
+    <result column="pbd_sldate" jdbcType="TIMESTAMP" property="pbd_sldate" />
+    <result column="pbd_amount" jdbcType="DOUBLE" property="pbd_amount" />
+    <result column="pbd_nowbalance" jdbcType="DOUBLE" property="pbd_nowbalance" />
   </resultMap>
   <sql id="Example_Where_Clause">
     <where>
@@ -98,6 +107,10 @@
   <sql id="left_Column_List">
     ve_leftamount
   </sql>
+  <sql id="detail_Column_List">
+    pd_bankname,pd_amount,pd_paymethod,pd_remark,pbd_slcode,pbd_slkind,
+    pbd_sldate,pbd_amount,pbd_nowbalance
+  </sql>
   <select id="selectList" resultMap="BaseResultMap">
     select
     <include refid="Base_Column_List" />
@@ -419,8 +432,10 @@
 
   <select id="selectPaybalanceBycondition" resultMap="BaseResultMap">
     select
-    <include refid="Base_Column_List" />
-    from Paybalance
+    <include refid="Base_Column_List" />,
+    <include refid="detail_Column_List" />
+    from paybalance left join paybalancedet on pd_pbid=pb_id and paybalance.companyId=paybalancedet.companyId
+    left join paybalancedetail on pbd_pbid=pb_id and paybalancedetail.companyId=paybalance.companyId
     <where>
       <if test="con != null">
         ${con}
@@ -433,9 +448,10 @@
 
   <select id="selectPaybalanceListByCondition" resultMap="BaseResultMap">
   select
-  <include refid="Base_Column_List" />
-  from paybalance
-    left join paybalancedet on pb_id=pd_pbid left join paybalancedetail on pb_id=pbd_rbid
+    <include refid="Base_Column_List" />,
+    <include refid="detail_Column_List" />
+    from paybalance left join paybalancedet on pd_pbid=pb_id and paybalance.companyId=paybalancedet.companyId
+    left join paybalancedetail on pbd_pbid=pb_id and paybalancedetail.companyId=paybalance.companyId
     <where>
       <if test="con != null">
         ${con}

+ 22 - 5
applications/money/money-server/src/main/resources/mapper/RecbalanceMapper.xml

@@ -30,6 +30,15 @@
     <result column="rb_text4" jdbcType="VARCHAR" property="rb_text4" />
     <result column="rb_text5" jdbcType="VARCHAR" property="rb_text5" />
     <result column="cu_leftamount" jdbcType="DOUBLE" property="cu_leftamount" />
+    <result column="rd_bankname" jdbcType="VARCHAR" property="rd_bankname" />
+    <result column="rd_paymethod" jdbcType="VARCHAR" property="rd_paymethod" />
+    <result column="rd_paycode" jdbcType="VARCHAR" property="rd_paycode" />
+    <result column="rd_remark" jdbcType="VARCHAR" property="rd_remark" />
+    <result column="rbd_slcode" jdbcType="VARCHAR" property="rbd_slcode" />
+    <result column="rbd_slkind" jdbcType="VARCHAR" property="rbd_slkind" />
+    <result column="rbd_sldate" jdbcType="TIMESTAMP" property="rbd_sldate" />
+    <result column="rbd_amount" jdbcType="DOUBLE" property="rbd_amount" />
+    <result column="rbd_nowbalance" jdbcType="DOUBLE" property="rbd_nowbalance" />
   </resultMap>
   <sql id="Example_Where_Clause">
     <where>
@@ -98,6 +107,11 @@
   <sql id="left_Column_List">
     cu_leftamount
   </sql>
+  <sql id="detail_Column_List">
+      rd_bankname,rd_amount,rd_paymethod,rd_paycode,rd_remark,rbd_slcode,rbd_slkind,
+    rbd_sldate,rbd_amount,rbd_nowbalance
+  </sql>
+
   <select id="selectByExample" parameterType="com.usoftchina.saas.money.po.RecbalanceExample" resultMap="BaseResultMap">
     select
     <if test="distinct">
@@ -122,8 +136,10 @@
 
   <select id="selectRecbalanceBycondition" resultMap="BaseResultMap">
     select
-    <include refid="Base_Column_List" />
-    from recbalance
+    <include refid="Base_Column_List" />,
+    <include refid="detail_Column_List" />
+    from recbalance left join recbalancedet on rd_rbid=rb_id and recbalance.companyId=recbalancedet.companyId
+    left join recbalancedetail on rbd_rbid=rb_id and recbalancedetail.companyId=recbalance.companyId
     <where>
       <if test="con != null">
         ${con}
@@ -136,9 +152,10 @@
 
   <select id="selectRecbalanceListByCondition" resultMap="BaseResultMap">
     select
-    <include refid="Base_Column_List" />
-    from recbalance
-    left join recbalancedet on rb_id=rd_rbid left join recbalancedetail on rb_id=rbd_rbid
+    <include refid="Base_Column_List" />,
+    <include refid="detail_Column_List" />
+    from recbalance left join recbalancedet on rd_rbid=rb_id and recbalance.comranyId=recbalancedet.comranyId
+    left join recbalancedetail on rbd_rbid=rb_id and recbalancedetail.comranyId=recbalance.comranyId
     <where>
       <if test="con != null">
         ${con}

+ 2 - 7
applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/service/impl/ProdInOutServiceImpl.java

@@ -17,6 +17,7 @@ import com.usoftchina.saas.context.BaseContextHolder;
 import com.usoftchina.saas.document.api.WarehouseApi;
 import com.usoftchina.saas.exception.BizException;
 import com.usoftchina.saas.exception.ExceptionCode;
+import com.usoftchina.saas.page.PageDefault;
 import com.usoftchina.saas.page.PageRequest;
 import com.usoftchina.saas.sale.dto.ProdIODetailDTO;
 import com.usoftchina.saas.sale.dto.ProdInOutDTO;
@@ -344,13 +345,7 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
     }
 
     @Override
-    public PageInfo<ProdInOutList> getListData(PageRequest page, ListReqDTO req) {
-        //设置默认分页
-        if (null == page || page.getSize() == 0 || page.getNumber() == 0) {
-            page = new PageRequest();
-            page.setNumber(1);
-            page.setSize(10);
-        }
+    public PageInfo<ProdInOutList> getListData(@PageDefault(size = 10) PageRequest page, ListReqDTO req) {
         PageHelper.startPage(page.getNumber(), page.getSize());
         //查询数据
         List<ProdInOutList> lists = getListByMode(req);

+ 2 - 7
applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/service/impl/SaleReportServiceImpl.java

@@ -4,6 +4,7 @@ import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.usoftchina.saas.commons.dto.ListReqDTO;
 import com.usoftchina.saas.context.BaseContextHolder;
+import com.usoftchina.saas.page.PageDefault;
 import com.usoftchina.saas.page.PageRequest;
 import com.usoftchina.saas.sale.mapper.SaleProfitViewMapper;
 import com.usoftchina.saas.sale.mapper.SalerecViewMapper;
@@ -35,13 +36,7 @@ public class SaleReportServiceImpl implements SaleReportService{
         return getListDATA(page, req, "SaleRec");
     }
 
-    private PageInfo getListDATA(PageRequest page, ListReqDTO req, String type) {
-        //设置默认分页
-        if (null == page || page.getSize() == 0 || page.getNumber() == 0) {
-            page = new PageRequest();
-            page.setNumber(1);
-            page.setSize(10);
-        }
+    private PageInfo getListDATA(@PageDefault(size = 10) PageRequest page, ListReqDTO req, String type) {
         PageHelper.startPage(page.getNumber(), page.getSize());
         //查询数据
         List lists = getListByType(req, type);

+ 9 - 9
applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/service/impl/SaleServiceImpl.java

@@ -2,6 +2,7 @@ package com.usoftchina.saas.sale.service.impl;
 
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
+import com.usoftchina.saas.commons.api.CommonService;
 import com.usoftchina.saas.commons.api.MaxnumberService;
 import com.usoftchina.saas.commons.api.MessageLogService;
 import com.usoftchina.saas.commons.dto.BatchDealBaseDTO;
@@ -13,6 +14,7 @@ import com.usoftchina.saas.commons.po.Operation;
 import com.usoftchina.saas.commons.po.Status;
 import com.usoftchina.saas.context.BaseContextHolder;
 import com.usoftchina.saas.exception.BizException;
+import com.usoftchina.saas.page.PageDefault;
 import com.usoftchina.saas.page.PageRequest;
 import com.usoftchina.saas.sale.dto.SaleDTO;
 import com.usoftchina.saas.sale.dto.SaleDetailDTO;
@@ -56,15 +58,11 @@ public class SaleServiceImpl implements SaleService{
     private ProdIODetailMapper prodIODetailMapper;
     @Autowired
     private ProdInOutService prodInOutService;
+    @Autowired
+    private CommonService commonService;
 
     @Override
-    public PageInfo<SaleList> getListData(PageRequest page, ListReqDTO req) {
-        //设置默认分页
-        if (null == page || page.getSize() == 0 || page.getNumber() == 0) {
-            page = new PageRequest();
-            page.setNumber(1);
-            page.setSize(10);
-        }
+    public PageInfo<SaleList> getListData(@PageDefault(size = 10) PageRequest page, ListReqDTO req) {
         PageHelper.startPage(page.getNumber(), page.getSize());
         //查询数据
         List<SaleList> lists = getListByMode(req);
@@ -232,7 +230,7 @@ public class SaleServiceImpl implements SaleService{
     }
 
     private void singleAudit(Long id) {
-        Sale sale = new Sale();
+        /*Sale sale = new Sale();
         //生成更新对象
         sale.setId(id);
         sale.setSa_status(Status.AUDITED.getDisplay());
@@ -242,7 +240,9 @@ public class SaleServiceImpl implements SaleService{
         sale.setSa_auditman("TESTADMIN");
         sale.setSa_auditdate(new Date());
         //更新存在字段
-        saleMapper.updateByPrimaryKeySelective(sale);
+        saleMapper.updateByPrimaryKeySelective(sale);*/
+        commonService.commonAudit("sale", "sa_id=" + id, "sa_status",
+                "sa_statuscode", "sa_auditdate", "sa_auditman");
         //更新销售金额
         updateTotal(id);
         //更新从表总额

+ 39 - 1
frontend/saas-web/app/view/core/form/FormPanel.js

@@ -443,7 +443,45 @@ Ext.define('saas.view.core.form.FormPanel', {
     },
 
     getDirtyData: function() {
-        return this.getForm().getDirtyData();
+        var me = this,
+        viewModel = me.getViewModel(),
+        allData = viewModel.getData(),
+        bindFields = allData.base.bindFields,
+        detailCount = me.detailCount,
+        formData = {},
+        detailGrids = me.query('detailGridField');
+
+        Ext.Array.each(bindFields, function(field) {
+            var v = allData[field];
+            if(Ext.isDate(v)) {
+                v = Ext.Date.format(v, 'Y-m-d H:i:s');
+            }
+            formData[field] = v;
+        });
+
+        var dirtyData = {
+            main: formData,
+        };
+
+        for (var i = 0; i < detailCount; i++) {
+            var g = detailGrids[i];
+            var gridDirtyData = g.getDirtyData();
+            var modelDetail = allData['detail' + i];
+            var detailBindFields = modelDetail.detailBindFields;
+
+            Ext.Array.each(gridDirtyData, function(d) {
+                for(k in d) {
+                    if(!Ext.Array.contains(detailBindFields, k)) {
+                        delete d[k];
+                    }
+                }
+            });
+            
+
+            dirtyData['detail' + i] = gridDirtyData;
+        }
+
+        return dirtyData;
     },
 
     beforeSave: function() {

+ 25 - 0
frontend/saas-web/app/view/core/form/field/DetailGridField.js

@@ -451,6 +451,31 @@ Ext.define('saas.view.core.form.field.DetailGridField', {
         return allData;
     },
 
+    getDirtyData: function() {
+        var me = this,
+        store = me.getStore(),
+        allData = store.getData().items,
+        dirtyData = [];
+
+        Ext.Array.each(allData, function(item){
+            var d = Object.assign({}, item.data),
+            dirty = item.dirty;
+
+            if(dirty){
+                if((typeof d.id) != "number" && d.id.indexOf('-')>-1){
+                    d.id = 0;
+                }
+                for(k in d) {
+                    if(Ext.isDate(d[k])) {
+                        d[k] = Ext.Date.format(d[k], 'Y-m-d H:i:s');
+                    }
+                }
+                dirtyData.push(d);
+            }
+        });
+        return dirtyData;
+    },
+
     /**
      * 获得有效数据
      */

+ 10 - 0
frontend/saas-web/app/view/document/vendor/BasePanel.js

@@ -140,6 +140,16 @@ Ext.define('saas.view.document.vendor.BasePanel', {
             dataIndex : "ve_status", 
             width : 120.0, 
             xtype : ""
+        },{
+            text: '应收款余额',
+            dataIndex : 've_leftamount',
+            width : 120,
+            renderer : function(v) {
+                var arr = (v + '.').split('.');
+                var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
+                var format = '0,000.' + xr.join();
+                return Ext.util.Format.number(v, format);
+            },
         }]
     },
 

+ 96 - 16
frontend/saas-web/app/view/money/payBalance/QueryPanel.js

@@ -11,22 +11,42 @@ Ext.define('saas.view.money.paybalance.QueryPanel', {
         xtype: 'textfield',
         name: 'pb_code',
         fieldLabel: '单据编号',
-        columnWidth: 0.2
+        columnWidth: 0.3
+    },{
+        xtype: 'dbfindtrigger',
+        name: 'pb_vendname',
+        fieldLabel: '供应商',
+        columnWidth: 0.3
+    },{
+        xtype: 'textfield',
+        name: 'pb_manname',
+        fieldLabel: '付款人',
+        columnWidth: 0.3
+    },{
+        xtype: 'dbfindtrigger',
+        name: 'pd_bankname',
+        fieldLabel: '资金账户',
+        columnWidth: 0.3
     },{
         xtype: 'condatefield',
         name: 'pb_date',
-        fieldLabel: '日期',
-        columnWidth: 0.5,
+        fieldLabel: '单据日期',
+        columnWidth: 0.6,
         operation: 'between'
     },{
         xtype: 'multicombo',
         name: 'pb_status',
         fieldLabel: '审核状态',
-        columnWidth: 0.2,
+        columnWidth: 0.3,
         datas: [
             ["已审核", "已审核"],
             ["未审核", "未审核"]
         ]
+    },{
+        xtype: 'textfield',
+        name: 'pbd_slcode',
+        fieldLabel: '源单编号',
+        columnWidth: 0.3
     }],
     moreQueryFormItems: [],
     queryGridConfig: {
@@ -36,6 +56,7 @@ Ext.define('saas.view.money.paybalance.QueryPanel', {
         addXtype: 'money-paybalance-formpanel',
         defaultCondition:'1=1',
         baseVastUrl: '/api/money/paybalance/',
+        // baseVastUrl: 'http://192.168.253.35:8880/paybalance/',
         baseColumn: [{
             text: 'id',
             dataIndex: 'id',
@@ -43,35 +64,39 @@ Ext.define('saas.view.money.paybalance.QueryPanel', {
             xtype: 'numbercolumn',
             hidden:true
         }, {
-            text: '单据编号',
+            text: '单号',
             dataIndex: 'pb_code',
             width: 200
-        }, {
-            text: '审核状态',
-            dataIndex: 'pb_status',
-            width: 120
         }, {
             text: '单据日期',
             dataIndex: 'pb_date',
             xtype: 'datecolumn',
             width: 160
+        }, {
+            text: '审核状态',
+            dataIndex: 'pb_status',
+            width: 120
         }, {
             text: '供应商编号',
             dataIndex: 'pb_vendcode',
             width: 200,
             hidden:true
         }, {
-            text: '供应商名称',
+            text: '供应商',
             dataIndex: 'pb_vendname',
             width: 120,
         }, {
-            text: '款人',
+            text: '款人',
             dataIndex: 'pb_manname',
             width: 120,
         }, {
+            text: '资金账户',
+            dataIndex: 'pd_bankname',
+            width: 120,
+        },{
             text: '付款金额',
             xtype: 'numbercolumn',
-            dataIndex: 'pb_pdamount',
+            dataIndex: 'pd_amount',
             width: 120,
             hidden:true,
             renderer : function(v) {
@@ -81,10 +106,65 @@ Ext.define('saas.view.money.paybalance.QueryPanel', {
                 return Ext.util.Format.number(v, format);
             },
         }, {
+            text: '结算方式',
+            dataIndex: 'pd_paymethod',
+            width: 120,
+        },{
+            text: '结算号',
+            dataIndex: 'pd_paycode',
+            width: 120
+        },  {
+            text: '备注',
+            dataIndex: 'pd_remark',
+            width: 120,
+        },{
+            text: '付款总额',
+            dataIndex: 'pb_pdamount',
+            width: 120,
+            renderer : function(v) {
+                var arr = (v + '.').split('.');
+                var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
+                var format = '0,000.' + xr.join();
+                return Ext.util.Format.number(v, format);
+            },
+        },{
+            text: '源单编号',
+            dataIndex: 'pbd_slcode',
+            width: 120,
+        },{
+            text: '业务类别',
+            dataIndex: 'pbd_slkind',
+            width: 120,
+        },{
+            text: '单据日期',
+            dataIndex: 'pbd_sldate',
+            width: 120,
+            xtype:'datecolumn'
+        },{
+            text: '单据金额',
+            dataIndex: 'pbd_amount',
+            width: 120,
+            renderer : function(v) {
+                var arr = (v + '.').split('.');
+                var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
+                var format = '0,000.' + xr.join();
+                return Ext.util.Format.number(v, format);
+            },
+        },{
+            text: '本次核销金额',
+            dataIndex: 'pbd_nowbalance',
+            width: 120,
+            renderer : function(v) {
+                var arr = (v + '.').split('.');
+                var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
+                var format = '0,000.' + xr.join();
+                return Ext.util.Format.number(v, format);
+            },
+        },{
             text: '本次核销金额',
             xtype: 'numbercolumn',
             dataIndex: 'pb_pbdamount',
-            width: 120,
+            width: 0,
             hidden:true,
             renderer : function(v) {
                 var arr = (v + '.').split('.');
@@ -95,7 +175,7 @@ Ext.define('saas.view.money.paybalance.QueryPanel', {
         }, {
             text: '本次预付款',
             dataIndex: 'pb_preamount',
-            width: 120,
+            width: 0,
             hidden:true,
             renderer : function(v) {
                 var arr = (v + '.').split('.');
@@ -106,13 +186,13 @@ Ext.define('saas.view.money.paybalance.QueryPanel', {
         }, {
             text: '整单折扣',
             dataIndex: 'pb_discounts',
-            width: 120,
+            width: 0,
             hidden:true
         }, {
             text: '已核销金额',
             xtype: 'numbercolumn',
             dataIndex: 'pb_havebalance',
-            width: 120,
+            width: 0,
             hidden:true,
             renderer : function(v) {
                 var arr = (v + '.').split('.');

+ 77 - 4
frontend/saas-web/app/view/money/payBalance/QueryPanelController.js

@@ -6,16 +6,14 @@ Ext.define('saas.view.money.paybalance.QueryPanelController', {
         var me = this;
         this.control({
             //放大镜赋值关系 以及 tpl模板
-            'dbfindtrigger[name=pu_vendname]':{
+            'dbfindtrigger[name=pb_vendname]':{
                 beforerender:function(f){
                     Ext.apply(f,{
                         dataUrl:'/api/document/vendor/list',
                         addXtype: 'document-vendor-formpanel',
                         addTitle: '供应商资料',
                         dbfinds:[{
-                            from:'ve_code',to:'pu_vendcode'
-                        },{
-                            from:'ve_name',to:'pu_vendname'
+                            from:'ve_name',to:'pb_vendname'
                         }],
                         dbtpls:[{
                             field:'ve_code',width:100
@@ -178,6 +176,81 @@ Ext.define('saas.view.money.paybalance.QueryPanelController', {
                         }]   
                     }) ;   
 
+                }
+            },
+            'dbfindtrigger[name=pd_bankname]':{
+                beforerender: function (f) {
+                    Ext.apply(f, {
+                        dataUrl: '/api/document/bankinformation/list',
+                        addXtype: 'other-bankinformation',
+                        addTitle: '资金账户',
+                        dbfinds: [{
+                            from: 'id',
+                            to: 'pd_bankid'
+                        }, {
+                            from: 'bk_bankcode',
+                            to: 'pd_bankcode'
+                        },{
+                            from: 'bk_bankname',
+                            to: 'pd_bankname'
+                        }],
+                        dbtpls: [{
+                            field: 'bk_bankcode',
+                            width: 100
+                        }, {
+                            field: 'bk_bankname',
+                            width: 100
+                        }],
+                        otherConditon:'',
+                        dbSearchFields: [{
+                            emptyText: '查找资金账户',
+                            xtype: "textfield",
+                            name: "search",
+                            getCondition: function (v) {
+                                return "(upper(bk_bankcode) like '%"+v.toUpperCase()+"%' or upper(bk_bankname) like '%"+v.toUpperCase()+"%')";
+                            },
+                            allowBlank: true,
+                            columnWidth: 0.25
+                        }],
+                        dbColumns: [{
+                            "text": "账户ID",
+                            "flex": 0,
+                            "dataIndex": "id",
+                            "width": 0,
+                            "xtype": ""
+                        }, {
+                            "text": "资金账户",
+                            "flex": 1,
+                            "dataIndex": "bk_bankcode",
+                            "width": 120,
+                            "xtype": ""
+                        }, {
+                            "text": "账户名称",
+                            "flex": 1,
+                            "dataIndex": "bk_bankname",
+                            "width": 150,
+                            "xtype": ""
+                        }, {
+                            "text": "账户类别",
+                            "flex": 1,
+                            "dataIndex": "bk_type",
+                            "width": 120,
+                            "xtype": ""
+                        }, {
+                            "text": "账户余额",
+                            "flex": 1,
+                            "dataIndex": "bk_thisamount",
+                            "width": 120,
+                            xtype: 'numbercolumn',
+                        }, {
+                            "text": "建帐日期",
+                            "flex": 1,
+                            "dataIndex": "bk_date",
+                            "width": 120,
+                            "xtype": "datecolumn"
+                        }]
+                    });
+
                 }
             }
         });

+ 68 - 7
frontend/saas-web/app/view/money/recBalance/QueryPanel.js

@@ -18,22 +18,43 @@ Ext.define('saas.view.money.recBalance.QueryPanel', {
     }, {
         xtype: 'textfield',
         name: 'rb_code',
-        fieldLabel: '单据编号'
+        fieldLabel: '单据编号',
+        columnWidth: 0.3,
     }, {
+        xtype: 'dbfindtrigger',
+        name: 'rb_custname',
+        fieldLabel: '客户名',
+        columnWidth: 0.3,
+    }, {
+        xtype: 'textfield',
+        name: 'rb_manname',
+        fieldLabel: '收款人',
+        columnWidth: 0.3,
+    },{
+        xtype: 'textfield',
+        name: 'rd_bankname',
+        fieldLabel: '资金账户',
+        columnWidth: 0.3,
+    },  {
         xtype: 'condatefield',
         name: 'rb_date',
-        fieldLabel: '日期',
-        columnWidth: 0.5,
+        fieldLabel: '单据日期',
+        columnWidth: 0.6,
         operation: 'between'
     },{
         xtype: 'multicombo',
         name: 'rb_status',
         fieldLabel: '审核状态',
-        columnWidth: 0.2,
+        columnWidth: 0.3,
         datas: [
             ["已审核", "已审核"],
             ["未审核", "未审核"]
         ]
+    },{
+        xtype: 'textfield',
+        name: 'rbd_slcode',
+        fieldLabel: '源单编号',
+        columnWidth: 0.3,
     }],
     moreQueryFormItems: [],
     queryGridConfig: {
@@ -43,6 +64,7 @@ Ext.define('saas.view.money.recBalance.QueryPanel', {
         addXtype: 'money-recbalance-formpanel',
         defaultCondition:'',
         baseVastUrl: '/api/money/recbalance/',
+        // baseVastUrl: 'http://192.168.253.35:8880/recbalance/',
         baseColumn: [{
             text: 'id',
             dataIndex: 'id',
@@ -72,10 +94,25 @@ Ext.define('saas.view.money.recBalance.QueryPanel', {
         }, {
             text: '收款人',
             dataIndex: 'rb_manname',
-            xtype: 'numbercolumn',
             width: 120,
         }, {
-            text: '收款金额',
+            text: '资金账户',
+            dataIndex: 'rd_bankname',
+            width: 120,
+        },{
+            text: '结算方式',
+            dataIndex: 'rd_paymethod',
+            width: 120,
+        },{
+            text: '结算号',
+            dataIndex: 'rd_paycode',
+            width: 120,
+        },{
+            text: '备注',
+            dataIndex: 'rd_remark',
+            width: 120,
+        },{
+            text: '收款总额',
             dataIndex: 'rb_rdamount',
             xtype: 'numbercolumn',
             width: 120,
@@ -86,6 +123,30 @@ Ext.define('saas.view.money.recBalance.QueryPanel', {
                 var format = '0,000.' + xr.join();
                 return Ext.util.Format.number(v, format);
             },
-        }]
+        },{
+            text: '源单编号',
+            dataIndex: 'rbd_slcode',
+            width: 120,
+        },{
+            text: '业务类别',
+            dataIndex: 'rbd_slkind',
+            width: 120,
+        },{
+            text: '单据日期',
+            dataIndex: 'rbd_sldate',
+            xtype: 'datecolumn',
+            width: 120,
+        },{
+            text: '单据金额',
+            dataIndex: 'rbd_amount',
+            xtype: 'numbercolumn',
+            width: 120,
+        },{
+            text: '本次核销金额',
+            dataIndex: 'rbd_nowbalance',
+            xtype: 'numbercolumn',
+            width: 120,
+        },
+        ]
     }
 });

+ 91 - 2
frontend/saas-web/app/view/money/recBalance/QueryPanelController.js

@@ -6,7 +6,7 @@ Ext.define('saas.view.money.recBalance.QueryPanelController', {
         var me = this;
         this.control({
             //放大镜赋值关系 以及 tpl模板
-            'dbfindtrigger[name=pu_vendname]':{
+            'dbfindtrigger[name=rd_bankname]':{
                 beforerender:function(f){
                     Ext.apply(f,{
                         dataUrl: '/api/document/vendor/list',
@@ -180,7 +180,96 @@ Ext.define('saas.view.money.recBalance.QueryPanelController', {
                     }) ;   
 
                 }
-            }
+            },
+            'dbfindtrigger[name=rb_custname]':{
+                beforerender:function(f){
+                    Ext.apply(f,{
+                        //数据接口
+                        dataUrl: '/api/document/customer/list',
+                        addXtype: 'document-customer-formpanel',
+                        addTitle: '客户资料',
+                        //赋值
+                        dbfinds:[{
+                            from: 'id', to: 'rb_custid'
+                        }, {
+                            from:'cu_code', to:'rb_custcode'
+                        },{
+                            from:'cu_name', to:'rb_custname'
+                        },{
+                            from:'cu_leftamount', to:'cu_leftamount'
+                        }],
+                        //联想设置
+                        dbtpls:[{
+                            field:'cu_code',width:100
+                        },{
+                            field:'cu_name',width:100
+                        },{
+                            field:'cu_leftamount',width:100
+                        }],
+                        defaultCondition: 'cu_statuscode="OPEN"',
+                        dbSearchFields:[{
+                            emptyText:'输入客户编号或名称',
+                            xtype : "textfield",
+                            name : "search",
+                            getCondition: function(v) {
+                                return "(upper(cu_code) like '%"+v.toUpperCase()+"%' or upper(cu_name) like '%"+v.toUpperCase()+"%')";
+                            },
+                            allowBlank : true,
+                            columnWidth : 0.25
+                        }],
+                        //放大镜窗口列表
+                        dbColumns:[{
+                            "text": "客户ID",
+                            "hidden": true,
+                            "dataIndex": "id",
+                        },{
+                            "text": "客户编号",
+                            "dataIndex": "cu_code",
+                            "width": 200,
+                        }, {
+                            "text": "客户名称",
+                            "dataIndex": "cu_name",
+                            "width": 200
+                        },{
+                            "text": "客户类型",
+                            "dataIndex": "cu_name",
+                            "width": 100
+                        },{
+                            "text": "业务员",
+                            "dataIndex": "cu_sellername",
+                            "width": 100
+                        },{
+                            "text": "应收款余额",
+                            "dataIndex": "cu_leftamount",
+                            "width": 100,
+                            xtype: 'numbercolumn',
+                            align:'end'
+                        },{
+                            "text": "税率",
+                            "dataIndex": "cu_taxrate",
+                            "width": 100,
+                            xtype: 'numbercolumn',
+                            align:'end'
+                        },{
+                            "text": "承付天数",
+                            "dataIndex": "cu_promisedays",
+                            "width": 100,
+                            xtype: 'numbercolumn',
+                            align:'end',
+                            renderer : function(v) {
+                                return Ext.util.Format.number(v, '0');
+                            }
+                        },{
+                            "text": "额度",
+                            "dataIndex": "cu_credit",
+                            "width": 100,
+                            xtype: 'numbercolumn',
+                            align:'end'
+                        }]
+                    }) ;
+
+                }
+            },
         });
 
     }

+ 2 - 2
frontend/saas-web/app/view/stock/appropriationInOut/FormPanelController.js

@@ -313,9 +313,9 @@ Ext.define('saas.view.stock.appropriationInOut.FormPanelController', {
                     addTitle: '仓库资料',
                     defaultCondition:"wh_statuscode='OPEN'",
                     dbfinds:[{
-                        from:'id',to:'id',ignore:true                          
+                        from:'id',to:'pd_whid',ignore:true                          
                     },{
-                        from:'wh_code',to:'wh_code'                          
+                        from:'wh_code',to:'pd_whcode'                          
                     },{
                         from:'wh_description',to:'pd_whname'
                     }],