Browse Source

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

rainco 7 years ago
parent
commit
aec8e6be58
34 changed files with 623 additions and 152 deletions
  1. 1 0
      applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/exception/BizExceptionCode.java
  2. 7 0
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/controller/BankinformationController.java
  3. 3 0
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/mapper/BankinformationMapper.java
  4. 2 1
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/BankinformationService.java
  5. 6 0
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/BankinformationServiceImpl.java
  6. 3 0
      applications/document/document-server/src/main/resources/mapper/BankinformationMapper.xml
  7. 1 1
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/controller/SubledgerController.java
  8. 40 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/FundtransferServiceImpl.java
  9. 42 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/OthreceiptsServiceImpl.java
  10. 42 4
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/OthspendingsServiceImpl.java
  11. 4 3
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/PaybalanceServiceImpl.java
  12. 86 3
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/RecbalanceServiceImpl.java
  13. 2 0
      applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/mapper/SaleMapper.java
  14. 5 0
      applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/service/impl/SaleServiceImpl.java
  15. 5 0
      applications/sale/sale-server/src/main/resources/mapper/SaleMapper.xml
  16. 18 0
      base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/controller/AccountController.java
  17. 16 0
      base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/mapper/AccountMapper.java
  18. 8 0
      base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/service/AccountService.java
  19. 14 0
      base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/service/impl/AccountServiceImpl.java
  20. 58 0
      base-servers/account/account-server/src/main/resources/mapper/AccountMapper.xml
  21. 4 4
      frontend/saas-web/app/view/core/query/QueryFormPanel.js
  22. 1 1
      frontend/saas-web/app/view/home/Home.js
  23. 34 30
      frontend/saas-web/app/view/money/payBalance/FormPanel.js
  24. 68 0
      frontend/saas-web/app/view/money/payBalance/FormPanelController.js
  25. 31 9
      frontend/saas-web/app/view/money/recBalance/FormPanel.js
  26. 68 1
      frontend/saas-web/app/view/money/recBalance/FormPanelController.js
  27. 6 5
      frontend/saas-web/app/view/purchase/purchase/FormPanel.js
  28. 1 1
      frontend/saas-web/app/view/purchase/purchaseIn/FormPanel.js
  29. 1 1
      frontend/saas-web/app/view/purchase/purchaseOut/FormPanel.js
  30. 2 1
      frontend/saas-web/app/view/sale/sale/FormPanel.js
  31. 6 1
      frontend/saas-web/app/view/stock/make/FormPanel.js
  32. 9 64
      frontend/saas-web/app/view/stock/make/FormPanelController.js
  33. 24 17
      frontend/saas-web/app/view/sys/maxnumbers/DataList.js
  34. 5 5
      frontend/saas-web/resources/json/navigation.json

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

@@ -44,6 +44,7 @@ public enum BizExceptionCode implements BaseExceptionCode {
     SALEOUT_ALL_TURNIN(72003, "该出货单已全部转退货,无法转销售退货单"),
     SALEOUT_ALL_TURNIN(72003, "该出货单已全部转退货,无法转销售退货单"),
     SALEOUT_POSTSTATUS_ERROR(72004,"当前单据状态无法进行此操作。"),
     SALEOUT_POSTSTATUS_ERROR(72004,"当前单据状态无法进行此操作。"),
     SALEOUT_POST_ERROR(72005,""),
     SALEOUT_POST_ERROR(72005,""),
+    SALEOUT_UNAUDIT_ERROR(72006,"销售订单已出货,无法反审核"),
     //资金
     //资金
 
 
     //库存
     //库存

+ 7 - 0
applications/document/document-server/src/main/java/com/usoftchina/saas/document/controller/BankinformationController.java

@@ -2,6 +2,7 @@ package com.usoftchina.saas.document.controller;
 
 
 import com.github.pagehelper.PageInfo;
 import com.github.pagehelper.PageInfo;
 import com.usoftchina.saas.base.Result;
 import com.usoftchina.saas.base.Result;
+import com.usoftchina.saas.commons.dto.ComboDTO;
 import com.usoftchina.saas.commons.dto.ListReqDTO;
 import com.usoftchina.saas.commons.dto.ListReqDTO;
 import com.usoftchina.saas.document.entities.Bankinformation;
 import com.usoftchina.saas.document.entities.Bankinformation;
 import com.usoftchina.saas.document.service.BankinformationService;
 import com.usoftchina.saas.document.service.BankinformationService;
@@ -38,4 +39,10 @@ public class BankinformationController {
         PageInfo<Bankinformation> bankinformationList = bankinformationService.selectList(page, condition);
         PageInfo<Bankinformation> bankinformationList = bankinformationService.selectList(page, condition);
         return Result.success(bankinformationList);
         return Result.success(bankinformationList);
     }
     }
+
+    @GetMapping("/getCombo")
+    public Result getCombo(){
+        List<ComboDTO> comboDTOList = bankinformationService.getCombo();
+        return Result.success(comboDTOList);
+    }
 }
 }

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

@@ -1,6 +1,7 @@
 package com.usoftchina.saas.document.mapper;
 package com.usoftchina.saas.document.mapper;
 
 
 import com.usoftchina.saas.base.mapper.CommonBaseMapper;
 import com.usoftchina.saas.base.mapper.CommonBaseMapper;
+import com.usoftchina.saas.commons.dto.ComboDTO;
 import com.usoftchina.saas.document.entities.Bankinformation;
 import com.usoftchina.saas.document.entities.Bankinformation;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Param;
 
 
@@ -22,4 +23,6 @@ public interface BankinformationMapper extends CommonBaseMapper<Bankinformation>
     int updateByPrimaryKey(Bankinformation record);
     int updateByPrimaryKey(Bankinformation record);
 
 
     List<Bankinformation> selectBankinformationBycondition(@Param("con") String con, @Param("companyId") Long companyId);
     List<Bankinformation> selectBankinformationBycondition(@Param("con") String con, @Param("companyId") Long companyId);
+
+    List<ComboDTO> getCombo(@Param("companyId") Long companyId);
 }
 }

+ 2 - 1
applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/BankinformationService.java

@@ -2,6 +2,7 @@ package com.usoftchina.saas.document.service;
 
 
 import com.github.pagehelper.PageInfo;
 import com.github.pagehelper.PageInfo;
 import com.usoftchina.saas.base.service.CommonBaseService;
 import com.usoftchina.saas.base.service.CommonBaseService;
+import com.usoftchina.saas.commons.dto.ComboDTO;
 import com.usoftchina.saas.commons.dto.ListReqDTO;
 import com.usoftchina.saas.commons.dto.ListReqDTO;
 import com.usoftchina.saas.document.entities.Bankinformation;
 import com.usoftchina.saas.document.entities.Bankinformation;
 import com.usoftchina.saas.document.mapper.BankinformationMapper;
 import com.usoftchina.saas.document.mapper.BankinformationMapper;
@@ -21,5 +22,5 @@ public interface BankinformationService extends CommonBaseService<Bankinformatio
 
 
     PageInfo<Bankinformation> selectList(PageRequest page, ListReqDTO condition);
     PageInfo<Bankinformation> selectList(PageRequest page, ListReqDTO condition);
 
 
-
+    List<ComboDTO> getCombo();
 }
 }

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

@@ -3,6 +3,7 @@ package com.usoftchina.saas.document.service.impl;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.github.pagehelper.PageInfo;
 import com.usoftchina.saas.base.service.CommonBaseServiceImpl;
 import com.usoftchina.saas.base.service.CommonBaseServiceImpl;
+import com.usoftchina.saas.commons.dto.ComboDTO;
 import com.usoftchina.saas.commons.dto.ListReqDTO;
 import com.usoftchina.saas.commons.dto.ListReqDTO;
 import com.usoftchina.saas.context.BaseContextHolder;
 import com.usoftchina.saas.context.BaseContextHolder;
 import com.usoftchina.saas.document.entities.Bankinformation;
 import com.usoftchina.saas.document.entities.Bankinformation;
@@ -69,4 +70,9 @@ public class BankinformationServiceImpl extends CommonBaseServiceImpl<Bankinform
         recbalancesList = bankinformationMapper.selectBankinformationBycondition(con, companyId);
         recbalancesList = bankinformationMapper.selectBankinformationBycondition(con, companyId);
         return recbalancesList;
         return recbalancesList;
     }
     }
+
+    @Override
+    public List<ComboDTO> getCombo() {
+        return getMapper().getCombo(BaseContextHolder.getCompanyId());
+    }
 }
 }

+ 3 - 0
applications/document/document-server/src/main/resources/mapper/BankinformationMapper.xml

@@ -334,4 +334,7 @@
       </if>
       </if>
     </where>  order by bk_id
     </where>  order by bk_id
   </select>
   </select>
+  <select id="getCombo" resultType="com.usoftchina.saas.commons.dto.ComboDTO">
+        SELECT CONCAT(bk_bankcode,' ',bk_bankname) display,bk_bankname value FROM bankinformation WHERE COMPANYID=#{companyId}
+    </select>
 </mapper>
 </mapper>

