Ver código fonte

物流库,项目信息,甲供材报审

[user3] 3 anos atrás
pai
commit
74dad61cc3
18 arquivos alterados com 1099 adições e 42 exclusões
  1. 0 1
      src/main/java/com/jeeplus/modules/supply/materialLibrary/mapper/MaterialLibraryMapper.java
  2. 16 2
      src/main/java/com/jeeplus/modules/supply/materialLibrary/mapper/xml/MaterialLIbraryMapper.xml
  3. 35 0
      src/main/java/com/jeeplus/modules/supply/materialLibrary/service/MaterialLibraryService.java
  4. 7 4
      src/main/java/com/jeeplus/modules/supply/materialLibrary/web/MaterialLibraryController.java
  5. 79 0
      src/main/java/com/jeeplus/modules/supply/materialsProvidedByAForReview/entity/MaterialsProvidedByAForReview.java
  6. 25 0
      src/main/java/com/jeeplus/modules/supply/materialsProvidedByAForReview/mapper/MaterialsProvidedByAForReviewMapper.java
  7. 177 0
      src/main/java/com/jeeplus/modules/supply/materialsProvidedByAForReview/mapper/xml/MaterialsProvidedByAForReviewMapper.xml
  8. 115 0
      src/main/java/com/jeeplus/modules/supply/materialsProvidedByAForReview/service/MaterialsProvidedByAForReviewService.java
  9. 123 0
      src/main/java/com/jeeplus/modules/supply/materialsProvidedByAForReview/web/MaterialsProvidedByAForReviewController.java
  10. 44 9
      src/main/java/com/jeeplus/modules/supply/projectInformation/mapper/xml/ProjectInformationMapper.xml
  11. 52 6
      src/main/java/com/jeeplus/modules/supply/projectInformation/service/ProjectInformationService.java
  12. 12 9
      src/main/java/com/jeeplus/modules/supply/projectInformation/web/ProjectInformationController.java
  13. 1 1
      src/main/webapp/webpage/modules/supply/materialLibrary/supplyMaterialLibraryList.js
  14. 5 5
      src/main/webapp/webpage/modules/supply/materialLibrary/supplyMaterialLibraryList.jsp
  15. 297 0
      src/main/webapp/webpage/modules/supply/materialsProvidedByAForReview/supplyMaterialsProvidedByAForReviewList.js
  16. 106 0
      src/main/webapp/webpage/modules/supply/materialsProvidedByAForReview/supplyMaterialsProvidedByAForReviewList.jsp
  17. 1 1
      src/main/webapp/webpage/modules/supply/projectInformation/supplyProjectInformationList.js
  18. 4 4
      src/main/webapp/webpage/modules/supply/projectInformation/supplyProjectInformationList.jsp

+ 0 - 1
src/main/java/com/jeeplus/modules/supply/materialLibrary/mapper/MaterialLibraryMapper.java

@@ -3,7 +3,6 @@ package com.jeeplus.modules.supply.materialLibrary.mapper;
 import com.jeeplus.core.persistence.BaseMapper;
 import com.jeeplus.core.persistence.annotation.MyBatisMapper;
 import com.jeeplus.modules.supply.materialLibrary.entity.MaterialLibrary;
-import com.jeeplus.modules.supply.stockOut.entity.SupplyStockOut;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;

+ 16 - 2
src/main/java/com/jeeplus/modules/supply/materialLibrary/mapper/xml/MaterialLIbraryMapper.xml

@@ -104,14 +104,28 @@
         insert into material_library (
         material_code,
         material_description,
-        unit_of_measurement
+        unit_of_measurement,
+        id,
+        create_by,
+        create_date,
+        update_by,
+        update_date,
+        remarks,
+        del_flag
         )
         values
         <foreach collection="list" item="item" index="index" separator="," >
             (
             #{item.materialCode},
             #{item.materialDescription},
-            #{item.unitOfMeasurement}
+            #{item.unitOfMeasurement},
+            #{item.id},
+            #{item.createBy.id},
+            #{item.createDate},
+            #{item.updateBy.id},
+            #{item.updateDate},
+            #{item.remarks},
+            #{item.delFlag}
             )
         </foreach>
     </insert>

+ 35 - 0
src/main/java/com/jeeplus/modules/supply/materialLibrary/service/MaterialLibraryService.java

@@ -2,11 +2,13 @@ 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;
 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;
@@ -55,6 +57,18 @@ public class MaterialLibraryService extends CrudService<MaterialLibraryMapper, M
     @Transactional(readOnly = false)
     public LinkedHashMap disposeImportMaterialLibrary(List<MaterialLibrary> list,MultipartFile file,String repeat) throws Exception{
         LinkedHashMap returnMap = new LinkedHashMap();
+
+        Iterator<MaterialLibrary> its = list.iterator();
+        while(its.hasNext()){
+            MaterialLibrary info = its.next();
+            if(StringUtils.isBlank(info.getMaterialCode())){
+                returnMap.put("success",false);
+                returnMap.put("msg","存在物流编号为空的数据,请重新提交");
+                return returnMap;
+//                its.remove();  //删除为空信息
+            }
+        }
+
         Set<String> materialCodeSet = new HashSet<>();
         for (MaterialLibrary importInfo : list){
             //将物料编码放入set中
@@ -65,6 +79,8 @@ public class MaterialLibraryService extends CrudService<MaterialLibraryMapper, M
 
         //判断物流编码list长度和导入数据的list长度是否一样,不一样则说明导入数据中项目名存在重复数据
         if(materialCodeList.size() != list.size()){
+            returnMap.keySet().removeIf(key -> key == "msg");
+            returnMap.put("success",false);
             returnMap.put("msg","数据中存在重复物流编码");
         }
 
@@ -76,6 +92,9 @@ public class MaterialLibraryService extends CrudService<MaterialLibraryMapper, M
             //将文件存到服务器
             String filePath = saveFile(copyFile);
             returnMap.put("filePath",filePath);
+            returnMap.keySet().removeIf(key -> key == "repeat");
+            returnMap.put("repeat","3");
+            returnMap.keySet().removeIf(key -> key == "msg");
             returnMap.put("msg","已存在物料数据,是否覆盖?");
             return returnMap;
         }
@@ -97,6 +116,7 @@ public class MaterialLibraryService extends CrudService<MaterialLibraryMapper, M
         if(list.size()!=0) {
             modifyHandmadeVindicateList(list);
         }
+        returnMap.keySet().removeIf(key -> key == "msg");
         returnMap.put("msg","已成功导入 "+list.size()+" 条项目表单记录");
         return returnMap;
     }
