Browse Source

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

jinsy 7 years ago
parent
commit
34ab30c228
54 changed files with 491 additions and 171 deletions
  1. 4 0
      applications/commons/commons-api/pom.xml
  2. 2 1
      applications/commons/commons-api/src/main/java/com/usoftchina/saas/commons/api/CommonService.java
  3. 2 1
      applications/commons/commons-api/src/main/java/com/usoftchina/saas/commons/api/MaxnumberService.java
  4. 2 1
      applications/commons/commons-api/src/main/java/com/usoftchina/saas/commons/api/MessageLogService.java
  5. 6 1
      applications/commons/commons-api/src/main/java/com/usoftchina/saas/commons/api/SystemRemindApi.java
  6. 18 0
      applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/dto/AddApplyDTO.java
  7. 57 0
      applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/dto/AddApplyReqDTO.java
  8. 27 0
      applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/po/AddApply.java
  9. 6 0
      applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/controller/SystemRemindController.java
  10. 1 0
      applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/mapper/EndProductMapper.java
  11. 3 0
      applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/mapper/SystemRemindMapper.java
  12. 8 0
      applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/service/SystemRemindService.java
  13. 1 0
      applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/service/impl/EndProductServiceImpl.java
  14. 19 7
      applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/service/impl/SystemRemindServiceImpl.java
  15. 4 0
      applications/commons/commons-server/src/main/resources/mapper/EndProductMapper.xml
  16. 27 6
      applications/commons/commons-server/src/main/resources/mapper/SystemRemindMapper.xml
  17. 4 0
      applications/document/document-api/pom.xml
  18. 2 1
      applications/document/document-api/src/main/java/com/usoftchina/saas/document/api/EmployeeApi.java
  19. 2 1
      applications/document/document-api/src/main/java/com/usoftchina/saas/document/api/ProductApi.java
  20. 2 1
      applications/document/document-api/src/main/java/com/usoftchina/saas/document/api/VendorApi.java
  21. 2 1
      applications/document/document-api/src/main/java/com/usoftchina/saas/document/api/WarehouseApi.java
  22. 10 6
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/CustomerServiceImpl.java
  23. 7 3
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/VendorServiceImpl.java
  24. 4 0
      applications/money/money-dto/pom.xml
  25. 4 0
      applications/purchase/purchase-api/pom.xml
  26. 2 1
      applications/purchase/purchase-api/src/main/java/com/usoftchina/saas/purchase/api/PurchaseService.java
  27. 1 1
      applications/purchase/purchase-server/src/main/resources/mapper/PurchaseReportMapper.xml
  28. 1 1
      applications/sale/sale-server/src/main/resources/mapper/SaleListMapper.xml
  29. 1 0
      applications/storage/storage-server/src/main/resources/mapper/ProdInOutReportMapper.xml
  30. 7 0
      base-servers/account/account-api/src/main/java/com/usoftchina/saas/account/api/CompanyApi.java
  31. 9 0
      base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/controller/AccountCenterController.java
  32. 11 0
      base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/controller/CompanyController.java
  33. 7 0
      base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/mapper/CompanyMapper.java
  34. 7 0
      base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/service/CompanyService.java
  35. 5 0
      base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/service/impl/CompanyServiceImpl.java
  36. 11 1
      base-servers/account/account-server/src/main/resources/mapper/CompanyMapper.xml
  37. 1 1
      base-servers/auth/auth-server/src/main/java/com/usoftchina/saas/auth/controller/AuthController.java
  38. 1 0
      framework/core/src/main/java/com/usoftchina/saas/exception/ExceptionCode.java
  39. 3 1
      frontend/saas-web/app/view/core/dbfind/DbfindTrigger.js
  40. 80 51
      frontend/saas-web/app/view/core/form/MseeageLog.js
  41. 1 0
      frontend/saas-web/app/view/core/form/field/DetailGridField.scss
  42. 1 1
      frontend/saas-web/app/view/core/report/ReportPanel.js
  43. 6 17
      frontend/saas-web/app/view/core/report/ReportPanel.scss
  44. 0 1
      frontend/saas-web/app/view/document/vendor/FormPanel.js
  45. 8 6
      frontend/saas-web/app/view/home/charts/MonthSale.js
  46. 1 1
      frontend/saas-web/app/view/main/Main.js
  47. 5 2
      frontend/saas-web/app/view/main/MainController.js
  48. 40 0
      frontend/saas-web/app/view/money/payBalance/FormPanelController.js
  49. 41 26
      frontend/saas-web/app/view/money/recBalance/FormPanelController.js
  50. 3 8
      frontend/saas-web/app/view/sale/report/Sale.js
  51. 1 19
      frontend/saas-web/app/view/sale/sale/FormPanel.js
  52. 7 1
      frontend/saas-web/app/view/sys/invitation/DataList.js
  53. 1 2
      frontend/saas-web/ext/packages/ux/src/feature/MySummary.js
  54. 5 0
      frontend/saas-web/overrides/form/field/Base.js

+ 4 - 0
applications/commons/commons-api/pom.xml

@@ -28,5 +28,9 @@
             <groupId>org.springframework.cloud</groupId>
             <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.usoftchina.saas</groupId>
+            <artifactId>auth-client</artifactId>
+        </dependency>
     </dependencies>
 </project>

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

@@ -1,9 +1,10 @@
 package com.usoftchina.saas.commons.api;
 