+ 1 - 1
applications/money/money-server/src/main/java/com/usoftchina/saas/money/controller/SubledgerController.java

@@ -20,7 +20,7 @@ public class SubledgerController {
     @Autowired
     @Autowired
     private SubledgerService subledgerService;
     private SubledgerService subledgerService;
 
 
-    @GetMapping("/list")
+    @RequestMapping("/list")
     public Result getListData(PageRequest page, ListReqDTO condition){
     public Result getListData(PageRequest page, ListReqDTO condition){
         return Result.success(subledgerService.seleteList(page, condition));
         return Result.success(subledgerService.seleteList(page, condition));
     }
     }

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

@@ -11,6 +11,7 @@ import com.usoftchina.saas.commons.po.BillCodeSeq;
 import com.usoftchina.saas.commons.po.Status;
 import com.usoftchina.saas.commons.po.Status;
 import com.usoftchina.saas.context.BaseContextHolder;
 import com.usoftchina.saas.context.BaseContextHolder;
 import com.usoftchina.saas.exception.BizException;
 import com.usoftchina.saas.exception.BizException;
+import com.usoftchina.saas.money.mapper.BanksubledgerMapper;
 import com.usoftchina.saas.money.mapper.FundtransferMapper;
 import com.usoftchina.saas.money.mapper.FundtransferMapper;
 import com.usoftchina.saas.money.mapper.FundtransferdetailMapper;
 import com.usoftchina.saas.money.mapper.FundtransferdetailMapper;
 import com.usoftchina.saas.money.po.*;
 import com.usoftchina.saas.money.po.*;
@@ -35,6 +36,8 @@ public class FundtransferServiceImpl implements FundtransferService {
     private FundtransferdetailMapper fundtransferdetailMapper;
     private FundtransferdetailMapper fundtransferdetailMapper;
     @Autowired
     @Autowired
     private MaxnumberService maxnumberService;
     private MaxnumberService maxnumberService;
+    @Autowired
+    private BanksubledgerMapper banksubledgerMapper;
 
 
     @Override
     @Override
     public DocBaseDTO insert(Fundtran fundtran) {
     public DocBaseDTO insert(Fundtran fundtran) {
@@ -84,6 +87,7 @@ public class FundtransferServiceImpl implements FundtransferService {
         fundtransfer.setFt_status(Status.AUDITED.getDisplay());
         fundtransfer.setFt_status(Status.AUDITED.getDisplay());
         fundtransfer.setFt_statuscode(Status.AUDITED.name());
         fundtransfer.setFt_statuscode(Status.AUDITED.name());
         fundtransfer.setCompanyId(companyId);
         fundtransfer.setCompanyId(companyId);
+        this.changBankUntil(fundtran);
         if ( fundtransfer == null || "".equals(fundtransfer)){
         if ( fundtransfer == null || "".equals(fundtransfer)){
             this.insert(fundtran);
             this.insert(fundtran);
         }else {
         }else {
@@ -98,6 +102,10 @@ public class FundtransferServiceImpl implements FundtransferService {
         fundtransfer.setFt_status(com.usoftchina.saas.commons.po.Status.UNAUDITED.getDisplay());
         fundtransfer.setFt_status(com.usoftchina.saas.commons.po.Status.UNAUDITED.getDisplay());
         fundtransfer.setFt_statuscode(Status.UNAUDITED.name());
         fundtransfer.setFt_statuscode(Status.UNAUDITED.name());
         fundtransferMapper.updateByPrimaryKeySelective(fundtransfer);
         fundtransferMapper.updateByPrimaryKeySelective(fundtransfer);
+
+        //删除中间表
+        fundtransfer = fundtransferMapper.selectByPrimaryKey(id);
+        banksubledgerMapper.deleteByPrimaryKey(fundtransfer.getFt_code(), "其他收入单");
     }
     }
 
 
 
 
@@ -130,6 +138,8 @@ public class FundtransferServiceImpl implements FundtransferService {
             fundtransfer.setId(Long.valueOf(docBaseDTO.getId()));
             fundtransfer.setId(Long.valueOf(docBaseDTO.getId()));
             fundtransfer.setFt_status(com.usoftchina.saas.commons.po.Status.AUDITED.getDisplay());
             fundtransfer.setFt_status(com.usoftchina.saas.commons.po.Status.AUDITED.getDisplay());
             fundtransfer.setFt_statuscode(Status.AUDITED.name());
             fundtransfer.setFt_statuscode(Status.AUDITED.name());
+            Fundtran fundtran = this.select(Math.toIntExact(fundtransfer.getId()));
+            this.changBankUntil(fundtran);
             fundtransferMapper.updateByPrimaryKeySelective(fundtransfer);
             fundtransferMapper.updateByPrimaryKeySelective(fundtransfer);
         }
         }
     }
     }
@@ -200,4 +210,34 @@ public class FundtransferServiceImpl implements FundtransferService {
         }
         }
         return fundtransferList;
         return fundtransferList;
     }
     }
+
+    //插入bank中间表
+    public void changBankUntil(Fundtran fundtran){
+        Banksubledger banksubledger = new Banksubledger();
+        Fundtransfer fundtransfer = fundtran.getMain();
+        List<Fundtransferdetail> fundtransferdetailsList = fundtran.getItems();
+        Iterator isList = fundtransferdetailsList.iterator();
+        while (isList.hasNext()) {
+            Fundtransferdetail fundtransferdetail = (Fundtransferdetail) isList.next();
+            banksubledger.setCompanyId(BaseContextHolder.getCompanyId());
+            banksubledger.setBl_ym(fundtransferdetail.getFtd_ym());
+            banksubledger.setBl_bankid(fundtransferdetail.getFtd_bankid());
+            banksubledger.setBl_bankcode(fundtransferdetail.getFtd_bankcode());
+            banksubledger.setBl_bankname(fundtransferdetail.getFtd_bankname());
+            banksubledger.setBl_code(fundtransfer.getFt_code());
+            banksubledger.setBl_kind("资金转账");
+            banksubledger.setBl_date(fundtransfer.getFt_date());
+
+//            if (fundtransferdetail.getOs_vendid() == null || fundtransferdetail.getOs_vendid() != 0){
+//                banksubledger.setBl_asstype("供应商往来 ");
+//            }else {
+//                banksubledger.setBl_asstype(null);
+//            }
+            banksubledger.setBl_assid(0);
+            banksubledger.setBl_spending(fundtransferdetail.getFtd_nowbalance());
+            banksubledger.setBl_remark(fundtransferdetail.getFtd_remark());
+            banksubledger.setBl_orderamount(fundtransferdetail.getFtd_nowbalance() * -1);
+            banksubledgerMapper.insertSelective(banksubledger);
+        }
+    }
 }
 }

+ 42 - 0
applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/OthreceiptsServiceImpl.java

@@ -11,6 +11,7 @@ import com.usoftchina.saas.commons.po.BillCodeSeq;
 import com.usoftchina.saas.commons.po.Status;
 import com.usoftchina.saas.commons.po.Status;
 import com.usoftchina.saas.context.BaseContextHolder;
 import com.usoftchina.saas.context.BaseContextHolder;
 import com.usoftchina.saas.exception.BizException;
 import com.usoftchina.saas.exception.BizException;
+import com.usoftchina.saas.money.mapper.BanksubledgerMapper;
 import com.usoftchina.saas.money.mapper.OthreceiptsMapper;
 import com.usoftchina.saas.money.mapper.OthreceiptsMapper;
 import com.usoftchina.saas.money.mapper.OthreceiptsdetailMapper;
 import com.usoftchina.saas.money.mapper.OthreceiptsdetailMapper;
 import com.usoftchina.saas.money.po.*;
 import com.usoftchina.saas.money.po.*;
