Ver Fonte

快递100集成

qt5107 há 2 anos atrás
pai
commit
54b03c34c4

+ 28 - 0
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/entity/logistics/LogisticsDetails.java

@@ -59,5 +59,33 @@ public class LogisticsDetails extends BaseEntity {
     @TableLogic
     private Integer delFlag;
 
+    /**
+     * 采购数量
+     */
+    @TableField(exist = false)
+    private BigDecimal purchaseQuantity;
 
+    /**
+     * 物品ID
+     */
+    @TableField(exist = false)
+    private Long goodsId;
+
+    /**
+     * 物品编码
+     */
+    @TableField(exist = false)
+    private String goodsCode;
+
+    /**
+     * 物品名称
+     */
+    @TableField(exist = false)
+    private String goodsName;
+
+    /**
+     * 仓库ID
+     */
+    @TableField(exist = false)
+    private Long warehouseId;
 }

+ 30 - 0
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/entity/logistics/LogisticsInfo.java

@@ -80,4 +80,34 @@ public class LogisticsInfo extends BaseEntity {
      */
     @TableField(exist = false)
     private List<FileInfo> fileInfos;
+
+    /**
+     * 采购单号
+     */
+    @TableField(exist = false)
+    private Long purchaseCode;
+
+    /**
+     * 供应商ID
+     */
+    @TableField(exist = false)
+    private Long supplierId;
+
+    /**
+     * 供应商名称
+     */
+    @TableField(exist = false)
+    private String supplierName;
+
+    /**
+     * 物流公司名称
+     */
+    @TableField(exist = false)
+    private String logisticsCompanyName;
+
+    /**
+     * 采购员名称
+     */
+    @TableField(exist = false)
+    private String purchaseName;
 }

+ 34 - 0
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/stock/PurchaseInStockVo.java

@@ -0,0 +1,34 @@
+package com.fjhx.params.stock;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class PurchaseInStockVo implements StockChangeVo.ChangeDetails {
+
+    /**
+     * 业务ID
+     */
+    private Long businessId;
+
+    /**
+     * 物品ID
+     */
+    private Long goodsId;
+
+    /**
+     * 仓库ID
+     */
+    private Long warehouseId;
+
+    /**
+     * 入库数量
+     */
+    private BigDecimal changeQuantity;
+
+    /**
+     * 备注
+     */
+    private String remarks;
+}

+ 4 - 0
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/stock/StockChangeVo.java

@@ -21,6 +21,10 @@ public class StockChangeVo {
         changeDetailsList = manualVo.getChangeProductList();
     }
 
+    public StockChangeVo(List<PurchaseInStockVo> list) {
+        changeDetailsList = list;
+    }
+
     /**
      * 默认业务ID
      * 未指定业务ID时,会使用此业务ID

+ 33 - 8
hx-service/victoriatourist/src/main/java/com/fjhx/controller/stock/PurchaseInStockController.java

@@ -2,9 +2,13 @@ package com.fjhx.controller.stock;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.base.Condition;
+import com.fjhx.entity.logistics.LogisticsDetails;
+import com.fjhx.entity.logistics.LogisticsInfo;
 import com.fjhx.enums.stock.InTypeEnum;
+import com.fjhx.params.stock.PurchaseInStockVo;
 import com.fjhx.params.stock.StockChangeVo;
 import com.fjhx.service.logistics.LogisticsDetailsService;
+import com.fjhx.service.logistics.LogisticsInfoService;
 import com.fjhx.service.stock.StockService;
 import org.springblade.core.tool.api.R;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -14,7 +18,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.List;
-import java.util.Map;
 
 /**
  * 采购入库
@@ -24,27 +27,49 @@ import java.util.Map;
 public class PurchaseInStockController {
 
     @Autowired
+    private LogisticsInfoService logisticsInfoService;
+
+    @Autowired
     private LogisticsDetailsService logisticsDetailsService;
 
     @Autowired
     private StockService stockService;
 
+    /**
+     * 列表
+     *
+     * @param condition 查询条件
+     * @return
+     */
     @PostMapping("/page")
     public R page(@RequestBody Condition condition) {
-        Page<Map<String, Object>> result = null;
+        Page<LogisticsInfo> result = logisticsInfoService.getPage(condition);
         return R.success(result);
     }
 