@@ -121,14 +141,29 @@ public class MaterialLibraryService extends CrudService<MaterialLibraryMapper, M
                 for (int i = 0; i < part; i++) {
                     //100条
                     List<MaterialLibrary> listPage = projectBasicsList.subList(0, pointsDataLimit);
+                    for(MaterialLibrary info:listPage){
+                        info.setId(IdGen.uuid());
+                        info.preInsert();
+                    }
                     materialLibraryMapper.insertList(listPage);
                     //剔除
                     projectBasicsList.subList(0, pointsDataLimit).clear();
                 }
                 if(!projectBasicsList.isEmpty()){
+                    for(MaterialLibrary info:projectBasicsList){
+
+                        info.setId(IdGen.uuid());
+                        info.preInsert();
+                    }
                     materialLibraryMapper.insertList(projectBasicsList);
                 }
             }else{
+                for(MaterialLibrary info:projectBasicsList){
+                    if(StringUtils.isNotBlank(info.getMaterialCode())) {
+                        info.setId(IdGen.uuid());
+                        info.preInsert();
+                    }
+                }
                 materialLibraryMapper.insertList(projectBasicsList);
             }
         }

+ 7 - 4
src/main/java/com/jeeplus/modules/supply/materialLibrary/web/MaterialLibraryController.java

