Browse Source

销售模块代码

guq 7 years ago
parent
commit
d74f78e588

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

@@ -26,9 +26,9 @@ public class ProdIODetail extends CommonBaseEntity implements Serializable {
 
     private String pd_unit;
 
-    private Integer pd_inqty;
+    private Double pd_inqty;
 
-    private Integer pd_outqty;
+    private Double pd_outqty;
 
     private Double pd_orderprice;
 

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

@@ -282,9 +282,9 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
                 //入库数大于等于采购数
                 if(purchaseDetail.getPd_acceptqty() >= purchaseDetail.getPd_qty()){
                     turnCount++;
+                }else if(purchaseDetail.getPd_acceptqty() > 0 && purchaseDetail.getPd_acceptqty() < purchaseDetail.getPd_qty()){
                     //     0 < 入库数 < 采购数
                     partTurnCount++;
-                }else if(purchaseDetail.getPd_acceptqty() > 0 && purchaseDetail.getPd_acceptqty() < purchaseDetail.getPd_qty()){
                 }
             }
             //构造更新对象
@@ -378,7 +378,7 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
                 //公司id
                 prodIODetail.setCompanyId(purchaseDetail.getCompanyId());
                 //本次转单数
-                prodIODetail.setPd_inqty((int) (purchaseDetail.getPd_qty()-purchaseDetail.getPd_yqty()));
+                prodIODetail.setPd_inqty((purchaseDetail.getPd_qty()-purchaseDetail.getPd_yqty()));
                 prodIODetailMapper.insertSelective(prodIODetail);
                 //更新已转数
                 purchaseDetail.setPd_yqty(purchaseDetail.getPd_qty());

+ 10 - 1
applications/sale/sale-dto/pom.xml

@@ -10,6 +10,15 @@
     <modelVersion>4.0.0</modelVersion>
 
     <artifactId>sale-dto</artifactId>
-
+    <dependencies>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.usoftchina.saas</groupId>
+            <artifactId>core</artifactId>
+        </dependency>
+    </dependencies>
 
 </project>

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

@@ -157,7 +157,7 @@ public class SaleController {
         return Result.success();
     }
 
