Jelajahi Sumber

物流库,项目信息 甲供材报审 注释、前端信息修改

[user3] 3 tahun lalu
induk
melakukan
6dda0cf123
19 mengubah file dengan 221 tambahan dan 216 penghapusan
  1. 5 0
      src/main/java/com/jeeplus/modules/supply/materialLibrary/entity/MaterialLibrary.java
  2. 29 5
      src/main/java/com/jeeplus/modules/supply/materialLibrary/mapper/MaterialLibraryMapper.java
  3. 5 24
      src/main/java/com/jeeplus/modules/supply/materialLibrary/mapper/xml/MaterialLIbraryMapper.xml
  4. 11 15
      src/main/java/com/jeeplus/modules/supply/materialLibrary/service/MaterialLibraryService.java
  5. 14 12
      src/main/java/com/jeeplus/modules/supply/materialLibrary/web/MaterialLibraryController.java
  6. 5 0
      src/main/java/com/jeeplus/modules/supply/materialsProvidedByAForReview/entity/MaterialsProvidedByAForReview.java
  7. 5 0
      src/main/java/com/jeeplus/modules/supply/materialsProvidedByAForReview/mapper/MaterialsProvidedByAForReviewMapper.java
  8. 9 58
      src/main/java/com/jeeplus/modules/supply/materialsProvidedByAForReview/mapper/xml/MaterialsProvidedByAForReviewMapper.xml
  9. 40 9
      src/main/java/com/jeeplus/modules/supply/materialsProvidedByAForReview/service/MaterialsProvidedByAForReviewService.java
  10. 9 6
      src/main/java/com/jeeplus/modules/supply/materialsProvidedByAForReview/web/MaterialsProvidedByAForReviewController.java
  11. 5 0
      src/main/java/com/jeeplus/modules/supply/projectInformation/entity/ProjectInformation.java
  12. 5 0
      src/main/java/com/jeeplus/modules/supply/projectInformation/entity/SubmissionForm.java
  13. 25 3
      src/main/java/com/jeeplus/modules/supply/projectInformation/mapper/ProjectInformationMapper.java
  14. 3 6
      src/main/java/com/jeeplus/modules/supply/projectInformation/mapper/xml/ProjectInformationMapper.xml
  15. 30 23
      src/main/java/com/jeeplus/modules/supply/projectInformation/service/ProjectInformationService.java
  16. 10 5
      src/main/java/com/jeeplus/modules/supply/projectInformation/web/ProjectInformationController.java
  17. 2 1
      src/main/java/com/jeeplus/modules/supply/stockOut/mapper/xml/SupplyStockOutMapper.xml
  18. 3 37
      src/main/webapp/webpage/modules/supply/materialsProvidedByAForReview/supplyMaterialsProvidedByAForReviewList.js
  19. 6 12
      src/main/webapp/webpage/modules/supply/projectInformation/supplyProjectInformationList.js

+ 5 - 0
src/main/java/com/jeeplus/modules/supply/materialLibrary/entity/MaterialLibrary.java

@@ -3,6 +3,11 @@ package com.jeeplus.modules.supply.materialLibrary.entity;
 import com.jeeplus.common.utils.excel.annotation.ExcelField;
 import com.jeeplus.core.persistence.DataEntity;
 
