Browse Source

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

hy 7 years ago
parent
commit
f11e84bb82
33 changed files with 300 additions and 148 deletions
  1. 53 0
      applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/config/WebConfig.java
  2. 19 4
      applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/controller/MessageLogController.java
  3. 2 0
      applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/mapper/MessagelogMapper.java
  4. 5 0
      applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/service/MessageLogService.java
  5. 38 0
      applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/service/impl/MessageLogServiceImpl.java
  6. 12 0
      applications/commons/commons-server/src/main/resources/mapper/MessagelogMapper.xml
  7. 1 2
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/DocumentApplication.java
  8. 2 0
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/config/WebConfig.java
  9. 2 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/config/WebConfig.java
  10. 14 1
      applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/PurchaseApplication.java
  11. 2 0
      applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/config/WebConfig.java
  12. 1 0
      applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/controller/ProdInOutController.java
  13. 5 0
      applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/mapper/ProdIODetailMapper.java
  14. 1 0
      applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/mapper/PurchasedetailMapper.java
  15. 14 3
      applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/service/impl/ProdInOutServiceImpl.java
  16. 8 0
      applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/service/impl/PurchaseServiceImpl.java
  17. 21 5
      applications/purchase/purchase-server/src/main/resources/mapper/ProdIODetailMapper.xml
  18. 18 5
      applications/purchase/purchase-server/src/main/resources/mapper/PurchasedetailMapper.xml
  19. 2 0
      applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/config/WebConfig.java
  20. 2 2
      applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/controller/SaleController.java
  21. 1 1
      applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/service/SaleService.java
  22. 9 1
      applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/service/impl/SaleServiceImpl.java
  23. 2 0
      applications/storage/storage-server/src/main/java/com/usoftchina/saas/storage/config/WebConfig.java
  24. 13 14
      base-servers/auth/auth-dto/src/main/java/com/usoftchina/saas/auth/dto/AuthDTO.java
  25. 1 1
      base-servers/auth/auth-server/src/main/java/com/usoftchina/saas/auth/controller/AuthController.java
  26. 8 2
      frontend/saas-web/app/view/sale/sale/FormPanel.js
  27. 8 2
      frontend/saas-web/app/view/sale/sale/FormPanelController.js
  28. 2 10
      frontend/saas-web/app/view/sale/saleIn/FormPanel.js
  29. 1 1
      frontend/saas-web/app/view/sale/saleIn/FormPanelController.js
  30. 1 1
      frontend/saas-web/app/view/sale/saleOut/FormPanel.js
  31. 8 3
      frontend/saas-web/app/view/sale/saleOut/FormPanelController.js
  32. 24 28
      frontend/saas-web/app/view/stock/otherIn/FormPanelController.js
  33. 0 62
      frontend/saas-web/app/view/stock/otherOut/FormPanelController.js

+ 53 - 0
applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/config/WebConfig.java

@@ -0,0 +1,53 @@
+package com.usoftchina.saas.commons.config;
+
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.http.converter.HttpMessageConverter;
+import org.springframework.http.converter.StringHttpMessageConverter;
+import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
+import org.springframework.web.servlet.config.annotation.ContentNegotiationConfigurer;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
+
+import java.nio.charset.Charset;
+import java.text.SimpleDateFormat;
+import java.util.List;
+
+
+/**
+ * @author: guq
+ * @create: 2018-10-30 11:20
+ **/
+
+@Configuration
+public class WebConfig extends WebMvcConfigurationSupport{
+    @Bean
+    public HttpMessageConverter<String> responseBodyConverter() {
+        StringHttpMessageConverter converter = new StringHttpMessageConverter(Charset.forName("UTF-8"));
+        return converter;
+    }
+
+    @Bean
+    public MappingJackson2HttpMessageConverter MappingJacksonHttpMessageConverter(){
+        MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
+        ObjectMapper objectMapper = new ObjectMapper();
+        objectMapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
+        objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
+        converter.setObjectMapper(objectMapper);
+        return converter;
+    }
+
+    @Override
+    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
+        super.configureMessageConverters(converters);
+        converters.add(responseBodyConverter());
+        converters.add(MappingJacksonHttpMessageConverter());
+    }
+
+    @Override
+    public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
+        configurer.favorPathExtension(false);
+    }
+
+}

+ 19 - 4
applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/controller/MessageLogController.java

@@ -1,14 +1,16 @@
 package com.usoftchina.saas.commons.controller;
 
+import com.github.pagehelper.PageInfo;
+import com.usoftchina.saas.base.Result;
 import com.usoftchina.saas.commons.dto.DocBaseDTO;
+import com.usoftchina.saas.commons.dto.ListReqDTO;
+import com.usoftchina.saas.commons.po.Messagelog;
 import com.usoftchina.saas.commons.po.Operation;
 import com.usoftchina.saas.commons.service.MessageLogService;
 