-    @PostMapping("/turnOut/{id}")
+    @PostMapping("/turnProdOut/{id}")
     public Result turnOut(@PathVariable("id") Long id) {
         saleService.turnOut(id);
         return Result.success();

+ 32 - 0
applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/mapper/ProdIODetailMapper.java

@@ -0,0 +1,32 @@
+package com.usoftchina.saas.sale.mapper;
+
+import com.usoftchina.saas.base.mapper.CommonBaseMapper;
+import com.usoftchina.saas.storage.entities.ProdIODetail;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface ProdIODetailMapper  {
+
+    int deleteByPrimaryKey(Long pd_id);
+
+    int insert(ProdIODetail record);
+
+    int insertSelective(ProdIODetail record);
+
+    ProdIODetail selectByPrimaryKey(Integer pd_id);
+
+    int updateByPrimaryKeySelective(ProdIODetail record);
+
+    int updateByPrimaryKeyWithBLOBs(ProdIODetail record);
+
+    int updateByPrimaryKey(ProdIODetail record);
+
+    void batchInsert(List<ProdIODetail> list);
+
+    void batchUpdate(List<ProdIODetail> list);
+
+    void updatePurchaseYqty(Integer id);
+
+    List<ProdIODetail> selectByFK(Long id);
+}

+ 24 - 0
applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/mapper/ProdInOutMapper.java

@@ -0,0 +1,24 @@
+package com.usoftchina.saas.sale.mapper;
+
+import com.usoftchina.saas.base.mapper.CommonBaseMapper;
+import com.usoftchina.saas.storage.entities.ProdInOut;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface ProdInOutMapper {
+
+    int deleteByPrimaryKey(Long pi_id);
+
+    int insert(ProdInOut record);
+
+    int insertSelective(ProdInOut record);
+
+    ProdInOut selectByPrimaryKey(Long pi_id);
+
+    int updateByPrimaryKeySelective(ProdInOut record);
+
+    int updateByPrimaryKeyWithBLOBs(ProdInOut record);
+
+    int updateByPrimaryKey(ProdInOut record);
+}

+ 1 - 20
applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/mapper/SaledetailMapper.java

@@ -16,25 +16,6 @@ public interface SaledetailMapper {
     void deleteByForeignKey(Long id);
 
     Integer deleteByPrimaryKey(Long id);
-   /* int countByExample(SaledetailExample example);
 
-    int deleteByExample(SaledetailExample example);
-
-    int deleteByPrimaryKey(Integer sd_id);
-
-    int insert(Saledetail record);
-
-    int insertSelective(Saledetail record);
-
-    List<Saledetail> selectByExample(SaledetailExample example);
-
-    Saledetail selectByPrimaryKey(Integer sd_id);
-
-    int updateByExampleSelective(@Param("record") Saledetail record, @Param("example") SaledetailExample example);
-
-    int updateByExample(@Param("record") Saledetail record, @Param("example") SaledetailExample example);
-
-    int updateByPrimaryKeySelective(Saledetail record);
-
-    int updateByPrimaryKey(Saledetail record);*/
+    void updateByPrimaryKeySelective(SaleDetail saleDetail);
 }

+ 3 - 1
applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/po/SaleDetail.java

@@ -17,7 +17,7 @@ public class SaleDetail extends CommonBaseEntity{
 
     private String sd_code;
 
-    private Integer sd_prodid;
+    private Long sd_prodid;
 
     private String sd_prodcode;
 
@@ -39,6 +39,8 @@ public class SaleDetail extends CommonBaseEntity{
 
     private Double sd_pdqty;
 
+    private Double sd_yqty;
+
     private String sd_remark;
 
     private String sd_text1;

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

@@ -1,5 +1,6 @@
 package com.usoftchina.saas.sale.service.impl;
 
+import com.alibaba.fastjson.JSONObject;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.netflix.discovery.converters.Auto;
@@ -18,13 +19,13 @@ import com.usoftchina.saas.page.PageRequest;
 import com.usoftchina.saas.sale.dto.SaleDTO;
 import com.usoftchina.saas.sale.dto.SaleDetailDTO;
 import com.usoftchina.saas.sale.dto.SaleFormDTO;
-import com.usoftchina.saas.sale.mapper.SaleListMapper;
-import com.usoftchina.saas.sale.mapper.SaleMapper;
-import com.usoftchina.saas.sale.mapper.SaledetailMapper;
+import com.usoftchina.saas.sale.mapper.*;
 import com.usoftchina.saas.sale.po.Sale;
 import com.usoftchina.saas.sale.po.SaleDetail;
 import com.usoftchina.saas.sale.po.SaleList;
 import com.usoftchina.saas.sale.service.SaleService;
+import com.usoftchina.saas.storage.entities.ProdIODetail;
+import com.usoftchina.saas.storage.entities.ProdInOut;
 import com.usoftchina.saas.utils.BeanMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -52,6 +53,10 @@ public class SaleServiceImpl implements SaleService{
     private MessageLogService messageLogService;
     @Autowired
     private MaxnumberService maxnumberService;
+    @Autowired
+    private ProdInOutMapper prodInOutMapper;
+    @Autowired
+    private ProdIODetailMapper prodIODetailMapper;
 
     @Override
     public PageInfo<SaleList> getListData(PageRequest page, ListReqDTO req) {
@@ -285,7 +290,7 @@ public class SaleServiceImpl implements SaleService{
         }
         Integer count = "0".equals(String.valueOf(id)) ? saleMapper.validateCodeWhenInsert(code) :
                 saleMapper.validateCodeWhenUpdate(code, id);
-        return maxnumberService.pushMaxnubmer(count, code, "Purchase");
+        return maxnumberService.pushMaxnubmer(count, code, "Purchase").getData();
     }
 
     /**
@@ -338,126 +343,125 @@ public class SaleServiceImpl implements SaleService{
     @Override
     public void open(long id) {
         List<SaleDetail> saleDetailList = saledetailMapper.selectByFK(id);
-       /* //部分入库、全部入库
+        //部分入库、全部入库
         int partTurnCount = 0,turnCount = 0;
         if(saleDetailList != null && saleDetailList.size() > 0){
             for(SaleDetail saleDetail : saleDetailList){
-                //入库数大于等于采购数
-                if(purchaseDetail.getPd_acceptqty() >= purchaseDetail.getPd_qty()){
+                //
+                if(saleDetail.getSd_yqty() >= saleDetail.getSd_qty()){
                     turnCount++;
+
+                }else if(saleDetail.getSd_yqty() > 0 && saleDetail.getSd_yqty() < saleDetail.getSd_qty()){
                     //     0 < 入库数 < 采购数
                     partTurnCount++;
-                }else if(purchaseDetail.getPd_acceptqty() > 0 && purchaseDetail.getPd_acceptqty() < purchaseDetail.getPd_qty()){
                 }
             }
             //构造更新对象
-            Purchase purchase = new Purchase();
-            purchase.setId(id);
-            purchase.setPu_acceptstatuscode("UNTURNIN");
-            purchase.setPu_acceptstatus("未入库");
+            Sale sale = new Sale();
+            sale.setId(id);
+            sale.setSa_sendstatus(Status.UNTURNOUT.getDisplay());
+            sale.setSa_sendstatuscode(Status.UNTURNOUT.name());
             if(partTurnCount > 0){
-                purchase.setPu_acceptstatuscode("PART2IN");
-                purchase.setPu_acceptstatus("部分入库");
+                sale.setSa_sendstatus(Status.PARTOUT.getDisplay());
+                sale.setSa_sendstatuscode(Status.PARTOUT.name());
             }
-            if(turnCount == purchaseDetailList.size()){
-                purchase.setPu_acceptstatus("已入库");
-                purchase.setPu_acceptstatuscode("TURNIN");
+            if(turnCount == saleDetailList.size()){
+                sale.setSa_sendstatus(Status.TURNOUT.getDisplay());
+                sale.setSa_sendstatuscode(Status.TURNOUT.name());
             }
-            purchaseMapper.updateByPrimaryKeySelective(purchase);
+            saleMapper.updateByPrimaryKeySelective(sale);
             DocBaseDTO docBaseDTO = getBaseDTOById(id);
             //日志
             messageLogService.open(docBaseDTO);
-        }*/
+        }
     }
 
     @Override
     public void turnOut(Long id) {
-
-    }/*{
         if (null == id) {
             return;
         }
+        Integer count = 0;
+        double pdQty = 0;
+        double pdYqty = 0;
         Sale sale = saleMapper.selectByPrimaryKey(id);
-        Integer count=0;
-        double pdQty=0, pdYqty=0;
+        List<SaleDetail> details = saledetailMapper.selectByFK(id);
         //检查转单状态
-       // String acceptstatus = sale.getPu_acceptstatuscode();
-
-        if ("TURNIN".equals(acceptstatus)){
-            return Result.error(ExceptionCode.TURNIN_EXIST);
+        String statuscode = sale.getSa_sendstatuscode();
+        if (Status.TURNOUT.name().equals(statuscode)){
+            throw new BizException(BizExceptionCode.SALE_ALL_TURNOUT);
         }
-        if ("CLOSED".equals(acceptstatus)){
-            return Result.error(ExceptionCode.CLOSED_EXIST);
+        if (Status.CLOSE.name().equals(statuscode)){
+            throw new BizException(BizExceptionCode.SALE_CLOSE);
         }
 
-        List<PurchaseDetail> purchaseDetails = purchasedetailMapper.selectByFK(id);
-
         //检查从表
-        for (PurchaseDetail purchaseDetail : purchaseDetails) {
-            pdQty = purchaseDetail.getPd_qty();
-            pdYqty = purchaseDetail.getPd_yqty();
-            if (pdQty-pdYqty>0){
+        for (SaleDetail detail : details) {
+            pdQty = detail.getSd_qty();
+            pdYqty = detail.getSd_yqty();
+            if (pdQty - pdYqty > 0){
                 count++;
             }
         }
         //判断可转数
         if (count==0){
-            return Result.error(ExceptionCode.TURNINNUM_NOT_EXIST);
+            throw new BizException(BizExceptionCode.SALE_YQTYBEYONDQTY);
         }
+
         //插入验收单主表
         ProdInOut prodInOut = new ProdInOut();
         //生成单号
-        String piInoutno ="YS0001";
+        Object data = maxnumberService.getMaxnumber("Sale", true).getData();
+        JSONObject parse = (JSONObject)JSONObject.parse(data.toString());
+        String pi_inoutno = String.valueOf(parse.get("code"));
 
-        prodInOut.setPi_inoutno(piInoutno);
-        prodInOut.setPi_class("采购验收单");
+        prodInOut.setPi_inoutno(pi_inoutno);
+        prodInOut.setPi_class("出货单");
         prodInOut.setPi_date(new Date());
-        prodInOut.setPi_status("未审核");
-        prodInOut.setPi_statuscode("UNAUDITED");
+        prodInOut.setPi_status(Status.UNAUDITED.getDisplay());
+        prodInOut.setPi_statuscode(Status.UNAUDITED.name());
         prodInOut.setPi_recorddate(new Date());
-        prodInOut.setPi_vendid(purchase.getPu_vendid());
-        prodInOut.setPi_vendcode(purchase.getPu_vendcode());
-        prodInOut.setPi_vendname(purchase.getPu_vendname());
-        prodInOut.setPi_puid(purchase.getId().intValue());
-        prodInOut.setPi_pucode(purchase.getPu_code());
+        prodInOut.setPi_custid(sale.getSa_custid());
+        prodInOut.setPi_custcode(sale.getSa_custcode());
+        prodInOut.setPi_custname(sale.getSa_custname());
+        prodInOut.setPi_said(sale.getId());
+        prodInOut.setPi_sacode(sale.getSa_code());
         //设置公司id
-        prodInOut.setCompanyId(purchase.getCompanyId());
+        prodInOut.setCompanyId(sale.getCompanyId());
 
         prodInOutMapper.insertSelective(prodInOut);
-
-        //插入验收单从表
+        //插入出货单从表
         long pi_id = prodInOut.getId();
 
-        for (int i=0;i<purchaseDetails.size();i++){
-            PurchaseDetail purchaseDetail =purchaseDetails.get(i);
+        for (int i=0;i<details.size();i++){
+            SaleDetail saleDetail =details.get(i);
             ProdIODetail prodIODetail = new ProdIODetail();
-            if ((int) (purchaseDetail.getPd_qty()-purchaseDetail.getPd_yqty())>0){
-                prodIODetail.setPd_piid(pi_id);
-                prodIODetail.setPd_inoutno(piInoutno);
-                prodIODetail.setPd_piclass("采购验收单");
-                prodIODetail.setPd_pdno(i);
-                prodIODetail.setPd_orderid(purchaseDetail.getId().intValue());
-                prodIODetail.setPd_ordercode(purchase.getPu_code());
-                prodIODetail.setPd_orderdetno(purchaseDetail.getPd_detno());
-                prodIODetail.setPd_orderprice(purchaseDetail.getPd_price());
-                prodIODetail.setPd_prodid(purchaseDetail.getPd_prodid());
-                prodIODetail.setPd_prodcode(purchaseDetail.getPd_prodcode());
-                //公司id
-                prodIODetail.setCompanyId(purchaseDetail.getCompanyId());
-                //本次转单数
-                prodIODetail.setPd_inqty((int) (purchaseDetail.getPd_qty()-purchaseDetail.getPd_yqty()));
-                prodIODetailMapper.insertSelective(prodIODetail);
-                //更新已转数
-                purchaseDetail.setPd_yqty(purchaseDetail.getPd_qty());
-                purchasedetailMapper.updateByPrimaryKeySelective(purchaseDetail);
-            }
+            prodIODetail.setPd_piid(pi_id);
+            prodIODetail.setPd_inoutno(pi_inoutno);
+            prodIODetail.setPd_piclass("出货单");
+            prodIODetail.setPd_pdno(i);
+            prodIODetail.setPd_orderid(sale.getId());
+            prodIODetail.setPd_ordercode(sale.getSa_code());
+            prodIODetail.setPd_orderdetno(saleDetail.getSd_detno());
+            prodIODetail.setPd_orderprice(saleDetail.getSd_price());
+            prodIODetail.setPd_prodid(saleDetail.getSd_prodid());
+            prodIODetail.setPd_prodcode(saleDetail.getSd_prodcode());
+            //公司id
+            prodIODetail.setCompanyId(saleDetail.getCompanyId());
+            //本次转单数
+            prodIODetail.setPd_inqty((saleDetail.getSd_qty()-saleDetail.getSd_yqty()));
+            prodIODetailMapper.insertSelective(prodIODetail);
+            //更新已转数
+            saleDetail.setSd_yqty(saleDetail.getSd_qty());
+            saledetailMapper.updateByPrimaryKeySelective(saleDetail);
+
         }
         //更新主表入库状态
-        purchase.setPu_acceptstatus("已入库");
-        purchase.setPu_acceptstatuscode("TURNIN");
+        sale.setSa_sendstatus(Status.TURNOUT.getDisplay());
+        sale.setSa_sendstatuscode(Status.TURNOUT.name());
         //更新存在字段
-        int affect = getMapper().updateByPrimaryKeySelective(purchase);
-    }*/
+         saleMapper.updateByPrimaryKeySelective(sale);
+    }
 
     private void singleUnAudit(Long id) {
         Sale sale = new Sale();

+ 3 - 3
applications/storage/storage-dto/src/main/java/com/usoftchina/saas/storage/entities/ProdIODetail.java

@@ -26,9 +26,9 @@ public class ProdIODetail extends CommonBaseEntity implements Serializable {
 
     private String pd_unit;
 
-    private Integer pd_inqty;
+    private Double pd_inqty;
 
-    private Integer pd_outqty;
+    private Double pd_outqty;
 
     private Double pd_orderprice;
 
@@ -56,7 +56,7 @@ public class ProdIODetail extends CommonBaseEntity implements Serializable {
 
     private String pd_inwhname;
 
-    private Integer pd_orderid;
+    private Long pd_orderid;
 
     private Integer pd_sdid;
 

+ 1 - 1
applications/storage/storage-dto/src/main/java/com/usoftchina/saas/storage/entities/ProdInOut.java

@@ -31,7 +31,7 @@ public class ProdInOut extends CommonBaseEntity implements Serializable {
 
     private String pi_pucode;
 
-    private Integer pi_said;
+    private Long pi_said;
 
     private String pi_sacode;