Przeglądaj źródła

1.产品库列表2.个人物料库绑定解绑

chenw 7 lat temu
rodzic
commit
b892a577d5

+ 96 - 0
applications/document/document-dto/src/main/java/com.usoftchina.saas.document.dto/ProdStorageDTO.java

@@ -0,0 +1,96 @@
+package com.usoftchina.saas.document.dto;
+
+import java.io.Serializable;
+
+/**
+ * @Description 产品库列表
+ * @Author chenwei
+ * @Date 2019/01/10
+ */
+public class ProdStorageDTO implements Serializable {
+
+    private Long prodId;
+    private String prodName;
+    private String prodCode;
+    private String prodOrispeccode;
+    private String prodSpec;
+    private String prodBrand;
+    private String prodUnit;
+    private String prodLeadtime;
+    /**
+     * 绑定状态
+     */
+    private Short status;
+
+    public Long getProdId() {
+        return prodId;
+    }
+
+    public void setProdId(Long prodId) {
+        this.prodId = prodId;
+    }
+
+    public String getProdName() {
+        return prodName;
+    }
+
+    public void setProdName(String prodName) {
+        this.prodName = prodName;
+    }
+
+    public String getProdCode() {
+        return prodCode;
+    }
+
+    public void setProdCode(String prodCode) {
+        this.prodCode = prodCode;
+    }
+
+    public String getProdOrispeccode() {
+        return prodOrispeccode;
+    }
+
+    public void setProdOrispeccode(String prodOrispeccode) {
+        this.prodOrispeccode = prodOrispeccode;
+    }
+
+    public String getProdSpec() {
+        return prodSpec;
+    }
+
+    public void setProdSpec(String prodSpec) {
+        this.prodSpec = prodSpec;
+    }
+
+    public String getProdBrand() {
+        return prodBrand;
+    }
+
+    public void setProdBrand(String prodBrand) {
+        this.prodBrand = prodBrand;
+    }
+
+    public String getProdUnit() {
+        return prodUnit;
+    }
+
+    public void setProdUnit(String prodUnit) {
+        this.prodUnit = prodUnit;
+    }
+
+    public String getProdLeadtime() {
+        return prodLeadtime;
+    }
+
+    public void setProdLeadtime(String prodLeadtime) {
+        this.prodLeadtime = prodLeadtime;
+    }
+
+    public Short getStatus() {
+        return status;
+    }
+
+    public void setStatus(Short status) {
+        this.status = status;
+    }
+}

+ 47 - 0
applications/document/document-dto/src/main/java/com.usoftchina.saas.document.dto/ProductSalerDTO.java

@@ -0,0 +1,47 @@
+package com.usoftchina.saas.document.dto;
+
+import java.io.Serializable;
+
+/**
+ * @Description 个人物料库
+ * @Author chenwei
+ * @Date 2019/01/10
+ */
+public class ProductSalerDTO implements Serializable {
+    /**
+     * 物料ID
+     */
+    private Long prodId;
+    /**
+     * 物料编号
+     */
+    private String prodCode;
+    /**
+     * 操作类型, 0:解绑 1:绑定
+     */
+    private Short operate;
+
+    public Long getProdId() {
+        return prodId;
+    }
+
+    public void setProdId(Long prodId) {
+        this.prodId = prodId;
+    }
+
+    public String getProdCode() {
+        return prodCode;
+    }
+
+    public void setProdCode(String prodCode) {
+        this.prodCode = prodCode;
+    }
+
+    public Short getOperate() {
+        return operate;
+    }
+
+    public void setOperate(Short operate) {
+        this.operate = operate;
+    }
+}

+ 71 - 0
applications/document/document-dto/src/main/java/com.usoftchina.saas.document.dto/ProductSalerUploadDTO.java

@@ -0,0 +1,71 @@
+package com.usoftchina.saas.document.dto;
+
+import java.io.Serializable;
+
+/**
+ * @Description 个人物料库上传B2B传输对象
+ * @Author chenwei
+ * @Date 2019/01/10
+ */
+public class ProductSalerUploadDTO implements Serializable {
+    /**
+     * 主键id
+     */
+    private Long ps_id;
+
+    /**
+     * 物料code
+     */
+    private String ps_code;
+
+    /**
+     * 个人uu号
+     */
+    private Long em_uu;
+    /**
+     * 企业uu号
+     */
+    private Long en_uu;
+
+    public Long getPs_id() {
+        return ps_id;
+    }
+
+    public void setPs_id(Long ps_id) {
+        this.ps_id = ps_id;
+    }
+
+    public String getPs_code() {
+        return ps_code;
+    }
+
+    public void setPs_code(String ps_code) {
+        this.ps_code = ps_code;
+    }
+
+    public Long getEm_uu() {
+        return em_uu;
+    }
+
+    public void setEm_uu(Long em_uu) {
+        this.em_uu = em_uu;
+    }
+
+    public Long getEn_uu() {
+        return en_uu;
+    }
+
+    public void setEn_uu(Long en_uu) {
+        this.en_uu = en_uu;
+    }
+
+    public ProductSalerUploadDTO(Long ps_id, String ps_code, Long em_uu, Long en_uu) {
+        this.ps_id = ps_id;
+        this.ps_code = ps_code;
+        this.em_uu = em_uu;
+        this.en_uu = en_uu;
+    }
+
+    public ProductSalerUploadDTO() {
+    }
+}