@@ -36,6 +37,8 @@ public class OthreceiptsServiceImpl implements OthreceiptsService {
     private OthreceiptsdetailMapper othreceiptsdetailMapper;
     private OthreceiptsdetailMapper othreceiptsdetailMapper;
     @Autowired
     @Autowired
     private MaxnumberService maxnumberService;
     private MaxnumberService maxnumberService;
+    @Autowired
+    private BanksubledgerMapper banksubledgerMapper;
 
 
     @Override
     @Override
     public DocBaseDTO insert(Othte othte) {
     public DocBaseDTO insert(Othte othte) {
@@ -85,6 +88,7 @@ public class OthreceiptsServiceImpl implements OthreceiptsService {
         othreceipts.setOr_status(Status.AUDITED.getDisplay());
         othreceipts.setOr_status(Status.AUDITED.getDisplay());
         othreceipts.setOr_statuscode(Status.AUDITED.name());
         othreceipts.setOr_statuscode(Status.AUDITED.name());
         othreceipts.setCompanyId(companyId);
         othreceipts.setCompanyId(companyId);
+        this.changBankUntil(othte);
         if ( othreceipts == null || "".equals(othreceipts)){
         if ( othreceipts == null || "".equals(othreceipts)){
             this.insert(othte);
             this.insert(othte);
         }else {
         }else {
@@ -99,6 +103,10 @@ public class OthreceiptsServiceImpl implements OthreceiptsService {
         othreceipts.setOr_status(com.usoftchina.saas.commons.po.Status.UNAUDITED.getDisplay());
         othreceipts.setOr_status(com.usoftchina.saas.commons.po.Status.UNAUDITED.getDisplay());
         othreceipts.setOr_statuscode(Status.UNAUDITED.name());
         othreceipts.setOr_statuscode(Status.UNAUDITED.name());
         othreceiptsMapper.updateByPrimaryKeySelective(othreceipts);
         othreceiptsMapper.updateByPrimaryKeySelective(othreceipts);
+
+        //删除中间表
+        othreceipts = othreceiptsMapper.selectByPrimaryKey(id);
+        banksubledgerMapper.deleteByPrimaryKey(othreceipts.getOr_code(), "其他收入单");
     }
     }
 
 
 
 
@@ -153,6 +161,8 @@ public class OthreceiptsServiceImpl implements OthreceiptsService {
             othreceipts.setId(Long.valueOf(docBaseDTO.getId()));
             othreceipts.setId(Long.valueOf(docBaseDTO.getId()));
             othreceipts.setOr_status(com.usoftchina.saas.commons.po.Status.AUDITED.getDisplay());
             othreceipts.setOr_status(com.usoftchina.saas.commons.po.Status.AUDITED.getDisplay());
             othreceipts.setOr_statuscode(Status.AUDITED.name());
             othreceipts.setOr_statuscode(Status.AUDITED.name());
+            Othte othte = this.select(Math.toIntExact(othreceipts.getId()));
+            this.changBankUntil(othte);
             othreceiptsMapper.updateByPrimaryKeySelective(othreceipts);
             othreceiptsMapper.updateByPrimaryKeySelective(othreceipts);
         }
         }
     }
     }
@@ -200,4 +210,36 @@ public class OthreceiptsServiceImpl implements OthreceiptsService {
         }
         }
         return othreceiptsList;
         return othreceiptsList;
     }
     }
+
+    //插入bank中间表
+    public void changBankUntil(Othte othte){
+        Banksubledger banksubledger = new Banksubledger();
+        Othreceipts othreceipts = othte.getMain();
+        List<Othreceiptsdetail> othreceiptsdetailList = othte.getItems();
+        Iterator isList = othreceiptsdetailList.iterator();
+        while (isList.hasNext()) {
+            Othreceiptsdetail othreceiptsdetail = (Othreceiptsdetail) isList.next();
+            banksubledger.setCompanyId(BaseContextHolder.getCompanyId());
+            banksubledger.setBl_ym(othreceiptsdetail.getOrd_ym());
+            banksubledger.setBl_bankid(othreceipts.getOr_bankid());
+            banksubledger.setBl_bankcode(othreceipts.getOr_bankcode());
+            banksubledger.setBl_bankname(othreceipts.getOr_bankname());
+            banksubledger.setBl_code(othreceipts.getOr_code());
+            banksubledger.setBl_kind("其他收入单");
+            banksubledger.setBl_date(othreceipts.getOr_date());
+
+            if (othreceipts.getOr_custid() == null || othreceipts.getOr_custid() != 0){
+                banksubledger.setBl_asstype("客户往来");
+            }else {
+                banksubledger.setBl_asstype(null);
+            }
+            banksubledger.setBl_assid(othreceipts.getOr_custid());
+            banksubledger.setBl_asscode(othreceipts.getOr_custcode());
+            banksubledger.setBl_assname(othreceipts.getOr_custname());
+            banksubledger.setBl_income(othreceiptsdetail.getOrd_nowbalance());
+            banksubledger.setBl_remark(othreceiptsdetail.getOrd_remark());
+            banksubledger.setBl_orderamount(othreceiptsdetail.getOrd_nowbalance());
+            banksubledgerMapper.insertSelective(banksubledger);
+        }
+    }
 }
 }

+ 42 - 4
applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/OthspendingsServiceImpl.java

@@ -11,10 +11,7 @@ import com.usoftchina.saas.commons.po.BillCodeSeq;
 import com.usoftchina.saas.commons.po.Status;
 import com.usoftchina.saas.commons.po.Status;
 import com.usoftchina.saas.context.BaseContextHolder;
 import com.usoftchina.saas.context.BaseContextHolder;
 import com.usoftchina.saas.exception.BizException;
 import com.usoftchina.saas.exception.BizException;
-import com.usoftchina.saas.money.mapper.OthreceiptsMapper;
-import com.usoftchina.saas.money.mapper.OthreceiptsdetailMapper;
-import com.usoftchina.saas.money.mapper.OthspendingsMapper;
-import com.usoftchina.saas.money.mapper.OthspendingsdetailMapper;
+import com.usoftchina.saas.money.mapper.*;
 import com.usoftchina.saas.money.po.*;
 import com.usoftchina.saas.money.po.*;
 import com.usoftchina.saas.money.service.OthspendingsService;
 import com.usoftchina.saas.money.service.OthspendingsService;
 import com.usoftchina.saas.page.PageRequest;
 import com.usoftchina.saas.page.PageRequest;
@@ -37,6 +34,8 @@ public class OthspendingsServiceImpl implements OthspendingsService {
     private OthspendingsdetailMapper othspendingsdetailMapper;
     private OthspendingsdetailMapper othspendingsdetailMapper;
     @Autowired
     @Autowired
     private MaxnumberService maxnumberService;
     private MaxnumberService maxnumberService;
+    @Autowired
+    private BanksubledgerMapper banksubledgerMapper;
 
 
     @Override
     @Override
     public DocBaseDTO insert(Othsp othsp) {
     public DocBaseDTO insert(Othsp othsp) {
@@ -117,6 +116,7 @@ public class OthspendingsServiceImpl implements OthspendingsService {
         othspendings.setOs_status(Status.AUDITED.getDisplay());
         othspendings.setOs_status(Status.AUDITED.getDisplay());
         othspendings.setOs_statuscode(Status.AUDITED.name());
         othspendings.setOs_statuscode(Status.AUDITED.name());
         othspendings.setCompanyId(companyId);
         othspendings.setCompanyId(companyId);
+        this.changBankUntil(othsp);
         if ( othspendings == null || "".equals(othspendings)){
         if ( othspendings == null || "".equals(othspendings)){
             this.insert(othsp);
             this.insert(othsp);
         }else {
         }else {
@@ -131,6 +131,10 @@ public class OthspendingsServiceImpl implements OthspendingsService {
         othspendings.setOs_status(com.usoftchina.saas.commons.po.Status.UNAUDITED.getDisplay());
         othspendings.setOs_status(com.usoftchina.saas.commons.po.Status.UNAUDITED.getDisplay());
         othspendings.setOs_statuscode(Status.UNAUDITED.name());
         othspendings.setOs_statuscode(Status.UNAUDITED.name());
         othspendingsMapper.updateByPrimaryKeySelective(othspendings);
         othspendingsMapper.updateByPrimaryKeySelective(othspendings);
+
+        //删除中间表
+        othspendings = othspendingsMapper.selectByPrimaryKey(id);
+        banksubledgerMapper.deleteByPrimaryKey(othspendings.getOs_code(), "其他收入单");
     }
     }
 
 
     @Override
     @Override
@@ -151,6 +155,8 @@ public class OthspendingsServiceImpl implements OthspendingsService {
             othspendings.setId(Long.valueOf(docBaseDTO.getId()));
             othspendings.setId(Long.valueOf(docBaseDTO.getId()));
             othspendings.setOs_status(com.usoftchina.saas.commons.po.Status.AUDITED.getDisplay());
             othspendings.setOs_status(com.usoftchina.saas.commons.po.Status.AUDITED.getDisplay());
             othspendings.setOs_statuscode(Status.AUDITED.name());
             othspendings.setOs_statuscode(Status.AUDITED.name());
+            Othsp othsp = this.select(Math.toIntExact(othspendings.getId()));
+            this.changBankUntil(othsp);
             othspendingsMapper.updateByPrimaryKeySelective(othspendings);
             othspendingsMapper.updateByPrimaryKeySelective(othspendings);
         }
         }
     }
     }
@@ -198,4 +204,36 @@ public class OthspendingsServiceImpl implements OthspendingsService {
         }
         }
         return othspendingsList;
         return othspendingsList;
     }
     }