+import com.usoftchina.saas.page.PageRequest;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 import org.springframework.web.context.request.async.DeferredResult;
 
 import java.util.concurrent.CompletableFuture;
@@ -24,6 +26,19 @@ public class MessageLogController {
     @Autowired
     private MessageLogService messageLogService;
 
+    /**
+     * 采购订单列表
+     *
+     * @param page
+     * @param req
+     * @return
+     */
+    @GetMapping("/list")
+    public Result<PageInfo<Messagelog>> getListData(PageRequest page, ListReqDTO req) {
+        PageInfo<Messagelog> listData = messageLogService.getListData(page, req);
+        return Result.success(listData);
+    }
+
     @RequestMapping("/save")
     public DeferredResult<String> save(@RequestBody DocBaseDTO baseDTO) {
         // Create the deferredResult and initiate a callback object, task, with it

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

@@ -28,4 +28,6 @@ public interface MessagelogMapper extends CommonBaseMapper<Messagelog>{
     int updateByPrimaryKeySelective(Messagelog record);
 
     int updateByPrimaryKey(Messagelog record);
+
+    List<Messagelog> selectMessageLog(@Param("con") String con, @Param("companyId") Long companyId);
 }

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

@@ -1,10 +1,13 @@
 package com.usoftchina.saas.commons.service;
 
+import com.github.pagehelper.PageInfo;
 import com.usoftchina.saas.base.service.CommonBaseService;
 import com.usoftchina.saas.commons.dto.DocBaseDTO;
+import com.usoftchina.saas.commons.dto.ListReqDTO;
 import com.usoftchina.saas.commons.mapper.MessagelogMapper;
 import com.usoftchina.saas.commons.po.Messagelog;
 import com.usoftchina.saas.commons.po.Operation;
+import com.usoftchina.saas.page.PageRequest;
 
 public interface MessageLogService extends CommonBaseService<MessagelogMapper, Messagelog>{
     String save(DocBaseDTO baseDTO);
@@ -24,4 +27,6 @@ public interface MessageLogService extends CommonBaseService<MessagelogMapper, M
     String open(DocBaseDTO baseDTO);
 
     String customizeLog(DocBaseDTO baseDTO, Operation operation);
+
+    PageInfo<Messagelog> getListData(PageRequest page, ListReqDTO req);
 }

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

@@ -1,19 +1,25 @@
 package com.usoftchina.saas.commons.service.impl;
 
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
 import com.usoftchina.saas.base.service.CommonBaseServiceImpl;
 import com.usoftchina.saas.commons.dto.DocBaseDTO;
+import com.usoftchina.saas.commons.dto.ListReqDTO;
 import com.usoftchina.saas.commons.mapper.MessagelogMapper;
 import com.usoftchina.saas.commons.po.Messagelog;
 import com.usoftchina.saas.commons.po.Operation;
 import com.usoftchina.saas.commons.service.MessageLogService;
 import com.usoftchina.saas.context.BaseContextHolder;
+import com.usoftchina.saas.page.PageRequest;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.MessageSource;
 import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
 
 import java.util.Date;
+import java.util.List;
 import java.util.Locale;
 
 /**
@@ -25,6 +31,8 @@ public class MessageLogServiceImpl extends CommonBaseServiceImpl<MessagelogMappe
 
     @Autowired
     private MessageSource messageSource;
+    @Autowired
+    private MessagelogMapper messagelogMapper;
 
     @Override
     public String save(DocBaseDTO baseDTO) {
@@ -72,6 +80,22 @@ public class MessageLogServiceImpl extends CommonBaseServiceImpl<MessagelogMappe
         return log(operation, baseDTO);
     }
 
+    @Override
+    public PageInfo<Messagelog> getListData(PageRequest page, ListReqDTO req) {
+        //设置默认分页
+        if (null == page || page.getSize() == 0 || page.getNumber() == 0) {
+            page = new PageRequest();
+            page.setNumber(1);
+            page.setSize(10);
+        }
+        PageHelper.startPage(page.getNumber(), page.getSize());
+        //查询数据
+        List<Messagelog> lists = getListByMode(req);
+        //取分页信息
+        PageInfo<Messagelog> pageInfo = new PageInfo<Messagelog>(lists);
+        return pageInfo;
+    }
+
     private String log(Operation operation, DocBaseDTO baseDTO) {
         String language = "zh_CN";
         Messagelog msg = new Messagelog();
@@ -90,4 +114,18 @@ public class MessageLogServiceImpl extends CommonBaseServiceImpl<MessagelogMappe
     private String getLocalMessage(String msg, String language) {
        return messageSource.getMessage(msg, null, Locale.CHINA);
     }
+
+
+    private List<Messagelog> getListByMode(ListReqDTO req) {
+        List<Messagelog> list = null;
+        Long companyId = BaseContextHolder.getCompanyId();
+        String con = req.getFinalCondition();
+        if (null == con) {
+            con = "1=1";
+        }
+        if (null == req || StringUtils.isEmpty(req.getMode()) || "MAIN".equals(req.getMode())) {
+            list = messagelogMapper.selectMessageLog(con, companyId);
+        }
+        return list;
+    }
 }

+ 12 - 0
applications/commons/commons-server/src/main/resources/mapper/MessagelogMapper.xml

@@ -304,4 +304,16 @@
       updaterId = #{updaterId,jdbcType=INTEGER}
     where ml_id = #{id,jdbcType=INTEGER}
   </update>
+  <select id="selectMessageLog" resultMap="BaseResultMap">
+    select  *  from messagelog
+    <where>
+      <if test="con != null">
+        ${con}
+      </if>
+      <if test="companyId != null">
+        and  companyId = #{companyId}
+      </if>
+    </where>
+    order by ml_id
+  </select>
 </mapper>

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

@@ -13,10 +13,9 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
 @EnableTransactionManagement
 @EnableFeignClients("com.usoftchina.saas")
 @MapperScan("com.usoftchina.saas.document.mapper")
-public class DocumentApplication  {
+public class DocumentApplication {
     public static void main(String[] args) {
         SpringApplication.run(DocumentApplication.class, args);
     }
 
-
 }

+ 2 - 0
applications/document/document-server/src/main/java/com/usoftchina/saas/document/config/WebConfig.java

@@ -1,5 +1,6 @@
 package com.usoftchina.saas.document.config;
 
+import com.fasterxml.jackson.databind.DeserializationFeature;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
@@ -31,6 +32,7 @@ public class WebConfig extends WebMvcConfigurationSupport{
     public MappingJackson2HttpMessageConverter MappingJacksonHttpMessageConverter(){
         MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
         ObjectMapper objectMapper = new ObjectMapper();
+        objectMapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
         objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
         converter.setObjectMapper(objectMapper);
         return converter;

+ 2 - 0
applications/money/money-server/src/main/java/com/usoftchina/saas/money/config/WebConfig.java

@@ -1,5 +1,6 @@
 package com.usoftchina.saas.money.config;
 
+import com.fasterxml.jackson.databind.DeserializationFeature;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
@@ -31,6 +32,7 @@ public class WebConfig extends WebMvcConfigurationSupport{
     public MappingJackson2HttpMessageConverter MappingJacksonHttpMessageConverter(){
         MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
         ObjectMapper objectMapper = new ObjectMapper();
+        objectMapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
         objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
         converter.setObjectMapper(objectMapper);
         return converter;

+ 14 - 1
applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/PurchaseApplication.java

@@ -7,6 +7,8 @@ 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;
+import org.springframework.web.servlet.config.annotation.CorsRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
 
 /**
  * @author yingp
@@ -18,8 +20,19 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
 @EnableFeignClients("com.usoftchina.saas")
 //@EnableAuthClient
 @MapperScan("com.usoftchina.saas.purchase.mapper")
-public class PurchaseApplication   {
+public class PurchaseApplication   extends WebMvcConfigurerAdapter{
     public static void main(String[] args) {
         SpringApplication.run(PurchaseApplication.class, args);
     }
+
+    @Override
+    public void addCorsMappings(CorsRegistry registry) {
+
+        registry.addMapping("/**")
+                .allowCredentials(true)
+                .allowedHeaders("*")
+                .allowedOrigins("*")
+                .allowedMethods("*");
+    }
+
 }

+ 2 - 0
applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/config/WebConfig.java

@@ -1,5 +1,6 @@
 package com.usoftchina.saas.purchase.config;
 
+import com.fasterxml.jackson.databind.DeserializationFeature;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
@@ -31,6 +32,7 @@ public class WebConfig extends WebMvcConfigurationSupport{
     public MappingJackson2HttpMessageConverter MappingJacksonHttpMessageConverter(){
         MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
         ObjectMapper objectMapper = new ObjectMapper();
+        objectMapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
         objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
         converter.setObjectMapper(objectMapper);
         return converter;

+ 1 - 0
applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/controller/ProdInOutController.java

@@ -16,6 +16,7 @@ import org.springframework.web.bind.annotation.*;
  * Created by zdw
  * 2018-10-17 11:41.
  */
+@CrossOrigin
 @RestController
 @RequestMapping("/prodinout")
 public class ProdInOutController {

+ 5 - 0
applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/mapper/ProdIODetailMapper.java

@@ -2,6 +2,7 @@ package com.usoftchina.saas.purchase.mapper;
 
 import com.usoftchina.saas.base.mapper.CommonBaseMapper;
 import com.usoftchina.saas.purchase.po.ProdIODetail;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -29,4 +30,8 @@ public interface ProdIODetailMapper extends CommonBaseMapper<ProdIODetail> {
     List<ProdIODetail> selectByFK(Long id);
 
     void deleteByFK(Long id);
+
+    void calcProdIn(@Param("pi_id") Long pi_id,@Param("pi_class") String pi_class);
+
+    void calcProdOut(@Param("pi_id") Long pi_id,@Param("pi_class") String pi_class);
 }

+ 1 - 0
applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/mapper/PurchasedetailMapper.java

@@ -30,4 +30,5 @@ public interface PurchasedetailMapper extends CommonBaseMapper<Purchase> {
     void updatePurchaseYqty(Integer pu_id);
 
 
+    void calcPurchase(Long pu_id);
 }

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

@@ -153,7 +153,6 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
                 detail.setCompanyId(companyId);
                 detail.setCreatorId(userId);
                 detail.setCreateTime(new Date());
-
                 insertDetails.add(detail);
             }
             //插入从表
@@ -192,14 +191,15 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
             prodIODetailMapper.batchUpdate(updateDetails);
         }
         baseDTO = getBaseDTOById(pi_id,pi_class,pi_inoutno);
+        //计算金额,未税单价,未税金额等
+        calcProdInout(pi_id,pi_class);
         //更新已转数
+        updateYqty(prodInOut);
         //日志记录
         messageLogService.update(baseDTO);
-        updateYqty(prodInOut);
         return baseDTO;
     }
 