+ 5 - 0
applications/document/document-server/pom.xml

@@ -92,6 +92,11 @@
             <groupId>com.usoftchina.saas</groupId>
             <artifactId>datacenter-client</artifactId>
         </dependency>
+        <dependency>
+          <groupId>com.usoftchina.saas</groupId>
+          <artifactId>mall-api</artifactId>
+          <version>1.0.0-SNAPSHOT</version>
+        </dependency>
     </dependencies>
 
     <build>

+ 19 - 0
applications/document/document-server/src/main/java/com/usoftchina/saas/document/controller/ProductController.java

@@ -10,9 +10,11 @@ import com.usoftchina.saas.commons.dto.DocBaseDTO;
 import com.usoftchina.saas.commons.dto.ListReqDTO;
 import com.usoftchina.saas.document.dto.ProductDTO;
 import com.usoftchina.saas.document.dto.ProductListDTO;
+import com.usoftchina.saas.document.dto.ProductSalerDTO;
 import com.usoftchina.saas.document.dto.ProductUploadDTO;
 import com.usoftchina.saas.document.entities.Product;
 import com.usoftchina.saas.document.service.ProductService;
+import com.usoftchina.saas.page.PageDefault;
 import com.usoftchina.saas.page.PageRequest;
 import com.usoftchina.saas.utils.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -153,4 +155,21 @@ public class ProductController {
         productService.updateB2BStatus(ids, status);
         return Result.success();
     }
+
+    /**
+     * 产品库列表
+     * @param page
+     * @param listReqDTO
+     * @return
+     */
+    @GetMapping("/prodStorage/list")
+    public Result getProdStorage(@PageDefault(number = 1, size = 10) PageRequest page, ListReqDTO listReqDTO){
+        return Result.success(productService.getProdStorage(page, listReqDTO));
+    }
+
+    @PostMapping("/prodStorage/saler")
+    public Result createProdSaler(@RequestBody ProductSalerDTO productSalerDTO){
+        productService.createProdSaler(productSalerDTO);
+        return Result.success();
+    }
 }

+ 3 - 0
applications/document/document-server/src/main/java/com/usoftchina/saas/document/mapper/ProductMapper.java

@@ -2,6 +2,7 @@ package com.usoftchina.saas.document.mapper;
 
 import com.usoftchina.saas.base.mapper.CommonBaseMapper;
 import com.usoftchina.saas.commons.dto.ComboDTO;
+import com.usoftchina.saas.document.dto.ProdStorageDTO;
 import com.usoftchina.saas.document.dto.ProductDTO;
 import com.usoftchina.saas.document.dto.ProductReserveCostDTO;
 import com.usoftchina.saas.document.dto.ProductUploadDTO;
@@ -67,4 +68,6 @@ public interface ProductMapper extends CommonBaseMapper<Product> {
     List<ProductUploadDTO> selectUploadProdByCompanyId(@Param("companyId") Long companyId);
 
     void updateB2BStatus(List<String> idsList, @Param("status") String status);
+
+    List<ProdStorageDTO> getProdStorage(@Param("condition") String condition, @Param("companyId") Long companyId, @Param("userId") Long userId);
 }

+ 27 - 0
applications/document/document-server/src/main/java/com/usoftchina/saas/document/mapper/ProductSalerMapper.java

@@ -0,0 +1,27 @@
+package com.usoftchina.saas.document.mapper;
+
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * @Description 个人物料库
+ * @Author chenwei
+ * @Date 2019/01/11
+ */
+public interface ProductSalerMapper {
+    /**
+     * 绑定
+     * @param prodId
+     * @param userId
+     * @param companyId
+     */
+    void bind(@Param("prodId") Long prodId, @Param("userId") Long userId, @Param("companyId") Long companyId);
+
+    /**
+     * 解绑
+     * @param prodId
+     * @param userId
+     * @param companyId
+     */
+    void unbind(@Param("prodId") Long prodId, @Param("userId") Long userId, @Param("companyId") Long companyId);
+
+}

+ 15 - 4
applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/ProductService.java