@@ -60,7 +60,7 @@ public class MaterialLibraryController extends BaseController {
      * 列表数据
      */
     @ResponseBody
-//    @RequiresPermissions("supply:stockOut:list")
+    @RequiresPermissions("supply:materialLibrary:list")
     @RequestMapping(value = "data")
     public Map<String, Object> data(MaterialLibrary materialLibrary, HttpServletRequest request, HttpServletResponse response, Model model) {
         Page<MaterialLibrary> page = materialLibraryService.findPage(new Page<MaterialLibrary>(request, response), materialLibrary);
@@ -100,17 +100,20 @@ public class MaterialLibraryController extends BaseController {
      * 导入Excel数据-
      */
     @ResponseBody
-//    @RequiresPermissions("supply:stockOut:import")
+    @RequiresPermissions("supply:materialLibrary:import")
     @RequestMapping(value = "import")
     public AjaxJson importFile(@RequestParam("file") MultipartFile file) {
         AjaxJson j = new AjaxJson();
         try {
             String repeat = "0";  //repeat:0:第一次交互,1:覆盖,2:不覆盖
-            ImportExcel ei = new ImportExcel(file, 1, 0);
+            ImportExcel ei = new ImportExcel(file, 2, 0);
             List<MaterialLibrary> list = ei.getDataList(MaterialLibrary.class);   //直接用就好了吗,格式啥的用设置吗?
             LinkedHashMap returnMap = materialLibraryService.disposeImportMaterialLibrary(list,file,repeat);
             //放要放的值
-            returnMap.put("repeat","0");
+            Boolean boole = (Boolean) returnMap.get("success");
+            if(!boole){
+                j.setSuccess(false);
+            }
             j.setBody(returnMap);
             j.setMsg(returnMap.get("msg").toString());
         } catch (Exception e) {

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

@@ -0,0 +1,79 @@
+package com.jeeplus.modules.supply.materialsProvidedByAForReview.entity;
+
+import com.jeeplus.common.utils.excel.annotation.ExcelField;
+import com.jeeplus.core.persistence.DataEntity;
+
+public class MaterialsProvidedByAForReview extends DataEntity<MaterialsProvidedByAForReview> {
+    private String serialNumber;            //序号
+    private String materialNumber;          //物料编码
+    private String materialDescription;     //物料描述
+    private String actualQuantityIssued;      //出库数量  出库表的实发数量
+    private String unit;                    //单位
+    private String projectDefinition;       //项目定义号
+    private String projectName;             //项目名称
+    private String submittalsId;            //送审id
+    @ExcelField(title="序号", align=2, sort=1)
+    public String getSerialNumber() {
+        return serialNumber;
+    }
+
+    public void setSerialNumber(String serialNumber) {
+        this.serialNumber = serialNumber;
+    }
+    @ExcelField(title="物料编码", align=2, sort=2)
+    public String getMaterialNumber() {
+        return materialNumber;
+    }
+
+    public void setMaterialNumber(String materialNumber) {
+        this.materialNumber = materialNumber;
+    }
+    @ExcelField(title="物料描述", align=2, sort=3)
+    public String getMaterialDescription() {
+        return materialDescription;
+    }
+
+    public void setMaterialDescription(String materialDescription) {
+        this.materialDescription = materialDescription;
+    }
+    @ExcelField(title="出库数量", align=2, sort=4)
+    public String getActualQuantityIssued() {
+        return actualQuantityIssued;
+    }
+
+    public void setActualQuantityIssued(String outWarehouseNumber) {
+        this.actualQuantityIssued = outWarehouseNumber;
+    }
+    @ExcelField(title="单位", align=2, sort=5)
+    public String getUnit() {
+        return unit;
+    }
+
+    public void setUnit(String unit) {
+        this.unit = unit;
+    }
+    @ExcelField(title="项目定义号", align=2, sort=6)
+    public String getProjectDefinition() {
+        return projectDefinition;
+    }
+
+    public void setProjectDefinition(String projectDefinition) {
+        this.projectDefinition = projectDefinition;
+    }
+    @ExcelField(title="项目名称", align=2, sort=7)
+    public String getProjectName() {
+        return projectName;
+    }
+
+    public void setProjectName(String projectName) {
+        this.projectName = projectName;
+    }
+    @ExcelField(title="送审id", align=2, sort=8)
+    public String getSubmittalsId() {
+        return submittalsId;
+    }
+
+    public void setSubmittalsId(String submittalsId) {
+        this.submittalsId = submittalsId;
+    }
+}

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

@@ -0,0 +1,25 @@
+package com.jeeplus.modules.supply.materialsProvidedByAForReview.mapper;
+
+import com.jeeplus.core.persistence.BaseMapper;
+import com.jeeplus.core.persistence.annotation.MyBatisMapper;
+import com.jeeplus.modules.supply.materialsProvidedByAForReview.entity.MaterialsProvidedByAForReview;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@MyBatisMapper
+public interface MaterialsProvidedByAForReviewMapper extends BaseMapper<MaterialsProvidedByAForReview> {
+
+    /**
+     * 批量删除
+     * @param list
+     */
+    void deleteByIdList(@Param("list") List<String> list);
+
+    /**
+     * 批量新增
+     * @param list
+     * @return
+     */
+    Integer insertList(@Param("list") List<MaterialsProvidedByAForReview> list);
+}

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

@@ -0,0 +1,177 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jeeplus.modules.supply.materialsProvidedByAForReview.mapper.MaterialsProvidedByAForReviewMapper">
+
+    <sql id="infoColumns">
+        a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.stock_out_number AS "stockOutNumber",
+        a.wbs_element AS "wbsElement",
+        a.project_name AS "projectName",
+        a.project_definition AS "projectDefinition",
+        a.material_number AS "materialNumber",
+        a.material_description AS "materialDescription",
+        a.batch AS "batch",
+        a.unit AS "unit",
+        a.actual_quantity_issued AS "actualQuantityIssued",
+        a.unit_price AS "unitPrice",
+        a.money AS "money",
+        a.posting_account_date AS "postingAccountDate",
+        DATE_FORMAT(a.posting_account_date,'%Y-%m-%d') AS "postingAccountDateStr",
+        a.supplier_name AS "supplierName",
+        a.factory AS "factory",
+        a.picking_number AS "pickingNumber",
+        a.picking_create_by AS "pickingCreateBy",
+        a.picking_department AS "pickingDepartment",
+        a.reserved_number AS "reservedNumber",
+        a.repertory_place AS "repertoryPlace",
+        a.project_package_name AS "projectPackageName",
+        a.stock_out_person AS "stockOutPerson",
+        a.wbs_element_description AS "wbsElementDescription",
+        a.project_second_classification AS "projectSecondClassification",
+        a.project_thirdly_classification AS "projectThirdlyClassification",
+        a.order_number AS "orderNumber",
+        a.assess_type AS "assessType",
+        a.stock_out_import_date AS "stockOutImportDate",
+        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"
+    </sql>
+
+    <select id="findList" resultType="com.jeeplus.modules.supply.materialsProvidedByAForReview.entity.MaterialsProvidedByAForReview">
+        SELECT
+        <include refid="infoColumns"/>
+        ,a.submittals_id as "submittalsId"
+
+        FROM supply_stock_out a
+        <where>
+            a.del_flag = #{DEL_FLAG_NORMAL}
+            ${dataScope}
+            <if test="projectDefinition != null and projectDefinition != ''">
+                AND a.project_definition LIKE CONCAT('%',#{projectDefinition},'%')
+            </if>
+            <if test="materialNumber != null and materialNumber != ''">
+                AND a.material_number LIKE CONCAT('%',#{materialNumber},'%')
+            </if>
+            <if test="submittalsId != null and submittalsId != ''">
+                AND a.submittals_id LIKE CONCAT('%',#{submittalsId},'%')
+            </if>
+
+        </where>
+        <choose>
+            <when test="page !=null and page.orderBy != null and page.orderBy != ''">
+                ORDER BY ${page.orderBy}
+            </when>
+            <otherwise>
+                ORDER BY a.stock_out_number asc,a.update_date DESC
+            </otherwise>
+        </choose>
+    </select>
+
+    <!--物理删除-->
+    <update id="delete">
+        DELETE
+        FROM supply_stock_out
+        WHERE id = #{id}
+    </update>
+
+    <!--物理删除-->
+    <update id="deleteByIdList">
+        DELETE
+        FROM supply_stock_out
+        WHERE id in
+        <foreach collection="list" item="id" index="index" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </update>
+
+    <!--批量新增-->
+    <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
+        )
+        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}
+            )
+        </foreach>
+    </insert>
+
+</mapper>

+ 115 - 0
src/main/java/com/jeeplus/modules/supply/materialsProvidedByAForReview/service/MaterialsProvidedByAForReviewService.java

@@ -0,0 +1,115 @@
+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.materialLibrary.service.MaterialLibraryService;
+import com.jeeplus.modules.supply.materialsProvidedByAForReview.entity.MaterialsProvidedByAForReview;
+import com.jeeplus.modules.supply.materialsProvidedByAForReview.mapper.MaterialsProvidedByAForReviewMapper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.*;
+
+@Service
+@Transactional(readOnly = true)
+public class MaterialsProvidedByAForReviewService extends CrudService<MaterialsProvidedByAForReviewMapper, MaterialsProvidedByAForReview> {
+    /** 主机 */
+    private final static String host = Global.getConfig("remoteServer.host");
+    private static Logger logger = LoggerFactory.getLogger(MaterialLibraryService.class);
+
+    @Autowired
+    private MaterialsProvidedByAForReviewMapper materialsProvidedByAForReviewMapper;
+
+    //页面显示
+    @Override
+    public Page<MaterialsProvidedByAForReview> findPage(Page<MaterialsProvidedByAForReview> page, MaterialsProvidedByAForReview materialsProvidedByAForReview){
+        return super.findPage(page,materialsProvidedByAForReview);
+    }
+
+    /**
+     * 批量删除
+     * @param idList
+     */
+    @Transactional(readOnly = false)
+    public void deleteByIdList(List<String> idList){
+        materialsProvidedByAForReviewMapper.deleteByIdList(idList);
+    }
+
+    //处理导入数据
+    public Map disposeMaterialsProvidedByAForReview(List<MaterialsProvidedByAForReview> list){
+        Map map = new HashMap();
+        Set<String> set = new HashSet<>();
+        //判断必填字段不为空
+        Iterator<MaterialsProvidedByAForReview> it = list.iterator();
+        while(it.hasNext()){
+            MaterialsProvidedByAForReview info = it.next();
+            if(StringUtils.isBlank(info.getMaterialNumber())){   //物料编码不为空
+                map.put("success",false);
+                map.put("message","存在出物料编码为空的数据,请确认后重新提交");
+                return map;
+            }else if(StringUtils.isBlank(info.getActualQuantityIssued())){
+                map.put("success",false);
+                map.put("message","存在出库数量为空的数据,请确认后重新提交");
+                return map;
+            }else if(StringUtils.isBlank(info.getProjectDefinition())){
+                map.put("success",false);
+                map.put("message","存在出项目定义号为空的数据,请确认后重新提交");
+                return map;
+            }else if(StringUtils.isBlank(info.getSubmittalsId())){
+                map.put("success",false);
+                map.put("message","存在出送审id为空的数据,请确认后重新提交");
+                return map;
+            }else {
+                //将项目定义号放入set中去重
+                set.add(info.getProjectDefinition());
+                info.preInsert();
+            }
+        }
+
+
+        //批量处理
+        disposeMaterialsProvidedByAForReviewList(list);
+        map.put("success",true);
+        return map;
+    }
+
+    /**
+     * 批量修改手工上传数据信息
+     * @param projectBasicsList
+     * @return
+     */
+    @Transactional(readOnly = false)
+    public String disposeMaterialsProvidedByAForReviewList(List<MaterialsProvidedByAForReview> projectBasicsList){
+        //分批处理
+        if(null!=projectBasicsList && projectBasicsList.size()>0){
+            int pointsDataLimit = 1000;//限制条数
+            Integer size = projectBasicsList.size();
+            //判断是否有必要分批
+            if(pointsDataLimit<size){
+                int part = size/pointsDataLimit;//分批数
+                //
+                for (int i = 0; i < part; i++) {
+                    //1000条
+                    List<MaterialsProvidedByAForReview> listPage = projectBasicsList.subList(0, pointsDataLimit);
+                    materialsProvidedByAForReviewMapper.insertList(listPage);
+                    //剔除
+                    projectBasicsList.subList(0, pointsDataLimit).clear();
+                }
+                if(!projectBasicsList.isEmpty()){
+                    materialsProvidedByAForReviewMapper.insertList(projectBasicsList);
+                }
+            }else{
+                materialsProvidedByAForReviewMapper.insertList(projectBasicsList);
+            }
+        }
+        return null;
+    }
+
+}

+ 123 - 0
src/main/java/com/jeeplus/modules/supply/materialsProvidedByAForReview/web/MaterialsProvidedByAForReviewController.java

@@ -0,0 +1,123 @@
+package com.jeeplus.modules.supply.materialsProvidedByAForReview.web;
+
+import com.jeeplus.common.json.AjaxJson;
+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;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+@Controller
+@RequestMapping(value = "${adminPath}/supply/MaterialsProvidedByAForReview")
+public class MaterialsProvidedByAForReviewController extends BaseController {
+    @Autowired
+    private MaterialsProvidedByAForReviewService materialsProvidedByAForReviewService;
+
+    @ModelAttribute
+    public MaterialsProvidedByAForReview get(@RequestParam(required = false) String id) {
+        MaterialsProvidedByAForReview entity = null;
+        if (StringUtils.isNotBlank(id)) {
+            entity = materialsProvidedByAForReviewService.get(id);
+        }
+        if (entity == null) {
+            entity = new MaterialsProvidedByAForReview();
+        }
+        return entity;
+    }
+
+    /**
+     * 项目列表页面
+     */
+    @RequiresPermissions("supply:MaterialsProvidedByAForReview:list")
+    @RequestMapping(value = {"list", ""})
+    public String list(MaterialsProvidedByAForReview materialsProvidedByAForReview, Model model) {
+        model.addAttribute("materialsProvidedByAForReview", materialsProvidedByAForReview);
+        return "modules/supply/materialsProvidedByAForReview/supplyMaterialsProvidedByAForReviewList";
+    }
+
+    /**
+     * 列表数据
+     */
+    @ResponseBody
+    @RequiresPermissions("supply:MaterialsProvidedByAForReview:list")
+    @RequestMapping(value = "data")
+    public Map<String, Object> data(MaterialsProvidedByAForReview materialsProvidedByAForReview, HttpServletRequest request, HttpServletResponse response, Model model) {
+        Page<MaterialsProvidedByAForReview> page = materialsProvidedByAForReviewService.findPage(new Page<MaterialsProvidedByAForReview>(request, response), materialsProvidedByAForReview);
+        return getBootstrapData(page);
+    }
+
+    /**
+     * 删除项目
+     */
+    @ResponseBody
+    @RequiresPermissions("supply:MaterialsProvidedByAForReview:del")
+    @RequestMapping(value = "delete")
+    public AjaxJson delete(MaterialsProvidedByAForReview materialsProvidedByAForReview) {
+        AjaxJson j = new AjaxJson();
+        materialsProvidedByAForReviewService.delete(materialsProvidedByAForReview);
+        j.setMsg("删除成功");
+        return j;
+    }
+
+    /**
+     * 批量删除
+     */
+    @ResponseBody
+    @RequiresPermissions("supply:MaterialsProvidedByAForReview:del")
+    @RequestMapping(value = "deleteAll")
+    public AjaxJson deleteAll(String ids) {
+        AjaxJson j = new AjaxJson();
+        String[] idArray = ids.split(",");
+        List idList = Arrays.asList(idArray);
+        materialsProvidedByAForReviewService.deleteByIdList(idList);
+        j.setMsg("删除成功");
+        return j;
+    }
+
+
+    /**
+     * 导入年度物资上报Excel数据-根据条件自动发送流程
+     */
+    @ResponseBody
+    @RequiresPermissions("supply:MaterialsProvidedByAForReview:import")
+    @RequestMapping(value = "import")
+    public AjaxJson importFile(@RequestParam("file") MultipartFile file) {
+        AjaxJson j = new AjaxJson();
+        try {
+            ImportExcel ei = new ImportExcel(file, 1, 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() +" 条出库单记录");
+            }else{
+                j.setMsg(map.get("message").toString());
+            }
+        } catch (Exception e) {
+            j.setSuccess(false);
+            j.setMsg("导入出库单失败!失败信息:" + e.getMessage());
+        }
+        return j;
+    }
+
+
+}

+ 44 - 9
src/main/java/com/jeeplus/modules/supply/projectInformation/mapper/xml/ProjectInformationMapper.xml

@@ -66,7 +66,7 @@
     <select id="findList" resultType="ProjectInformation" >
         SELECT
         <include refid="ProjectInformation"/>
-        ,id
+        ,sf.id as "id"
         from submission_form sf
         left join project_information pi on pi.project_definition_number = sf.project_definition_number
         <where>
@@ -153,7 +153,14 @@
         secondary_unit,
         primary_unit,
         submission_status,
-        table_building_time
+        table_building_time,
+        id,
+        create_by,
+        create_date,
+        update_by,
+        update_date,
+        remarks,
+        del_flag
         )
         values
         <foreach collection="list" item="item" index="index" separator="," >
@@ -209,7 +216,14 @@
             #{item.secondaryUnit},
             #{item.primaryUnit},
             #{item.submissionStatus},
-            now()
+            now(),
+            #{item.id},
+            #{item.createBy.id},
+            #{item.createDate},
+            #{item.updateBy.id},
+            #{item.updateDate},
+            #{item.remarks},
+            #{item.delFlag}
             )
         </foreach>
     </insert>
@@ -223,7 +237,14 @@
         voltage_leve,
         project_release_year,
         project_budget_year,
-        total_project_investment
+        total_project_investment,
+        id,
+        create_by,
+        create_date,
+        update_by,
+        update_date,
+        remarks,
+        del_flag
         )
         values
         <foreach collection="list" item="item" index="index" separator="," >
@@ -234,7 +255,14 @@
             #{item.voltageLeve},
             #{item.projectReleaseYear},
             #{item.projectBudgetYear},
-            #{item.totalProjectInvestment}
+            #{item.totalProjectInvestment},
+            #{item.id},
+            #{item.createBy.id},
+            #{item.createDate},
+            #{item.updateBy.id},
+            #{item.updateDate},
+            #{item.remarks},
+            #{item.delFlag}
             )
         </foreach>
     </insert>