-
     @Override
     @Transactional
     public void delete(Long id) {
@@ -341,6 +341,17 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
         }
     }
 
+
+    private void calcProdInout(Long pi_id, String pi_class) {
+        if ("采购验收单".equals(pi_class)) {
+            prodIODetailMapper.calcProdIn(pi_id,pi_class);
+        } else if ("采购验退单".equals(pi_class)) {
+            prodIODetailMapper.calcProdOut(pi_id,pi_class);
+        }
+    }
+
+
+
     private void updateYqty(ProdInOut prodInOut) {
         //更新已转数
         if ("采购验收单".equals(prodInOut.getPi_class())){

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

@@ -172,6 +172,8 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
         }
         baseDTO = getBaseDTOById(pu_id);
         //日志
+        //计算金额,未税单价,未税金额等
+        calcPurchase(pu_id);
         messageLogService.save(baseDTO);
         return baseDTO;
     }
@@ -505,4 +507,10 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
         DocBaseDTO baseDTO = new DocBaseDTO(id, code, BillCodeSeq.PURCHASE.getCaller());
         return baseDTO;
     }
+
+    @Transactional
+    private void calcPurchase(Long pu_id) {
+//        purchasedetailMapper.calcPurchase(pu_id);
+    }
+
 }

+ 21 - 5
applications/purchase/purchase-server/src/main/resources/mapper/ProdIODetailMapper.xml

