huangx 7 лет назад
Родитель
Сommit
f326321fa4
100 измененных файлов с 1315 добавлено и 571 удалено
  1. 13 3
      applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/exception/BizExceptionCode.java
  2. 2 2
      applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/po/Configs.java
  3. 2 2
      applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/po/Operation.java
  4. 9 4
      applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/controller/ConfigsController.java
  5. 2 0
      applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/mapper/ConfigsMapper.java
  6. 4 0
      applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/service/ConfigsService.java
  7. 11 2
      applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/service/impl/ConfigsServiceImpl.java
  8. 2 1
      applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/service/impl/EndProductServiceImpl.java
  9. 1 1
      applications/commons/commons-server/src/main/resources/application.yml
  10. 8 4
      applications/commons/commons-server/src/main/resources/i18n/messages_zh_CN.properties
  11. 26 1
      applications/commons/commons-server/src/main/resources/mapper/ConfigsMapper.xml
  12. 1 1
      applications/commons/commons-server/src/main/resources/mapper/EndProductMapper.xml
  13. 1 0
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/mapper/BankinformationMapper.java
  14. 22 8
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/BankinformationServiceImpl.java
  15. 4 2
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/BomServiceImpl.java
  16. 12 10
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/CustomerServiceImpl.java
  17. 2 2
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/EmployeeServiceImpl.java
  18. 25 17
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/ProductServiceImpl.java
  19. 13 11
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/VendorServiceImpl.java
  20. 35 35
      applications/document/document-server/src/main/resources/mapper/ProductDetailMapper.xml
  21. 4 4
      applications/document/document-server/src/main/resources/mapper/ProductMapper.xml
  22. 2 1
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/mapper/FundtransferdetailMapper.java
  23. 21 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/po/Fundtransfer.java
  24. 30 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/po/Othreceipts.java
  25. 18 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/po/Othspendings.java
  26. 19 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/po/Paybalance.java
  27. 17 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/po/Recbalance.java
  28. 46 26
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/FundtransferServiceImpl.java
  29. 7 3
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/OthreceiptsServiceImpl.java
  30. 11 4
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/OthspendingsServiceImpl.java
  31. 17 9
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/PaybalanceServiceImpl.java
  32. 14 6
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/RecbalanceServiceImpl.java
  33. 5 2
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/VerificationServiceImpl.java
  34. 1 1
      applications/money/money-server/src/main/resources/mapper/BankinformationMapper.xml
  35. 19 1
      applications/money/money-server/src/main/resources/mapper/FundtransferMapper.xml
  36. 1 1
      applications/money/money-server/src/main/resources/mapper/FundtransferdetailMapper.xml
  37. 18 1
      applications/money/money-server/src/main/resources/mapper/OthreceiptsMapper.xml
  38. 23 7
      applications/money/money-server/src/main/resources/mapper/OthspendingsMapper.xml
  39. 18 1
      applications/money/money-server/src/main/resources/mapper/PaybalanceMapper.xml
  40. 18 1
      applications/money/money-server/src/main/resources/mapper/RecbalanceMapper.xml
  41. 8 2
      applications/purchase/purchase-dto/src/main/java/com/usoftchina/saas/purchase/dto/ProdInOutDTO.java
  42. 5 0
      applications/purchase/purchase-dto/src/main/java/com/usoftchina/saas/purchase/dto/PurchaseDTO.java
  43. 1 1
      applications/purchase/purchase-dto/src/main/java/com/usoftchina/saas/purchase/dto/PurchaseDetailDTO.java
  44. 3 1
      applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/mapper/ProdInOutMapper.java
  45. 4 0
      applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/mapper/PurchaseMapper.java
  46. 9 2
      applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/po/ProdInOut.java
  47. 4 1
      applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/po/Purchase.java
  48. 6 2
      applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/po/PurchaseList.java
  49. 15 15
      applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/service/impl/ProdInOutServiceImpl.java
  50. 24 21
      applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/service/impl/PurchaseServiceImpl.java
  51. 4 4
      applications/purchase/purchase-server/src/main/resources/mapper/ProdInOutListMapper.xml
  52. 23 4
      applications/purchase/purchase-server/src/main/resources/mapper/ProdInOutMapper.xml
  53. 1 0
      applications/purchase/purchase-server/src/main/resources/mapper/PurchaseListMapper.xml
  54. 75 21
      applications/purchase/purchase-server/src/main/resources/mapper/PurchaseMapper.xml
  55. 11 6
      applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/service/impl/ProdInOutServiceImpl.java
  56. 7 3
      applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/service/impl/SaleServiceImpl.java
  57. 6 2
      applications/storage/storage-dto/src/main/java/com/usoftchina/saas/storage/dto/ProdInOutDTO.java
  58. 6 2
      applications/storage/storage-dto/src/main/java/com/usoftchina/saas/storage/po/ProdInOut.java
  59. 1 1
      applications/storage/storage-server/src/main/java/com/usoftchina/saas/storage/mapper/MakeMapper.java
  60. 2 4
      applications/storage/storage-server/src/main/java/com/usoftchina/saas/storage/mapper/ProdInOutMapper.java
  61. 80 48
      applications/storage/storage-server/src/main/java/com/usoftchina/saas/storage/service/impl/MakeServiceImpl.java
  62. 9 5
      applications/storage/storage-server/src/main/java/com/usoftchina/saas/storage/service/impl/ProdInOutServiceImpl.java
  63. 2 2
      applications/storage/storage-server/src/main/resources/mapper/MakeMapper.xml
  64. 10 7
      applications/storage/storage-server/src/main/resources/mapper/ProdInOutListMapper.xml
  65. 74 99
      applications/storage/storage-server/src/main/resources/mapper/ProdInOutMapper.xml
  66. 4 0
      base-servers/account/account-dto/pom.xml
  67. 39 0
      base-servers/account/account-dto/src/main/java/com/usoftchina/saas/account/dto/CompanyDTO.java
  68. 41 5
      base-servers/account/account-dto/src/main/java/com/usoftchina/saas/account/dto/CompanyRegDTO.java
  69. 12 0
      base-servers/account/account-server/pom.xml
  70. 2 0
      base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/AccountApplication.java
  71. 10 3
      base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/controller/AccountController.java
  72. 12 0
      base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/controller/CompanyController.java
  73. 7 1
      base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/mapper/AccountRoleMapper.java
  74. 7 1
      base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/mapper/CompanyMapper.java
  75. 28 0
      base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/po/Company.java
  76. 4 1
      base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/service/AccountService.java
  77. 17 0
      base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/service/CompanyService.java
  78. 21 2
      base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/service/impl/AccountServiceImpl.java
  79. 29 2
      base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/service/impl/CompanyServiceImpl.java
  80. 11 0
      base-servers/account/account-server/src/main/resources/mapper/AccountRoleMapper.xml
  81. 32 4
      base-servers/account/account-server/src/main/resources/mapper/CompanyMapper.xml
  82. 3 4
      base-servers/auth/auth-common/src/main/java/com/usoftchina/saas/auth/common/cookie/CookieInfo.java
  83. 2 1
      base-servers/auth/auth-server/src/main/java/com/usoftchina/saas/auth/controller/AuthController.java
  84. 13 13
      base-servers/file/file-api/src/main/java/com/usoftchina/saas/file/api/FileApi.java
  85. 2 0
      base-servers/file/file-server/src/main/java/com/usoftchina/saas/file/FileApplication.java
  86. 16 16
      base-servers/file/file-server/src/main/java/com/usoftchina/saas/file/controller/FileController.java
  87. 1 0
      base-servers/gateway-server/src/main/resources/application.yml
  88. 10 5
      base-servers/socket/socket-api/src/main/java/com/usoftchina/saas/socket/api/SocketMessageApi.java
  89. 23 8
      base-servers/socket/socket-server/src/main/java/com/usoftchina/saas/socket/controller/MessageController.java
  90. 21 18
      frontend/saas-web/app.json
  91. 6 6
      frontend/saas-web/app/Application.scss
  92. 1 1
      frontend/saas-web/app/util/BaseUtil.js
  93. 7 4
      frontend/saas-web/app/view/core/base/BasePanel.js
  94. 2 0
      frontend/saas-web/app/view/core/base/BasePanel.scss
  95. 8 1
      frontend/saas-web/app/view/core/base/GridPanel.js
  96. 1 1
      frontend/saas-web/app/view/core/chart/ChartBase.js
  97. 1 1
      frontend/saas-web/app/view/core/dbfind/DbfindTrigger.js
  98. 26 44
      frontend/saas-web/app/view/core/form/DataMultiCombo.js
  99. 1 1
      frontend/saas-web/app/view/core/form/FormPanelController.js
  100. 1 1
      frontend/saas-web/app/view/core/form/MultiCombo.js

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