@@ -8,10 +8,7 @@ import com.usoftchina.saas.commons.dto.BatchDealBaseDTO;
 import com.usoftchina.saas.commons.dto.ComboDTO;
 import com.usoftchina.saas.commons.dto.DocBaseDTO;
 import com.usoftchina.saas.commons.dto.ListReqDTO;
-import com.usoftchina.saas.document.dto.ProductDTO;
-import com.usoftchina.saas.document.dto.ProductListDTO;
-import com.usoftchina.saas.document.dto.ProductReserveCostDTO;
-import com.usoftchina.saas.document.dto.ProductUploadDTO;
+import com.usoftchina.saas.document.dto.*;
 import com.usoftchina.saas.document.entities.Product;
 import com.usoftchina.saas.document.mapper.ProductMapper;
 
@@ -138,4 +135,18 @@ public interface ProductService extends CommonBaseService<ProductMapper, Product
      * @param status
      */
     void updateB2BStatus(String ids, String status);
+
+    /**
+     * 产品库列表
+     * @param page
+     * @param listReqDTO
+     * @return
+     */
+    PageInfo<ProdStorageDTO> getProdStorage(PageRequest page, ListReqDTO listReqDTO);
+
+    /**
+     * 绑定/解绑 个人物料库
+     * @param productSalerDTO
+     */
+    void createProdSaler(ProductSalerDTO productSalerDTO);
 }

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

@@ -4,6 +4,9 @@ import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
+import com.usoftchina.inquiry.api.PublicProductApi;
+import com.usoftchina.saas.account.api.AccountApi;
+import com.usoftchina.saas.account.api.CompanyApi;
 import com.usoftchina.saas.base.Result;
 import com.usoftchina.saas.base.service.CommonBaseServiceImpl;
 import com.usoftchina.saas.commons.api.MaxnumberService;
@@ -18,21 +21,16 @@ import com.usoftchina.saas.commons.po.DataImportDetail;
 import com.usoftchina.saas.commons.po.Operation;
 import com.usoftchina.saas.commons.po.Status;
 import com.usoftchina.saas.context.BaseContextHolder;
-import com.usoftchina.saas.document.dto.ProductDTO;
-import com.usoftchina.saas.document.dto.ProductListDTO;
-import com.usoftchina.saas.document.dto.ProductReserveCostDTO;
-import com.usoftchina.saas.document.dto.ProductUploadDTO;
+import com.usoftchina.saas.document.dto.*;
 import com.usoftchina.saas.document.entities.*;
-import com.usoftchina.saas.document.mapper.DataImportMapper;
-import com.usoftchina.saas.document.mapper.ProductDetailMapper;
-import com.usoftchina.saas.document.mapper.ProductMapper;
-import com.usoftchina.saas.document.mapper.WarehouseMapper;
+import com.usoftchina.saas.document.mapper.*;
 import com.usoftchina.saas.document.service.*;
 import com.usoftchina.saas.exception.BizException;
 import com.usoftchina.saas.page.PageRequest;
 import com.usoftchina.saas.transfers.api.SendMessageApi;
 import com.usoftchina.saas.transfers.dto.MessageInfo;
 import com.usoftchina.saas.utils.CollectionUtils;
+import com.usoftchina.saas.utils.JsonUtils;
 import com.usoftchina.saas.utils.ObjectUtils;
 import com.usoftchina.saas.utils.RegexpUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -42,8 +40,6 @@ import org.springframework.util.StringUtils;
 
 import java.util.*;
 