+
+    //插入bank中间表
+    public void changBankUntil(Othsp othsp){
+        Banksubledger banksubledger = new Banksubledger();
+        Othspendings othspendings = othsp.getMain();
+        List<Othspendingsdetail> othspendingsdetailList = othsp.getItems();
+        Iterator isList = othspendingsdetailList.iterator();
+        while (isList.hasNext()) {
+            Othspendingsdetail othspendingsdetail = (Othspendingsdetail) isList.next();
+            banksubledger.setCompanyId(BaseContextHolder.getCompanyId());
+            banksubledger.setBl_ym(othspendingsdetail.getOsd_ym());
+            banksubledger.setBl_bankid(othspendings.getOs_bankid());
+            banksubledger.setBl_bankcode(othspendings.getOs_bankcode());
+            banksubledger.setBl_bankname(othspendings.getOs_bankname());
+            banksubledger.setBl_code(othspendings.getOs_code());
+            banksubledger.setBl_kind("其他支出单");
+            banksubledger.setBl_date(othspendings.getOs_date());
+
+            if (othspendings.getOs_vendid() == null || othspendings.getOs_vendid() != 0){
+                banksubledger.setBl_asstype("供应商往来 ");
+            }else {
+                banksubledger.setBl_asstype(null);
+            }
+            banksubledger.setBl_assid(othspendings.getOs_vendid());
+            banksubledger.setBl_asscode(othspendings.getOs_vendcode());
+            banksubledger.setBl_assname(othspendings.getOs_vendname());
+            banksubledger.setBl_income(othspendingsdetail.getOsd_nowbalance());
+            banksubledger.setBl_remark(othspendingsdetail.getOsd_remark());
+            banksubledger.setBl_orderamount(othspendingsdetail.getOsd_nowbalance() * -1);
+            banksubledgerMapper.insertSelective(banksubledger);
+        }
+    }
 }
 }

+ 4 - 3
applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/PaybalanceServiceImpl.java

@@ -106,7 +106,6 @@ public class PaybalanceServiceImpl implements PaybalanceService {
         subledgerMapper.insertSelective(subledger);
         subledgerMapper.insertSelective(subledger);
         this.changBankUntil(pay);
         this.changBankUntil(pay);
         System.out.println("新增");
         System.out.println("新增");
-        this.changBankUntil(pay);
         if ( paybalance == null || "".equals(paybalance)){
         if ( paybalance == null || "".equals(paybalance)){
             this.insert(pay);
             this.insert(pay);
         }else {
         }else {
@@ -185,6 +184,8 @@ public class PaybalanceServiceImpl implements PaybalanceService {
             paybalance.setId(Long.valueOf(docBaseDTO.getId()));
             paybalance.setId(Long.valueOf(docBaseDTO.getId()));
             paybalance.setPb_status(com.usoftchina.saas.commons.po.Status.AUDITED.getDisplay());
             paybalance.setPb_status(com.usoftchina.saas.commons.po.Status.AUDITED.getDisplay());
             paybalance.setPb_statuscode(Status.AUDITED.name());
             paybalance.setPb_statuscode(Status.AUDITED.name());
+            Pay pay = this.select(Math.toIntExact(paybalance.getId()));
+            this.changBankUntil(pay);
             paybalanceMapper.updateByPrimaryKeySelective(paybalance);
             paybalanceMapper.updateByPrimaryKeySelective(paybalance);
         }
         }
     }
     }
@@ -293,10 +294,10 @@ public class PaybalanceServiceImpl implements PaybalanceService {
             banksubledger.setBl_date(paybalance.getPb_date());
             banksubledger.setBl_date(paybalance.getPb_date());
 
 
             if (paybalance.getPb_vendid() == null || paybalance.getPb_vendid() != 0){
             if (paybalance.getPb_vendid() == null || paybalance.getPb_vendid() != 0){
-                banksubledger.setBl_asscode("供应商往来");
+                banksubledger.setBl_asstype("供应商往来");
             }
             }
             banksubledger.setBl_assid(paybalance.getPb_vendid());
             banksubledger.setBl_assid(paybalance.getPb_vendid());
-            banksubledger.setBl_code(paybalance.getPb_code());
+            banksubledger.setBl_asscode(paybalance.getPb_vendcode());
             banksubledger.setBl_assname(paybalance.getPb_vendname());
             banksubledger.setBl_assname(paybalance.getPb_vendname());
             banksubledger.setBl_spending(paybalancedet.getPd_amount());
             banksubledger.setBl_spending(paybalancedet.getPd_amount());
             banksubledger.setBl_manname(paybalance.getPb_manname());
             banksubledger.setBl_manname(paybalance.getPb_manname());

+ 86 - 3
applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/RecbalanceServiceImpl.java

@@ -11,9 +11,7 @@ import com.usoftchina.saas.commons.po.BillCodeSeq;
 import com.usoftchina.saas.commons.po.Status;
 import com.usoftchina.saas.commons.po.Status;
 import com.usoftchina.saas.context.BaseContextHolder;
 import com.usoftchina.saas.context.BaseContextHolder;
 import com.usoftchina.saas.exception.BizException;
 import com.usoftchina.saas.exception.BizException;
-import com.usoftchina.saas.money.mapper.RecbalanceMapper;
-import com.usoftchina.saas.money.mapper.RecbalancedetMapper;
-import com.usoftchina.saas.money.mapper.RecbalancedetailMapper;
+import com.usoftchina.saas.money.mapper.*;
 import com.usoftchina.saas.money.po.*;
 import com.usoftchina.saas.money.po.*;
 import com.usoftchina.saas.money.service.RecbalanceService;
 import com.usoftchina.saas.money.service.RecbalanceService;
 import com.usoftchina.saas.page.PageRequest;
 import com.usoftchina.saas.page.PageRequest;
@@ -38,6 +36,10 @@ public class RecbalanceServiceImpl implements RecbalanceService {
     RecbalancedetailMapper recbalancedetailMapper;
     RecbalancedetailMapper recbalancedetailMapper;
     @Autowired
     @Autowired
     private MaxnumberService maxnumberService;
     private MaxnumberService maxnumberService;
+    @Autowired
+    private BanksubledgerMapper banksubledgerMapper;
+    @Autowired
+    private SubledgerMapper subledgerMapper;
 
 
     @Override
     @Override
     public DocBaseDTO insert(Rec rec) {
     public DocBaseDTO insert(Rec rec) {
@@ -128,6 +130,9 @@ public class RecbalanceServiceImpl implements RecbalanceService {
         recbalance.setRb_status(Status.AUDITED.getDisplay());
         recbalance.setRb_status(Status.AUDITED.getDisplay());
         recbalance.setRb_statuscode(Status.AUDITED.name());
         recbalance.setRb_statuscode(Status.AUDITED.name());
         recbalance.setCompanyId(companyId);
         recbalance.setCompanyId(companyId);
+        Subledger subledger = this.changSubledgerUntil(recbalance);
+        subledgerMapper.insertSelective(subledger);
+        this.changBankUntil(rec);
         if ( recbalance == null || "".equals(recbalance)){
         if ( recbalance == null || "".equals(recbalance)){
             this.insert(rec);
             this.insert(rec);
         }else {
         }else {
@@ -142,6 +147,11 @@ public class RecbalanceServiceImpl implements RecbalanceService {
         recbalance.setRb_status(Status.UNAUDITED.getDisplay());
         recbalance.setRb_status(Status.UNAUDITED.getDisplay());
         recbalance.setRb_statuscode(Status.UNAUDITED.name());
         recbalance.setRb_statuscode(Status.UNAUDITED.name());
         recbalanceMapper.updateByPrimaryKeySelective(recbalance);
         recbalanceMapper.updateByPrimaryKeySelective(recbalance);
+
+        //删除中间表
+        recbalance = recbalanceMapper.selectByPrimaryKey(id);
+        subledgerMapper.deleteByPrimaryKey(recbalance.getRb_code(), recbalance.getRb_kind());
+        banksubledgerMapper.deleteByPrimaryKey(recbalance.getRb_code(), recbalance.getRb_kind());
     }
     }
 
 
     public PageInfo<Recbalance> selectList(PageRequest page, ListReqDTO reqDTO) {
     public PageInfo<Recbalance> selectList(PageRequest page, ListReqDTO reqDTO) {
@@ -176,6 +186,8 @@ public class RecbalanceServiceImpl implements RecbalanceService {
             recbalance.setId(Long.valueOf(docBaseDTO.getId()));
             recbalance.setId(Long.valueOf(docBaseDTO.getId()));
             recbalance.setRb_status(com.usoftchina.saas.commons.po.Status.AUDITED.getDisplay());
             recbalance.setRb_status(com.usoftchina.saas.commons.po.Status.AUDITED.getDisplay());
             recbalance.setRb_statuscode(Status.AUDITED.name());
             recbalance.setRb_statuscode(Status.AUDITED.name());
+            Rec rec = this.select(Math.toIntExact(recbalance.getId()));
+            this.changBankUntil(rec);
             recbalanceMapper.updateByPrimaryKeySelective(recbalance);
             recbalanceMapper.updateByPrimaryKeySelective(recbalance);
         }
         }
     }
     }
@@ -223,4 +235,75 @@ public class RecbalanceServiceImpl implements RecbalanceService {
         }
         }
         return recbalancesList;
         return recbalancesList;
     }
     }
+
+    //插入中间表
+    public Subledger changSubledgerUntil(Recbalance recbalance){
+        Subledger subledger = new Subledger();
+        subledger.setCompanyId(BaseContextHolder.getCompanyId());
+        subledger.setSl_code(recbalance.getRb_code());
+        subledger.setSl_kind(recbalance.getRb_kind());
+        subledger.setSl_custid(recbalance.getRb_custid());
+        subledger.setSl_vendid(0);
+        subledger.setSl_date(recbalance.getRb_date());
+        if (recbalance.getRb_rdamount() == null){
+            subledger.setSl_amount((double) 0);
+        }else {
+            subledger.setSl_amount(recbalance.getRb_rdamount() * -1);
+        }
+        subledger.setSl_orderamount(recbalance.getRb_rdamount());
+
+        Double yamount = recbalance.getRb_preamount();
+        if (yamount == null){
+            yamount = Double.valueOf(0);
+        }
+        if (yamount > 0 || yamount < 0){
+            subledger.setSl_yamount(yamount);
+        }else {
+            subledger.setSl_yamount((double) 0);
+        }
+        if (subledger.getSl_orderamount() == null){
+            subledger.setSl_orderamount((double) 0);
+        }
+
+        if (subledger.getSl_discount() == null){
+            subledger.setSl_discount((double) 0);
+        }
+        subledger.setSl_namount(subledger.getSl_orderamount() + subledger.getSl_discount() - subledger.getSl_yamount());
+        subledger.setSl_remark(subledger.getSl_remark());
+        subledger.setSl_preamount(subledger.getSl_preamount());
+
+        return subledger;
+    }
+
+    //插入bank中间表
+    public void changBankUntil(Rec rec){
+        Banksubledger banksubledger = new Banksubledger();
+        Recbalance recbalance = rec.getMain();
+        List<Recbalancedet> recbalancedetList = rec.getItems1();
+        Iterator isList = recbalancedetList.iterator();
+        while (isList.hasNext()) {
+            Recbalancedet recbalancedet = (Recbalancedet) isList.next();
+            banksubledger.setCompanyId(BaseContextHolder.getCompanyId());
+            banksubledger.setBl_ym(recbalancedet.getRd_ym());
+            banksubledger.setBl_bankid(recbalancedet.getRd_bankid());
+            banksubledger.setBl_bankcode(recbalancedet.getRd_bankcode());
+            banksubledger.setBl_bankname(recbalancedet.getRd_bankname());
+            banksubledger.setBl_code(recbalance.getRb_code());
+            banksubledger.setBl_kind(recbalance.getRb_kind());
+            banksubledger.setBl_date(recbalance.getRb_date());
+
+            if (recbalance.getRb_custid() == null || recbalance.getRb_custid() != 0){
+                banksubledger.setBl_asstype("供应商往来");
+            }
+            banksubledger.setBl_assid(recbalance.getRb_custid());
+            banksubledger.setBl_asscode(recbalance.getRb_custcode());
+            banksubledger.setBl_assname(recbalance.getRb_custname());
+            banksubledger.setBl_spending(recbalancedet.getRd_amount());
+            banksubledger.setBl_manname(recbalance.getRb_manname());
+            banksubledger.setBl_remark(recbalancedet.getRd_remark());
+            banksubledger.setBl_orderamount(recbalancedet.getRd_amount());
+            banksubledgerMapper.insertSelective(banksubledger);
+
+        }
+    }
 }
 }