-    @PostMapping("getLogisticsDetailsByLogisticsId")
-    public R getLogisticsDetailsByLogisticsId(@RequestBody Condition condition) {
-        List<Map<String, Object>> result = logisticsDetailsService.getLogisticsDetailsByLogisticsId(condition);
+    /**
+     * 物流单明细
+     *
+     * @param entity 查询条件
+     * @return
+     */
+    @PostMapping("/logistics/details")
+    public R logisticsDetails(@RequestBody LogisticsDetails entity) {
+        List<LogisticsDetails> result = logisticsDetailsService.getByLogisticsInfoId(entity.getLogisticsInfoId());
         return R.success(result);
     }
 
+    /**
+     * 入库
+     *
+     * @param list 参数
+     * @return
+     */
     @PostMapping("/add")
-    public R add(@RequestBody StockChangeVo stockVo) {
-        stockVo.setTypeEnum(InTypeEnum.PURCHASE);
-        stockService.changeQuantity(stockVo);
+    public R add(@RequestBody List<PurchaseInStockVo> list) {
+        StockChangeVo vo = new StockChangeVo(list);
+        vo.setTypeEnum(InTypeEnum.PURCHASE);
+        stockService.changeQuantity(vo);
         return R.success();
     }
 

+ 7 - 4
hx-service/victoriatourist/src/main/java/com/fjhx/mapper/logistics/LogisticsDetailsMapper.java

@@ -2,11 +2,8 @@ package com.fjhx.mapper.logistics;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.fjhx.entity.logistics.LogisticsDetails;
-import com.fjhx.utils.wrapperUtil.IWrapper;
-import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
-import java.util.Map;
 
 /**
  * <p>
@@ -18,6 +15,12 @@ import java.util.Map;
  */
 public interface LogisticsDetailsMapper extends BaseMapper<LogisticsDetails> {
 
-    List<Map<String, Object>> getLogisticsDetailsByLogisticsId(@Param("ew") IWrapper<Object> wrapper);
+    /**
+     * 根据物流单ID查询物流明细
+     *
+     * @param logisticsInfoId 物流单ID
+     * @return
+     */
+    List<LogisticsDetails> getByLogisticsInfoId(Long logisticsInfoId);
 
 }

+ 17 - 15
hx-service/victoriatourist/src/main/java/com/fjhx/mapper/logistics/LogisticsDetailsMapper.xml

@@ -2,21 +2,23 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.fjhx.mapper.logistics.LogisticsDetailsMapper">
 
-    <select id="getLogisticsDetailsByLogisticsId" resultType="java.util.LinkedHashMap">
-        select ld.id,
-               ap.code     applyPurchaseCode,
-               pi.code     productCode,
-               pi.name     productName,
-               pi.type     productType,
-               ap.receipt_warehouse_id warehouseId,
-               w.name      warehouseName,
-               ap.quantity applyPurchaseQuantity,
-               ld.shipment_quantity shipmentQuantity
-        from logistics_details ld
-                 left join apply_purchase ap on ld.apply_purchase_id = ap.id
-                 left join product_info pi on ap.goods_id = pi.id
-                 left join warehouse w on ap.receipt_warehouse_id = w.id
-            ${ew.customSqlSegment}
+    <select id="getByLogisticsInfoId" resultType="com.fjhx.entity.logistics.LogisticsDetails">
+        SELECT
+            t1.id,
+            t1.shipment_quantity,
+            t2.quantity purchaseQuantity,
+            t3.id goodsId,
+            t3.`code` goodsCode,
+            t3.`name` goodsName,
+            t4.id warehouseId
+        FROM
+            logistics_details t1
+            LEFT JOIN apply_purchase t2 ON t1.apply_purchase_id = t2.id
+            LEFT JOIN product_info t3 ON t2.goods_id = t3.id
+            LEFT JOIN warehouse t4 ON t2.receipt_warehouse_id = t4.id
+        <where>
+            t1.logistics_info_id = #{logisticsInfoId}
+        </where>
     </select>
 
 </mapper>

+ 4 - 0
hx-service/victoriatourist/src/main/java/com/fjhx/mapper/logistics/LogisticsInfoMapper.java

@@ -1,7 +1,10 @@
 package com.fjhx.mapper.logistics;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.entity.logistics.LogisticsInfo;
+import com.fjhx.utils.wrapperUtil.IWrapper;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * <p>
@@ -13,4 +16,5 @@ import com.fjhx.entity.logistics.LogisticsInfo;
  */
 public interface LogisticsInfoMapper extends BaseMapper<LogisticsInfo> {
 
+    Page<LogisticsInfo> getPage(@Param("page") Page<LogisticsInfo> page, @Param("ew") IWrapper<LogisticsInfo> wrapper);
 }

+ 22 - 0
hx-service/victoriatourist/src/main/java/com/fjhx/mapper/logistics/LogisticsInfoMapper.xml

@@ -2,4 +2,26 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.fjhx.mapper.logistics.LogisticsInfoMapper">
 
+    <select id="getPage" resultType="com.fjhx.entity.logistics.LogisticsInfo">
+        SELECT
+            t1.id,
+            t1.business_id,
+            t1.`code`,
+            t1.in_stock_status,
+            t1.logistics_company_code,
+            t1.logistics_status,
+            t2.`code` purchaseCode,
+            t2.create_user,
+            t2.create_time,
+	        t3.id supplierId,
+	        t3.`name` supplierName,
+	        t4.`name` logisticsCompanyName
+        FROM
+            logistics_info t1
+            LEFT JOIN purchase t2 ON t1.business_id = t2.id
+            LEFT JOIN supplier t3 ON t2.supplier_id = t3.id
+	        LEFT JOIN logistics_company t4 ON t1.logistics_company_code = t4.`code`
+        ${ew.customSqlSegment}
+    </select>
+
 </mapper>

+ 5 - 8
hx-service/victoriatourist/src/main/java/com/fjhx/service/logistics/LogisticsDetailsService.java

@@ -2,7 +2,6 @@ package com.fjhx.service.logistics;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.base.BaseService;
-import com.fjhx.base.Condition;
 import com.fjhx.entity.logistics.LogisticsDetails;
 import com.fjhx.params.logistics.LogisticsDetailsVo;
 
@@ -28,13 +27,11 @@ public interface LogisticsDetailsService extends BaseService<LogisticsDetails> {
     void delete(LogisticsDetailsVo logisticsDetailsVo);
 
     /**
-     * 根据物流单id查询物流明细
+     * 根据物流单ID查询物流明细
+     *
+     * @param logisticsInfoId 物流单ID
+     * @return
      */
-    List<Map<String, Object>> getLogisticsDetailsByLogisticsId(Condition condition);
-
-    /**
-     * 提交入库数量
-     */
-    void submitLogisticsDetails(List<LogisticsDetails> logisticsDetailsList);
+    List<LogisticsDetails> getByLogisticsInfoId(Long logisticsInfoId);
 
 }

+ 8 - 21
hx-service/victoriatourist/src/main/java/com/fjhx/service/logistics/impl/LogisticsDetailsServiceImpl.java

@@ -49,28 +49,15 @@ public class LogisticsDetailsServiceImpl extends ServiceImpl<LogisticsDetailsMap
         removeById(logisticsDetailsVo.getId());
     }
 
+    /**
+     * 根据物流单ID查询物流明细
+     *
+     * @param logisticsInfoId 物流单ID
+     * @return
+     */
     @Override
-    public List<Map<String, Object>> getLogisticsDetailsByLogisticsId(Condition condition) {
-        Long id = condition.getLong("id");
-        Assert.notEmpty(id, "物流单id不能为空");
-
-        IWrapper<Object> wrapper = IWrapper.getWrapper(condition);
-        wrapper.eq("ld.id", id);
-
-        return baseMapper.getLogisticsDetailsByLogisticsId(wrapper);
-    }
-
-    @Transactional(rollbackFor = Exception.class)
-    @Override
-    public void submitLogisticsDetails(List<LogisticsDetails> logisticsDetailsList) {
-        saveBatch(logisticsDetailsList);
-
-        // 更新申购入库数量
-
-
-
-        // 更新库存
-
+    public List<LogisticsDetails> getByLogisticsInfoId(Long logisticsInfoId) {
+        return baseMapper.getByLogisticsInfoId(logisticsInfoId);
     }
 
 }

+ 23 - 1
hx-service/victoriatourist/src/main/java/com/fjhx/service/logistics/impl/LogisticsInfoServiceImpl.java

@@ -4,13 +4,17 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.constants.logistics.LogisticsConstant;
+import com.fjhx.entity.apply.ApplyPurchase;
 import com.fjhx.entity.logistics.LogisticsInfo;
+import com.fjhx.entity.purchase.Purchase;
+import com.fjhx.enums.purchase.PurchaseStatusEnum;
 import com.fjhx.mapper.logistics.LogisticsInfoMapper;
 import com.fjhx.params.logistics.LogisticsInfoVo;
 import com.fjhx.service.logistics.LogisticsDetailsService;
 import com.fjhx.service.logistics.LogisticsInfoService;
 import com.fjhx.uitl.kd100.KD100Util;
 import com.fjhx.utils.FileClientUtil;
+import com.fjhx.utils.UserClientUtil;
 import com.fjhx.utils.wrapperUtil.IWrapper;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.tool.utils.Func;
@@ -43,8 +47,26 @@ public class LogisticsInfoServiceImpl extends ServiceImpl<LogisticsInfoMapper, L
     public Page<LogisticsInfo> getPage(Map<String, Object> condition) {
 
         IWrapper<LogisticsInfo> wrapper = IWrapper.getWrapper(condition);
+        wrapper.eq("t1", LogisticsInfo::getStatus, LogisticsConstant.Status.STATUS_1)
+                .lt("t1", LogisticsInfo::getInStockStatus, LogisticsConstant.InStockStatus.STATUS_30)
+                .eq("t1", LogisticsInfo::getBusinessType, 1)
+                .ge("t2", Purchase::getStatus, PurchaseStatusEnum.STATUS_30.getKey())
+                .le("t2", Purchase::getStatus, PurchaseStatusEnum.STATUS_40.getKey())
+                .eq("t1", LogisticsInfo::getInStockStatus)
+                .and(Func.isNotEmpty(condition.get("keyword")), o -> o.apply("instr(t1.`code`, '" + condition.get("keyword") + "') > 0").or().apply("instr(t2.`code`, '" + condition.get("keyword") + "') > 0").or().apply("instr(t3.`name`, '" + condition.get("keyword") + "') > 0"))
+                .orderByDesc("t1", ApplyPurchase::getId);
+
+        Page<LogisticsInfo> page = baseMapper.getPage(createPage(condition), wrapper);
+        if (Func.isNotEmpty(page.getRecords())) {
+            Map<Long, String> userNameMap = UserClientUtil.getUserNameMap(page.getRecords(), LogisticsInfo::getCreateUser);
+            for (LogisticsInfo entity : page.getRecords()) {
+                if (Func.isNotEmpty(userNameMap) && Func.isNotEmpty(userNameMap.get(entity.getCreateUser()))) {
+                    entity.setPurchaseName(userNameMap.get(entity.getCreateUser()));
+                }
+            }
+        }
 
-        return page(condition, wrapper);
+        return page;
     }
 
     @Transactional(rollbackFor = {Exception.class})