Browse Source

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

zhuth 7 years ago
parent
commit
d3b3a97ebd

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

@@ -27,7 +27,7 @@ public interface PurchasedetailMapper extends CommonBaseMapper<Purchase> {
 
     List<PurchaseDetail> selectByFK(Long fk_i);
 
-    void updatePurchaseYqty(Long id);
+    void updatePurchaseYqty(Long pd_piid);
 
 
 }

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

@@ -4,9 +4,12 @@ import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.usoftchina.saas.base.Result;
 import com.usoftchina.saas.base.service.CommonBaseServiceImpl;
+import com.usoftchina.saas.commons.api.MaxnumberService;
 import com.usoftchina.saas.commons.dto.BatchDealBaseDTO;
 import com.usoftchina.saas.commons.dto.DocBaseDTO;
 import com.usoftchina.saas.commons.dto.DocSavedDTO;
+import com.usoftchina.saas.commons.exception.BizExceptionCode;
+import com.usoftchina.saas.context.BaseContextHolder;
 import com.usoftchina.saas.document.api.WarehouseApi;
 import com.usoftchina.saas.exception.BizException;
 import com.usoftchina.saas.exception.ExceptionCode;
@@ -16,7 +19,10 @@ import com.usoftchina.saas.purchase.dto.ProdInOutDTO;
 import com.usoftchina.saas.purchase.dto.ProdInOutFormDTO;
 import com.usoftchina.saas.purchase.dto.ProdInOutReqDTO;
 import com.usoftchina.saas.purchase.mapper.*;
-import com.usoftchina.saas.purchase.po.*;
+import com.usoftchina.saas.purchase.po.ProdIODetail;
+import com.usoftchina.saas.purchase.po.ProdIODetailExample;
+import com.usoftchina.saas.purchase.po.ProdInOut;
+import com.usoftchina.saas.purchase.po.ProdInOutList;
 import com.usoftchina.saas.purchase.service.ProdInOutService;
 import com.usoftchina.saas.utils.BeanMapper;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -43,6 +49,9 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
     @Autowired
     private WarehouseApi warehouseApi;
 
+    @Autowired
+    private MaxnumberService maxnumberService;
+
 
 
     @Override
@@ -99,6 +108,10 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
         if (null == formdata || null == formdata.getMain()){
             throw new BizException(500, "数据为空,请填写后再保存");
         }
+        //公司ID
+        Long companyId = BaseContextHolder.getCompanyId();
+        //人员Id
+        Long userId = BaseContextHolder.getUserId();
         //获取主表信息
         ProdInOutDTO main = formdata.getMain();
         List<ProdIODetailDTO> items = formdata.getItems();
@@ -110,61 +123,58 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
         Long pi_id = main.getId();
         String pi_inoutno = main.getPi_inoutno();
         ProdInOut prodInOut = BeanMapper.map(main,ProdInOut.class);
-
+        prodInOut.setCompanyId(companyId);
+        prodInOut.setCreatorId(userId);
+        prodInOut.setCreateTime(new Date());
         //编号获取
-        if (StringUtils.isEmpty(pi_inoutno)) {
-            pi_inoutno = "PI" + Math.random() * 1000;
-            prodInOut.setPi_inoutno(pi_inoutno);
-        }
+        pi_inoutno = pushMaxnubmer(pi_inoutno, pi_id);
+        prodInOut.setPi_inoutno(pi_inoutno);
         saveDTO.setCode(pi_inoutno);
         //判断更新与保存动作
-        if (!StringUtils.isEmpty(pi_id)){
-            //更新主表
-            getMapper().updateByPrimaryKey(prodInOut);
+        if (StringUtils.isEmpty(pi_id) || "0".equals(pi_id.toString())){
+            //插入操作
+            getMapper().insertSelective(prodInOut);
+            pi_id = prodInOut.getId();
             //添加从表传输对象
             for (ProdIODetailDTO item : items) {
                 ProdIODetail detail = BeanMapper.map(item,ProdIODetail.class);
                 detail.setPd_piid(pi_id);
                 detail.setPd_inoutno(pi_inoutno);
-                if (!StringUtils.isEmpty(detail.getId())) {
-                    updateDetails.add(detail);
-                } else {
-                    insertDetails.add(detail);
-                }
+                detail.setPd_piclass(prodInOut.getPi_class());
+                insertDetails.add(detail);
             }
             //插入从表
             if (insertDetails.size()>0) {
                 prodIODetailMapper.batchInsert(insertDetails);
             }
-            //更新从表
-            if (updateDetails.size()>0) {
-                prodIODetailMapper.batchUpdate(updateDetails);
-            }
             saveDTO.setId(pi_id);
             return saveDTO;
         }
-
-        //插入操作
-        getMapper().insertSelective(prodInOut);
-        pi_id = prodInOut.getId();
+        //更新操作
+        getMapper().updateByPrimaryKeySelective(prodInOut);
         //添加从表传输对象
         for (ProdIODetailDTO item : items) {
             ProdIODetail detail = BeanMapper.map(item, ProdIODetail.class);
             detail.setPd_piid(pi_id);
             detail.setPd_inoutno(pi_inoutno);
-            insertDetails.add(detail);
+            if (StringUtils.isEmpty(detail.getId()) || "0".equals(detail.getId().toString())) {
+                insertDetails.add(detail);
+            } else {
+                updateDetails.add(detail);
+            }
         }
         //插入从表
         if (insertDetails.size()>0) {
-
             prodIODetailMapper.batchInsert(insertDetails);
         }
+        //更新从表
+        if (updateDetails.size()>0) {
+            prodIODetailMapper.batchUpdate(updateDetails);
+        }
         saveDTO.setId(pi_id);
-
         //更新已转数
         if (!isbfaudit)
             updateYqty(pi_id,prodInOut.getPi_class());
-
         return saveDTO;
     }
 
