Kaynağa Gözat

杰生重构

home 2 yıl önce
ebeveyn
işleme
337285ef2b
15 değiştirilmiş dosya ile 162 ekleme ve 77 silme
  1. 10 26
      hx-common/common-client-util/src/main/java/com/fjhx/utils/UserClientUtil.java
  2. 0 10
      hx-service-api/storage-restructure-api/src/main/java/com/fjhx/entity/apply/ApplyPurchaseDetails.java
  3. 1 2
      hx-service/storage-restructure/src/main/java/com/fjhx/controller/apply/ApplyPurchaseController.java
  4. 11 0
      hx-service/storage-restructure/src/main/java/com/fjhx/controller/common/CommonFileController.java
  5. 9 0
      hx-service/storage-restructure/src/main/java/com/fjhx/controller/supplier/SupplierController.java
  6. 0 8
      hx-service/storage-restructure/src/main/java/com/fjhx/controller/supplier/SupplierPriceChangeController.java
  7. 5 5
      hx-service/storage-restructure/src/main/java/com/fjhx/controller/water/WaterDetailController.java
  8. 12 12
      hx-service/storage-restructure/src/main/java/com/fjhx/mapper/apply/ApplyPurchaseMapper.xml
  9. 7 3
      hx-service/storage-restructure/src/main/java/com/fjhx/mapper/contract/ContractMapper.xml
  10. 1 1
      hx-service/storage-restructure/src/main/java/com/fjhx/service/apply/ApplyPurchaseService.java
  11. 20 2
      hx-service/storage-restructure/src/main/java/com/fjhx/service/apply/impl/ApplyPurchaseServiceImpl.java
  12. 0 3
      hx-service/storage-restructure/src/main/java/com/fjhx/service/flow/InitiateApplyFlowService.java
  13. 2 0
      hx-service/storage-restructure/src/main/java/com/fjhx/service/supplier/SupplierService.java
  14. 82 4
      hx-service/storage-restructure/src/main/java/com/fjhx/service/supplier/impl/SupplierServiceImpl.java
  15. 2 1
      hx-service/storage/src/main/java/com/fjhx/stock/mapper/StockBackMapper.xml

+ 10 - 26
hx-common/common-client-util/src/main/java/com/fjhx/utils/UserClientUtil.java

@@ -61,26 +61,16 @@ public class UserClientUtil {
     }
 
     /**
-     * 通过userId获取
-     *
-     * @param list   数组
-     * @param mapper Lambda方法
-     * @return MAP<用户id, 用户名称>
+     * 通过用户id获取用户名称以及岗位名称
      */