+/**
+ * 物料库Entity
+ * @author: 黄俊杰
+ * @create: 2022-02-28 16:00
+ */
 public class MaterialLibrary extends DataEntity<MaterialLibrary> {
     private String materialCode;            //物料编码
     private String materialDescription;     //物料描述

+ 29 - 5
src/main/java/com/jeeplus/modules/supply/materialLibrary/mapper/MaterialLibraryMapper.java

@@ -7,20 +7,44 @@ import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
+/**
+ * 物料库mapper
+ * @author: 黄俊杰
+ * @create: 2022-02-28 16:00
+ */
 @MyBatisMapper
 public interface MaterialLibraryMapper extends BaseMapper<MaterialLibrary> {
-    Integer queryCount(MaterialLibrary materialLibrary);//x
-    //按物流编码list来查询
+    /**
+     * 按物流编码list来查询
+     * @param materialCodeList
+     * @return
+     */
     List<String> getMaterialCodeByMaterialCodeList(@Param("materialCodeList") List<String> materialCodeList);
 
-    //覆盖操作 根据物流编码物理删除旧数据
+    /**
+     * 覆盖操作 根据物流编码物理删除旧数据
+     * @param materialCodeList
+     */
     void deleteMaterialLibraryByMaterialCodeList(@Param("materialCodeList") List<String> materialCodeList);
 
-
+    /**
+     * 批量新增
+     * @param list
+     * @return
+     */
     Integer insertList(@Param("list") List<MaterialLibrary> list);
 
+    /**
+     * 批量删除
+     * @param materialCodeList
+     * @return
+     */
     Integer deleteList(@Param("materialCodeList") List<String> materialCodeList);
 
-    //按物流编码list来查询
+    /**
+     * 按物流编码list来查询
+     * @param materialCodeList
+     * @return
+     */
     Integer getCountByMaterialCodeList(@Param("materialCodeList") List<String> materialCodeList);
 }

+ 5 - 24
src/main/java/com/jeeplus/modules/supply/materialLibrary/mapper/xml/MaterialLIbraryMapper.xml

@@ -16,27 +16,13 @@
         WHERE ml.id = #{id}
     </select>
 
-    <select id="queryCount" resultType="integer" >
-        SELECT count(DISTINCT ml.material_code)
-        FROM material_library ml
-        <where>
-            <if test="materialCode != null and materialCode != ''">
-                AND ml.material_code like concat('%',#{materialCode},'%')
-            </if>
-            <if test="materialDescription != null and materialDescription != ''">
-                AND ml.material_description like concat('%',#{materialDescription},'%')
-            </if>
-            <if test="unitOfMeasurement != null and unitOfMeasurement != ''">
-                AND ml.unit_of_measurement like concat('%',#{unitOfMeasurement},'%')
-            </if>
-        </where>
-    </select>
-
     <select id="findList" resultType="MaterialLibrary" >
         SELECT
         <include refid="MaterialLibraryColumnss"/>
         from material_library ml
         <where>
+            ml.del_flag = #{DEL_FLAG_NORMAL}
+            ${dataScope}
             <if test="materialCode != null and materialCode != ''">
                 AND ml.material_code like concat('%',#{materialCode},'%')
             </if>
@@ -52,9 +38,9 @@
             <when test="page !=null and page.orderBy != null and page.orderBy != ''">
                 ORDER BY ${page.orderBy}
             </when>
-<!--            <otherwise>-->
-<!--                ORDER BY a.update_date DESC-->
-<!--            </otherwise>-->
+            <otherwise>
+                ORDER BY ml.update_date DESC
+            </otherwise>
         </choose>
     </select>
 
@@ -94,11 +80,6 @@
         </where>
     </select>
 
-<!--    <update id="delete">-->
-<!--        delete from material_library-->
-<!--        where material_code = #{material_code}-->
-<!--    </update>-->
-
     <!--批量新增-->
     <insert id="insertList">
         insert into material_library (

+ 11 - 15
src/main/java/com/jeeplus/modules/supply/materialLibrary/service/MaterialLibraryService.java

@@ -1,6 +1,5 @@
 package com.jeeplus.modules.supply.materialLibrary.service;
 
-import com.alibaba.fastjson.JSON;
 import com.jeeplus.common.config.Global;
 import com.jeeplus.common.utils.IdGen;
 import com.jeeplus.common.utils.StringUtils;
@@ -8,13 +7,6 @@ import com.jeeplus.core.persistence.Page;
 import com.jeeplus.core.service.CrudService;
 import com.jeeplus.modules.supply.materialLibrary.entity.MaterialLibrary;
 import com.jeeplus.modules.supply.materialLibrary.mapper.MaterialLibraryMapper;
-import com.jeeplus.modules.supply.projectInformation.entity.ProjectInformation;
-import com.jeeplus.modules.supply.stockOut.entity.SupplyStockOut;
-import net.oschina.j2cache.CacheChannel;
-import net.oschina.j2cache.J2Cache;
-import net.oschina.j2cache.redis.RedisCacheProvider;
-import net.oschina.j2cache.redis.RedisClient;
-import net.oschina.j2cache.redis.RedisUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -22,13 +14,16 @@ import org.springframework.mock.web.MockMultipartFile;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
-import redis.clients.jedis.BinaryJedisCommands;
-import redis.clients.jedis.Jedis;
 
 import java.io.*;
 import java.text.SimpleDateFormat;
 import java.util.*;
 
+/**
+ * 物料库Service
+ * @author: 黄俊杰
+ * @create: 2022-02-28 16:00
+ */
 @Service
 @Transactional(readOnly = true)
 public class MaterialLibraryService extends CrudService<MaterialLibraryMapper, MaterialLibrary> {
@@ -59,11 +54,11 @@ public class MaterialLibraryService extends CrudService<MaterialLibraryMapper, M
         LinkedHashMap returnMap = new LinkedHashMap();
 
         Iterator<MaterialLibrary> its = list.iterator();
-        while(its.hasNext()){
+        while(its.hasNext()){  //验证主键不为空
             MaterialLibrary info = its.next();
             if(StringUtils.isBlank(info.getMaterialCode())){
                 returnMap.put("success",false);
-                returnMap.put("msg","存在物流编号为空的数据,请重新提交");
+                returnMap.put("msg","存在物料编码为空的数据,请确认后重新提交!");
                 return returnMap;
 //                its.remove();  //删除为空信息
             }
@@ -81,7 +76,7 @@ public class MaterialLibraryService extends CrudService<MaterialLibraryMapper, M
         if(materialCodeList.size() != list.size()){
             returnMap.keySet().removeIf(key -> key == "msg");
             returnMap.put("success",false);
-            returnMap.put("msg","数据中存在重复物流编码");
+            returnMap.put("msg","存在物流编码重复的数据,请确认后重新提交!");
         }
 
         //方便快捷删除  找到对应重复数据,以便最后批量操作使用
@@ -108,18 +103,19 @@ public class MaterialLibraryService extends CrudService<MaterialLibraryMapper, M
                 }
             }
         }else if(repeat.equals("1")){  //覆盖 则删除数据库中的重复数据
-            //批量删除重复数据  覆盖操作
+            //批量删除重复数据  覆盖操作  物理删除
             modifyHandmadeVindicateListTwo(codeList);
         }
 
 
+
         //批量新增  分批次新增
         if(list.size()!=0) {
             modifyHandmadeVindicateList(list);
         }
         returnMap.keySet().removeIf(key -> key == "msg");
         returnMap.put("success",true);
-        returnMap.put("msg","已成功导入 "+list.size()+" 条项目表单记录");
+        returnMap.put("msg","已成功导入 "+list.size()+" 条物料库记录");
         return returnMap;
     }
 

+ 14 - 12
src/main/java/com/jeeplus/modules/supply/materialLibrary/web/MaterialLibraryController.java

@@ -7,7 +7,6 @@ import com.jeeplus.core.persistence.Page;
 import com.jeeplus.core.web.BaseController;
 import com.jeeplus.modules.supply.materialLibrary.entity.MaterialLibrary;
 import com.jeeplus.modules.supply.materialLibrary.service.MaterialLibraryService;
-import com.jeeplus.modules.supply.stockOut.entity.SupplyStockOut;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -21,12 +20,15 @@ import org.springframework.web.multipart.MultipartFile;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.File;
-import java.io.IOException;
-import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 
+/**
+ * 物料库Controller
+ * @author: 黄俊杰
+ * @create: 2022-02-28 16:00
+ */
 @Controller
 @RequestMapping(value = "${adminPath}/supply/materialLibrary")
 public class MaterialLibraryController extends BaseController {
@@ -49,7 +51,7 @@ public class MaterialLibraryController extends BaseController {
     /**
      * 项目列表页面
      */
-//    @RequiresPermissions("supply:materialLibrary:list")
+    @RequiresPermissions("supply:materialLibrary:list")
     @RequestMapping(value = {"list", ""})
     public String list(MaterialLibrary materialLibrary,Model model) {
         model.addAttribute("materialLibrary",materialLibrary);
@@ -71,11 +73,11 @@ public class MaterialLibraryController extends BaseController {
      * 删除项目
      */
     @ResponseBody
-//    @RequiresPermissions("supply:stockOut:del")
+    @RequiresPermissions("supply:materialLibrary:del")
     @RequestMapping(value = "delete")
     public AjaxJson delete(MaterialLibrary materialLibrary) {
         AjaxJson j = new AjaxJson();
-        materialLibraryService.delete(materialLibrary);   //要自己写吗? 前端传的是id,
+        materialLibraryService.delete(materialLibrary);
         j.setMsg("删除项目成功");
         return j;
     }
@@ -84,7 +86,7 @@ public class MaterialLibraryController extends BaseController {
      * 批量删除
      */
     @ResponseBody
-//    @RequiresPermissions("supply:stockOut:del")
+    @RequiresPermissions("supply:materialLibrary:del")
     @RequestMapping(value = "deleteAll")
     public AjaxJson deleteAll(String ids) {
         AjaxJson j = new AjaxJson();
@@ -105,9 +107,9 @@ public class MaterialLibraryController extends BaseController {
     public AjaxJson importFile(@RequestParam("file") MultipartFile file) {
         AjaxJson j = new AjaxJson();
         try {
-            String repeat = "0";  //repeat:0:第一次交互,1:覆盖,2:不覆盖
+            String repeat = "0";  //repeat=0:第一次交互,1:覆盖,2:不覆盖,3:重复
             ImportExcel ei = new ImportExcel(file, 1, 0);
-            List<MaterialLibrary> list = ei.getDataList(MaterialLibrary.class);   //直接用就好了吗,格式啥的用设置吗?
+            List<MaterialLibrary> list = ei.getDataList(MaterialLibrary.class);
             LinkedHashMap returnMap = materialLibraryService.disposeImportMaterialLibrary(list,file,repeat);
             //放要放的值
             Boolean boole = (Boolean) returnMap.get("success");
@@ -118,7 +120,7 @@ public class MaterialLibraryController extends BaseController {
             j.setMsg(returnMap.get("msg").toString());
         } catch (Exception e) {
             j.setSuccess(false);
-            j.setMsg("导入项目表单失败!失败信息:" + e.getMessage());
+            j.setMsg("导入物料库失败!失败信息:" + e.getMessage());
         }
         return j;
     }
@@ -135,7 +137,7 @@ public class MaterialLibraryController extends BaseController {
             File file = new File(filePath);
             MultipartFile file1 = materialLibraryService.transformFile(file);
             ImportExcel ei = new ImportExcel(file, 1, 0);
-            List<MaterialLibrary> list = ei.getDataList(MaterialLibrary.class);   //直接用就好了吗,格式啥的用设置吗?
+            List<MaterialLibrary> list = ei.getDataList(MaterialLibrary.class);
             LinkedHashMap returnMap = materialLibraryService.disposeImportMaterialLibrary(list,file1,repeat);
             //如果文件已经使用完毕,则删除
             materialLibraryService.deleteFileContent(file);
@@ -144,7 +146,7 @@ public class MaterialLibraryController extends BaseController {
             j.setMsg(returnMap.get("msg").toString());
         } catch (Exception e) {
             j.setSuccess(false);
-            j.setMsg("导入项目表单失败!失败信息:" + e.getMessage());
+            j.setMsg("导入物料库失败!失败信息:" + e.getMessage());
         }
         return j;
     }

+ 5 - 0
src/main/java/com/jeeplus/modules/supply/materialsProvidedByAForReview/entity/MaterialsProvidedByAForReview.java

@@ -3,6 +3,11 @@ package com.jeeplus.modules.supply.materialsProvidedByAForReview.entity;
 import com.jeeplus.common.utils.excel.annotation.ExcelField;
 import com.jeeplus.core.persistence.DataEntity;
 
+/**
+ * 甲供材报审Entituy
+ * @author: 黄俊杰
+ * @create: 2022-02-28 16:00
+ */
 public class MaterialsProvidedByAForReview extends DataEntity<MaterialsProvidedByAForReview> {
     private String serialNumber;            //序号
     private String materialNumber;          //物料编码

+ 5 - 0
src/main/java/com/jeeplus/modules/supply/materialsProvidedByAForReview/mapper/MaterialsProvidedByAForReviewMapper.java

@@ -7,6 +7,11 @@ import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
+/**
+ * 甲供材报审mapper
+ * @author: 黄俊杰
+ * @create: 2022-02-28 16:00
+ */
 @MyBatisMapper
 public interface MaterialsProvidedByAForReviewMapper extends BaseMapper<MaterialsProvidedByAForReview> {
 

+ 9 - 58
src/main/java/com/jeeplus/modules/supply/materialsProvidedByAForReview/mapper/xml/MaterialsProvidedByAForReviewMapper.xml

@@ -15,9 +15,9 @@
         a.project_name AS "projectName",
         a.project_definition AS "projectDefinition",
         a.material_number AS "materialNumber",
-        a.material_description AS "materialDescription",
+#         a.material_description AS "materialDescription",
         a.batch AS "batch",
-        a.unit AS "unit",
+#         a.unit AS "unit",
         a.actual_quantity_issued AS "actualQuantityIssued",
         a.unit_price AS "unitPrice",
         a.money AS "money",
@@ -41,15 +41,18 @@
         DATE_FORMAT(a.stock_out_import_date,'%Y-%m-%d') AS "stockOutImportDateStr",
         a.accountant_certificate AS "accountantCertificate",
         a.reply_proof AS "replyProof",
-        a.materials_type AS "materialsType"
+        a.materials_type AS "materialsType",
+        a.submittals_id as "submittalsId"
     </sql>
 
     <select id="findList" resultType="com.jeeplus.modules.supply.materialsProvidedByAForReview.entity.MaterialsProvidedByAForReview">
         SELECT
         <include refid="infoColumns"/>
-        ,a.submittals_id as "submittalsId"
 
+        ,ml.material_description as "materialDescription"
+        ,ml.unit_of_measurement as "unit"
         FROM supply_stock_out a
+        left join material_library ml on ml.material_code = a.material_number
         <where>
             a.del_flag = #{DEL_FLAG_NORMAL}
             ${dataScope}
@@ -95,81 +98,29 @@
     <insert id="insertList">
         insert into supply_stock_out (
         id,
-        stock_out_number,
-        wbs_element,
-        project_name,
         project_definition,
         material_number,
-        material_description,
-        batch,
-        unit,
         actual_quantity_issued,
-        unit_price,
-        money,
-        posting_account_date,
-        supplier_name,
-        factory,
-        picking_number,
-        picking_create_by,
-        picking_department,
-        reserved_number,
-        repertory_place,
-        project_package_name,
-        stock_out_person,
-        wbs_element_description,
-        project_second_classification,
-        project_thirdly_classification,
-        order_number,
-        assess_type,
         remarks,
-        stock_out_import_date,
-        accountant_certificate,
-        reply_proof,
         create_by,
         create_date,
         update_by,
         update_date,
-        materials_type
+        submittals_id
         )
         values
         <foreach collection="list" item="item" index="index" separator="," >
             (
             #{item.id},
-            #{item.stockOutNumber},
-            #{item.wbsElement},
-            #{item.projectName},
             #{item.projectDefinition},
             #{item.materialNumber},
-            #{item.materialDescription},
-            #{item.batch},
-            #{item.unit},
             #{item.actualQuantityIssued},
-            #{item.unitPrice},
-            #{item.money},
-            #{item.postingAccountDate},
-            #{item.supplierName},
-            #{item.factory},
-            #{item.pickingNumber},
-            #{item.pickingCreateBy},
-            #{item.pickingDepartment},
-            #{item.reservedNumber},
-            #{item.repertoryPlace},
-            #{item.projectPackageName},
-            #{item.stockOutPerson},
-            #{item.wbsElementDescription},
-            #{item.projectSecondClassification},
-            #{item.projectThirdlyClassification},
-            #{item.orderNumber},
-            #{item.assessType},
             #{item.remarks},
-            #{item.stockOutImportDate},
-            #{item.accountantCertificate},
-            #{item.replyProof},
             #{item.createBy.id},
             #{item.createDate},
             #{item.updateBy.id},
             #{item.updateDate},
-            #{item.materialsType}
+            #{item.submittalsId}
             )
         </foreach>
     </insert>

+ 40 - 9
src/main/java/com/jeeplus/modules/supply/materialsProvidedByAForReview/service/MaterialsProvidedByAForReviewService.java

@@ -1,14 +1,14 @@
 package com.jeeplus.modules.supply.materialsProvidedByAForReview.service;
 
 import com.jeeplus.common.config.Global;
-import com.jeeplus.common.utils.IdGen;
 import com.jeeplus.common.utils.StringUtils;
 import com.jeeplus.core.persistence.Page;
 import com.jeeplus.core.service.CrudService;
-import com.jeeplus.modules.supply.materialLibrary.entity.MaterialLibrary;
+import com.jeeplus.modules.supply.judgementBills.mapper.SupplyJudgementBillsMapper;
 import com.jeeplus.modules.supply.materialLibrary.service.MaterialLibraryService;
 import com.jeeplus.modules.supply.materialsProvidedByAForReview.entity.MaterialsProvidedByAForReview;
 import com.jeeplus.modules.supply.materialsProvidedByAForReview.mapper.MaterialsProvidedByAForReviewMapper;
+import com.jeeplus.modules.supply.utils.CommonUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -17,6 +17,11 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.util.*;
 
+/**
+ * 甲供材报审Service
+ * @author: 黄俊杰
+ * @create: 2022-02-28 16:00
+ */
 @Service
 @Transactional(readOnly = true)
 public class MaterialsProvidedByAForReviewService extends CrudService<MaterialsProvidedByAForReviewMapper, MaterialsProvidedByAForReview> {
@@ -27,7 +32,16 @@ public class MaterialsProvidedByAForReviewService extends CrudService<MaterialsP
     @Autowired
     private MaterialsProvidedByAForReviewMapper materialsProvidedByAForReviewMapper;
 
-    //页面显示
+    @Autowired
+    private SupplyJudgementBillsMapper supplyJudgementBillsMapper;
+
+
+    /**
+     * 页面显示
+     * @param page 分页对象
+     * @param materialsProvidedByAForReview
+     * @return
+     */
     @Override
     public Page<MaterialsProvidedByAForReview> findPage(Page<MaterialsProvidedByAForReview> page, MaterialsProvidedByAForReview materialsProvidedByAForReview){
         return super.findPage(page,materialsProvidedByAForReview);
@@ -42,7 +56,12 @@ public class MaterialsProvidedByAForReviewService extends CrudService<MaterialsP
         materialsProvidedByAForReviewMapper.deleteByIdList(idList);
     }
 
-    //处理导入数据
+    /**
+     * 处理导入数据
+     * @param list
+     * @return
+     */
+    @Transactional(readOnly = false)
     public Map disposeMaterialsProvidedByAForReview(List<MaterialsProvidedByAForReview> list){
         Map map = new HashMap();
         Set<String> set = new HashSet<>();
@@ -52,19 +71,19 @@ public class MaterialsProvidedByAForReviewService extends CrudService<MaterialsP
             MaterialsProvidedByAForReview info = it.next();
             if(StringUtils.isBlank(info.getMaterialNumber())){   //物料编码不为空
                 map.put("success",false);
-                map.put("message","存在物料编码为空的数据,请确认后重新提交");
+                map.put("message","存在物料编码为空的数据,请确认后重新提交");
                 return map;
             }else if(StringUtils.isBlank(info.getActualQuantityIssued())){
                 map.put("success",false);
-                map.put("message","存在出库数量为空的数据,请确认后重新提交");
+                map.put("message","存在出库数量为空的数据,请确认后重新提交");
                 return map;
             }else if(StringUtils.isBlank(info.getProjectDefinition())){
                 map.put("success",false);
-                map.put("message","存在项目定义号为空的数据,请确认后重新提交");
+                map.put("message","存在项目定义号为空的数据,请确认后重新提交");
                 return map;
             }else if(StringUtils.isBlank(info.getSubmittalsId())){
                 map.put("success",false);
-                map.put("message","存在送审id为空的数据,请确认后重新提交");
+                map.put("message","存在送审id为空的数据,请确认后重新提交");
                 return map;
             }else {
                 //将项目定义号放入set中去重
@@ -73,6 +92,18 @@ public class MaterialsProvidedByAForReviewService extends CrudService<MaterialsP
             }
         }
 
+        //查询项目定义号对应的项目信息
+        List<String> projectDefinitionList = new ArrayList(set);
+        List<String> projectDefinitionInfoList = supplyJudgementBillsMapper.getProjectDefinitionList(projectDefinitionList);
+        //判断项目信息和数据库中的项目信息数量是否一致,不一致则找到对应信息并进行提示
+        if(projectDefinitionList.size() != projectDefinitionInfoList.size()){
+            String nonentityProjectDefinitions = CommonUtil.comparisonProjectDefinition(projectDefinitionInfoList,projectDefinitionList);
+            map.put("success",false);
+            map.put("message","查询不到项目定义号为:" + nonentityProjectDefinitions + " 的项目信息。请先上传对应项目信息!");
+            return map;
+        }
+
+
 
         //批量处理
         disposeMaterialsProvidedByAForReviewList(list);
@@ -81,7 +112,7 @@ public class MaterialsProvidedByAForReviewService extends CrudService<MaterialsP
     }
 
     /**
-     * 批量修改手工上传数据信息
+     * 批量新增
      * @param projectBasicsList
      * @return
      */

+ 9 - 6
src/main/java/com/jeeplus/modules/supply/materialsProvidedByAForReview/web/MaterialsProvidedByAForReviewController.java

@@ -5,11 +5,8 @@ import com.jeeplus.common.utils.StringUtils;
 import com.jeeplus.common.utils.excel.ImportExcel;
 import com.jeeplus.core.persistence.Page;
 import com.jeeplus.core.web.BaseController;
-import com.jeeplus.modules.supply.judgementBills.entity.SupplyJudgementBills;
-import com.jeeplus.modules.supply.materialLibrary.entity.MaterialLibrary;
 import com.jeeplus.modules.supply.materialsProvidedByAForReview.entity.MaterialsProvidedByAForReview;
 import com.jeeplus.modules.supply.materialsProvidedByAForReview.service.MaterialsProvidedByAForReviewService;
-import com.jeeplus.modules.supply.stockOut.entity.SupplyStockOut;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -26,6 +23,11 @@ import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
 
+/**
+ * 甲供材报审Controller
+ * @author: 黄俊杰
+ * @create: 2022-02-28 16:00
+ */
 @Controller
 @RequestMapping(value = "${adminPath}/supply/MaterialsProvidedByAForReview")
 public class MaterialsProvidedByAForReviewController extends BaseController {
@@ -103,18 +105,19 @@ public class MaterialsProvidedByAForReviewController extends BaseController {
     public AjaxJson importFile(@RequestParam("file") MultipartFile file) {
         AjaxJson j = new AjaxJson();
         try {
-            ImportExcel ei = new ImportExcel(file, 1, 0);
+            ImportExcel ei = new ImportExcel(file, 0, 0);
             List<MaterialsProvidedByAForReview> list = ei.getDataList(MaterialsProvidedByAForReview.class);
             Map<String,Object> map = materialsProvidedByAForReviewService.disposeMaterialsProvidedByAForReview(list);
             Boolean bool = (Boolean) map.get("success");
             if(bool){
-                j.setMsg("已成功导入 " + list.size() +" 条出库单记录");
+                j.setMsg("已成功导入 " + list.size() +" 条甲供材报审记录");
             }else{
+                j.setSuccess(false);
                 j.setMsg(map.get("message").toString());
             }
         } catch (Exception e) {
             j.setSuccess(false);
-            j.setMsg("导入出库单失败!失败信息:" + e.getMessage());
+            j.setMsg("导入甲供材报审失败!失败信息:" + e.getMessage());
         }
         return j;
     }

+ 5 - 0
src/main/java/com/jeeplus/modules/supply/projectInformation/entity/ProjectInformation.java

@@ -6,6 +6,11 @@ import com.jeeplus.core.persistence.DataEntity;
 
 import java.util.Date;
 
+/**
+ * 项目信息Entity  (项目信息表+审定单信息表)
+ * @author: 黄俊杰
+ * @create: 2022-02-28 16:00
+ */
 public class ProjectInformation extends DataEntity<ProjectInformation> {
     private String num;                                 //序号
     private String projectDefinitionNumber;             //项目定义号

+ 5 - 0
src/main/java/com/jeeplus/modules/supply/projectInformation/entity/SubmissionForm.java

@@ -4,6 +4,11 @@ import com.jeeplus.core.persistence.DataEntity;
 
 import java.util.Date;
 
+/**
+ * 审定单Entity
+ * @author: 黄俊杰
+ * @create: 2022-02-28 16:00
+ */
 public class SubmissionForm extends DataEntity<SubmissionForm> {
     private String submissionFormId;                //送审单id
     private String projectDefinitionNumber;         //项目定义号 关联项目信息表

+ 25 - 3
src/main/java/com/jeeplus/modules/supply/projectInformation/mapper/ProjectInformationMapper.java

@@ -8,16 +8,38 @@ import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
+/**
+ * 项目信息(项目信息表+审定单表)mapper
+ * @author: 黄俊杰
+ * @create: 2022-02-28 16:00
+ */
 @MyBatisMapper
 public interface ProjectInformationMapper extends BaseMapper<ProjectInformation> {
-
+    /**
+     * 批量新增审定单信息
+     * @param list
+     * @return
+     */
     Integer insertSubmissionFormList(@Param("list") List<ProjectInformation> list);
 
+    /**
+     * 批量新增项目信息
+     * @param list
+     * @return
+     */
     Integer insertProjectInformationList(@Param("list") List<ProjectInformation> list);
 
-    //按审定单idlist来查询
+    /**
+     * 按审定单idlist来查询
+     * @param submissionFormIdList
+     * @return
+     */
     List<String> getSubmissionFormIdListBysubmissionFormIdList(@Param("submissionFormIdList") List<String> submissionFormIdList);
 
+    /**
+     * 批量删除
+     * @param codeList
+     * @return
+     */
     Integer deleteAll(@Param("codeList") List<String> codeList);
-    void deletex(String id);
 }

+ 3 - 6
src/main/java/com/jeeplus/modules/supply/projectInformation/mapper/xml/ProjectInformationMapper.xml

@@ -70,6 +70,8 @@
         from submission_form sf
         left join project_information pi on pi.project_definition_number = sf.project_definition_number
         <where>
+            sf.del_flag = #{DEL_FLAG_NORMAL}
+            ${dataScope}
             <if test="projectDefinitionNumber != null and projectDefinitionNumber != ''">
                 AND sf.project_definition_number like concat('%',#{projectDefinitionNumber},'%')
             </if>
@@ -89,16 +91,11 @@
                 ORDER BY ${page.orderBy}
             </when>
                         <otherwise>
-                            ORDER BY sf.table_building_time DESC
+                            ORDER BY sf.update_date DESC
                         </otherwise>
         </choose>
     </select>
 
-
-
-
-
-
     <!--批量新增 审定单表-->
     <insert id="insertSubmissionFormList">
         insert into submission_form (

+ 30 - 23
src/main/java/com/jeeplus/modules/supply/projectInformation/service/ProjectInformationService.java

@@ -5,10 +5,8 @@ import com.jeeplus.common.utils.IdGen;
 import com.jeeplus.common.utils.StringUtils;
 import com.jeeplus.core.persistence.Page;
 import com.jeeplus.core.service.CrudService;
-import com.jeeplus.modules.supply.materialLibrary.entity.MaterialLibrary;
 import com.jeeplus.modules.supply.materialLibrary.service.MaterialLibraryService;
 import com.jeeplus.modules.supply.projectInformation.entity.ProjectInformation;
-import com.jeeplus.modules.supply.projectInformation.entity.RealProjectInformation;
 import com.jeeplus.modules.supply.projectInformation.mapper.ProjectInformationMapper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -22,8 +20,12 @@ import org.springframework.web.multipart.MultipartFile;
 import java.io.*;
 import java.text.SimpleDateFormat;
 import java.util.*;
-import java.util.stream.Collectors;
 
+/**
+ * 项目信息Service
+ * @author: 黄俊杰
+ * @create: 2022-02-28 16:00
+ */
 @Service
 @Transactional(readOnly = true)
 public class ProjectInformationService extends CrudService<ProjectInformationMapper, ProjectInformation> {
@@ -56,12 +58,12 @@ public class ProjectInformationService extends CrudService<ProjectInformationMap
             ProjectInformation info = its.next();
             if(StringUtils.isBlank(info.getSubmissionFormId())){
                 returnMap.put("success",false);
-                returnMap.put("msg","存在审定单id为空的数据,请重新提交");
+                returnMap.put("msg","存在审定单id为空的数据,请确认后重新提交");
                 return returnMap;
 //                its.remove();       //根据主键 送审单id做判断,防止空值
             }else if(StringUtils.isBlank(info.getProjectDefinitionNumber())){
                 returnMap.put("success",false);
-                returnMap.put("msg","存在项目定义号为空的数据,请重新提交");
+                returnMap.put("msg","存在项目定义号为空的数据,请确认后重新提交");
                 return returnMap;
             }
         }
@@ -74,18 +76,18 @@ public class ProjectInformationService extends CrudService<ProjectInformationMap
         //将去重后的set转换为list  方便比较
         List<String> submissionFormIdList = new ArrayList<>(submissionFormIdSet);
 
-        //判断物流编码list长度和导入数据的list长度是否一样,不一样则说明导入数据中项目名存在重复数据
+        //判断审定单idlist长度和导入数据的list长度是否一样,不一样则说明导入数据中项目名存在重复数据
         if(submissionFormIdList.size() != list.size()){
             returnMap.keySet().removeIf(key -> key == "msg");
             returnMap.put("success",false);
-            returnMap.put("msg","数据中存在重复审定单id");
+            returnMap.put("msg","存在审定单id重复的数据,请确认后重新提交!");
         }
 
 
         //将项目信息的内容去重  遍历
         List<ProjectInformation> projectInformationList = new ArrayList();
         Set<String> projectDefinitionNumberSet = new HashSet<>();//去重后的项目定义号
-        for(int i=0;i<list.size();i++){ //遍历取出项目定义号   这里需要优化吗?
+        for(int i=0;i<list.size();i++){ //遍历取出项目定义号
             projectDefinitionNumberSet.add(list.get(i).getProjectDefinitionNumber());
         }
         Iterator<String> projectDefinitionNumberIt = projectDefinitionNumberSet.iterator();//将项目定义号加入迭代器
@@ -100,7 +102,6 @@ public class ProjectInformationService extends CrudService<ProjectInformationMap
         }
 
 
-
         //方便快捷删除  找到对应重复数据,以便最后批量操作使用  审定单id
         List<String> codeList = projectInformationMapper.getSubmissionFormIdListBysubmissionFormIdList(submissionFormIdList);  //即为重复数据的审定单id集合
         Iterator<ProjectInformation> it = list.iterator();
@@ -113,7 +114,7 @@ public class ProjectInformationService extends CrudService<ProjectInformationMap
             returnMap.put("repeat","3");
             returnMap.keySet().removeIf(key -> key == "msg");
             returnMap.put("success",true);
-            returnMap.put("msg","已存在物料数据,是否覆盖?");
+            returnMap.put("msg","已存在项目数据,是否覆盖?");
             return returnMap;
         }
 
@@ -145,12 +146,12 @@ public class ProjectInformationService extends CrudService<ProjectInformationMap
 
         returnMap.keySet().removeIf(key -> key == "msg");
         returnMap.put("success",true);
-        returnMap.put("msg","已成功导入 "+list.size()+" 条项目表单记录");
+        returnMap.put("msg","已成功导入 "+list.size()+" 条项目信息记录");
         return returnMap;
     }
 
     /**
-     * 批量修改手工上传数据信息
+     * 批量新增审定单信息表数据
      * @param projectBasicsList
      * @return
      */
@@ -194,7 +195,7 @@ public class ProjectInformationService extends CrudService<ProjectInformationMap
     }
 
     /**
-     * 批量修改手工上传数据信息  删除
+     * 批量项目信息表数据
      * @param projectBasicsList
      * @return
      */
@@ -238,7 +239,7 @@ public class ProjectInformationService extends CrudService<ProjectInformationMap
     }
 
     /**
-     * 批量修改手工上传数据信息
+     * 批量删除(项目信息表+审定单信息表)
      * @param projectBasicsList
      * @return
      */
@@ -269,9 +270,13 @@ public class ProjectInformationService extends CrudService<ProjectInformationMap
         return null;
     }
 
-    //文件的操作
+    /**
+     * 文件的操作
+     * @param file
+     * @return
+     */
     public String saveFile(File file){
-        String filePath = "";
+        String filePath = "";//最终文件存放路径
         try {
             if(StringUtils.isNotBlank(host) && ("127.0.0.1".equals(host) || "localhost".equals(host))){
                 String path = null;
@@ -306,7 +311,11 @@ public class ProjectInformationService extends CrudService<ProjectInformationMap
         return filePath;
     }
 
-    //文件的删除操作
+    /**
+     * 文件的删除操作
+     * @param file
+     * @throws IOException
+     */
     public void deleteFileContent(File file) throws IOException {
         String filePath = file.getAbsolutePath();
         File deleteFile = new File(filePath);
@@ -375,8 +384,10 @@ public class ProjectInformationService extends CrudService<ProjectInformationMap
         return multipartFile;
     }
 
-    //定时任务删除前两天数据
-    @Scheduled(cron = "0 2 * * * ?")
+    /**
+     * 定时任务删除两天前的数据   待验证
+     */
+    @Scheduled(cron = "0 0/2 * * * ?")
     public void deleteFileByCron(){
         try{
             System.out.println("开始了!");
@@ -412,8 +423,4 @@ public class ProjectInformationService extends CrudService<ProjectInformationMap
         }
     }
 
-//    public void delete(String id){
-//        projectInformationMapper.deletex(id);
-//    }
-
 }

+ 10 - 5
src/main/java/com/jeeplus/modules/supply/projectInformation/web/ProjectInformationController.java

@@ -27,6 +27,11 @@ import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 
+/**
+ * 项目信息Controller
+ * @author: 黄俊杰
+ * @create: 2022-02-28 16:00
+ */
 @Controller
 @RequestMapping(value = "${adminPath}/supply/projectInformation")
 public class ProjectInformationController extends BaseController {
@@ -105,10 +110,10 @@ public class ProjectInformationController extends BaseController {
     public AjaxJson importFile(@RequestParam("file") MultipartFile file) {
         AjaxJson j = new AjaxJson();
         try {
-//            projectInformationService.deleteFileByCron();
+//            projectInformationService.deleteFileByCron();  测试定时任务
             String repeat = "0";  //repeat:0:第一次交互,1:覆盖,2:不覆盖,3:询问
             ImportExcel ei = new ImportExcel(file, 1, 0);
-            List<ProjectInformation> list = ei.getDataList(ProjectInformation.class);   //直接用就好了吗,格式啥的用设置吗?
+            List<ProjectInformation> list = ei.getDataList(ProjectInformation.class);
             LinkedHashMap returnMap = projectInformationService.disposeImportProjectInformation(list,file,repeat);
             //放要放的值
             Boolean boole = (Boolean) returnMap.get("success");
@@ -119,7 +124,7 @@ public class ProjectInformationController extends BaseController {
             j.setMsg(returnMap.get("msg").toString());
         } catch (Exception e) {
             j.setSuccess(false);
-            j.setMsg("导入项目表单失败!失败信息:" + e.getMessage());
+            j.setMsg("导入项目信息失败!失败信息:" + e.getMessage());
         }
         return j;
     }
@@ -136,7 +141,7 @@ public class ProjectInformationController extends BaseController {
             File file = new File(filePath);
             MultipartFile file1 = projectInformationService.transformFile(file);
             ImportExcel ei = new ImportExcel(file, 1, 0);
-            List<ProjectInformation> list = ei.getDataList(ProjectInformation.class);   //直接用就好了吗,格式啥的用设置吗?
+            List<ProjectInformation> list = ei.getDataList(ProjectInformation.class);
             LinkedHashMap returnMap = projectInformationService.disposeImportProjectInformation(list,file1,repeat);
             //如果文件已经使用完毕,则删除
             projectInformationService.deleteFileContent(file);
@@ -145,7 +150,7 @@ public class ProjectInformationController extends BaseController {
             j.setMsg(returnMap.get("msg").toString());
         } catch (Exception e) {
             j.setSuccess(false);
-            j.setMsg("导入项目表单失败!失败信息:" + e.getMessage());
+            j.setMsg("导入项目信息失败!失败信息:" + e.getMessage());
         }
         return j;
     }

+ 2 - 1
src/main/java/com/jeeplus/modules/supply/stockOut/mapper/xml/SupplyStockOutMapper.xml

@@ -41,7 +41,8 @@
         DATE_FORMAT(a.stock_out_import_date,'%Y-%m-%d') AS "stockOutImportDateStr",
         a.accountant_certificate AS "accountantCertificate",
         a.reply_proof AS "replyProof",
-        a.materials_type AS "materialsType"
+        a.materials_type AS "materialsType",
+        a.submittals_id AS "submittalsId"
     </sql>
 
 

+ 3 - 37
src/main/webapp/webpage/modules/supply/materialsProvidedByAForReview/supplyMaterialsProvidedByAForReviewList.js

@@ -152,48 +152,14 @@
                 content: "${ctx}/tag/importExcel" ,
                 btn: [/*'导出模板',*/'确定', '关闭'],
                 /*btn1: function () {
-                    jp.downloadFile('${ctx}/supply/materialLibrary/templates')  //模板放在哪?
+                    jp.downloadFile('${ctx}/supply/stockOut/templates')
                 },*/
                 btn1: function(index, layero){
                     var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
                     iframeWin.contentWindow.importExcel('${ctx}/supply/MaterialsProvidedByAForReview/import', function (data) {
                         if(data.success){
-                            var body = data.body;
-                            var repeat = body.repeat;
-                            var filePath = body.filePath;
-                            if(repeat == 3) {
-                                jp.confirm('已存在物料数据,是否覆盖?', function () {
-                                    jp.loading();
-                                    jp.get("${ctx}/supply/MaterialsProvidedByAForReview/importTwo?repeat=1&filePath="+filePath+"", function (data) {
-                                        if (data.success) {
-                                            $('#reportTable').bootstrapTable('refresh');
-                                            jp.success(data.msg);
-                                            location.reload();
-                                        } else {
-                                            jp.error(data.msg);
-                                            location.reload();
-                                        }
-
-                                    })
-
-                                },function () {
-                                    jp.loading();
-                                    jp.get("${ctx}/supply/MaterialsProvidedByAForReview/importTwo?repeat=2&filePath="+filePath+"", function (data) {
-                                        if (data.success) {
-                                            $('#reportTable').bootstrapTable('refresh');
-                                            jp.success(data.msg);
-                                            location.reload();
-                                        } else {
-                                            jp.error(data.msg);
-                                            location.reload();
-                                        }
-
-                                    })
-                                })
-                            }else {
-                                jp.success(data.msg);
-                                refresh();
-                            }
+                            jp.success(data.msg);
+                            refresh();
                         }else{
                             jp.error(data.msg);
                         }

+ 6 - 12
src/main/webapp/webpage/modules/supply/projectInformation/supplyProjectInformationList.js

@@ -101,6 +101,12 @@
                     sortName: 'projectType'
                 }
                 ,{
+                    field: 'submissionFormId',
+                    title: '送审单id',
+                    width:150,
+                    sortName: 'submissionFormId'
+                }
+                ,{
                     field: 'voltageLeve',
                     title: '电压等级',
                     width:150,
@@ -292,18 +298,6 @@
                     width:150,
                     sortName: 'submissionStatus'
                 }
-                ,{
-                    field: 'submissionFormId',
-                    title: '送审单id',
-                    width:150,
-                    sortName: 'submissionFormId'
-                }
-                ,{
-                    field: 'tableBuildingTime',
-                    title: '建表时间',
-                    width:150,
-                    sortName: 'tableBuildingTime'
-                }