Browse Source

Merge branch 'dev' of ssh://10.10.100.21/source/saas-platform into dev

rainco 7 years ago
parent
commit
50b7dae03c
41 changed files with 1710 additions and 189 deletions
  1. 2 2
      applications/commons/commons-api/src/main/java/com/usoftchina/saas/commons/api/MaxnumberService.java
  2. 17 16
      applications/commons/commons-api/src/main/java/com/usoftchina/saas/commons/api/MessageLogService.java
  3. 51 16
      applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/controller/MessageLogController.java
  4. 8 8
      applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/service/MessageLogService.java
  5. 21 17
      applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/service/impl/MessageLogServiceImpl.java
  6. 227 0
      applications/document/document-dto/src/main/java/com/usoftchina/saas/document/entities/Bankinformation.java
  7. 38 0
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/controller/BankinformationController.java
  8. 20 0
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/mapper/BankinformationMapper.java
  9. 1 1
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/mapper/CustomerMapper.java
  10. 2 0
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/mapper/CustomeraddressMapper.java
  11. 2 0
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/mapper/CustomercontactMapper.java
  12. 15 0
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/BankinformationService.java
  13. 34 0
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/BankinformationServiceImpl.java
  14. 23 4
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/CustomerServiceImpl.java
  15. 329 0
      applications/document/document-server/src/main/resources/mapper/BankinformationMapper.xml
  16. 1 1
      applications/document/document-server/src/main/resources/mapper/CustomerMapper.xml
  17. 6 1
      applications/document/document-server/src/main/resources/mapper/CustomeraddressMapper.xml
  18. 9 1
      applications/document/document-server/src/main/resources/mapper/CustomercontactMapper.xml
  19. 1 1
      applications/document/document-server/src/test/java/com/usoftchina/saas/document/mapper/CustomeraddressMapperTest.java
  20. 1 5
      applications/document/document-server/src/test/java/com/usoftchina/saas/document/mapper/CustomercontactMapperTest.java
  21. 1 3
      applications/money/money-server/pom.xml
  22. 5 5
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/VerificationServiceImpl.java
  23. 7 6
      applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/controller/PurchaseController.java
  24. 4 4
      applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/controller/SaleController.java
  25. 58 13
      frontend/saas-web/Readme.md
  26. 11 0
      frontend/saas-web/app/model/money/RecBalance1.js
  27. 14 0
      frontend/saas-web/app/model/money/RecBalance2.js
  28. 68 51
      frontend/saas-web/app/view/core/form/FormPanel.js
  29. 4 3
      frontend/saas-web/app/view/core/form/FormPanelController.js
  30. 55 0
      frontend/saas-web/app/view/core/query/MoreQueryWin.js
  31. 0 1
      frontend/saas-web/app/view/core/query/QueryPanel.js
  32. 12 24
      frontend/saas-web/app/view/core/query/QueryPanelController.js
  33. 3 4
      frontend/saas-web/app/view/money/payBalance/FormPanel.js
  34. 1 1
      frontend/saas-web/app/view/money/payBalance/FormPanelController.js
  35. 1 1
      frontend/saas-web/app/view/money/payBalance/FormPanelModel.js
  36. 177 0
      frontend/saas-web/app/view/money/recBalance/FormPanel.js
  37. 158 0
      frontend/saas-web/app/view/money/recBalance/FormPanelController.js
  38. 5 0
      frontend/saas-web/app/view/money/recBalance/FormPanelModel.js
  39. 196 0
      frontend/saas-web/app/view/money/recBalance/QueryPanel.js
  40. 117 0
      frontend/saas-web/app/view/money/recBalance/QueryPanelController.js
  41. 5 0
      frontend/saas-web/app/view/money/recBalance/QueryPanelModel.js

+ 2 - 2
applications/commons/commons-api/src/main/java/com/usoftchina/saas/commons/api/MaxnumberService.java

@@ -18,7 +18,7 @@ public interface MaxnumberService {
      * @Author: guq
      * @Date: 2018/10/19 api/commons
      */
-    @PostMapping("/api/commons/number/pushMaxnubmer")
+    @PostMapping("/number/pushMaxnubmer")
     public Result<String> pushMaxnubmer(@RequestParam("count") Integer count,@RequestParam("code") String code,
                                 @RequestParam("caller") String caller);
     /**
@@ -28,6 +28,6 @@ public interface MaxnumberService {
      * @Author: guq
      * @Date: 2018/10/22
      */
-    @PostMapping("/api/commons/numnber/getMaxnumber")
+    @PostMapping("/numnber/getMaxnumber")
     public Result<String> getMaxnumber(@RequestParam("caller") String caller, @RequestParam("update") boolean update);
 }

+ 17 - 16
applications/commons/commons-api/src/main/java/com/usoftchina/saas/commons/api/MessageLogService.java