@@ -30,22 +30,28 @@ public enum BizExceptionCode implements BaseExceptionCode {
     BIZ_RELDELETE_UPDATEPROD(79307,"存在关联单据,不允许更新"),
     BIZ_RELDELETE_DELETEPROD(79308,"存在关联单据,不允许删除"),
     BIZ_PRODWHCODE_REPEAT(79309, "明细仓库重复"),
+    BIZ_UNENDPRODUCT(79310,"系统还未结账,不能反结账"),
     NO_OPRATIONDATA(79400,"无可操作单据"),
     BOM_SAVE(79401, "产品编号+版本号已存在"),
     REPEAT_NAME(79501, "名称重复"),
     REPEAT_CODE(79502, "编号重复"),
+    REPEAT_CUSTOMERCODE(79503, "客户名称或编号重复"),
+    REPEAT_TEL(79504, "电话号码重复"),
     NO_DATA(79998, "未找到数据"),
     ILLEGAL_ID(79999, "id不正确"),
     PRODUCT_HAS_WAREHOUSE(79502, "存在物料默认仓库资料为该仓库资料,无法删除"),
     PRODUCTWH_HAS_WAREHOUSE(79503, "该仓库资料存在库存,无法删除"),
     ACCOUNT_EXISTS(79503, "账号已存在"),
+    DEAL_FAILED(79800, "编号:<u>%s</u>处理失败,%s"),
     USING_EXISTS(79504, ""),
 
 
 
     //采购 70000-71999
     PURCCHECKIN_POST_ERROR(70000,""),
-    PURCHASE_UNAUDIT_ERROR(72006,"采购订单已转采购验收单,无法反审核"),
+    PURCHASE_UNAUDIT_ERROR(71001,"采购订单已转采购验收单,无法反审核"),
+    PURCHASE_DETAIL_OVERNUM(70001, "明细行数量超过来源采购验收单明细行数量"),
+    PURCHASE_ORDER_HASAUDIT(70002, "存在已审核单据,单据编号:%s"),
 
 
     //销售
@@ -57,19 +63,23 @@ public enum BizExceptionCode implements BaseExceptionCode {
     SALEOUT_POSTSTATUS_ERROR(72004,"当前单据状态无法进行此操作。"),
     SALEOUT_POST_ERROR(72005,""),
     SALEOUT_UNAUDIT_ERROR(72006,"销售订单已转出货单,无法反审核"),
+    SALE_ORDER_HASAUDIT(72003, "存在已审核单据,单据编号:%s"),
 
     //资金
     PAYBALANCE_OUTNOWBALANCE(74001,"本次核销金额不能大于未核销金额"),
     PAYBALANCE_UNIQUESOURCECODE(74002, "保存失败!不能选择重复的源单"),
-
+    PAYBALANCE_NOWAMOUNT_POSITIVE(74005, "单据类型为<u>%s</u>的单据,核销金额必须为正数"),
+    PAYBALANCE_NOWAMOUNT_NEGATIVE(74005, "单据类型为<u>%s</u>的单据,核销金额必须为负数"),
     RECALANCE_OUTNOWBALANCE(74003,"本次核销金额不能大于未核销金额"),
-
+    BEFORE_UNAUDIT(74006, "单据:<u>%s</u>未审核,无法反审核"),
     BANK_AMOUNT_NOTENOUGH(74004, "资金账号不足"),
 
 
 
     //库存
     EMPTY_DATA(76100,"数据为空,请填写后再保存"),
+    UNENOUGH_DETAIL_STOCK(76300, "行%s库存不足"),
+    UNENOUGH_STOCK(76400, "%s :库存不足"),
     STORAGE_POST_ERROR(76200,""),
     ;
     private int code;

+ 2 - 2
applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/po/Configs.java

@@ -1,14 +1,14 @@
 package com.usoftchina.saas.commons.po;
 
-import com.usoftchina.saas.base.entity.CommonBaseEntity;
 
+import java.io.Serializable;
 import java.util.Date;
 
 /** 系统参数
  * @author: guq
  * @create: 2018-11-16 11:19
  **/
-public class Configs {
+public class Configs implements Serializable {
 
     private Long id;
 

+ 2 - 2
applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/po/Operation.java

@@ -65,12 +65,12 @@ public enum Operation {
     /**
      * 转采购验收单
      */
-    PURCHASEIN("msg.TurnPurcCheckin", "msg.TurnPurcCheckinSuccess"),
+    PURCHASEIN("msg.turnPurcCheckin", "msg.turnPurcCheckinSuccess"),
 
     /**
      * 转采购验退单
      */
-    PURCHASEOUT("msg.TurnPurcCheckout", "msg.TurnPurcCheckoutSuccess"),
+    PURCHASEOUT("msg.turnPurcCheckout", "msg.turnPurcCheckoutSuccess"),
 
     /**
      * 转出货单

+ 9 - 4
applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/controller/ConfigsController.java

@@ -8,9 +8,9 @@ import com.usoftchina.saas.commons.po.Configs;
 import com.usoftchina.saas.commons.service.ConfigsService;
 import com.usoftchina.saas.page.PageRequest;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
 
 /**
  * @author: guq
@@ -35,10 +35,15 @@ public class ConfigsController {
         return Result.success(data);
     }
 
-    @GetMapping("/save")
+    @PostMapping("/save")
     public Result<DocBaseDTO> save(Configs data) {
         DocBaseDTO baseDTO = configsService.save(data);
         return Result.success(baseDTO);
     }
 
+    @PostMapping("/update")
+    public Result update(@RequestBody List<Configs> data) {
+        configsService.update(data);
+        return Result.success();
+    }
 }

+ 2 - 0
applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/mapper/ConfigsMapper.java

@@ -21,4 +21,6 @@ public interface ConfigsMapper {
     List<Configs> selectByCondition(@Param("con") String con, @Param("companyId") Long companyId);
 
     void updateCreator(@Param("userId") Long userId, @Param("userName") String userName, @Param("id") Long id);
+
+    void updateByCodeSelective(Configs con);
 }

+ 4 - 0
applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/service/ConfigsService.java

@@ -6,10 +6,14 @@ import com.usoftchina.saas.commons.dto.ListReqDTO;
 import com.usoftchina.saas.commons.po.Configs;
 import com.usoftchina.saas.page.PageRequest;
 
+import java.util.List;
+
 public interface ConfigsService {
     PageInfo getListData(PageRequest page, ListReqDTO req);
 
     Configs getConfigByCode(String code);
 
     DocBaseDTO save(Configs data);
+
+    void update(List<Configs> data);
 }

+ 11 - 2
applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/service/impl/ConfigsServiceImpl.java

@@ -6,14 +6,12 @@ import com.usoftchina.saas.commons.dto.DocBaseDTO;
 import com.usoftchina.saas.commons.dto.ListReqDTO;
 import com.usoftchina.saas.commons.mapper.ConfigsMapper;
 import com.usoftchina.saas.commons.po.Configs;
-import com.usoftchina.saas.commons.po.Status;
 import com.usoftchina.saas.commons.service.ConfigsService;
 import com.usoftchina.saas.commons.service.MessageLogService;
 import com.usoftchina.saas.context.BaseContextHolder;
 import com.usoftchina.saas.exception.BizException;
 import com.usoftchina.saas.page.PageDefault;
 import com.usoftchina.saas.page.PageRequest;
-import com.usoftchina.saas.utils.BeanMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
@@ -89,4 +87,15 @@ public class ConfigsServiceImpl implements ConfigsService{
         messageLogService.update(baseDTO);
         return baseDTO;
     }
+
+    @Override
+    public void update(List<Configs> data) {
+        if (StringUtils.isEmpty(data)) {
+            return;
+        }
+        for (Configs con : data) {
+            con.setCompanyId(BaseContextHolder.getCompanyId());
+            configsMapper.updateByCodeSelective(con);
+        }
+    }
 }

+ 2 - 1
applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/service/impl/EndProductServiceImpl.java

@@ -5,6 +5,7 @@ import com.github.pagehelper.PageInfo;
 import com.usoftchina.saas.commons.dto.DocBaseDTO;
 import com.usoftchina.saas.commons.dto.ListReqDTO;
 import com.usoftchina.saas.commons.dto.MessagelogDTO;
+import com.usoftchina.saas.commons.exception.BizExceptionCode;
 import com.usoftchina.saas.commons.mapper.EndProductMapper;
 import com.usoftchina.saas.commons.mapper.MessagelogMapper;
 import com.usoftchina.saas.commons.po.Operation;
@@ -72,7 +73,7 @@ public class EndProductServiceImpl implements EndProductService {
     public void unEndAccount() {
         String period = endProductMapper.selectUnPeriod(BaseContextHolder.getCompanyId());
         if (StringUtils.isEmpty(period)){
-            throw new BizException(79306,"系统还未结账,不能反结账");
+            throw new BizException(BizExceptionCode.BIZ_UNENDPRODUCT);
         }else{
             endProductMapper.updatePeriodStatus(0L, period, BaseContextHolder.getCompanyId());
             messageLogService.customizeLog(generateMsgObj(Long.parseLong(period)), Operation.UNENDPRODUCT);

+ 1 - 1
applications/commons/commons-server/src/main/resources/application.yml

@@ -53,7 +53,7 @@ eureka:
   client:
     registryFetchIntervalSeconds: 5
     serviceUrl:
-       defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@192.168.0.181:8510/eureka/
+      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@192.168.0.181:8510/eureka/
 server:
   port: 8920
   tomcat:

+ 8 - 4
applications/commons/commons-server/src/main/resources/i18n/messages_zh_CN.properties

@@ -116,7 +116,11 @@ msg.getBill=\u83b7\u53d6\u53d1\u7968\u660e\u7ec6
 msg.getARBill=\u83b7\u53d6\u5e94\u6536\u53d1\u7968
 msg.getAPBill=\u83b7\u53d6\u5e94\u4ed8\u53d1\u7968
 msg.getSuccess=\u83b7\u53d6\u6210\u529f
-msg.endProdudct=\u8bb0\u8d26\u64cd\u4f5c
-msg.endProdudctSuccess=\u8bb0\u8d26\u6210\u529f
-msg.unEndProduct=\u53cd\u8bb0\u8d26\u64cd\u4f5c
-msg.unEndProductSuccess=\u53cd\u8bb0\u8d26\u6210\u529f
+msg.endProdudct=\u7ed3\u8d26\u64cd\u4f5c
+msg.endProdudctSuccess=\u7ed3\u8d26\u6210\u529f
+msg.unEndProduct=\u53cd\u7ed3\u8d26\u64cd\u4f5c
+msg.unEndProductSuccess=\u53cd\u7ed3\u8d26\u6210\u529f
+msg.turnPurcCheckin=\u8F6C\u6570\u91C7\u8D2D\u9A8C\u6536\u5355\u64CD\u4F5C
+msg.turnPurcCheckinSuccess=\u8F6C\u6570\u91C7\u8D2D\u9A8C\u6536\u5355\u64CD\u4F5C\u6210\u529F
+msg.turnPurcCheckout=\u8F6C\u91C7\u8D2D\u9A8C\u9000\u5355\u64CD\u4F5C
+msg.turnPurcCheckoutSuccess=\u8F6C\u91C7\u8D2D\u9A8C\u9000\u5355\u64CD\u4F5C\u6210\u529F

+ 26 - 1
applications/commons/commons-server/src/main/resources/mapper/ConfigsMapper.xml

@@ -143,7 +143,7 @@
     select  *  from configs
     <where>
       <if test="con != null">
-        ${con}
+        code=#{con}
       </if>
       <if test="companyId != null">
         and  companyId = #{companyId}
@@ -156,4 +156,29 @@
     update configs set creatorId = #{userId} , creatorName=#{userName} where id=#{id}
   </update>
 
+  <update id="updateByCodeSelective" parameterType="com.usoftchina.saas.commons.po.Configs" >
+    update configs
+    <set >
+      <if test="description != null" >
+        description = #{description,jdbcType=VARCHAR},
+      </if>
+      <if test="data != null" >
+        data = #{data,jdbcType=VARCHAR},
+      </if>
+      <if test="creatorName != null" >
+        creatorName = #{creatorName,jdbcType=VARCHAR},
+      </if>
+      <if test="creatorId != null" >
+        creatorId = #{creatorId,jdbcType=INTEGER},
+      </if>
+      <if test="createTime != null" >
+        createTime = #{createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="updaterName != null" >
+        updaterName = #{updaterName,jdbcType=VARCHAR},
+      </if>
+    </set>
+    where code = #{code,jdbcType=VARCHAR} and companyid = #{companyId}
+  </update>
+
 </mapper>

+ 1 - 1
applications/commons/commons-server/src/main/resources/mapper/EndProductMapper.xml

@@ -22,7 +22,7 @@
         <result column="ml_keyvalue" property="ml_keyvalue" jdbcType="INTEGER" />
     </resultMap>
     <select id="getListData" resultMap="MsgResult">
-        SELECT * FROM MESSAGELOG WHERE ML_CALLER='EndProduct' AND COMPANYID=#{companyId} AND ml_result like '%账成功' ORDER BY ML_ID DESC
+        SELECT * FROM MESSAGELOG WHERE ML_CALLER='EndProduct' AND COMPANYID=#{companyId} AND ml_result like '%账成功' ORDER BY ML_ID DESC
     </select>
 
     <select id="endProduct" parameterMap="spParamMap" statementType="CALLABLE">

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

@@ -25,6 +25,7 @@ public interface BankinformationMapper extends CommonBaseMapper<Bankinformation>
 
     List<ComboDTO> getCombo(@Param("companyId") Long companyId);
     String selectBankcode(String bk_bankcode);
+    Long selectBankId(String bk_bankcode);
 
     void check(Map<String, Object> map);
 

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

@@ -49,23 +49,39 @@ public class BankinformationServiceImpl extends CommonBaseServiceImpl<Bankinform
         bankinformation.setBk_income(new Double(0));
         bankinformation.setBk_spending(new Double(0));
 
-        //判断编号
         String bktion = bankinformationMapper.selectBankcode(bankinformation.getBk_bankcode());
-        if (bktion != null){
-            throw new BizException(500, BizExceptionCode.ACCOUNT_EXISTS.getMessage());
+        //先判断ID,再判断编号
+        if (bankinformation.getId() == 0)
+        {
+            if (bktion != null){
+                throw new BizException(500, BizExceptionCode.ACCOUNT_EXISTS.getMessage());
+            }
+            bankinformationMapper.insertSelective(bankinformation);
+        }else {
+            if (bktion != null){
+                Long id = bankinformationMapper.selectBankId(bankinformation.getBk_bankcode());
+                if (id.equals(bankinformation.getId())){
+                    bankinformationMapper.updateByPrimaryKeySelective(bankinformation);
+                }else {
+                    throw new BizException(500, BizExceptionCode.ACCOUNT_EXISTS.getMessage());
+                }
+            }else {
+                bankinformationMapper.updateByPrimaryKeySelective(bankinformation);
+            }
         }
 
+
         //中间表
         Banksubledger banksubledger = new Banksubledger();
         Date date = bankinformation.getBk_date();
         String dateString = date2String(date, "yyyyMMdd");
         int ym = Integer.parseInt(dateString);
 
-        String date1 = date2String(date, "yyyymm");
+        String date1 = date2String(date, "yyyyMM");
         date1 = date1 + "01 00:00:00";
         Date d = null;
         try {
-            d = string2Date(date1, "yyyy-mm-dd hh:mm:ss");
+            d = string2Date(date1, "yyyy-MM-dd hh:mm:ss");
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -81,10 +97,8 @@ public class BankinformationServiceImpl extends CommonBaseServiceImpl<Bankinform
         banksubledger.setBl_orderamount(bankinformation.getBk_beginamount());
 
         if(bankinformation.getId() == 0){
-            bankinformationMapper.insertSelective(bankinformation);
             banksubledgerMapper.insertSelective(banksubledger);
         }else{
-            bankinformationMapper.updateByPrimaryKeySelective(bankinformation);
             banksubledgerMapper.updateByPrimaryKeySelective(banksubledger);
         }
         return true;
@@ -164,7 +178,7 @@ public class BankinformationServiceImpl extends CommonBaseServiceImpl<Bankinform
      */
     public static Date string2Date(String dateStr, String format) throws Exception {
         SimpleDateFormat sdf = new SimpleDateFormat(format);
-        if (dateStr == null) {
+        if (dateStr != null) {
             return sdf.parse(dateStr);
         }
         return null;

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

@@ -228,7 +228,8 @@ public class BomServiceImpl extends CommonBaseServiceImpl<BomMapper, Bom> implem
             try{
                 close(docBaseDTO.getId());
             }catch (Exception e){
-                errorMsg.append("编号:" + docBaseDTO.getCode() + "处理失败," + e.getMessage());
+                String msg = BizExceptionCode.DEAL_FAILED.getMessage();
+                errorMsg.append(String.format(msg, docBaseDTO.getCode(), e.getMessage()));
             }
         }
         return errorMsg.toString();
@@ -241,7 +242,8 @@ public class BomServiceImpl extends CommonBaseServiceImpl<BomMapper, Bom> implem
             try{
                 open(docBaseDTO.getId());
             }catch (Exception e){
-                errorMsg.append("编号:" + docBaseDTO.getCode() + "处理失败," + e.getMessage());
+                String msg = BizExceptionCode.DEAL_FAILED.getMessage();
+                errorMsg.append(String.format(msg, docBaseDTO.getCode(), e.getMessage()));
             }
         }
         return errorMsg.toString();

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

@@ -99,7 +99,7 @@ public class CustomerServiceImpl extends CommonBaseServiceImpl<CustomerMapper, C
     @Transactional
     public DocBaseDTO saveFormData(CustomerFormDTO data) {
         if (null == data || null == data.getMain()){
-            throw new BizException(500, "数据为空,请填写后再保存");
+            throw new BizException(BizExceptionCode.EMPTY_DATA);
         }
         //公司ID
         Long companyId = BaseContextHolder.getCompanyId();
@@ -139,7 +139,7 @@ public class CustomerServiceImpl extends CommonBaseServiceImpl<CustomerMapper, C
             //检查名称和编号
             int count = getMapper().validNameAndCodeWhenInsert(customer);
             if (count>0) {
-                throw new BizException(500, "客户名称或编号重复");
+                throw new BizException(BizExceptionCode.REPEAT_CUSTOMERCODE);
             }
             //插入操作
             getMapper().insertSelective(customer);
@@ -174,7 +174,7 @@ public class CustomerServiceImpl extends CommonBaseServiceImpl<CustomerMapper, C
             //检查名称和编号
             int count = getMapper().validNameAndCodeWhenUpdate(customer);
             if (count > 0) {
-                throw new BizException(500, "客户名称或编号重复");
+                throw new BizException(BizExceptionCode.REPEAT_CUSTOMERCODE);
             }
 
             //检查期初日期是否已结转
@@ -253,11 +253,11 @@ public class CustomerServiceImpl extends CommonBaseServiceImpl<CustomerMapper, C
             subledger.setSl_vendid(0);
             subledger.setSl_custid(Math.toIntExact(customer.getId()));
             subledger.setCompanyId(BaseContextHolder.getCompanyId());
-            String dates = date2String(customer.getCu_begindate(), "yyyy-mm");
+            String dates = date2String(customer.getCu_begindate(), "yyyy-MM");
             dates = dates + "-01";
             Date date = null;
             try {
-                date = string2Date(dates, "yyyy-mm-dd");
+                date = string2Date(dates, "yyyy-MM-dd");
             } catch (Exception e) {
                 e.printStackTrace();
             }
@@ -351,7 +351,7 @@ public class CustomerServiceImpl extends CommonBaseServiceImpl<CustomerMapper, C
     }
 
     @Transactional
-    private DocBaseDTO singleClose(Long id) {
+    public DocBaseDTO singleClose(Long id) {
         DocBaseDTO docBaseDTO = null;
         if (null!=id) {
             Customer customer = getMapper().selectByPrimaryKey(id);
@@ -386,7 +386,7 @@ public class CustomerServiceImpl extends CommonBaseServiceImpl<CustomerMapper, C
     }
 
     @Transactional
-    private DocBaseDTO singleOpen(Long id) {
+    public DocBaseDTO singleOpen(Long id) {
         DocBaseDTO docBaseDTO = null;
         if (null!=id) {
             Customer customer = getMapper().selectByPrimaryKey(id);
@@ -494,10 +494,11 @@ public class CustomerServiceImpl extends CommonBaseServiceImpl<CustomerMapper, C
      */
     public static Date string2Date(String dateStr, String format) throws Exception {
         SimpleDateFormat sdf = new SimpleDateFormat(format);
-        if (dateStr == null) {
+        if (dateStr != null) {
             return sdf.parse(dateStr);
+        }else {
+            return null;
         }
-        return null;
     }
 
     /**
@@ -511,8 +512,9 @@ public class CustomerServiceImpl extends CommonBaseServiceImpl<CustomerMapper, C
         SimpleDateFormat sdf = new SimpleDateFormat(format);
         if (date != null) {
             return sdf.format(date);
+        }else {
+            return null;
         }
-        return null;
     }
 
 }

+ 2 - 2
applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/EmployeeServiceImpl.java

@@ -73,7 +73,7 @@ public class EmployeeServiceImpl extends CommonBaseServiceImpl<EmployeeMapper, E
             //检查电话号码
             int count = getMapper().validatePhoneWhenInsert(employee.getEm_mobile(),BaseContextHolder.getCompanyId());
             if (count>0) {
-                throw new BizException(500, "电话号码重复");
+                throw new BizException(BizExceptionCode.REPEAT_TEL);
             }
             getMapper().insertSelective(employee);
             docBaseDTO = generateMsgObj(employee.getId(), code);
@@ -85,7 +85,7 @@ public class EmployeeServiceImpl extends CommonBaseServiceImpl<EmployeeMapper, E
             //检查电话号码
             int count = getMapper().validatePhoneWhenUpdate(employee.getEm_mobile(),employee.getId(),BaseContextHolder.getCompanyId());
             if (count>0) {
-                throw new BizException(500, "电话号码重复");
+                throw new BizException(BizExceptionCode.REPEAT_TEL);
             }
             getMapper().updateByPrimaryKeySelective(employee);
             docBaseDTO = generateMsgObj(employee.getId(), employee.getEm_code());

+ 25 - 17
applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/ProductServiceImpl.java

@@ -2,6 +2,7 @@ package com.usoftchina.saas.document.service.impl;
 
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
+import com.usoftchina.saas.base.Result;
 import com.usoftchina.saas.base.service.CommonBaseServiceImpl;
 import com.usoftchina.saas.commons.api.MaxnumberService;
 import com.usoftchina.saas.commons.api.MessageLogService;
@@ -87,12 +88,14 @@ public class ProductServiceImpl extends CommonBaseServiceImpl<ProductMapper, Pro
         //校验明细仓库是否重复
         validRepeatWarehouse(productDetailList);
 
+        //保存
+        String code = pushMaxnubmer(product.getPr_code(), product.getId());
+
         if(product.getId() == 0){
-            //保存
-            String code = pushMaxnubmer(product.getPr_code(), product.getId());
             product.setCompanyId(companyId);
             product.setCreatorId(userId);
             product.setCreateTime(new Date());
+            product.setPr_code(code);
             //保存主表
             getMapper().insertSelective(product);
             //保存明细表数据
@@ -113,7 +116,7 @@ public class ProductServiceImpl extends CommonBaseServiceImpl<ProductMapper, Pro
         }else{
             String oldCode = getMapper().getCodeById(product.getId());
             if (!product.getPr_code().equals(oldCode)){
-                validEnableUpdate(product.getId());
+                validEnableUpdateCode(product.getId());
             }
             //物料发生过除库存初始化外的出入库单时,不能新增,修改,删除
             validProductOperation(product.getId(), BizExceptionCode.BIZ_RELDELETE_UPDATEPROD);
@@ -122,15 +125,18 @@ public class ProductServiceImpl extends CommonBaseServiceImpl<ProductMapper, Pro
             if (productDetailList.size() > 0){
                 //找到原始单据,反过账并删除
                 String inoutCode = getMapper().selectProdIOCode(product.getPr_code(), BaseContextHolder.getCompanyId(), "库存初始化");
-                post(inoutCode, "反过账");
-                getMapper().deleteProdIOByCode(inoutCode, BaseContextHolder.getCompanyId());
-                getMapper().deleteProdIODetailByCode(inoutCode, BaseContextHolder.getCompanyId());
+                if (!StringUtils.isEmpty(inoutCode)) {
+                    post(inoutCode, "反过账");
+                    getMapper().deleteProdIODetailByCode(inoutCode, BaseContextHolder.getCompanyId());
+                    getMapper().deleteProdIOByCode(inoutCode, BaseContextHolder.getCompanyId());
+                }
                 //此种情况不可能发生明细行数量,只会发生明细行数据修改/新增明细行
                 //a.更新明细行数据
                 List<ProductDetail> insertItems = new ArrayList<ProductDetail>();
                 List<ProductDetail> updateItems = new ArrayList<ProductDetail>();
                 for(ProductDetail productDetail : productDetailList){
                     if (productDetail.getId() == 0){
+                        productDetail.setPd_prodid(product.getId());
                         productDetail.setUpdaterId(userId);
                         productDetail.setUpdateTime(new Date());
                         insertItems.add(productDetail);
@@ -155,6 +161,7 @@ public class ProductServiceImpl extends CommonBaseServiceImpl<ProductMapper, Pro
 
             product.setUpdaterId(BaseContextHolder.getUserId());
             product.setUpdateTime(new Date());
+            product.setPr_code(code);
             getMapper().updateByPrimaryKeySelective(product);
             docBaseDTO = generateMsgObj(product.getId(), product.getPr_code());
             //记录LOG
@@ -226,7 +233,7 @@ public class ProductServiceImpl extends CommonBaseServiceImpl<ProductMapper, Pro
             List<ProdIODetail> insertItems = new ArrayList<ProdIODetail>();
             //生成库存初始化单据明细表
             for(ProductDetail productDetail : productDetailList){
-                ProdIODetail prodIODetail = generateProdIODetail(product, productDetail);
+                ProdIODetail prodIODetail = generateProdIODetail(product, productDetail, inoutCode, pi_id);
                 insertItems.add(prodIODetail);
             }
             //明细插入
@@ -253,7 +260,7 @@ public class ProductServiceImpl extends CommonBaseServiceImpl<ProductMapper, Pro
         }else if ("反过账".equals(type)){
             warehouseService.unPost(map);
         }
-        if (StringUtils.isEmpty(map.get("result"))){
+        if (!StringUtils.isEmpty(map.get("result"))){
             throw new BizException(76203, map.get("result").toString());
         }
     }
@@ -264,11 +271,11 @@ public class ProductServiceImpl extends CommonBaseServiceImpl<ProductMapper, Pro
      * @param productDetail
      * @return
      */
-    private ProdIODetail generateProdIODetail(Product product, ProductDetail productDetail){
+    private ProdIODetail generateProdIODetail(Product product, ProductDetail productDetail, String inoutCode, Long pi_id){
         ProdIODetail prodIODetail = new ProdIODetail();
         prodIODetail.setPd_piclass("库存初始化");
-        prodIODetail.setPd_inoutno(product.getPr_code());
-        prodIODetail.setPd_piid(product.getId());
+        prodIODetail.setPd_inoutno(inoutCode);
+        prodIODetail.setPd_piid(pi_id);
         prodIODetail.setPd_pdno(productDetail.getPd_detno());
         prodIODetail.setPd_ordercode(product.getPr_code());         //订单号 -> 物料编号
         prodIODetail.setPd_orderdetno(productDetail.getPd_detno()); //订单序号 -> 物料明细序号
@@ -288,7 +295,6 @@ public class ProductServiceImpl extends CommonBaseServiceImpl<ProductMapper, Pro
 
     @Override
     public DocBaseDTO close(Long id) {
-        validEnableUpdate(id);
         DocBaseDTO docBaseDTO = null;
         if(id != null && id > 0){
             String code = getMapper().getCodeById(id);
@@ -343,7 +349,8 @@ public class ProductServiceImpl extends CommonBaseServiceImpl<ProductMapper, Pro
             try{
                 close(docBaseDTO.getId());
             }catch (Exception e){
-                errorMsg.append("编号:" + docBaseDTO.getCode() + "处理失败," + e.getMessage());
+                String msg = BizExceptionCode.DEAL_FAILED.getMessage();
+                errorMsg.append(String.format(msg, docBaseDTO.getCode(), e.getMessage()));
             }
         }
         return errorMsg.toString();
@@ -356,7 +363,8 @@ public class ProductServiceImpl extends CommonBaseServiceImpl<ProductMapper, Pro
             try{
                 open(docBaseDTO.getId());
             }catch (Exception e){
-                errorMsg.append("编号:" + docBaseDTO.getCode() + "处理失败," + e.getMessage());
+                String msg = BizExceptionCode.DEAL_FAILED.getMessage();
+                errorMsg.append(String.format(msg, docBaseDTO.getCode(), e.getMessage()));
             }
         }
         return errorMsg.toString();
@@ -370,8 +378,8 @@ public class ProductServiceImpl extends CommonBaseServiceImpl<ProductMapper, Pro
         validEnableDel(id);
 
         String code = getMapper().getCodeById(id);
-        getMapper().deleteByPrimaryKey(id);
         productDetailMapper.deleteByProdId(id);
+        getMapper().deleteByPrimaryKey(id);
         DocBaseDTO docBaseDTO = generateMsgObj(id, code);
         //记录LOG
         messageLogService.delete(docBaseDTO);
@@ -411,7 +419,7 @@ public class ProductServiceImpl extends CommonBaseServiceImpl<ProductMapper, Pro
      * 校验是否存在关联单据,不存在时才允许更新物料编号
      * @param id
      */
-    private void validEnableUpdate(Long id){
+    private void validEnableUpdateCode(Long id){
         int count = 0;
         //采购
         count = getMapper().getCountFromPurc(id, BaseContextHolder.getCompanyId());
@@ -477,8 +485,8 @@ public class ProductServiceImpl extends CommonBaseServiceImpl<ProductMapper, Pro
         String inoutCode = getMapper().selectProdIOCode(prCode, BaseContextHolder.getCompanyId(), "库存初始化");
         if (!StringUtils.isEmpty(inoutCode)) {
             post(inoutCode, "反过账");
-            getMapper().deleteProdIOByCode(inoutCode, BaseContextHolder.getCompanyId());
             getMapper().deleteProdIODetailByCode(inoutCode, BaseContextHolder.getCompanyId());
+            getMapper().deleteProdIOByCode(inoutCode, BaseContextHolder.getCompanyId());
         }
 
         productDetailMapper.deleteByPrimaryKey(id);

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

@@ -110,7 +110,7 @@ public class VendorServiceImpl extends CommonBaseServiceImpl<VendorMapper, Vendo
     public DocBaseDTO saveFormData(VendorListDTO vendorListDTO) {
         Long companyId = BaseContextHolder.getCompanyId();
         if (null == vendorListDTO || null == vendorListDTO.getMain()){
-            throw new BizException(500, "数据为空,请填写后再保存");
+            throw new BizException(BizExceptionCode.EMPTY_DATA);
         }
         Vendor main = vendorListDTO.getMain();
         String code = null;
@@ -120,11 +120,11 @@ public class VendorServiceImpl extends CommonBaseServiceImpl<VendorMapper, Vendo
             code = pushMaxnubmer(main.getVe_code(), main.getId());
             int count = getMapper().getCountByCode(code, companyId);
             if(count > 0){
-                throw new BizException(500, "编号重复!");
+                throw new BizException(BizExceptionCode.REPEAT_NAME);
             }
             count = getMapper().getCountByName(main.getVe_name(), companyId);
             if (count > 0){
-                throw new BizException(500, "名称重复!");
+                throw new BizException(BizExceptionCode.REPEAT_NAME);
             }
             //保存主表信息
             main.setVe_code(code);
@@ -156,13 +156,13 @@ public class VendorServiceImpl extends CommonBaseServiceImpl<VendorMapper, Vendo
             int count = getMapper().getCountByCode(code, companyId);
             if (!code.equals(oldVendor.getVe_code())){
                 if (count > 0){
-                    throw new BizException(500, "编号重复!");
+                    throw new BizException(BizExceptionCode.REPEAT_CODE);
                 }
             }
             if (!main.getVe_name().equals(oldVendor.getVe_name())){
                 count = getMapper().getCountByName(main.getVe_name(), companyId);
                 if (count > 0){
-                    throw new BizException(500, "名称重复!");
+                    throw new BizException(BizExceptionCode.REPEAT_CODE);
                 }
             }
 
@@ -223,11 +223,11 @@ public class VendorServiceImpl extends CommonBaseServiceImpl<VendorMapper, Vendo
             subledger.setSl_vendid(Math.toIntExact(main.getId()));
             subledger.setSl_custid(0);
             subledger.setCompanyId(BaseContextHolder.getCompanyId());
-            String dates = date2String(main.getVe_begindate(), "yyyy-mm");
+            String dates = date2String(main.getVe_begindate(), "yyyy-MM");
             dates = dates + "-01";
             Date date = null;
             try {
-                date = string2Date(dates, "yyyy-mm-dd");
+                date = string2Date(dates, "yyyy-MM-dd");
             } catch (Exception e) {
                 e.printStackTrace();
             }
@@ -271,8 +271,8 @@ public class VendorServiceImpl extends CommonBaseServiceImpl<VendorMapper, Vendo
             if(!StringUtils.isEmpty(result)){
                 throw new BizException(BizExceptionCode.USING_EXISTS.getCode(),result.toString());
             }else{
-                getMapper().deleteByPrimaryKey(id);
                 vendorcontactMapper.deleteByFK(id);
+                getMapper().deleteByPrimaryKey(id);
                 //删除中间表
                 subledgerMapper.deleteVendor("期初余额", "期初余额", Math.toIntExact(id));
                 //记录LOG
@@ -345,7 +345,8 @@ public class VendorServiceImpl extends CommonBaseServiceImpl<VendorMapper, Vendo
             try{
                 close(docBaseDTO.getId());
             }catch (Exception e){
-                errorMsg.append("编号:" + docBaseDTO.getCode() + "处理失败," + e.getMessage());
+                String msg = BizExceptionCode.DEAL_FAILED.getMessage();
+                errorMsg.append(String.format(msg, docBaseDTO.getCode(), e.getMessage()));
             }
         }
         return errorMsg.toString();
@@ -358,7 +359,8 @@ public class VendorServiceImpl extends CommonBaseServiceImpl<VendorMapper, Vendo
             try{
                 open(docBaseDTO.getId());
             }catch (Exception e){
-                errorMsg.append("编号:" + docBaseDTO.getCode() + "处理失败," + e.getMessage());
+                String msg = BizExceptionCode.DEAL_FAILED.getMessage();
+                errorMsg.append(String.format(msg, docBaseDTO.getCode(), e.getMessage()));
             }
         }
         return errorMsg.toString();
@@ -433,7 +435,7 @@ public class VendorServiceImpl extends CommonBaseServiceImpl<VendorMapper, Vendo
      */
     public static Date string2Date(String dateStr, String format) throws Exception {
         SimpleDateFormat sdf = new SimpleDateFormat(format);
-        if (dateStr == null) {
+        if (dateStr != null) {
             return sdf.parse(dateStr);
         }
         return null;

+ 35 - 35
applications/document/document-server/src/main/resources/mapper/ProductDetailMapper.xml

@@ -268,59 +268,59 @@
         <foreach collection="list" item="item" index="index" separator=";">
             update productdetail
             <set >
-                <if test="pd_prodid != null" >
-                    pd_prodid = #{pd_prodid,jdbcType=INTEGER},
+                <if test="item.pd_prodid != null" >
+                    pd_prodid = #{item.pd_prodid,jdbcType=INTEGER},
                 </if>
-                <if test="pd_prodcode != null" >
-                    pd_prodcode = #{pd_prodcode,jdbcType=VARCHAR},
+                <if test="item.pd_prodcode != null" >
+                    pd_prodcode = #{item.pd_prodcode,jdbcType=VARCHAR},
                 </if>
-                <if test="pd_detno != null" >
-                    pd_detno = #{pd_detno,jdbcType=INTEGER},
+                <if test="item.pd_detno != null" >
+                    pd_detno = #{item.pd_detno,jdbcType=INTEGER},
                 </if>
-                <if test="pd_whcode != null" >
-                    pd_whcode = #{pd_whcode,jdbcType=VARCHAR},
+                <if test="item.pd_whcode != null" >
+                    pd_whcode = #{item.pd_whcode,jdbcType=VARCHAR},
                 </if>
-                <if test="pd_whname != null" >
-                    pd_whname = #{pd_whname,jdbcType=VARCHAR},
+                <if test="item.pd_whname != null" >
+                    pd_whname = #{item.pd_whname,jdbcType=VARCHAR},
                 </if>
-                <if test="pd_whid != null" >
-                    pd_whid = #{pd_whid,jdbcType=INTEGER},
+                <if test="item.pd_whid != null" >
+                    pd_whid = #{item.pd_whid,jdbcType=INTEGER},
                 </if>
-                <if test="pd_price != null" >
-                    pd_price = #{pd_price,jdbcType=DOUBLE},
+                <if test="item.pd_price != null" >
+                    pd_price = #{item.pd_price,jdbcType=DOUBLE},
                 </if>
-                <if test="pd_amount != null" >
-                    pd_amount = #{pd_amount,jdbcType=DOUBLE},
+                <if test="item.pd_amount != null" >
+                    pd_amount = #{item.pd_amount,jdbcType=DOUBLE},
                 </if>
-                <if test="companyId != null" >
-                    companyId = #{companyId,jdbcType=INTEGER},
+                <if test="item.companyId != null" >
+                    companyId = #{item.companyId,jdbcType=INTEGER},
                 </if>
-                <if test="updaterId != null" >
-                    updaterId = #{updaterId,jdbcType=INTEGER},
+                <if test="item.updaterId != null" >
+                    updaterId = #{item.updaterId,jdbcType=INTEGER},
                 </if>
-                <if test="updateTime != null" >
-                    updateTime = #{updateTime,jdbcType=TIMESTAMP},
+                <if test="item.updateTime != null" >
+                    updateTime = #{item.updateTime,jdbcType=TIMESTAMP},
                 </if>
-                <if test="pd_text1 != null" >
-                    pd_text1 = #{pd_text1,jdbcType=VARCHAR},
+                <if test="item.pd_text1 != null" >
+                    pd_text1 = #{item.pd_text1,jdbcType=VARCHAR},
                 </if>
-                <if test="pd_text2 != null" >
-                    pd_text2 = #{pd_text2,jdbcType=VARCHAR},
+                <if test="item.pd_text2 != null" >
+                    pd_text2 = #{item.pd_text2,jdbcType=VARCHAR},
                 </if>
-                <if test="pd_text3 != null" >
-                    pd_text3 = #{pd_text3,jdbcType=VARCHAR},
+                <if test="item.pd_text3 != null" >
+                    pd_text3 = #{item.pd_text3,jdbcType=VARCHAR},
                 </if>
-                <if test="pd_text4 != null" >
-                    pd_text4 = #{pd_text4,jdbcType=VARCHAR},
+                <if test="item.pd_text4 != null" >
+                    pd_text4 = #{item.pd_text4,jdbcType=VARCHAR},
                 </if>
-                <if test="pd_text5 != null" >
-                    pd_text5 = #{pd_text5,jdbcType=VARCHAR},
+                <if test="item.pd_text5 != null" >
+                    pd_text5 = #{item.pd_text5,jdbcType=VARCHAR},
                 </if>
-                <if test="pd_num != null" >
-                    pd_num = #{pd_num,jdbcType=DOUBLE},
+                <if test="item.pd_num != null" >
+                    pd_num = #{item.pd_num,jdbcType=DOUBLE},
                 </if>
             </set>
-            where id = #{id}
+            where id = #{item.id}
         </foreach>
     </update>
     <select id="selectProdidByPrimaryKey" resultType="java.lang.Long">

+ 4 - 4
applications/document/document-server/src/main/resources/mapper/ProductMapper.xml

@@ -504,7 +504,7 @@
         SELECT COUNT(*) FROM BOMDETAIL WHERE BD_SONID=#{id} AND COMPANYID=#{companyId}
     </select>
     <select id="getCountFromProdIO" resultType="int">
-        SELECT COUNT(*) FROM PRODIODETAIL WHERE PD_PRODID=#{id} AND COMPANYID=#{companyId}
+        SELECT COUNT(*) FROM PRODIODETAIL WHERE PD_PRODID=#{id} AND COMPANYID=#{companyId} and pd_piclass!='库存初始化'
     </select>
 
     <insert id="saveProdInOut" parameterType="com.usoftchina.saas.document.entities.ProdInOut">
@@ -905,14 +905,14 @@
 
     <select id="selectOrderCountByProdCode" resultType="java.lang.Integer">
         SELECT COUNT(*) FROM PRODINOUT LEFT JOIN PRODIODETAIL ON PI_ID=PD_PIID AND PRODINOUT.COMPANYID=PRODIODETAIL.COMPANYID
-        WHERE PRODIODETAIL.COMPANYID = #{companyId} AND PD_PRODID = #{id}
+        WHERE PRODIODETAIL.COMPANYID = #{companyId} AND PD_PRODID = #{id} and pd_piclass != '库存初始化';
     </select>
 
     <delete id="deleteProdIOByCode" >
-        DELETE FROM PRODINOUT WHERE PI_TEXT1=#{code} AND COMPANYID = #{companyId}
+        DELETE FROM PRODINOUT WHERE PI_INOUTNO=#{code} AND COMPANYID = #{companyId}
     </delete>
     <delete id="deleteProdIODetailByCode">
-        DELETE FROM PRODIODETAIL WHERE PD_PIID IN (SELECT PI_ID FROM PRODINOUT WHERE PI_TEXT1=#{code} AND PRODINOUT.COMPANYID = #{companyId}) AND PRODIODETAIL.COMPANYID = #{companyId}
+        DELETE FROM PRODIODETAIL WHERE PD_PIID IN (SELECT PI_ID FROM PRODINOUT WHERE PI_INOUTNO=#{code} AND PRODINOUT.COMPANYID = #{companyId}) AND PRODIODETAIL.COMPANYID = #{companyId}
     </delete>
 </mapper>
 

+ 2 - 1
applications/money/money-server/src/main/java/com/usoftchina/saas/money/mapper/FundtransferdetailMapper.java

@@ -1,6 +1,7 @@
 package com.usoftchina.saas.money.mapper;
 
 import com.usoftchina.saas.money.po.Fundtransferdetail;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -12,7 +13,7 @@ public interface FundtransferdetailMapper {
 
     int insertSelective(Fundtransferdetail record);
 
-    List<Fundtransferdetail> selectByPrimaryKey(Integer ftdId);
+    List<Fundtransferdetail> selectByPrimaryKey(@Param("id") Integer ftdId, @Param("companyId") Integer companyId);
 
     int updateByPrimaryKeySelective(Fundtransferdetail record);
 

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

@@ -45,6 +45,27 @@ public class Fundtransfer extends CommonBaseEntity implements Serializable {
 
     private String ftd_paycode;
 
+    private String ft_auditman;
+
+    private Date ft_auditdate;
+
+
+    public String getFt_auditman() {
+        return ft_auditman;
+    }
+
+    public void setFt_auditman(String ft_auditman) {
+        this.ft_auditman = ft_auditman;
+    }
+
+    public Date getFt_auditdate() {
+        return ft_auditdate;
+    }
+
+    public void setFt_auditdate(Date ft_auditdate) {
+        this.ft_auditdate = ft_auditdate;
+    }
+
     public String getFt_code() {
         return ft_code;
     }

+ 30 - 0
applications/money/money-server/src/main/java/com/usoftchina/saas/money/po/Othreceipts.java

@@ -55,6 +55,36 @@ public class Othreceipts extends CommonBaseEntity implements Serializable {
 
     private String ord_remark;
 
+    private String or_auditman;
+
+    private Date or_auditdate;
+
+    public String getOr_auditman() {
+        return or_auditman;
+    }
+
+    public void setOr_auditman(String or_auditman) {
+        this.or_auditman = or_auditman;
+    }
+
+    public Date getOr_auditdate() {
+        return or_auditdate;
+    }
+
+    public void setOr_auditdate(Date or_auditdate) {
+        this.or_auditdate = or_auditdate;
+    }
+
+    @Override
+    public String getCreatorName() {
+        return creatorName;
+    }
+
+    @Override
+    public void setCreatorName(String creatorName) {
+        this.creatorName = creatorName;
+    }
+
     public String getOr_code() {
         return or_code;
     }

+ 18 - 0
applications/money/money-server/src/main/java/com/usoftchina/saas/money/po/Othspendings.java

@@ -56,7 +56,25 @@ public class Othspendings extends CommonBaseEntity implements Serializable {
 
     private String osd_remark;
 
+    private String os_auditman;
 
+    private Date os_auditdate;
+
+    public String getOs_auditman() {
+        return os_auditman;
+    }
+
+    public void setOs_auditman(String os_auditman) {
+        this.os_auditman = os_auditman;
+    }
+
+    public Date getOs_auditdate() {
+        return os_auditdate;
+    }
+
+    public void setOs_auditdate(Date os_auditdate) {
+        this.os_auditdate = os_auditdate;
+    }
 
     public String getOs_code() {
         return os_code;

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

@@ -83,6 +83,25 @@ public class Paybalance extends CommonBaseEntity implements Serializable {
 
     private Double pbd_nowbalance;
 
+    private Date pb_auditdate;
+
+    private String pb_auditman;
+
+    public Date getPb_auditdate() {
+        return pb_auditdate;
+    }
+
+    public void setPb_auditdate(Date pb_auditdate) {
+        this.pb_auditdate = pb_auditdate;
+    }
+
+    public String getPb_auditman() {
+        return pb_auditman;
+    }
+
+    public void setPb_auditman(String pb_auditman) {
+        this.pb_auditman = pb_auditman;
+    }
 
     public Date getUpdatedate() {
         return updatedate;

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

@@ -83,8 +83,25 @@ public class Recbalance extends CommonBaseEntity implements Serializable {
 
     private Double rbd_nowbalance;
 
+    private String rb_auditman;
 
+    private Date rb_auditdate;
 
+    public String getRb_auditman() {
+        return rb_auditman;
+    }
+
+    public void setRb_auditman(String rb_auditman) {
+        this.rb_auditman = rb_auditman;
+    }
+
+    public Date getRb_auditdate() {
+        return rb_auditdate;
+    }
+
+    public void setRb_auditdate(Date rb_auditdate) {
+        this.rb_auditdate = rb_auditdate;
+    }
 
     public Date getUpdatedate() {
         return updatedate;

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

@@ -104,6 +104,7 @@ public class FundtransferServiceImpl extends CommonBaseServiceImpl<FundtransferM
         DocBaseDTO docBaseDTO = this.insert(fundtran);
         Long id = docBaseDTO.getId();
 
+
         //取从表金额更新中间表、资金账号表
         List<Fundtransferdetail> fundtransferdetailList = fundtran.getItems();
         Iterator isList = fundtransferdetailList.iterator();
@@ -145,24 +146,33 @@ public class FundtransferServiceImpl extends CommonBaseServiceImpl<FundtransferM
             Double bk_amount = fundtransferdetail.getFtd_nowbalance();
             //付款方
             Bankinformation bankinformation = bankinformationMapper.selectByPrimaryKey(bk_id);
-            Double beginamount = bankinformation.getBk_beginamount();
+            Double beginamount = bankinformation.getBk_beginamount() == null ? new Double(0) : bankinformation.getBk_beginamount();
+//            if (beginamount < bk_amount){
+//                throw new BizException(500, BizExceptionCode.BANK_AMOUNT_NOTENOUGH.getMessage());
+//            }
             Double spending = bankinformation.getBk_spending() == null ? new Double(0) : bankinformation.getBk_spending();
             Double incomme = bankinformation.getBk_income() == null ? new Double(0) : bankinformation.getBk_income();
-            bankinformation.setBk_thisamount(beginamount + incomme - spending - bk_amount);
-            bankinformation.setBk_income(incomme);
-            bankinformation.setBk_spending(spending + bk_amount);
+            Bankinformation newbankinformation = new Bankinformation();
+            newbankinformation.setBk_thisamount(beginamount + incomme - (spending + bk_amount));
+            newbankinformation.setBk_income(incomme);
+            newbankinformation.setBk_spending(spending + bk_amount);
+            newbankinformation.setId(bankinformation.getId());
+            newbankinformation.setCompanyId(BaseContextHolder.getCompanyId());
+            bankinformationMapper.updateByPrimaryKeySelective(newbankinformation);
 
             //收款方
             Bankinformation inbankinformation = bankinformationMapper.selectByPrimaryKey(bk_inid);
-            Double inbeginamount = inbankinformation.getBk_beginamount();
+            Double inbeginamount = inbankinformation.getBk_beginamount()== null ? new Double(0) : inbankinformation.getBk_beginamount();
             Double inspending = inbankinformation.getBk_spending() == null ? new Double(0) : inbankinformation.getBk_spending();
             Double inincomme = inbankinformation.getBk_income() == null ? new Double(0) : inbankinformation.getBk_income();
-            inbankinformation.setBk_thisamount(inbeginamount + inincomme - inspending + bk_amount);
-            inbankinformation.setBk_income(inincomme + bk_amount);
-            inbankinformation.setBk_spending(inspending);
+            Bankinformation newinbankinformation = new Bankinformation();
+            newinbankinformation.setBk_thisamount(inbeginamount + (inincomme + bk_amount) - inspending );
+            newinbankinformation.setBk_income(inincomme + bk_amount);
+            newinbankinformation.setBk_spending(inspending);
+            newinbankinformation.setId(inbankinformation.getId());
+            newinbankinformation.setCompanyId(BaseContextHolder.getCompanyId());
+            bankinformationMapper.updateByPrimaryKeySelective(newinbankinformation);
 
-            bankinformationMapper.updateByPrimaryKeySelective(bankinformation);
-            bankinformationMapper.updateByPrimaryKeySelective(inbankinformation);
         }
         DocBaseDTO baseDTO = getBaseDTOById(id);
         //日志记录
@@ -184,7 +194,7 @@ public class FundtransferServiceImpl extends CommonBaseServiceImpl<FundtransferM
 
         //资金
         //取从表金额
-        List<Fundtransferdetail> fundtransferdetailList = fundtransferdetailMapper.selectByPrimaryKey(id);
+        List<Fundtransferdetail> fundtransferdetailList = fundtransferdetailMapper.selectByPrimaryKey(id, Math.toIntExact(BaseContextHolder.getCompanyId()));
         Iterator isList = fundtransferdetailList.iterator();
         while (isList.hasNext()){
             Fundtransferdetail fundtransferdetail = (Fundtransferdetail) isList.next();
@@ -202,24 +212,30 @@ public class FundtransferServiceImpl extends CommonBaseServiceImpl<FundtransferM
             Double bk_amount = fundtransferdetail.getFtd_nowbalance();
             //付款方
             Bankinformation bankinformation = bankinformationMapper.selectByPrimaryKey(bk_id);
-            Double beginamount = bankinformation.getBk_beginamount();
+            Double beginamount = bankinformation.getBk_beginamount()== null ? new Double(0) : bankinformation.getBk_beginamount();
             Double spending = bankinformation.getBk_spending() == null ? new Double(0) : bankinformation.getBk_spending();
             Double incomme = bankinformation.getBk_income() == null ? new Double(0) : bankinformation.getBk_income();
-            bankinformation.setBk_thisamount(beginamount + incomme - spending + bk_amount);
-            bankinformation.setBk_income(incomme);
-            bankinformation.setBk_spending(spending - bk_amount);
+            Bankinformation newbankinformation = new Bankinformation();
+            newbankinformation.setBk_thisamount(beginamount + incomme - (spending - bk_amount));
+            newbankinformation.setBk_income(incomme);
+            newbankinformation.setBk_spending(spending - bk_amount);
+            newbankinformation.setId(Long.valueOf(bk_id));
+            newbankinformation.setCompanyId(BaseContextHolder.getCompanyId());
 
             //收款方
             Bankinformation inbankinformation = bankinformationMapper.selectByPrimaryKey(bk_inid);
-            Double inbeginamount = inbankinformation.getBk_beginamount();
+            Double inbeginamount = inbankinformation.getBk_beginamount()== null ? new Double(0) : inbankinformation.getBk_beginamount();
             Double inspending = inbankinformation.getBk_spending() == null ? new Double(0) : inbankinformation.getBk_spending();
             Double inincomme = inbankinformation.getBk_income() == null ? new Double(0) : inbankinformation.getBk_income();
-            inbankinformation.setBk_thisamount(inbeginamount + inincomme - inspending - bk_amount);
-            inbankinformation.setBk_income(inincomme - bk_amount);
-            inbankinformation.setBk_spending(inspending);
-
-            bankinformationMapper.updateByPrimaryKeySelective(bankinformation);
-            bankinformationMapper.updateByPrimaryKeySelective(inbankinformation);
+            Bankinformation newinbankinformation = new Bankinformation();
+            newinbankinformation.setBk_thisamount(inbeginamount + (inincomme-bk_amount) - inspending );
+            newinbankinformation.setBk_income(inincomme-bk_amount);
+            newinbankinformation.setBk_spending(inspending);
+            newinbankinformation.setId(Long.valueOf(bk_inid));
+            newinbankinformation.setCompanyId(BaseContextHolder.getCompanyId());
+
+            bankinformationMapper.updateByPrimaryKeySelective(newbankinformation);
+            bankinformationMapper.updateByPrimaryKeySelective(newinbankinformation);
         }
 
         DocBaseDTO baseDTO = getBaseDTOById(Long.valueOf(id));
@@ -283,7 +299,7 @@ public class FundtransferServiceImpl extends CommonBaseServiceImpl<FundtransferM
     public Fundtran select(int id) {
         Fundtran fundtran = new Fundtran();
         fundtran.setMain(fundtransferMapper.selectByPrimaryKey(id));
-        fundtran.setItems(fundtransferdetailMapper.selectByPrimaryKey(id));
+        fundtran.setItems(fundtransferdetailMapper.selectByPrimaryKey(id, Math.toIntExact(BaseContextHolder.getCompanyId())));
         return fundtran;
     }
 
@@ -314,9 +330,13 @@ public class FundtransferServiceImpl extends CommonBaseServiceImpl<FundtransferM
             throw new BizException(BizExceptionCode.NULL_CODE);
         }
         Long companyId = BaseContextHolder.getCompanyId();
-        Integer count = "0".equals(String.valueOf(id)) ? fundtransferMapper.validateCodeWhenInsert(code, companyId) :
-                fundtransferMapper.validateCodeWhenUpdate(code, id, companyId);
-        return maxnumberService.pushMaxnubmer(count, code, BillCodeSeq.FUNDTRANSFER.getCaller()).getData();
+        String codeString = null;
+        synchronized(FundtransferServiceImpl.class) {
+            Integer count = "0".equals(String.valueOf(id)) ? fundtransferMapper.validateCodeWhenInsert(code, companyId) :
+                    fundtransferMapper.validateCodeWhenUpdate(code, id, companyId);
+            codeString = maxnumberService.pushMaxnubmer(count, code, BillCodeSeq.FUNDTRANSFER.getCaller()).getData();
+        }
+        return codeString;
     }
 
     private List<Fundtransfer> getListByMode(ListReqDTO req) {

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

@@ -316,9 +316,13 @@ public class OthreceiptsServiceImpl extends CommonBaseServiceImpl<OthreceiptsMap
             throw new BizException(BizExceptionCode.NULL_CODE);
         }
         Long companyId = BaseContextHolder.getCompanyId();
-        Integer count = "0".equals(String.valueOf(id)) ? othreceiptsMapper.validateCodeWhenInsert(code, companyId) :
-                othreceiptsMapper.validateCodeWhenUpdate(code, id, companyId);
-        return maxnumberService.pushMaxnubmer(count, code, BillCodeSeq.OTHRECEIPTS.getCaller()).getData();
+        String codeString = null;
+        synchronized(OthreceiptsServiceImpl.class) {
+            Integer count = "0".equals(String.valueOf(id)) ? othreceiptsMapper.validateCodeWhenInsert(code, companyId) :
+                    othreceiptsMapper.validateCodeWhenUpdate(code, id, companyId);
+            codeString = maxnumberService.pushMaxnubmer(count, code, BillCodeSeq.OTHRECEIPTS.getCaller()).getData();
+        }
+        return codeString;
     }
 
     private List<Othreceipts> getListByMode(ListReqDTO req) {

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

@@ -163,7 +163,10 @@ public class OthspendingsServiceImpl extends CommonBaseServiceImpl<OthspendingsM
         Double bk_amount = othspendings.getOs_amount();
         //付款方
         Bankinformation bankinformation = bankinformationMapper.selectByPrimaryKey(bk_id);
-        Double beginamount = bankinformation.getBk_beginamount();
+        Double beginamount = bankinformation.getBk_beginamount() == null ? new Double(0) : bankinformation.getBk_beginamount();
+//        if (beginamount < bk_amount){
+//            throw new BizException(500, BizExceptionCode.BANK_AMOUNT_NOTENOUGH.getMessage());
+//        }
         Double spending = bankinformation.getBk_spending() == null ? new Double(0) : bankinformation.getBk_spending();
         Double incomme = bankinformation.getBk_income() == null ? new Double(0) : bankinformation.getBk_income();
         bankinformation.setBk_thisamount(beginamount + incomme - spending - bk_amount);
@@ -341,9 +344,13 @@ public class OthspendingsServiceImpl extends CommonBaseServiceImpl<OthspendingsM
             throw new BizException(BizExceptionCode.NULL_CODE);
         }
         Long companyId = BaseContextHolder.getCompanyId();
-        Integer count = "0".equals(String.valueOf(id)) ? othspendingsMapper.validateCodeWhenInsert(code, companyId) :
-                othspendingsMapper.validateCodeWhenUpdate(code, id, companyId);
-        return maxnumberService.pushMaxnubmer(count, code, BillCodeSeq.OTHSPENDINGS.getCaller()).getData();
+        String codeString = null;
+        synchronized(OthspendingsServiceImpl.class) {
+            Integer count = "0".equals(String.valueOf(id)) ? othspendingsMapper.validateCodeWhenInsert(code, companyId) :
+                    othspendingsMapper.validateCodeWhenUpdate(code, id, companyId);
+            codeString = maxnumberService.pushMaxnubmer(count, code, BillCodeSeq.OTHSPENDINGS.getCaller()).getData();
+        }
+        return codeString;
     }
 
     private List<Othspendings> getListByMode(ListReqDTO req) {

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

@@ -138,24 +138,28 @@ public class PaybalanceServiceImpl extends CommonBaseServiceImpl<PaybalanceMappe
             }
             //本次核销金额不能大于未核销金额
             if(nowbalance>namount){
-                throw new BizException(500, BizExceptionCode.PAYBALANCE_OUTNOWBALANCE.getMessage());
+                throw new BizException(BizExceptionCode.PAYBALANCE_OUTNOWBALANCE);
             }
             //单据金额
             Double amount = detail.getPbd_amount();
             if(amount>0 && nowbalance<0){
-                String error = "单据类型为" + detail.getPbd_slkind() + "的单据,核销金额必须为正数";
-                throw new BizException(500, error);
+                String msg = BizExceptionCode.PAYBALANCE_NOWAMOUNT_POSITIVE.getMessage();
+                int code = BizExceptionCode.PAYBALANCE_NOWAMOUNT_POSITIVE.getCode();
+                String error = String.format(msg, detail.getPbd_slkind());
+                throw new BizException(code, error);
             }
             if(amount<0 && nowbalance>0){
-                String error = "单据类型为" + detail.getPbd_slkind() + "的单据,核销金额必须为负数";
-                throw new BizException(500, error);
+                String msg = BizExceptionCode.PAYBALANCE_NOWAMOUNT_NEGATIVE.getMessage();
+                int code = BizExceptionCode.PAYBALANCE_NOWAMOUNT_NEGATIVE.getCode();
+                String error = String.format(msg, detail.getPbd_slkind());
+                throw new BizException(code, error);
             }
         }
         //不能选择重复的源单
         for  ( int  i  =   0 ; i  <  paybalancedetail.size()  -   1 ; i ++ )  {
             for  ( int  j  =  paybalancedetail.size()  -   1 ; j  >  i; j -- )  {
                 if  (paybalancedetail.get(j).getPbd_slcode().equals(paybalancedetail.get(i).getPbd_slcode()))  {
-                    throw new BizException(500, BizExceptionCode.PAYBALANCE_UNIQUESOURCECODE.getMessage());
+                    throw new BizException(BizExceptionCode.PAYBALANCE_UNIQUESOURCECODE);
                 }
             }
         }
@@ -458,9 +462,13 @@ public class PaybalanceServiceImpl extends CommonBaseServiceImpl<PaybalanceMappe
             throw new BizException(BizExceptionCode.NULL_CODE);
         }
         Long companyId = BaseContextHolder.getCompanyId();
-        Integer count = "0".equals(String.valueOf(id)) ? paybalanceMapper.validateCodeWhenInsert(code, companyId) :
-                paybalanceMapper.validateCodeWhenUpdate(code, id, companyId);
-        return maxnumberService.pushMaxnubmer(count, code, BillCodeSeq.PAYBALANCE.getCaller()).getData();
+        String codeString = null;
+        synchronized(PaybalanceServiceImpl.class) {
+            Integer count = "0".equals(String.valueOf(id)) ? paybalanceMapper.validateCodeWhenInsert(code, companyId) :
+                    paybalanceMapper.validateCodeWhenUpdate(code, id, companyId);
+            codeString = maxnumberService.pushMaxnubmer(count, code, BillCodeSeq.PAYBALANCE.getCaller()).getData();
+        }
+        return codeString;
     }
 
     private List<Paybalance> getListByMode(ListReqDTO req) {

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

@@ -141,12 +141,16 @@ public class RecbalanceServiceImpl extends CommonBaseServiceImpl<RecbalanceMappe
             //单据金额
             Double amount = detail.getRbd_amount();
             if(amount>0 && nowbalance<0){
-                String error = "单据类型为" + detail.getRbd_slkind() + "的单据,核销金额必须为正数";
+                String msg = BizExceptionCode.PAYBALANCE_NOWAMOUNT_POSITIVE.getMessage();
+                int code = BizExceptionCode.PAYBALANCE_NOWAMOUNT_POSITIVE.getCode();
+                String error = String.format(msg, detail.getRbd_slkind());
                 throw new BizException(500, error);
             }
             if(amount<0 && nowbalance>0){
-                String error = "单据类型为" + detail.getRbd_slkind() + "的单据,核销金额必须为负数";
-                throw new BizException(500, error);
+                String msg = BizExceptionCode.PAYBALANCE_NOWAMOUNT_POSITIVE.getMessage();
+                int code = BizExceptionCode.PAYBALANCE_NOWAMOUNT_POSITIVE.getCode();
+                String error = String.format(msg, detail.getRbd_slkind());
+                throw new BizException(code, error);
             }
         }
         //不能选择重复的源单
@@ -463,9 +467,13 @@ public class RecbalanceServiceImpl extends CommonBaseServiceImpl<RecbalanceMappe
             throw new BizException(BizExceptionCode.NULL_CODE);
         }
         Long companyId = BaseContextHolder.getCompanyId();
-        Integer count = "0".equals(String.valueOf(id)) ? recbalanceMapper.validateCodeWhenInsert(code, companyId) :
-                recbalanceMapper.validateCodeWhenUpdate(code, id, companyId);
-        return maxnumberService.pushMaxnubmer(count, code, BillCodeSeq.RECBALANCE.getCaller()).getData();
+        String codeString = null;
+        synchronized(RecbalanceServiceImpl.class) {
+            Integer count = "0".equals(String.valueOf(id)) ? recbalanceMapper.validateCodeWhenInsert(code, companyId) :
+                    recbalanceMapper.validateCodeWhenUpdate(code, id, companyId);
+            codeString = maxnumberService.pushMaxnubmer(count, code, BillCodeSeq.RECBALANCE.getCaller()).getData();
+        }
+        return codeString;
     }
 
     private List<Recbalance> getListByMode(ListReqDTO req) {

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

@@ -28,6 +28,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
 
+import javax.print.DocFlavor;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.Iterator;
@@ -102,7 +103,7 @@ public class VerificationServiceImpl extends CommonBaseServiceImpl<VerificationM
     @Override
     public DocSavedDTO saveFormData(VerificationFormDTO formdata) {
         if (null == formdata || null == formdata.getMain()){
-            throw new BizException(500, "数据为空,请填写后再保存");
+            throw new BizException(BizExceptionCode.EMPTY_DATA);
         }
         //公司ID
         Long companyId = BaseContextHolder.getCompanyId();
@@ -277,7 +278,9 @@ public class VerificationServiceImpl extends CommonBaseServiceImpl<VerificationM
         }
         String code = verificationMapper.validateResAudit(id);
         if (null != code) {
-            throw new BizException(500, "单据:" + code + " 未审核,无法反审核");
+            String msg = BizExceptionCode.BEFORE_UNAUDIT.getMessage();
+            int errCode = BizExceptionCode.BEFORE_UNAUDIT.getCode();
+            throw new BizException(errCode, String.format(msg, code));
         }
         Verification verification = new Verification();
         //生成更新对象

+ 1 - 1
applications/money/money-server/src/main/resources/mapper/BankinformationMapper.xml

@@ -33,7 +33,7 @@
   <sql id="Base_Column_List" >
     bk_id, bk_bankcode, bk_bankname, bk_date, bk_type, bk_beginamount, bk_thisamount, 
     bk_status, bk_statuscode, bk_recorderid, bk_recorder, bk_recorddate, bk_ym, companyid, 
-    updaterId, updateTime, bk_text1, bk_text2, bk_text3, bk_text4, bk_text5, bk_remark
+    updaterId, updateTime, bk_text1, bk_text2, bk_text3, bk_text4, bk_text5, bk_spending,  bk_income
   </sql>
   <sql id="Blob_Column_List" >
     bk_remark

+ 19 - 1
applications/money/money-server/src/main/resources/mapper/FundtransferMapper.xml

@@ -24,11 +24,17 @@
     <result column="ftd_nowbalance" property="ftd_nowbalance" jdbcType="DOUBLE" />
     <result column="ftd_paymethod" property="ftd_paymethod" jdbcType="VARCHAR" />
     <result column="ftd_paycode" property="ftd_paycode" jdbcType="VARCHAR" />
+    <result column="creatorName" property="creatorName" jdbcType="VARCHAR" />
+    <result column="updaterName" property="updaterName" jdbcType="VARCHAR" />
+    <result column="ft_auditman" property="ft_auditman" jdbcType="VARCHAR" />
+    <result column="ft_auditdate" property="ft_auditdate" jdbcType="TIMESTAMP" />
+    <result column="createTime" property="createTime" jdbcType="TIMESTAMP" />
   </resultMap>
   <sql id="Base_Column_List" >
     ft_id, ft_code, ft_date, ft_recorderid, ft_recorder, ft_recorddate, ft_status, ft_statuscode, 
     ft_remark, fundtransfer.companyId, fundtransfer.updaterId, fundtransfer.updatedate,
-    ft_text1, ft_text2, ft_text3, ft_text4, ft_text5
+    ft_text1, ft_text2, ft_text3, ft_text4, ft_text5, fundtransfer.creatorName, fundtransfer.createTime,
+    ft_auditman, ft_auditdate
   </sql>
   <sql id="Detail_Column_List" >
     ftd_bankname,ftd_inbankname,ftd_nowbalance,ftd_paymethod,ftd_paycode
@@ -109,6 +115,12 @@
       <if test="ft_text5 != null" >
         ft_text5,
       </if>
+      <if test="creatorName != null" >
+        creatorName,
+      </if>
+      <if test="createTime != null" >
+        createTime,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides="," >
       <if test="ft_code != null" >
@@ -154,6 +166,12 @@
       <if test="ft_text5 != null" >
         #{ft_text5,jdbcType=VARCHAR},
       </if>
+      <if test="creatorName != null" >
+        #{creatorName,jdbcType=VARCHAR},
+      </if>
+      <if test="createTime != null" >
+        #{createTime,jdbcType=TIMESTAMP},
+      </if>
     </trim>
     <selectKey resultType="Long" keyProperty="id" order="AFTER">
       SELECT LAST_INSERT_ID()

+ 1 - 1
applications/money/money-server/src/main/resources/mapper/FundtransferdetailMapper.xml

@@ -35,7 +35,7 @@
     select 
     <include refid="Base_Column_List" />
     from fundtransferdetail
-    where ftd_ftid = #{id,jdbcType=INTEGER}
+    where ftd_ftid = #{id,jdbcType=INTEGER} and companyId = #{companyId}
   </select>
 
   <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >

+ 18 - 1
applications/money/money-server/src/main/resources/mapper/OthreceiptsMapper.xml

@@ -29,12 +29,17 @@
     <result column="ord_type" property="ord_type" jdbcType="VARCHAR" />
     <result column="ord_nowbalance" property="ord_nowbalance" jdbcType="DOUBLE" />
     <result column="ord_remark" property="ord_remark" jdbcType="VARCHAR" />
+    <result column="creatorName" property="creatorName" jdbcType="VARCHAR" />
+    <result column="updaterName" property="updaterName" jdbcType="VARCHAR" />
+    <result column="or_auditman" property="or_auditman" jdbcType="VARCHAR" />
+    <result column="or_auditdate" property="or_auditdate" jdbcType="TIMESTAMP" />
+    <result column="createTime" property="createTime" jdbcType="TIMESTAMP" />
   </resultMap>
   <sql id="Base_Column_List" >
     or_id, or_code, or_date, or_custid, or_custcode, or_custname, or_bankcode, or_bankid, 
     or_bankname, or_amount, or_recorderid, or_recorder, or_recorddate, or_status, or_statuscode, 
     or_remark, Othreceipts.companyId, Othreceipts.updaterId, Othreceipts.updatedate, or_text1,
-    or_text2, or_text3, or_text4, or_text5
+    or_text2, or_text3, or_text4, or_text5, othreceipts.creatorName, othreceipts.createTime, or_auditman, or_auditdate
   </sql>
   <sql id="Detail_Column_List" >
     ord_type,ord_nowbalance,ord_remark
@@ -143,6 +148,12 @@
       <if test="or_text5 != null" >
         or_text5,
       </if>
+      <if test="creatorName != null" >
+        creatorName,
+      </if>
+      <if test="createTime != null" >
+        createTime,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides="," >
       <if test="or_code != null" >
@@ -209,6 +220,12 @@
       <if test="or_text5 != null" >
         #{or_text5,jdbcType=VARCHAR},
       </if>
+      <if test="creatorName != null" >
+        #{creatorName,jdbcType=VARCHAR},
+      </if>
+      <if test="createTime != null" >
+        #{createTime,jdbcType=TIMESTAMP},
+      </if>
     </trim>
     <selectKey resultType="Long" keyProperty="id" order="AFTER">
       SELECT LAST_INSERT_ID()

+ 23 - 7
applications/money/money-server/src/main/resources/mapper/OthspendingsMapper.xml

@@ -29,13 +29,17 @@
     <result column="osd_type" property="osd_type" jdbcType="VARCHAR" />
     <result column="osd_nowbalance" property="osd_nowbalance" jdbcType="DOUBLE" />
     <result column="osd_remark" property="osd_remark" jdbcType="VARCHAR" />
+    <result column="creatorName" property="creatorName" jdbcType="VARCHAR" />
+    <result column="createTime" property="createTime" jdbcType="TIMESTAMP" />
+    <result column="os_auditman" property="os_auditman" jdbcType="VARCHAR" />
+    <result column="os_auditdate" property="os_auditdate" jdbcType="TIMESTAMP" />
   </resultMap>
   <sql id="Base_Column_List" >
     os_id, os_code, os_date, os_vendid, os_vendcode, os_vendname, os_bankid, os_bankcode, 
     os_bankname, os_amount, os_recorderid, os_recorder, os_recorddate, os_status, os_statuscode, 
-    os_remark, companyId, updaterId,
-    updatedate, os_text1, os_text2, os_text3, os_text4,
-    os_text5
+    os_remark, othspendings.companyId, othspendings.updaterId,
+    othspendings.updatedate, os_text1, os_text2, os_text3, os_text4,
+    os_text5,othspendings.creatorName, othspendings.createTime, os_auditman, os_auditdate
   </sql>
   <sql id="Detail_Column_List" >
     osd_type,osd_nowbalance,osd_remark
@@ -138,6 +142,12 @@
       <if test="os_text5 != null" >
         os_text5,
       </if>
+      <if test="creatorName != null" >
+        creatorName,
+      </if>
+      <if test="createTime != null" >
+        createTime,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides="," >
       <if test="os_code != null" >
@@ -167,13 +177,13 @@
       <if test="os_amount != null" >
         #{os_amount,jdbcType=DOUBLE},
       </if>
-      now(),
+      <if test="os_recorderid != null" >
+        #{os_recorderid,jdbcType=INTEGER},
+      </if>
       <if test="os_recorder != null" >
         #{os_recorder,jdbcType=VARCHAR},
       </if>
-      <if test="os_recorddate != null" >
-        #{os_recorddate,jdbcType=TIMESTAMP},
-      </if>
+      now(),
       <if test="os_status != null" >
         #{os_status,jdbcType=VARCHAR},
       </if>
@@ -204,6 +214,12 @@
       <if test="os_text5 != null" >
         #{os_text5,jdbcType=VARCHAR},
       </if>
+      <if test="creatorName != null" >
+        #{creatorName,jdbcType=VARCHAR},
+      </if>
+      <if test="createTime != null" >
+        #{createTime,jdbcType=TIMESTAMP},
+      </if>
     </trim>
     <selectKey resultType="Long" keyProperty="id" order="AFTER">
       SELECT LAST_INSERT_ID()

+ 18 - 1
applications/money/money-server/src/main/resources/mapper/PaybalanceMapper.xml

@@ -40,6 +40,10 @@
     <result column="pbd_sldate" jdbcType="TIMESTAMP" property="pbd_sldate" />
     <result column="pbd_amount" jdbcType="DOUBLE" property="pbd_amount" />
     <result column="pbd_nowbalance" jdbcType="DOUBLE" property="pbd_nowbalance" />
+    <result column="creatorName" property="creatorName" jdbcType="VARCHAR" />
+    <result column="createTime" property="createTime" jdbcType="TIMESTAMP" />
+    <result column="pb_auditdate" property="pb_auditdate" jdbcType="TIMESTAMP" />
+    <result column="pb_auditman" property="pb_auditman" jdbcType="VARCHAR" />
   </resultMap>
   <sql id="Example_Where_Clause">
     <where>
@@ -103,7 +107,8 @@
     pb_id, pb_code, pb_kind, pb_date, pb_vendid, pb_vendcode, pb_vendname, pb_manname, 
     pb_pdamount, pb_pbdamount, pb_preamount, pb_discounts, pb_havebalance, pb_recorderid, 
     pb_recorder, pb_recorddate, pb_status, pb_statuscode, pb_remark, paybalance.companyId,
-    paybalance.updaterId,paybalance.updatedate, pb_text1, pb_text2, pb_text3, pb_text4, pb_text5
+    paybalance.updaterId,paybalance.updatedate, pb_text1, pb_text2, pb_text3, pb_text4, pb_text5, paybalance.creatorName,
+    paybalance.createTime, pb_auditdate, pb_auditman
   </sql>
   <sql id="left_Column_List">
     ve_leftamount
@@ -232,6 +237,12 @@
       <if test="pb_text5 != null">
         pb_text5,
       </if>
+      <if test="creatorName != null" >
+        creatorName,
+      </if>
+      <if test="createTime != null" >
+        createTime,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="pb_code != null">
@@ -307,6 +318,12 @@
       <if test="pb_text5 != null">
         #{pb_text5,jdbcType=VARCHAR},
       </if>
+      <if test="creatorName != null" >
+        #{creatorName,jdbcType=VARCHAR},
+      </if>
+      <if test="createTime != null" >
+        #{createTime,jdbcType=TIMESTAMP},
+      </if>
     </trim>
     <selectKey resultType="Long" keyProperty="id" order="AFTER">
       SELECT LAST_INSERT_ID()

+ 18 - 1
applications/money/money-server/src/main/resources/mapper/RecbalanceMapper.xml

@@ -40,6 +40,10 @@
     <result column="rbd_sldate" jdbcType="TIMESTAMP" property="rbd_sldate" />
     <result column="rbd_amount" jdbcType="DOUBLE" property="rbd_amount" />
     <result column="rbd_nowbalance" jdbcType="DOUBLE" property="rbd_nowbalance" />
+    <result column="creatorName" property="creatorName" jdbcType="VARCHAR" />
+    <result column="createTime" property="createTime" jdbcType="TIMESTAMP" />
+    <result column="rb_auditman" property="rb_auditman" jdbcType="VARCHAR" />
+    <result column="rb_auditdate" property="rb_auditdate" jdbcType="TIMESTAMP" />
   </resultMap>
   <sql id="Example_Where_Clause">
     <where>
@@ -103,7 +107,8 @@
     rb_id, rb_code, rb_kind, rb_date, rb_custid, rb_custcode, rb_custname, rb_manname,
     rb_rdamount, rb_rbdamount, rb_preamount, rb_discounts, rb_havebalance, rb_recorderid,
     rb_recorder, rb_recorddate, rb_status, rb_statuscode, rb_remark, recbalance.companyId,
-    recbalance.updaterId,recbalance.updatedate, rb_text1, rb_text2, rb_text3, rb_text4, rb_text5
+    recbalance.updaterId,recbalance.updatedate, rb_text1, rb_text2, rb_text3, rb_text4, rb_text5,
+    recbalance.creatorName, recbalance.createTime, rb_auditman, rb_auditdate
   </sql>
   <sql id="left_Column_List">
     cu_leftamount
@@ -278,6 +283,12 @@
       <if test="rb_text5 != null">
         rb_text5,
       </if>
+      <if test="creatorName != null" >
+        creatorName,
+      </if>
+      <if test="createTime != null" >
+        createTime,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="rb_code != null">
@@ -353,6 +364,12 @@
       <if test="rb_text5 != null">
         #{rb_text5,jdbcType=VARCHAR},
       </if>
+      <if test="creatorName != null" >
+        #{creatorName,jdbcType=VARCHAR},
+      </if>
+      <if test="createTime != null" >
+        #{createTime,jdbcType=TIMESTAMP},
+      </if>
     </trim>
     <selectKey resultType="Long" keyProperty="id" order="AFTER">
       SELECT LAST_INSERT_ID()

+ 8 - 2
applications/purchase/purchase-dto/src/main/java/com/usoftchina/saas/purchase/dto/ProdInOutDTO.java

@@ -35,13 +35,15 @@ public class ProdInOutDTO extends CommonBaseDTO implements Serializable {
 
     private String pi_pucode;
 
-    private Integer pi_said;
+    private Long pi_said;
 
     private String pi_sacode;
 
     private Double pi_total;
 
-    private Integer pi_recordmanid;
+    private Double pi_nettotal;
+
+    private Long pi_recordmanid;
 
     private String pi_recordman;
 
@@ -75,4 +77,8 @@ public class ProdInOutDTO extends CommonBaseDTO implements Serializable {
 
     private Long pi_ioid;
 
+    private String pi_macode;
+
+    private Long pi_maid;
+
 }

+ 5 - 0
applications/purchase/purchase-dto/src/main/java/com/usoftchina/saas/purchase/dto/PurchaseDTO.java

@@ -64,4 +64,9 @@ public class PurchaseDTO extends CommonBaseDTO implements Serializable{
     private String pu_text5;
 
     private String pu_shipaddresscode;
+
+    private String pu_auditman;
+
+    private Date pu_auditdate;
+
 }

+ 1 - 1
applications/purchase/purchase-dto/src/main/java/com/usoftchina/saas/purchase/dto/PurchaseDetailDTO.java

@@ -12,7 +12,7 @@ import java.util.Date;
  * @date 2018/10/9
  */
 @Data
-public class PurchaseDetailDTO implements Serializable{
+public class PurchaseDetailDTO extends CommonBaseDTO implements Serializable{
 
     private  Long pd_puid;
 

+ 3 - 1
applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/mapper/ProdInOutMapper.java

@@ -23,5 +23,7 @@ public interface ProdInOutMapper extends CommonBaseMapper<ProdInOut> {
 
     int checkQtyFromPurchase(String pu_code);
 
-    int checkQtyFromProdIn(String pu_code);
+    int checkQtyFromProdIn(Long id);
+
+    void updateCreator(@Param("userId") Long userId,@Param("userName") String userName,@Param("id") Long pi_id);
 }

+ 4 - 0
applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/mapper/PurchaseMapper.java

@@ -14,6 +14,8 @@ public interface PurchaseMapper extends CommonBaseMapper<Purchase>{
 
     Purchase selectByPrimaryKey(Long id);
 
+    int updateByPrimaryKeySelective(Purchase record);
+
     String validateAudit(List<DocBaseDTO> list);
 
     String validateUnAudit(Long id);
@@ -28,4 +30,6 @@ public interface PurchaseMapper extends CommonBaseMapper<Purchase>{
     String selectCodeById(Long id);
 
     Integer checkTurnInstatus(Long id);
+
+    void updateCreator(@Param("userId") Long userId,@Param("userName") String userName,@Param("id") Long pu_id);
 }

+ 9 - 2
applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/po/ProdInOut.java

@@ -8,6 +8,7 @@ import java.util.Date;
 @Data
 public class ProdInOut extends CommonBaseEntity implements Serializable {
 
+
     private String pi_inoutno;
 
     private String pi_class;
@@ -30,13 +31,15 @@ public class ProdInOut extends CommonBaseEntity implements Serializable {
 
     private String pi_pucode;
 
-    private Integer pi_said;
+    private Long pi_said;
 
     private String pi_sacode;
 
     private Double pi_total;
 
-    private Integer pi_recordmanid;
+    private Double pi_nettotal;
+
+    private Long pi_recordmanid;
 
     private String pi_recordman;
 
@@ -70,4 +73,8 @@ public class ProdInOut extends CommonBaseEntity implements Serializable {
 
     private Long pi_ioid;
 
+    private String pi_macode;
+
+    private Long pi_maid;
+
 }

+ 4 - 1
applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/po/Purchase.java

@@ -2,7 +2,6 @@ package com.usoftchina.saas.purchase.po;
 
 import com.usoftchina.saas.base.entity.CommonBaseEntity;
 import lombok.Data;
-import lombok.ToString;
 
 import java.io.Serializable;
 import java.util.Date;
@@ -60,4 +59,8 @@ public class Purchase extends CommonBaseEntity implements Serializable {
 
     private String pu_shipaddresscode;
 
+    private String pu_auditman;
+
+    private Date pu_auditdate;
+
 }

+ 6 - 2
applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/po/PurchaseList.java

@@ -2,7 +2,6 @@ package com.usoftchina.saas.purchase.po;
 
 
 import com.usoftchina.saas.base.entity.CommonBaseEntity;
-import com.usoftchina.saas.document.dto.ProductDTO;
 import lombok.Data;
 
 import java.io.Serializable;
@@ -36,7 +35,6 @@ public class PurchaseList extends CommonBaseEntity implements Serializable {
 
     private Date pu_delivery;
 
-
     private Double pu_taxtotal;
 
     private Double pu_total;
@@ -69,6 +67,10 @@ public class PurchaseList extends CommonBaseEntity implements Serializable {
 
     private String pu_shipaddresscode;
 
+    private Date pu_auditdate;
+
+    private String pu_auditman;
+
     //从表字段
     private Long pd_id;
 
@@ -120,6 +122,8 @@ public class PurchaseList extends CommonBaseEntity implements Serializable {
 
     private String pd_remark;
 
+    private String pd_ordercode;
+
     //private ProductDTO productDTO;
     private Long pr_id;
     private String pr_code;

+ 15 - 15
applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/service/impl/ProdInOutServiceImpl.java

@@ -4,6 +4,7 @@ import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.usoftchina.saas.base.Result;
 import com.usoftchina.saas.base.service.CommonBaseServiceImpl;
+import com.usoftchina.saas.commons.api.CommonService;
 import com.usoftchina.saas.commons.api.MaxnumberService;
 import com.usoftchina.saas.commons.api.MessageLogService;
 import com.usoftchina.saas.commons.dto.BatchDealBaseDTO;
@@ -56,7 +57,8 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
     private WarehouseApi warehouseApi;
     @Autowired
     private MaxnumberService maxnumberService;
-
+    @Autowired
+    private CommonService commonService;
 
 
     @Override
@@ -112,7 +114,7 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
     @Transactional(propagation = Propagation.REQUIRED)
     public DocBaseDTO saveFormData(ProdInOutFormDTO formdata) {
         if (null == formdata || null == formdata.getMain()){
-            throw new BizException(500, "数据为空,请填写后再保存");
+            throw new BizException(BizExceptionCode.EMPTY_DATA);
         }
         //公司ID
         Long companyId = BaseContextHolder.getCompanyId();
@@ -143,10 +145,10 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
         //判断更新与保存动作
         if (StringUtils.isEmpty(pi_id) || "0".equals(pi_id.toString())){
             prodInOut.setCompanyId(companyId);
-            //setCreateInfo(prodInOut);
             //插入操作
             getMapper().insertSelective(prodInOut);
             pi_id = prodInOut.getId();
+            getMapper().updateCreator(userId, userName, pi_id);
             //添加从表传输对象
             for (ProdIODetailDTO item : items) {
                 ProdIODetail detail = BeanMapper.map(item,ProdIODetail.class);
@@ -203,10 +205,7 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
         }
 
         //检查更新后数据是否
-        String pu_code = prodInOut.getPi_pucode();
-        if (!StringUtils.isEmpty(pu_code)){
-            checkUpdateQty(pu_code,pi_class);
-        }
+        checkUpdateQty(pi_id,pi_class);
 
         baseDTO = getBaseDTOById(pi_id,pi_class,pi_inoutno);
         //计算金额,未税单价,未税金额等
@@ -297,7 +296,8 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
                 ProdInOutDTO prodInOutDTO = BeanMapper.map(prodInOut,ProdInOutDTO.class);
                 singleAudit(prodInOutDTO);
             } catch (Exception e) {
-                errorMsg.append("编号:" + base.getCode() + "处理失败," + e.getMessage());
+                String msg = BizExceptionCode.DEAL_FAILED.getMessage();
+                errorMsg.append(String.format(msg, base.getCode(), e.getMessage()));
             }
         }
         return errorMsg.toString();
@@ -349,7 +349,8 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
                 ProdInOutDTO prodInOutDTO = BeanMapper.map(prodInOut,ProdInOutDTO.class);
                 singleUnAudit(prodInOutDTO);
             }catch (Exception e) {
-                errorMsg.append("编号:" + base.getCode() + "处理失败," + e.getMessage());
+                String msg = BizExceptionCode.DEAL_FAILED.getMessage();
+                errorMsg.append(String.format(msg, base.getCode(), e.getMessage()));
             }
         }
         return errorMsg.toString();
@@ -386,12 +387,12 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
         }
     }
 
-    private void checkUpdateQty(String pu_code, String pi_class) {
+    private void checkUpdateQty(Long id, String pi_class) {
         int count = 0;
         if ("采购验退单".equals(pi_class)) {
-            count = getMapper().checkQtyFromProdIn(pu_code);
+            count = getMapper().checkQtyFromProdIn(id);
             if (count>0){
-                throw new BizException(500, "明细行数量超过来源采购验收单明细行数量");
+                throw new BizException(BizExceptionCode.PURCHASE_DETAIL_OVERNUM);
             }
         }
 
@@ -497,12 +498,11 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
                  prodIODetailMapper.updateByPrimaryKeySelective(sourcePid);
              }
          }
-        //更新默认仓库
-//        getDefaultWarehouseByProduct(pi_id);
         //采购验退单相关计算
         calcProdInout(pi_id,"采购验退单");
+        DocBaseDTO baselog = new DocBaseDTO(sourcePi.getId(), sourcePi.getPi_inoutno(), BillCodeSeq.PURCHASEIN.getCaller());
+        messageLogService.customizeLog(baselog, Operation.PURCHASEOUT);
         DocBaseDTO baseDTO = new DocBaseDTO(pi_id, piInoutno, BillCodeSeq.PURCHASEOUT.getName());
-        messageLogService.customizeLog(baseDTO, Operation.PURCHASEOUT);
         return Result.success(baseDTO);
     }
 

+ 24 - 21
applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/service/impl/PurchaseServiceImpl.java

@@ -4,6 +4,7 @@ import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.usoftchina.saas.base.Result;
 import com.usoftchina.saas.base.service.CommonBaseServiceImpl;
+import com.usoftchina.saas.commons.api.CommonService;
 import com.usoftchina.saas.commons.api.MaxnumberService;
 import com.usoftchina.saas.commons.api.MessageLogService;
 import com.usoftchina.saas.commons.dto.BatchDealBaseDTO;
@@ -61,6 +62,9 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
     private MessageLogService messageLogService;
     @Autowired
     private ProdInOutService prodInOutService;
+    @Autowired
+    private CommonService commonService;
+
 
     @Override
     public PageInfo<PurchaseList> getListData(PageRequest page, ListReqDTO req) {
@@ -100,7 +104,7 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
     @Transactional
     public DocBaseDTO saveFormData(PurchaseFormDTO formdata) {
         if (null == formdata || null == formdata.getMain()){
-            throw new BizException(500, "数据为空,请填写后再保存");
+            throw new BizException(BizExceptionCode.EMPTY_DATA);
         }
         //公司ID
         Long companyId = BaseContextHolder.getCompanyId();
@@ -127,12 +131,12 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
         purchase.setPu_code(pu_code);
         //判断更新与保存动作
         if (StringUtils.isEmpty(pu_id) || "0".equals(pu_id.toString())) {
-            //录入人
             purchase.setCompanyId(companyId);
-           // setCreateInfo(purchase);
             //插入操作
             purchaseMapper.insertSelective(purchase);
             pu_id = purchase.getId();
+            //录入人
+            purchaseMapper.updateCreator(userId, userName, pu_id);
             //添加从表传输对象
             for (PurchaseDetailDTO item : items) {
                 PurchaseDetail detail = BeanMapper.map(item, PurchaseDetail.class);
@@ -144,8 +148,6 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
                 detail.setCreatorId(userId);
                 detail.setCreateTime(new Date());
                 detail.setCreatorId(userId);
-                detail.setUpdaterId(userId);
-//                detail.setUpdater(userName);
                 detail.setUpdateTime(new Date());
                 insertDetails.add(detail);
             }
@@ -171,12 +173,10 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
             detail.setPd_code(pu_code);
             detail.setPd_delivery(item.getPd_delivery()==null?purchase.getPu_delivery():item.getPd_delivery());
             detail.setUpdaterId(userId);
-//            detail.setUpdater(userName);
             detail.setUpdateTime(new Date());
             if (StringUtils.isEmpty(detail.getId()) || "0".equals(detail.getId().toString())) {
                 detail.setCompanyId(companyId);
                 detail.setCreatorId(userId);
-//                detail.setCreator(userName);
                 detail.setCreateTime(new Date());
                 insertDetails.add(detail);
             } else {
@@ -242,7 +242,9 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
 
         String validate = purchaseMapper.validateAudit(baseDTOs.getBaseDTOs());
         if (!StringUtils.isEmpty(validate)) {
-            throw new BizException(500, "存在已审核单据,单据编号:" + validate);
+            String msg = BizExceptionCode.PURCHASE_ORDER_HASAUDIT.getMessage();
+            int code = BizExceptionCode.PURCHASE_ORDER_HASAUDIT.getCode();
+            throw new BizException(code, String.format(msg, validate));
         }
         for (DocBaseDTO base : baseDTOs.getBaseDTOs()) {
             singleAudit(base.getId());
@@ -268,7 +270,7 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
         }
         String code = purchaseMapper.validateUnAudit(id);
         if (null != code) {
-            throw new BizException(500, "单据:" + code + " 未审核,无法反审核");
+            throw new BizException(BizExceptionCode.BIZ_UNAUDITED);
         }
         singleUnAudit(id);
     }
@@ -282,7 +284,9 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
 
         String msg = purchaseMapper.validateBatchUnAudit(baseDTOs.getBaseDTOs());
         if (null != msg) {
-            throw new BizException(500, "存在未审核单据,单据编号:" + msg);
+            String message = BizExceptionCode.PURCHASE_ORDER_HASAUDIT.getMessage();
+            int code = BizExceptionCode.PURCHASE_ORDER_HASAUDIT.getCode();
+            throw new BizException(code, String.format(message, msg));
         }
         for (DocBaseDTO base : baseDTOs.getBaseDTOs()) {
             singleUnAudit(base.getId());
@@ -482,32 +486,31 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
                 purchasedetailMapper.updateByPrimaryKeySelective(purchaseDetail);
             }
         }
-        //更新默认仓库
-//        prodInOutService.getDefaultWarehouseByProduct(pi_id);
         //采购验收单相关计算
         prodInOutService.calcProdInout(pi_id,"采购验收单");
+        //日志记录到采购单
+        DocBaseDTO baselog = new DocBaseDTO(purchase.getId(), purchase.getPu_code(), BillCodeSeq.PURCHASE.getCaller());
+        messageLogService.customizeLog(baselog, Operation.PURCHASEIN);
         DocBaseDTO baseDTO = new DocBaseDTO(pi_id, piInoutno, BillCodeSeq.PURCHASEIN.getName());
-        messageLogService.customizeLog(baseDTO, Operation.PURCHASEIN);
         return Result.success(baseDTO);
     }
 
     @Transactional
-    private Result singleAudit(Long id) {
+    public Result singleAudit(Long id) {
         DocBaseDTO docBaseDTO = getBaseDTOById(id);
         Result result = Result.success(docBaseDTO);
         //检查最小包装数
         result.setMessage(purchasedetailMapper.checkzxbzs(id));
+        commonService.commonAudit("purchase", "pu_id=" + id, "pu_status",
+                "pu_statuscode", "pu_auditdate", "pu_auditman");
         Purchase purchase = new Purchase();
         //生成更新对象
         purchase.setId(id);
-        purchase.setPu_status(Status.AUDITED.getDisplay());
-        purchase.setPu_statuscode(Status.AUDITED.name());
         purchase.setPu_acceptstatus(Status.UNTURNIN.getDisplay());
         purchase.setPu_acceptstatuscode(Status.UNAUDITED.name());
         purchase.setUpdateTime(new Date());
         purchase.setUpdaterId(BaseContextHolder.getUserId());
-//        purchase.setUpdater(BaseContextHolder.getUserName());
-       // setUpdateInfo(purchase);
+        getMapper().updateByPrimaryKeySelective(purchase);
         //更新存在字段
         //日志
         messageLogService.audit(docBaseDTO);
@@ -515,7 +518,7 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
     }
 
     @Transactional
-    private void singleUnAudit(Long id) {
+    public void singleUnAudit(Long id) {
         Purchase purchase = new Purchase();
         //检查是否已转验收单
         Integer num = getMapper().checkTurnInstatus(id);
@@ -535,7 +538,7 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
     }
 
     @Transactional
-    private void singleDelete(Long id) {
+    public void singleDelete(Long id) {
         if (null != id) {
             //从表删除
             purchasedetailMapper.deleteByForeignKey(id);
@@ -600,7 +603,7 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
     }
 
     @Transactional
-    private void calcPurchase(Long pu_id) {
+    public void calcPurchase(Long pu_id) {
         purchasedetailMapper.calcPurchase(pu_id);
     }
 

+ 4 - 4
applications/purchase/purchase-server/src/main/resources/mapper/ProdInOutListMapper.xml

@@ -62,11 +62,11 @@
     <result column="pd_status" jdbcType="INTEGER" property="pd_status" />
     <result column="companyid" property="companyId" jdbcType="BIGINT" />
     <result column="updaterId" property="updaterId" jdbcType="INTEGER" />
+    <result column="updaterName" jdbcType="VARCHAR" property="updaterName" />
     <result column="updateTime" property="updateTime" jdbcType="TIMESTAMP" />
-    <!--<result column="updater" jdbcType="VARCHAR" property="updater" />-->
-    <result column="creatorid" property="creatorId" jdbcType="INTEGER"/>
-    <result column="createtime" property="createTime" jdbcType="TIMESTAMP" />
-    <!--<result column="creator" property="creator" jdbcType="VARCHAR" />-->
+    <result column="creatorId" property="creatorId" jdbcType="INTEGER"/>
+    <result column="creatorName" jdbcType="VARCHAR" property="creatorName" />
+    <result column="createTime" property="createTime" jdbcType="TIMESTAMP" />
     <result column="pd_text1" jdbcType="VARCHAR" property="pd_text1" />
     <result column="pd_text2" jdbcType="VARCHAR" property="pd_text2" />
     <result column="pd_text3" jdbcType="VARCHAR" property="pd_text3" />

+ 23 - 4
applications/purchase/purchase-server/src/main/resources/mapper/ProdInOutMapper.xml

@@ -26,8 +26,10 @@
     <result column="pi_printstatuscode" jdbcType="VARCHAR" property="pi_printstatuscode" />
     <result column="companyid" property="companyId" jdbcType="BIGINT" />
     <result column="updaterId" property="updaterId" jdbcType="INTEGER" />
+    <result column="updaterName" jdbcType="VARCHAR" property="updaterName" />
     <result column="updateTime" property="updateTime" jdbcType="TIMESTAMP" />
     <result column="creatorid" property="creatorId" jdbcType="INTEGER"/>
+    <result column="creatorName" jdbcType="VARCHAR" property="creatorName" />
     <result column="createtime" property="createTime" jdbcType="TIMESTAMP" />
     <result column="pi_text1" jdbcType="VARCHAR" property="pi_text1" />
     <result column="pi_text2" jdbcType="VARCHAR" property="pi_text2" />
@@ -38,7 +40,6 @@
     <result column="pi_auditman" jdbcType="VARCHAR" property="pi_auditman" />
     <result column="pi_remark" jdbcType="VARCHAR" property="pi_remark" />
     <result column="pi_ioid" jdbcType="INTEGER" property="pi_ioid" />
-
   </resultMap>
   <resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="com.usoftchina.saas.purchase.po.ProdInOut">
     <result column="pi_address" jdbcType="LONGVARCHAR" property="pi_address" />
@@ -50,7 +51,7 @@
     pi_id, pi_inoutno, pi_class, pi_date, pi_vendid, pi_vendcode, pi_vendname, pi_custid, 
     pi_custcode, pi_custname, pi_puid, pi_pucode, pi_said, pi_sacode, pi_total, pi_recordmanid, 
     pi_recordman, pi_recorddate, pi_status, pi_statuscode, pi_printstatus, pi_printstatuscode, 
-    companyid, updaterid, updatetime,creatorid,createtime, pi_text1, pi_text2, pi_text3, pi_text4, pi_text5,pi_auditdate,
+    companyid, updaterid,updaterName,updatetime,creatorid,creatorName,createtime, pi_text1, pi_text2, pi_text3, pi_text4, pi_text5,pi_auditdate,
     pi_auditman,pi_remark,pi_ioid
   </sql>
   <sql id="Blob_Column_List">
@@ -144,12 +145,18 @@
       <if test="updaterId != null" >
         updaterId,
       </if>
+      <if test="updaterName != null" >
+        updaterName,
+      </if>
       <if test="updateTime != null" >
         updateTime,
       </if>
       <if test="creatorId != null" >
         creatorId,
       </if>
+      <if test="creatorName != null" >
+        creatorName,
+      </if>
       <if test="createTime != null" >
         createTime,
       </if>
@@ -253,12 +260,19 @@
       <if test="updaterId != null" >
         #{updaterId,jdbcType=INTEGER},
       </if>
+      <if test="updaterName != null">
+        #{updaterName,jdbcType=VARCHAR},
+      </if>
       <if test="updateTime != null" >
         #{updateTime,jdbcType=TIMESTAMP},
       </if>
       <if test="creatorId != null" >
         #{creatorId,jdbcType=INTEGER},
       </if>
+      <if test="creatorName != null">
+        #{creatorName,jdbcType=VARCHAR},
+      </if>
+
       <if test="createTime != null" >
         #{createTime,jdbcType=TIMESTAMP},
       </if>
@@ -418,10 +432,15 @@
   GROUP BY pd_orderid) t  where t.nowqty>t.totalqty
   </select>
 
-  <select id="checkQtyFromProdIn" resultType="int" parameterType="string">
+  <select id="checkQtyFromProdIn" resultType="int" parameterType="long">
   select count(1) from(
-  select sum(b.pd_outqty) nowqty,(select a.pd_inqty from prodiodetail a where a.pd_id = b.pd_ioid and a.pd_piclass='采购验收单') totalqty from prodiodetail b where b.pd_ordercode=#{pu_code} and b.pd_piclass='采购验退单'
+  select sum(b.pd_outqty) nowqty,(select a.pd_inqty from prodiodetail a where a.pd_id = b.pd_ioid and a.pd_piclass='采购验收单') totalqty from prodiodetail b where b.pd_piid = #{id} and b.pd_piclass='采购验退单'
   GROUP BY b.pd_ioid) t where t.nowqty>t.totalqty
   </select>
 
+  <update id="updateCreator">
+    update prodinout set creatorId = #{userId} , creatorName=#{userName} where pi_id=#{id}
+  </update>
+
+
 </mapper>

+ 1 - 0
applications/purchase/purchase-server/src/main/resources/mapper/PurchaseListMapper.xml

@@ -42,6 +42,7 @@
         <result column="PD_PRODID" property="pd_prodid" jdbcType="INTEGER" />
         <result column="PD_PRODCODE" property="pd_prodcode" jdbcType="VARCHAR" />
         <result column="PD_UNIT" property="pd_unit" jdbcType="VARCHAR" />
+        <result column="pd_ordercode" property="pd_ordercode" jdbcType="VARCHAR" />
         <result column="PD_QTY" property="pd_qty" jdbcType="DOUBLE" />
         <result column="PD_PRICE" property="pd_price" jdbcType="DOUBLE" />
         <result column="PD_TAXPRICE" property="pd_taxprice" jdbcType="DOUBLE" />

+ 75 - 21
applications/purchase/purchase-server/src/main/resources/mapper/PurchaseMapper.xml

@@ -25,13 +25,13 @@
     <result column="PU_STATUS" property="pu_status" jdbcType="VARCHAR" />
     <result column="companyid" property="companyId" jdbcType="BIGINT" />
     <result column="updaterId" property="updaterId" jdbcType="INTEGER" />
+    <result column="updaterName" property="updaterName" jdbcType="VARCHAR" />
     <result column="updateTime" property="updateTime" jdbcType="TIMESTAMP" />
-
-    <!--<result column="updater" jdbcType="VARCHAR" property="updater" />-->
     <result column="creatorid" property="creatorId" jdbcType="INTEGER"/>
-    <result column="createtime" property="createTime" jdbcType="TIMESTAMP" />
-    <!--<result column="creator" property="creator" jdbcType="VARCHAR" />-->
-
+    <result column="creatorName" property="creatorName" jdbcType="VARCHAR" />
+    <result column="createTime" property="createTime" jdbcType="TIMESTAMP" />
+    <result column="pu_auditman" property="pu_auditman" jdbcType="VARCHAR" />
+    <result column="pu_auditdate" property="pu_auditdate" jdbcType="TIMESTAMP" />
     <result column="pu_text1" property="pu_text1" jdbcType="VARCHAR" />
     <result column="pu_text2" property="pu_text2" jdbcType="VARCHAR" />
     <result column="pu_text3" property="pu_text3" jdbcType="VARCHAR" />
@@ -46,8 +46,8 @@
     pu_id, pu_code, pu_date, pu_vendid, PU_VENDCODE, PU_VENDNAME, PU_BUYERID, PU_BUYERCODE, 
     PU_BUYERNAME, PU_DELIVERY, PU_TAXTOTAL, PU_TOTAL, PU_REMARK, PU_TOTALUPPER, PU_INDATE, 
     PU_PRINTSTATUS, PU_PRINTSTATUSCODE, PU_ACCEPTSTATUSCODE, PU_ACCEPTSTATUS, PU_STATUSCODE, 
-    PU_STATUS, companyid, updaterId, updateTime,creatorid,createtime, pu_text1, pu_text2, pu_text3, pu_text4,
-    pu_text5
+    PU_STATUS, companyid, updaterId,updaterName,updateTime,creatorid,creatorName,createtime, pu_text1, pu_text2, pu_text3, pu_text4,
+    pu_text5,pu_auditman,pu_auditdate
   </sql>
   <sql id="Blob_Column_List" >
     PU_SHIPADDRESSCODE
@@ -110,9 +110,6 @@
       <if test="pu_totalupper != null" >
         PU_TOTALUPPER,
       </if>
-      <if test="createTime != null" >
-        PU_INDATE,
-      </if>
       <if test="pu_printstatus != null" >
         PU_PRINTSTATUS,
       </if>
@@ -137,14 +134,20 @@
       <if test="updaterId != null" >
         updaterId,
       </if>
+      <if test="updaterName != null" >
+        updaterName,
+      </if>
       <if test="updateTime != null" >
         updateTime,
       </if>
       <if test="creatorId != null" >
-      creatorId,
+        creatorId,
+      </if>
+      <if test="creatorName != null" >
+        creatorName,
       </if>
       <if test="createTime != null" >
-      createTime,
+        createTime,
       </if>
       <if test="pu_text1 != null" >
         pu_text1,
@@ -205,9 +208,6 @@
       <if test="pu_totalupper != null" >
         #{pu_totalupper,jdbcType=VARCHAR},
       </if>
-      <if test="createTime != null" >
-        #{createTime,jdbcType=TIMESTAMP},
-      </if>
       <if test="pu_printstatus != null" >
         #{pu_printstatus,jdbcType=VARCHAR},
       </if>
@@ -232,29 +232,35 @@
       <if test="updaterId != null" >
         #{updaterId,jdbcType=INTEGER},
       </if>
+      <if test="updaterName != null" >
+        #{updaterName,jdbcType=VARCHAR},
+      </if>
       <if test="updateTime != null" >
         #{updateTime,jdbcType=TIMESTAMP},
       </if>
-
       <if test="creatorId != null" >
        #{creatorId,jdbcType=INTEGER},
-      </if><if test="createTime != null" >
+      </if>
+      <if test="creatorName != null" >
+        #{creatorName,jdbcType=VARCHAR},
+      </if>
+      <if test="createTime != null" >
        #{createTime,jdbcType=TIMESTAMP},
       </if>
       <if test="pu_text1 != null" >
         #{pu_text1,jdbcType=VARCHAR},
       </if>
       <if test="pu_text2 != null" >
-        #{pu_text1,jdbcType=VARCHAR},
+        #{pu_text2,jdbcType=VARCHAR},
       </if>
       <if test="pu_text3 != null" >
-        #{pu_text1,jdbcType=VARCHAR},
+        #{pu_text3,jdbcType=VARCHAR},
       </if>
       <if test="pu_text4 != null" >
-        #{pu_text1,jdbcType=VARCHAR},
+        #{pu_text4,jdbcType=VARCHAR},
       </if>
       <if test="pu_text5 != null" >
-        #{pu_text1,jdbcType=VARCHAR},
+        #{pu_text5,jdbcType=VARCHAR},
       </if>
       <if test="pu_shipaddresscode != null" >
         #{pu_shipaddresscode,jdbcType=LONGVARCHAR},
@@ -333,6 +339,9 @@
       <if test="updateTime != null" >
         updateTime = #{updateTime,jdbcType=TIMESTAMP},
       </if>
+      <if test="updaterName != null" >
+        updaterName = #{updaterName,jdbcType=VARCHAR},
+      </if>
       <if test="pu_text1 != null" >
         pu_text1 = #{pu_text1,jdbcType=VARCHAR},
       </if>
@@ -354,6 +363,39 @@
     </set>
     where pu_id = #{id,jdbcType=INTEGER}
   </update>
+  <update id="updateByPrimaryKey" parameterType="com.usoftchina.saas.purchase.po.Purchase" >
+    update purchase
+    set pu_code = #{pu_code,jdbcType=VARCHAR},
+      pu_date = #{pu_date,jdbcType=TIMESTAMP},
+      pu_vendid = #{pu_vendid,jdbcType=INTEGER},
+      PU_VENDCODE = #{pu_vendcode,jdbcType=VARCHAR},
+      PU_VENDNAME = #{pu_vendname,jdbcType=VARCHAR},
+      PU_BUYERID = #{pu_buyerid,jdbcType=INTEGER},
+      PU_BUYERCODE = #{pu_buyercode,jdbcType=VARCHAR},
+      PU_BUYERNAME = #{pu_buyername,jdbcType=VARCHAR},
+      PU_DELIVERY = #{pu_delivery,jdbcType=TIMESTAMP},
+      PU_TAXTOTAL = #{pu_taxtotal,jdbcType=DOUBLE},
+      PU_TOTAL = #{pu_total,jdbcType=DOUBLE},
+      PU_REMARK = #{pu_remark,jdbcType=VARCHAR},
+      PU_TOTALUPPER = #{pu_totalupper,jdbcType=VARCHAR},
+      PU_INDATE = #{createTime,jdbcType=TIMESTAMP},
+      PU_PRINTSTATUS = #{pu_printstatus,jdbcType=VARCHAR},
+      PU_PRINTSTATUSCODE = #{pu_printstatuscode,jdbcType=VARCHAR},
+      PU_ACCEPTSTATUSCODE = #{pu_acceptstatuscode,jdbcType=VARCHAR},
+      PU_ACCEPTSTATUS = #{pu_acceptstatus,jdbcType=VARCHAR},
+      PU_STATUSCODE = #{pu_statuscode,jdbcType=VARCHAR},
+      PU_STATUS = #{pu_status,jdbcType=VARCHAR},
+      companyid = #{companyId,jdbcType=INTEGER},
+      updaterId = #{updaterId,jdbcType=INTEGER},
+      updateTime = #{updateTime,jdbcType=TIMESTAMP},
+      updater = #{updater,jdbcType=VARCHAR},
+      pu_text1 = #{pu_text1,jdbcType=VARCHAR},
+      pu_text2 = #{pu_text2,jdbcType=VARCHAR},
+      pu_text3 = #{pu_text3,jdbcType=VARCHAR},
+      pu_text4 = #{pu_text4,jdbcType=VARCHAR},
+      pu_text5 = #{pu_text5,jdbcType=VARCHAR}
+    where pu_id = #{id,jdbcType=INTEGER}
+  </update>
   <select id="validateAudit" parameterType="com.usoftchina.saas.commons.dto.DocBaseDTO" resultType="java.lang.String">
     select GROUP_CONCAT(pu_code) from purchase where pu_statuscode='AUDITED' and pu_id in
     <foreach collection="list" item="item" open="(" close=")" separator=",">
@@ -369,6 +411,13 @@
   <select id="validateUnAudit" parameterType="long" resultType="java.lang.String">
     select pu_code from purchase where pu_id = #{pu_id} and IFNULL(pu_statuscode,'UNAUDITED')='UNAUDITED'
   </select>
+  <!--<select id="selectByTest" resultMap="BaseResultMap" parameterType="string" >
+    select * from purchase <where>
+    <if test="_parameter != null">
+       ${value}
+    </if>
+  </where>
+  </select>-->
   <select id="validateCodeWhenInsert" resultType="int">
     select count(1) from purchase where pu_code = #{code} and companyId =#{companyId}
   </select>
@@ -383,4 +432,9 @@
     select count(1) from purchasedetail where PD_PUID=#{id} and PD_YQTY !=0;
 </select>
 
+  <update id="updateCreator">
+    update purchase set creatorId = #{userId} , creatorName=#{userName} where pu_id=#{id}
+  </update>
+
+
 </mapper>

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

@@ -71,7 +71,7 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
     public DocBaseDTO saveFormData(ProdInOutFormDTO formdata) {
 
         if (null == formdata || null == formdata.getMain()){
-            throw new BizException(500, "数据为空,请填写后再保存");
+            throw new BizException(BizExceptionCode.EMPTY_DATA);
         }
         //公司ID
         Long companyId = BaseContextHolder.getCompanyId();
@@ -224,7 +224,8 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
             try{
                 singleDelete(base.getId());
             }catch (Exception e){
-                errorMsg.append("编号:" + base.getCode() + "处理失败," + e.getMessage());
+                String msg = BizExceptionCode.DEAL_FAILED.getMessage();
+                errorMsg.append(String.format(msg, base.getCode(), e.getMessage()));
             }
         }
         return errorMsg.toString();
@@ -286,7 +287,8 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
                 ProdInOutDTO prodInOutDTO = BeanMapper.map(prodInOut,ProdInOutDTO.class);
                 singleAudit(prodInOutDTO);
             }catch (Exception e){
-                errorMsg.append("编号:" + base.getCode() + "处理失败," + e.getMessage());
+                String msg = BizExceptionCode.DEAL_FAILED.getMessage();
+                errorMsg.append(String.format(msg, base.getCode(), e.getMessage()));
             }
         }
         return errorMsg.toString();
@@ -339,7 +341,8 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
                 ProdInOutDTO prodInOutDTO = BeanMapper.map(prodInOut,ProdInOutDTO.class);
                 singleUnAudit(prodInOutDTO);
             }catch (Exception e){
-                errorMsg.append("编号:" + base.getCode() + "处理失败," + e.getMessage());
+                String msg = BizExceptionCode.DEAL_FAILED.getMessage();
+                errorMsg.append(String.format(msg, base.getCode(), e.getMessage()));
             }
         }
         return errorMsg.toString();
@@ -515,7 +518,8 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
             try{
                 close(base.getId());
             }catch (Exception e){
-                errorMsg.append("编号:" + base.getCode() + "处理失败," + e.getMessage());
+                String msg = BizExceptionCode.DEAL_FAILED.getMessage();
+                errorMsg.append(String.format(msg, base.getCode(), e.getMessage()));
             }
         }
         return errorMsg.toString();
@@ -549,7 +553,8 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
             try{
                 open(base.getId());
             }catch (Exception e){
-                errorMsg.append("编号:" + base.getCode() + "处理失败," + e.getMessage());
+                String msg = BizExceptionCode.DEAL_FAILED.getMessage();
+                errorMsg.append(String.format(msg, base.getCode(), e.getMessage()));
             }
         }
         return errorMsg.toString();

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

@@ -94,7 +94,7 @@ public class SaleServiceImpl implements SaleService{
     @Transactional
     public DocBaseDTO saveFormData(SaleFormDTO formdata) {
         if (null == formdata || null == formdata.getMain()){
-            throw new BizException(500, "数据为空,请填写后再保存");
+            throw new BizException(BizExceptionCode.EMPTY_DATA);
         }
         //公司ID
         Long companyId = BaseContextHolder.getCompanyId();
@@ -262,7 +262,9 @@ public class SaleServiceImpl implements SaleService{
 
         String validate = saleMapper.validateAudit(baseDTOs.getBaseDTOs());
         if (!StringUtils.isEmpty(validate)) {
-            throw new BizException(500, "存在已审核单据,单据编号:" + validate);
+            String message = BizExceptionCode.SALE_ORDER_HASAUDIT.getMessage();
+            int code = BizExceptionCode.SALE_ORDER_HASAUDIT.getCode();
+            throw new BizException(code, String.format(message, validate));
         }
         for (DocBaseDTO base : baseDTOs.getBaseDTOs()) {
             singleAudit(base.getId());
@@ -310,7 +312,9 @@ public class SaleServiceImpl implements SaleService{
 
         String msg = saleMapper.validateBatchUnAudit(baseDTOs.getBaseDTOs());
         if (null != msg) {
-            throw new BizException(500, "存在未审核单据,单据编号:" + msg);
+            String message = BizExceptionCode.SALE_ORDER_HASAUDIT.getMessage();
+            int code = BizExceptionCode.SALE_ORDER_HASAUDIT.getCode();
+            throw new BizException(code, String.format(message, msg));
         }
         for (DocBaseDTO base : baseDTOs.getBaseDTOs()) {
             singleUnAudit(base.getId());

+ 6 - 2
applications/storage/storage-dto/src/main/java/com/usoftchina/saas/storage/dto/ProdInOutDTO.java

@@ -33,7 +33,7 @@ public class ProdInOutDTO extends CommonBaseDTO implements Serializable {
 
     private String pi_custname;
 
-    private Integer pi_puid;
+    private Long pi_puid;
 
     private String pi_pucode;
 
@@ -43,6 +43,8 @@ public class ProdInOutDTO extends CommonBaseDTO implements Serializable {
 
     private Double pi_total;
 
+    private Double pi_nettotal;
+
     private Long pi_recordmanid;
 
     private String pi_recordman;
@@ -71,7 +73,9 @@ public class ProdInOutDTO extends CommonBaseDTO implements Serializable {
 
     private Date pi_auditdate;
 
-    private Date pi_auditman;
+    private String pi_auditman;
 
     private String pi_remark;
+
+    private Long pi_ioid;
 }

+ 6 - 2
applications/storage/storage-dto/src/main/java/com/usoftchina/saas/storage/po/ProdInOut.java

@@ -37,6 +37,8 @@ public class ProdInOut extends CommonBaseEntity implements Serializable {
 
     private Double pi_total;
 
+    private Double pi_nettotal;
+
     private Long pi_recordmanid;
 
     private String pi_recordman;
@@ -63,8 +65,6 @@ public class ProdInOut extends CommonBaseEntity implements Serializable {
 
     private String pi_address;
 
-    private Double pi_nettotal;
-
     private Date pi_auditdate;
 
     private String pi_auditman;
@@ -72,4 +72,8 @@ public class ProdInOut extends CommonBaseEntity implements Serializable {
     private String pi_remark;
 
     private Long pi_ioid;
+
+    private String pi_macode;
+
+    private Long pi_maid;
 }

+ 1 - 1
applications/storage/storage-server/src/main/java/com/usoftchina/saas/storage/mapper/MakeMapper.java

@@ -25,7 +25,7 @@ public interface MakeMapper extends CommonBaseMapper<Make> {
 
     int validateCodeWhenUpdate(@Param("code") String code, @Param("id") Long id, @Param("companyId") Long company);
 
-    Double getOnHand(@Param("prodcode") String prodcode, @Param("whcode") String whcode, @Param("companyId") Long companyId);
+    Double getOnHand(@Param("prodid") Long prodid, @Param("whid") Integer whid, @Param("companyId") Long companyId);
 
     String selectMakeInOutCode(@Param("code") String code, @Param("companyId") Long companyId, @Param("type") String type);
 

+ 2 - 4
applications/storage/storage-server/src/main/java/com/usoftchina/saas/storage/mapper/ProdInOutMapper.java

@@ -18,10 +18,6 @@ public interface ProdInOutMapper extends CommonBaseMapper<ProdInOut> {
 
     int updateByPrimaryKeySelective(ProdInOut record);
 
-    int updateByPrimaryKeyWithBLOBs(ProdInOut record);
-
-    int updateByPrimaryKey(ProdInOut record);
-
     Integer validateCodeWhenInsert(@Param("pi_inoutno") String pi_inoutno, @Param("companyId") Long companyId);
 
     Integer validateCodeWhenUpdate(@Param("pi_inoutno") String pi_inoutno, @Param("id") Long id, @Param("companyId") Long companyId);
@@ -33,4 +29,6 @@ public interface ProdInOutMapper extends CommonBaseMapper<ProdInOut> {
     void post(Map<String, Object> map);
 
     void unPost(Map<String, Object> map);
+
+    void updateCreator(@Param("userId") Long userId,@Param("userName") String userName,@Param("id") Long pi_id);
 }

+ 80 - 48
applications/storage/storage-server/src/main/java/com/usoftchina/saas/storage/service/impl/MakeServiceImpl.java

@@ -161,24 +161,35 @@ public class MakeServiceImpl extends CommonBaseServiceImpl<MakeMapper, Make> imp
             for(MakeMaterial makeMaterial : makeMaterialList){
                 i++;
                 double qty = makeMaterial.getMm_qty()==null?0:makeMaterial.getMm_qty();
-                Double onHand = getMapper().getOnHand(makeMaterial.getMm_prodcode(),makeMaterial.getMm_whcode(), BaseContextHolder.getCompanyId());
-                if (onHand==null){
-                    onHand=0d;
+                double onHand = 0;
+                try {
+                    onHand = getMapper().getOnHand(make.getMa_prodid(),make.getMa_whid(), BaseContextHolder.getCompanyId());
+                }catch (Exception e){
+                    String msg = BizExceptionCode.UNENOUGH_DETAIL_STOCK.getMessage();
+                    int code = BizExceptionCode.SALE_ORDER_HASAUDIT.getCode();
+                    throw new BizException(code, String.format(msg, i));
                 }
                 if(onHand < qty){
-                    throw new BizException(79402, "行" + i + "库存不足");
+                    String msg = BizExceptionCode.UNENOUGH_DETAIL_STOCK.getMessage();
+                    int code = BizExceptionCode.SALE_ORDER_HASAUDIT.getCode();
+                    throw new BizException(code, String.format(msg, i));
                 }
             }
         }else if ("拆件".equals(make.getMa_type())){
             double qty = make.getMa_qty();
             double onHand = 0;
             try {
-                onHand = getMapper().getOnHand(make.getMa_prodcode(), make.getMa_whcode(), BaseContextHolder.getCompanyId());
+                onHand = getMapper().getOnHand(make.getMa_prodid(), make.getMa_whid(), BaseContextHolder.getCompanyId());
+
             }catch (Exception e){
-                throw new BizException(79402, make.getMa_prodcode() + ":库存不足");
+                String msg = BizExceptionCode.UNENOUGH_STOCK.getMessage();
+                int code = BizExceptionCode.UNENOUGH_STOCK.getCode();
+                throw new BizException(code, String.format(msg, make.getMa_prodcode()));
             }
             if(onHand < qty){
-                throw new BizException(79402, make.getMa_prodcode() + ":库存不足");
+                String msg = BizExceptionCode.UNENOUGH_STOCK.getMessage();
+                int code = BizExceptionCode.UNENOUGH_STOCK.getCode();
+                throw new BizException(code, String.format(msg, make.getMa_prodcode()));
             }
         }
     }
@@ -266,6 +277,13 @@ public class MakeServiceImpl extends CommonBaseServiceImpl<MakeMapper, Make> imp
     public void singleAudit(MakeListDTO makeListDTO) {
         //1.获取主从表数据
         Make make = makeListDTO.getMain();
+        //检验单审核状态
+        //检查审核状态
+        String ma_statuscode = make.getMa_statuscode();
+        if(StringUtils.isEmpty(ma_statuscode)||(!StringUtils.isEmpty(ma_statuscode)&&!ma_statuscode.equals(Status.UNAUDITED.name()))){
+            throw  new BizException(BizExceptionCode.BIZ_AUDITED);
+        };
+
         //2.校验库存是否足够
         validStorage(makeListDTO);
         //3.生成  完工入库单和领料单 并 过账
@@ -277,7 +295,7 @@ public class MakeServiceImpl extends CommonBaseServiceImpl<MakeMapper, Make> imp
         updateMake.setMa_statuscode(Status.AUDITED.name());
         updateMake.setUpdateTime(new Date());
         updateMake.setUpdaterId(BaseContextHolder.getUserId());
-        updateMake.setMa_auditman("");
+        updateMake.setMa_auditman(BaseContextHolder.getUserName());
         updateMake.setMa_auditdate(new Date());
         getMapper().updateByPrimaryKeySelective(updateMake);
         DocBaseDTO docBaseDTO = generateMsgObj(make.getId(), make.getMa_code());
@@ -303,7 +321,8 @@ public class MakeServiceImpl extends CommonBaseServiceImpl<MakeMapper, Make> imp
                 makeListDTO.setItems(makeMaterials);
                 singleAudit(makeListDTO);
             } catch (Exception e){
-                errorMsg.append("编号:" + base.getCode() + "处理失败," + e.getMessage());
+                String msg = BizExceptionCode.DEAL_FAILED.getMessage();
+                errorMsg.append(String.format(msg, base.getCode(), e.getMessage()));
             }
         }
         return errorMsg.toString();
@@ -316,7 +335,7 @@ public class MakeServiceImpl extends CommonBaseServiceImpl<MakeMapper, Make> imp
      * @param makeListDTO
      */
     @Transactional(rollbackFor = Exception.class)
-    private void generateProdIO(MakeListDTO makeListDTO) {
+    public void generateProdIO(MakeListDTO makeListDTO) {
         Make make = makeListDTO.getMain();
         Long ma_id = make.getId();
         List<MakeMaterial> items = makeListDTO.getItems();
@@ -329,13 +348,14 @@ public class MakeServiceImpl extends CommonBaseServiceImpl<MakeMapper, Make> imp
             String code = maxnumberService.getMaxnumber("MakeOut", true).getData();
             prodInOut.setPi_inoutno(code);
             prodInOut.setPi_date(new Date());       //出入库日期
-            prodInOut.setPi_recordmanid(BaseContextHolder.getUserId());     //录入人ID
+//            prodInOut.setPi_recordmanid(BaseContextHolder.getUserId());     //录入人ID
             prodInOut.setPi_recorddate(new Date());     //录入日期
             prodInOut.setPi_auditdate(new Date());      //审核日期
             prodInOut.setPi_auditman("");               //审核人
             prodInOut.setPi_status(Status.UNAUDITED.getDisplay());  //单据状态
             prodInOut.setPi_statuscode(Status.UNAUDITED.name());    //单据状态码
-            prodInOut.setPi_text1(make.getMa_code());       //自定义字段1   赋值为制造单号
+            prodInOut.setPi_macode(make.getMa_code());       //制造单号
+            prodInOut.setPi_maid(make.getId());             //制造单ID
             prodInOut.setCompanyId(BaseContextHolder.getCompanyId());   //公司ID
             prodInOut.setCreateTime(new Date());
             prodInOut.setCreatorId(BaseContextHolder.getUserId());      //创建人ID
@@ -389,13 +409,14 @@ public class MakeServiceImpl extends CommonBaseServiceImpl<MakeMapper, Make> imp
             code = maxnumberService.getMaxnumber("MakeIn", true).getData();
             prodInOut.setPi_inoutno(code);
             prodInOut.setPi_date(new Date());       //出入库日期
-            prodInOut.setPi_recordmanid(BaseContextHolder.getUserId());     //录入人ID
+//            prodInOut.setPi_recordmanid(BaseContextHolder.getUserId());     //录入人ID
             prodInOut.setPi_recorddate(new Date());     //录入日期
             prodInOut.setPi_auditdate(new Date());      //审核日期
             prodInOut.setPi_auditman("");               //审核人
             prodInOut.setPi_status(Status.UNAUDITED.getDisplay());  //单据状态
             prodInOut.setPi_statuscode(Status.UNAUDITED.name());    //单据状态码
-            prodInOut.setPi_text1(make.getMa_code());       //自定义字段1   赋值为制造单号
+            prodInOut.setPi_macode(make.getMa_code());       //制造单号
+            prodInOut.setPi_maid(make.getId());             //制造单ID
             prodInOut.setCompanyId(BaseContextHolder.getCompanyId());   //公司ID
             prodInOut.setCreateTime(new Date());
             prodInOut.setCreatorId(BaseContextHolder.getUserId());      //创建人ID
@@ -440,13 +461,14 @@ public class MakeServiceImpl extends CommonBaseServiceImpl<MakeMapper, Make> imp
             prodInOut.setPi_inoutno(code);
             prodInOut.setPi_date(new Date());       //出入库日期
             //prodInOut.setPi_total(make.getMa_price());
-            prodInOut.setPi_recordmanid(BaseContextHolder.getUserId());     //录入人ID
+//            prodInOut.setPi_recordmanid(BaseContextHolder.getUserId());     //录入人ID
             prodInOut.setPi_recorddate(new Date());     //录入日期
             prodInOut.setPi_auditdate(new Date());      //审核日期
             prodInOut.setPi_auditman("");               //审核人
             prodInOut.setPi_status(Status.UNAUDITED.getDisplay());  //单据状态
             prodInOut.setPi_statuscode(Status.UNAUDITED.name());    //单据状态码
-            prodInOut.setPi_text1(make.getMa_code());       //自定义字段1   赋值为制造单号
+            prodInOut.setPi_macode(make.getMa_code());       //制造单号
+            prodInOut.setPi_maid(make.getId());             //制造单ID
             prodInOut.setCompanyId(BaseContextHolder.getCompanyId());   //公司ID
             prodInOut.setCreateTime(new Date());
             prodInOut.setCreatorId(BaseContextHolder.getUserId());      //创建人ID
@@ -498,13 +520,14 @@ public class MakeServiceImpl extends CommonBaseServiceImpl<MakeMapper, Make> imp
             code = maxnumberService.getMaxnumber("MakeIn", true).getData();
             prodInOut.setPi_inoutno(code);
             prodInOut.setPi_date(new Date());       //出入库日期
-            prodInOut.setPi_recordmanid(BaseContextHolder.getUserId());     //录入人ID
+//            prodInOut.setPi_recordmanid(BaseContextHolder.getUserId());     //录入人ID
             prodInOut.setPi_recorddate(new Date());     //录入日期
             prodInOut.setPi_auditdate(new Date());      //审核日期
             prodInOut.setPi_auditman("");               //审核人
             prodInOut.setPi_status(Status.UNAUDITED.getDisplay());  //单据状态
             prodInOut.setPi_statuscode(Status.UNAUDITED.name());    //单据状态码
-            prodInOut.setPi_text1(make.getMa_code());       //自定义字段1   赋值为制造单号
+            prodInOut.setPi_macode(make.getMa_code());       //制造单号
+            prodInOut.setPi_maid(make.getId());             //制造单ID
             prodInOut.setCompanyId(BaseContextHolder.getCompanyId());   //公司ID
             prodInOut.setCreateTime(new Date());
             prodInOut.setCreatorId(BaseContextHolder.getUserId());      //创建人ID
@@ -537,7 +560,6 @@ public class MakeServiceImpl extends CommonBaseServiceImpl<MakeMapper, Make> imp
                 prodIODetailList.add(prodIODetail);
             }
             prodIODetailMapper.batchInsert(prodIODetailList);
-
             map.put("inoutNo", code);
             map.put("class", "完工入库单");
             map.put("commitid", BaseContextHolder.getUserId());
@@ -551,10 +573,21 @@ public class MakeServiceImpl extends CommonBaseServiceImpl<MakeMapper, Make> imp
     }
 
     @Override
-    @Transactional(rollbackFor = Exception.class)
     public DocBaseDTO resAudit(Long id) {
+        return singleUnAudit(id);
+    }
+
+
+
+    @Transactional(propagation = Propagation.REQUIRED)
+    public DocBaseDTO singleUnAudit(Long id) {
         //1.获取主从表数据
         Make make = getMapper().selectByPrimaryKey(id);
+        //检查审核状态
+        String ma_statuscode = make.getMa_statuscode();
+        if(StringUtils.isEmpty(ma_statuscode)||(!StringUtils.isEmpty(ma_statuscode)&&!ma_statuscode.equals(Status.AUDITED.name()))){
+            throw  new BizException(BizExceptionCode.BIZ_UNAUDITED);
+        };
         List<MakeMaterial> items = makeMaterialMapper.selectByFK(id, BaseContextHolder.getCompanyId());
         MakeListDTO makeListDTO = new MakeListDTO(make, items);
         //2.校验库存是否足够
@@ -577,7 +610,24 @@ public class MakeServiceImpl extends CommonBaseServiceImpl<MakeMapper, Make> imp
     }
 
 
-
+    @Override
+    public String batchUnAudit(BatchDealBaseDTO baseDTOs) {
+        if (null == baseDTOs || null == baseDTOs.getBaseDTOs() ||
+                baseDTOs.getBaseDTOs().size() == 0) {
+            return "无可反审核单据。";
+        }
+        StringBuffer errorMsg = new StringBuffer();
+        for (DocBaseDTO base : baseDTOs.getBaseDTOs()) {
+            try {
+                Long id =  base.getId();
+                singleUnAudit(id);
+            }catch (Exception e) {
+                String msg = BizExceptionCode.DEAL_FAILED.getMessage();
+                errorMsg.append(String.format(msg, base.getCode(), e.getMessage()));
+            }
+        }
+        return errorMsg.toString();
+    }
 
     @Override
     public String batchClose(BatchDealBaseDTO batchDealBaseDTO) {
@@ -586,7 +636,8 @@ public class MakeServiceImpl extends CommonBaseServiceImpl<MakeMapper, Make> imp
             try{
                 close(docBaseDTO.getId());
             }catch (Exception e){
-                errorMsg.append("编号:" + docBaseDTO.getCode() + "处理失败," + e.getMessage());
+                String msg = BizExceptionCode.DEAL_FAILED.getMessage();
+                errorMsg.append(String.format(msg, docBaseDTO.getCode(), e.getMessage()));
             }
         }
         return errorMsg.toString();
@@ -599,7 +650,8 @@ public class MakeServiceImpl extends CommonBaseServiceImpl<MakeMapper, Make> imp
             try{
                 open(docBaseDTO.getId());
             }catch (Exception e){
-                errorMsg.append("编号:" + docBaseDTO.getCode() + "处理失败," + e.getMessage());
+                String msg = BizExceptionCode.DEAL_FAILED.getMessage();
+                errorMsg.append(String.format(msg, docBaseDTO.getCode(), e.getMessage()));
             }
         }
         return errorMsg.toString();
@@ -618,34 +670,13 @@ public class MakeServiceImpl extends CommonBaseServiceImpl<MakeMapper, Make> imp
     }
 
 
-
-    @Override
-    public String batchUnAudit(BatchDealBaseDTO baseDTOs) {
-        if (null == baseDTOs || null == baseDTOs.getBaseDTOs() ||
-                baseDTOs.getBaseDTOs().size() == 0) {
-            return "无可反审核单据。";
-        }
-        StringBuffer errorMsg = new StringBuffer();
-        for (DocBaseDTO base : baseDTOs.getBaseDTOs()) {
-            try {
-                Long id =  base.getId();
-
-//                ProdInOutDTO prodInOutDTO = BeanMapper.map(prodInOut,ProdInOutDTO.class);
-//                singleUnAudit(prodInOutDTO);
-            }catch (Exception e) {
-                errorMsg.append("编号:" + base.getCode() + "处理失败," + e.getMessage());
-            }
-        }
-        return errorMsg.toString();
-    }
-
     /**
      * 1.查找制造单关联的出入库单据
      * 2.反过账
      * @param make
      */
     @Transactional(rollbackFor = Exception.class)
-    private void selectProdIO(Make make) {
+    public void selectProdIO(Make make) {
         String code = make.getMa_code();
         String type = make.getMa_type();
         String outCode="";
@@ -667,8 +698,9 @@ public class MakeServiceImpl extends CommonBaseServiceImpl<MakeMapper, Make> imp
         if(!StringUtils.isEmpty(map.get("result"))){
             throw new BizException(76203, map.get("result").toString());
         }
-        prodInOutMapper.deleteByInOutNo(inCode, "完工入库单", BaseContextHolder.getCompanyId());
         prodIODetailMapper.deleteByInOutNo(inCode, "完工入库单", BaseContextHolder.getCompanyId());
+        prodInOutMapper.deleteByInOutNo(inCode, "完工入库单", BaseContextHolder.getCompanyId());
+
 
         if ("拆件".equals(type)){
             map.put("class", "拆件领料单");
@@ -683,11 +715,11 @@ public class MakeServiceImpl extends CommonBaseServiceImpl<MakeMapper, Make> imp
             throw new BizException(76204, map.get("result").toString());
         }
         if ("拆件".equals(type)){
-            prodInOutMapper.deleteByInOutNo(outCode, "拆件领料单", BaseContextHolder.getCompanyId());
             prodIODetailMapper.deleteByInOutNo(outCode, "拆件领料单", BaseContextHolder.getCompanyId());
+            prodInOutMapper.deleteByInOutNo(outCode, "拆件领料单", BaseContextHolder.getCompanyId());
         }else if ("组装".equals(type)){
-            prodInOutMapper.deleteByInOutNo(outCode, "生产领料单", BaseContextHolder.getCompanyId());
             prodIODetailMapper.deleteByInOutNo(outCode, "生产领料单", BaseContextHolder.getCompanyId());
+            prodInOutMapper.deleteByInOutNo(outCode, "生产领料单", BaseContextHolder.getCompanyId());
         }
     }
 

+ 9 - 5
applications/storage/storage-server/src/main/java/com/usoftchina/saas/storage/service/impl/ProdInOutServiceImpl.java

@@ -106,12 +106,15 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
     @Transactional(propagation = Propagation.REQUIRED)
     public DocBaseDTO saveFormData(ProdInOutFormDTO formdata) {
         if (null == formdata || null == formdata.getMain()){
-            throw new BizException(500, "数据为空,请填写后再保存");
+            throw new BizException(BizExceptionCode.EMPTY_DATA);
         }
         //公司ID
         Long companyId = BaseContextHolder.getCompanyId();
         //人员Id
         Long userId = BaseContextHolder.getUserId();
+        String userName = BaseContextHolder.getUserName();
+
+
         //获取主表信息
         ProdInOutDTO main = formdata.getMain();
         List<ProdIODetailDTO> items = formdata.getItems();
@@ -128,8 +131,6 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
         prodInOut.setCreatorId(userId);
         prodInOut.setCreateTime(prodInOut.getPi_recorddate()==null?new Date():prodInOut.getPi_recorddate());
         prodInOut.setPi_date(prodInOut.getPi_date()==null?new Date():prodInOut.getPi_date());
-        prodInOut.setPi_puid(main.getPi_puid());
-        prodInOut.setPi_pucode(main.getPi_pucode());
         //编号获取
         pi_inoutno = pushMaxnubmer(prodInOut);
         prodInOut.setPi_inoutno(pi_inoutno);
@@ -139,6 +140,7 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
             //插入操作
             getMapper().insertSelective(prodInOut);
             pi_id = prodInOut.getId();
+            getMapper().updateCreator(userId, userName, pi_id);
             //添加从表传输对象
             for (ProdIODetailDTO item : items) {
                 ProdIODetail detail = BeanMapper.map(item,ProdIODetail.class);
@@ -273,7 +275,8 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
                 ProdInOutDTO prodInOutDTO = BeanMapper.map(prodInOut,ProdInOutDTO.class);
                 singleAudit(prodInOutDTO);
             } catch (Exception e){
-                errorMsg.append("编号:" + base.getCode() + "处理失败," + e.getMessage());
+                String msg = BizExceptionCode.DEAL_FAILED.getMessage();
+                errorMsg.append(String.format(msg, base.getCode(), e.getMessage()));
             }
         }
         return errorMsg.toString();
@@ -325,7 +328,8 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
                 ProdInOutDTO prodInOutDTO = BeanMapper.map(prodInOut,ProdInOutDTO.class);
                 singleUnAudit(prodInOutDTO);
             }catch (Exception e) {
-                errorMsg.append("编号:" + base.getCode() + "处理失败," + e.getMessage());
+                String msg = BizExceptionCode.DEAL_FAILED.getMessage();
+                errorMsg.append(String.format(msg, base.getCode(), e.getMessage()));
             }
         }
         return errorMsg.toString();

+ 2 - 2
applications/storage/storage-server/src/main/resources/mapper/MakeMapper.xml

@@ -410,11 +410,11 @@
   </select>
 
     <select id="getOnHand" resultType="double">
-        SELECT IFNULL(PW_ONHAND,0) FROM PRODUCTWH WHERE PW_PRODCODE=#{prodcode} AND PW_WHCODE=#{whcode} and COMPANYID=#{companyId}
+        SELECT IFNULL(PW_ONHAND,0) FROM PRODUCTWH WHERE PW_PRODID=#{prodid} AND PW_WHID=#{whid} and COMPANYID=#{companyId}
     </select>
 
     <select id="selectMakeInOutCode" resultType="string">
-        SELECT PI_INOUTNO FROM PRODINOUT WHERE COMPANYID=#{companyId} AND PI_TEXT1=#{code} AND PI_CLASS=#{type}
+        SELECT PI_INOUTNO FROM PRODINOUT WHERE COMPANYID=#{companyId} AND PI_MACODE=#{code} AND PI_CLASS=#{type}
     </select>
 
   <update id="calcMakePriceAndTotal" parameterType="long" >

+ 10 - 7
applications/storage/storage-server/src/main/resources/mapper/ProdInOutListMapper.xml

@@ -29,12 +29,10 @@
     <result column="pi_text3" jdbcType="VARCHAR" property="pi_text3" />
     <result column="pi_text4" jdbcType="VARCHAR" property="pi_text4" />
     <result column="pi_text5" jdbcType="VARCHAR" property="pi_text5" />
-    <result column="pi_address" jdbcType="VARCHAR" property="pi_address" />
     <result column="pi_auditdate" jdbcType="TIMESTAMP" property="pi_auditdate" />
     <result column="pi_auditman" jdbcType="VARCHAR" property="pi_auditman" />
-
-
-
+    <result column="pi_address" jdbcType="VARCHAR" property="pi_address" />
+    <result column="pi_remark" jdbcType="VARCHAR" property="pi_remark" />
     <result column="pd_piid" jdbcType="INTEGER" property="pd_piid" />
     <result column="pd_inoutno" jdbcType="VARCHAR" property="pd_inoutno" />
     <result column="pd_piclass" jdbcType="VARCHAR" property="pd_piclass" />
@@ -62,9 +60,13 @@
     <result column="pd_orderid" jdbcType="INTEGER" property="pd_orderid" />
     <result column="pd_sdid" jdbcType="INTEGER" property="pd_sdid" />
     <result column="pd_status" jdbcType="INTEGER" property="pd_status" />
-    <result column="companyid" jdbcType="INTEGER" property="companyId" />
-    <result column="updaterid" jdbcType="INTEGER" property="updaterId" />
-    <result column="updatetime" jdbcType="TIMESTAMP" property="updateTime" />
+    <result column="companyid" property="companyId" jdbcType="BIGINT" />
+    <result column="updaterId" property="updaterId" jdbcType="INTEGER" />
+    <result column="updaterName" jdbcType="VARCHAR" property="updaterName" />
+    <result column="updateTime" property="updateTime" jdbcType="TIMESTAMP" />
+    <result column="creatorId" property="creatorId" jdbcType="INTEGER"/>
+    <result column="creatorName" jdbcType="VARCHAR" property="creatorName" />
+    <result column="createTime" property="createTime" jdbcType="TIMESTAMP" />
     <result column="pd_text1" jdbcType="VARCHAR" property="pd_text1" />
     <result column="pd_text2" jdbcType="VARCHAR" property="pd_text2" />
     <result column="pd_text3" jdbcType="VARCHAR" property="pd_text3" />
@@ -73,6 +75,7 @@
     <result column="pd_ym" jdbcType="INTEGER" property="pd_ym" />
     <result column="pd_yqty" jdbcType="DOUBLE" property="pd_yqty" />
     <result column="pd_ioid" jdbcType="INTEGER" property="pd_ioid" />
+    <result column="pd_remark" jdbcType="VARCHAR" property="pd_remark" />
     <result column="pr_id" property="pr_id"/>
     <result column="pr_code" property="pr_code"/>
     <result column="pr_detail" property="pr_detail"/>

+ 74 - 99
applications/storage/storage-server/src/main/resources/mapper/ProdInOutMapper.xml

@@ -24,9 +24,13 @@
     <result column="pi_statuscode" jdbcType="VARCHAR" property="pi_statuscode" />
     <result column="pi_printstatus" jdbcType="VARCHAR" property="pi_printstatus" />
     <result column="pi_printstatuscode" jdbcType="VARCHAR" property="pi_printstatuscode" />
-    <result column="companyid" jdbcType="INTEGER" property="companyId" />
-    <result column="updaterid" jdbcType="INTEGER" property="updaterId" />
-    <result column="updatetime" jdbcType="TIMESTAMP" property="updateTime" />
+    <result column="companyid" property="companyId" jdbcType="BIGINT" />
+    <result column="updaterId" property="updaterId" jdbcType="INTEGER" />
+    <result column="updaterName" jdbcType="VARCHAR" property="updaterName" />
+    <result column="updateTime" property="updateTime" jdbcType="TIMESTAMP" />
+    <result column="creatorid" property="creatorId" jdbcType="INTEGER"/>
+    <result column="creatorName" jdbcType="VARCHAR" property="creatorName" />
+    <result column="createtime" property="createTime" jdbcType="TIMESTAMP" />
     <result column="pi_text1" jdbcType="VARCHAR" property="pi_text1" />
     <result column="pi_text2" jdbcType="VARCHAR" property="pi_text2" />
     <result column="pi_text3" jdbcType="VARCHAR" property="pi_text3" />
@@ -35,7 +39,7 @@
     <result column="pi_auditdate" jdbcType="TIMESTAMP" property="pi_auditdate" />
     <result column="pi_auditman" jdbcType="VARCHAR" property="pi_auditman" />
     <result column="pi_remark" jdbcType="VARCHAR" property="pi_remark" />
-
+    <result column="pi_ioid" jdbcType="INTEGER" property="pi_ioid" />
   </resultMap>
   <resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="com.usoftchina.saas.storage.po.ProdInOut">
     <result column="pi_address" jdbcType="LONGVARCHAR" property="pi_address" />
@@ -47,8 +51,8 @@
     pi_id, pi_inoutno, pi_class, pi_date, pi_vendid, pi_vendcode, pi_vendname, pi_custid, 
     pi_custcode, pi_custname, pi_puid, pi_pucode, pi_said, pi_sacode, pi_total, pi_recordmanid, 
     pi_recordman, pi_recorddate, pi_status, pi_statuscode, pi_printstatus, pi_printstatuscode, 
-    companyid, updaterid, updatetime, pi_text1, pi_text2, pi_text3, pi_text4, pi_text5,pi_auditdate,
-    pi_auditman,pi_remark
+    companyid, updaterid,updaterName,updatetime,creatorid,creatorName,createtime, pi_text1, pi_text2, pi_text3, pi_text4, pi_text5,pi_auditdate,
+    pi_auditman,pi_remark,pi_ioid
   </sql>
   <sql id="Blob_Column_List">
     pi_address
@@ -121,9 +125,6 @@
       <if test="pi_recordman != null">
         pi_recordman,
       </if>
-      <if test="createTime != null">
-        pi_recorddate,
-      </if>
       <if test="pi_status != null">
         pi_status,
       </if>
@@ -136,14 +137,27 @@
       <if test="pi_printstatuscode != null">
         pi_printstatuscode,
       </if>
-      <if test="companyId != null">
+
+      <if test="companyId != null" >
         companyid,
       </if>
-      <if test="updaterId != null">
-        updaterid,
+      <if test="updaterId != null" >
+        updaterId,
+      </if>
+      <if test="updaterName != null" >
+        updaterName,
+      </if>
+      <if test="updateTime != null" >
+        updateTime,
+      </if>
+      <if test="creatorId != null" >
+        creatorId,
+      </if>
+      <if test="creatorName != null" >
+        creatorName,
       </if>
-      <if test="updateTime != null">
-        updatetime,
+      <if test="createTime != null" >
+        createTime,
       </if>
       <if test="pi_text1 != null">
         pi_text1,
@@ -172,6 +186,15 @@
       <if test="pi_remark != null">
         pi_remark,
       </if>
+      <if test="pi_ioid != null">
+        pi_ioid,
+      </if>
+        <if test="pi_maid != null">
+            pi_maid,
+        </if>
+        <if test="pi_macode != null">
+            pi_macode,
+        </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
 
@@ -223,9 +246,6 @@
       <if test="pi_recordman != null">
         #{pi_recordman,jdbcType=VARCHAR},
       </if>
-      <if test="createTime != null">
-        #{createTime,jdbcType=TIMESTAMP},
-      </if>
       <if test="pi_status != null">
         #{pi_status,jdbcType=VARCHAR},
       </if>
@@ -238,15 +258,29 @@
       <if test="pi_printstatuscode != null">
         #{pi_printstatuscode,jdbcType=VARCHAR},
       </if>
-      <if test="companyId != null">
+
+      <if test="companyId != null" >
         #{companyId,jdbcType=INTEGER},
       </if>
-      <if test="updaterId != null">
+      <if test="updaterId != null" >
         #{updaterId,jdbcType=INTEGER},
       </if>
-      <if test="updateTime != null">
+      <if test="updaterName != null">
+        #{updaterName,jdbcType=VARCHAR},
+      </if>
+      <if test="updateTime != null" >
         #{updateTime,jdbcType=TIMESTAMP},
       </if>
+      <if test="creatorId != null" >
+        #{creatorId,jdbcType=INTEGER},
+      </if>
+      <if test="creatorName != null">
+        #{creatorName,jdbcType=VARCHAR},
+      </if>
+
+      <if test="createTime != null" >
+        #{createTime,jdbcType=TIMESTAMP},
+      </if>
       <if test="pi_text1 != null">
         #{pi_text1,jdbcType=VARCHAR},
       </if>
@@ -274,6 +308,15 @@
       <if test="pi_remark != null">
         #{pi_remark,jdbcType=VARCHAR},
       </if>
+      <if test="pi_ioid != null">
+        #{pi_ioid,jdbcType=INTEGER},
+      </if>
+        <if test="pi_maid != null">
+            #{pi_maid,jdbcType=INTEGER},
+        </if>
+        <if test="pi_macode != null">
+            #{pi_macode,jdbcType=VARCHAR},
+        </if>
     </trim>
   </insert>
 
@@ -343,14 +386,14 @@
       <if test="pi_printstatuscode != null">
         pi_printstatuscode = #{pi_printstatuscode,jdbcType=VARCHAR},
       </if>
-      <if test="companyId != null">
+      <if test="companyId != null" >
         companyid = #{companyId,jdbcType=INTEGER},
       </if>
-      <if test="updaterId != null">
-        updaterid = #{updaterId,jdbcType=INTEGER},
+      <if test="updaterId != null" >
+        updaterId = #{updaterId,jdbcType=INTEGER},
       </if>
-      <if test="updateTime != null">
-        updatetime = #{updateTime,jdbcType=TIMESTAMP},
+      <if test="updateTime != null" >
+        updateTime = #{updateTime,jdbcType=TIMESTAMP},
       </if>
       <if test="pi_text1 != null">
         pi_text1 = #{pi_text1,jdbcType=VARCHAR},
@@ -382,80 +425,7 @@
     </set>
     where pi_id = #{id,jdbcType=INTEGER}
   </update>
-  <update id="updateByPrimaryKeyWithBLOBs" parameterType="com.usoftchina.saas.storage.po.ProdInOut">
-    update prodinout
-    set pi_inoutno = #{pi_inoutno,jdbcType=VARCHAR},
-      pi_class = #{pi_class,jdbcType=VARCHAR},
-      pi_date = #{pi_date,jdbcType=TIMESTAMP},
-      pi_vendid = #{pi_vendid,jdbcType=INTEGER},
-      pi_vendcode = #{pi_vendcode,jdbcType=VARCHAR},
-      pi_vendname = #{pi_vendname,jdbcType=VARCHAR},
-      pi_custid = #{pi_custid,jdbcType=INTEGER},
-      pi_custcode = #{pi_custcode,jdbcType=VARCHAR},
-      pi_custname = #{pi_custname,jdbcType=VARCHAR},
-      pi_puid = #{pi_puid,jdbcType=INTEGER},
-      pi_pucode = #{pi_pucode,jdbcType=VARCHAR},
-      pi_said = #{pi_said,jdbcType=INTEGER},
-      pi_sacode = #{pi_sacode,jdbcType=VARCHAR},
-      pi_total = #{pi_total,jdbcType=DOUBLE},
-      pi_recordmanid = #{pi_recordmanid,jdbcType=INTEGER},
-      pi_recordman = #{pi_recordman,jdbcType=VARCHAR},
-      pi_recorddate = #{createTime,jdbcType=TIMESTAMP},
-      pi_status = #{pi_status,jdbcType=VARCHAR},
-      pi_statuscode = #{pi_statuscode,jdbcType=VARCHAR},
-      pi_printstatus = #{pi_printstatus,jdbcType=VARCHAR},
-      pi_printstatuscode = #{pi_printstatuscode,jdbcType=VARCHAR},
-      companyid = #{companyid,jdbcType=INTEGER},
-      updaterid = #{updaterid,jdbcType=INTEGER},
-      updatetime = #{updatetime,jdbcType=TIMESTAMP},
-      pi_text1 = #{pi_text1,jdbcType=VARCHAR},
-      pi_text2 = #{pi_text2,jdbcType=VARCHAR},
-      pi_text3 = #{pi_text3,jdbcType=VARCHAR},
-      pi_text4 = #{pi_text4,jdbcType=VARCHAR},
-      pi_text5 = #{pi_text5,jdbcType=VARCHAR},
-      pi_address = #{pi_address,jdbcType=LONGVARCHAR},
-      pi_auditdate = #{pi_auditdate,jdbcType=TIMESTAMP},
-      pi_auditman = #{pi_auditman,jdbcType=VARCHAR},
-      pi_remark = #{pi_remark,jdbcType=VARCHAR}
-    where pi_id = #{pi_id,jdbcType=INTEGER}
-  </update>
-  <update id="updateByPrimaryKey" parameterType="com.usoftchina.saas.storage.po.ProdInOut">
-    update prodinout
-    set pi_inoutno = #{pi_inoutno,jdbcType=VARCHAR},
-      pi_class = #{pi_class,jdbcType=VARCHAR},
-      pi_date = #{pi_date,jdbcType=TIMESTAMP},
-      pi_vendid = #{pi_vendid,jdbcType=INTEGER},
-      pi_vendcode = #{pi_vendcode,jdbcType=VARCHAR},
-      pi_vendname = #{pi_vendname,jdbcType=VARCHAR},
-      pi_custid = #{pi_custid,jdbcType=INTEGER},
-      pi_custcode = #{pi_custcode,jdbcType=VARCHAR},
-      pi_custname = #{pi_custname,jdbcType=VARCHAR},
-      pi_puid = #{pi_puid,jdbcType=INTEGER},
-      pi_pucode = #{pi_pucode,jdbcType=VARCHAR},
-      pi_said = #{pi_said,jdbcType=INTEGER},
-      pi_sacode = #{pi_sacode,jdbcType=VARCHAR},
-      pi_total = #{pi_total,jdbcType=DOUBLE},
-      pi_recordmanid = #{pi_recordmanid,jdbcType=INTEGER},
-      pi_recordman = #{pi_recordman,jdbcType=VARCHAR},
-      pi_recorddate = #{createTime,jdbcType=TIMESTAMP},
-      pi_status = #{pi_status,jdbcType=VARCHAR},
-      pi_statuscode = #{pi_statuscode,jdbcType=VARCHAR},
-      pi_printstatus = #{pi_printstatus,jdbcType=VARCHAR},
-      pi_printstatuscode = #{pi_printstatuscode,jdbcType=VARCHAR},
-      companyid = #{companyId,jdbcType=INTEGER},
-      updaterid = #{updaterId,jdbcType=INTEGER},
-      updatetime = #{updateTime,jdbcType=TIMESTAMP},
-      pi_text1 = #{pi_text1,jdbcType=VARCHAR},
-      pi_text2 = #{pi_text2,jdbcType=VARCHAR},
-      pi_text3 = #{pi_text3,jdbcType=VARCHAR},
-      pi_text4 = #{pi_text4,jdbcType=VARCHAR},
-      pi_text5 = #{pi_text5,jdbcType=VARCHAR},
-      pi_address = #{pi_address,jdbcType=LONGVARCHAR},
-      pi_auditdate = #{pi_auditdate,jdbcType=TIMESTAMP},
-      pi_auditman = #{pi_auditman,jdbcType=VARCHAR},
-      pi_remark = #{pi_remark,jdbcType=VARCHAR}
-    where pi_id = #{id,jdbcType=INTEGER}
-  </update>
+
 
   <select id="validateCodeWhenInsert"  resultType="int">
     select count(1) from prodinout where pi_inoutno = #{pi_inoutno} and companyid = #{companyId}
@@ -472,6 +442,11 @@
       DELETE FROM prodinout WHERE PI_CLASS=#{type} AND PI_INOUTNO=#{code} AND COMPANYID=#{companyId}
   </delete>
 
+  <update id="updateCreator">
+    update prodinout set creatorId = #{userId} , creatorName=#{userName} where pi_id=#{id}
+  </update>
+
+
     <select id="post" parameterMap="postParamMap" statementType="CALLABLE">
         CALL SP_COMMITPRODINOUT(?, ?, ?, ?, ?)
     </select>

+ 4 - 0
base-servers/account/account-dto/pom.xml

@@ -22,6 +22,10 @@
             <groupId>com.usoftchina.saas</groupId>
             <artifactId>commons-dto</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.usoftchina.saas</groupId>
+            <artifactId>file-dto</artifactId>
+        </dependency>
     </dependencies>
 
 </project>

+ 39 - 0
base-servers/account/account-dto/src/main/java/com/usoftchina/saas/account/dto/CompanyDTO.java

@@ -1,8 +1,11 @@
 package com.usoftchina.saas.account.dto;
 
+import com.usoftchina.saas.file.dto.FileInfoDTO;
 import io.swagger.annotations.ApiModel;
 
 import java.io.Serializable;
+import java.util.List;
+import java.util.Map;
 
 /**
  * @author yingp
@@ -21,6 +24,42 @@ public class CompanyDTO implements Serializable{
     private String businessCode;
     private String address;
     private String logoUrl;
+    private String tel;
+    private String fax;
+    private String signet;      //电子章
+    private List<Map<String, FileInfoDTO>> fileInfoList;
+
+    public List<Map<String, FileInfoDTO>> getFileInfoList() {
+        return fileInfoList;
+    }
+
+    public void setFileInfoList(List<Map<String, FileInfoDTO>> fileInfoList) {
+        this.fileInfoList = fileInfoList;
+    }
+
+    public String getTel() {
+        return tel;
+    }
+
+    public void setTel(String tel) {
+        this.tel = tel;
+    }
+
+    public String getFax() {
+        return fax;
+    }
+
+    public void setFax(String fax) {
+        this.fax = fax;
+    }
+
+    public String getSignet() {
+        return signet;
+    }
+
+    public void setSignet(String signet) {
+        this.signet = signet;
+    }
     private Long uu;
 
     public Long getId() {

+ 41 - 5
base-servers/account/account-dto/src/main/java/com/usoftchina/saas/account/dto/CompanyRegDTO.java

@@ -10,6 +10,7 @@ import java.io.Serializable;
  */
 @ApiModel(value = "CompanyReg", description = "公司注册信息")
 public class CompanyRegDTO implements Serializable{
+    private Long id;
     /**
      * 唯一名称
      */
@@ -19,7 +20,42 @@ public class CompanyRegDTO implements Serializable{
      */
     private String businessCode;
     private String address;
-    private String logoUrl;
+    private String logoId;
+    private String tel;
+    private String fax;
+    private String signet;      //电子章
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getTel() {
+        return tel;
+    }
+
+    public void setTel(String tel) {
+        this.tel = tel;
+    }
+
+    public String getFax() {
+        return fax;
+    }
+
+    public void setFax(String fax) {
+        this.fax = fax;
+    }
+
+    public String getSignet() {
+        return signet;
+    }
+
+    public void setSignet(String signet) {
+        this.signet = signet;
+    }
 
     public String getName() {
         return name;
@@ -46,11 +82,11 @@ public class CompanyRegDTO implements Serializable{
     }
 
     public String getLogoUrl() {
-        return logoUrl;
+        return logoId;
     }
 
-    public void setLogoUrl(String logoUrl) {
-        this.logoUrl = logoUrl;
+    public void setLogoUrl(String logoId) {
+        this.logoId = logoId;
     }
 
     @Override
@@ -59,7 +95,7 @@ public class CompanyRegDTO implements Serializable{
                 "name='" + name + '\'' +
                 ", businessCode='" + businessCode + '\'' +
                 ", address='" + address + '\'' +
-                ", logoUrl='" + logoUrl + '\'' +
+                ", logoUrl='" + logoId + '\'' +
                 '}';
     }
 }

+ 12 - 0
base-servers/account/account-server/pom.xml

@@ -21,10 +21,18 @@
             <groupId>com.usoftchina.saas</groupId>
             <artifactId>account-api</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.usoftchina.saas</groupId>
+            <artifactId>file-api</artifactId>
+        </dependency>
         <dependency>
             <groupId>com.usoftchina.saas</groupId>
             <artifactId>auth-client</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.usoftchina.saas</groupId>
+            <artifactId>file-dto</artifactId>
+        </dependency>
         <!-- db -->
         <dependency>
             <groupId>mysql</groupId>
@@ -34,6 +42,10 @@
             <groupId>org.mybatis.spring.boot</groupId>
             <artifactId>mybatis-spring-boot-starter</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.github.pagehelper</groupId>
+            <artifactId>pagehelper-spring-boot-starter</artifactId>
+        </dependency>
         <!-- sleuth -->
         <dependency>
             <groupId>org.springframework.cloud</groupId>

+ 2 - 0
base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/AccountApplication.java

@@ -5,6 +5,7 @@ import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+import org.springframework.cloud.openfeign.EnableFeignClients;
 import org.springframework.transaction.annotation.EnableTransactionManagement;
 
 /**
@@ -13,6 +14,7 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
  */
 @SpringBootApplication
 @EnableEurekaClient
+@EnableFeignClients("com.usoftchina.saas")
 @EnableTransactionManagement
 @MapperScan(basePackages = "com.usoftchina.saas.account.mapper")
 @EnableAuthClient

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

@@ -9,8 +9,11 @@ import com.usoftchina.saas.account.service.RoleService;
 import com.usoftchina.saas.account.vo.CompanyBaseVO;
 import com.usoftchina.saas.auth.client.annotation.IgnoreAuth;
 import com.usoftchina.saas.base.Result;
+import com.usoftchina.saas.commons.dto.ListReqDTO;
 import com.usoftchina.saas.context.BaseContextHolder;
 import com.usoftchina.saas.exception.ExceptionCode;
+import com.usoftchina.saas.page.PageDefault;
+import com.usoftchina.saas.page.PageRequest;
 import com.usoftchina.saas.utils.BeanMapper;
 import com.usoftchina.saas.utils.CollectionUtils;
 import com.usoftchina.saas.utils.RegexpUtils;
@@ -315,15 +318,19 @@ public class AccountController {
      * @return
      */
     @PostMapping("/bind/roles")
-    public Result bindRoles(@RequestParam long accountId, @RequestParam String roleIds) {
+    public Result bindRoles(@RequestParam("accountId") Long accountId, @RequestParam("roleIds") String roleIds) {
         accountService.bindRoles(accountId, roleIds);
         accountService.clearCache(accountId);
         return Result.success();
     }
 
+    /**
+     * 账户角色列表
+     * @return
+     */
     @GetMapping("/accountRole/list")
-    public Result getAccountRole(){
-        return Result.success(accountService.selectAccountRole());
+    public Result getAccountRole(@PageDefault(number = 1, size = 10) PageRequest pageRequest, ListReqDTO listReqDTO){
+        return Result.success(accountService.selectAccountRole(pageRequest, listReqDTO));
     }
 
     /**

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

@@ -8,10 +8,14 @@ import com.usoftchina.saas.account.service.CompanyService;
 import com.usoftchina.saas.base.Result;
 import com.usoftchina.saas.context.BaseContextHolder;
 import com.usoftchina.saas.exception.ExceptionCode;
+import com.usoftchina.saas.file.dto.FileInfoDTO;
 import com.usoftchina.saas.utils.BeanMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.List;
+import java.util.Map;
+
 /**
  * @author yingp
  * @date 2018/10/2
@@ -47,6 +51,12 @@ public class CompanyController {
         return Result.success();
     }
 
+    @PostMapping("/save")
+    public Result save(@RequestBody CompanyRegDTO companyRegDTO){
+        companyService.update(companyRegDTO);
+        return Result.success();
+    }
+
     /**
      * 从其他平台复制已注册企业信息
      *
@@ -143,8 +153,10 @@ public class CompanyController {
     @GetMapping(path = "/read/current")
     public Result<CompanyDTO> getCurrentCompany() {
         Company company = companyService.findByPrimaryKey(BaseContextHolder.getCompanyId());
+        List<Map<String, FileInfoDTO>> fileInfoList = companyService.getFileByCompany(company);
         if (null != company) {
             CompanyDTO companyDTO = BeanMapper.map(company, CompanyDTO.class);
+            companyDTO.setFileInfoList(fileInfoList);
             return Result.success(companyDTO);
         }
         return Result.error(ExceptionCode.COMPANY_NOT_EXIST);

+ 7 - 1
base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/mapper/AccountRoleMapper.java

@@ -49,5 +49,11 @@ public interface AccountRoleMapper {
      */
     void deleteByRoleId(@Param("roleId") Long roleId);
 
-    List<AccountRoleDTO> selectAccountRole();
+    List<AccountRoleDTO> selectAccountRole(@Param("condition") String condition, @Param("companyId") Long companyId);
+
+    /**
+     * 解除账户绑定的所有角色
+     * @param id
+     */
+    void unBindRolesById(Long id);
 }

+ 7 - 1
base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/mapper/CompanyMapper.java

@@ -1,5 +1,6 @@
 package com.usoftchina.saas.account.mapper;
 
+import com.usoftchina.saas.account.dto.CompanyRegDTO;
 import com.usoftchina.saas.account.po.Company;
 import com.usoftchina.saas.account.vo.CompanyBaseVO;
 import org.apache.ibatis.annotations.Param;
@@ -75,5 +76,10 @@ public interface CompanyMapper {
      */
     int deleteByPrimaryKey(@Param("id") Long id);
 
-
+    /**
+     * 更新
+     * @param companyRegDTO
+     * @return
+     */
+    int updateByPrimaryKeySelective(CompanyRegDTO companyRegDTO);
 }

+ 28 - 0
base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/po/Company.java

@@ -24,6 +24,34 @@ public class Company implements Serializable {
      * 企业logo
      */
     private String logoUrl;
+    private String tel;
+    private String fax;
+    private String signet;
+
+    public String getTel() {
+        return tel;
+    }
+
+    public void setTel(String tel) {
+        this.tel = tel;
+    }
+
+    public String getFax() {
+        return fax;
+    }
+
+    public void setFax(String fax) {
+        this.fax = fax;
+    }
+
+    public String getSignet() {
+        return signet;
+    }
+
+    public void setSignet(String signet) {
+        this.signet = signet;
+    }
+
     private Date createTime;
     private long creatorId;
     private Date updateTime;

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

@@ -1,8 +1,11 @@
 package com.usoftchina.saas.account.service;
 
+import com.github.pagehelper.PageInfo;
 import com.usoftchina.saas.account.dto.AccountRoleDTO;
 import com.usoftchina.saas.account.po.Account;
 import com.usoftchina.saas.account.po.RoleResource;
+import com.usoftchina.saas.commons.dto.ListReqDTO;
+import com.usoftchina.saas.page.PageRequest;
 
 import java.util.List;
 
@@ -129,7 +132,7 @@ public interface AccountService {
      * 账号+角色信息列表
      * @return
      */
-    List<AccountRoleDTO> selectAccountRole();
+    PageInfo<AccountRoleDTO> selectAccountRole(PageRequest pageRequest, ListReqDTO listReqDTO);
 
     /**
      * 解除个人账号与角色的绑定

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

@@ -1,9 +1,12 @@
 package com.usoftchina.saas.account.service;
 
+import com.usoftchina.saas.account.dto.CompanyRegDTO;
 import com.usoftchina.saas.account.po.Company;
 import com.usoftchina.saas.account.vo.CompanyBaseVO;
+import com.usoftchina.saas.file.dto.FileInfoDTO;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author yingp
@@ -50,6 +53,14 @@ public interface CompanyService {
      */
     Company findByPrimaryKey(Long id);
 
+    /**
+     * 查找公司的附件信息
+     *
+     * @param company
+     * @return
+     */
+    List<Map<String,FileInfoDTO>> getFileByCompany(Company company);
+
     /**
      * 按个人账户查找全部绑定企业
      *
@@ -81,4 +92,10 @@ public interface CompanyService {
      * @param appId
      */
     void unbindApp(long companyId, String appId);
+
+    /**
+     * 更新公司信息
+     * @param companyRegDTO
+     */
+    void update(CompanyRegDTO companyRegDTO);
 }

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

@@ -1,5 +1,7 @@
 package com.usoftchina.saas.account.service.impl;
 
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
 import com.usoftchina.saas.account.cache.AccountCache;
 import com.usoftchina.saas.account.dto.AccountRoleDTO;
 import com.usoftchina.saas.account.mapper.AccountCompanyMapper;
@@ -11,7 +13,9 @@ import com.usoftchina.saas.account.po.Role;
 import com.usoftchina.saas.account.po.RoleResource;
 import com.usoftchina.saas.account.service.AccountService;
 import com.usoftchina.saas.account.service.RoleService;
+import com.usoftchina.saas.commons.dto.ListReqDTO;
 import com.usoftchina.saas.context.BaseContextHolder;
+import com.usoftchina.saas.page.PageRequest;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -121,6 +125,7 @@ public class AccountServiceImpl implements AccountService {
 
     @Override
     public void bindRoles(Long accountId, String roleIds) {
+        accountRoleMapper.unBindRolesById(accountId);
         String[] array = roleIds.split(",");
         for (int i = 0; i < array.length; i++){
             bindRole(accountId, Long.parseLong(array[i]));
@@ -128,8 +133,22 @@ public class AccountServiceImpl implements AccountService {
     }
 
     @Override
-    public List<AccountRoleDTO> selectAccountRole(){
-        return accountRoleMapper.selectAccountRole();
+    public PageInfo<AccountRoleDTO> selectAccountRole(PageRequest page, ListReqDTO listReqDTO){
+        PageHelper.startPage(page.getNumber(), page.getSize());
+        List<AccountRoleDTO> accountRoleDTOList = getList(listReqDTO);
+        //取分页信息
+        PageInfo<AccountRoleDTO> pageInfo = new PageInfo<AccountRoleDTO>(accountRoleDTOList);
+        return pageInfo;
+    }
+
+    private List<AccountRoleDTO> getList(ListReqDTO listReqDTO) {
+        Long companyId = BaseContextHolder.getCompanyId();
+        String condition = listReqDTO.getFinalCondition();
+        if(condition == null){
+            condition = "1=1";
+        }
+        List<AccountRoleDTO> AccountRoleDTOList = accountRoleMapper.selectAccountRole(condition, companyId);
+        return AccountRoleDTOList;
     }
 
     @Override

+ 29 - 2
base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/service/impl/CompanyServiceImpl.java

@@ -1,5 +1,6 @@
 package com.usoftchina.saas.account.service.impl;
 
+import com.usoftchina.saas.account.dto.CompanyRegDTO;
 import com.usoftchina.saas.account.mapper.AccountCompanyMapper;
 import com.usoftchina.saas.account.mapper.CompanyAppMapper;
 import com.usoftchina.saas.account.mapper.CompanyMapper;
@@ -7,12 +8,14 @@ import com.usoftchina.saas.account.po.Company;
 import com.usoftchina.saas.account.service.CompanyService;
 import com.usoftchina.saas.account.vo.CompanyBaseVO;
 import com.usoftchina.saas.context.BaseContextHolder;
+import com.usoftchina.saas.file.api.FileApi;
+import com.usoftchina.saas.file.dto.FileInfoDTO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.StringUtils;
 
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 
 /**
  * @author yingp
@@ -30,6 +33,9 @@ public class CompanyServiceImpl implements CompanyService{
     @Autowired
     private CompanyAppMapper companyAppMapper;
 
+    @Autowired
+    private FileApi fileApi;
+
     @Override
     public boolean save(Company company) {
         Date nowDate = new Date();
@@ -41,6 +47,13 @@ public class CompanyServiceImpl implements CompanyService{
         return companyMapper.insert(company) > 0;
     }
 
+    @Override
+    public void update(CompanyRegDTO companyRegDTO){
+        if (companyRegDTO.getId() > 0) {
+            companyMapper.updateByPrimaryKeySelective(companyRegDTO);
+        }
+    }
+
     @Override
     public Company findByName(String name) {
         return companyMapper.selectByName(name);
@@ -61,6 +74,20 @@ public class CompanyServiceImpl implements CompanyService{
         return companyMapper.selectByPrimaryKey(id);
     }
 
+    @Override
+    public List<Map<String, FileInfoDTO>> getFileByCompany(Company company){
+        List<Map<String,FileInfoDTO>> fileInfoList = new ArrayList<Map<String, FileInfoDTO>>();
+        Map<String, FileInfoDTO> fileInfoMap = new HashMap<String, FileInfoDTO>();
+        if (!StringUtils.isEmpty(company.getLogoUrl())){
+            fileInfoMap.put("logo", fileApi.getFileInfoByPath(company.getLogoUrl()).getData());
+        }
+        if (!StringUtils.isEmpty(company.getSignet())){
+            fileInfoMap.put("signet", fileApi.getFileInfoByPath(company.getSignet()).getData());
+        }
+        fileInfoList.add(fileInfoMap);
+        return fileInfoList;
+    }
+
     @Override
     public List<CompanyBaseVO> findBaseByAccountId(Long accountId) {
         return companyMapper.selectBaseByAccountId(accountId);

+ 11 - 0
base-servers/account/account-server/src/main/resources/mapper/AccountRoleMapper.xml

@@ -21,6 +21,17 @@
         FROM ac_account a
         left join ac_account_role b on a.id=b.account_id
         left join ac_role c  on b.role_id = c.id
+        <where>
+            <if test="condition!=null">
+                ${condition}
+            </if>
+            <if test="companyId!=null">
+                AND C.COMPANY_ID = #{companyId}
+            </if>
+        </where>
         group by a.id,a.username,a.realname,a.email,a.mobile
     </select>
+    <delete id="unBindRolesById" parameterType="java.lang.Long">
+        DELETE FROM AC_ACCOUNT_ROLE WHERE ACCOUNT_ID = #{id}
+    </delete>
 </mapper>

+ 32 - 4
base-servers/account/account-server/src/main/resources/mapper/CompanyMapper.xml

@@ -12,6 +12,11 @@
         <result column="create_time" jdbcType="TIMESTAMP" property="createTime"/>
         <result column="updater_id" jdbcType="BIGINT" property="updaterId"/>
         <result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/>
+        <result column="fax" jdbcType="VARCHAR" property="fax"/>
+        <result column="tel" jdbcType="VARCHAR" property="tel"/>
+        <result column="signet" jdbcType="VARCHAR" property="signet"/>
+        <result column="uu" jdbcType="VARCHAR" property="uu"/>
+        <result column="logo_url" jdbcType="VARCHAR" property="logoUrl"/>
     </resultMap>
     <resultMap id="BaseResultMap" type="com.usoftchina.saas.account.vo.CompanyBaseVO">
         <id column="id" jdbcType="BIGINT" property="id"/>
@@ -19,14 +24,16 @@
         <result column="logo_url" jdbcType="VARCHAR" property="logoUrl"/>
     </resultMap>
     <sql id="baseColumns">
-        id,name,business_code,address,uu,creator_id,create_time,updater_id,update_time
+        id,name,business_code,address,uu,creator_id,create_time,updater_id,update_time,fax,tel,signet,uu,logo_url
     </sql>
     <insert id="insert" parameterType="com.usoftchina.saas.account.po.Company"
             useGeneratedKeys="true" keyProperty="id">
-        insert into ac_company(name, business_code, address, logo_url, uu, creator_id, create_time, updater_id, update_time)
+        insert into ac_company(name, business_code, address, logo_url, creator_id, create_time, updater_id, update_time,
+        tel, fax, signet, uu)
         values (#{name,jdbcType=VARCHAR}, #{businessCode,jdbcType=VARCHAR},
-        #{address,jdbcType=VARCHAR}, #{logoUrl,jdbcType=VARCHAR}, #{uu,jdbcType=BIGINT}, #{creatorId,jdbcType=BIGINT},
-        #{createTime,jdbcType=TIMESTAMP}, #{updaterId,jdbcType=BIGINT}, #{updateTime,jdbcType=TIMESTAMP})
+        #{address,jdbcType=VARCHAR}, #{logoUrl,jdbcType=VARCHAR}, #{creatorId,jdbcType=BIGINT},
+        #{createTime,jdbcType=TIMESTAMP}, #{updaterId,jdbcType=BIGINT}, #{updateTime,jdbcType=TIMESTAMP},
+        #{tel,jdbcType=VARCHAR}, #{fax,jdbcType=VARCHAR}, #{signet,jdbcType=VARCHAR}, #{uu,jdbcType=VARCHAR})
     </insert>
     <insert id="insertSelective" parameterType="com.usoftchina.saas.account.po.Company"
             useGeneratedKeys="true" keyProperty="id">
@@ -109,4 +116,25 @@
     <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
         delete from ac_company where id=#{id,jdbcType=BIGINT}
     </delete>
+    <update id="updateByPrimaryKeySelective" parameterType="com.usoftchina.saas.account.po.Company">
+        UPDATE ac_company
+        <set>
+            <if test="address != null">
+                address = #{address,jdbcType=VARCHAR},
+            </if>
+            <if test="logoUrl != null">
+                logo_url = #{logoUrl,jdbcType=VARCHAR},
+            </if>
+            <if test="tel != null">
+                tel = #{tel,jdbcType=VARCHAR},
+            </if>
+            <if test="fax != null">
+                fax = #{fax,jdbcType=VARCHAR},
+            </if>
+            <if test="signet != null">
+                signet = #{signet,jdbcType=VARCHAR},
+            </if>
+        </set>
+        where id = #{id}
+    </update>
 </mapper>

+ 3 - 4
base-servers/auth/auth-common/src/main/java/com/usoftchina/saas/auth/common/cookie/CookieInfo.java

@@ -3,7 +3,6 @@ package com.usoftchina.saas.auth.common.cookie;
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 
 import java.io.Serializable;
-import java.util.Date;
 
 /**
  * @author yingp
@@ -105,7 +104,7 @@ public class CookieInfo implements Serializable {
     /**
      * 上次登录时间
      */
-    private Date lastLoginTime;
+    private Long lastLoginTime;
 
     public Long getUserUU() {
         return userUU;
@@ -243,11 +242,11 @@ public class CookieInfo implements Serializable {
         this.appId = appId;
     }
 
-    public Date getLastLoginTime() {
+    public Long getLastLoginTime() {
         return lastLoginTime;
     }
 
-    public void setLastLoginTime(Date lastLoginTime) {
+    public void setLastLoginTime(Long lastLoginTime) {
         this.lastLoginTime = lastLoginTime;
     }
 

+ 2 - 1
base-servers/auth/auth-server/src/main/java/com/usoftchina/saas/auth/controller/AuthController.java

@@ -167,7 +167,8 @@ public class AuthController {
                 JwtInfo jwtInfo = new JwtInfo(appId, companyId, accountDTO.getId(), accountDTO.getUsername(), accountDTO.getRealname());
                 JwtToken jwtToken = JwtHelper.generateToken(jwtInfo, privateKeyPath, expire);
                 TokenDTO tokenDTO = BeanMapper.map(jwtToken, TokenDTO.class);
-                socketMessageApi.sendToClient(clientId, JsonUtils.toJsonString(new AuthDTO(tokenDTO, accountDTO)));
+                socketMessageApi.sendToClient(clientId, "/sso/callback",
+                        JsonUtils.toJsonString(new AuthDTO(tokenDTO, accountDTO)));
             }
             ServletErrorUtils.writeJsonPMessage(response, callback, true);
         }

+ 13 - 13
base-servers/file/file-api/src/main/java/com/usoftchina/saas/file/api/FileApi.java

@@ -39,7 +39,7 @@ public interface FileApi {
      * @return
      */
     @PostMapping(value = "/folder")
-    Result<FolderDTO> createFolder(FolderSaveDTO newFolder);
+    Result<FolderDTO> createFolder(@RequestBody FolderSaveDTO newFolder);
 
     /**
      * 根据id查看文件详情
@@ -57,7 +57,7 @@ public interface FileApi {
      * @return
      */
     @GetMapping(value = "/info")
-    Result<FileInfoDTO> getFileInfoByPath(@RequestParam String path);
+    Result<FileInfoDTO> getFileInfoByPath(@RequestParam("path") String path);
 
     /**
      * 查看子文件
@@ -66,7 +66,7 @@ public interface FileApi {
      * @return
      */
     @GetMapping(value = "/list")
-    Result<List<FileInfoDTO>> listFiles(Long folderId);
+    Result<List<FileInfoDTO>> listFiles(@RequestParam("folderId") Long folderId);
 
     /**
      * 上传文件到指定文件夹
@@ -77,7 +77,7 @@ public interface FileApi {
      * @throws Exception
      */
     @PostMapping(value = "/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
-    Result<FileInfoDTO> upload(Long folderId, @RequestPart(value = "file") MultipartFile file) throws Exception;
+    Result<FileInfoDTO> upload(@RequestParam("folderId") Long folderId, @RequestPart(value = "file") MultipartFile file) throws Exception;
 
     /**
      * 文件下载
@@ -86,7 +86,7 @@ public interface FileApi {
      * @return
      */
     @GetMapping(value = "/download/{id}")
-    byte[] download(@PathVariable Long id);
+    byte[] download(@PathVariable("id") Long id);
 
     /**
      * 文件下载
@@ -95,7 +95,7 @@ public interface FileApi {
      * @return
      */
     @GetMapping(value = "/download")
-    byte[] downloadByPath(@RequestParam String path);
+    byte[] downloadByPath(@RequestParam("path") String path);
 
     /**
      * 删除文件
@@ -105,8 +105,8 @@ public interface FileApi {
      * @return
      */
     @GetMapping(value = "/delete/{id}")
-    Result delete(@PathVariable Long id,
-                  @RequestParam(required = false, defaultValue = "false") Boolean purge);
+    Result delete(@PathVariable("id") Long id,
+                  @RequestParam(required = false, defaultValue = "false", value = "purge") Boolean purge);
 
     /**
      * 删除文件
@@ -116,8 +116,8 @@ public interface FileApi {
      * @return
      */
     @GetMapping(value = "/delete")
-    Result deleteByPath(@PathVariable Long id,
-                  @RequestParam(required = false, defaultValue = "false") Boolean purge);
+    Result deleteByPath(@PathVariable("id") Long id,
+                  @RequestParam(required = false, defaultValue = "false", value = "purge") Boolean purge);
 
     /**
      * 还原文件
@@ -126,7 +126,7 @@ public interface FileApi {
      * @return
      */
     @GetMapping(value = "/restore/{id}")
-    Result restore(@PathVariable Long id);
+    Result restore(@PathVariable("id") Long id);
 
     /**
      * 还原文件
@@ -135,7 +135,7 @@ public interface FileApi {
      * @return
      */
     @GetMapping(value = "/restore")
-    Result restoreByPath(@RequestParam String path);
+    Result restoreByPath(@RequestParam("path") String path);
 
     /**
      * 移动文件到文件夹
@@ -145,5 +145,5 @@ public interface FileApi {
      * @return
      */
     @GetMapping(value = "/move")
-    Result move(@RequestParam Long fileId, @RequestParam Long folderId);
+    Result move(@RequestParam("fileId") Long fileId, @RequestParam("folderId") Long folderId);
 }

+ 2 - 0
base-servers/file/file-server/src/main/java/com/usoftchina/saas/file/FileApplication.java

@@ -10,6 +10,7 @@ import org.springframework.context.annotation.EnableMBeanExport;
 import org.springframework.context.annotation.Import;
 import org.springframework.jmx.support.RegistrationPolicy;
 import org.springframework.transaction.annotation.EnableTransactionManagement;
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
 
 /**
  * @author yingp
@@ -22,6 +23,7 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
 @EnableAuthClient
 @Import(FdfsClientConfig.class)
 @EnableMBeanExport(registration = RegistrationPolicy.IGNORE_EXISTING)
+@EnableSwagger2
 public class FileApplication {
     public static void main(String[] args) {
         SpringApplication.run(FileApplication.class, args);

+ 16 - 16
base-servers/file/file-server/src/main/java/com/usoftchina/saas/file/controller/FileController.java

@@ -82,7 +82,7 @@ public class FileController {
 
     @ApiOperation(value = "创建文件夹")
     @PostMapping(value = "/folder")
-    public Result<FolderDTO> createFolder(FolderSaveDTO newFolder) {
+    public Result<FolderDTO> createFolder(@RequestBody FolderSaveDTO newFolder) {
         BizAssert.notNull(newFolder.getName(), ExceptionCode.FOLDER_NAME_EMPTY);
         // 检查父文件夹
         FileInfo parent = checkFolder(newFolder.getFolderId());
@@ -93,7 +93,7 @@ public class FileController {
 
     @ApiOperation(value = "上传文件")
     @PostMapping(value = "/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
-    public Result<FileInfoDTO> upload(Long folderId, @RequestPart(value = "file") MultipartFile file) throws Exception {
+    public Result<FileInfoDTO> upload(@RequestParam("folderId") Long folderId, @RequestPart(value = "file") MultipartFile file) throws Exception {
         // 检查父文件夹
         FileInfo parent = checkFolder(folderId);
         FileInfo info = FileInfo.newFile(file).folder(parent.getId())
@@ -104,7 +104,7 @@ public class FileController {
 
     @ApiOperation(value = "下载文件")
     @GetMapping(value = "/download/{id}")
-    public void download(@PathVariable Long id, HttpServletResponse response) throws Exception {
+    public void download(@PathVariable("id") Long id, HttpServletResponse response) throws Exception {
         FileInfo info = fileService.findByPrimaryKey(id);
         if (null == info) {
             throw new BizException(ExceptionCode.FILE_NOT_EXISTS);
@@ -135,7 +135,7 @@ public class FileController {
 
     @ApiOperation(value = "下载文件")
     @GetMapping(value = "/download")
-    public void download(@RequestParam String path, HttpServletResponse response) throws Exception {
+    public void download(@RequestParam("path") String path, HttpServletResponse response) throws Exception {
         FileInfo info = fileService.findByFullPath(path);
         if (null == info) {
             throw new BizException(ExceptionCode.FILE_NOT_EXISTS);
@@ -145,7 +145,7 @@ public class FileController {
 
     @ApiOperation(value = "查看文件")
     @GetMapping(value = "/view/{id}")
-    public void view(@PathVariable Long id, HttpServletResponse response) throws Exception {
+    public void view(@PathVariable("id") Long id, HttpServletResponse response) throws Exception {
         FileInfo info = fileService.findByPrimaryKey(id);
         if (null == info) {
             throw new BizException(ExceptionCode.FILE_NOT_EXISTS);
@@ -169,7 +169,7 @@ public class FileController {
 
     @ApiOperation(value = "查看文件")
     @GetMapping(value = "/view")
-    public void view(@RequestParam String path, HttpServletResponse response) throws Exception {
+    public void view(@RequestParam("path") String path, HttpServletResponse response) throws Exception {
         FileInfo info = fileService.findByFullPath(path);
         if (null == info) {
             throw new BizException(ExceptionCode.FILE_NOT_EXISTS);
@@ -179,7 +179,7 @@ public class FileController {
 
     @ApiOperation(value = "查看文件信息")
     @GetMapping(value = "/info/{id}")
-    public Result<FileInfoDTO> getFileInfo(@PathVariable Long id) {
+    public Result<FileInfoDTO> getFileInfo(@PathVariable("id") Long id) {
         FileInfo info = fileService.findByPrimaryKey(id);
         if (null != info) {
             return Result.success(BeanMapper.map(info, FileInfoDTO.class));
@@ -189,7 +189,7 @@ public class FileController {
 
     @ApiOperation(value = "查看文件信息")
     @GetMapping(value = "/info")
-    public Result<FileInfoDTO> getFileInfo(@RequestParam String path) {
+    public Result<FileInfoDTO> getFileInfo(@RequestParam("path") String path) {
         FileInfo info = fileService.findByFullPath(path);
         if (null != info) {
             return Result.success(BeanMapper.map(info, FileInfoDTO.class));
@@ -199,7 +199,7 @@ public class FileController {
 
     @ApiOperation(value = "查看子文件")
     @GetMapping(value = "/list")
-    public Result<List<FileInfoDTO>> listFiles(Long folderId) {
+    public Result<List<FileInfoDTO>> listFiles(@RequestParam("folderId") Long folderId) {
         List<FileInfo> files = fileService.findByFolderId(checkFolder(folderId).getId());
         return Result.success(BeanMapper.mapList(files, FileInfoDTO.class));
     }
@@ -287,8 +287,8 @@ public class FileController {
 
     @ApiOperation(value = "删除文件")
     @GetMapping(value = "/delete/{id}")
-    public Result delete(@PathVariable Long id,
-                         @RequestParam(required = false, defaultValue = "false") Boolean purge) {
+    public Result delete(@PathVariable("id") Long id,
+                         @RequestParam(required = false, defaultValue = "false", value = "purge") Boolean purge) {
         FileInfo info = fileService.findByPrimaryKey(id);
         if (null != info) {
             if (purge) {
@@ -302,8 +302,8 @@ public class FileController {
 
     @ApiOperation(value = "删除文件")
     @GetMapping(value = "/delete")
-    public Result delete(@RequestParam String path,
-                         @RequestParam(required = false, defaultValue = "false") Boolean purge) {
+    public Result delete(@RequestParam("id") String path,
+                         @RequestParam(required = false, defaultValue = "false", value = "purge") Boolean purge) {
         FileInfo info = fileService.findByFullPath(path);
         if (null != info) {
             if (purge) {
@@ -317,7 +317,7 @@ public class FileController {
 
     @ApiOperation(value = "还原文件")
     @GetMapping(value = "/restore/{id}")
-    public Result restore(@PathVariable Long id) {
+    public Result restore(@PathVariable("id") Long id) {
         FileInfo info = fileService.findByPrimaryKey(id);
         if (null != info) {
             cascadeRestore(info);
@@ -327,7 +327,7 @@ public class FileController {
 
     @ApiOperation(value = "还原文件")
     @GetMapping(value = "/restore")
-    public Result restore(@RequestParam String path) {
+    public Result restore(@RequestParam("path") String path) {
         FileInfo info = fileService.findByFullPath(path);
         if (null != info) {
             cascadeRestore(info);
@@ -337,7 +337,7 @@ public class FileController {
 
     @ApiOperation(value = "移动文件到文件夹")
     @GetMapping(value = "/move")
-    public Result move(@RequestParam Long fileId, @RequestParam Long folderId) {
+    public Result move(@RequestParam("fileId") Long fileId, @RequestParam("folderId") Long folderId) {
         FileInfo info = fileService.findByPrimaryKey(fileId);
         if (null != info) {
             info.setFolderId(folderId);

+ 1 - 0
base-servers/gateway-server/src/main/resources/application.yml

@@ -183,3 +183,4 @@ auth:
     - /api/account/account/register
     - /api/auth/info
     - /ws/**
+    - /api/file/download

+ 10 - 5
base-servers/socket/socket-api/src/main/java/com/usoftchina/saas/socket/api/SocketMessageApi.java

@@ -2,8 +2,8 @@ package com.usoftchina.saas.socket.api;
 
 import com.usoftchina.saas.base.Result;
 import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 
 /**
  * @author yingp
@@ -15,18 +15,23 @@ public interface SocketMessageApi {
      * 发送信息给指定用户
      *
      * @param clientId
+     * @param dest
      * @param message
      * @return
      */
-    @PostMapping("/clients/{clientId}")
-    Result sendToClient(@PathVariable("clientId") String clientId, String message);
+    @PostMapping("/message/clients")
+    Result sendToClient(@RequestParam("clientId") String clientId,
+                        @RequestParam(value = "dest", required = false) String dest,
+                        @RequestParam("message") String message);
 
     /**
      * 广播信息
      *
+     * @param dest
      * @param message
      * @return
      */
-    @PostMapping("/clients")
-    Result sendToAllClients(String message);
+    @PostMapping("/message/clients/all")
+    Result sendToAllClients(@RequestParam(value = "dest", required = false) String dest,
+                            @RequestParam("message") String message);
 }

+ 23 - 8
base-servers/socket/socket-server/src/main/java/com/usoftchina/saas/socket/controller/MessageController.java

@@ -17,27 +17,42 @@ public class MessageController {
     @Resource
     private SimpMessagingTemplate simpMessagingTemplate;
 
-    @PostMapping("/clients/{clientId}")
-    public Result sendToClient(@PathVariable String clientId, String message) {
+    /**
+     * 发送信息给指定用户
+     *
+     * @param clientId
+     * @param dest
+     * @param message
+     * @return
+     */
+    @PostMapping("/clients")
+    public Result sendToClient(@RequestParam String clientId, String dest, @RequestParam String message) {
         /**
          * 前端使用
          * <pre>
-         *     stomp.subscribe('/clients/{clientId}/message', function(message){});
+         *     stomp.subscribe('/clients/{clientId}/{dest}', function(message){});
          * </pre>
          */
-        simpMessagingTemplate.convertAndSendToUser(clientId, "/message", message);
+        simpMessagingTemplate.convertAndSendToUser(clientId, dest, message);
         return Result.success();
     }
 
-    @PostMapping("/clients")
-    public Result sendToAllClients(String message) {
+    /**
+     * 广播信息
+     *
+     * @param dest
+     * @param message
+     * @return
+     */
+    @PostMapping("/clients/all")
+    public Result sendToAllClients(String dest, @RequestParam String message) {
         /**
          * 前端使用
          * <pre>
-         *     stomp.subscribe('/clients/message', function(message){});
+         *     stomp.subscribe('/clients/{dest}', function(message){});
          * </pre>
          */
-        simpMessagingTemplate.convertAndSend("/message", message);
+        simpMessagingTemplate.convertAndSend(dest, message);
         return Result.success();
     }
 }

+ 21 - 18
frontend/saas-web/app.json

@@ -259,21 +259,21 @@
      * are supported.
      *
      */
-     "loader": {
-         // This property controls how the loader manages caching for requests:
-         //
-         //   - true: allows requests to receive cached responses
-         //   - false: disable cached responses by adding a random "cache buster"
-         //   - other: a string (such as the build.timestamp shown here) to allow
-         //     requests to be cached for this build.
-         //
-         "cache": false,
-
-         // When "cache" is not true, this value is the request parameter used
-         // to control caching.
-         //
-         "cacheParam": "_dc"
-     },
+    "loader": {
+        // This property controls how the loader manages caching for requests:
+        //
+        //   - true: allows requests to receive cached responses
+        //   - false: disable cached responses by adding a random "cache buster"
+        //   - other: a string (such as the build.timestamp shown here) to allow
+        //     requests to be cached for this build.
+        //
+        "cache": false,
+
+        // When "cache" is not true, this value is the request parameter used
+        // to control caching.
+        //
+        "cacheParam": "_dc"
+    },
 
     /**
      * Settings specific to production builds.
@@ -296,7 +296,8 @@
         },*/
         "compressor":null,
         "server": {
-            "basePath": "http://192.168.0.181:8560",
+            //            "basePath": "http://192.168.253.181:8560",
+            "basePath": "http://192.168.253.35:8560",
             "urlPattern": "^\/api\/"
         }
     },
@@ -306,7 +307,8 @@
      */
     "testing": {
         "server": {
-            "basePath": "http://192.168.0.181:8560",
+            //            "basePath": "http://192.168.0.181:8560",
+            "basePath": "http://192.168.253.35:8560",
             "urlPattern": "^\/api\/"
         }
     },
@@ -319,7 +321,8 @@
             "delay": 250
         },
         "server": {
-            "basePath": "http://192.168.0.181:8560",
+            //            "basePath": "http://192.168.0.181:8560",
+            "basePath": "http://192.168.253.35:8560",
             "urlPattern": "^\/api\/"
         }
     },

+ 6 - 6
frontend/saas-web/app/Application.scss

@@ -99,8 +99,8 @@ body.launching {
 // toolbar button
 .x-btn-default-toolbar-small {
   color: #fff;
-  background-color: #308ee0;
-  border-color: #308ee0;
+  background-color: #35BAF6;
+  border-color: #35BAF6;
   min-width: 86px;
   transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
 
@@ -230,10 +230,10 @@ body.launching {
 }
 
 .x-panel-default-outer-border-rl {
-  border-right-color: #ABDAFF;
-  border-right-width: 1px;
-  border-left-color: #ABDAFF;
-  border-left-width: 1px;
+  border-right-color: #ABDAFF !important;
+  border-right-width: 1px !important;
+  border-left-color: #ABDAFF !important;
+  border-left-width: 1px !important;
 }
 
 .x-grid-item-alt {

+ 1 - 1
frontend/saas-web/app/util/BaseUtil.js

@@ -112,7 +112,7 @@ Ext.define('saas.util.BaseUtil', {
         },
 
         getCurrentUser: function () {
-            return saas.util.State.get('session').account;
+            return saas.util.State.get('session') ? saas.util.State.get('session').account : null;
         },
 
         /**

+ 7 - 4
frontend/saas-web/app/view/core/base/BasePanel.js

@@ -13,8 +13,8 @@ Ext.define('saas.view.core.base.BasePanel', {
     //基础属性
     frame:false,
     autoScroll: true,
-    border: 1,
-    bodyPadding: 5,
+    border: 0,
+    bodyPadding: 0,
     layout: 'fit',
     
     fieldDefaults: {
@@ -46,10 +46,12 @@ Ext.define('saas.view.core.base.BasePanel', {
                 xtype: 'toolbar',
                 dock: 'top',
                 style: {
-                    'border-bottom': '1px solid #35baf6 !important'
+                    // 'border-bottom': '1px solid #35baf6 !important',
+                    margin: '0 0 12px 0',
+                    padding: '10px 0 14px 8px',
                 },
                 items: me.searchField.concat([{
-                    cls:'x-formpanel-btn-orange',
+                    // cls:'x-formpanel-btn-orange',
                     xtype: 'button',
                     text: '查询',
                     handler: 'query'
@@ -58,6 +60,7 @@ Ext.define('saas.view.core.base.BasePanel', {
             items: [{
                 layout: 'fit',
                 xtype: 'core-base-gridpanel',
+                padding: '8 12',
                 dataUrl: gridDataUrl,
                 idField: gridIdField,
                 codeField: gridCodeField,

+ 2 - 0
frontend/saas-web/app/view/core/base/BasePanel.scss

@@ -1,4 +1,6 @@
 .core-base-basepanel{
+    background: #EEF4F9;
+
     .x-panel-default-outer-border-trl {
         border-top-color: #fff !important;
         border-top-width: 1px !important;

+ 8 - 1
frontend/saas-web/app/view/core/base/GridPanel.js

@@ -222,7 +222,7 @@ Ext.define('saas.view.core.base.GridPanel', {
     insertFirstColumn:function(columns){
         var me=this;
         if(columns.length>0 && columns[0].xtype!='actioncolumn'){
-            return Ext.Array.insert(columns,0,[{
+            Ext.Array.insert(columns,0,[{
                 xtype:'actioncolumn',
                 width:70,
                 dataIndex:'actioncolumn',
@@ -239,6 +239,13 @@ Ext.define('saas.view.core.base.GridPanel', {
                 }]
             }]);
         }
+        if(columns[columns.length - 1].flex != 1) {
+            columns.push({
+                flex: 1,
+                dataIndex:'virtual',
+                allowBlank: true
+            });
+        }
         return columns;
     },
 

+ 1 - 1
frontend/saas-web/app/view/core/chart/ChartBase.js

@@ -6,7 +6,7 @@ Ext.define('saas.view.core.chart.ChartBase', {
     ],
 
     height: 300,
-    bodyPadding: '16 0 16 0',
+    bodyPadding: 16,
 
     layout: 'fit',
 

+ 1 - 1
frontend/saas-web/app/view/core/dbfind/DbfindTrigger.js

@@ -162,7 +162,7 @@ Ext.define('saas.view.core.dbfind.DbfindTrigger', {
     },
 
     judge:function(f){
-        if(f.ownerCt.xtype.trim().toUpperCase().indexOf('QUERYFORMPANEL')>-1){
+        if(f.ownerCt.xtype.trim().toUpperCase().indexOf('QUERYFORMPANEL')>-1||(f.ownerCt.ownerCt&&f.ownerCt.ownerCt.xtype.trim().toUpperCase().indexOf('BASEPANEL')>-1)){
             f.belong = 'form';
             return f.ownerCt.ownerCt
         }else if(f.ownerCt.xtype.trim().toUpperCase().indexOf('FORM')>-1){

+ 26 - 44
frontend/saas-web/app/view/core/form/DataMultiCombo.js

@@ -18,53 +18,31 @@ Ext.define('saas.view.core.form.DataMultiCombo', {
             Ext.Ajax.request({  
                 url : me.dataUrl,
                 timeout: 100000000,  
-                method : 'post',  
-                params : {}  ,
+                async:false,
                 headers:{
                     'Access-Control-Allow-Origin': '*',
-                    'Authorization':  saas.util.State.get('session').token
+                    'Authorization':  saas.util.State.get('session').token,
+                    "Content-Type": 'application/json;charset=UTF-8'
                 },
                 success: function(fp, o){
-                    // if(o.result.error){
-                    //     showError(o.result.error);
-                    // } else {
-                    //     var msg = Ext.getCmp('baseform').ownerCt.ownerCt.down('htmleditor[name=msg]');
-                    //     var imgel=msg.getEl().dom.getElementsByTagName('iframe')[0].contentWindow.document.body;
-                    //     if(imgel.getElementsByTagName('img').length>0){
-                    //       imgel.removeChild(imgel.getElementsByTagName('img')[0]);
-                    //     }
-                    //     //Ext.getCmp('baseform').ownerCt.ownerCt.down('hidden').setValue('../../../'+o.result.path);
-                    //     Ext.getCmp('baseform').ownerCt.setValue(o.result.path);
-                    //     var element = document.createElement("img");
-                    //     element.src = basePath + 'common/download.action?path=' + o.result.path.replace(/\+/g, '%2B');
-                    //     element.style="width:100%;height:100%";            
-                    //     element.title = '&img' + o.result.filepath + ";";
-                    //     msg.setValue('<img src="'+element.src+'" style=width:100%;height:100%;>');
-                    // }
+                    var res = Ext.decode(fp.responseText);
+                    var data = res.data,datas=[];
+                    if(data.length>0){
+                        Ext.each(data, function(item, index){
+                            var o = [];
+                            o[0] = item.name;
+                            o[1] = item.id;
+                            datas.push(o);
+                        });
+                    }else{
+                        saas.util.BaseUtil.showToast('下拉框读取数据为空!');
+                    }
+                    me.datas = datas;
                 },
                 failure: function (response, opts) {
                     saas.util.BaseUtil.showToast('上传失败: ' + response.responseText);
                 }
             });
-            me.BaseUtil.request({
-                url: me.dataUrl,
-                params: '',
-                method: 'POST',
-                async:false
-            })
-            .then(function(localJson) {
-                if(localJson.success){
-                }
-            })
-            .catch(function(res) {
-                console.error(res);
-                saas.util.BaseUtil.showToast('保存失败: ' + res.message);
-            });
-
-            // datas: [
-            //     ["已审核", "已审核"],
-            //     ["未审核", "未审核"]
-            // ]
         }
         me.callParent(arguments);
     },
@@ -114,12 +92,12 @@ Ext.define('saas.view.core.form.DataMultiCombo', {
         for (; i < itemsLn; i++) {
             item = items[i];
             var checked = !!value.find(function(v) {
-                return v.value = iem[0];
+                return v.value == item[1];
             });
             menuItem = new Ext.menu.CheckItem({
-                text: item[1],
+                text: item[0],
                 checked: checked,
-                checkValue:item[0],
+                checkValue:item[1],
                 hideOnClick: false,
                 checkHandler: this.onCheckChange,
                 scope: this
@@ -147,7 +125,11 @@ Ext.define('saas.view.core.form.DataMultiCombo', {
         datas = me.datas,
         menu = me.menu;
         if(!Ext.isArray(items)) {
-            items = [items]
+            if(items.indexOf(',')>0){
+                items = items.split(',')
+            }else{
+                items = [items]
+            }
         }
         items.map(function(item, index) {
             if(Ext.isString(item)) {
@@ -155,8 +137,8 @@ Ext.define('saas.view.core.form.DataMultiCombo', {
                     return d[0] == item;
                 });
                 items[index] = {
-                    text: data[1],
-                    value: data[0]
+                    text: data[0],
+                    value: data[1]
                 }
             }
         })

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

@@ -132,7 +132,7 @@ Ext.define('saas.view.core.form.FormPanelController', {
         modelData = viewModel.getData();
 
         //form里面数据
-        var formData = form.getFormData();
+        var formData = form.getDirtyData();
 
         var params = {
             main:formData.main

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

@@ -61,7 +61,7 @@ Ext.define('saas.view.core.form.MultiCombo', {
         for (; i < itemsLn; i++) {
             item = items[i];
             var checked = !!value.find(function(v) {
-                return v.value = iem[0];
+                return v.value == iem[0];
             });
             menuItem = new Ext.menu.CheckItem({
                 text: item[1],

Некоторые файлы не были показаны из-за большого количества измененных файлов