@@ -721,11 +721,10 @@
   </update>
 
   <update id="updatePurchaseYqty" parameterType="java.lang.Integer">
-
-update prodiodetail a
-set a.pd_yqty =ifnull((select  b.pd_outqty  from  (select pd_ioid,sum(pd_outqty) pd_outqty from  prodiodetail left join prodinout on pd_piid = pi_id where pd_piclass='采购验退单'
-and pi_puid=#{id,jdbcType=INTEGER}  GROUP BY pd_ioid) b where ifnull(b.pd_ioid ,0)= a.pd_id ),0)
-where a.pd_piid = (select pi_id from prodinout where pi_puid=#{id,jdbcType=INTEGER} and pi_class='采购验收单')
+  update prodiodetail a
+  set a.pd_yqty =ifnull((select  b.pd_outqty  from  (select pd_ioid,sum(pd_outqty) pd_outqty from  prodiodetail left join prodinout on pd_piid = pi_id where pd_piclass='采购验退单'
+  and pi_puid=#{id,jdbcType=INTEGER}  GROUP BY pd_ioid) b where ifnull(b.pd_ioid ,0)= a.pd_id ),0)
+  where a.pd_piid = (select pi_id from prodinout where pi_puid=#{id,jdbcType=INTEGER} and pi_class='采购验收单')
   </update>
 
 
@@ -739,4 +738,21 @@ where a.pd_piid = (select pi_id from prodinout where pi_puid=#{id,jdbcType=INTEG
     where pd_piid = #{id,jdbcType=INTEGER}
   </delete>
 
+  <update id="calcProdIn">
+    update prodiodetail set pd_netprice = pd_orderprice/(1+pd_taxrate/100) where pd_piid = #{pi_id,jdbcType=INTEGER};
+    update prodiodetail set pd_total = pd_orderprice*pd_inqty,pd_nettotal = pd_netprice*pd_inqty where pd_piid = #{pi_id,jdbcType=INTEGER};
+    update prodinout set pi_total = (select sum(pd_total) from prodiodetail where pd_piid = #{pi_id,jdbcType=INTEGER} ) where pi_id = #{pi_id,jdbcType=INTEGER};
+    update prodinout set pi_nettotal = (select sum(pd_nettotal) from prodiodetail where pd_piid = #{pi_id,jdbcType=INTEGER} ) where pi_id = #{pi_id,jdbcType=INTEGER};
+  </update>
+
+  <update id="calcProdOut">
+    update prodiodetail set pd_netprice = pd_orderprice/(1+pd_taxrate/100) where pd_piid = #{pi_id,jdbcType=INTEGER};
+    update prodiodetail set pd_total = pd_orderprice*pd_outqty,pd_nettotal = pd_netprice*pd_outqty where pd_piid = #{pi_id,jdbcType=INTEGER};
+    update prodinout set pi_total = (select sum(pd_total) from prodiodetail where pd_piid = #{pi_id,jdbcType=INTEGER} ) where pi_id = #{pi_id,jdbcType=INTEGER};
+    update prodinout set pi_nettotal = (select sum(pd_nettotal) from prodiodetail where pd_piid = #{pi_id,jdbcType=INTEGER} ) where pi_id = #{pi_id,jdbcType=INTEGER};
+  </update>
+
+
+
+
 </mapper>

+ 18 - 5
applications/purchase/purchase-server/src/main/resources/mapper/PurchasedetailMapper.xml

@@ -428,12 +428,25 @@
   </select>
 
   <update id="updatePurchaseYqty" parameterType="integer" >
-update purchasedetail
-set pd_yqty=ifnull((select sum(IFNULL(pd_inqty,0)-IFNULL(pd_outqty,0))
-from prodiodetail
-where ((pd_piclass='采购验退单'  and pd_status=99 ) or pd_piclass='采购验收单') and IFNULL(pd_orderid,0)=purchasedetail.pd_id),0)
-where pd_puid=#{pu_id}
+    update purchasedetail
+    set pd_yqty=ifnull((select sum(IFNULL(pd_inqty,0)-IFNULL(pd_outqty,0))
+    from prodiodetail
+    where ((pd_piclass='采购验退单'  and pd_status=99 ) or pd_piclass='采购验收单') and IFNULL(pd_orderid,0)=purchasedetail.pd_id),0)
+    where pd_puid=#{pu_id}
   </update>
 
 
+  <update id="calcPurchase" parameterType="long" >
+    update purchasedetail set pd_netprice = PD_PRICE/(1+pd_taxrate/100) where pd_puid = #{pu_id,jdbcType=INTEGER};
+    update purchasedetail set pd_total = PD_PRICE*pd_qty,pd_nettotal = pd_netprice*pd_inqty where pd_puid = #{pu_id,jdbcType=INTEGER};
+    update purchase set pu_total = (select sum(pd_total) from prodiodetail where pd_puid = #{pi_id,jdbcType=INTEGER} ) where pu_id = #{pu_id,jdbcType=INTEGER};
+    update purchase set p_nettotal = (select sum(pd_nettotal) from prodiodetail where pd_puid = #{pi_id,jdbcType=INTEGER} ) where pu_id = #{pu_id,jdbcType=INTEGER};
+  </update>
+
+
+
+
+
+
+
 </mapper>

+ 2 - 0
applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/config/WebConfig.java

@@ -1,5 +1,6 @@
 package com.usoftchina.saas.sale.config;
 
+import com.fasterxml.jackson.databind.DeserializationFeature;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
@@ -31,6 +32,7 @@ public class WebConfig extends WebMvcConfigurationSupport{
     public MappingJackson2HttpMessageConverter MappingJacksonHttpMessageConverter(){
         MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
         ObjectMapper objectMapper = new ObjectMapper();
+        objectMapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
         objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
         converter.setObjectMapper(objectMapper);
         return converter;

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

@@ -159,8 +159,8 @@ public class SaleController {
 
     @PostMapping("/turnProdOut/{id}")
     public Result turnOut(@PathVariable("id") Long id) {
-        saleService.turnOut(id);
-        return Result.success();
+        DocBaseDTO baseDTO = saleService.turnOut(id);
+        return Result.success(baseDTO);
     }
 
     @GetMapping("/test")

+ 1 - 1
applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/service/SaleService.java

@@ -39,5 +39,5 @@ public interface SaleService {
 
     void open(long id);
 
-    void turnOut(Long id);
+    DocBaseDTO turnOut(Long id);
 }

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

@@ -9,6 +9,7 @@ import com.usoftchina.saas.commons.dto.DocBaseDTO;
 import com.usoftchina.saas.commons.dto.ListReqDTO;
 import com.usoftchina.saas.commons.exception.BizExceptionCode;
 import com.usoftchina.saas.commons.po.BillCodeSeq;
+import com.usoftchina.saas.commons.po.Operation;
 import com.usoftchina.saas.commons.po.Status;
 import com.usoftchina.saas.context.BaseContextHolder;
 import com.usoftchina.saas.exception.BizException;
@@ -116,6 +117,8 @@ public class SaleServiceImpl implements SaleService{
         sale.setCreateTime(new Date());
         sale.setSa_recorderid(userId);
         sale.setSa_recorder("test");
+        sale.setSa_sendstatus(Status.UNTURNOUT.getDisplay());
+        sale.setSa_sendstatuscode(Status.UNTURNOUT.name());
 
         //编号校验
         sa_code = pushMaxnubmer(sa_code, sa_id);
@@ -383,7 +386,7 @@ public class SaleServiceImpl implements SaleService{
 
     @Override
     @Transactional
-    public void turnOut(Long id) {
+    public DocBaseDTO turnOut(Long id) {
         Integer count = 0;
         double pdQty = 0;
         double pdYqty = 0;
@@ -453,6 +456,7 @@ public class SaleServiceImpl implements SaleService{
             prodIODetail.setPd_sdid(saleDetail.getId());
             prodIODetail.setPd_prodid(saleDetail.getSd_prodid());
             prodIODetail.setPd_prodcode(saleDetail.getSd_prodcode());
+            prodIODetail.setPd_taxrate(saleDetail.getSd_taxrate());
             //公司id
             prodIODetail.setCompanyId(companyId);
             //本次转单数
@@ -468,6 +472,10 @@ public class SaleServiceImpl implements SaleService{
         sale.setSa_sendstatuscode(Status.TURNOUT.name());
         //更新存在字段
          saleMapper.updateByPrimaryKeySelective(sale);
+         //日志记录
+         DocBaseDTO baseDTO = new DocBaseDTO(pi_id, pi_inoutno, BillCodeSeq.SALEOUT.getCaller());
+         //messageLogService.customizeLog(baseDTO, Operation.);
+         return baseDTO;
     }
 
     //更新最新销售总额

+ 2 - 0
applications/storage/storage-server/src/main/java/com/usoftchina/saas/storage/config/WebConfig.java

@@ -1,5 +1,6 @@
 package com.usoftchina.saas.storage.config;
 
+import com.fasterxml.jackson.databind.DeserializationFeature;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
@@ -31,6 +32,7 @@ public class WebConfig extends WebMvcConfigurationSupport{
     public MappingJackson2HttpMessageConverter MappingJacksonHttpMessageConverter(){
         MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
         ObjectMapper objectMapper = new ObjectMapper();
+        objectMapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
         objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
         converter.setObjectMapper(objectMapper);
         return converter;

+ 13 - 14
base-servers/auth/auth-dto/src/main/java/com/usoftchina/saas/auth/dto/AuthDTO.java

@@ -1,9 +1,8 @@
 package com.usoftchina.saas.auth.dto;
 
-import com.usoftchina.saas.account.dto.CompanyBaseDTO;
+import com.usoftchina.saas.account.dto.AccountDTO;
 
 import java.io.Serializable;
-import java.util.List;
 
 /**
  * @author yingp
@@ -11,37 +10,37 @@ import java.util.List;
  */
 public class AuthDTO implements Serializable{
     private TokenDTO token;
-    private List<CompanyBaseDTO> companies;
+    private AccountDTO account;
 
     public AuthDTO() {
     }
 
-    public AuthDTO(TokenDTO token, List<CompanyBaseDTO> companies) {
+    public AuthDTO(TokenDTO token, AccountDTO account) {
         this.token = token;
-        this.companies = companies;
+        this.account = account;
     }
 
-    public TokenDTO getToken() {
-        return token;
+    public AccountDTO getAccount() {
+        return account;
     }
 
-    public void setToken(TokenDTO token) {
-        this.token = token;
+    public void setAccount(AccountDTO account) {
+        this.account = account;
     }
 
-    public List<CompanyBaseDTO> getCompanies() {
-        return companies;
+    public TokenDTO getToken() {
+        return token;
     }
 
-    public void setCompanies(List<CompanyBaseDTO> companies) {
-        this.companies = companies;
+    public void setToken(TokenDTO token) {
+        this.token = token;
     }
 
     @Override
     public String toString() {
         return "AuthDTO{" +
                 "token=" + token +
-                ", companies=" + companies +
+                ", account=" + account +
                 '}';
     }
 }

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

@@ -62,7 +62,7 @@ public class AuthController {
             JwtInfo info = new JwtInfo(appId, companyId, accountDTO.getId(), accountDTO.getUsername());
             TokenVO tokenVO = JwtHelper.generateToken(info, privateKeyPath, expire);
             TokenDTO tokenDTO = BeanMapper.map(tokenVO, TokenDTO.class);
-            return Result.success(new AuthDTO(tokenDTO, accountDTO.getCompanies()));
+            return Result.success(new AuthDTO(tokenDTO, accountDTO));
         }
         return Result.error(result.getCode(), result.getMessage());
     }

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

@@ -85,7 +85,7 @@ Ext.define('saas.view.sale.sale.FormPanel', {
                     queryMode : "local", 
                     store : null, 
                     valueField : "value", 
-                    xtype : "dbfindtrigger"
+                    xtype : "multidbfindtrigger"
                 }
             }, {
                 text : "名称", 
@@ -114,7 +114,13 @@ Ext.define('saas.view.sale.sale.FormPanel', {
                 format:'0,000.00',
                 items : null,
                 summaryType: 'sum'
-            }, 
+            },  {
+                text : "已转数", 
+                dataIndex : "sd_yqty", 
+                width : 120.0, 
+                xtype : "numbercolumn", 
+                format:'0.00'
+            },
             {
                 text : "单价", 
                 editor : {

+ 8 - 2
frontend/saas-web/app/view/sale/sale/FormPanelController.js

@@ -94,7 +94,7 @@ Ext.define('saas.view.sale.sale.FormPanelController', {
                 }
             },
             //放大镜赋值关系 以及 tpl模板
-            'dbfindtrigger[name=sd_prodcode]':{
+            'multidbfindtrigger[name=sd_prodcode]':{
                 beforerender:function(f){
                     Ext.apply(f,{
                         dataUrl:'/api/document/product/list',
@@ -203,7 +203,13 @@ Ext.define('saas.view.sale.sale.FormPanelController', {
         })
         .then(function(localJson) {
             if(localJson.success){
-                showToast('转单成功');
+                var intValue = localJson.data.id,
+                    codeValue= localJson.data.code,
+                    name = localJson.data.name;
+                openTab('sale-saleout-formpanel',name+"("+codeValue+")",codeValue+intValue, {
+                    initId: intValue
+                });
+                showToast('转单成功');    
             }
         })
         .catch(function(res) {

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

@@ -83,7 +83,7 @@ Ext.define('saas.view.sale.saleIn.FormPanel', {
                     queryMode : "local", 
                     store : null, 
                     valueField : "value", 
-                    xtype : "dbfindtrigger"
+                    xtype : "multidbfindtrigger"
                 }
             }, {
                 text : "名称", 
@@ -111,15 +111,7 @@ Ext.define('saas.view.sale.saleIn.FormPanel', {
                 xtype : "numbercolumn", 
                 format:'0',
                 summaryType: 'sum'
-            },            {
-                text : "已转数", 
-                dataIndex : "pd_yqty", 
-                width : 120.0, 
-                xtype : "numbercolumn", 
-                format:'0',
-                summaryType: 'sum'
-            }, 
-            {
+            }, {
                 text : "仓库", 
                 dataIndex : "pd_whname", 
                 width : 120.0, 

+ 1 - 1
frontend/saas-web/app/view/sale/saleIn/FormPanelController.js

@@ -93,7 +93,7 @@ Ext.define('saas.view.sale.saleIn.FormPanelController', {
                     }) ;   
                 }
             },
-            'dbfindtrigger[name=pd_prodcode]':{
+            'multidbfindtrigger[name=pd_prodcode]':{
                 beforerender:function(f){
                     Ext.apply(f,{
                         dataUrl:'/api/document/product/list',

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

@@ -94,7 +94,7 @@ Ext.define('saas.view.sale.saleout.FormPanel', {
                     queryMode : "local", 
                     store : null, 
                     valueField : "value", 
-                    xtype : "dbfindtrigger"
+                    xtype : "multidbfindtrigger"
                 }
             }, {
                 text : "名称", 

+ 8 - 3
frontend/saas-web/app/view/sale/saleOut/FormPanelController.js

@@ -90,7 +90,7 @@ Ext.define('saas.view.sale.saleout.FormPanelController', {
                     }) ;   
                 }
             },
-            'dbfindtrigger[name=pd_prodcode]':{
+            'multidbfindtrigger[name=pd_prodcode]':{
                 beforerender:function(f){
                     Ext.apply(f,{
                         conditionCode:'pr_code',
@@ -258,8 +258,13 @@ Ext.define('saas.view.sale.saleout.FormPanelController', {
         })
         .then(function(localJson) {
             if(localJson.success){
-                showToast('转单成功');
-              
+                var intValue = localJson.data.id,
+                    codeValue= localJson.data.code,
+                    name = localJson.data.name;
+                openTab('sale-salein-formpanel',name+"("+codeValue+")",codeValue+intValue, {
+                    initId: intValue
+                });
+                showToast('转单成功');    
             }
         })
         .catch(function(res) {

+ 24 - 28
frontend/saas-web/app/view/stock/otherIn/FormPanelController.js

@@ -6,40 +6,35 @@ Ext.define('saas.view.stock.otherIn.FormPanelController', {
         var me = this;
         this.control({
             //放大镜赋值关系 以及 tpl模板
-            'dbfindtrigger[name=pu_vendcode]': {
-                beforerender: function (f) {
-                    Ext.apply(f, {
-                        dataUrl: '/api/document/vendor/list',
+            'dbfindtrigger[name=pi_vendname]':{
+                beforerender:function(f){
+                    Ext.apply(f,{
+                        dataUrl:'/api/document/vendor/list',
                         // dataUrl:'http://localhost:9480/vendor/list',
                         addXtype: 'document-vendor-formpanel',
                         addTitle: '供应商资料',
-                        dbfinds: [{
-                            from: 've_id',
-                            to: 'pi_vendid'
-                        }, {
-                            from: 've_code',
-                            to: 'pu_vendcode'
-                        }, {
-                            from: 've_name',
-                            to: 'pu_vendname'
+                        dbfinds:[{
+                            from:'id',to:'pi_vendid'
+                        },{
+                            from:'ve_code',to:'pi_vendcode'
+                        },{
+                            from:'ve_name',to:'pi_vendname'
                         }],
-                        dbtpls: [{
-                            field: 've_code',
-                            width: 100
-                        }, {
-                            field: 've_name',
-                            width: 100
+                        dbtpls:[{
+                            field:'ve_code',width:100
+                        },{
+                            field:'ve_name',width:100
                         }],
-                        dbColumns: [{
-                            conditionCode: 've_id',
+                        dbColumns:[{
+                            conditionCode:'id',
                             "text": "供应商ID",
                             "flex": 0,
-                            "dataIndex": "ve_id",
+                            "dataIndex": "id",
                             "width": 0,
                             "xtype": "",
                             "items": null
-                        }, {
-                            conditionCode: 've_code',
+                        },{
+                            conditionCode:'ve_code',
                             "text": "供应商编号",
                             "flex": 1,
                             "dataIndex": "ve_code",
@@ -47,14 +42,14 @@ Ext.define('saas.view.stock.otherIn.FormPanelController', {
                             "xtype": "",
                             "items": null
                         }, {
-                            conditionCode: 've_name',
+                            conditionCode:'ve_name',
                             "text": "供应商名称",
                             "flex": 1,
                             "dataIndex": "ve_name",
                             "xtype": "",
                             "items": null
                         }, {
-                            conditionCode: 've_type',
+                            conditionCode:'ve_type',
                             "text": "供应商类型",
                             "flex": 0,
                             "dataIndex": "ve_type",
@@ -62,8 +57,9 @@ Ext.define('saas.view.stock.otherIn.FormPanelController', {
                             "xtype": "",
                             "items": null
                         }]
-                    });
-                },
+                    }) ;   
+
+                }
             },
             //放大镜赋值关系 以及 tpl模板
             'dbfindtrigger[name=pi_custname]': {

+ 0 - 62
frontend/saas-web/app/view/stock/otherOut/FormPanelController.js

@@ -5,72 +5,10 @@ Ext.define('saas.view.stock.otherOut.FormPanelController', {
     init: function (form) {
         var me = this;
         this.control({
-            //放大镜赋值关系 以及 tpl模板
-            'dbfindtrigger[name=pu_vendcode]': {
-                beforerender: function (f) {
-                    Ext.apply(f, {
-                        dataUrl: '/api/document/vendor/list',
-                        // dataUrl:'http://localhost:9480/vendor/list',
-                        addXtype: 'document-vendor-formpanel',
-                        addTitle: '供应商资料',
-                        dbfinds: [{
-                            from: 've_id',
-                            to: 'pi_vendid'
-                        }, {
-                            from: 've_code',
-                            to: 'pu_vendcode'
-                        }, {
-                            from: 've_name',
-                            to: 'pu_vendname'
-                        }],
-                        dbtpls: [{
-                            field: 've_code',
-                            width: 100
-                        }, {
-                            field: 've_name',
-                            width: 100
-                        }],
-                        dbColumns: [{
-                            conditionCode: 've_id',
-                            "text": "供应商ID",
-                            "flex": 0,
-                            "dataIndex": "ve_id",
-                            "width": 0,
-                            "xtype": "",
-                            "items": null
-                        }, {
-                            conditionCode: 've_code',
-                            "text": "供应商编号",
-                            "flex": 1,
-                            "dataIndex": "ve_code",
-                            "width": 100,
-                            "xtype": "",
-                            "items": null
-                        }, {
-                            conditionCode: 've_name',
-                            "text": "供应商名称",
-                            "flex": 1,
-                            "dataIndex": "ve_name",
-                            "xtype": "",
-                            "items": null
-                        }, {
-                            conditionCode: 've_type',
-                            "text": "供应商类型",
-                            "flex": 0,
-                            "dataIndex": "ve_type",
-                            "width": 200,
-                            "xtype": "",
-                            "items": null
-                        }]
-                    });
-
-                }
-            },
             //放大镜赋值关系 以及 tpl模板
             'dbfindtrigger[name=pi_vendname]':{
                 beforerender:function(f){
                     Ext.apply(f,{
-
                         dataUrl:'/api/document/vendor/list',
                         // dataUrl:'http://localhost:9480/vendor/list',
                         addXtype: 'document-vendor-formpanel',