@@ -4,6 +4,7 @@ import com.usoftchina.saas.commons.dto.DocBaseDTO;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.context.request.async.DeferredResult;
 
 /**
 * @Description: 日志接口
@@ -13,27 +14,27 @@ import org.springframework.web.bind.annotation.RequestMapping;
 @FeignClient("commons-server")
 public interface MessageLogService {
 
-    @RequestMapping("/api/commons/messagelog/save")
-    public void save(@RequestBody DocBaseDTO baseDTO);
+    @RequestMapping("/messagelog/save")
+    public String save(@RequestBody DocBaseDTO baseDTO);
 
-    @RequestMapping("/api/commons/messagelog/update")
-    public void update(@RequestBody DocBaseDTO baseDTO);
+    @RequestMapping("/messagelog/update")
+    public String update(@RequestBody DocBaseDTO baseDTO);
 
-    @RequestMapping("/api/commons/messagelog/delete")
-    public void delete(@RequestBody DocBaseDTO baseDTO);
+    @RequestMapping("/messagelog/delete")
+    public String delete(@RequestBody DocBaseDTO baseDTO);
 
-    @RequestMapping("/api/commons/messagelog/deleteDetail")
-    public void deleteDetail(@RequestBody DocBaseDTO baseDTO);
+    @RequestMapping("/messagelog/deleteDetail")
+    public String deleteDetail(@RequestBody DocBaseDTO baseDTO);
 
-    @RequestMapping("/api/commons/messagelog/audit")
-    public void audit(@RequestBody DocBaseDTO baseDTO);
+    @RequestMapping("/messagelog/audit")
+    public String audit(@RequestBody DocBaseDTO baseDTO);
 
-    @RequestMapping("/api/commons/messagelog/unAudit")
-    public void unAudit(@RequestBody DocBaseDTO baseDTO);
+    @RequestMapping("/messagelog/unAudit")
+    public String unAudit(@RequestBody DocBaseDTO baseDTO);
 
-    @RequestMapping("/api/commons/messagelog/close")
-    public void close(@RequestBody DocBaseDTO baseDTO);
+    @RequestMapping("/messagelog/close")
+    public String close(@RequestBody DocBaseDTO baseDTO);
 
-    @RequestMapping("/api/commons/messagelog/open")
-    public void open(@RequestBody DocBaseDTO baseDTO);
+    @RequestMapping("//messagelog/open")
+    public String open(@RequestBody DocBaseDTO baseDTO);
 }

+ 51 - 16
applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/controller/MessageLogController.java

@@ -6,6 +6,9 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.context.request.async.DeferredResult;
+
+import java.util.concurrent.CompletableFuture;
 
 /**
  * @author: guq
@@ -19,42 +22,74 @@ public class MessageLogController {
     private MessageLogService messageLogService;
 
     @RequestMapping("/save")
-    public void save(@RequestBody DocBaseDTO baseDTO) {
-        messageLogService.save(baseDTO);
+    public DeferredResult<String> save(@RequestBody DocBaseDTO baseDTO) {
+        // Create the deferredResult and initiate a callback object, task, with it
+        DeferredResult<String> deferredResult = new DeferredResult<>();
+        CompletableFuture.supplyAsync(() -> messageLogService.save(baseDTO))
+                .whenCompleteAsync((result, throwable) -> deferredResult.setResult(result));
+        return deferredResult;
     }
 
     @RequestMapping("/update")
-    public void update(@RequestBody DocBaseDTO baseDTO) {
-        messageLogService.update(baseDTO);
+    public DeferredResult<String> update(@RequestBody DocBaseDTO baseDTO) {
+        // Create the deferredResult and initiate a callback object, task, with it
+        DeferredResult<String> deferredResult = new DeferredResult<>();
+        CompletableFuture.supplyAsync(() -> messageLogService.update(baseDTO))
+                .whenCompleteAsync((result, throwable) -> deferredResult.setResult(result));
+        return deferredResult;
     }
 
     @RequestMapping("/delete")
-    public void delete(@RequestBody DocBaseDTO baseDTO) {
-        messageLogService.delete(baseDTO);
+    public DeferredResult<String> delete(@RequestBody DocBaseDTO baseDTO) {
+        // Create the deferredResult and initiate a callback object, task, with it
+        DeferredResult<String> deferredResult = new DeferredResult<>();
+        CompletableFuture.supplyAsync(() -> messageLogService.delete(baseDTO))
+                .whenCompleteAsync((result, throwable) -> deferredResult.setResult(result));
+        return deferredResult;
     }
 
     @RequestMapping("/deleteDetail")
-    public void deleteDetail(@RequestBody DocBaseDTO baseDTO) {
-        messageLogService.deleteDetail(baseDTO);
+    public DeferredResult<String> deleteDetail(@RequestBody DocBaseDTO baseDTO) {
+        // Create the deferredResult and initiate a callback object, task, with it
+        DeferredResult<String> deferredResult = new DeferredResult<>();
+        CompletableFuture.supplyAsync(() -> messageLogService.deleteDetail(baseDTO))
+                .whenCompleteAsync((result, throwable) -> deferredResult.setResult(result));
+        return deferredResult;
     }
 
     @RequestMapping("/audit")
-    public void audit(@RequestBody DocBaseDTO baseDTO) {
-        messageLogService.audit(baseDTO);
+    public DeferredResult<String> audit(@RequestBody DocBaseDTO baseDTO) {
+        // Create the deferredResult and initiate a callback object, task, with it
+        DeferredResult<String> deferredResult = new DeferredResult<>();
+        CompletableFuture.supplyAsync(() -> messageLogService.audit(baseDTO))
+                .whenCompleteAsync((result, throwable) -> deferredResult.setResult(result));
+        return deferredResult;
     }
 
     @RequestMapping("/unAudit")
-    public void unAudit(@RequestBody DocBaseDTO baseDTO) {
-        messageLogService.unAudit(baseDTO);
+    public DeferredResult<String> unAudit(@RequestBody DocBaseDTO baseDTO) {
+        // Create the deferredResult and initiate a callback object, task, with it
+        DeferredResult<String> deferredResult = new DeferredResult<>();
+        CompletableFuture.supplyAsync(() -> messageLogService.unAudit(baseDTO))
+                .whenCompleteAsync((result, throwable) -> deferredResult.setResult(result));
+        return deferredResult;
     }
 
     @RequestMapping("/close")
-    public void close(@RequestBody DocBaseDTO baseDTO) {
-        messageLogService.close(baseDTO);
+    public DeferredResult<String> close(@RequestBody DocBaseDTO baseDTO) {
+        // Create the deferredResult and initiate a callback object, task, with it
+        DeferredResult<String> deferredResult = new DeferredResult<>();
+        CompletableFuture.supplyAsync(() -> messageLogService.close(baseDTO))
+                .whenCompleteAsync((result, throwable) -> deferredResult.setResult(result));
+        return deferredResult;
     }
 
     @RequestMapping("/open")
-    public void open(@RequestBody DocBaseDTO baseDTO) {
-        messageLogService.open(baseDTO);
+    public DeferredResult<String> open(@RequestBody DocBaseDTO baseDTO) {
+        // Create the deferredResult and initiate a callback object, task, with it
+        DeferredResult<String> deferredResult = new DeferredResult<>();
+        CompletableFuture.supplyAsync(() -> messageLogService.open(baseDTO))
+                .whenCompleteAsync((result, throwable) -> deferredResult.setResult(result));
+        return deferredResult;
     }
 }

+ 8 - 8
applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/service/MessageLogService.java

@@ -6,19 +6,19 @@ import com.usoftchina.saas.commons.mapper.MessagelogMapper;
 import com.usoftchina.saas.commons.po.Messagelog;
 
 public interface MessageLogService extends CommonBaseService<MessagelogMapper, Messagelog>{
-    void save(DocBaseDTO baseDTO);
+    String save(DocBaseDTO baseDTO);
 
-    void update(DocBaseDTO baseDTO);
+    String update(DocBaseDTO baseDTO);
 
-    void delete(DocBaseDTO baseDTO);
+    String delete(DocBaseDTO baseDTO);
 
-    void deleteDetail(DocBaseDTO baseDTO);
+    String deleteDetail(DocBaseDTO baseDTO);
 
-    void audit(DocBaseDTO baseDTO);
+    String audit(DocBaseDTO baseDTO);
 
-    void unAudit(DocBaseDTO baseDTO);
+    String unAudit(DocBaseDTO baseDTO);
 
-    void close(DocBaseDTO baseDTO);
+    String close(DocBaseDTO baseDTO);
 
-    void open(DocBaseDTO baseDTO);
+    String open(DocBaseDTO baseDTO);
 }

+ 21 - 17
applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/service/impl/MessageLogServiceImpl.java

@@ -7,6 +7,8 @@ import com.usoftchina.saas.commons.po.Messagelog;
 import com.usoftchina.saas.commons.po.Operation;
 import com.usoftchina.saas.commons.service.MessageLogService;
 import com.usoftchina.saas.context.BaseContextHolder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.MessageSource;
 import org.springframework.stereotype.Service;
@@ -25,46 +27,47 @@ public class MessageLogServiceImpl extends CommonBaseServiceImpl<MessagelogMappe
     private MessageSource messageSource;
 
     @Override
-    public void save(DocBaseDTO baseDTO) {
-        log(Operation.SAVE, baseDTO);
+    public String save(DocBaseDTO baseDTO) {
+        return log(Operation.SAVE, baseDTO);
+
     }
 
     @Override
-    public void update(DocBaseDTO baseDTO) {
-        log(Operation.UPDATE, baseDTO);
+    public String update(DocBaseDTO baseDTO) {
+        return log(Operation.UPDATE, baseDTO);
     }
 
     @Override
-    public void delete(DocBaseDTO baseDTO) {
-        log(Operation.DELETE, baseDTO);
+    public String delete(DocBaseDTO baseDTO) {
+        return log(Operation.DELETE, baseDTO);
     }
 
     @Override
-    public void deleteDetail(DocBaseDTO baseDTO) {
-        log(Operation.DELETEDETAIL, baseDTO);
+    public String deleteDetail(DocBaseDTO baseDTO) {
+        return log(Operation.DELETEDETAIL, baseDTO);
     }
 
     @Override
-    public void audit(DocBaseDTO baseDTO) {
-        log(Operation.AUDIT, baseDTO);
+    public String audit(DocBaseDTO baseDTO) {
+        return log(Operation.AUDIT, baseDTO);
     }
 
     @Override
-    public void unAudit(DocBaseDTO baseDTO) {
-        log(Operation.RESAUDIT, baseDTO);
+    public String unAudit(DocBaseDTO baseDTO) {
+        return log(Operation.RESAUDIT, baseDTO);
     }
 
     @Override
-    public void close(DocBaseDTO baseDTO) {
-        log(Operation.CLOSE, baseDTO);
+    public String close(DocBaseDTO baseDTO) {
+        return log(Operation.CLOSE, baseDTO);
     }
 
     @Override
-    public void open(DocBaseDTO baseDTO) {
-        log(Operation.OPEN, baseDTO);
+    public String open(DocBaseDTO baseDTO) {
+        return log(Operation.OPEN, baseDTO);
     }
 
-    private void log(Operation operation, DocBaseDTO baseDTO) {
+    private String log(Operation operation, DocBaseDTO baseDTO) {
         String language = "zh_CN";
         Messagelog msg = new Messagelog();
         msg.setMl_caller(baseDTO.getName());
@@ -76,6 +79,7 @@ public class MessageLogServiceImpl extends CommonBaseServiceImpl<MessagelogMappe
         msg.setCreatorId(BaseContextHolder.getUserId());
         msg.setMl_keyvalue(baseDTO.getId());
         getMapper().insert(msg);
+        return "success";
     }
 
     private String getLocalMessage(String msg, String language) {

+ 227 - 0
applications/document/document-dto/src/main/java/com/usoftchina/saas/document/entities/Bankinformation.java

@@ -0,0 +1,227 @@
+package com.usoftchina.saas.document.entities;
+
+import com.usoftchina.saas.base.entity.CommonBaseEntity;
+
+import java.util.Date;
+
+public class Bankinformation extends CommonBaseEntity {
+    private Integer bkId;
+
+    private String bkBankcode;
+
+    private String bkBankname;
+
+    private Date bkDate;
+
+    private String bkType;
+
+    private Double bkBeginamount;
+
+    private Double bkThisamount;
+
+    private String bkStatus;
+
+    private String bkStatuscode;
+
+    private Integer bkRecorderid;
+
+    private String bkRecorder;
+
+    private Date bkRecorddate;
+
+    private Integer bkYm;
+
+    private Integer companyid;
+
+    private Integer updaterid;
+
+    private Date updatetime;
+
+    private String bkText1;
+
+    private String bkText2;
+
+    private String bkText3;
+
+    private String bkText4;
+
+    private String bkText5;
+
+    private String bkRemark;
+
+    public Integer getBkId() {
+        return bkId;
+    }
+
+    public void setBkId(Integer bkId) {
+        this.bkId = bkId;
+    }
+
+    public String getBkBankcode() {
+        return bkBankcode;
+    }
+
+    public void setBkBankcode(String bkBankcode) {
+        this.bkBankcode = bkBankcode == null ? null : bkBankcode.trim();
+    }
+
+    public String getBkBankname() {
+        return bkBankname;
+    }
+
+    public void setBkBankname(String bkBankname) {
+        this.bkBankname = bkBankname == null ? null : bkBankname.trim();
+    }
+
+    public Date getBkDate() {
+        return bkDate;
+    }
+
+    public void setBkDate(Date bkDate) {
+        this.bkDate = bkDate;
+    }
+
+    public String getBkType() {
+        return bkType;
+    }
+
+    public void setBkType(String bkType) {
+        this.bkType = bkType == null ? null : bkType.trim();
+    }
+
+    public Double getBkBeginamount() {
+        return bkBeginamount;
+    }
+
+    public void setBkBeginamount(Double bkBeginamount) {
+        this.bkBeginamount = bkBeginamount;
+    }
+
+    public Double getBkThisamount() {
+        return bkThisamount;
+    }
+
+    public void setBkThisamount(Double bkThisamount) {
+        this.bkThisamount = bkThisamount;
+    }
+
+    public String getBkStatus() {
+        return bkStatus;
+    }
+
+    public void setBkStatus(String bkStatus) {
+        this.bkStatus = bkStatus == null ? null : bkStatus.trim();
+    }
+
+    public String getBkStatuscode() {
+        return bkStatuscode;
+    }
+
+    public void setBkStatuscode(String bkStatuscode) {
+        this.bkStatuscode = bkStatuscode == null ? null : bkStatuscode.trim();
+    }
+
+    public Integer getBkRecorderid() {
+        return bkRecorderid;
+    }
+
+    public void setBkRecorderid(Integer bkRecorderid) {
+        this.bkRecorderid = bkRecorderid;
+    }
+
+    public String getBkRecorder() {
+        return bkRecorder;
+    }
+
+    public void setBkRecorder(String bkRecorder) {
+        this.bkRecorder = bkRecorder == null ? null : bkRecorder.trim();
+    }
+
+    public Date getBkRecorddate() {
+        return bkRecorddate;
+    }
+
+    public void setBkRecorddate(Date bkRecorddate) {
+        this.bkRecorddate = bkRecorddate;
+    }
+
+    public Integer getBkYm() {
+        return bkYm;
+    }
+
+    public void setBkYm(Integer bkYm) {
+        this.bkYm = bkYm;
+    }
+
+    public Integer getCompanyid() {
+        return companyid;
+    }
+
+    public void setCompanyid(Integer companyid) {
+        this.companyid = companyid;
+    }
+
+    public Integer getUpdaterid() {
+        return updaterid;
+    }
+
+    public void setUpdaterid(Integer updaterid) {
+        this.updaterid = updaterid;
+    }
+
+    public Date getUpdatetime() {
+        return updatetime;
+    }
+
+    public void setUpdatetime(Date updatetime) {
+        this.updatetime = updatetime;
+    }
+
+    public String getBkText1() {
+        return bkText1;
+    }
+
+    public void setBkText1(String bkText1) {
+        this.bkText1 = bkText1 == null ? null : bkText1.trim();
+    }
+
+    public String getBkText2() {
+        return bkText2;
+    }
+
+    public void setBkText2(String bkText2) {
+        this.bkText2 = bkText2 == null ? null : bkText2.trim();
+    }
+
+    public String getBkText3() {
+        return bkText3;
+    }
+
+    public void setBkText3(String bkText3) {
+        this.bkText3 = bkText3 == null ? null : bkText3.trim();
+    }
+
+    public String getBkText4() {
+        return bkText4;
+    }
+
+    public void setBkText4(String bkText4) {
+        this.bkText4 = bkText4 == null ? null : bkText4.trim();
+    }
+
+    public String getBkText5() {
+        return bkText5;
+    }
+
+    public void setBkText5(String bkText5) {
+        this.bkText5 = bkText5 == null ? null : bkText5.trim();
+    }
+
+    public String getBkRemark() {
+        return bkRemark;
+    }
+
+    public void setBkRemark(String bkRemark) {
+        this.bkRemark = bkRemark == null ? null : bkRemark.trim();
+    }
+}

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

@@ -0,0 +1,38 @@
+package com.usoftchina.saas.document.controller;
+
+import com.usoftchina.saas.base.Result;
+import com.usoftchina.saas.document.entities.Bankinformation;
+import com.usoftchina.saas.document.service.BankinformationService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * @author heqw
+ * @date 2018/10/25 15:33
+ **/
+@RestController
+@RequestMapping("/Bankinformation")
+public class BankinformationController {
+    @Autowired
+    BankinformationService bankinformationService;
+
+    @PostMapping("/save")
+    public Result save(@RequestBody Bankinformation bankinformation){
+        bankinformationService.save(bankinformation);
+        return Result.success();
+    }
+
+    @PostMapping("/delete/{id}")
+    public Result delete(@PathVariable("id") int id){
+        bankinformationService.removeByPrimaryKey(id);
+        return Result.success();
+    }
+
+    @GetMapping("/getAll")
+    public Result getAll(){
+        List<Bankinformation> bankinformationList = bankinformationService.findAll();
+        return Result.success(bankinformationList);
+    }
+}

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

@@ -0,0 +1,20 @@
+package com.usoftchina.saas.document.mapper;
+
+import com.usoftchina.saas.base.mapper.CommonBaseMapper;
+import com.usoftchina.saas.document.entities.Bankinformation;
+
+public interface BankinformationMapper extends CommonBaseMapper<Bankinformation> {
+    int deleteByPrimaryKey(Integer bkId);
+
+    int insert(Bankinformation record);
+
+    int insertSelective(Bankinformation record);
+
+    Bankinformation selectByPrimaryKey(Integer bkId);
+
+    int updateByPrimaryKeySelective(Bankinformation record);
+
+    int updateByPrimaryKeyWithBLOBs(Bankinformation record);
+
+    int updateByPrimaryKey(Bankinformation record);
+}