@@ -261,11 +289,18 @@
         </where>
     </delete>
 
-    <delete id="deletex">
+    <select id="get" resultType="com.jeeplus.modules.supply.projectInformation.entity.ProjectInformation">
+        select
+        <include refid="ProjectInformation"/>
+        ,sf.id as "id"
+        from submission_form sf
+        left join project_information pi on pi.project_definition_number = sf.project_definition_number
+        where sf.id = #{id}
+    </select>
+
+    <delete id="delete">
         delete sf,pi from submission_form sf left join project_information pi on pi.project_definition_number = sf.project_definition_number
-        <where>
-            sf.id  = #{id}
-        </where>
+        where sf.id = #{id}
     </delete>
 
 </mapper>

+ 52 - 6
src/main/java/com/jeeplus/modules/supply/projectInformation/service/ProjectInformationService.java

@@ -1,6 +1,7 @@
 package com.jeeplus.modules.supply.projectInformation.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;
@@ -42,13 +43,29 @@ public class ProjectInformationService extends CrudService<ProjectInformationMap
     }
 
     /**
-     * 物流库信息导入处理
+     * 项目信息导入处理
      * @param list
      * @return
      */
     @Transactional(readOnly = false)
     public LinkedHashMap disposeImportProjectInformation(List<ProjectInformation> list, MultipartFile file, String repeat) throws Exception{
         LinkedHashMap returnMap = new LinkedHashMap();
+
+        Iterator<ProjectInformation> its = list.iterator();
+        while(its.hasNext()){
+            ProjectInformation info = its.next();
+            if(StringUtils.isBlank(info.getSubmissionFormId())){
+                returnMap.put("success",false);
+                returnMap.put("msg","存在审定单id为空的数据,请重新提交");
+                return returnMap;
+//                its.remove();       //根据主键 送审单id做判断,防止空值
+            }else if(StringUtils.isBlank(info.getProjectDefinitionNumber())){
+                returnMap.put("success",false);
+                returnMap.put("msg","存在项目定义号为空的数据,请重新提交");
+                return returnMap;
+            }
+        }
+
         Set<String> submissionFormIdSet = new HashSet<>();
         for (ProjectInformation importInfo : list){
             //将审定单id放入set中
@@ -60,6 +77,7 @@ public class ProjectInformationService extends CrudService<ProjectInformationMap
         //判断物流编码list长度和导入数据的list长度是否一样,不一样则说明导入数据中项目名存在重复数据
         if(submissionFormIdList.size() != list.size()){
             returnMap.keySet().removeIf(key -> key == "msg");
+            returnMap.put("success",false);
             returnMap.put("msg","数据中存在重复审定单id");
         }
 
@@ -91,6 +109,8 @@ public class ProjectInformationService extends CrudService<ProjectInformationMap
             //将文件存到服务器
             String filePath = saveFile(copyFile);
             returnMap.put("filePath",filePath);
+            returnMap.keySet().removeIf(key -> key == "repeat");
+            returnMap.put("repeat","3");
             returnMap.keySet().removeIf(key -> key == "msg");
             returnMap.put("msg","已存在物料数据,是否覆盖?");
             return returnMap;
@@ -145,14 +165,26 @@ public class ProjectInformationService extends CrudService<ProjectInformationMap
                 for (int i = 0; i < part; i++) {
                     //100条
                     List<ProjectInformation> listPage = projectBasicsList.subList(0, pointsDataLimit);
+                    for(ProjectInformation info:listPage){
+                        info.setId(IdGen.uuid());
+                        info.preInsert();
+                    }
                     projectInformationMapper.insertSubmissionFormList(listPage);
                     //剔除
                     projectBasicsList.subList(0, pointsDataLimit).clear();
                 }
                 if(!projectBasicsList.isEmpty()){
+                    for(ProjectInformation info:projectBasicsList){
+                        info.setId(IdGen.uuid());
+                        info.preInsert();
+                    }
                     projectInformationMapper.insertSubmissionFormList(projectBasicsList);
                 }
             }else{
+                for(ProjectInformation info:projectBasicsList){
+                    info.setId(IdGen.uuid());
+                    info.preInsert();
+                }
                 projectInformationMapper.insertSubmissionFormList(projectBasicsList);
             }
         }