-import static java.util.Arrays.asList;
-
 @Service
 public class ProductServiceImpl extends CommonBaseServiceImpl<ProductMapper, Product> implements ProductService {
 
@@ -67,6 +63,14 @@ public class ProductServiceImpl extends CommonBaseServiceImpl<ProductMapper, Pro
     private ProducttypeService producttypeService;
     @Autowired
     private SendMessageApi sendMessageApi;
+    @Autowired
+    private PublicProductApi publicProductApi;
+    @Autowired
+    private CompanyApi companyApi;
+    @Autowired
+    private AccountApi accountApi;
+    @Autowired
+    private ProductSalerMapper productSalerMapper;
 
     @Override
     public PageInfo<ProductDTO> getProductsByCondition(PageRequest page, ListReqDTO listReqDTO) {
@@ -762,12 +766,54 @@ public class ProductServiceImpl extends CommonBaseServiceImpl<ProductMapper, Pro
         return getMapper().selectUploadProdByCompanyId(BaseContextHolder.getCompanyId());
     }
 
+    /**
+     * 更新物料传输状态
+     * @param ids       物料ids
+     * @param status    状态: 待上传 已上传
+     */
     @Override
     public void updateB2BStatus(String ids, String status){
         List<String> idsList = new ArrayList<String>(Arrays.asList(ids.split(",")));
         getMapper().updateB2BStatus(idsList, status);
     }
 
+    /**
+     * 产品库列表
+     * @param page
+     * @param listReqDTO
+     * @return
+     */
+    @Override
+    public PageInfo<ProdStorageDTO> getProdStorage(PageRequest page, ListReqDTO listReqDTO){
+        Long companyId = BaseContextHolder.getCompanyId();
+        Long userId = BaseContextHolder.getUserId();
+        PageHelper.startPage(page.getNumber(), page.getSize());
+        String condition = listReqDTO.getFinalCondition();
+        List<ProdStorageDTO> prodStorageDTOList = getMapper().getProdStorage(condition, companyId, userId);
+        PageInfo<ProdStorageDTO> pageInfo = new PageInfo<ProdStorageDTO>(prodStorageDTOList);
+        return pageInfo;
+    }
+
+    /**
+     * 绑定/解绑 个人物料库
+     * @param productSalerDTO
+     */
+    @Override
+    public void createProdSaler(ProductSalerDTO productSalerDTO){
+        Long enUU = companyApi.getCompanyById(BaseContextHolder.getCompanyId()).getData().getUu();
+        Long userUU = accountApi.getAccountById(BaseContextHolder.getUserId()).getData().getUu();
+        ProductSalerUploadDTO productSalerUploadDTO = new ProductSalerUploadDTO(productSalerDTO.getProdId(), productSalerDTO.getProdCode(), enUU, userUU);
+        if (productSalerDTO.getOperate() == 0){
+            //解绑
+            publicProductApi.uploadProductSalerForCancel(JsonUtils.toJsonString(productSalerDTO));
+            productSalerMapper.unbind(productSalerDTO.getProdId(), BaseContextHolder.getUserId(), BaseContextHolder.getCompanyId());
+        }else if (productSalerDTO.getOperate() == 1){
+            //绑定
+            publicProductApi.updateProdSaler(JsonUtils.toJsonString(productSalerDTO));
+            productSalerMapper.bind(productSalerDTO.getProdId(), BaseContextHolder.getUserId(), BaseContextHolder.getCompanyId());
+        }
+    }
+
     private List<ProductReserveCostDTO> geReserveCost(ListReqDTO listReqDTO) {
         Long companyId = BaseContextHolder.getCompanyId();
         String condition = listReqDTO.getFinalCondition();

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

@@ -970,5 +970,36 @@
           #{id}
         </foreach>
     </update>
+    <select id="getProdStorage" resultType="com.usoftchina.saas.document.dto.ProdStorageDTO">
+      SELECT pr_id prodId, pr_detail prodName, pr_code prodCode, pr_spec prodSpec, pr_unid prodUnit, pr_brand prodBrand,
+             pr_orispeccode prodSpeccode,pr_leadtime prodLeadtime, 1 status
+      FROM product
+      <where>
+        <if test="condition != null">
+          ${condition}
+        </if>
+        <if test="userId != null">
+          and pr_id in (select ps_prid from productsaler where ps_acid = #{userId})
+        </if>
+        <if test="companyId != null">
+          and product.companyId = #{companyId}
+        </if>
+      </where>
+      union all
+      SELECT pr_id prodId, pr_detail prodName, pr_code prodCode, pr_spec prodSpec, pr_unid prodUnit, pr_brand prodBrand,
+      pr_orispeccode prodSpeccode,pr_leadtime prodLeadtime, 0 status
+      FROM product
+      <where>
+        <if test="condition != null">
+          ${condition}
+        </if>
+        <if test="userId != null">
+          and pr_id not in (select ps_prid from productsaler where ps_acid = #{userId})
+        </if>
+        <if test="companyId != null">
+          and product.companyId = #{companyId}
+        </if>
+      </where>
+    </select>
 </mapper>
 

+ 10 - 0
applications/document/document-server/src/main/resources/mapper/ProductSalerMapper.xml

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.usoftchina.saas.document.mapper.ProductSalerMapper">
+  <insert id="bind">
+    INSERT INTO productsaler(ps_prid,ps_acid,companyid) VALUES (#{prodId}, #{userId}, #{companyId})
+  </insert>
+  <delete id="unbind">
+    DELETE FROM productSaler WHERE ps_prid = #{prodId} and ps_acid = #{userId} and companyId = #{companyId}
+  </delete>
+</mapper>

+ 5 - 0
applications/transfers/mall-api/src/main/java/com/usoftchina/inquiry/api/PublicProductApi.java

@@ -12,4 +12,9 @@ public interface PublicProductApi {
     @PostMapping("/erp/save")
     void saveProducts(@RequestParam("data") String data, @RequestParam("enUU")Long enUU);
 
+    @PostMapping("/produser")
+    void updateProdSaler(@RequestParam("data") String data);
+
+    @PostMapping("//produser/quit")
+    void uploadProductSalerForCancel(@RequestParam("data") String data);
 }