+ 1 - 1
applications/document/document-server/src/main/java/com/usoftchina/saas/document/mapper/CustomerMapper.java

@@ -4,7 +4,7 @@ import com.usoftchina.saas.base.mapper.CommonBaseMapper;
 import com.usoftchina.saas.document.entities.Customer;
 
 public interface CustomerMapper extends CommonBaseMapper<Customer> {
-    int deleteByPrimaryKey(Integer cu_id);
+    int deleteByPrimaryKey(Long cu_id);
 
     int insertSelective(Customer record);
 

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

@@ -22,4 +22,6 @@ public interface CustomeraddressMapper extends CommonBaseMapper<Customer> {
     void batchInsert(List<Customeraddress> list);
 
     void batchUpdate(List<Customeraddress> list);
+
+    void deleteByFK(Long id);
 }

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

@@ -21,4 +21,6 @@ public interface CustomercontactMapper extends CommonBaseMapper<Customercontact>
     void batchInsert(List<Customercontact> insertDetail1);
 
     void batchUpdate(List<Customercontact> updateDetail1);
+
+    void deleteByFK(Long id);
 }

+ 15 - 0
applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/BankinformationService.java

@@ -0,0 +1,15 @@
+package com.usoftchina.saas.document.service;
+
+import com.usoftchina.saas.base.service.CommonBaseService;
+import com.usoftchina.saas.document.entities.Bankinformation;
+import com.usoftchina.saas.document.mapper.BankinformationMapper;
+
+/**
+ * @author heqw
+ * @date 2018/10/25 15:36
+ **/
+public interface BankinformationService extends CommonBaseService<BankinformationMapper, Bankinformation> {
+    boolean save(Bankinformation bankinformation);
+
+    boolean removeByPrimaryKey(int id);
+}

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

@@ -0,0 +1,34 @@
+package com.usoftchina.saas.document.service.impl;
+
+import com.usoftchina.saas.base.service.CommonBaseServiceImpl;
+import com.usoftchina.saas.document.entities.Bankinformation;
+import com.usoftchina.saas.document.mapper.BankinformationMapper;
+import com.usoftchina.saas.document.service.BankinformationService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author heqw
+ * @date 2018/10/25 15:36
+ **/
+@Service
+public class BankinformationServiceImpl extends CommonBaseServiceImpl<BankinformationMapper, Bankinformation> implements BankinformationService {
+    @Autowired
+    private BankinformationMapper bankinformationMapper;
+
+    @Override
+    public boolean save(Bankinformation bankinformation){
+        if(bankinformation.getBkId() == 0){
+            bankinformationMapper.insertSelective(bankinformation);
+        }else{
+            bankinformationMapper.updateByPrimaryKeySelective(bankinformation);
+        }
+        return true;
+    }
+
+    @Override
+    public boolean removeByPrimaryKey(int id){
+        bankinformationMapper.deleteByPrimaryKey(id);
+        return true;
+    }
+}

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

@@ -150,7 +150,7 @@ public class CustomerServiceImpl extends CommonBaseServiceImpl<CustomerMapper, C
             if (insertDetail2.size()>0) {
                 customeraddressMapper.batchInsert(insertDetail2);
             }
-//            baseDTO = getBaseDTOById(pu_id);
+            baseDTO = getBaseDTOById(cu_id);
             //日志记录
 //            messageLogService.save(baseDTO);
             return baseDTO;
@@ -210,21 +210,40 @@ public class CustomerServiceImpl extends CommonBaseServiceImpl<CustomerMapper, C
 
     @Override
     public void delete(Long id) {
+        singleDelete(id);
+    }
 
+    private void singleDelete(Long id) {
+        if (null!=id) {
+            //主表删除
+            getMapper().deleteByPrimaryKey(id);
+            //从表删除
+            customercontactMapper.deleteByFK(id);
+            customeraddressMapper.deleteByFK(id);
+            //日志
+//            messageLogService.delete(docBaseDTO);
+        }
     }
 
     @Override
