1 年之前
父节点
当前提交
874c77b061

+ 4 - 0
platform-common/src/main/java/com/platform/common/util/IdGeneratorUtils.java

@@ -181,6 +181,10 @@ public class IdGeneratorUtils {
     public static String getPreparationNo(Integer countNum) {
         return getProjectNum("CJD", countNum);
     }
+
+    public static String getPurchaseNo(Integer countNum) {
+        return getProjectNum("CGD", countNum);
+    }
     /**
      * 生成出库单号
      *

+ 79 - 0
platform-dao/src/main/java/com/platform/dao/enums/LongYanPurchaseOrderStatusEnum.java

@@ -0,0 +1,79 @@
+package com.platform.dao.enums;
+
+import com.google.common.collect.Lists;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description 设备状态
+ * @Author liuyu
+ * @Date 2020/05/05
+ * @Version Copyright (c) 2019,合肥乾元坤合科技有限公司 All rights reserved.
+ */
+@Getter
+@AllArgsConstructor
+public enum LongYanPurchaseOrderStatusEnum {
+
+    /**
+     * 在库
+     */
+    caogao(1, "草稿"),
+    /**
+     * 使用中
+     */
+    wait_push(2, "待推送"),
+    /**
+     * 报废中
+     */
+    pushed(3, "已推送"),
+    /**
+     * 已报废
+     */
+    wait_check(4, "待审核"),
+    /**
+     * 报废拒绝
+     */
+    checked(5, "已审核"),
+    /**
+     * 置换中
+     */
+    puchasing(6, "采购中"),
+    /**
+     * 已置换
+     */
+    puchased(7, "采购完成");
+
+
+    private final Integer value;
+    private final String name;
+
+    //讲枚举转换成list格式,这样前台遍历的时候比较容易,列如 下拉框 后台调用toList方法,你就可以得到code 和name了
+    public static List<Map<String, Object>> toList() {
+        List<Map<String, Object>> list = Lists.newArrayList();//Lists.newArrayList()其实和new ArrayList()几乎一模
+        //  一样, 唯一它帮你做的(其实是javac帮你做的), 就是自动推导(不是"倒")尖括号里的数据类型.
+        for (LongYanPurchaseOrderStatusEnum obj : LongYanPurchaseOrderStatusEnum.values()) {
+            Map<String, Object> map = new HashMap<>();
+            map.put("value", obj.getValue());
+            map.put("name", obj.getName());
+            list.add(map);
+        }
+        return list;
+    }
+
+    //讲枚举转换成list格式,这样前台遍历的时候比较容易,列如 下拉框 后台调用toList方法,你就可以得到code 和name了
+    public static String getNameByValue(Integer value) {
+        String name = "";
+        for (LongYanPurchaseOrderStatusEnum obj : LongYanPurchaseOrderStatusEnum.values()) {
+            if(obj.getValue() == value){
+                name = obj.getName();
+                break;
+            }
+        }
+        return name;
+    }
+
+}

+ 3 - 0
platform-dao/src/main/java/com/platform/dao/mapper/longyanpurchaseorder/LongYanPurchaseOrderMapper.java

@@ -7,6 +7,8 @@ import com.platform.dao.vo.query.longyanpurchaseorder.LongYanPurchaseOrderVO;
 import com.platform.dao.vo.report.LongYanPurchaseOrderReportVO;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Component;
+
+import java.math.BigDecimal;
 import java.util.List;
 
 
@@ -18,6 +20,7 @@ import java.util.List;
  */
 @Component
 public interface LongYanPurchaseOrderMapper extends MyMapper<LongYanPurchaseOrder> {
+    BigDecimal getPurchaseOrderCount1(LongYanPurchaseOrderDTO dto);
 
     LongYanPurchaseOrderVO getById(@Param("id") String id);
 

+ 0 - 1
platform-dao/src/main/java/com/platform/dao/vo/export/preparation/ExportPreparationVO.java

@@ -66,7 +66,6 @@ public class ExportPreparationVO implements Serializable {
      */
     @Excel(name = "备注", orderNum = "8")
     private String remark;
-
     /**
      * 创建日期
      */

+ 4 - 3
platform-dao/src/main/java/com/platform/dao/vo/report/LongYanPurchaseOrderReportVO.java

@@ -1,7 +1,6 @@
 package com.platform.dao.vo.report;
 
-import com.platform.dao.vo.query.check.CheckJobVO;
-import com.platform.dao.vo.query.longyanpurchaseorder.LongYanPurchaseDetailVO;
+import com.platform.dao.vo.query.longyanpurchaseorder.LongYanPurchaseOrderVO;
 import com.platform.office.annotation.Excel;
 import lombok.Data;
 import lombok.experimental.Accessors;
@@ -18,7 +17,9 @@ import java.util.List;
 public class LongYanPurchaseOrderReportVO implements Serializable {
     private String id;
     private static final long serialVersionUID = 1L;
+    @Excel(name = "采购类型", orderNum = "1",dicCode = "LONG_YAN_PURCHASE_TYPE")
     private Integer purchaseType;
+    @Excel(name = "采购物料总数", orderNum = "2")
     private BigDecimal orderTotalNum;
     private String purchaseTypeName;
 
@@ -33,5 +34,5 @@ public class LongYanPurchaseOrderReportVO implements Serializable {
     /**
      * 明细列表
      */
-    List<LongYanPurchaseDetailVO> detailList;
+    List<LongYanPurchaseOrderVO> detailList;
 }

+ 12 - 9
platform-dao/src/main/resources/mapper/longyanpurchaseorder/LongYanPurchaseOrderMapper.xml

@@ -41,7 +41,7 @@
                     and menu.created_user_name = #{createdUserName}
                 </if>
                                                 <if test="createdTimeStart != null">
-                    and menu.created_time <![CDATA[>=]]>; #{createdTimeStart}
+                    and menu.created_time <![CDATA[>=]]> #{createdTimeStart}
                 </if>
                 <if test="createdTimeEnd != null">
                     and menu.created_time <![CDATA[<=]]> #{createdTimeEnd}
@@ -97,7 +97,7 @@
         from t_long_yan_purchase_order as menu
         left join t_project project on project.id = menu.project_id
         left join t_project project2 on project.parent_id = project2.id
-                                                                                                                                                                                                                                                                <where>
+        <where>
             <include refid="List_Condition" />
         </where>
     </select>
@@ -105,14 +105,9 @@
     <select id="getPurchaseReport" resultType="com.platform.dao.vo.report.LongYanPurchaseOrderReportVO"
             parameterType="com.platform.dao.dto.longyanpurchaseorder.LongYanPurchaseOrderDTO">
         select type as purchaseType,count(1) as orderTotalNum,sum(total_num) as spareTotalNum
-        from t_long_yan_purchase_order as orders
+        from t_long_yan_purchase_order as menu
         <where>
-            <if test="startTime!=null">
-                and orders.created_time <![CDATA[>=]]> #{startTime}
-            </if>
-            <if test="endTime!=null">
-                and orders.created_time <![CDATA[<=]]> #{endTime}
-            </if>
+            <include refid="List_Condition" />
         </where>
         group by type
     </select>
@@ -129,4 +124,12 @@
             </if>
         </where>
     </select>
+
+    <select id="getPurchaseOrderCount1" resultType="BigDecimal"
+            parameterType="com.platform.dao.dto.longyanpurchaseorder.LongYanPurchaseOrderDTO">
+        select count(1) from t_long_yan_purchase_order menu
+        <where>
+            <include refid="List_Condition" />
+        </where>
+    </select>
 </mapper>

+ 35 - 0
platform-rest/src/main/java/com/platform/rest/controller/longyanpurchaseorder/LongYanPurchaseOrderController.java

@@ -4,6 +4,7 @@ import com.platform.common.util.R;
 import com.platform.dao.dto.longyanpurchaseorder.LongYanPurchaseOrderDTO;
 import com.platform.dao.dto.sb.SbInfoDTO;
 import com.platform.dao.entity.longyanpurchaseorder.LongYanPurchaseOrder;
+import com.platform.dao.vo.report.LongYanPurchaseOrderReportVO;
 import com.platform.service.longyanpurchaseorder.LongYanPurchaseOrderService;
 import com.platform.dao.util.ExcelUtil;
 import com.platform.dao.vo.export.longyanpurchaseorder.ExportLongYanPurchaseOrderVO;
@@ -17,6 +18,8 @@ import org.springframework.web.bind.annotation.*;
 import lombok.AllArgsConstructor;
 import com.platform.common.bean.AbstractPageResultBean;
 import com.platform.rest.log.annotation.SysLog;
+
+import java.util.ArrayList;
 import java.util.List;
 import javax.servlet.http.HttpServletResponse;
 
@@ -165,4 +168,36 @@ public class LongYanPurchaseOrderController {
     return new R(longYanPurchaseOrderService.getPurchaseReport(dto));
   }
 
+  /**
+   * 龙岩采购单表导出
+   *
+   * @param longYanPurchaseOrderDTO 龙岩采购单表DTO
+   * @return R
+   */
+  @GetMapping("/byType/export")
+  @SysLog("龙岩采购单根据类型导出")
+  @PreAuthorize("@pms.hasPermission('longyanpurchaseorder-menu-export')")
+  public void exportByType(HttpServletResponse response, LongYanPurchaseOrderDTO longYanPurchaseOrderDTO) {
+    List<LongYanPurchaseOrderReportVO> list = longYanPurchaseOrderService.getPurchaseReport(longYanPurchaseOrderDTO);
+    ExcelUtil.exportResponseDict(response, LongYanPurchaseOrderReportVO.class, BeanConverterUtil.copyListProperties(list, LongYanPurchaseOrderReportVO.class), "龙岩采购单表");
+  }
+
+  /**
+   * 龙岩采购单表导出
+   *
+   * @param longYanPurchaseOrderDTO 龙岩采购单表DTO
+   * @return R
+   */
+  @GetMapping("/byType/detail/export")
+  @SysLog("龙岩采购单根据类型明细导出")
+  @PreAuthorize("@pms.hasPermission('longyanpurchaseorder-menu-export')")
+  public void exportDetailByType(HttpServletResponse response, LongYanPurchaseOrderDTO longYanPurchaseOrderDTO) {
+    List<LongYanPurchaseOrderReportVO> list = longYanPurchaseOrderService.getPurchaseReport(longYanPurchaseOrderDTO);
+    List<LongYanPurchaseOrderVO> orderVOS = new ArrayList<>();
+    if (list!=null && list.size()>0){
+      orderVOS = list.get(0).getDetailList();
+    }
+    ExcelUtil.exportResponseDict(response, ExportLongYanPurchaseOrderVO.class, BeanConverterUtil.copyListProperties(orderVOS, ExportLongYanPurchaseOrderVO.class), "龙岩采购单表");
+  }
+
 }

+ 33 - 8
platform-service/src/main/java/com/platform/service/longyanpurchaseorder/impl/LongYanPurchaseOrderServiceImpl.java

@@ -12,10 +12,12 @@ import com.platform.dao.dto.longyanpurchaseorder.LongYanPurchaseDetailDTO;
 import com.platform.dao.dto.sb.SbInfoDTO;
 import com.platform.dao.dto.sb.SbModelSpareBomDTO;
 import com.platform.dao.dto.store.OutStoreDetailDTO;
+import com.platform.dao.dto.store.OutStoreFormDTO;
 import com.platform.dao.entity.longyanpurchaseorder.LongYanPurchaseDetail;
 import com.platform.dao.entity.repair.RepairApplicationForm;
 import com.platform.dao.entity.sb.SbInfo;
 import com.platform.dao.entity.sb.SbModelSpareBom;
+import com.platform.dao.enums.LongYanPurchaseOrderStatusEnum;
 import com.platform.dao.mapper.longyanpurchaseorder.LongYanPurchaseDetailMapper;
 import com.platform.dao.mapper.sb.SbInfoMapper;
 import com.platform.dao.mapper.sb.SbModelSpareBomMapper;
@@ -70,6 +72,13 @@ public class LongYanPurchaseOrderServiceImpl extends BaseServiceImpl<LongYanPurc
     @Override
     public LongYanPurchaseOrder saveModelByDTO(LongYanPurchaseOrderDTO model) {
         List<LongYanPurchaseDetailDTO> detailDTOS = model.getDetailDTOS();
+        model.setStatus(LongYanPurchaseOrderStatusEnum.caogao.getValue());
+        BigDecimal countNum = mapper.getPurchaseOrderCount1(new LongYanPurchaseOrderDTO());
+        Integer count = 0;
+        if (countNum != null) {
+            count = countNum.intValue();
+        }
+        model.setPurchaseNo(IdGeneratorUtils.getPurchaseNo(count));
         UserInfo userInfo = SecurityUtils.getUserInfo();
         BigDecimal totalNum = new BigDecimal(0);
         for (LongYanPurchaseDetailDTO detailDTO : detailDTOS) {
@@ -125,17 +134,33 @@ public class LongYanPurchaseOrderServiceImpl extends BaseServiceImpl<LongYanPurc
     @Override
     public List<LongYanPurchaseOrderReportVO> getPurchaseReport(LongYanPurchaseOrderDTO dto) {
         List<LongYanPurchaseOrderReportVO> list = mapper.getPurchaseReport(dto);
-        if (list.size()>0) {
-            for (LongYanPurchaseOrderReportVO vo : list) {
-                if (vo.getPurchaseType() == 1) {
-                    vo.setPurchaseTypeName("计划采购");
-                } else if (vo.getPurchaseType() == 2) {
-                    vo.setPurchaseTypeName("临时采购");
-                } else if (vo.getPurchaseType() == 3) {
-                    vo.setPurchaseTypeName("紧急采购");
+        List<LongYanPurchaseOrderVO> orderVOS = mapper.selectList(dto);
+        for (LongYanPurchaseOrderVO vo:orderVOS){
+            vo.setComplateProjectName(vo.getParentProjectName()+"->"+vo.getProjectName());
+        }
+        if (list!=null && list.size()>0) {
+            for (LongYanPurchaseOrderReportVO reportVO : list) {
+                List<LongYanPurchaseOrderVO> subOrderVOs = new ArrayList<>();
+                for (LongYanPurchaseOrderVO orderVO : orderVOS) {
+                    if (reportVO.getPurchaseType().equals(orderVO.getType())){
+                        subOrderVOs.add(orderVO);
+                    }
                 }
+                reportVO.setDetailList(subOrderVOs);
             }
         }
+//        if (list.size()>0) {
+//            for (LongYanPurchaseOrderReportVO vo : list) {
+//                if (vo.getPurchaseType() == 1) {
+//                    vo.setPurchaseTypeName("计划采购");
+//                } else if (vo.getPurchaseType() == 2) {
+//                    vo.setPurchaseTypeName("临时采购");
+//                } else if (vo.getPurchaseType() == 3) {
+//                    vo.setPurchaseTypeName("紧急采购");
+//                }
+//            }
+//        }
+
 
         return list;
     }