-    public static <T> Map<Long, String> getUserNameMapFunctionList(List<T> list, Function<T, List<Long>> mapper) {
-
-        List<List<Long>> userIdsList = list.stream().map(mapper).collect(Collectors.toList());
-
-        List<Long> userIdList = new ArrayList<>();
-
-        userIdsList.forEach(userIdList::addAll);
-
-        userIdList = userIdList.stream().filter(Objects::nonNull).distinct().collect(Collectors.toList());
-
-        return getUserNameMap(userIdList);
+    public static Map<Long, Map<String, Object>> getUserNameAndPostByUserId(List<Long> userIdList) {
+        R<Map<Long, Map<String, Object>>> r = getUserSearchClient().getUserNameAndPostByUserId(userIdList);
+        if (r.getCode() == ResultCode.SUCCESS.getCode()) {
+            return r.getData();
+        }
+        return new HashMap<>();
     }
 
-
     public static <T> Map<Long, Map<String, Object>> getUserNameAndPostFunctionLong(List<T> list, Function<T, Long> mapper) {
         List<Long> userIdList = list.stream().map(mapper)
                 .distinct().filter(Objects::nonNull)
@@ -88,15 +78,9 @@ public class UserClientUtil {
         return getUserNameAndPostByUserId(userIdList);
     }
 
-    /**
-     * 通过用户id获取用户名称以及岗位名称
-     */
-    public static Map<Long, Map<String, Object>> getUserNameAndPostByUserId(List<Long> userIdList) {
-        R<Map<Long, Map<String, Object>>> r = getUserSearchClient().getUserNameAndPostByUserId(userIdList);
-        if (r.getCode() == ResultCode.SUCCESS.getCode()) {
-            return r.getData();
-        }
-        return new HashMap<>();
+    public static Map<String, Object> getUserNameAndPostByUserId(Long userId) {
+        Map<Long, Map<String, Object>> userNameAndPostMap = getUserNameAndPostByUserId(Collections.singletonList(userId));
+        return userNameAndPostMap.get(userId);
     }
 
 }

+ 0 - 10
hx-service-api/storage-restructure-api/src/main/java/com/fjhx/entity/apply/ApplyPurchaseDetails.java

@@ -43,16 +43,6 @@ public class ApplyPurchaseDetails extends StorageBaseEntity {
     private BigDecimal quantity;
 
     /**
-     * 到货数量
-     */
-    private BigDecimal arrivalQuantity;
-
-    /**
-     * 在途数量
-     */
-    private BigDecimal afloatQuantity;
-
-    /**
      * 用途
      */
     private String purpose;

+ 1 - 2
hx-service/storage-restructure/src/main/java/com/fjhx/controller/apply/ApplyPurchaseController.java

@@ -93,10 +93,9 @@ public class ApplyPurchaseController {
      */
     @PostMapping("/applyPurchaseDetailsList")
     public R applyPurchaseDetailsList(@RequestBody Condition condition) {
-        List<Map<String, Object>> result = applyPurchaseService.getApplyPurchaseDetailsList(condition);
+        Map<String, Object> result = applyPurchaseService.getApplyPurchaseDetailsList(condition);
         return R.success(result);
     }
 
-
 }
 

+ 11 - 0
hx-service/storage-restructure/src/main/java/com/fjhx/controller/common/CommonFileController.java

@@ -1,5 +1,6 @@
 package com.fjhx.controller.common;
 
+import cn.hutool.crypto.digest.MD5;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.fjhx.entity.common.CommonFile;
 import com.fjhx.entity.example.ExampleInfo;
@@ -8,6 +9,7 @@ import com.fjhx.service.common.CommonFileService;
 import com.fjhx.utils.ExampleAbstract;
 import com.fjhx.utils.FlowConstructor;
 import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.DigestUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
@@ -104,5 +106,14 @@ public class CommonFileController {
         return R.success();
     }
 
+
+    @GetMapping("/getPassword")
+    public String getPassword(@RequestParam("password") String password) {
+        String s = MD5.create().digestHex(password);
+        String hex = DigestUtil.hex(s);
+        return hex;
+    }
+
+
 }
 

+ 9 - 0
hx-service/storage-restructure/src/main/java/com/fjhx/controller/supplier/SupplierController.java

@@ -111,5 +111,14 @@ public class SupplierController {
         return R.success(result);
     }
 
+    /**
+     * 合同采购概况
+     */
+    @PostMapping("/pagePurchase")
+    public R pagePurchase(@RequestBody Map<String, String> condition) {
+        Page<Map<String, Object>> result = supplierService.pagePurchase(condition);
+        return R.success(result);
+    }
+
 }
 

+ 0 - 8
hx-service/storage-restructure/src/main/java/com/fjhx/controller/supplier/SupplierPriceChangeController.java

@@ -1,18 +1,10 @@
 package com.fjhx.controller.supplier;
 
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import org.springblade.core.tool.api.R;
-import com.fjhx.entity.supplier.SupplierPriceChange;
-import com.fjhx.params.supplier.SupplierPriceChangeVo;
 import com.fjhx.service.supplier.SupplierPriceChangeService;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
-import java.util.Map;
-
 /**
  * <p>
  * 供应商价格维护变更记录 前端控制器

+ 5 - 5
hx-service/storage-restructure/src/main/java/com/fjhx/controller/water/WaterDetailController.java

@@ -1,10 +1,10 @@
 package com.fjhx.controller.water;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import org.springblade.core.tool.api.R;
 import com.fjhx.entity.water.WaterDetail;
 import com.fjhx.params.water.WaterDetailVo;
 import com.fjhx.service.water.WaterDetailService;
+import org.springblade.core.tool.api.R;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -29,25 +29,25 @@ public class WaterDetailController {
     private WaterDetailService waterDetailService;
 
     @PostMapping("/page")
-    public R page(@RequestBody Map<String, String> condition){
+    public R page(@RequestBody Map<String, String> condition) {
         Page<WaterDetail> result = waterDetailService.getPage(condition);
         return R.success(result);
     }
 
     @PostMapping("/add")
-    public R add(@RequestBody WaterDetailVo waterDetailVo){
+    public R add(@RequestBody WaterDetailVo waterDetailVo) {
         waterDetailService.add(waterDetailVo);
         return R.success();
     }
 
     @PostMapping("/edit")
-    public R edit(@RequestBody WaterDetailVo waterDetailVo){
+    public R edit(@RequestBody WaterDetailVo waterDetailVo) {
         waterDetailService.edit(waterDetailVo);
         return R.success();
     }
 
     @PostMapping("/delete")
-    public R delete(@RequestBody WaterDetailVo waterDetailVo){
+    public R delete(@RequestBody WaterDetailVo waterDetailVo) {
         waterDetailService.delete(waterDetailVo);
         return R.success();
     }

+ 12 - 12
hx-service/storage-restructure/src/main/java/com/fjhx/mapper/apply/ApplyPurchaseMapper.xml

@@ -22,18 +22,18 @@
     </select>
 
     <select id="getPage" resultType="java.util.LinkedHashMap">
-        select m.id                  materialId,
-               m.code                materialCode,
-               m.name                materialName,
-               m.spec                materialSpec,
-               apd.create_time       applyTime,
-               apd.quantity          applyQuantity,
-               ifnull(s.quantity, 0) stockQuantity,
-               apd.afloat_quantity   afloatQuantity,
-               m.safety_stock        safetyStock,
-               apd.purpose           purpose,
-               ap.remark             remark,
-               c.flow_status         flowStatus
+        select m.id                          materialId,
+               m.code                        materialCode,
+               m.name                        materialName,
+               m.spec                        materialSpec,
+               apd.create_time               applyTime,
+               apd.quantity                  applyQuantity,
+               ifnull(s.quantity, 0)         stockQuantity,
+               ifnull(cd.afloat_quantity, 0) afloatQuantity,
+               m.safety_stock                safetyStock,
+               apd.purpose                   purpose,
+               ap.remark                     remark,
+               c.flow_status                 flowStatus
         from apply_purchase_details apd
                  left join apply_purchase ap on apd.apply_purchase_id = ap.id
                  left join material m on apd.material_id = m.id

+ 7 - 3
hx-service/storage-restructure/src/main/java/com/fjhx/mapper/contract/ContractMapper.xml

@@ -14,34 +14,38 @@
 
     <select id="getPage" resultType="java.util.Map">
         <include refid="select"/>
-        ${ew.customSqlSegment}
     </select>
 
     <select id="getList" resultType="java.util.Map">
         <include refid="select"/>
-        ${ew.customSqlSegment}
     </select>
 
     <sql id="select">
         select cd.contract_code,
                cd.apply_purchase_code,
+               cd.apply_purchase_id,
+               c.supplier_id,
                adddate(now(), interval m.safety_warn_day day) deliverTime,
                m.code                                         materialCode,
                m.name                                         materialName,
                m.spec                                         materialSpec,
+               m.unit                                         materialUnit,
                s.name                                         supplierName,
                st.quantity                                    stockQuantity,
+               cd.price                                       materialPrice,
                cd.quantity                                    buyQuantity,
                cd.afloat_quantity,
                cd.price,
                c.amount_money,
                c.flow_status,
-               c.processed
+               c.processed,
+               c.shipment_status
         from contract c
                  left join contract_details cd on c.id = cd.contract_id
                  left join material m on cd.material_id = m.id
                  left join supplier s on c.supplier_id = s.id
                  left join stock st on m.id = st.material_id
+            ${ew.customSqlSegment}
     </sql>
 
 </mapper>

+ 1 - 1
hx-service/storage-restructure/src/main/java/com/fjhx/service/apply/ApplyPurchaseService.java

@@ -28,6 +28,6 @@ public interface ApplyPurchaseService extends StorageBaseService<ApplyPurchase>
 
     Page<Map<String, Object>> getApplyPurchasePage(Condition condition);
 
-    List<Map<String, Object>> getApplyPurchaseDetailsList(Condition condition);
+    Map<String, Object> getApplyPurchaseDetailsList(Condition condition);
 
 }

+ 20 - 2
hx-service/storage-restructure/src/main/java/com/fjhx/service/apply/impl/ApplyPurchaseServiceImpl.java

@@ -1,5 +1,6 @@
 package com.fjhx.service.apply.impl;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.convert.Convert;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
@@ -237,9 +238,26 @@ public class ApplyPurchaseServiceImpl extends ServiceImpl<ApplyPurchaseMapper, A
     }
 
     @Override
-    public List<Map<String, Object>> getApplyPurchaseDetailsList(Condition condition) {
+    public Map<String, Object> getApplyPurchaseDetailsList(Condition condition) {
         String applyPurchaseId = condition.getStr("applyPurchaseId", "申购单id不能为空");
-        return baseMapper.getApplyPurchaseDetailsList(createPage(condition), applyPurchaseId);
+
+        ApplyPurchase applyPurchase = getById(applyPurchaseId);
+
+        Map<String, Object> result = BeanUtil.beanToMap(applyPurchase);
+        result.put("purchaseDept", "采购部");
+
+        // 获取申购部门和申购人
+        Map<String, Object> userNameAndPostMap = UserClientUtil.getUserNameAndPostByUserId(applyPurchase.getCreateUser());
+        if (userNameAndPostMap != null) {
+            result.putAll(userNameAndPostMap);
+        }
+
+        List<Map<String, Object>> applyPurchaseDetailsList =
+                baseMapper.getApplyPurchaseDetailsList(createPage(condition), applyPurchaseId);
+
+        result.put("details", applyPurchaseDetailsList);
+
+        return result;
     }
 
     /**

+ 0 - 3
hx-service/storage-restructure/src/main/java/com/fjhx/service/flow/InitiateApplyFlowService.java

@@ -14,7 +14,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -84,8 +83,6 @@ public class InitiateApplyFlowService {
         applyDetailsList.forEach(item -> {
             item.setApplyPurchaseId(id);
             item.setApplyPurchaseCode(code);
-            item.setArrivalQuantity(BigDecimal.ZERO);
-            item.setAfloatQuantity(BigDecimal.ZERO);
         });
         applyPurchaseDetailsService.saveBatch(applyDetailsList);
 

+ 2 - 0
hx-service/storage-restructure/src/main/java/com/fjhx/service/supplier/SupplierService.java

@@ -32,4 +32,6 @@ public interface SupplierService extends StorageBaseService<Supplier> {
 
     List<Map<String, Object>> getStatistics(Map<String, String> condition);
 
+    Page<Map<String, Object>> pagePurchase(Map<String, String> condition);
+
 }

+ 82 - 4
hx-service/storage-restructure/src/main/java/com/fjhx/service/supplier/impl/SupplierServiceImpl.java

@@ -2,12 +2,16 @@ package com.fjhx.service.supplier.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.convert.Convert;
+import cn.hutool.core.date.DateField;
+import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.base.StorageBaseEntity;
 import com.fjhx.entity.common.CommonFile;
+import com.fjhx.entity.contract.Contract;
 import com.fjhx.entity.supplier.Supplier;
 import com.fjhx.entity.supplier.SupplierBank;
 import com.fjhx.entity.supplier.SupplierContacts;
@@ -17,18 +21,18 @@ import com.fjhx.mapper.supplier.SupplierMapper;
 import com.fjhx.params.supplier.SupplierKeepVo;
 import com.fjhx.params.supplier.SupplierVo;
 import com.fjhx.service.common.CommonFileService;
+import com.fjhx.service.contract.ContractService;
 import com.fjhx.service.supplier.SupplierBankService;
 import com.fjhx.service.supplier.SupplierContactsService;
 import com.fjhx.service.supplier.SupplierKeepService;
 import com.fjhx.service.supplier.SupplierService;
+import com.fjhx.utils.BigDecimalUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.math.BigDecimal;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -54,6 +58,9 @@ public class SupplierServiceImpl extends ServiceImpl<SupplierMapper, Supplier> i
     @Autowired
     private CommonFileService commonFileService;
 
+    @Autowired
+    private ContractService contractService;
+
     private static final Object obj = new Object();
 
     @Override
@@ -240,6 +247,77 @@ public class SupplierServiceImpl extends ServiceImpl<SupplierMapper, Supplier> i
         return result;
     }
 
+    @Override
+    public Page<Map<String, Object>> pagePurchase(Map<String, String> condition) {
+        Page<Map<String, Object>> page = getPage(condition);
+
+        List<Map<String, Object>> records = page.getRecords();
+        if (records.size() == 0) {
+            return page;
+        }
+
+        List<Long> idList = records.stream().map(item -> Convert.toLong(item.get("id"))).collect(Collectors.toList());
+
+        List<Contract> list = contractService.list(Wrappers.<Contract>lambdaQuery()
+                .in(Contract::getSupplierId, idList)
+                .select(StorageBaseEntity::getCreateTime, Contract::getAmountMoney)
+        );
+
+        Map<Long, List<Contract>> listBySupplierId = list.stream().collect(Collectors.groupingBy(Contract::getSupplierId));
+
+        // 当前日期
+        Date date = new Date();
+        // 今年开始时间
+        Date year = DateUtil.beginOfYear(date);
+        // 去年开始时间
+        Date lastYear = DateUtil.offset(year, DateField.YEAR, -1);
+        // 本月
+        Date month = DateUtil.beginOfMonth(date);
+        // 上月
+        Date lastMonth = DateUtil.offsetMonth(month, -1);
+
+        for (Map<String, Object> record : records) {
+            Long supplierId = Convert.toLong(record.get("id"));
+            List<Contract> contractList = listBySupplierId.get(supplierId);
+
+            // 总额
+            BigDecimal sumMoney = contractList.stream()
+                    .map(Contract::getAmountMoney).reduce(BigDecimal.ZERO, BigDecimal::add);
+
+            // 去年
+            BigDecimal lastYearMoney = contractList.stream()
+                    .filter(item -> BigDecimalUtil.ge(lastYear, item.getCreateTime()) && BigDecimalUtil.lt(year, item.getCreateTime()))
+                    .map(Contract::getAmountMoney)
+                    .reduce(BigDecimal.ZERO, BigDecimal::add);
+
+            // 今年
+            BigDecimal yearMoney = contractList.stream()
+                    .filter(item -> BigDecimalUtil.ge(year, item.getCreateTime()))
+                    .map(Contract::getAmountMoney)
+                    .reduce(BigDecimal.ZERO, BigDecimal::add);
+
+            // 上月
+            BigDecimal lastMonthMoney = contractList.stream()
+                    .filter(item -> BigDecimalUtil.ge(lastMonth, item.getCreateTime()) && BigDecimalUtil.lt(month, item.getCreateTime()))
+                    .map(Contract::getAmountMoney)
+                    .reduce(BigDecimal.ZERO, BigDecimal::add);
+
+            // 本月
+            BigDecimal monthMoney = contractList.stream()
+                    .filter(item -> BigDecimalUtil.ge(month, item.getCreateTime()))
+                    .map(Contract::getAmountMoney)
+                    .reduce(BigDecimal.ZERO, BigDecimal::add);
+
+            record.put("sumMoney", sumMoney);
+            record.put("lastYearMoney", lastYearMoney);
+            record.put("yearMoney", yearMoney);
+            record.put("lastMonthMoney", lastMonthMoney);
+            record.put("monthMoney", monthMoney);
+        }
+
+        return page;
+    }
+
     /**
      * 生成label
      */

+ 2 - 1
hx-service/storage/src/main/java/com/fjhx/stock/mapper/StockBackMapper.xml

@@ -29,7 +29,8 @@
                sb.operation_time   operationTime,
                uu.RealName         realName
         from stock_back sb
-                 left join u_user uu on sb.operator_id = uu.ID
+                 left join acc_account aa on aa.AccountNo = sb.operator_id
+                 left join u_user uu on aa.ID = uu.ID
         where sb.status = 0
           and sb.del_flag = 0
     </select>