-    public void close(long id) {
+    public void batchDelete(BatchDealBaseDTO baseDTOs) {
+        if (null == baseDTOs || null == baseDTOs.getBaseDTOs() ||
+                baseDTOs.getBaseDTOs().size() == 0) {
+            return;
+        }
 
+        for (DocBaseDTO base : baseDTOs.getBaseDTOs()) {
+            singleDelete(base.getId());
+        }
     }
 
     @Override
-    public void open(long id) {
+    public void close(long id) {
 
     }
 
     @Override
-    public void batchDelete(BatchDealBaseDTO baseDTOs) {
+    public void open(long id) {
 
     }
 

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

@@ -0,0 +1,329 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.usoftchina.saas.document.mapper.BankinformationMapper" >
+  <resultMap id="BaseResultMap" type="com.usoftchina.saas.document.po.Bankinformation" >
+    <id column="bk_id" property="bkId" jdbcType="INTEGER" />
+    <result column="bk_bankcode" property="bkBankcode" jdbcType="VARCHAR" />
+    <result column="bk_bankname" property="bkBankname" jdbcType="VARCHAR" />
+    <result column="bk_date" property="bkDate" jdbcType="TIMESTAMP" />
+    <result column="bk_type" property="bkType" jdbcType="VARCHAR" />
+    <result column="bk_beginamount" property="bkBeginamount" jdbcType="DOUBLE" />
+    <result column="bk_thisamount" property="bkThisamount" jdbcType="DOUBLE" />
+    <result column="bk_status" property="bkStatus" jdbcType="VARCHAR" />
+    <result column="bk_statuscode" property="bkStatuscode" jdbcType="VARCHAR" />
+    <result column="bk_recorderid" property="bkRecorderid" jdbcType="INTEGER" />
+    <result column="bk_recorder" property="bkRecorder" jdbcType="VARCHAR" />
+    <result column="bk_recorddate" property="bkRecorddate" jdbcType="TIMESTAMP" />
+    <result column="bk_ym" property="bkYm" jdbcType="INTEGER" />
+    <result column="companyid" property="companyid" jdbcType="INTEGER" />
+    <result column="updaterid" property="updaterid" jdbcType="INTEGER" />
+    <result column="updatetime" property="updatetime" jdbcType="TIMESTAMP" />
+    <result column="bk_text1" property="bkText1" jdbcType="VARCHAR" />
+    <result column="bk_text2" property="bkText2" jdbcType="VARCHAR" />
+    <result column="bk_text3" property="bkText3" jdbcType="VARCHAR" />
+    <result column="bk_text4" property="bkText4" jdbcType="VARCHAR" />
+    <result column="bk_text5" property="bkText5" jdbcType="VARCHAR" />
+  </resultMap>
+  <resultMap id="ResultMapWithBLOBs" type="com.usoftchina.saas.document.po.Bankinformation" extends="BaseResultMap" >
+    <result column="bk_remark" property="bkRemark" jdbcType="LONGVARCHAR" />
+  </resultMap>
+  <sql id="Base_Column_List" >
+    bk_id, bk_bankcode, bk_bankname, bk_date, bk_type, bk_beginamount, bk_thisamount, 
+    bk_status, bk_statuscode, bk_recorderid, bk_recorder, bk_recorddate, bk_ym, companyid, 
+    updaterid, updatetime, bk_text1, bk_text2, bk_text3, bk_text4, bk_text5
+  </sql>
+  <sql id="Blob_Column_List" >
+    bk_remark
+  </sql>
+  <select id="selectByPrimaryKey" resultMap="ResultMapWithBLOBs" parameterType="java.lang.Integer" >
+    select 
+    <include refid="Base_Column_List" />
+    ,
+    <include refid="Blob_Column_List" />
+    from bankinformation
+    where bk_id = #{bkId,jdbcType=INTEGER}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
+    delete from bankinformation
+    where bk_id = #{bkId,jdbcType=INTEGER}
+  </delete>
+  <insert id="insert" parameterType="com.usoftchina.saas.document.po.Bankinformation" >
+    insert into bankinformation (bk_id, bk_bankcode, bk_bankname, 
+      bk_date, bk_type, bk_beginamount, 
+      bk_thisamount, bk_status, bk_statuscode, 
+      bk_recorderid, bk_recorder, bk_recorddate, 
+      bk_ym, companyid, updaterid, 
+      updatetime, bk_text1, bk_text2, 
+      bk_text3, bk_text4, bk_text5, 
+      bk_remark)
+    values (#{bkId,jdbcType=INTEGER}, #{bkBankcode,jdbcType=VARCHAR}, #{bkBankname,jdbcType=VARCHAR}, 
+      #{bkDate,jdbcType=TIMESTAMP}, #{bkType,jdbcType=VARCHAR}, #{bkBeginamount,jdbcType=DOUBLE}, 
+      #{bkThisamount,jdbcType=DOUBLE}, #{bkStatus,jdbcType=VARCHAR}, #{bkStatuscode,jdbcType=VARCHAR}, 
+      #{bkRecorderid,jdbcType=INTEGER}, #{bkRecorder,jdbcType=VARCHAR}, #{bkRecorddate,jdbcType=TIMESTAMP}, 
+      #{bkYm,jdbcType=INTEGER}, #{companyid,jdbcType=INTEGER}, #{updaterid,jdbcType=INTEGER}, 
+      #{updatetime,jdbcType=TIMESTAMP}, #{bkText1,jdbcType=VARCHAR}, #{bkText2,jdbcType=VARCHAR}, 
+      #{bkText3,jdbcType=VARCHAR}, #{bkText4,jdbcType=VARCHAR}, #{bkText5,jdbcType=VARCHAR}, 
+      #{bkRemark,jdbcType=LONGVARCHAR})
+  </insert>
+  <insert id="insertSelective" parameterType="com.usoftchina.saas.document.po.Bankinformation" >
+    insert into bankinformation
+    <trim prefix="(" suffix=")" suffixOverrides="," >
+      <if test="bkId != null" >
+        bk_id,
+      </if>
+      <if test="bkBankcode != null" >
+        bk_bankcode,
+      </if>
+      <if test="bkBankname != null" >
+        bk_bankname,
+      </if>
+      <if test="bkDate != null" >
+        bk_date,
+      </if>
+      <if test="bkType != null" >
+        bk_type,
+      </if>
+      <if test="bkBeginamount != null" >
+        bk_beginamount,
+      </if>
+      <if test="bkThisamount != null" >
+        bk_thisamount,
+      </if>
+      <if test="bkStatus != null" >
+        bk_status,
+      </if>
+      <if test="bkStatuscode != null" >
+        bk_statuscode,
+      </if>
+      <if test="bkRecorderid != null" >
+        bk_recorderid,
+      </if>
+      <if test="bkRecorder != null" >
+        bk_recorder,
+      </if>
+      <if test="bkRecorddate != null" >
+        bk_recorddate,
+      </if>
+      <if test="bkYm != null" >
+        bk_ym,
+      </if>
+      <if test="companyid != null" >
+        companyid,
+      </if>
+      <if test="updaterid != null" >
+        updaterid,
+      </if>
+      <if test="updatetime != null" >
+        updatetime,
+      </if>
+      <if test="bkText1 != null" >
+        bk_text1,
+      </if>
+      <if test="bkText2 != null" >
+        bk_text2,
+      </if>
+      <if test="bkText3 != null" >
+        bk_text3,
+      </if>
+      <if test="bkText4 != null" >
+        bk_text4,
+      </if>
+      <if test="bkText5 != null" >
+        bk_text5,
+      </if>
+      <if test="bkRemark != null" >
+        bk_remark,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides="," >
+      <if test="bkId != null" >
+        #{bkId,jdbcType=INTEGER},
+      </if>
+      <if test="bkBankcode != null" >
+        #{bkBankcode,jdbcType=VARCHAR},
+      </if>
+      <if test="bkBankname != null" >
+        #{bkBankname,jdbcType=VARCHAR},
+      </if>
+      <if test="bkDate != null" >
+        #{bkDate,jdbcType=TIMESTAMP},
+      </if>
+      <if test="bkType != null" >
+        #{bkType,jdbcType=VARCHAR},
+      </if>
+      <if test="bkBeginamount != null" >
+        #{bkBeginamount,jdbcType=DOUBLE},
+      </if>
+      <if test="bkThisamount != null" >
+        #{bkThisamount,jdbcType=DOUBLE},
+      </if>
+      <if test="bkStatus != null" >
+        #{bkStatus,jdbcType=VARCHAR},
+      </if>
+      <if test="bkStatuscode != null" >
+        #{bkStatuscode,jdbcType=VARCHAR},
+      </if>
+      <if test="bkRecorderid != null" >
+        #{bkRecorderid,jdbcType=INTEGER},
+      </if>
+      <if test="bkRecorder != null" >
+        #{bkRecorder,jdbcType=VARCHAR},
+      </if>
+      <if test="bkRecorddate != null" >
+        #{bkRecorddate,jdbcType=TIMESTAMP},
+      </if>
+      <if test="bkYm != null" >
+        #{bkYm,jdbcType=INTEGER},
+      </if>
+      <if test="companyid != null" >
+        #{companyid,jdbcType=INTEGER},
+      </if>
+      <if test="updaterid != null" >
+        #{updaterid,jdbcType=INTEGER},
+      </if>
+      <if test="updatetime != null" >
+        #{updatetime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="bkText1 != null" >
+        #{bkText1,jdbcType=VARCHAR},
+      </if>
+      <if test="bkText2 != null" >
+        #{bkText2,jdbcType=VARCHAR},
+      </if>
+      <if test="bkText3 != null" >
+        #{bkText3,jdbcType=VARCHAR},
+      </if>
+      <if test="bkText4 != null" >
+        #{bkText4,jdbcType=VARCHAR},
+      </if>
+      <if test="bkText5 != null" >
+        #{bkText5,jdbcType=VARCHAR},
+      </if>
+      <if test="bkRemark != null" >
+        #{bkRemark,jdbcType=LONGVARCHAR},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKeySelective" parameterType="com.usoftchina.saas.document.po.Bankinformation" >
+    update bankinformation
+    <set >
+      <if test="bkBankcode != null" >
+        bk_bankcode = #{bkBankcode,jdbcType=VARCHAR},
+      </if>
+      <if test="bkBankname != null" >
+        bk_bankname = #{bkBankname,jdbcType=VARCHAR},
+      </if>
+      <if test="bkDate != null" >
+        bk_date = #{bkDate,jdbcType=TIMESTAMP},
+      </if>
+      <if test="bkType != null" >
+        bk_type = #{bkType,jdbcType=VARCHAR},
+      </if>
+      <if test="bkBeginamount != null" >
+        bk_beginamount = #{bkBeginamount,jdbcType=DOUBLE},
+      </if>
+      <if test="bkThisamount != null" >
+        bk_thisamount = #{bkThisamount,jdbcType=DOUBLE},
+      </if>
+      <if test="bkStatus != null" >
+        bk_status = #{bkStatus,jdbcType=VARCHAR},
+      </if>
+      <if test="bkStatuscode != null" >
+        bk_statuscode = #{bkStatuscode,jdbcType=VARCHAR},
+      </if>
+      <if test="bkRecorderid != null" >
+        bk_recorderid = #{bkRecorderid,jdbcType=INTEGER},
+      </if>
+      <if test="bkRecorder != null" >
+        bk_recorder = #{bkRecorder,jdbcType=VARCHAR},
+      </if>
+      <if test="bkRecorddate != null" >
+        bk_recorddate = #{bkRecorddate,jdbcType=TIMESTAMP},
+      </if>
+      <if test="bkYm != null" >
+        bk_ym = #{bkYm,jdbcType=INTEGER},
+      </if>
+      <if test="companyid != null" >
+        companyid = #{companyid,jdbcType=INTEGER},
+      </if>
+      <if test="updaterid != null" >
+        updaterid = #{updaterid,jdbcType=INTEGER},
+      </if>
+      <if test="updatetime != null" >
+        updatetime = #{updatetime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="bkText1 != null" >
+        bk_text1 = #{bkText1,jdbcType=VARCHAR},
+      </if>
+      <if test="bkText2 != null" >
+        bk_text2 = #{bkText2,jdbcType=VARCHAR},
+      </if>
+      <if test="bkText3 != null" >
+        bk_text3 = #{bkText3,jdbcType=VARCHAR},
+      </if>
+      <if test="bkText4 != null" >
+        bk_text4 = #{bkText4,jdbcType=VARCHAR},
+      </if>
+      <if test="bkText5 != null" >
+        bk_text5 = #{bkText5,jdbcType=VARCHAR},
+      </if>
+      <if test="bkRemark != null" >
+        bk_remark = #{bkRemark,jdbcType=LONGVARCHAR},
+      </if>
+    </set>
+    where bk_id = #{bkId,jdbcType=INTEGER}
+  </update>
+  <update id="updateByPrimaryKeyWithBLOBs" parameterType="com.usoftchina.saas.document.po.Bankinformation" >
+    update bankinformation
+    set bk_bankcode = #{bkBankcode,jdbcType=VARCHAR},
+      bk_bankname = #{bkBankname,jdbcType=VARCHAR},
+      bk_date = #{bkDate,jdbcType=TIMESTAMP},
+      bk_type = #{bkType,jdbcType=VARCHAR},
+      bk_beginamount = #{bkBeginamount,jdbcType=DOUBLE},
+      bk_thisamount = #{bkThisamount,jdbcType=DOUBLE},
+      bk_status = #{bkStatus,jdbcType=VARCHAR},
+      bk_statuscode = #{bkStatuscode,jdbcType=VARCHAR},
+      bk_recorderid = #{bkRecorderid,jdbcType=INTEGER},
+      bk_recorder = #{bkRecorder,jdbcType=VARCHAR},
+      bk_recorddate = #{bkRecorddate,jdbcType=TIMESTAMP},
+      bk_ym = #{bkYm,jdbcType=INTEGER},
+      companyid = #{companyid,jdbcType=INTEGER},
+      updaterid = #{updaterid,jdbcType=INTEGER},
+      updatetime = #{updatetime,jdbcType=TIMESTAMP},
+      bk_text1 = #{bkText1,jdbcType=VARCHAR},
+      bk_text2 = #{bkText2,jdbcType=VARCHAR},
+      bk_text3 = #{bkText3,jdbcType=VARCHAR},
+      bk_text4 = #{bkText4,jdbcType=VARCHAR},
+      bk_text5 = #{bkText5,jdbcType=VARCHAR},
+      bk_remark = #{bkRemark,jdbcType=LONGVARCHAR}
+    where bk_id = #{bkId,jdbcType=INTEGER}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.usoftchina.saas.document.po.Bankinformation" >
+    update bankinformation
+    set bk_bankcode = #{bkBankcode,jdbcType=VARCHAR},
+      bk_bankname = #{bkBankname,jdbcType=VARCHAR},
+      bk_date = #{bkDate,jdbcType=TIMESTAMP},
+      bk_type = #{bkType,jdbcType=VARCHAR},
+      bk_beginamount = #{bkBeginamount,jdbcType=DOUBLE},
+      bk_thisamount = #{bkThisamount,jdbcType=DOUBLE},
+      bk_status = #{bkStatus,jdbcType=VARCHAR},
+      bk_statuscode = #{bkStatuscode,jdbcType=VARCHAR},
+      bk_recorderid = #{bkRecorderid,jdbcType=INTEGER},
+      bk_recorder = #{bkRecorder,jdbcType=VARCHAR},
+      bk_recorddate = #{bkRecorddate,jdbcType=TIMESTAMP},
+      bk_ym = #{bkYm,jdbcType=INTEGER},
+      companyid = #{companyid,jdbcType=INTEGER},
+      updaterid = #{updaterid,jdbcType=INTEGER},
+      updatetime = #{updatetime,jdbcType=TIMESTAMP},
+      bk_text1 = #{bkText1,jdbcType=VARCHAR},
+      bk_text2 = #{bkText2,jdbcType=VARCHAR},
+      bk_text3 = #{bkText3,jdbcType=VARCHAR},
+      bk_text4 = #{bkText4,jdbcType=VARCHAR},
+      bk_text5 = #{bkText5,jdbcType=VARCHAR}
+    where bk_id = #{bkId,jdbcType=INTEGER}
+  </update>
+
+  <select id="selectAll" resultMap="BaseResultMap">
+    SELECT * FROM bankinformation
+  </select>
+</mapper>

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

@@ -45,7 +45,7 @@
     from customer
     where cu_id = #{cu_id,jdbcType=INTEGER}
   </select>
-  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
     delete from customer
     where cu_id = #{cu_id,jdbcType=INTEGER}
   </delete>

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

@@ -207,7 +207,7 @@
     ,
     <include refid="Blob_Column_List" />
     from customeraddress
-    where ca_cuid = #{fk_i,jdbcType=INTEGER} order by ca_detno
+    where ca_cuid = #{fk_i,jdbcType=INTEGER}
   </select>
 
   <insert id="batchInsert" parameterType="java.util.List" >
@@ -355,5 +355,10 @@
     </foreach>
   </update>
 
+  <delete id="deleteByFK" parameterType="java.lang.Long">
+    delete from customeraddress
+    where ca_cuid = #{id,jdbcType=INTEGER}
+  </delete>
+
 
 </mapper>

+ 9 - 1
applications/document/document-server/src/main/resources/mapper/CustomercontactMapper.xml

@@ -255,7 +255,7 @@
         <if test="item.updaterId != null">
           #{item.updaterId,jdbcType=INTEGER},
         </if>
-        <if test="item.updatetime != null">
+        <if test="item.updateTime != null">
           #{item.updateTime,jdbcType=TIMESTAMP},
         </if>
         <if test="item.cc_default != null">
@@ -319,4 +319,12 @@
       where cc_id = #{item.id,jdbcType=INTEGER}
     </foreach>
   </update>
+
+  <delete id="deleteByFK" parameterType="java.lang.Long">
+    delete from customercontact
+    where cc_cuid = #{id,jdbcType=INTEGER}
+  </delete>
+
+
+
 </mapper>

+ 1 - 1
applications/document/document-server/src/test/java/com/usoftchina/saas/document/mapper/CustomeraddressMapperTest.java

@@ -58,7 +58,7 @@ public class CustomeraddressMapperTest {
         List<Customeraddress> list = new ArrayList<>();
         Customeraddress customeraddress = new Customeraddress();
         customeraddress.setId(new Long(2));
-        customeraddress.setCa_person("人2");
+        customeraddress.setCa_person("人3");
         list.add(customeraddress);
         customeraddressMapper.batchUpdate(list);
     }

+ 1 - 5
applications/document/document-server/src/test/java/com/usoftchina/saas/document/mapper/CustomercontactMapperTest.java

@@ -52,11 +52,7 @@ public class CustomercontactMapperTest {
         customercontact.setCc_detno(1);
         customercontact.setCc_name("zdw");
         customercontact.setCc_tel(1881);
-        customercontact.setCc_qq("qq");
-        customercontact.setCc_email("@qq");
-        customercontact.setCompanyId(1);
-        customercontact.setUpdaterId(1);
-        customercontact.setUpdateTime(new Date());
+
         insertDetail1.add(customercontact);
         customercontactMapper.batchInsert(insertDetail1);
     }

+ 1 - 3
applications/money/money-server/pom.xml

@@ -78,9 +78,7 @@
         </dependency>
         <dependency>
             <groupId>com.usoftchina.saas</groupId>
-            <artifactId>commons-server</artifactId>
-            <version>1.0.0-SNAPSHOT</version>
-            <scope>compile</scope>
+            <artifactId>commons-api</artifactId>
         </dependency>
     </dependencies>
 

+ 5 - 5
applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/VerificationServiceImpl.java

@@ -3,13 +3,13 @@ package com.usoftchina.saas.money.service.impl;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.usoftchina.saas.base.service.CommonBaseServiceImpl;
+import com.usoftchina.saas.commons.api.MaxnumberService;
+import com.usoftchina.saas.commons.api.MessageLogService;
 import com.usoftchina.saas.commons.dto.DocBaseDTO;
 import com.usoftchina.saas.commons.dto.DocSavedDTO;
 import com.usoftchina.saas.commons.dto.ListReqDTO;
 import com.usoftchina.saas.commons.exception.BizExceptionCode;
 import com.usoftchina.saas.commons.po.Operation;
-import com.usoftchina.saas.commons.service.MaxnumberService;
-import com.usoftchina.saas.commons.service.MessageLogService;
 import com.usoftchina.saas.context.BaseContextHolder;
 import com.usoftchina.saas.exception.BizException;
 import com.usoftchina.saas.money.dto.*;
@@ -42,7 +42,7 @@ public class VerificationServiceImpl extends CommonBaseServiceImpl<VerificationM
     @Autowired
     private VerificationListMapper verificationListMapper;
 //    @Autowired
-//    private MessageLogService messageLogService;
+ //   private MessageLogService messageLogService;
 
 
     @Override
@@ -223,8 +223,8 @@ public class VerificationServiceImpl extends CommonBaseServiceImpl<VerificationM
                 id = saveDTO.getId();
             }
             Verification verification = new Verification();
-//          verification.setVc_status(Operation.AUDIT.getTitle());
-//          verification.setVc_statuscode(Status.AUDITED.name());
+           // verification.setVc_status(Operation.AUDIT.getTitle());
+           // verification.setVc_statuscode(Status.AUDITED.name());
             verificationMapper.updateByPrimaryKeySelective(verification);
         }
         savedDTO.setId(id);

+ 7 - 6
applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/controller/PurchaseController.java

@@ -1,8 +1,10 @@
 package com.usoftchina.saas.purchase.controller;
 
 import com.github.pagehelper.PageInfo;
+import com.netflix.discovery.converters.Auto;
 import com.usoftchina.saas.base.Result;
 
+import com.usoftchina.saas.commons.api.MessageLogService;
 import com.usoftchina.saas.commons.dto.BatchDealBaseDTO;
 import com.usoftchina.saas.commons.dto.DocBaseDTO;
 import com.usoftchina.saas.commons.dto.ListReqDTO;
@@ -13,6 +15,7 @@ import com.usoftchina.saas.purchase.service.PurchaseService;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.context.request.async.DeferredResult;
 
 
 /**
@@ -69,7 +72,7 @@ public class PurchaseController {
      * @param id
      * @return
      */
-    @GetMapping("/delete/{id}")
+    @PostMapping("/delete/{id}")
     public Result delete(@PathVariable("id") Long id) {
         purchaseService.delete(id);
         return Result.success();
@@ -81,7 +84,7 @@ public class PurchaseController {
      * @param id
      * @return
      */
-    @GetMapping("/deleteDetail/{id}")
+    @PostMapping("/deleteDetail/{id}")
     public Result deleteDetail(@PathVariable("id") Long id) {
         purchaseService.deleteDetail(id);
         return Result.success();
@@ -105,7 +108,7 @@ public class PurchaseController {
      * @param id
      * @return
      */
-    @GetMapping("/unAudit/{id}")
+    @PostMapping("/unAudit/{id}")
     public Result unAudit(@PathVariable("id") Long id) {
         purchaseService.unAudit(id);
         return Result.success();
@@ -159,12 +162,10 @@ public class PurchaseController {
         return Result.success();
     }
 
-    @GetMapping("/turnProdin/{id}")
+    @PostMapping("/turnProdin/{id}")
     public Result turnProdin(@PathVariable("id") Long id){
         purchaseService.turnProdin(id);
         return Result.success();
     }
 
-
-
 }

+ 4 - 4
applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/controller/SaleController.java

@@ -67,7 +67,7 @@ public class SaleController {
      * @param id
      * @return
      */
-    @GetMapping("/delete/{id}")
+    @PostMapping("/delete/{id}")
     public Result delete(@PathVariable("id") Long id) {
         saleService.delete(id);
         return Result.success();
@@ -79,7 +79,7 @@ public class SaleController {
      * @param id
      * @return
      */
-    @GetMapping("/deleteDetail/{id}")
+    @PostMapping("/deleteDetail/{id}")
     public Result deleteDetail(@PathVariable("id") Long id) {
         saleService.deleteDetail(id);
         return Result.success();
@@ -103,7 +103,7 @@ public class SaleController {
      * @param id
      * @return
      */
-    @GetMapping("/unAudit/{id}")
+    @PostMapping("/unAudit/{id}")
     public Result unAudit(@PathVariable("id") Long id) {
         saleService.unAudit(id);
         return Result.success();
@@ -157,7 +157,7 @@ public class SaleController {
         return Result.success();
     }
 
-    @GetMapping("/turnProdOut/{id}")
+    @PostMapping("/turnProdOut/{id}")
     public Result turnOut(@PathVariable("id") Long id) {
         saleService.turnOut(id);
         return Result.success();

+ 58 - 13
frontend/saas-web/Readme.md

@@ -1,11 +1,11 @@
 # 精简SaaS前端界面配置说明
 ## 导航栏配置
 
-- 配置文件:
+#### 配置文件
 ```
 resources/json/navigation.json
 ```
-- 格式样例:
+#### 格式样例:
 ```json
 [{
     "text": "采购",
@@ -27,7 +27,7 @@ resources/json/navigation.json
     }]
 }]
 ```
-- 字段说明
+#### 字段说明
 ```
 text: 一级菜单项名称
 iconCls: 一级菜单项图标
@@ -42,23 +42,25 @@ items[i].items[i].addType: 可选设置,添加“新增”按钮,点击进
 ```
 
 ## 主从表配置
-- 基础主从表组件
+#### 基础主从表组件
 ```
 view: view.core.form.FormPanel
 controller: view.core.form.FormPanelController
 viewModel: view.core.form.FormPanelModel
 ```
-自定义的主从表view、controller、viewModel需要继承自以上基础组件。
+- 自定义的主从表view、controller、viewModel需要继承自以上基础组件。
 
-- 配置字段说明
+
+#### 配置字段说明
 
 | 字段名 | 说明 | 必填 | 样例 |
 | --- | --- | --- | --- |
 | extend | 继承,默认继承基础主从表 | √ | "saas.view.core.form.FormPanel" |
-| xtype | 格式为'-'连接的该文件全小写路径 | √ | "purchase-purchase-formpanel" |
+| xtype | 文件路径,使用'-'连接,全小写 | √ | "purchase-purchase-formpanel" |
 | controller | 控制层,可定义自定义的方法等。命名与xtype一致 | x | "purchase-purchase-formpanel" |
 | viewModel | Model层,可定义数据绑定关系等。命名与xtype一致 | x | "purchase-purchase-formpanel" |
 | viewName | 用于获取界面自定义配置 | x | "purchase-purchase-formpanel" |
+| caller | 用于获取单据编号 | √ | "Purchase" |
 | addTitle | 新增时打开的页面标题 | √ | "采购单" |
 | idField | id字段 | √ | "id" |
 | codeField | 编号字段 | √ | "pu_code" |
@@ -70,11 +72,11 @@ viewModel: view.core.form.FormPanelModel
 | deleteUrl | 删除接口 | √ | basePath + "purchase/purchase/delete" |
 | deleteDetailUrl | 删除明细接口 | √ | basePath + "purchase/purchase/deleteItem" |
 | toolBtns | 自定义按钮 | x | [ Button ] |
-| defaultItems | 界面字段 | √ | [ Fields ]|
+| defaultItems | 界面字段 | √ | [ Field ]|
 
-主表字段配置说明
+##### 主表字段配置说明
 
-_包括部分原有配置和主从表专属配置_
+包括部分原有配置和主从表专属配置,不包括detailGridField
 
 | 字段 | 说明 | 必填 | 样例 |
 | --- | --- | --- | --- |
@@ -82,7 +84,7 @@ _包括部分原有配置和主从表专属配置_
 | ignore | 是否忽略,为真时getFormData方法不会得到该字段值 | x | true |
 | defaultValue | 默认值 | x | "1001" |
 
-从表配置说明
+##### 从表配置说明
 
 从表被定义为一个formfield(_xtype=detailGridField_),可以与其他字段一同放到主从表的items中。
 
@@ -92,11 +94,54 @@ _包括部分原有配置和主从表专属配置_
 | detnoColumn | 序号列 | √ | "pud_detno" |
 | columns[i].ignore | 是否忽略,为真时在调用保存方法时不会取到该列值 | x | true |
 
+- 需要根据columns在models文件夹下添加storeModel对应的Model
+
+---
 
 ## 查询列表配置
-- 基础组件
+#### 基础查询列表组件
 ```
 view: view.core.query.QueryPanel
 controller: view.core.query.QuertPanelController
 viewModel: view.core.query.QueryPanelModel
-```
+```
+#### view配置字段说明
+
+| 字段 | 说明 | 必填 | 样例 |
+| --- | --- | --- | --- |
+| extend | 一般需要继承基础查询列表组件 | √ | "saas.view.core.query.QueryPanel" |
+| xtype | 文件路径,使用'-'连接,全小写 | √ | "purchase-purchase-querypanel" |
+| controller | 控制层,可定义自定义的方法等。命名与xtype一致 | x | "purchase-purchase-querypanel" |
+| viewModel | Model层,可定义数据绑定关系等。命名与xtype一致 | x | "purchase-purchase-querypanel" |
+| viewName | 用于获取界面自定义配置 | x | "purchase-purchase-querypanel" |
+| queryFormItems | 查询字段 | √ | 参看[查询字段配置说明](#cxzd) |
+| moreQueryFormItems | 更多查询字段 | x | 参看[查询字段配置说明](cxzd) |
+| queryGridConfig | 查询列表配置 | √ | 参看[列表配置说明](#) |
+
+查询字段配置说明
+
+
+| 字段 | 说明 | 必填 | 样例 |
+| --- | --- | --- | --- |
+| xtype | 字段类型 | √ | "textfield" |
+| name | 字段绑定名 | √ | "pu_vendname" |
+| fieldLabel | 字段名| x | "供应商名称" |
+| fieldType | 字段类型,默认根据xtype自动创建,可以指定["string", "date", "number", "enum"] | x | "string" |
+| operation | 字段条件连接符,默认根据xtype自动创建 | x | "between" |
+| getCondition | 自定义条件规则,定义后将使用该方法生成条件,传入参数为字段value,返回sql条件 | x | function(value) { return "pu_vendname like'" + value + "'" } |
+| showDetail | 当该值为true时,该字段生成条件后查询结果将以关联列表展示 | x | true |
+| isShowDetail | 自定义需要按照关联列表显示的条件,传入参数为字段value,返回Boolean,默认返回!!value | x | function(value) {return !!value;} |
+
+列表配置说明
+
+| 字段 | 说明 | 必填 | 样例 |
+| --- | --- | --- | --- |
+| idField | id字段 | √ | "pu_id" |
+| codeField | code字段 | √ | "pu_code" |
+| addTitle | 单据名称,新增tab标题 | √ | "采购单" |
+| addXtype | 主从表单据xtype | √ | "purchase-purchase-formpanel" |
+| defaultCondition | 默认条件 | x | "pu_class='采购单'" |
+| baseVastUrl | 查询列表接口 | √ | basePath + "purchase/purchase/" |
+| baseColumn | 基础列配置 | √ | [ Column ] |
+| relativeColumn | 关联列设置 | x | [ Column ] |
+

+ 11 - 0
frontend/saas-web/app/model/money/RecBalance1.js

@@ -0,0 +1,11 @@
+Ext.define('saas.model.money.RecBalance1', {
+    extend: 'saas.model.Base',
+    fields: [
+        { name: 'rd_detno', type: 'number' },
+        { name: 'rd_bankname', type: 'string' },
+        { name: 'rd_amount', type: 'number' },
+        { name: 'rd_paymethod', type: 'string' },
+        { name: 'rd_paycode', type: 'string' },
+        { name: 'rd_remark', type: 'string' }
+    ]
+});

+ 14 - 0
frontend/saas-web/app/model/money/RecBalance2.js

@@ -0,0 +1,14 @@
+Ext.define('saas.model.money.RecBalance2', {
+    extend: 'saas.model.Base',
+    fields: [
+        { name: 'rbd_detno', type: 'number' },
+        { name: 'rbd_slcode', type: 'string' },
+        { name: 'rbd_slkind', type: 'string' },
+        { name: 'rbd_sldate', type: 'date' },
+        { name: 'rbd_amount', type: 'number' },
+        { name: 'rbd_remark', type: 'number' },
+        { name: 'pbd_nowbalance', type: 'number' },
+        { name: 'pbd_nowbalance', type: 'number' },
+        { name: 'pbd_nowbalance', type: 'number' }
+    ]
+});

+ 68 - 51
frontend/saas-web/app/view/core/form/FormPanel.js

@@ -37,7 +37,7 @@ Ext.define('saas.view.core.form.FormPanel', {
     remoteConfig: true, // 是否需要从远端读取form配置
     toolBtns: [], // 自定义按钮
 
-    initComponent: function() {
+    initComponent: function () {
         var me = this;
         me.initViewModel();
         me.FormUtil.setItems(me);
@@ -53,21 +53,38 @@ Ext.define('saas.view.core.form.FormPanel', {
                     xtype: 'tbtext',
                     bind: {
                         html: '<span class="x-tb x-no">NO. </span>' +
-                        '<span class="x-tb x-code">{base.codeEditable ? "" : form.' + me._codeField + '}</span>'
+                            '<span class="x-tb x-code">{base.codeEditable ? "" : form.' + me._codeField + '}</span>'
                     }
                 }, {
                     xtype: 'textfield',
                     minHeight: 24,
                     maxHeight: 24,
+                    width: 150,
                     cls: 'x-codeeditor',
+                    hidden: true,
                     bind: {
                         value: '{form.' + me._codeField + '}',
                         hidden: '{!base.codeEditable}'
                     },
                     listeners: {
                         blur: 'codeEditorBlur',
-                        show: function(field, eOpts) {
+                        show: function (field, eOpts) {
+                            // field.animate({
+                            //     duration: 500,
+                            //     to: {
+                            //         width: 200
+                            //     }
+                            // });
+
                             field.focus();
+                        },
+                        hide: function(field) {
+                            // field.animate({
+                            //     duration: 500,
+                            //     to: {
+                            //         width: 150
+                            //     }
+                            // });
                         }
                     }
                 }, {
@@ -86,11 +103,11 @@ Ext.define('saas.view.core.form.FormPanel', {
                         hidden: '{!base.editable}'
                     },
                     handler: 'codeEditorClick'
-                },'->'].concat(me.toolBtns.map(function(btn){
-                    btn.cls = btn.cls ? btn.cls + ' x-formpanel-btn-blue':'x-formpanel-btn-blue';
+                }, '->'].concat(me.toolBtns.map(function (btn) {
+                    btn.cls = btn.cls ? btn.cls + ' x-formpanel-btn-blue' : 'x-formpanel-btn-blue';
                     return btn;
                 }).concat([{
-                    cls:'x-formpanel-btn-orange',
+                    cls: 'x-formpanel-btn-orange',
                     xtype: 'button',
                     text: '新增',
                     handler: 'add'
@@ -112,7 +129,7 @@ Ext.define('saas.view.core.form.FormPanel', {
                         text: '{auditBtnText}'
                     },
                     handler: "auditBtnClick",
-                    
+
                 }]))
             }]
         });
@@ -122,18 +139,18 @@ Ext.define('saas.view.core.form.FormPanel', {
     /**
      * 一些初始化viewModel的方法
      */
-    initViewModel: function() {
+    initViewModel: function () {
         var me = this,
-        codeField = me._codeField,
-        statusField = me._statusField,
-        statusCodeField = me._statusCodeField,
-        viewModel = me.getViewModel();
-        
-        viewModel.set('form.' + codeField, '--------------');
+            codeField = me._codeField,
+            statusField = me._statusField,
+            statusCodeField = me._statusCodeField,
+            viewModel = me.getViewModel();
+
+        viewModel.set('form.' + codeField, '');
         viewModel.set('form.createTime', new Date());
         viewModel.set('form.updateTime', new Date());
 
-        if(statusCodeField) {
+        if (statusCodeField) {
             var o = {};
             o['auditBtnText'] = {
                 bind: '{form.' + statusCodeField + '}',
@@ -144,12 +161,12 @@ Ext.define('saas.view.core.form.FormPanel', {
             };
             viewModel.setFormulas(o);
             viewModel.set('form.' + statusCodeField, "UNAUDITED");
-        }else {
+        } else {
             viewModel.set('auditBtnText', "审核");
         }
     },
 
-    addItems: function(items) {
+    addItems: function (items) {
         var me = this;
         me.setBindFields(items);
         return this.add(items);
@@ -158,19 +175,19 @@ Ext.define('saas.view.core.form.FormPanel', {
     /**
      * 获取form数据
      */
-    getFormData: function() {
+    getFormData: function () {
         var me = this,
-        viewModel = me.getViewModel(),
-        allData = viewModel.getData(),
-        formData = allData['form'],
-        detailCount = me.detailCount,
-        data = {
-            main: formData,
-        };
-
-        for(var i = 0; i < detailCount; i++) {
+            viewModel = me.getViewModel(),
+            allData = viewModel.getData(),
+            formData = allData['form'],
+            detailCount = me.detailCount,
+            data = {
+                main: formData,
+            };
+
+        for (var i = 0; i < detailCount; i++) {
             var detail = allData['detail' + i],
-            store = detail.detailStore;
+                store = detail.detailStore;
 
             data['detail' + i] = store.getData().items;
         }
@@ -178,21 +195,21 @@ Ext.define('saas.view.core.form.FormPanel', {
         return data;
     },
 
-    setFormData: function(formData) {
+    setFormData: function (formData) {
         var me = this,
-        main = formData.main,
-        detailCount = me.detailCount,
-        viewModel = me.getViewModel(),
-        viewData = viewModel.getData();
+            main = formData.main,
+            detailCount = me.detailCount,
+            viewModel = me.getViewModel(),
+            viewData = viewModel.getData();
 
         viewModel.set('form', main);
 
-        for(var i = 0; i < detailCount; i++) {
+        for (var i = 0; i < detailCount; i++) {
             var detailData = formData['detail' + i] || [],
-            detail = viewData['detail' + i],
-            store = detail.detailStore;
+                detail = viewData['detail' + i],
+                store = detail.detailStore;
 
-            if(detailData){
+            if (detailData) {
                 store.loadData(detailData);
             }
         }
@@ -201,36 +218,36 @@ Ext.define('saas.view.core.form.FormPanel', {
     /**
      * 设置需要绑定的字段
      */
-    setBindFields: function(items) {
+    setBindFields: function (items) {
         var me = this,
-        viewModel = me.getViewModel();
+            viewModel = me.getViewModel();
 
-        Ext.Array.each(items, function(item) {
+        Ext.Array.each(items, function (item) {
             var xtype = item.xtype,
-            bind = item.bind,
-            name = item.name,
-            ignore = item.ignore,
-            defaultValue = item.defaultValue;
+                bind = item.bind,
+                name = item.name,
+                ignore = item.ignore,
+                defaultValue = item.defaultValue;
 
-            if(xtype == 'detailGridField') {
+            if (xtype == 'detailGridField') {
                 return;
             }
 
             // 设置model绑定
-            if(!ignore) {
-                if(bind) {
-                    if(!Ext.isString(bind)) {
+            if (!ignore) {
+                if (bind) {
+                    if (!Ext.isString(bind)) {
                         Ext.apply(bind, {
                             value: '{form.' + name + '}'
                         });
-                    }else {
+                    } else {
                         item.bind = '{form.' + name + '}';
                     }
-                }else {
+                } else {
                     item.bind = '{form.' + name + '}';
                 }
                 // 设置默认值
-                if(defaultValue) {
+                if (defaultValue) {
                     viewModel.set('form.' + name, defaultValue);
                 }
             }

+ 4 - 3
frontend/saas-web/app/view/core/form/FormPanelController.js

@@ -205,12 +205,13 @@ Ext.define('saas.view.core.form.FormPanelController', {
         var me = this,
         viewModel = me.getViewModel();
 
-        viewModel.set('base.codeEditable', false);
+        // viewModel.set('base.codeEditable', false);
     },
     codeEditorClick: function() {
         var me = this,
-        viewModel = me.getViewModel();
+        viewModel = me.getViewModel(),
+        codeEditable = viewModel.get('base.codeEditable');
 
-        viewModel.set('base.codeEditable', true);
+        viewModel.set('base.codeEditable', !codeEditable);
     }
 });

+ 55 - 0
frontend/saas-web/app/view/core/query/MoreQueryWin.js

@@ -0,0 +1,55 @@
+/**
+ * Created by zhouy on 2018/10/25.
+ */
+Ext.define('saas.view.core.query.MoreQueryWin', {
+    extend: 'Ext.window.Window',
+    xtype: 'core-query-morequeryform',
+    modal: true,
+    height: '50%',
+    width: '50%',
+    title: '更多查询',
+    scrollable: true,
+    bodyPadding: 10,
+    constrain: true,
+    closable: true,
+    layout: 'fit',
+    initComponent:function(){
+        var me=this;
+        Ext.apply(me,{
+            items:me.setFormItems()
+        });
+        me.callParent();
+    },
+    setFormItems:function() {
+        var me = this;
+        var form = {
+            xtype: 'form',
+            layout: 'column',
+            autoScroll: true,
+            buttonAlign : 'center',
+            bodyPadding: 5,
+            //frame:true,
+            defaults: {
+                xtype:'textfield',
+                margin: '0 5 5 0',
+                labelAlign: 'right',
+                labelWidth: 90,
+                columnWidth: 0.5,
+                blankText: '该字段不能为空'
+            },
+            items:me.queryItems,
+            buttons: [{
+               text:'重置',
+               handler:'onReSetClick'
+            },'->',{
+                text: '查询',
+                handler:'onMoreQuery'
+            }, {
+                text: '关闭',
+                handler:'onCloseClick'
+            }]
+        };
+        return form ;
+    },
+
+});

+ 0 - 1
frontend/saas-web/app/view/core/query/QueryPanel.js

@@ -242,5 +242,4 @@ Ext.define('saas.view.core.query.QueryPanel', {
 
         return detailModel ? 'DETAIL' : 'MAIN';
     }
-
 });

+ 12 - 24
frontend/saas-web/app/view/core/query/QueryPanelController.js

@@ -1,36 +1,24 @@
 Ext.define('saas.view.core.query.QueryPanelController', {
     extend: 'Ext.app.ViewController',
     alias: 'controller.core-query-querypanel',
-
     moreQuery: function (btn) {
-        var me = this;
-        var panel = me.getView();
-        var win = Ext.getCmp('queryMoreWin');
-        if (!win) {
-            win = Ext.create('Ext.window.Window', {
-                modal: true,
-                height: '50%',
-                width: '50%',
-                title: '更多查询',
-                scrollable: true,
-                bodyPadding: 10,
-                constrain: true,
-                closable: true,
-                layout: 'fit',
-                renderTo: Ext.getCmp('main-tab-panel').getActiveTab().getEl(),
-                items: [{
-                    xtype: 'core-query-morequeryformpanel',
-                    items: panel.moreQueryFormItems
-                }]
-            });
-        };
-        win.show();
+        var me = this,view= me.getView();
+        this.queryWin = view.add({
+            xtype:'core-query-morequeryform',
+            queryItems: view.moreQueryFormItems
+        });
+        this.queryWin.show();
     },
     onQuery: function (btn) {
         var me = this,
         queryPanel = me.getView(),
         queryGrid = queryPanel.down('core-query-querygridpanel');
-
         queryGrid.store.loadPage(1);
+    },
+    onReSetClick:function(btn){
+        btn.ownerCt.ownerCt.reset();
+    },
+    onCloseClick:function(btn){
+        this.queryWin = Ext.destroy(this.queryWin);
     }
 });

+ 3 - 4
frontend/saas-web/app/view/money/payBalance/FormPanel.js

@@ -11,11 +11,10 @@ Ext.define('saas.view.money.payBalance.FormPanel', {
     //字段属性
     _title: '付款单',
     _idField: 'id',
-    _codeField: 'pu_code',
-    _statusField: 'pu_status',
-    _statusCodeField: 'pu_statuscode',
+    _codeField: 'pd_code',
+    _statusField: 'pd_status',
+    _statusCodeField: 'pd_statuscode',
     
-    _relationColumn: 'pd_puid',
     _readUrl: basePath + 'money/paybalance/read/',
     _saveUrl: basePath + 'money/paybalance/save',
     _auditUrl: basePath + 'money/paybalance/audit',

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

@@ -1,4 +1,4 @@
-Ext.define('saas.view.money.paybalance.FormPanelController', {
+Ext.define('saas.view.money.payBalance.FormPanelController', {
     extend: 'saas.view.core.form.FormPanelController',
     alias: 'controller.money-paybalance-formpanel',
 

+ 1 - 1
frontend/saas-web/app/view/money/payBalance/FormPanelModel.js

@@ -1,4 +1,4 @@
-Ext.define('saas.view.money.paybalance.FormPanelModel', {
+Ext.define('saas.view.money.payBalance.FormPanelModel', {
     extend: 'saas.view.core.form.FormPanelModel',
     alias: 'viewmodel.money-paybalance-formpanel',
 

+ 177 - 0
frontend/saas-web/app/view/money/recBalance/FormPanel.js

@@ -0,0 +1,177 @@
+Ext.define('saas.view.money.recBalance.FormPanel', {
+    extend: 'saas.view.core.form.FormPanel',
+    xtype: 'money-recbalance-formpanel',
+
+    controller: 'money-recbalance-formpanel',
+    viewModel: 'money-recbalance-formpanel',
+
+    viewName: 'money-recbalance-formpanel',
+
+    caller: 'RecBalance',
+
+    //字段属性
+    _title: '收款单',
+    _idField: 'id',
+    _codeField: 'pd_code',
+    _statusField: 'pd_status',
+    _statusCodeField: 'pd_statuscode',
+    
+    _readUrl: 'http://192.168.253.129:8920/api/money/recbalance/read',
+    _saveUrl: 'http://192.168.253.129:8920/money/recbalance/save',
+    _auditUrl: 'http://192.168.0.181:8560/api/purchase/purchase/audit',
+    _deleteUrl: 'http://192.168.0.181:8560/api/purchase/purchase/delete/',
+    _deleteDetailUrl: 'http://192.168.0.181:8560/api/purchase/purchase/deleteItem/',
+    _turnInUrl: 'http://192.168.253.228:8800/purchase/turnProdin/',
+    initId: 0,
+
+    defaultItems: [{
+        xtype: 'hidden',
+        name: 'id',
+        fieldLabel: 'id'
+    }, {
+        xtype: 'hidden',
+        name: 'custid',
+        fieldLabel: '客户ID'
+    }, {
+        xtype: 'hidden',
+        name: 'custcode',
+        fieldLabel: '客户编号'
+    }, {
+        xtype: "dbfindtrigger",
+        name: "rb_custname",
+        fieldLabel: "客户名称"
+    }, {
+        xtype: "numberfield",
+        name: "rb_rbdamount",
+        fieldLabel: "总欠款"
+    }, {
+        xtype: "datefield",
+        name: "rb_date",
+        fieldLabel: "日期"
+    }, {
+        xtype: "dbfindtrigger",
+        name: "rb_manname",
+        fieldLabel: "收款人"
+    }, {
+        xtype: 'textareafield',
+        name: 'rb_remark',
+        fieldLabel: '备注',
+        columnWidth: 1
+    }, {
+        xtype: "numberfield",
+        name: "rb_discounts",
+        fieldLabel: "整单折扣"
+    }, {
+        xtype: 'numberfield',
+        name: 'rb_preamount',
+        fieldLabel : '本次预收款'
+    }, {
+        xtype: "detailGridField",
+        storeModel: 'saas.model.money.RecBalance1',
+        _detnoColumn: 'rd_detno',
+        columns: [{
+            text: "序号",
+            dataIndex: "rd_detno",
+            width: 100,
+            xtype: "numbercolumn",
+            align: 'center',
+            format: '0',
+            summaryType: 'count',
+            summaryRenderer: function (value, summaryData, dataIndex) {
+                return Ext.String.format('合计: {0}条', value);
+            },
+        }, {
+            text: '资金账户',
+            dataIndex: 'rd_bankname',
+            width : 200.0, 
+            editor : {
+                displayField : "display", 
+                editable : true, 
+                format : "", 
+                hideTrigger : false, 
+                maxLength : 100.0, 
+                minValue : null, 
+                positiveNum : false, 
+                queryMode : "local", 
+                store : null, 
+                valueField : "value", 
+                xtype : "dbfindtrigger"
+            }
+        }, {
+            text: "收款金额",
+            dataIndex: "rd_amount",
+        }, {
+            text: "结算方式",
+            dataIndex: "rd_paymethod"
+        }, {
+            text: "结算号",
+            dataIndex: "rd_paycode"
+        }, {
+            text: "备注",
+            dataIndex: "rd_remark"
+        }]
+    }, {
+        xtype: "detailGridField",
+        storeModel: 'saas.model.money.RecBalance1',
+        _detnoColumn: 'rbd_detno',
+        columns: [{
+            text: "序号",
+            dataIndex: "rbd_detno",
+            width: 100,
+            xtype: "numbercolumn",
+            align: 'center',
+            format: '0',
+            summaryType: 'count',
+            summaryRenderer: function (value, summaryData, dataIndex) {
+                return Ext.String.format('合计: {0}条', value);
+            },
+        }, {
+            text: '来源单号',
+            dataIndex: 'rbd_slcode'
+        }, {
+            text: "业务类型",
+            dataIndex: "rbd_slkind",
+        }, {
+            text: "单据日期",
+            dataIndex: "rbd_sldate"
+        }, {
+            text: "单据金额",
+            dataIndex: "rbd_amount"
+        }, {
+            text: "已核销金额",
+            dataIndex: "rbd_nowbalance"
+        }, {
+            text: "未核销金额",
+            dataIndex: "pbd_nowbalance"
+        }, {
+            text: "本次核销金额",
+            dataIndex: "pbd_nowbalance"
+        }]
+    }, {
+        xtype: 'textfield',
+        name: 'companyid',
+        fieldLabel: '公司id'
+    }, {
+        format: "Y-m-d h:i:s",
+        xtype: "datefield",
+        name: "pb_recorddate",
+        fieldLabel: "创建时间"
+    }, {
+        format: "Y-m-d h:i:s",
+        xtype: "datefield",
+        name: "updatedate",
+        fieldLabel: "更新时间"
+    }, {
+        xtype: "textfield",
+        readOnly: true,
+        editable: false,
+        name: "pd_status",
+        fieldLabel: "单据状态"
+    }, {
+        xtype: "hidden",
+        readOnly: true,
+        editable: false,
+        name: "pd_statuscode",
+        fieldLabel: "单据状态码"
+    }]
+});

+ 158 - 0
frontend/saas-web/app/view/money/recBalance/FormPanelController.js

@@ -0,0 +1,158 @@
+Ext.define('saas.view.money.recBalance.FormPanelController', {
+    extend: 'saas.view.core.form.FormPanelController',
+    alias: 'controller.money-recbalance-formpanel',
+
+    init: function (form) {
+        var me = this;
+        this.control({
+            /**放大镜新增demo*/
+            "field[name=combo]":{
+                beforerender:function(f){
+                    f.addHandler=me.addCombo;
+                }
+            },
+            //放大镜赋值关系 以及 tpl模板
+            'dbfindtrigger[name=pu_vendcode]':{
+                beforerender:function(f){
+                    Ext.apply(f,{
+                        dataUrl:'http://192.168.0.181:8570/api/document/vendor/getVendorsByCondition',
+                        dbfinds:[{
+                            from:'ve_code',to:'pu_vendcode'
+                        },{
+                            from:'ve_name',to:'pu_vendname'
+                        }],
+                        dbtpls:[{
+                            field:'ve_code',width:100
+                        },{
+                            field:'ve_name',width:100
+                        }],
+                        dbColumns:[{
+                            conditionCode:'ve_id',
+                            "text": "供应商ID",
+                            "flex": 0,
+                            "dataIndex": "ve_id",
+                            "width": 0,
+                            "xtype": "",
+                            "items": null
+                        },{
+                            conditionCode:'ve_code',
+                            "text": "供应商编号",
+                            "flex": 1,
+                            "dataIndex": "ve_code",
+                            "width": 100,
+                            "xtype": "",
+                            "items": null
+                        }, {
+                            conditionCode:'ve_name',
+                            "text": "供应商名称",
+                            "flex": 1,
+                            "dataIndex": "ve_name",
+                            "xtype": "",
+                            "items": null
+                        }, {
+                            conditionCode:'ve_type',
+                            "text": "供应商类型",
+                            "flex": 0,
+                            "dataIndex": "ve_type",
+                            "width": 200,
+                            "xtype": "",
+                            "items": null
+                        }]
+                    }) ;   
+
+                }
+            },
+            //放大镜赋值关系 以及 tpl模板
+            'dbfindtrigger[name=pd_prodcode]':{
+                beforerender:function(f){
+                    Ext.apply(f,{
+                        conditionCode:'pr_code',
+                        dataUrl:'http://192.168.0.181:8570/api/document/product/getProductsByCondition',
+                        dbfinds:[{
+                            from:'pr_code',to:'pd_prodcode'
+                        }],
+                        dbtpls:[{
+                            field:'pr_code',width:100
+                        },{
+                            field:'pr_detail',width:100
+                        }],
+                        dbColumns:[{
+                            "text": "物料ID",
+                            "flex": 0,
+                            "dataIndex": "pr_id",
+                            "width": 0,
+                            "xtype": "",
+                            "items": null
+                        },{
+                            "text": "物料编号",
+                            "flex": 1,
+                            "dataIndex": "pr_code",
+                            "width": 100,
+                            "xtype": "",
+                            "items": null
+                        }, {
+                            "text": "物料名称",
+                            "flex": 1,
+                            "dataIndex": "pr_detail",
+                            "xtype": "",
+                            "items": null
+                        }, {
+                            "text": "物料规格",
+                            "flex": 0,
+                            "dataIndex": "pr_spec",
+                            "width": 200,
+                            "xtype": "",
+                            "items": null
+                        }]
+                    }) ;   
+
+                }
+            }
+        });
+
+    },
+    addCombo:function(){
+        var combo=this.ownerCmp;
+        Ext.create('Ext.window.Window',{
+            layout:'vbox',
+            bodyPadding: 15,
+            width:500,
+            items:[{
+                fieldLabel:'实际值',
+                xtype:'textfield'
+            },{
+                fieldLabel:'显示值',
+                xtype:'textfield'
+            }],
+            buttons:[{
+                text:'确认',
+                handler:function(b){
+                    combo.setValue('ok');
+                    b.up('window').close();
+                }
+            }],
+            renderTo:this.ownerCmp.ownerCt.getEl()
+        }).show();
+
+    },
+
+    turnIn: function() {
+        var me = this,
+        form = me.getView(),
+        id = form.getForm().findField(form._idField);
+        form.BaseUtil.request({
+            url: form._turnInUrl+id.value,
+            method: 'GET',
+        })
+        .then(function(res) {
+            var localJson = new Ext.decode(res.responseText);
+            if(localJson.success){
+                Ext.Msg.alert('提示','转单成功');
+              
+            }
+        })
+        .catch(function() {
+            Ext.Msg.alert('提示','转单失败');
+        });
+     }
+});

+ 5 - 0
frontend/saas-web/app/view/money/recBalance/FormPanelModel.js

@@ -0,0 +1,5 @@
+Ext.define('saas.view.money.recBalance.FormPanelModel', {
+    extend: 'saas.view.core.form.FormPanelModel',
+    alias: 'viewmodel.money-recbalance-formpanel',
+
+});

+ 196 - 0
frontend/saas-web/app/view/money/recBalance/QueryPanel.js

@@ -0,0 +1,196 @@
+Ext.define('saas.view.money.recBalance.QueryPanel', {
+    extend: 'saas.view.core.query.QueryPanel',
+    xtype: 'money-recbalance-querypanel',
+
+    controller: 'money-recbalance-querypanel',
+    viewModel: 'money-recbalance-querypanel',
+
+    viewName: 'money-recbalance-querypanel',
+    
+    queryFormItems: [{
+        xtype: 'hidden',
+        name: 'pu_id',
+        bind: '{pu_id}',
+        fieldLabel: 'ID',
+        allowBlank: true,
+        getCondition: function(value) {
+            return 'pu_id=' + value;
+        }
+    }, {
+        xtype: 'textfield',
+        name: 'pu_code',
+        bind: '{pu_code}',
+        fieldLabel: '单据编号'
+    }, {
+        xtype: 'condatefield',
+        name: 'pu_date',
+        bind: '{pu_date}',
+        fieldLabel: '采购日期',
+        columnWidth: 0.5,
+        operation: 'between'
+    }, {
+        xtype: 'dbfindtrigger',
+        name: 'pu_vendcode',
+        bind: '{pu_vendcode}',
+        fieldLabel: '供应商编号'
+    }, {
+        xtype: 'textfield',
+        name: 'pu_vendname',
+        bind: '{pu_vendname}',
+        fieldLabel: '供应商名称'
+    }, {
+        xtype: 'dbfindtrigger',
+        name: 'pd_prodcode',
+        bind: '{pd_prodcode}',
+        fieldLabel: '物料编号',
+        showDetail: true
+    }, {
+        xtype: 'textfield',
+        name: 'pr_detail',
+        bind: '{pr_detail}',
+        fieldLabel: '物料名称',
+        showDetail: true
+    }, {
+        xtype: 'combobox',
+        name: 'pu_statuscode',
+       // bind: '{pu_statuscode}',
+        fieldLabel: '审核状态',
+        queryMode: 'local',
+        displayField: 'pu_status',
+        valueField: 'pu_statuscode',
+        editable:false,
+        store: Ext.create('Ext.data.ArrayStore', {
+        fields: ['pu_statuscode', 'pu_status'],
+        data: [
+            ["$ALL", "全部"],
+            ["AUDITED", "已审核"],
+            ["UNAUDITED", "未审核"]
+        ]
+        })
+    }, {
+        xtype: 'multicombo',
+        name: 'pu_acceptstatuscode',
+        bind: '{pu_acceptstatuscode}',
+        fieldLabel: '入库状态',
+        datas: [
+            ["TURNIN", "已入库"],
+            ["UNTURNIN", "未入库"],
+            ["PARTIN", "部分入库"]
+        ]
+    }],
+    moreQueryFormItems: [{
+        xtype: 'textfield',
+        name: 'pu_buyername',
+        bind: '{pu_buyername}',
+        fieldLabel: '采购员'
+    }, {
+        xtype: 'textfield',
+        name: 'pu_total',
+        bind: '{pu_total}',
+        fieldLabel: '金额'
+    }, {
+        xtype: 'condatefield',
+        name: 'pu_delivery',
+        bind: '{pu_delivery}',
+        fieldLabel: '交货日期',
+        columnWidth: 1
+    }],
+    queryGridConfig: {
+        idField: 'pu_id',
+        codeField: 'pu_code',
+        addTitle: '采购单',
+        addXtype: 'purchase-purchase-formpanel',
+        defaultCondition:'',
+        baseVastUrl: 'http://192.168.253.58:8800/purchase/',
+        baseColumn: [{
+            text: '序号',
+            width: 80,
+            xtype: 'rownumberer'
+        }, {
+            text: 'id',
+            dataIndex: 'pu_id',
+            width: 100,
+            xtype: 'numbercolumn'
+        }, {
+            text: '单据编号',
+            dataIndex: 'pu_code',
+            width: 120
+        }, {
+            text: '单据状态',
+            dataIndex: 'pu_status',
+            width: 120
+        }, {
+            text: '下单日期',
+            dataIndex: 'pu_indate',
+            xtype: 'datecolumn',
+            width: 200
+        }, {
+            text: '供应商名称',
+            dataIndex: 'pu_vendname',
+            width: 120
+        }, {
+            text: '含税金额',
+            dataIndex: 'pu_taxtotal',
+            xtype: 'numbercolumn',
+            width: 120
+        }, {
+            text: '金额',
+            dataIndex: 'pu_total',
+            xtype: 'numbercolumn',
+            width: 120,
+            flex: 1
+        }],
+        relativeColumn: [{
+            text: '序号',
+            width: 80,
+            xtype: 'rownumberer'
+        }, {
+            text: 'id',
+            dataIndex: 'pu_id',
+            width: 100,
+            xtype: 'numbercolumn'
+        }, {
+            text: '单据编号',
+            dataIndex: 'pu_code',
+            width: 120
+        }, {
+            text: '单据状态',
+            dataIndex: 'pu_status',
+            width: 120
+        }, {
+            text: '下单日期',
+            dataIndex: 'pu_indate',
+            xtype: 'datecolumn',
+            width: 200
+        }, {
+            text: '供应商名称',
+            dataIndex: 'pu_vendname',
+            width: 120
+        }, {
+            text: '采购序号',
+            dataIndex: 'pd_detno',
+            xtype: 'numbercolumn',
+            width: 120
+        }, {
+            text: '物料编号',
+            dataIndex: 'pd_prodcode',
+            width: 120
+        }, {
+            text: '数量',
+            dataIndex: 'pd_qty',
+            xtype: 'numbercolumn',
+            width: 120
+        }, {
+            text: '单价',
+            dataIndex: 'pd_price',
+            xtype: 'numbercolumn',
+            width: 120
+        }, {
+            text: '已转数',
+            dataIndex: 'pd_ytqy',
+            xtype: 'numbercolumn',
+            width: 120,
+            flex: 1
+        }]
+    }
+});

+ 117 - 0
frontend/saas-web/app/view/money/recBalance/QueryPanelController.js

@@ -0,0 +1,117 @@
+Ext.define('saas.view.money.recBalance.QueryPanelController', {
+    extend: 'saas.view.core.query.QueryPanelController',
+    alias: 'controller.money-recbalance-querypanel',
+    
+    init: function (form) {
+        var me = this;
+        this.control({
+            //放大镜赋值关系 以及 tpl模板
+            'dbfindtrigger[name=pu_vendname]':{
+                beforerender:function(f){
+                    Ext.apply(f,{
+                        dataUrl:'http://192.168.253.41:9480/api/document/vendor/getVendorsByCondition',
+                        dbfinds:[{
+                            from:'ve_code',to:'pu_vendcode'
+                        },{
+                            from:'ve_name',to:'pu_vendname'
+                        }],
+                        dbtpls:[{
+                            field:'ve_code',width:100
+                        },{
+                            field:'ve_name',width:100
+                        }],
+                        dbColumns:[{
+                            conditionCode:'ve_id',
+                            "text": "供应商ID",
+                            "flex": 0,
+                            "dataIndex": "ve_id",
+                            "width": 0,
+                            "xtype": "",
+                            "items": null
+                        },{
+                            conditionCode:'ve_code',
+                            "text": "供应商编号",
+                            "flex": 1,
+                            "dataIndex": "ve_code",
+                            "width": 100,
+                            "xtype": "",
+                            "items": null
+                        }, {
+                            conditionCode:'ve_name',
+                            "text": "供应商名称",
+                            "flex": 1,
+                            "dataIndex": "ve_name",
+                            "xtype": "",
+                            "items": null
+                        }, {
+                            conditionCode:'ve_type',
+                            "text": "供应商类型",
+                            "flex": 0,
+                            "dataIndex": "ve_type",
+                            "width": 200,
+                            "xtype": "",
+                            "items": null
+                        }]
+                    }) ;   
+
+                }
+            },
+            //放大镜赋值关系 以及 tpl模板
+            'dbfindtrigger[name=pd_prodcode]':{
+                beforerender:function(f){
+                    Ext.apply(f,{
+                        conditionCode:'pr_code',
+                        dataUrl:'http://192.168.253.41:9480/api/document/product/getProductsByCondition',
+                        dbfinds:[{
+                            from:'pr_code',to:'pd_prodcode',
+                        }, {
+                            from:'pr_detail',to:'pr_detail'
+                        }],
+                        dbtpls:[{
+                            field:'pr_code',width:100
+                        },{
+                            field:'pr_detail',width:100
+                        }],
+                        dbColumns:[{
+                            "text": "物料ID",
+                            "flex": 0,
+                            "dataIndex": "pr_id",
+                            "width": 0,
+                            "xtype": "",
+                            "items": null
+                        },{
+                            "text": "物料编号",
+                            "flex": 1,
+                            "dataIndex": "pr_code",
+                            "width": 100,
+                            "xtype": "",
+                            "items": null
+                        }, {
+                            "text": "物料名称",
+                            "flex": 1,
+                            "dataIndex": "pr_detail",
+                            "xtype": "",
+                            "items": null
+                        }, {
+                            "text": "物料规格",
+                            "flex": 0,
+                            "dataIndex": "pr_spec",
+                            "width": 200,
+                            "xtype": "",
+                            "items": null
+                        }, {
+                            "text": "物料单位",
+                            "flex": 0,
+                            "dataIndex": "pr_unit",
+                            "width": 200,
+                            "xtype": "",
+                            "items": null
+                        }]
+                    }) ;   
+
+                }
+            }
+        });
+
+    }
+});

+ 5 - 0
frontend/saas-web/app/view/money/recBalance/QueryPanelModel.js

@@ -0,0 +1,5 @@
+Ext.define('saas.view.money.recBalance.QueryPanelModel', {
+    extend: 'saas.view.core.query.QueryPanelModel',
+    alias: 'viewmodel.money-recbalance-querypanel'
+
+});