@@ -160,7 +192,7 @@ public class ProjectInformationService extends CrudService<ProjectInformationMap
     }
 
     /**
-     * 批量修改手工上传数据信息
+     * 批量修改手工上传数据信息  删除
      * @param projectBasicsList
      * @return
      */
@@ -177,14 +209,26 @@ public class ProjectInformationService extends CrudService<ProjectInformationMap
                 for (int i = 0; i < part; i++) {
                     //100条
                     List<ProjectInformation> listPage = projectBasicsList.subList(0, pointsDataLimit);
+                    for(ProjectInformation info:listPage){
+                        info.setId(IdGen.uuid());
+                        info.preInsert();
+                    }
                     projectInformationMapper.insertProjectInformationList(listPage);
                     //剔除
                     projectBasicsList.subList(0, pointsDataLimit).clear();
                 }
                 if(!projectBasicsList.isEmpty()){
+                    for(ProjectInformation info:projectBasicsList){
+                        info.setId(IdGen.uuid());
+                        info.preInsert();
+                    }
                     projectInformationMapper.insertProjectInformationList(projectBasicsList);
                 }
             }else{
+                for(ProjectInformation info:projectBasicsList){
+                    info.setId(IdGen.uuid());
+                    info.preInsert();
+                }
                 projectInformationMapper.insertProjectInformationList(projectBasicsList);
             }
         }
@@ -330,9 +374,10 @@ public class ProjectInformationService extends CrudService<ProjectInformationMap
     }
 
     //定时任务删除前两天数据
-    @Scheduled(cron = "0 */2 * * * ?")
+    @Scheduled(cron = "0 2 * * * ?")
     public void deleteFileByCron(){
         try{
+            System.out.println("开始了!");
             if(StringUtils.isNotBlank(host) && ("127.0.0.1".equals(host) || "localhost".equals(host))){
                 String path = null;
                 if(System.getProperty("os.name").toLowerCase().contains("win")){
@@ -359,13 +404,14 @@ public class ProjectInformationService extends CrudService<ProjectInformationMap
                     }
                 }
             }
+            System.out.println("结束了!");
         }catch (Exception e){
             e.printStackTrace();
         }
     }
 
-    public void delete(String id){
-        projectInformationMapper.deletex(id);
-    }
+//    public void delete(String id){
+//        projectInformationMapper.deletex(id);
+//    }
 
 }