+ 2 - 0
applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/mapper/SaleMapper.java

@@ -37,4 +37,6 @@ public interface SaleMapper {
     void updateTotalAndNetPrice(Long id);
     void updateTotalAndNetPrice(Long id);
 
 
     void updateNetTotal(Long id);
     void updateNetTotal(Long id);
+
+    Integer checkSendStatus(Long id);
 }
 }

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

@@ -276,6 +276,11 @@ public class SaleServiceImpl implements SaleService{
         if (null != code) {
         if (null != code) {
             throw new BizException(BizExceptionCode.SALE_NULL_BILL);
             throw new BizException(BizExceptionCode.SALE_NULL_BILL);
         }
         }
+        //检测出货状态为未出货
+        Integer num = saleMapper.checkSendStatus(id);
+        if (num == 0) {
+            throw new BizException(BizExceptionCode.SALEOUT_UNAUDIT_ERROR);
+        }
         singleUnAudit(id);
         singleUnAudit(id);
     }
     }
 
 

+ 5 - 0
applications/sale/sale-server/src/main/resources/mapper/SaleMapper.xml

@@ -383,4 +383,9 @@
     update saledetail a set sd_nettotal=round(ifnull(sd_netprice,0)*ifnull(sd_qty,0),2)
     update saledetail a set sd_nettotal=round(ifnull(sd_netprice,0)*ifnull(sd_qty,0),2)
     where sd_said=#{id}
     where sd_said=#{id}
   </update>
   </update>
+
+  <select id="checkSendStatus" parameterType="long" resultType="java.lang.Integer">
+    select count(1) from sale where sa_id = #{id}
+    and ifnull(sa_sendstatuscode,'UNTURNOUT') = 'UNTURNOUT';
+  </select>
 </mapper>
 </mapper>

+ 18 - 0
base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/controller/AccountController.java

@@ -100,6 +100,24 @@ public class AccountController {
         return Result.success(getAccountDTO(account));
         return Result.success(getAccountDTO(account));
     }
     }
 
 
+    /**
+     * 重置当前登录账户的密码
+     *
+     * @param password
+     * @return
+     */
+    @PostMapping(value = "/pwd/reset")
+    public Result resetPad(@RequestParam(value = "password") String password) {
+        Account account = accountService.findByPrimaryKey(BaseContextHolder.getUserId());
+        if (null == account) {
+            return Result.error(ExceptionCode.USER_NOT_EXIST);
+        }
+
+        account.setPassword(accountService.getEncryptedPassword(password, account.getSalt()));
+        accountService.updateByPrimaryKey(account);
+        return Result.success();
+    }
+
     /**
     /**
      * 账户 + 账户的全部绑定信息
      * 账户 + 账户的全部绑定信息
      *
      *

+ 16 - 0
base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/mapper/AccountMapper.java

@@ -26,6 +26,22 @@ public interface AccountMapper {
      */
      */
     int insertSelective(Account account);
     int insertSelective(Account account);
 
 
+    /**
+     * 按主键更新
+     *
+     * @param account
+     * @return
+     */
+    int updateByPrimaryKey(Account account);
+
+    /**
+     * 按主键更新非空字段
+     *
+     * @param account
+     * @return
+     */
+    int updateByPrimaryKeySelective(Account account);
+
     /**
     /**
      * 按ID查找
      * 按ID查找
      *
      *

+ 8 - 0
base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/service/AccountService.java

@@ -18,6 +18,14 @@ public interface AccountService {
      */
      */
     boolean save(Account account);
     boolean save(Account account);
 
 