+import com.usoftchina.saas.auth.client.interceptor.ServiceFeignInterceptor;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestParam;
-@FeignClient("commons-server")
+@FeignClient(name = "commons-server", configuration = ServiceFeignInterceptor.class)
 public interface CommonService {
 
     @PostMapping("/action/audit")

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

@@ -1,4 +1,5 @@
 package com.usoftchina.saas.commons.api;
+import com.usoftchina.saas.auth.client.interceptor.ServiceFeignInterceptor;
 import com.usoftchina.saas.base.Result;
 
 import org.springframework.cloud.openfeign.FeignClient;
@@ -9,7 +10,7 @@ import org.springframework.web.bind.annotation.RequestParam;
  * @Author: guq
  * @Date: 2018/10/20
  */
-@FeignClient(name = "commons-server", fallback = MaxnumberServiceFallback.class)
+@FeignClient(name = "commons-server", fallback = MaxnumberServiceFallback.class, configuration = ServiceFeignInterceptor.class)
 public interface MaxnumberService {
     /**
      * @Description: 更新并获取最大编号

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

@@ -1,5 +1,6 @@
 package com.usoftchina.saas.commons.api;
 
+import com.usoftchina.saas.auth.client.interceptor.ServiceFeignInterceptor;
 import com.usoftchina.saas.commons.dto.DocBaseDTO;
 import com.usoftchina.saas.commons.po.Operation;
 import org.springframework.cloud.openfeign.FeignClient;
@@ -13,7 +14,7 @@ import org.springframework.web.context.request.async.DeferredResult;
 * @Author: guq
 * @Date: 2018/10/20
 */
-@FeignClient("commons-server")
+@FeignClient(name = "commons-server", configuration = ServiceFeignInterceptor.class)
 public interface MessageLogService {
 
     @RequestMapping("/messagelog/save")

+ 6 - 1
applications/commons/commons-api/src/main/java/com/usoftchina/saas/commons/api/SystemRemindApi.java

@@ -1,15 +1,20 @@
 package com.usoftchina.saas.commons.api;
 
+import com.usoftchina.saas.auth.client.interceptor.ServiceFeignInterceptor;
 import com.usoftchina.saas.base.Result;
 import com.usoftchina.saas.commons.dto.AddApplyDTO;
 import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
 
-@FeignClient("commons-server")
+@FeignClient(name = "commons-server", configuration = ServiceFeignInterceptor.class)
 public interface SystemRemindApi {
 
     @PostMapping("/remind/apply/save")
     Result save(@RequestBody AddApplyDTO addApplyDTO);
 
+    @GetMapping("/remind/apply/count")
+    Result<Integer> getApplyCountById(@RequestParam("accountId") Long accountId, @RequestParam("companyId")Long companyId);
 }

+ 18 - 0
applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/dto/AddApplyDTO.java

@@ -22,6 +22,24 @@ public class AddApplyDTO extends CommonBaseDTO implements Serializable {
     private String status;
     private Long creatorId;
     private Long companyId;
+    private String admin;
+    private String adminMobile;
+
+    public String getAdmin() {
+        return admin;
+    }
+
+    public void setAdmin(String admin) {
+        this.admin = admin;
+    }
+
+    public String getAdminMobile() {
+        return adminMobile;
+    }
+
+    public void setAdminMobile(String adminMobile) {
+        this.adminMobile = adminMobile;
+    }
 
     public String getRoleNames() {
         return roleNames;

+ 57 - 0
applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/dto/AddApplyReqDTO.java

@@ -0,0 +1,57 @@
+package com.usoftchina.saas.commons.dto;
+
+import java.io.Serializable;
+
+/**
+ * @Description 申请列表
+ * @Author chenwei
+ * @Date 2018/12/18
+ */
+public class AddApplyReqDTO implements Serializable {
+
+    private String companyName;
+    private String adminName;
+    private String adminMobile;
+    private String createTime;
+    private String status;
+
+    public String getCompanyName() {
+        return companyName;
+    }
+
+    public void setCompanyName(String companyName) {
+        this.companyName = companyName;
+    }
+
+    public String getAdminName() {
+        return adminName;
+    }
+
+    public void setAdminName(String adminName) {
+        this.adminName = adminName;
+    }
+
+    public String getAdminMobile() {
+        return adminMobile;
+    }
+
+    public void setAdminMobile(String adminMobile) {
+        this.adminMobile = adminMobile;
+    }
+
+    public String getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(String createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+}

+ 27 - 0
applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/po/AddApply.java

@@ -19,6 +19,33 @@ public class AddApply extends CommonBaseEntity implements Serializable {
      */
     private String status;
     private Long companyId;
+    private String companyName;
+    private String admin;
+    private String adminMobile;
+
+    public String getCompanyName() {
+        return companyName;
+    }
+
+    public void setCompanyName(String companyName) {
+        this.companyName = companyName;
+    }
+
+    public String getAdmin() {
+        return admin;
+    }
+
+    public void setAdmin(String admin) {
+        this.admin = admin;
+    }
+
+    public String getAdminMobile() {
+        return adminMobile;
+    }
+
+    public void setAdminMobile(String adminMobile) {
+        this.adminMobile = adminMobile;
+    }
 
     @Override
     public Long getCompanyId() {

+ 6 - 0
applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/controller/SystemRemindController.java

@@ -49,4 +49,10 @@ public class SystemRemindController {
         return Result.success();
     }
 
+    @GetMapping("/apply/count")
+    public Result getApplyCountById(@RequestParam("accountId") Long accountId, @RequestParam("companyId")Long companyId){
+        int count = systemRemindService.getApplyCountById(accountId, companyId);
+        return Result.success(count);
+    }
+
 }

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

@@ -21,6 +21,7 @@ public interface EndProductMapper {
     void updatePeriodStatus(@Param("status") Long status,@Param("period") String period, @Param("companyId") Long companyId);
 
     void updateRe(@Param("ym") String ym, @Param("companyId") Long companyId);
+    void updatePa(@Param("ym") String ym, @Param("companyId") Long companyId);
 
     int checkPay(Long companyId);
     int checkRec(Long companyId);

+ 3 - 0
applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/mapper/SystemRemindMapper.java

@@ -2,6 +2,7 @@ package com.usoftchina.saas.commons.mapper;
 
 import com.usoftchina.saas.base.mapper.CommonBaseMapper;
 import com.usoftchina.saas.commons.dto.AddApplyDTO;
+import com.usoftchina.saas.commons.dto.AddApplyReqDTO;
 import com.usoftchina.saas.commons.po.AddApply;
 import org.apache.ibatis.annotations.Param;
 
@@ -12,4 +13,6 @@ public interface SystemRemindMapper extends CommonBaseMapper<AddApply> {
     List<AddApplyDTO> getApplyList(@Param("condition") String condition, @Param("companyId") Long companyId);
 
     void confirmApply(@Param("status") String status, @Param("id") Long id, @Param("updaterId") Long updaterId);
+
+    int getApplyCountById(@Param("accountId") Long accountId, @Param("companyId") Long companyId);
 }

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

@@ -26,4 +26,12 @@ public interface SystemRemindService {
      * @param addApplyDTO
      */
     void confirmApply(AddApplyDTO addApplyDTO);
+
+    /**
+     * 获取当前用户在具体公司申请的条数
+     * @param accountId
+     * @param companyId
+     * @return
+     */
+    int getApplyCountById(Long accountId, Long companyId);
 }

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

@@ -88,6 +88,7 @@ public class EndProductServiceImpl implements EndProductService {
             throw new BizException(BizExceptionCode.BIZ_UNENDPRODUCT);
         }else{
             endProductMapper.updateRe(period, BaseContextHolder.getCompanyId());
+            endProductMapper.updatePa(period, BaseContextHolder.getCompanyId());
             endProductMapper.updatePeriodStatus(0L, period, BaseContextHolder.getCompanyId());
             messageLogService.customizeLog(generateMsgObj(Long.parseLong(period)), Operation.UNENDPRODUCT);
         }

+ 19 - 7
applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/service/impl/SystemRemindServiceImpl.java

@@ -8,6 +8,7 @@ import com.usoftchina.saas.account.dto.AccountDTO;
 import com.usoftchina.saas.account.dto.CompanyDTO;
 import com.usoftchina.saas.account.dto.RoleBaseDTO;
 import com.usoftchina.saas.commons.dto.AddApplyDTO;
+import com.usoftchina.saas.commons.dto.AddApplyReqDTO;
 import com.usoftchina.saas.commons.dto.ListReqDTO;
 import com.usoftchina.saas.commons.exception.BizExceptionCode;
 import com.usoftchina.saas.commons.mapper.SystemRemindMapper;
@@ -18,6 +19,7 @@ import com.usoftchina.saas.exception.BizException;
 import com.usoftchina.saas.exception.ExceptionCode;
 import com.usoftchina.saas.page.PageRequest;
 import com.usoftchina.saas.utils.BeanMapper;
+import com.usoftchina.saas.utils.CollectionUtils;
 import com.usoftchina.saas.utils.ObjectUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -51,6 +53,9 @@ public class SystemRemindServiceImpl implements SystemRemindService {
         AddApply addApply = new AddApply();
         addApply.setMobile(addApplyDTO.getMobile());
         addApply.setUsername(addApplyDTO.getUsername());
+        addApply.setCompanyName(addApplyDTO.getCompanyName());
+        addApply.setAdmin(addApplyDTO.getAdmin());
+        addApply.setAdminMobile(addApplyDTO.getAdminMobile());
         addApply.setStatus("2");
         addApply.setCompanyId(addApplyDTO.getCompanyId());
         addApply.setCreateTime(new Date());
@@ -70,14 +75,16 @@ public class SystemRemindServiceImpl implements SystemRemindService {
         for (AddApplyDTO addapplyDTO : addApplyDTOList) {
             AccountDTO accountDTO = accountApi.getAccount(addapplyDTO.getMobile()).getData();
             List<RoleBaseDTO> roleBaseDTOList = accountDTO.getRolesMap().get(companyId);
-            for (RoleBaseDTO roleBaseDTO : roleBaseDTOList){
-                roles.append(roleBaseDTO.getId() + ",");
-                roleNames.append(roleBaseDTO.getName() + ",");
+            if (!CollectionUtils.isEmpty(roleBaseDTOList)) {
+                for (RoleBaseDTO roleBaseDTO : roleBaseDTOList) {
+                    roles.append(roleBaseDTO.getId() + ",");
+                    roleNames.append(roleBaseDTO.getName() + ",");
+                }
+                addapplyDTO.setRoles(roles.substring(0, roles.length() - 1));
+                addapplyDTO.setRoleNames(roleNames.substring(0, roleNames.length() - 1));
+                roles.setLength(0);
+                roleNames.setLength(0);
             }
-            addapplyDTO.setRoles(roles.substring(0, roles.length() - 1));
-            addapplyDTO.setRoleNames(roleNames.substring(0, roleNames.length() - 1));
-            roles.setLength(0);
-            roleNames.setLength(0);
         }
         PageInfo<AddApplyDTO> pageInfo = new PageInfo<AddApplyDTO>(addApplyDTOList);
         return pageInfo;
@@ -98,4 +105,9 @@ public class SystemRemindServiceImpl implements SystemRemindService {
         //更新申请单状态
         systemRemindMapper.confirmApply(addApplyDTO.getStatus(), addApplyDTO.getId(), BaseContextHolder.getUserId());
     }
+
+    @Override
+    public int getApplyCountById(Long accountId, Long companyId) {
+        return systemRemindMapper.getApplyCountById(accountId, companyId);
+    }
 }

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

@@ -41,6 +41,10 @@
         UPDATE receivablesdetail SET RD_STATUS=0 WHERE date_format(rd_date, '%Y%m')=#{ym} AND companyid=#{companyId};
     </update>
 
+    <update id="updatePa" >
+        UPDATE payablesdetail SET PD_STATUS=0 WHERE date_format(PD_date, '%Y%m')=#{ym} AND companyid=#{companyId};
+    </update>
+
     <select id="checkPay" parameterType="java.lang.Long" resultType="java.lang.Integer">
         select count(1) from vendor where (ve_id,companyid) in (select pb_vendid,companyid from (
         select pbd_ym,pb_vendid,paybalance.companyid from paybalance,paybalancedetail where pb_id=pbd_pbid and pbd_slkind='期初余额'

+ 27 - 6
applications/commons/commons-server/src/main/resources/mapper/SystemRemindMapper.xml

@@ -9,6 +9,9 @@
         <result column="creatorId" jdbcType="INTEGER" property="creatorId" />
         <result column="creatorName" jdbcType="VARCHAR" property="creatorName" />
         <result column="updateTime" jdbcType="TIMESTAMP" property="updateTime" />
+        <result column="re_companyName" jdbcType="VARCHAR" property="companyName" />
+        <result column="re_admin" jdbcType="VARCHAR" property="admin" />
+        <result column="re_adminMobile" jdbcType="VARCHAR" property="adminMobile" />
     </resultMap>
     <select id="getApplyList" resultMap="BaseResultMap">
       SELECT * FROM REMIND
@@ -16,9 +19,6 @@
           <if test="condition != null">
               ${condition}
           </if>
-          <if test="companyId != null">
-              AND COMPANYID = #{companyId}
-          </if>
       </where>
       ORDER BY RE_STATUS DESC,RE_ID DESC
     </select>
@@ -26,6 +26,9 @@
         UPDATE REMIND SET RE_STATUS = #{status}, updateTime = now(), updaterId = #{updaterId}
         where re_id = #{id}
     </update>
+    <select id="getApplyCountById" resultType="int">
+        SELECT COUNT(*) FROM REMIND WHERE COMPANYID = #{companyId} AND CREATORID = #{accountId}
+    </select>
     <insert id="insertSelective" parameterType="com.usoftchina.saas.commons.po.AddApply">
         <selectKey resultType="java.lang.Long" keyProperty="id">
             SELECT LAST_INSERT_ID() AS ID
@@ -51,7 +54,16 @@
                 companyId,
             </if>
             <if test="status != null">
-                re_status
+                re_status,
+            </if>
+            <if test="admin != null">
+                re_admin,
+            </if>
+            <if test="companyName != null">
+                re_companyName,
+            </if>
+            <if test="adminMobile != null">
+                re_adminMobile
             </if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
@@ -71,10 +83,19 @@
                 #{createTime, jdbcType=TIMESTAMP},
             </if>
             <if test="companyId != null">
-                #{companyId, jdbcType=TIMESTAMP},
+                #{companyId, jdbcType=INTEGER},
             </if>
             <if test="status != null">
-                #{status, jdbcType=TIMESTAMP}
+                #{status, jdbcType=VARCHAR},
+            </if>
+            <if test="admin != null">
+                #{admin, jdbcType=VARCHAR},
+            </if>
+            <if test="companyName != null">
+                #{companyName, jdbcType=VARCHAR},
+            </if>
+            <if test="adminMobile != null">
+                #{adminMobile, jdbcType=VARCHAR}
             </if>
         </trim>
     </insert>

+ 4 - 0
applications/document/document-api/pom.xml

@@ -26,6 +26,10 @@
             <groupId>com.usoftchina.saas</groupId>
             <artifactId>core</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.usoftchina.saas</groupId>
+            <artifactId>auth-client</artifactId>
+        </dependency>
     </dependencies>
 
 </project>

+ 2 - 1
applications/document/document-api/src/main/java/com/usoftchina/saas/document/api/EmployeeApi.java

@@ -1,11 +1,12 @@
 package com.usoftchina.saas.document.api;
 
+import com.usoftchina.saas.auth.client.interceptor.ServiceFeignInterceptor;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
 
 import java.util.Map;
 
-@FeignClient(name = "document-server")
+@FeignClient(name = "document-server", configuration = ServiceFeignInterceptor.class)
 public interface EmployeeApi {
 
     @GetMapping("/employee/getEmployeeByAccount")

+ 2 - 1
applications/document/document-api/src/main/java/com/usoftchina/saas/document/api/ProductApi.java

@@ -1,5 +1,6 @@
 package com.usoftchina.saas.document.api;
 
+import com.usoftchina.saas.auth.client.interceptor.ServiceFeignInterceptor;
 import com.usoftchina.saas.document.dto.ProductDTO;
 import com.usoftchina.saas.page.PageRequest;
 import org.springframework.cloud.openfeign.FeignClient;
@@ -9,7 +10,7 @@ import org.springframework.web.bind.annotation.RequestParam;
 
 import java.util.List;
 
-@FeignClient(name = "document-server")
+@FeignClient(name = "document-server", configuration = ServiceFeignInterceptor.class)
 public interface ProductApi {
 
     /**

+ 2 - 1
applications/document/document-api/src/main/java/com/usoftchina/saas/document/api/VendorApi.java

@@ -1,5 +1,6 @@
 package com.usoftchina.saas.document.api;
 
+import com.usoftchina.saas.auth.client.interceptor.ServiceFeignInterceptor;
 import com.usoftchina.saas.base.Result;
 import com.usoftchina.saas.document.dto.VendorDTO;
 import com.usoftchina.saas.page.PageRequest;
@@ -9,7 +10,7 @@ import org.springframework.web.bind.annotation.RequestParam;
 
 import java.util.List;
 
-@FeignClient(name = "document-server")
+@FeignClient(name = "document-server", configuration = ServiceFeignInterceptor.class)
 public interface VendorApi {
 
     /**

+ 2 - 1
applications/document/document-api/src/main/java/com/usoftchina/saas/document/api/WarehouseApi.java

@@ -1,5 +1,6 @@
 package com.usoftchina.saas.document.api;
 
+import com.usoftchina.saas.auth.client.interceptor.ServiceFeignInterceptor;
 import com.usoftchina.saas.base.Result;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -8,7 +9,7 @@ import org.springframework.web.bind.annotation.RequestBody;
 
 import java.util.Map;
 
-@FeignClient(name = "document-server")
+@FeignClient(name = "document-server", configuration = ServiceFeignInterceptor.class)
 public interface WarehouseApi {
 
     @PostMapping("/warehouse/post")

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

@@ -227,9 +227,9 @@ public class CustomerServiceImpl extends CommonBaseServiceImpl<CustomerMapper, C
 
                 //限制关联单据不可修改金额
                 Customer customer1 = getMapper().selectByPrimaryKey(customer.getId());
-                if (customer.getCu_beginaramount().doubleValue() != customer1.getCu_beginaramount().doubleValue() ||
+                if (customer.getCu_beginaramount()!=null&&(customer.getCu_beginaramount().doubleValue() != customer1.getCu_beginaramount().doubleValue() ||
                         customer.getCu_beginprerecamount().doubleValue() != customer1.getCu_beginprerecamount().doubleValue() ||
-                        customer1.getCu_begindate().compareTo(customer.getCu_begindate()) != 0){
+                        customer1.getCu_begindate().compareTo(customer.getCu_begindate()) != 0)){
                     throw new BizException(BizExceptionCode.BIZ_RELUPDATE_AMOUNT);
                 }
             }
@@ -303,8 +303,8 @@ public class CustomerServiceImpl extends CommonBaseServiceImpl<CustomerMapper, C
         getMapper().updateByPrimaryKeySelective(customer);
 
         //插入中间表
-        Double amount = (customer.getCu_beginaramount() == null ? new Double(0) : customer.getCu_beginaramount())
-                - (customer.getCu_beginprerecamount() == null ? new Double(0) : customer.getCu_beginprerecamount());
+        Double amount = (main.getCu_beginaramount() == null ? new Double(0) : main.getCu_beginaramount())
+                - (main.getCu_beginprerecamount() == null ? new Double(0) : main.getCu_beginprerecamount());
         Subledger subledger = new Subledger();
         subledger.setSl_code("期初余额");
         subledger.setSl_kind("期初余额");
@@ -318,11 +318,15 @@ public class CustomerServiceImpl extends CommonBaseServiceImpl<CustomerMapper, C
         subledger.setCreatorName(BaseContextHolder.getUserName());
         if (amount > new Double(0)){
             subledger.setSl_amount(amount);
+            subledger.setSl_preamount(new Double(0));
         }else {
-            subledger.setSl_preamount(amount);
+            subledger.setSl_amount(new Double(0));
+            subledger.setSl_preamount(Math.abs(amount));
         }
         subledger.setSl_orderamount(Math.abs(amount));
-        subledger.setSl_namount(Math.abs(amount));
+        subledger.setSl_namount((subledger.getSl_orderamount() == null ? new Double(0) : subledger.getSl_orderamount()) +
+                (subledger.getSl_discount() == null ? new Double(0) : subledger.getSl_discount()) -
+                (subledger.getSl_yamount() == null ? new Double(0) : subledger.getSl_yamount()));
 
         Long sl_id  = subledgerMapper.selectByKindCodeCustid("期初余额","期初余额",
                 Math.toIntExact(customer.getId()),BaseContextHolder.getCompanyId(),YM);

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

@@ -279,12 +279,16 @@ public class VendorServiceImpl extends CommonBaseServiceImpl<VendorMapper, Vendo
         subledger.setSl_date(DateUtils.getFirstDay(main.getVe_begindate()));
         subledger.setSl_ym(DateUtils.getYm(main.getVe_begindate()));
         if (amount > new Double(0)){
-            subledger.setSl_amount(amount);
+            subledger.setSl_preamount(new Double(0));
+            subledger.setSl_amount(Math.abs(amount));
         }else {
-            subledger.setSl_preamount(amount);
+            subledger.setSl_amount(new Double(0));
+            subledger.setSl_preamount(Math.abs(amount));
         }
         subledger.setSl_orderamount(Math.abs(amount));
-        subledger.setSl_namount(Math.abs(amount));
+        subledger.setSl_namount((subledger.getSl_orderamount() == null ? new Double(0) : subledger.getSl_orderamount()) +
+                (subledger.getSl_discount() == null ? new Double(0) : subledger.getSl_discount()) -
+                (subledger.getSl_yamount() == null ? new Double(0) : subledger.getSl_yamount()));
         subledger.setCreateTime(new Date());
         subledger.setCreatorId(BaseContextHolder.getUserId());
         subledger.setCreatorName(BaseContextHolder.getUserName());

+ 4 - 0
applications/money/money-dto/pom.xml

@@ -28,6 +28,10 @@
             <groupId>io.undertow</groupId>
             <artifactId>undertow-servlet</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.usoftchina.saas</groupId>
+            <artifactId>commons-dto</artifactId>
+        </dependency>
     </dependencies>
 
 

+ 4 - 0
applications/purchase/purchase-api/pom.xml

@@ -26,5 +26,9 @@
             <groupId>com.usoftchina.saas</groupId>
             <artifactId>core</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.usoftchina.saas</groupId>
+            <artifactId>auth-client</artifactId>
+        </dependency>
     </dependencies>
 </project>

+ 2 - 1
applications/purchase/purchase-api/src/main/java/com/usoftchina/saas/purchase/api/PurchaseService.java

@@ -1,11 +1,12 @@
 package com.usoftchina.saas.purchase.api;
 
+import com.usoftchina.saas.auth.client.interceptor.ServiceFeignInterceptor;
 import com.usoftchina.saas.commons.dto.DocBaseDTO;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 
-@FeignClient("purchase-server")
+@FeignClient(name = "purchase-server", configuration = ServiceFeignInterceptor.class)
 public interface PurchaseService {
 
     @PostMapping("/purchase/getPurchaseCode")

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

@@ -124,7 +124,7 @@
         and   purchase.companyId = #{companyId}
       </if>
       and pu_statuscode='AUDITED'
-    </where>  order by pu_date desc
+    </where>  order by pu_id desc,pd_id
   </select>
 
 

+ 1 - 1
applications/sale/sale-server/src/main/resources/mapper/SaleListMapper.xml

@@ -91,7 +91,7 @@
             <if test="companyId != null">
                 and   sale.companyId = #{companyId}
             </if>
-        </where>  order by sa_date desc
+        </where>  order by sa_id desc,sd_id
     </select>
 
     <select id="selectSaleByCondition" resultMap="BaseResultMap">

+ 1 - 0
applications/storage/storage-server/src/main/resources/mapper/ProdInOutReportMapper.xml

@@ -56,6 +56,7 @@
         and  companyid = #{companyId}
       </if>
     </where>
+    order by pd_prodcode,pi_date desc
   </select>
 
 

+ 7 - 0
base-servers/account/account-api/src/main/java/com/usoftchina/saas/account/api/CompanyApi.java

@@ -79,4 +79,11 @@ public interface CompanyApi {
     @GetMapping("/company/find/{name}")
     Result<List<CompanyRspDTO>> getCompanyByFuzzyName(@PathVariable("name") String name);
 
+    /**
+     * 按企业ID查找企业及企业管理员信息
+     * @param id
+     * @return
+     */
+    @GetMapping(path = "/company/find", params = "id")
+    Result<CompanyRspDTO> getCompanyRspDTOById(@RequestParam("id") Long id);
 }

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

@@ -7,6 +7,7 @@ import com.usoftchina.saas.account.service.AccountCenterService;
 import com.usoftchina.saas.base.Result;
 import com.usoftchina.saas.commons.api.SystemRemindApi;
 import com.usoftchina.saas.commons.dto.AddApplyDTO;
+import com.usoftchina.saas.exception.BizException;
 import com.usoftchina.saas.exception.ExceptionCode;
 import com.usoftchina.sso.api.SsoUserSpaceApi;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -114,10 +115,18 @@ public class AccountCenterController {
      */
     @PostMapping("/company/join")
     public Result joinCompany(@RequestBody BindCompanyDTO bindCompanyDTO){
+        Integer count = systemRemindApi.getApplyCountById(bindCompanyDTO.getAccountId(), bindCompanyDTO.getCompanyId()).getData();
+        if (count > 0){
+            throw new BizException(ExceptionCode.APPLY_DOING_EXIST);
+        }
         AddApplyDTO addApplyDTO = new AddApplyDTO();
         AccountDTO accountDTO = accountApi.getAccountById(bindCompanyDTO.getAccountId()).getData();
+        CompanyRspDTO companyRspDTO = companyApi.getCompanyRspDTOById(bindCompanyDTO.getCompanyId()).getData();
         addApplyDTO.setMobile(accountDTO.getMobile());
         addApplyDTO.setCompanyId(bindCompanyDTO.getCompanyId());
+        addApplyDTO.setCompanyName(companyRspDTO.getName());
+        addApplyDTO.setAdmin(companyRspDTO.getAdmin());
+        addApplyDTO.setAdminMobile(companyRspDTO.getAdminMobile());
         addApplyDTO.setUsername(bindCompanyDTO.getUsername());
         addApplyDTO.setStatus("2");
         systemRemindApi.save(addApplyDTO);

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

@@ -161,6 +161,17 @@ public class CompanyController {
         return Result.error(ExceptionCode.COMPANY_NOT_EXIST);
     }
 
+    /**
+     * 按企业ID查找企业及企业管理员信息
+     * @param id
+     * @return
+     */
+    @GetMapping(path = "/find", params = "id")
+    public Result<CompanyRspDTO> getCompanyRspDTOById(@RequestParam("id") Long id){
+        CompanyRspDTO companyRspDTO = companyService.getCompanyRspDTOById(id);
+        return Result.success(companyRspDTO);
+    }
+
     /**
      * 当前登录的公司的信息
      *

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

@@ -97,4 +97,11 @@ public interface CompanyMapper {
      * @return
      */
     List<CompanyRspDTO> findByFuzzyName(@Param("name") String name);
+
+    /**
+     * 按企业ID查找企业及企业管理员信息
+     * @param id
+     * @return
+     */
+    CompanyRspDTO getCompanyRspDTOById(Long id);
 }

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

@@ -113,4 +113,11 @@ public interface CompanyService {
      * @return
      */
     List<CompanyRspDTO> findByFuzzyName(String name);
+
+    /**
+     * 按企业ID查找企业及企业管理员信息
+     * @param id
+     * @return
+     */
+    CompanyRspDTO getCompanyRspDTOById(Long id);
 }

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

@@ -65,6 +65,11 @@ public class CompanyServiceImpl implements CompanyService{
         return companyMapper.findByFuzzyName(name);
     }
 
+    @Override
+    public CompanyRspDTO getCompanyRspDTOById(Long id) {
+        return companyMapper.getCompanyRspDTOById(id);
+    }
+
     @Override
     public Company findByName(String name) {
         return companyMapper.selectByName(name);

+ 11 - 1
base-servers/account/account-server/src/main/resources/mapper/CompanyMapper.xml

@@ -123,7 +123,17 @@
           INNER JOIN ac_account aa on ac.creator_id = aa.id
         WHERE
           ac.name LIKE concat( '%', #{name,jdbcType=VARCHAR}, '%' )
-          OR aa.realname LIKE concat('%', '陈炜', '%')
+          OR aa.realname LIKE concat('%', #{name,jdbcType=VARCHAR}, '%')
+        ORDER BY ac.id
+    </select>
+    <select id="getCompanyRspDTOById" resultType="com.usoftchina.saas.account.dto.CompanyRspDTO">
+        SELECT
+          ac.id,ac.name,aa.realname admin,aa.mobile adminMobile
+        FROM
+          ac_company ac
+          INNER JOIN ac_account aa on ac.creator_id = aa.id
+        WHERE
+          ac.id = #{id}
         ORDER BY ac.id
     </select>
     <select id="selectByUu" parameterType="java.lang.Long" resultMap="FullResultMap">

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

@@ -65,7 +65,7 @@ public class AuthController {
     @Value("${auth.header:Authorization}")
     private String authHeader;
 
-    @Value("${auth.expire:1800000}")
+    @Value("${auth.expire:18000}")
     private int expire;
 
     @Value("${auth.max-errors:5}")

+ 1 - 0
framework/core/src/main/java/com/usoftchina/saas/exception/ExceptionCode.java

@@ -47,6 +47,7 @@ public enum ExceptionCode implements BaseExceptionCode {
     MISSING_PERMISSIONS(53030, "权限缺失"),
     USER_COMPANY_EXIST(53007, "企业已存在账户"),
     ROLE_HAS_USE(54030, "存在已使用该角色的账户,不允许删除"),
+    APPLY_DOING_EXIST(54031, "已存在待处理的加入申请"),
 
     // 文件相关
     FOLDER_NOT_EXISTS(55000, "文件夹不存在"),

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

@@ -125,7 +125,9 @@ Ext.define('saas.view.core.dbfind.DbfindTrigger', {
     },
     onTriggerClick:function(f){
         var me = this;
-        this.fireEvent('beforetriggerclick', this);
+        if(!this.fireEvent('beforetriggerclick', this)) {
+            return;
+        };
         f.blur(f);
         //判断dbfindtrigger归属
         f.judge(f);//form

+ 80 - 51
frontend/saas-web/app/view/core/form/MseeageLog.js

@@ -10,25 +10,28 @@ Ext.define('saas.view.core.form.MseeageLog', {
         width: 150,
         name: 'ml_man',
         xtype: 'textfield',
-        emptyText : '操作人员'
+        emptyText : '操作人员',
+        enableKeyEvents: true,
+        listeners: {
+            keydown: {
+                fn: function(th, e, eOpts) {
+                    if(e.keyCode == 13) {
+                        var grid = th.up('core-form-mseeageLog');
+                        grid.condition = grid.getConditions();
+                        grid.store.loadPage(1);
+                    }
+                }
+            }
+        }
     },{
         cls:'x-formpanel-btn-blue',
         xtype:'button',
         text:'查询',
+        margin: '0 0 0 10',
         listeners: {
             click:function(b){
-                var grid = b.ownerCt.ownerCt;
-                var tbar = b.ownerCt;
-                grid.condition = '';
-                var items = [];
-                var fields = tbar.items.items.map(f => f.name);
-                Ext.each(fields, function(f, index){
-                    var field = tbar.down('[name='+f+']');
-                    if(field){
-                        items.push(field);
-                    }
-                });
-                grid.condition = grid.getCondition(items);
+                var grid = b.up('core-form-mseeageLog');
+                grid.condition = grid.getConditions();
                 grid.store.loadPage(1);
             }
         }
@@ -37,16 +40,16 @@ Ext.define('saas.view.core.form.MseeageLog', {
     //字段属性
     columns : [{
         text : "id", 
-        width : 0, 
+        hidden: true, 
         dataIndex : "id", 
         xtype : "numbercolumn",   
     },{
         text:'单据类型',
         dataIndex : "ml_name",
-        width : 0, 
+        hidden: true
     },{
         text : "单据编号", 
-        width : 0, 
+        hidden: true,
         dataIndex : "ml_code"
     },{
         xtype:'datecolumn',
@@ -132,11 +135,13 @@ Ext.define('saas.view.core.form.MseeageLog', {
         me.callParent(arguments);
     },
 
-     /**
+    /**
      * 获得过滤条件
      */
-    getCondition: function(items) {
+    getConditions: function() {
         var me = this,
+        tbar = me.getDockedItems()[0],
+        items = tbar.items.items,
         conditions = [{
             type: 'number',
             field: 'ml_keyvalue',
@@ -162,10 +167,9 @@ Ext.define('saas.view.core.form.MseeageLog', {
                         value: func(value)
                     }
                 }else {
-                    var xtype = item.xtype || 'textfield',
-                    type = item.fieldType || me.getDefaultFieldType(xtype),
-                    operation = item.operation || me.getDefaultFieldOperation(xtype),
-                    conditionValue = me.getConditionValue(xtype, value);
+                    var type = item.fieldType || me.getDefaultFieldType(item),
+                    operation = item.operation || me.getDefaultFieldOperation(item),
+                    conditionValue = me.getConditionValue(item, value);
         
                     if(!conditionValue) {
                         continue;
@@ -179,38 +183,58 @@ Ext.define('saas.view.core.form.MseeageLog', {
                 }
                 conditions.push(condition);
             }
-        };
+        }
+
         return conditions;
     },
 
-    getDefaultFieldType: function(xtype) {
-        var type;
+    /**
+     * 只要arr1和arr2中存在相同项即返回真
+     */
+    isContainsAny: function (arr1, arr2) {
+        for (var i = 0; i < arr2.length; i++) {
+            var a2 = arr2[i];
+            if (!!arr1.find(function (a1) {
+                    return a1 == a2
+                })) {
+                return true;
+            }
+        }
+        return false;
+    },
+
+    getDefaultFieldType: function (field) {
+        var me = this,
+            xtypes = field.getXTypes().split('/'),
+            type;
 
-        if(Ext.Array.contains(['numberfield'], xtype)) {
+        if (me.isContainsAny(xtypes, ['numberfield'])) {
             type = 'number';
-        }else if(Ext.Array.contains(['datefield', 'condatefield'], xtype)) {
+        } else if (me.isContainsAny(xtypes, ['datefield', 'condatefield', 'conmonthfield'])) {
             type = 'date';
-        }else if(Ext.Array.contains(['combobox', 'multicombo', 'combo', 'radiofield', 'radio'], xtype)) {
+        } else if (me.isContainsAny(xtypes, ['dbfindtrigger'])) {
+            type = 'enum';
+        } else if (me.isContainsAny(xtypes, ['combobox', 'multicombo', 'combo', 'radiofield', 'radio'])) {
             type = 'enum';
-        }else {
+        } else {
             type = 'string';
         }
 
         return type;
     },
 
-    getDefaultFieldOperation: function(xtype) {
-        var operation;
+    getDefaultFieldOperation: function (field) {
+        var me = this,
+            xtypes = field.getXTypes().split('/'),
+            operation;
 
-        if(Ext.Array.contains(['numberfield'], xtype)) {
+        if (me.isContainsAny(xtypes, ['numberfield', 'datefield', 'dbfindtrigger'])) {
             operation = '=';
-        }else if(Ext.Array.contains(['datefield'], xtype)) {
-            operation = '=';
-        }else if(Ext.Array.contains(['condatefield'], xtype)) {
+        } else if (me.isContainsAny(xtypes, ['condatefield', 'conmonthfield'])) {
             operation = 'between';
-        }else if(Ext.Array.contains(['combobox', 'multicombo', 'combo'], xtype)) {
+        } else if (me.isContainsAny(xtypes, ['multidbfindtrigger', 'combobox', 'multicombo', 'combo'])) {
             operation = 'in';
-        }else {
+        } else {
             operation = 'like';
         }
 
@@ -220,30 +244,35 @@ Ext.define('saas.view.core.form.MseeageLog', {
     /**
      * 处理部分字段值
      */
-    getConditionValue: function(xtype, value) {
-        var conditionValue;
-        if(xtype == 'datefield') {
+    getConditionValue: function (field, value) {
+        var me = this,
+            xtypes = field.getXTypes().split('/'),
+            conditionValue;
+        if (me.isContainsAny(xtypes, ['datefield'])) {
             conditionValue = Ext.Date.format(new Date(from), 'Y-m-d H:i:s');
-        }else if(xtype == 'condatefield') {
+        } else if (me.isContainsAny(xtypes, ['conmonthfield'])) {
+            var from = value.from,
+                to = value.to;
+
+            conditionValue = from + ',' + to;
+        } else if (me.isContainsAny(xtypes, ['condatefield'])) {
             var from = value.from,
-            to = value.to;
+                to = value.to;
 
             conditionValue = Ext.Date.format(new Date(from), 'Y-m-d 00:00:00') + ',' + Ext.Date.format(new Date(to), 'Y-m-d 23:59:59');
-        }else if(xtype == 'combobox' || xtype == 'combo') {
+        } else if (me.isContainsAny(xtypes, ['dbfindtrigger'])) {
+            conditionValue = value;
+        } else if (me.isContainsAny(xtypes, ['combobox', 'combo'])) {
             conditionValue = '\'' + value + '\'';
-        }else if(xtype == 'multicombo') {
-            conditionValue = value.map(function(v) {
+        } else if (me.isContainsAny(xtypes, ['multicombo'])) {
+            conditionValue = value.map ? value.map(function (v) {
                 return '\'' + v.value + '\'';
-            }).join(',');
-        }else {
+            }).join(',') : '';
+        } else {
             conditionValue = value;
         }
 
         return conditionValue;
     },
 
-    refresh:function(){
-        //debugger
-    }
-
 });

+ 1 - 0
frontend/saas-web/app/view/core/form/field/DetailGridField.scss

@@ -17,6 +17,7 @@
     text-align: center;
     font-size:14px;
     font-weight: 500;
+    margin-right: 0;
 }
 .x-grid-necessary .x-column-header-text:before{
     content: '*';

+ 1 - 1
frontend/saas-web/app/view/core/report/ReportPanel.js

@@ -321,7 +321,7 @@ Ext.define('saas.view.core.report.ReportPanel', {
                 me.initSummaryType(c);
                 summarys.push({
                     field: c.dataIndex,
-                    operation: c._summaryType == 'last' ? 'sum' : c._summaryType,
+                    operation: c._summaryType == 'last' ? 'customize_last' : c._summaryType,
                 });
             }
         })

+ 6 - 17
frontend/saas-web/app/view/core/report/ReportPanel.scss

@@ -31,22 +31,6 @@ $border-color: #999;
                         border-right: 1px solid $border-color;
                         border-bottom: 1px solid $border-color;
                     }
-
-                    .x-grid-cell {
-                        &:last-child {
-                            .x-grid-cell-inner {
-                                border-right: none;
-                            }
-                        }
-                    }
-                }
-
-                .x-grid-item {
-                    &:first-child {
-                        .x-grid-group-hd {
-                            border-top: none;
-                        }
-                    }
                 }
             }
 
@@ -63,13 +47,18 @@ $border-color: #999;
         }
 
         .x-grid-group-hd {
-            border-top: 1px solid $border-color;
+            border-top: none;
             border-bottom: 1px solid $border-color;
+            border-right: 1px solid $border-color;
         }
 
         .x-grid-row-summary {
             .x-grid-cell {
                 border-top: none;
+                border-bottom: 1px solid $border-color;
+                &:last-child {
+                    border-right: 1px solid $border-color;
+                }
             }
         }
     }

+ 0 - 1
frontend/saas-web/app/view/document/vendor/FormPanel.js

@@ -227,7 +227,6 @@ Ext.define('saas.view.document.vendor.FormPanel', {
         detnoColumn: 'vc_detno',
         showCount: false,
         deleteDetailUrl:'/api/document/vendor/deleteContact',
-        height:145,
         columns : [
             {
                 text : "ID", 

+ 8 - 6
frontend/saas-web/app/view/home/charts/MonthSale.js

@@ -31,11 +31,13 @@ Ext.define('saas.view.home.charts.MonthSale', {
 
         store.each(function(d) {
             var d = d.data;
-            fields.push(d.x);
-            data.push({
-                value: d.y,
-                name: d.x
-            });
+            if(d.y > 0) {
+                fields.push(d.x);
+                data.push({
+                    value: d.y,
+                    name: d.x
+                });
+            }
         });
 
         return {
@@ -64,7 +66,7 @@ Ext.define('saas.view.home.charts.MonthSale', {
                 }
             },
             legend: {
-                orient: 'horizontal',
+                orient: 'vertical',
                 left: '70%',
                 width: '30%',
                 icon: 'circle',

+ 1 - 1
frontend/saas-web/app/view/main/Main.js

@@ -134,7 +134,7 @@ Ext.define('saas.view.main.Main', {
                                 if(rolesMap&&rolesMap.length>0){
                                     for(var i = 0; i < rolesMap.length; i++) {
                                         if(rolesMap[i].type==0){
-                                             main.getController().loadInvitationMsg(1)
+                                             main.getController().loadInvitationMsg(1,nowCompanyId)
                                         }
                                      }
                                 }

+ 5 - 2
frontend/saas-web/app/view/main/MainController.js

@@ -117,13 +117,16 @@ Ext.define('saas.view.main.MainController', {
         win.show();
     },
 
-    loadInvitationMsg: function(count) {
+    loadInvitationMsg: function(count,nowCompanyId) {
         var me = this.view;//视图层
         var hasInvitationMsg = false;
         //查询后台
         var param = [{
             type:'condition',
             value:"re_status=2"
+        },{
+            type:'condition',
+            value:"companyId="+nowCompanyId
         }]
         Ext.Ajax.request({  
             url :'/api/commons/remind/apply/list',
@@ -162,7 +165,7 @@ Ext.define('saas.view.main.MainController', {
             }, 300);
         }
         setTimeout(function() {
-            me.getController().loadInvitationMsg(count+1);
+            me.getController().loadInvitationMsg(count+1,nowCompanyId);
         }, 8000);
     },
 

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

@@ -95,6 +95,8 @@ Ext.define('saas.view.money.payBalance.FormPanelController', {
 
                 }
             },
+
+            // 来源单号
             'oriOrderMutiDbfindTrigger[name=pbd_slcode]': {
                 beforerender: function (f) {
                     Ext.apply(f, {
@@ -126,8 +128,28 @@ Ext.define('saas.view.money.payBalance.FormPanelController', {
                         defaultCondition: "sl_vendid<>0 and ((sl_kind in ('采购验收单','采购验退单')) or (sl_kind='期初余额' and sl_ym="+
                                   "'(select min(pd_detno) from periodsdetail  where pd_status=0 and periodsdetail.companyid=subledger.companyid))) and sl_namount<>0'"
                     });
+                },
+                beforequery: function(f) {
+                    var me = this,
+                    viewModel = me.getViewModel(),
+                    rb_custname = viewModel.get('rb_custname');
+                    if(!rb_custname) {
+                        saas.util.BaseUtil.showErrorToast('请先录入主表字段【' + '<span style="color: red;">供应商名称</span>】');
+                        return false;
+                    }
+                },
+                beforetriggerclick: function(f) {
+                    var me = this,
+                    viewModel = me.getViewModel(),
+                    rb_custname = viewModel.get('rb_custname');
+                    if(!rb_custname) {
+                        saas.util.BaseUtil.showErrorToast('请先录入主表字段【' + '<span style="color: red;">供应商名称</span>】');
+                        return false;
+                    }
                 }
             },
+
+            // 资金账户
             'dbfindtrigger[name=pd_bankname]':{
                 beforerender: function (f) {
                     Ext.apply(f, {
@@ -143,6 +165,24 @@ Ext.define('saas.view.money.payBalance.FormPanelController', {
                         }],
                     });
 
+                },
+                beforequery: function(f) {
+                    var me = this,
+                    viewModel = me.getViewModel(),
+                    rb_custname = viewModel.get('rb_custname');
+                    if(!rb_custname) {
+                        saas.util.BaseUtil.showErrorToast('请先录入主表字段【' + '<span style="color: red;">供应商名称</span>】');
+                        return false;
+                    }
+                },
+                beforetriggerclick: function(f) {
+                    var me = this,
+                    viewModel = me.getViewModel(),
+                    rb_custname = viewModel.get('rb_custname');
+                    if(!rb_custname) {
+                        saas.util.BaseUtil.showErrorToast('请先录入主表字段【' + '<span style="color: red;">供应商名称</span>】');
+                        return false;
+                    }
                 }
             }
         });

+ 41 - 26
frontend/saas-web/app/view/money/recBalance/FormPanelController.js

@@ -5,6 +5,7 @@ Ext.define('saas.view.money.recBalance.FormPanelController', {
     init: function (form) {
         var me = this;
         this.control({
+            // 客户名称
             'dbfindtrigger[name=rb_custname]':{
                 beforerender:function(f){
                     Ext.apply(f,{
@@ -91,9 +92,10 @@ Ext.define('saas.view.money.recBalance.FormPanelController', {
                             from:'cu_leftamount', to:'cu_leftamount'
                         }],
                     }) ;   
-
                 }
             },
+
+            // 资金账户
             'dbfindtrigger[name=rd_bankname]':{
                 beforerender:function(f){
                     Ext.apply(f,{
@@ -107,8 +109,28 @@ Ext.define('saas.view.money.recBalance.FormPanelController', {
                         }],
                     }) ;   
 
+                },
+                beforequery: function(f) {
+                    var me = this,
+                    viewModel = me.getViewModel(),
+                    rb_custname = viewModel.get('rb_custname');
+                    if(!rb_custname) {
+                        saas.util.BaseUtil.showErrorToast('请先录入主表字段【' + '<span style="color: red;">客户名称</span>】');
+                        return false;
+                    }
+                },
+                beforetriggerclick: function(f) {
+                    var me = this,
+                    viewModel = me.getViewModel(),
+                    rb_custname = viewModel.get('rb_custname');
+                    if(!rb_custname) {
+                        saas.util.BaseUtil.showErrorToast('请先录入主表字段【' + '<span style="color: red;">客户名称</span>】');
+                        return false;
+                    }
                 }
             },
+
+            // 来源单号
             'oriOrderMutiDbfindTrigger[name=rbd_slcode]': {
                 beforerender: function (f) {
                     Ext.apply(f, {
@@ -140,35 +162,28 @@ Ext.define('saas.view.money.recBalance.FormPanelController', {
                         defaultCondition: "sl_custid<>0 and ((sl_kind in ('出货单','销售退货单')) or (sl_kind='期初余额' and sl_ym="+
                         "'(select min(pd_detno) from periodsdetail  where pd_status=0 and periodsdetail.companyid=subledger.companyid))) and sl_namount<>0'"
                     });
-
+                },
+                beforequery: function(f) {
+                    var me = this,
+                    viewModel = me.getViewModel(),
+                    rb_custname = viewModel.get('rb_custname');
+                    if(!rb_custname) {
+                        saas.util.BaseUtil.showErrorToast('请先录入主表字段【' + '<span style="color: red;">客户名称</span>】');
+                        return false;
+                    }
+                },
+                beforetriggerclick: function(f) {
+                    var me = this,
+                    viewModel = me.getViewModel(),
+                    rb_custname = viewModel.get('rb_custname');
+                    if(!rb_custname) {
+                        saas.util.BaseUtil.showErrorToast('请先录入主表字段【' + '<span style="color: red;">客户名称</span>】');
+                        return false;
+                    }
                 }
             },
         });
     },
-    addCombo:function(){
-        var combo=this.ownerCmp;
-        Ext.create('Ext.window.Window',{
-            layout:'vbox',
-            bodyPadding: 15,
-            width:500,
-            items:[{
-                fieldLabel:'实际值',
-                xtype:'textfield'
-            },{
-                fieldLabel:'显示值',
-                xtype:'textfield'
-            }],
-            buttons:[{
-                text:'确认',
-                handler:function(b){
-                    combo.setValue('ok');
-                    b.up('window').close();
-                }
-            }],
-            renderTo:this.ownerCmp.ownerCt.getEl()
-        }).show();
-
-    },
 
     turnIn: function() {
         var me = this,

+ 3 - 8
frontend/saas-web/app/view/sale/report/Sale.js

@@ -115,13 +115,6 @@ Ext.define('saas.view.sale.report.Sale', {
             var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
             var format = '0.' + xr.join('');
             return Ext.util.Format.number(v, format);
-        },
-        summaryType: 'sum',
-        summaryRenderer: function(v) {
-            var arr = (v + '.').split('.');
-            var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
-            var format = '0.' + xr.join('');
-            return Ext.util.Format.number(v, format);
         }
     }, {
         text: '单价(元)',
@@ -139,6 +132,7 @@ Ext.define('saas.view.sale.report.Sale', {
         dataIndex: 'sd_netprice',
         exportFormat: 'Price',
         xtype: 'numbercolumn',
+        width: 150,
         renderer : function(v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length > 8 ? 8 : arr[1].length)).fill('0');
@@ -172,10 +166,11 @@ Ext.define('saas.view.sale.report.Sale', {
             var format = '0,000.' + xr.join('');
             return Ext.util.Format.number(v, format);
         }
-    }, {//∑不含税金额
+    }, {
         text: '不含税金额(元)',
         xtype: 'numbercolumn',
         exportFormat: 'Amount',
+        width: 150,
         dataIndex: 'sd_nettotal',
         renderer : function(v) {
             var arr = (v + '.').split('.');

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

@@ -240,25 +240,7 @@ Ext.define('saas.view.sale.sale.FormPanel', {
                             var format = '0.' + xr.join('');
                             return Ext.util.Format.number(v, format);
                         }
-                    },
-                    {
-                        text : "单价(元)", 
-                        xtype: 'numbercolumn',
-                        dataIndex : "sd_price", 
-                        width : 110.0,
-                        editor : {
-                            xtype : "numberfield",
-                            decimalPrecision: 8,
-                            minValue:0
-                        },
-                        renderer : function(v) {
-                            var arr = (v + '.').split('.');
-                            var xr = (new Array(arr[1].length > 8 ? 8 :(arr[1].length < 2? 2 : arr[1].length))).fill('0');
-                            var format = '0,000.' + xr.join('');
-                            return Ext.util.Format.number(v, format);
-                       }
-                    }, 
-                    {
+                    }, {
                         text : "税率", 
                         xtype: 'numbercolumn',
                         dataIndex : "sd_taxrate", 

+ 7 - 1
frontend/saas-web/app/view/sys/invitation/DataList.js

@@ -208,8 +208,14 @@ Ext.define('saas.view.sys.invitation.DataList', {
                     beforeload: function (store, op) {
                         var condition = me.condition;
                         if (Ext.isEmpty(condition)) {
-                            condition = '';
+                            condition = [];
                         }
+                        var _localStorage = Ext.decode(localStorage.getItem('app-state-session'));
+                        var nowCompanyId = _localStorage.account.companyId;
+                        condition.push({
+                            type:'condition',
+                            value:"companyId="+nowCompanyId
+                        });
                         Ext.apply(store.proxy.extraParams, {
                             number: op._page,
                             size: store.pageSize,

+ 1 - 2
frontend/saas-web/ext/packages/ux/src/feature/MySummary.js

@@ -169,9 +169,8 @@ Ext.define('Ext.ux.feature.MySummary', {
     initSummarys: function() {
         var me = this,
         summarys = [],
-        view = me.view,
         grid = me.grid,
-        columns = view.headerCt.getGridColumns();
+        columns = grid.columns;
 
         var typeLabels = {
             sum: '合计',

+ 5 - 0
frontend/saas-web/overrides/form/field/Base.js

@@ -0,0 +1,5 @@
+Ext.define('saas.override.form.field.Base', {
+    override: 'Ext.form.field.Base',
+    
+    msgTarget: 'side'
+});