+ 12 - 9
src/main/java/com/jeeplus/modules/supply/projectInformation/web/ProjectInformationController.java

@@ -60,7 +60,7 @@ public class ProjectInformationController extends BaseController {
      * 列表数据
      */
     @ResponseBody
-//    @RequiresPermissions("supply:projectInformation:list")
+    @RequiresPermissions("supply:projectInformation:list")
     @RequestMapping(value = "data")
     public Map<String, Object> data(ProjectInformation projectInformation, HttpServletRequest request, HttpServletResponse response, Model model) {
         Page<ProjectInformation> page = projectInformationService.findPage(new Page<ProjectInformation>(request, response), projectInformation);
@@ -71,7 +71,7 @@ public class ProjectInformationController extends BaseController {
      * 删除项目
      */
     @ResponseBody
-//    @RequiresPermissions("supply:projectInformation:del")
+    @RequiresPermissions("supply:projectInformation:del")
     @RequestMapping(value = "delete")
     public AjaxJson delete(ProjectInformation projectInformation) {
         AjaxJson j = new AjaxJson();
@@ -84,13 +84,13 @@ public class ProjectInformationController extends BaseController {
      * 批量删除
      */
     @ResponseBody
-//    @RequiresPermissions("supply:projectInformation:del")
+    @RequiresPermissions("supply:projectInformation:del")
     @RequestMapping(value = "deleteAll")
     public AjaxJson deleteAll(String ids) {
         AjaxJson j = new AjaxJson();
         String[] idArray = ids.split(",");
         for (String id : idArray) {
-            projectInformationService.delete(id);
+            projectInformationService.delete(projectInformationService.get(id));
         }
         j.setMsg("删除成功");
         return j;
@@ -100,18 +100,21 @@ public class ProjectInformationController extends BaseController {
      * 导入年度物资上报Excel数据-根据条件自动发送流程
      */
     @ResponseBody
-//    @RequiresPermissions("supply:projectInformation:import")
+    @RequiresPermissions("supply:projectInformation:import")
     @RequestMapping(value = "import")
     public AjaxJson importFile(@RequestParam("file") MultipartFile file) {
         AjaxJson j = new AjaxJson();
         try {
-            projectInformationService.deleteFileByCron();
-            String repeat = "0";  //repeat:0:第一次交互,1:覆盖,2:不覆盖
-            ImportExcel ei = new ImportExcel(file, 1, 0);
+//            projectInformationService.deleteFileByCron();
+            String repeat = "0";  //repeat:0:第一次交互,1:覆盖,2:不覆盖,3:询问
+            ImportExcel ei = new ImportExcel(file, 2, 0);
             List<ProjectInformation> list = ei.getDataList(ProjectInformation.class);   //直接用就好了吗,格式啥的用设置吗?
             LinkedHashMap returnMap = projectInformationService.disposeImportProjectInformation(list,file,repeat);
             //放要放的值
-            returnMap.put("repeat","0");
+            Boolean boole = (Boolean) returnMap.get("success");
+            if(!boole){
+                j.setSuccess(false);
+            }
             j.setBody(returnMap);
             j.setMsg(returnMap.get("msg").toString());
         } catch (Exception e) {

+ 1 - 1
src/main/webapp/webpage/modules/supply/materialLibrary/supplyMaterialLibraryList.js

@@ -136,7 +136,7 @@
                             var body = data.body;
                             var repeat = body.repeat;
                             var filePath = body.filePath;
-                            if(repeat == 0) {
+                            if(repeat == 3) {
                                 jp.confirm('已存在物料数据,是否覆盖?', function () {
                                     jp.loading();
                                     jp.get("${ctx}/supply/materialLibrary/importTwo?repeat=1&filePath="+filePath+"", function (data) {

+ 5 - 5
src/main/webapp/webpage/modules/supply/materialLibrary/supplyMaterialLibraryList.jsp

@@ -72,15 +72,15 @@
 		<!-- 工具栏 -->
 			<div id="toolbar">
 <%--				<shiro:hasPermission name="supply:stockOut:del">--%>
-					<button id="remove" class="btn btn-danger" disabled onclick="deleteAll()">
-						<i class="glyphicon glyphicon-remove"></i> 删除
-					</button>
+<%--					<button id="remove" class="btn btn-danger" disabled onclick="deleteAll()">--%>
+<%--						<i class="glyphicon glyphicon-remove"></i> 删除--%>
+<%--					</button>--%>
 <%--				</shiro:hasPermission>--%>
-<%--				<shiro:hasPermission name="supply:stockOut:import">--%>
+				<shiro:hasPermission name="supply:materialLibrary:import">
 					<button id="btnImport" class="btn btn-info">
 						<i class="fa fa-folder-open-o"></i> 导入
 					</button>
-<%--				</shiro:hasPermission>--%>
+				</shiro:hasPermission>
 			</div>
 
 	<!-- 表格 -->

+ 297 - 0
src/main/webapp/webpage/modules/supply/materialsProvidedByAForReview/supplyMaterialsProvidedByAForReviewList.js

@@ -0,0 +1,297 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+    <script>
+    $(document).ready(function() {
+        $('#dataTable').bootstrapTable({
+            //请求方法
+            method: 'post',
+            //类型json
+            dataType: "json",
+            contentType: "application/x-www-form-urlencoded",
+            //显示检索按钮
+            showSearch: true,
+            //显示刷新按钮
+            showRefresh: true,
+            //显示切换手机试图按钮
+            showToggle: true,
+            //显示 内容列下拉框
+            showColumns: true,
+            //显示到处按钮
+            showExport: true,
+            //显示切换分页按钮
+            showPaginationSwitch: true,
+            //最低显示2行
+            minimumCountColumns: 2,
+            //是否显示行间隔色
+            striped: true,
+            //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
+            cache: false,
+            //是否显示分页(*)
+            pagination: true,
+            //排序方式
+            sortOrder: "asc",
+            //初始化加载第一页,默认第一页
+            pageNumber:1,
+            //每页的记录行数(*)
+            pageSize: 10,
+            //可供选择的每页的行数(*)
+            pageList: [10, 25, 50, 100],
+            //这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据
+            url: "${ctx}/supply/MaterialsProvidedByAForReview/data",
+            //默认值为 'limit',传给服务端的参数为:limit, offset, search, sort, order Else
+            //queryParamsType:'',
+            ////查询参数,每次调用是会带上这个参数,可自定义
+            queryParams : function(params) {
+                var searchParam = $("#searchForm").serializeJSON();
+                searchParam.pageNo = params.limit === undefined? "1" :params.offset/params.limit+1;
+                searchParam.pageSize = params.limit === undefined? -1 : params.limit;
+                searchParam.orderBy = params.sort === undefined? "" : params.sort+ " "+  params.order;
+                return searchParam;
+            },
+            //分页方式:client客户端分页,server服务端分页(*)
+            sidePagination: "server",
+            contextMenuTrigger:"right",//pc端 按右键弹出菜单
+            contextMenuTriggerMobile:"press",//手机端 弹出菜单,click:单击, press:长按。
+            contextMenu: '#context-menu',
+            onContextMenuItem: function(row, $el){
+                if($el.data("item") == "edit"){
+                    edit(row.id);
+                }else if($el.data("item") == "view"){
+                    view(row.id);
+                } else if($el.data("item") == "delete"){
+                    jp.confirm('确认要删除该数据记录吗?', function(){
+                        jp.loading();
+                        jp.get("${ctx}/supply/MaterialsProvidedByAForReview/delete?id="+row.id, function(data){
+                            if(data.success){
+                                $('#dataTable').bootstrapTable('refresh');
+                                jp.success(data.msg);
+                            }else{
+                                jp.error(data.msg);
+                            }
+                        })
+
+                    });
+
+                }
+            },
+
+            onClickRow: function(row, $el){
+            },
+            onShowSearch: function () {
+                $("#search-collapse").slideToggle();
+            },
+            columns: [{
+		        checkbox: true
+
+		    }
+			,{
+                field: 'materialNumber',
+                title: '物料编码',
+                    width:120,
+                sortName: 'materialNumber'
+            }
+            ,{
+                    field: 'materialDescription',
+                    title: '物料描述',
+                    width:210,
+                    sortName: 'materialDescription'
+                }
+                ,{
+                    field: 'actualQuantityIssued',
+                    title: '出库数量',
+                    width:150,
+                    sortName: 'actualQuantityIssued'
+                }
+                ,{
+                    field: 'unit',
+                    title: '单位',
+                    width:150,
+                    sortName: 'unit'
+                }
+                ,{
+                    field: 'projectDefinition',
+                    title: '项目定义号',
+                    width:150,
+                    sortName: 'projectDefinition'
+                }
+                ,{
+                    field: 'projectName',
+                    title: '项目名称',
+                    width:150,
+                    sortName: 'projectName'
+                }
+                ,{
+                    field: 'submittalsId',
+                    title: '送审id',
+                    width:150,
+                    sortName: 'submittalsId'
+                }
+
+
+
+            ]
+
+        });
+
+        if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端
+
+
+            $('#dataTable').bootstrapTable("toggleView");
+        }
+
+        $('#dataTable').on('check.bs.table uncheck.bs.table load-success.bs.table ' +
+            'check-all.bs.table uncheck-all.bs.table', function () {
+            $('#remove').prop('disabled', ! $('#dataTable').bootstrapTable('getSelections').length);
+            $('#view,#edit').prop('disabled', $('#dataTable').bootstrapTable('getSelections').length!=1);
+        });
+        $("#btnImport").click(function(){
+            jp.open({
+                type: 2,
+                area: [500, 200],
+                auto: true,
+                title:"导入数据",
+                content: "${ctx}/tag/importExcel" ,
+                btn: [/*'导出模板',*/'确定', '关闭'],
+                /*btn1: function () {
+                    jp.downloadFile('${ctx}/supply/materialLibrary/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();
+                            }
+                        }else{
+                            jp.error(data.msg);
+                        }
+                        jp.close(index);
+                    });//调用保存事件
+                    return false;
+                },
+                btn2: function(index){
+                    //  jp.close(index);
+                }
+            });
+        });
+
+
+        //暂时未做
+        $("#export").click(function(){//导出Excel文件物料
+            var reserveProjectName = $("#reserveProjectName").val();//储备项目暂定名称:
+            var projectName = $("#projectName").val();//项目名称
+            var reserveCode = $("#reserveCode").val();//储备编码
+            var projectCode = $("#projectCode").val();//项目编码
+            var projectAttribute = $("#projectAttribute").val();//项目属性
+            var projectDefine = $("#projectDefine").val();//项目定义
+            var bat = $("#bat").val();//项目批次
+            jp.downloadFile('${ctx}/supply/MaterialsProvidedByAForReview/export?reserveProjectName='+reserveProjectName+'&projectName='+projectName+'&reserveCode='+reserveCode+'&projectCode='+projectCode+'&projectAttribute='+projectAttribute+'&projectBatch='+bat+'&projectDefine='+projectDefine);
+        });
+        $("#exportpro").click(function(){//导出Excel文件
+            jp.downloadFile('${ctx}/supply/MaterialsProvidedByAForReview/exportpro');
+        });
+
+
+        $("#search").click("click", function() {// 绑定查询按扭
+            $('#dataTable').bootstrapTable('refresh');
+        });
+
+        $("#reset").click("click", function() {// 绑定重置按扭
+            $("#searchForm  input").val("");
+            $("#searchForm  select").val("");
+            $("#searchForm  .select-item").html("");
+            $('#dataTable').bootstrapTable('refresh');
+        });
+
+        var picker1 = $('#beginDate').datetimepicker({
+            format: 'YYYY-MM-DD',
+            locale: moment.locale('zh-cn'),
+        });
+        var picker2 = $('#endDate').datetimepicker({
+            format: 'YYYY-MM-DD',
+            locale: moment.locale('zh-cn')
+        });
+
+    });
+
+function getIdSelections() {
+    return $.map($("#dataTable").bootstrapTable('getSelections'), function (row) {
+        return row.id
+    });
+}
+
+function deleteAll(){
+    jp.confirm('确认要删除该记录信息吗?', function(){
+        jp.loading();
+        jp.get("${ctx}/supply/MaterialsProvidedByAForReview/deleteAll?ids=" + getIdSelections(), function(data){
+            if(data.success){
+                $('#dataTable').bootstrapTable('refresh');
+                jp.success(data.msg);
+            }else{
+                jp.error(data.msg);
+            }
+        })
+
+    })
+}
+
+//刷新列表
+function refresh(){
+    $('#dataTable').bootstrapTable('refresh');
+}
+
+function add(){
+    jp.openSaveDialog('新增', "${ctx}/supply/MaterialsProvidedByAForReview/form",'800px', '500px');
+}
+
+
+
+function edit(id){//没有权限时,不显示确定按钮
+    if(id == undefined){
+        id = getIdSelections();
+    }
+    jp.openSaveDialog('编辑', "${ctx}/supply/MaterialsProvidedByAForReview/form?id=" + id, '800px', '500px');
+}
+
+function view(id){//没有权限时,不显示确定按钮
+    if(id == undefined){
+        id = getIdSelections();
+    }
+    jp.openViewDialog('查看', "${ctx}/supply/MaterialsProvidedByAForReview/form?id=" + id, '800px', '500px');
+}
+
+
+
+</script>

+ 106 - 0
src/main/webapp/webpage/modules/supply/materialsProvidedByAForReview/supplyMaterialsProvidedByAForReviewList.jsp

@@ -0,0 +1,106 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>甲供材报审列表</title>
+	<meta http-equiv="Content-type" content="text/html; charset=utf-8">
+	<meta name="decorator" content="ani"/>
+	<%@ include file="/webpage/include/bootstraptable.jsp"%>
+	<%@include file="/webpage/include/treeview.jsp" %>
+	<%@include file="supplyMaterialsProvidedByAForReviewList.js" %>
+</head>
+<body>
+	<div class="wrapper wrapper-content">
+	<div class="panel panel-primary">
+	<div class="panel-heading">
+		<h3 class="panel-title">甲供材报审列表</h3>
+	</div>
+	<div class="panel-body">
+
+	<!-- 搜索 -->
+	<div id="search-collapse" class="collapse">
+		<div class="accordion-inner">
+			<form:form id="searchForm" modelAttribute="materialsProvidedByAForReview" class="form form-horizontal well clearfix">
+			    <div class="col-xs-12 col-sm-4 col-md-4">
+				   <label class="label-item single-overflow pull-left" title="物料编码:">物料编码:</label>
+				   <form:input path="materialNumber" htmlEscape="false" maxlength="64"  class=" form-control"/>
+			    </div>
+				<div class="col-xs-12 col-sm-4 col-md-4">
+					<label class="label-item single-overflow pull-left" title="项目定义号:">项目定义号:</label>
+					<form:input path="projectDefinition" htmlEscape="false" maxlength="64"  class=" form-control"/>
+				</div>
+				<div class="col-xs-12 col-sm-4 col-md-4">
+					<label class="label-item single-overflow pull-left" title="送审id:">送审id:</label>
+					<form:input path="submittalsId" htmlEscape="false" maxlength="64"  class=" form-control"/>
+				</div>
+
+<%--				<div class="row">--%>
+<%--					<div class='col-sm-3'>--%>
+<%--						<div class="form-group">--%>
+<%--							<label>选择开始时间:</label>--%>
+<%--							<div class='input-group date' id='beginDate'>--%>
+<%--								<input type='text' name="beginDate" class="form-control" />--%>
+<%--								<span class="input-group-addon">--%>
+<%--									<span class="glyphicon glyphicon-calendar"/>--%>
+<%--								</span>--%>
+<%--							</div>--%>
+<%--						</div>--%>
+<%--					</div>--%>
+<%--					<div class='col-sm-3'>--%>
+<%--						<div class="form-group">--%>
+<%--							<label>选择结束时间:</label>--%>
+<%--							<div class='input-group date' id='endDate'>--%>
+<%--								<input type='text'  name="endDate" class="form-control" />--%>
+<%--								<span class="input-group-addon">--%>
+<%--									<span class="glyphicon glyphicon-calendar"/>--%>
+<%--								</span>--%>
+<%--							</div>--%>
+<%--						</div>--%>
+<%--					</div>--%>
+<%--				</div>--%>
+
+				 <div class="col-xs-12 col-sm-6 col-md-4">
+					<div style="margin-top:26px">
+					  <a  id="search" class="btn btn-primary btn-rounded  btn-bordered btn-sm"><i class="fa fa-search"></i> 查询</a>
+					  <a  id="reset" class="btn btn-primary btn-rounded  btn-bordered btn-sm" ><i class="fa fa-refresh"></i> 重置</a>
+					 </div>
+				</div>
+			</form:form>
+		</div>
+	</div>
+
+		<!-- 工具栏 -->
+			<div id="toolbar">
+				<shiro:hasPermission name="supply:MaterialsProvidedByAForReview:del">
+					<button id="remove" class="btn btn-danger" disabled onclick="deleteAll()">
+						<i class="glyphicon glyphicon-remove"></i> 删除
+					</button>
+				</shiro:hasPermission>
+				<shiro:hasPermission name="supply:MaterialsProvidedByAForReview:import">
+					<button id="btnImport" class="btn btn-info">
+						<i class="fa fa-folder-open-o"></i> 导入
+					</button>
+				</shiro:hasPermission>
+			</div>
+
+	<!-- 表格 -->
+	<table id="dataTable"  style="table-layout:fixed"   data-toolbar="#toolbar"></table>
+
+    <!-- context menu -->
+    <%--<ul id="context-menu" class="dropdown-menu">
+    	<shiro:hasPermission name="supply:stockOut:view">
+        <li data-item="view"><a>查看</a></li>
+        </shiro:hasPermission>
+    	<shiro:hasPermission name="supply:stockOut:edit">
+        <li data-item="edit"><a>编辑</a></li>
+        </shiro:hasPermission>
+        <shiro:hasPermission name="supply:stockOut:del">
+        <li data-item="delete"><a>删除</a></li>
+        </shiro:hasPermission>
+        <li data-item="action1"><a>取消</a></li>
+    </ul>--%>
+	</div>
+	</div>
+	</div>
+</body>
+</html>

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

@@ -340,7 +340,7 @@
                             var body = data.body;
                             var repeat = body.repeat;
                             var filePath = body.filePath;
-                            if(repeat == 0) {
+                            if(repeat == 3) {
                                 jp.confirm('已存在物料数据,是否覆盖?', function () {
                                     jp.loading();
                                     jp.get("${ctx}/supply/projectInformation/importTwo?repeat=1&filePath="+filePath+"", function (data) {

+ 4 - 4
src/main/webapp/webpage/modules/supply/projectInformation/supplyProjectInformationList.jsp

@@ -68,16 +68,16 @@
 
 		<!-- 工具栏 -->
 			<div id="toolbar">
-<%--				<shiro:hasPermission name="supply:stockOut:del">--%>
+				<shiro:hasPermission name="supply:projectInformation:del">
 					<button id="remove" class="btn btn-danger" disabled onclick="deleteAll()">
 						<i class="glyphicon glyphicon-remove"></i> 删除
 					</button>
-<%--				</shiro:hasPermission>--%>
-<%--				<shiro:hasPermission name="supply:stockOut:import">--%>
+				</shiro:hasPermission>
+				<shiro:hasPermission name="supply:projectInformation:import">
 					<button id="btnImport" class="btn btn-info">
 						<i class="fa fa-folder-open-o"></i> 导入
 					</button>
-<%--				</shiro:hasPermission>--%>
+				</shiro:hasPermission>
 			</div>
 
 	<!-- 表格 -->