+    /**
+     * 更新
+     *
+     * @param account
+     * @return
+     */
+    boolean updateByPrimaryKey(Account account);
+
     /**
     /**
      * 按用户名查找
      * 按用户名查找
      *
      *

+ 14 - 0
base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/service/impl/AccountServiceImpl.java

@@ -10,11 +10,13 @@ import com.usoftchina.saas.account.po.Role;
 import com.usoftchina.saas.account.po.RoleResource;
 import com.usoftchina.saas.account.po.RoleResource;
 import com.usoftchina.saas.account.service.AccountService;
 import com.usoftchina.saas.account.service.AccountService;
 import com.usoftchina.saas.account.service.RoleService;
 import com.usoftchina.saas.account.service.RoleService;
+import com.usoftchina.saas.context.BaseContextHolder;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.DigestUtils;
 import org.springframework.util.DigestUtils;
 
 
+import java.util.Date;
 import java.util.List;
 import java.util.List;
 
 
 /**
 /**
@@ -41,9 +43,21 @@ public class AccountServiceImpl implements AccountService {
 
 
     @Override
     @Override
     public boolean save(Account account) {
     public boolean save(Account account) {
+        account.setCreateTime(new Date());
+        account.setCreatorId(BaseContextHolder.getUserId());
+        account.setUpdateTime(new Date());
+        account.setUpdaterId(BaseContextHolder.getUserId());
+
         return accountMapper.insert(account) > 0;
         return accountMapper.insert(account) > 0;
     }
     }
 
 
+    @Override
+    public boolean updateByPrimaryKey(Account account) {
+        account.setUpdateTime(new Date());
+        account.setUpdaterId(BaseContextHolder.getUserId());
+        return accountMapper.updateByPrimaryKeySelective(account) > 0;
+    }
+
     @Override
     @Override
     public Account findByUsername(String username) {
     public Account findByUsername(String username) {
         return accountMapper.selectByUsername(username);
         return accountMapper.selectByUsername(username);

+ 58 - 0
base-servers/account/account-server/src/main/resources/mapper/AccountMapper.xml

@@ -106,6 +106,64 @@
             </if>
             </if>
         </trim>
         </trim>
     </insert>
     </insert>
+    <update id="updateByPrimaryKey" parameterType="com.usoftchina.saas.account.po.Account">
+        update ac_account set
+        username=#{username,jdbcType=VARCHAR},
+        password=#{password,jdbcType=VARCHAR},
+        salt=#{salt,jdbcType=VARCHAR},
+        realname=#{realname,jdbcType=VARCHAR},
+        email=#{email,jdbcType=VARCHAR},
+        mobile=#{mobile,jdbcType=VARCHAR},
+        type=#{type,jdbcType=INTEGER},
+        enabled=#{enabled,jdbcType=BOOLEAN},
+        creator_id=#{creatorId,jdbcType=BIGINT},
+        create_time=#{createTime,jdbcType=TIMESTAMP},
+        updater_id=#{updaterId,jdbcType=BIGINT},
+        update_time=#{updateTime,jdbcType=TIMESTAMP})
+        where id=#{id,jdbcType=BIGINT}
+    </update>
+    <update id="updateByPrimaryKeySelective" parameterType="com.usoftchina.saas.account.po.Account">
+        update ac_account
+        <set>
+            <if test="username != null">
+                username=#{username,jdbcType=VARCHAR},
+            </if>
+            <if test="password != null">
+                password=#{password,jdbcType=VARCHAR},
+            </if>
+            <if test="salt != null">
+                salt=#{salt,jdbcType=VARCHAR},
+            </if>
+            <if test="realname != null">
+                realname=#{realname,jdbcType=VARCHAR},
+            </if>
+            <if test="email != null">
+                email=#{email,jdbcType=VARCHAR},
+            </if>
+            <if test="mobile != null">
+                mobile=#{mobile,jdbcType=VARCHAR},
+            </if>
+            <if test="type != null">
+                type=#{type,jdbcType=INTEGER},
+            </if>
+            <if test="enabled != null">
+                enabled=#{enabled,jdbcType=BOOLEAN},
+            </if>
+            <if test="creatorId != null">
+                creator_id=#{creatorId,jdbcType=BIGINT},
+            </if>
+            <if test="createTime != null">
+                create_time=#{createTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="updaterId != null">
+                updater_id=#{updaterId,jdbcType=BIGINT},
+            </if>
+            <if test="updateTime != null">
+                update_time=#{updateTime,jdbcType=TIMESTAMP})
+            </if>
+        </set>
+        where id=#{id,jdbcType=BIGINT}
+    </update>
     <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
     <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
         select <include refid="baseColumns"/> from ac_account where id=#{id}
         select <include refid="baseColumns"/> from ac_account where id=#{id}
     </select>
     </select>

+ 4 - 4
frontend/saas-web/app/view/core/query/QueryFormPanel.js

@@ -21,10 +21,10 @@ Ext.define('saas.view.core.query.QueryFormPanel', {
             'border-bottom': '1px solid #35baf6 !important'
             'border-bottom': '1px solid #35baf6 !important'
         },
         },
         items: ['->', {
         items: ['->', {
-            xtype: 'button',
-            text: '更多查询',
-            handler: 'moreQuery'
-        }, {
+        //     xtype: 'button',
+        //     text: '更多查询',
+        //     handler: 'moreQuery'
+        // }, {
             xtype: 'button',
             xtype: 'button',
             text: '查询',
             text: '查询',
             handler: 'onQuery'
             handler: 'onQuery'

+ 1 - 1
frontend/saas-web/app/view/home/Home.js

@@ -15,7 +15,7 @@ Ext.define('saas.view.home.Home', {
         align: 'stretch'
         align: 'stretch'
     },
     },
 
 
-    padding: '20',
+    bodyPadding: 5,
 
 
     defaults: {
     defaults: {
         xtype: 'container'
         xtype: 'container'

+ 34 - 30
frontend/saas-web/app/view/money/payBalance/FormPanel.js

@@ -89,6 +89,7 @@ Ext.define('saas.view.money.payBalance.FormPanel', {
         xtype: "detailGridField",
         xtype: "detailGridField",
         storeModel: 'saas.model.money.PayBalance1',
         storeModel: 'saas.model.money.PayBalance1',
         detnoColumn: 'pd_detno',
         detnoColumn: 'pd_detno',
+        allowEmpty: true,
         deleteDetailUrl: '/api/money/paybalance/deleteDetail1/',
         deleteDetailUrl: '/api/money/paybalance/deleteDetail1/',
         columns: [{
         columns: [{
             text: 'ID',
             text: 'ID',
@@ -114,30 +115,32 @@ Ext.define('saas.view.money.payBalance.FormPanel', {
             text: '资金账户',
             text: '资金账户',
             dataIndex: 'pd_bankname',
             dataIndex: 'pd_bankname',
             editable:false,
             editable:false,
-            // xtype : "remotecombo",
-            // storeUrl:'/api/document/bankinformation/getCombo',
-            // name : "bk_bankname",
-            // fieldLabel : "资金账户",
-            // allowBlank : false, //不能为空
-            // columnWidth : 0.25,//布局
-            // hiddenBtn:false,//true 则会关闭新增按钮功能
-            // addHandler:function(b){
-            //     var document = Ext.create('saas.view.document.kind.Kind',{});
-            //     var form = this.ownerCmp.ownerCt;
-            //     this.dialog = form.getController().getView().add({
-            //         xtype: 'document-kind-childwin',
-            //         bind: {
-            //             title: '新增资金账户'
-            //         },
-            //         dataKind:'bankinformation',
-            //         belong:document.etc['bankinformation'],
-            //         _parent:form,
-            //         _combo:this.ownerCmp,
-            //         record:null,
-            //         session: true
-            //     });
-            //     this.dialog.show();
-            // }
+            editor:{
+                xtype : "remotecombo",
+                storeUrl:'/api/document/bankinformation/getCombo',
+                name : "bk_bankname",
+                allowBlank : false, //不能为空
+                columnWidth : 0.25,//布局
+                hiddenBtn:false,//true 则会关闭新增按钮功能
+                addHandler:function(b){
+                    var document = Ext.create('saas.view.document.kind.Kind',{});
+                    var form = this.ownerCmp.ownerCt;
+                    this.dialog = form.getController().getView().add({
+                        xtype: 'document-kind-childwin',
+                        bind: {
+                            title: '新增资金账户'
+                        },
+                        dataKind:'bankinformation',
+                        belong:document.etc['bankinformation'],
+                        _parent:form,
+                        _combo:this.ownerCmp,
+                        record:null,
+                        session: true
+                    });
+                    this.dialog.show();
+                }
+            }
+
         }, {
         }, {
             text: "付款金额",
             text: "付款金额",
             dataIndex: "pd_amount",
             dataIndex: "pd_amount",
@@ -190,14 +193,15 @@ Ext.define('saas.view.money.payBalance.FormPanel', {
             }
             }
         }]
         }]
     }, {
     }, {
-        xtype:'button',
-        text:'选择源单',
-        width:100
-
+        xtype:'dbfindtrigger',
+        columnWidth: 1,
+        fieldLabel:'选择源单',
+        name: 'choseSource'
     },{
     },{
         xtype: "detailGridField",
         xtype: "detailGridField",
         storeModel: 'saas.model.money.PayBalance2',
         storeModel: 'saas.model.money.PayBalance2',
         detnoColumn: 'pbd_detno',
         detnoColumn: 'pbd_detno',
+        allowEmpty: true,
         deleteDetailUrl: '/api/money/paybalance/deleteDetail2/',
         deleteDetailUrl: '/api/money/paybalance/deleteDetail2/',
         columns: [{
         columns: [{
             text: 'ID',
             text: 'ID',
@@ -255,7 +259,7 @@ Ext.define('saas.view.money.payBalance.FormPanel', {
             }
             }
         }, {
         }, {
             text: "已核销金额",
             text: "已核销金额",
-            dataIndex: "pb_remark",
+            dataIndex: "pb_havebalance",
             // editor : {
             // editor : {
             //     xtype : "numberfield",
             //     xtype : "numberfield",
             //     decimalPrecision: 2
             //     decimalPrecision: 2
@@ -275,7 +279,7 @@ Ext.define('saas.view.money.payBalance.FormPanel', {
             }
             }
         }, {
         }, {
             text: "未核销金额",
             text: "未核销金额",
-            dataIndex: "pb_remark",
+            dataIndex: "pb_pbdamount",
             // editor : {
             // editor : {
             //     xtype : "numberfield",
             //     xtype : "numberfield",
             //     decimalPrecision: 2
             //     decimalPrecision: 2

+ 68 - 0
frontend/saas-web/app/view/money/payBalance/FormPanelController.js

@@ -100,6 +100,74 @@ Ext.define('saas.view.money.payBalance.FormPanelController', {
 
 
                 }
                 }
             },
             },
+            'dbfindtrigger[name=choseSource]': {
+                beforerender: function (f) {
+                    Ext.apply(f, {
+                        dataUrl: '/api/money/subledger/list',
+                        addTitle: '源单资料',
+                        dbfinds: [{
+                            from: 'id',
+                            to: 'pbd_slid'
+                        }, {
+                            from: 'sl_code',
+                            to: 'pbd_slcode'
+                        },{
+                            from: 'sl_orderamount',
+                            to: 'pbd_amount'
+                        },{
+                            from: 'sl_yamount',
+                            to: 'pb_havebalance'
+                        },{
+                            from: 'sl_namount',
+                            to: 'pb_pbdamount'
+                        }],
+                        dbtpls: [{
+                            field: 'sl_code',
+                            width: 100
+                        }],
+                        defaultCondition: "sl_vendtid<>0 and sl_kind in ('期初余额','采购验收单','采购验退单') and sl_namount<>0",
+                        dbSearchFields:[{
+                            emptyText:'输入源单编号',
+                            xtype : "textfield",
+                            name : "search",
+                            getCondition: function(v) {
+                                return "(upper(sl_code) like '%"+v.toUpperCase()+"%')";
+                            },
+                            allowBlank : true,
+                            columnWidth : 0.25
+                        }],
+                        dbColumns:[{
+                            "text": "源单id",
+                            "hidden": true,
+                            "dataIndex": "id",
+                            "width": 100,
+                            "xtype": "numbercolumn"
+                        },{
+                            "text": "源单编号",
+                            "flex": 1,
+                            "dataIndex": "sl_code",
+                            "width": 100
+                        }, {
+                            "text": "单据金额",
+                            "flex": 1,
+                            "dataIndex": "sl_orderamount",
+                            "width": 100
+                        }, {
+                            "text": "已核销金额",
+                            "flex": 0,
+                            "dataIndex": "sl_yamount",
+                            "width": 200,
+                            "items": null
+                        }, {
+                            "text": "未核销金额",
+                            "flex": 1,
+                            "dataIndex": "sl_namount",
+                            "width": 100
+                        }]
+                    });
+
+                }
+            }
         });
         });
 
 
     },
     },

+ 31 - 9
frontend/saas-web/app/view/money/recBalance/FormPanel.js

@@ -111,10 +111,32 @@ Ext.define('saas.view.money.recBalance.FormPanel', {
             hidden: true
             hidden: true
         }, {
         }, {
             text: '资金账户',
             text: '资金账户',
-            dataIndex: 'rd_bankname',
-            width : 200.0, 
-            editor: {
-                xtype: 'textfield'
+            dataIndex: 'pd_bankname',
+            editable:false,
+            editor:{
+                xtype : "remotecombo",
+                storeUrl:'/api/document/bankinformation/getCombo',
+                name : "bk_bankname",
+                allowBlank : false, //不能为空
+                columnWidth : 0.25,//布局
+                hiddenBtn:false,//true 则会关闭新增按钮功能
+                addHandler:function(b){
+                    var document = Ext.create('saas.view.document.kind.Kind',{});
+                    var form = this.ownerCmp.ownerCt;
+                    this.dialog = form.getController().getView().add({
+                        xtype: 'document-kind-childwin',
+                        bind: {
+                            title: '新增资金账户'
+                        },
+                        dataKind:'bankinformation',
+                        belong:document.etc['bankinformation'],
+                        _parent:form,
+                        _combo:this.ownerCmp,
+                        record:null,
+                        session: true
+                    });
+                    this.dialog.show();
+                }
             }
             }
         }, {
         }, {
             text: "收款金额",
             text: "收款金额",
@@ -167,11 +189,11 @@ Ext.define('saas.view.money.recBalance.FormPanel', {
                 xtype: 'textfield'
                 xtype: 'textfield'
             }
             }
         }]
         }]
-    }, {
-        xtype:'button',
-        text:'选择源单',
-        width:100
-
+    },{
+        xtype:'dbfindtrigger',
+        columnWidth: 1,
+        fieldLabel:'选择源单',
+        name: 'choseSource'
     },{
     },{
         xtype: "detailGridField",
         xtype: "detailGridField",
         storeModel: 'saas.model.money.RecBalance2',
         storeModel: 'saas.model.money.RecBalance2',

+ 68 - 1
frontend/saas-web/app/view/money/recBalance/FormPanelController.js

@@ -154,8 +154,75 @@ Ext.define('saas.view.money.recBalance.FormPanelController', {
 
 
                 }
                 }
             },
             },
-        });
+            'dbfindtrigger[name=choseSource]': {
+                beforerender: function (f) {
+                    Ext.apply(f, {
+                        dataUrl: '/api/money/subledger/list',
+                        addTitle: '源单资料',
+                        dbfinds: [{
+                            from: 'id',
+                            to: 'rbd_slid'
+                        }, {
+                            from: 'sl_code',
+                            to: 'rbd_slcode'
+                        },{
+                            from: 'sl_orderamount',
+                            to: 'rbd_amount'
+                        },{
+                            from: 'sl_yamount',
+                            to: 'rbd_havebalance'
+                        },{
+                            from: 'sl_namount',
+                            to: 'rbd_pbdamount'
+                        }],
+                        dbtpls: [{
+                            field: 'sl_code',
+                            width: 100
+                        }],
+                        defaultCondition: "sl_vendtid<>0 and sl_kind in ('期初余额','采购验收单','采购验退单') and sl_namount<>0",
+                        dbSearchFields:[{
+                            emptyText:'输入源单编号',
+                            xtype : "textfield",
+                            name : "search",
+                            getCondition: function(v) {
+                                return "(upper(sl_code) like '%"+v.toUpperCase()+"%')";
+                            },
+                            allowBlank : true,
+                            columnWidth : 0.25
+                        }],
+                        dbColumns:[{
+                            "text": "源单id",
+                            "hidden": true,
+                            "dataIndex": "id",
+                            "width": 100,
+                            "xtype": "numbercolumn"
+                        },{
+                            "text": "源单编号",
+                            "flex": 1,
+                            "dataIndex": "sl_code",
+                            "width": 100
+                        }, {
+                            "text": "单据金额",
+                            "flex": 1,
+                            "dataIndex": "sl_orderamount",
+                            "width": 100
+                        }, {
+                            "text": "已核销金额",
+                            "flex": 0,
+                            "dataIndex": "sl_yamount",
+                            "width": 200,
+                            "items": null
+                        }, {
+                            "text": "未核销金额",
+                            "flex": 1,
+                            "dataIndex": "sl_namount",
+                            "width": 100
+                        }]
+                    });
 
 
+                }
+            }
+        });
     },
     },
     addCombo:function(){
     addCombo:function(){
         var combo=this.ownerCmp;
         var combo=this.ownerCmp;

+ 6 - 5
frontend/saas-web/app/view/purchase/purchase/FormPanel.js

@@ -72,11 +72,6 @@ Ext.define('saas.view.purchase.purchase.FormPanel', {
         name : "pu_total", 
         name : "pu_total", 
         fieldLabel : "单据金额",
         fieldLabel : "单据金额",
         readOnly:true
         readOnly:true
-    }, {
-        xtype : "textfield", 
-        name : "PU_REMARK", 
-        fieldLabel : "备注", 
-        columnWidth : 0.25
     },{
     },{
         name : "detailGridField", 
         name : "detailGridField", 
         xtype : "detailGridField", 
         xtype : "detailGridField", 
@@ -276,6 +271,12 @@ Ext.define('saas.view.purchase.purchase.FormPanel', {
                 width : 120.0
                 width : 120.0
             }
             }
         ]
         ]
+    },
+    {
+        xtype : "textfield", 
+        name : "PU_REMARK", 
+        fieldLabel : "备注", 
+        columnWidth : 1
     }, 
     }, 
     {
     {
         xtype : "textfield", 
         xtype : "textfield", 

+ 1 - 1
frontend/saas-web/app/view/purchase/purchaseIn/FormPanel.js

@@ -111,7 +111,7 @@ Ext.define('saas.view.purchase.purchaseIn.FormPanel', {
         xtype : "detailGridField",
         xtype : "detailGridField",
         storeModel:'saas.model.purchase.ProdIODetail',
         storeModel:'saas.model.purchase.ProdIODetail',
         // deleteDetailUrl:'http://localhost:8800/prodinout/deleteDetail/',
         // deleteDetailUrl:'http://localhost:8800/prodinout/deleteDetail/',
-        deleteDetailUrl:'api/purchase/prodinout/deleteDetail/',
+        deleteDetailUrl:'/api/purchase/prodinout/deleteDetail/',
         detnoColumn:  'pd_pdno',
         detnoColumn:  'pd_pdno',
         columns : [
         columns : [
             {
             {

+ 1 - 1
frontend/saas-web/app/view/purchase/purchaseOut/FormPanel.js

@@ -103,7 +103,7 @@ Ext.define('saas.view.purchase.purchaseOut.FormPanel', {
         xtype : "detailGridField",
         xtype : "detailGridField",
         storeModel:'saas.model.purchase.ProdIODetail',
         storeModel:'saas.model.purchase.ProdIODetail',
         // deleteDetailUrl:'http://localhost:8800/prodinout/deleteDetail/',
         // deleteDetailUrl:'http://localhost:8800/prodinout/deleteDetail/',
-        deleteDetailUrl:'api/purchase/prodinout/deleteDetail/',
+        deleteDetailUrl:'/api/purchase/prodinout/deleteDetail/',
         detnoColumn:  'pd_pdno',
         detnoColumn:  'pd_pdno',
         columns : [
         columns : [
             {
             {

+ 2 - 1
frontend/saas-web/app/view/sale/sale/FormPanel.js

@@ -111,7 +111,8 @@ Ext.define('saas.view.sale.sale.FormPanel', {
 				}
 				}
             }, {
             }, {
                 text : "数量", 
                 text : "数量", 
-                dataIndex : "sd_qty", 
+                dataIndex : "sd_qty",
+                allowBlank:false, 
                 editor : {
                 editor : {
                     xtype : "numberfield",
                     xtype : "numberfield",
                     decimalPrecision: 8,
                     decimalPrecision: 8,

+ 6 - 1
frontend/saas-web/app/view/stock/make/FormPanel.js

@@ -102,11 +102,13 @@ Ext.define('saas.view.stock.make.FormPanel', {
         xtype : "numberfield", 
         xtype : "numberfield", 
         name : "ma_price", 
         name : "ma_price", 
         fieldLabel : "单位成本",
         fieldLabel : "单位成本",
+        decimals:8,
         columnWidth: 0.2
         columnWidth: 0.2
     },{
     },{
         xtype : "numberfield", 
         xtype : "numberfield", 
         name : "ma_total", 
         name : "ma_total", 
         fieldLabel : "总成本",
         fieldLabel : "总成本",
+        decimals:2,
         columnWidth: 0.2
         columnWidth: 0.2
     },
     },
     {
     {
@@ -177,7 +179,7 @@ Ext.define('saas.view.stock.make.FormPanel', {
             },            
             },            
             {
             {
                 text : "数量", 
                 text : "数量", 
-                dataIndex : "pd_qty", 
+                dataIndex : "mm_qty", 
                 width : 120.0,
                 width : 120.0,
                 editor : {
                 editor : {
                     xtype : "numberfield",
                     xtype : "numberfield",
@@ -235,6 +237,9 @@ Ext.define('saas.view.stock.make.FormPanel', {
                     decimalPrecision: 8,
                     decimalPrecision: 8,
                     minValue:0
                     minValue:0
                 },
                 },
+                listeners:{
+                    edit:'price_change'
+                },
                 renderer : function(v) {
                 renderer : function(v) {
                     var arr = (v + '.').split('.');
                     var arr = (v + '.').split('.');
                     var xr = (new Array(arr[1].length)).fill('0');
                     var xr = (new Array(arr[1].length)).fill('0');

+ 9 - 64
frontend/saas-web/app/view/stock/make/FormPanelController.js

@@ -4,70 +4,6 @@ Ext.define('saas.view.stock.make.FormPanelController', {
     init: function (form) {
     init: function (form) {
         var me = this;
         var me = this;
         this.control({
         this.control({
-            //主表单选放大镜模板
-            // 'dbfindtrigger[name=pu_vendcode]':{
-            //     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'
-            //             }],
-            //             //联想设置
-            //             dbtpls:[{
-            //                 field:'ve_code',width:100
-            //             },{
-            //                 field:'ve_name',width:100
-            //             }],
-            //             defaultCondition:"ve_statuscode='OPEN'",
-            //             //放大镜窗口字段
-            //             dbSearchFields:[{
-            //                 emptyText:'输入仓库编号或名称',
-            //                 xtype : "textfield", 
-            //                 name : "name", 
-            //                 allowBlank : true, 
-            //                 columnWidth : 0.25,
-            //                 getCondition:function(v){
-            //                     return "upper(ve_code) like '%"+v.toUpperCase()+"%' or upper(ve_name) like '%"+v.toUpperCase()+"%'";
-            //                 }
-            //             }],
-            //             //放大镜窗口列表
-            //             dbColumns:[{
-            //                 "text": "供应商ID",
-            //                 "flex": 0,
-            //                 "dataIndex": "ve_id",
-            //                 "width": 0,
-            //                 "xtype": "",
-            //                 "items": null
-            //             },{
-            //                 "text": "供应商编号",
-            //                 "flex": 1,
-            //                 "dataIndex": "ve_code",
-            //                 "width": 100,
-            //                 "xtype": "",
-            //                 "items": null
-            //             }, {
-            //                 "text": "供应商名称",
-            //                 "flex": 1,
-            //                 "dataIndex": "ve_name",
-            //                 "xtype": "",
-            //                 "items": null
-            //             }, {
-            //                 "text": "供应商类型",
-            //                 "flex": 0,
-            //                 "dataIndex": "ve_type",
-            //                 "width": 200,
-            //                 "xtype": "",
-            //                 "items": null
-            //             }]
-            //         }) ;   
-            //     }
-
             //放大镜赋值关系 以及 tpl模板
             //放大镜赋值关系 以及 tpl模板
             'dbfindtrigger[name=ma_whname]':{
             'dbfindtrigger[name=ma_whname]':{
                 beforerender:function(f){
                 beforerender:function(f){
@@ -517,6 +453,15 @@ Ext.define('saas.view.stock.make.FormPanelController', {
         });
         });
     },
     },
 
 
+
+    price_change:function() {
+        var me = this,
+        viewModel = me.getViewModel(),
+        store = viewModel.get('detail0').detailStore;
+        var sum_qty = store.sum('mm_price');
+        viewModel.set('ma_price',sum_qty);
+    },
+
     turnIn: function() {
     turnIn: function() {
         var me = this,
         var me = this,
         form = me.getView(),
         form = me.getView(),

+ 24 - 17
frontend/saas-web/app/view/sys/maxnumbers/DataList.js

@@ -74,32 +74,39 @@ Ext.define('saas.view.sys.maxnumbers.DataList', {
     }],
     }],
 
 
     columns : [{
     columns : [{
-        text : "id", 
+        text : 'id', 
         width : 0, 
         width : 0, 
-        dataIndex : "id", 
-        xtype : "numbercolumn", 
+        dataIndex : 'id', 
+        xtype : 'numbercolumn', 
     },{
     },{
-        text : "单据名称", 
+        text : '单据名称', 
         width : 200.0, 
         width : 200.0, 
-        dataIndex : "mn_name", 
-        xtype : "", 
+        dataIndex : 'mn_name', 
+        xtype : '', 
     }, 
     }, 
     {
     {
-        text : "单据前缀", 
-        dataIndex : "mn_leadcode", 
+        text : '单据前缀', 
+        dataIndex : 'mn_leadcode', 
         width : 120.0, 
         width : 120.0, 
-        xtype : "", 
+        xtype : '', 
     }, 
     }, 
     {
     {
-        text : "单据规则", 
-        dataIndex : "mn_rule", 
-        width : 220.0, 
-        xtype : "", 
+        text : '单据规则', 
+        dataIndex : 'mn_rule', 
+        width : 220.0,
+        renderer: function(v) {
+            var o = {
+                yyyymmdd: '年月日',
+                yyyymm: '年月',
+                无: '无'
+            }
+            return o[v];
+        },
     },{
     },{
-        text : "流水长度", 
-        dataIndex : "mn_number", 
+        text : '流水长度', 
+        dataIndex : 'mn_number', 
         width : 120.0, 
         width : 120.0, 
-        xtype : "", 
+        xtype : '', 
     }],
     }],
 
 
     dbSearchFields: [],
     dbSearchFields: [],
@@ -132,7 +139,7 @@ Ext.define('saas.view.sys.maxnumbers.DataList', {
                     beforeload: function (store, op) {
                     beforeload: function (store, op) {
                         var condition = me.condition;
                         var condition = me.condition;
                         if (Ext.isEmpty(condition)) {
                         if (Ext.isEmpty(condition)) {
-                            condition = "";
+                            condition = '';
                         }
                         }
                         Ext.apply(store.proxy.extraParams, {
                         Ext.apply(store.proxy.extraParams, {
                             number: op._page,
                             number: op._page,

+ 5 - 5
frontend/saas-web/resources/json/navigation.json

@@ -260,6 +260,11 @@
     "items": [{
     "items": [{
         "text": "系统设置",
         "text": "系统设置",
         "items": [{
         "items": [{
+            "id":"sys-config-formpanel",
+            "text": "系统参数",
+            "viewType": "sys-config-formpanel",
+            "leaf": true
+        }, {
             "id":"sys-messagelog-datalist",
             "id":"sys-messagelog-datalist",
             "text": "操作日志",
             "text": "操作日志",
             "viewType": "sys-messagelog-datalist",
             "viewType": "sys-messagelog-datalist",
@@ -274,11 +279,6 @@
             "text": "结账/反结账",
             "text": "结账/反结账",
             "viewType": "sys-finish-datalist",
             "viewType": "sys-finish-datalist",
             "leaf": true
             "leaf": true
-        },{
-            "id":"sys-config-formpanel",
-            "text": "参数设置",
-            "viewType": "sys-config-formpanel",
-            "leaf": true
         }]
         }]
     }]
     }]
 }]
 }]