@@ -245,10 +255,10 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
 
     @Override
     public void deleteItem(Long id) {
-        ProdInOut prodInOut = getMapper().selectByPrimaryKey(id);
-        prodIODetailMapper.deleteByPrimaryKey(prodInOut.getId());
+        ProdIODetail prodIODetail = prodIODetailMapper.selectByPrimaryKey(id);
+        prodIODetailMapper.deleteByPrimaryKey(id);
         //更新已转数
-        updateYqty(prodInOut.getId(),prodInOut.getPi_class());
+        updateYqty(prodIODetail.getPd_piid(),prodIODetail.getPd_piclass());
     }
 
     @Override
@@ -261,13 +271,10 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
         }
     }
 
-    private void updateYqty(Long id,String piclass) {
+    private void updateYqty(Long pd_piid,String piclass) {
         //更新已转数
-        prodIODetailMapper.updatePurchaseYqty(id);
-        //更新采购单入库状态
-//        purchaseMapper.updateAcceptstatus(id);
         if ("采购验收单".equals(piclass)){
-            purchasedetailMapper.updatePurchaseYqty(id);
+            purchasedetailMapper.updatePurchaseYqty(pd_piid);
         }else if ("采购验退单".equals(piclass)){
 
         }
@@ -347,4 +354,14 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
         return Result.success();
     }
 
+    private String pushMaxnubmer(String code, Long id) {
+        if (null == code) {
+            throw new BizException(BizExceptionCode.NULL_CODE);
+        }
+        Integer count = "0".equals(String.valueOf(id)) ? purchaseMapper.validateCodeWhenInsert(code) :
+                purchaseMapper.validateCodeWhenUpdate(code, id);
+        return maxnumberService.pushMaxnubmer(count, code, "Purchase");
+    }
+
+
 }

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

@@ -2,26 +2,25 @@ package com.usoftchina.saas.purchase.service.impl;
 
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
-
 import com.usoftchina.saas.base.Result;
 import com.usoftchina.saas.base.service.CommonBaseServiceImpl;
-
 import com.usoftchina.saas.commons.api.MaxnumberService;
 import com.usoftchina.saas.commons.dto.BatchDealBaseDTO;
 import com.usoftchina.saas.commons.dto.DocBaseDTO;
 import com.usoftchina.saas.commons.dto.DocSavedDTO;
 import com.usoftchina.saas.commons.exception.BizExceptionCode;
 import com.usoftchina.saas.context.BaseContextHolder;
-import com.usoftchina.saas.document.api.ProductApi;
 import com.usoftchina.saas.exception.BizException;
 import com.usoftchina.saas.exception.ExceptionCode;
 import com.usoftchina.saas.page.PageRequest;
-import com.usoftchina.saas.purchase.dto.*;
+import com.usoftchina.saas.purchase.dto.PurchaseDTO;
+import com.usoftchina.saas.purchase.dto.PurchaseDetailDTO;
+import com.usoftchina.saas.purchase.dto.PurchaseFormDTO;
+import com.usoftchina.saas.purchase.dto.PurchaseReqDTO;
 import com.usoftchina.saas.purchase.mapper.*;
 import com.usoftchina.saas.purchase.po.*;
 import com.usoftchina.saas.purchase.service.PurchaseService;
 import com.usoftchina.saas.utils.BeanMapper;
-
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;

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

@@ -420,7 +420,7 @@ 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 exists (select 1 from prodiodetail where pd_piid=#{id,jdbcType=INTEGER} and IFNULL(prodiodetail.pd_orderid,0)=purchasedetail.pd_id)
+where exists (select 1 from prodiodetail where pd_piid=#{pd_piid,jdbcType=INTEGER} and IFNULL(prodiodetail.pd_orderid,0)=purchasedetail.pd_id)
   </update>
 
 

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

@@ -26,7 +26,7 @@ Ext.define('saas.view.main.Navigation', {
                         }, {
                             id: 'purchaseIn',
                             text: '采购验收单',
-                            formType:'purchase-purchase-formpanel',
+                            formType:'purchase-purchaseIn-formpanel',
                             queryType: 'purchase-purchaseIn-querypanel'
                         },{
                             id: 'purchaseOut',