فهرست منبع

Merge remote-tracking branch 'origin/master'

user5 4 سال پیش
والد
کامیت
cc85169867
14فایلهای تغییر یافته به همراه453 افزوده شده و 372 حذف شده
  1. 3 2
      src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/web/ConstructionController.java
  2. 20 0
      src/main/java/com/jeeplus/modules/sg/managementcenter/materialinfo/entity/MaterialInfo.java
  3. 0 2
      src/main/java/com/jeeplus/modules/sg/managementcenter/materialinfo/mapper/MaterialInfoMapper.java
  4. 0 18
      src/main/java/com/jeeplus/modules/sg/managementcenter/materialinfo/mapper/xml/MaterialInfoMapper.xml
  5. 96 164
      src/main/java/com/jeeplus/modules/sg/managementcenter/materialinfo/service/MaterialInfoService.java
  6. 119 0
      src/main/java/com/jeeplus/modules/sg/managementcenter/materialinfo/util/MaterialInfoUtil.java
  7. 142 139
      src/main/java/com/jeeplus/modules/sg/managementcenter/materialinfo/web/MaterialInfoController.java
  8. 2 0
      src/main/java/com/jeeplus/modules/sg/managementcenter/materialproject/mapper/MaterialProjectMapper.java
  9. 8 0
      src/main/java/com/jeeplus/modules/sg/managementcenter/materialproject/mapper/xml/MaterialProjectMapper.xml
  10. 6 0
      src/main/java/com/jeeplus/modules/sg/managementcenter/materialproject/service/MaterialProjectService.java
  11. 10 0
      src/main/java/com/jeeplus/modules/sg/managementcenter/project/entity/Project.java
  12. 43 43
      src/main/webapp/webpage/modules/sg/managementcenter/materialinfo/materialInfoList.js
  13. 2 2
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/reElectricalEnd.jsp
  14. 2 2
      src/main/webapp/webpage/modules/sg/materialmodule/activiti/rePowerEnd.jsp

+ 3 - 2
src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/web/ConstructionController.java

@@ -26,6 +26,7 @@ import com.jeeplus.modules.sg.managementcenter.activiti.utils.MyImportUtils;
 import com.jeeplus.modules.sg.managementcenter.materialinfo.entity.MaterialInfo;
 import com.jeeplus.modules.sg.managementcenter.materialinfo.entity.MaterialInfoBean;
 import com.jeeplus.modules.sg.managementcenter.materialinfo.service.MaterialInfoService;
+import com.jeeplus.modules.sg.managementcenter.materialinfo.util.MaterialInfoUtil;
 import com.jeeplus.modules.sg.managementcenter.materialproject.entity.MaterialProject;
 import com.jeeplus.modules.sg.managementcenter.materialproject.service.MaterialProjectService;
 import com.jeeplus.modules.sg.managementcenter.moduleacquisition.entity.ModuleBlock;
@@ -1268,8 +1269,8 @@ public class ConstructionController extends BaseController {
         String projectNam1 = (String) mo.getCellValue(row, 1);
         String projectName = projectNam1.trim();
         materialInfoService.deleteByPro(projectName);
-        List<MaterialInfo> materialInfos = materialInfoService.getData(importExcel, projectName);   //sheet页数据
-        List<MaterialInfo> list = materialInfoService.getNewData(materialInfos);      //合并后数据
+        List<MaterialInfo> materialInfos = MaterialInfoUtil.getData(importExcel, projectName);   //sheet页数据
+        List<MaterialInfo> list = MaterialInfoUtil.combineData(materialInfos);      //合并后数据
         materialInfoService.saveList(list);
         j.setSuccess(true);
         j.setMsg("插入成功");

+ 20 - 0
src/main/java/com/jeeplus/modules/sg/managementcenter/materialinfo/entity/MaterialInfo.java

@@ -3,6 +3,8 @@ package com.jeeplus.modules.sg.managementcenter.materialinfo.entity;
 import com.jeeplus.common.utils.excel.annotation.ExcelField;
 import com.jeeplus.core.persistence.DataEntity;
 
+import java.util.Objects;
+
 public class MaterialInfo extends DataEntity<MaterialInfo> {
     private String[] projectNames;//项目名称(多个)
     private String projectName;            //项目名称
@@ -150,4 +152,22 @@ public class MaterialInfo extends DataEntity<MaterialInfo> {
     public void setNote(String note) {
         this.note = note;
     }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (!(o instanceof MaterialInfo)) return false;
+        if (!super.equals(o)) return false;
+        MaterialInfo that = (MaterialInfo) o;
+        return Objects.equals(materialCode, that.materialCode) &&
+                Objects.equals(materialName, that.materialName) &&
+                Objects.equals(extendDescription, that.extendDescription) &&
+                Objects.equals(note, that.note);
+    }
+
+    @Override
+    public int hashCode() {
+
+        return Objects.hash(materialCode, materialName, extendDescription, note);
+    }
 }

+ 0 - 2
src/main/java/com/jeeplus/modules/sg/managementcenter/materialinfo/mapper/MaterialInfoMapper.java

@@ -17,8 +17,6 @@ import java.util.List;
 public interface MaterialInfoMapper extends BaseMapper<MaterialInfo> {
 	int insertList(@Param("list") List<MaterialInfo> list);
 	void insertOldList(@Param("list") List<MaterialInfo> list);
-	List<MaterialInfo> findSat(String batch);
-	List<MaterialInfo> findProjectName();
 	List<MaterialInfo> findByList(@Param("list") List<MaterialProject> list);
 	void deleteByPro(String projectName);
 	void deleteByOld(String projectName);

+ 0 - 18
src/main/java/com/jeeplus/modules/sg/managementcenter/materialinfo/mapper/xml/MaterialInfoMapper.xml

@@ -239,24 +239,6 @@
 		select * FROM xm_material_data  where ${propertyName} = '${value}'
 	</select>
 
-
-	<select id="findSat" resultType="MaterialInfo" parameterType="String">
-		select a.material_code as materialCode,
-		a.material_description as materialName,
-		a.extend_description as extendDescription
-		from xm_material_standard a
-		<where>
-			a.batch = #{batch}
-		</where>
-	</select>
-
-	<select id="findProjectName" resultType="MaterialInfo" parameterType="String">
-		SELECT DISTINCT(project_name) AS projectName
-		<where>
-			project_name = #{projectName}
-		</where>
-	</select>
-
 	<select id="findByList" resultType="MaterialInfo">
 		SELECT
 		   <include refid="infoColumns"/>

+ 96 - 164
src/main/java/com/jeeplus/modules/sg/managementcenter/materialinfo/service/MaterialInfoService.java

@@ -10,6 +10,7 @@ import com.jeeplus.core.service.CrudService;
 import com.jeeplus.modules.sg.financial.settlement.util.ExcelWriter;
 import com.jeeplus.modules.sg.managementcenter.materialinfo.entity.MaterialInfo;
 import com.jeeplus.modules.sg.managementcenter.materialinfo.mapper.MaterialInfoMapper;
+import com.jeeplus.modules.sg.managementcenter.materialinfo.util.MaterialInfoUtil;
 import com.jeeplus.modules.sg.managementcenter.materialinfo.util.MaterialReplaceUtil;
 import com.jeeplus.modules.sg.managementcenter.materialproject.entity.MaterialProject;
 import com.jeeplus.modules.sg.managementcenter.materialproject.service.MaterialProjectService;
@@ -49,10 +50,7 @@ public class MaterialInfoService extends CrudService<MaterialInfoMapper, Materia
 		return super.findList(materialInfo);
 	}
 
-	public List<MaterialInfo> findProjectName(){
-		return materialInfoMapper.findProjectName();
-	}
-	
+
 	@Override
 	public Page<MaterialInfo> findPage(Page<MaterialInfo> page, MaterialInfo materialInfo) {
 		return super.findPage(page, materialInfo);
@@ -96,32 +94,59 @@ public class MaterialInfoService extends CrudService<MaterialInfoMapper, Materia
 
 
 
+//	/**
+//	 *物料信息合并保存
+//	 */
+//    @Transactional(readOnly = false)
+//	public void export(MultipartFile file,String batch,String itemBatch) throws IOException, InvalidFormatException {
+//		ImportExcel mo = new ImportExcel(file,1,"模块表");
+//		ImportExcel importExcel = new ImportExcel(file,1,"领料清单");
+//			Row row = mo.getRow(0);
+//		String projectNam1 = (String) mo.getCellValue(row, 1);
+//		String projectName = projectNam1.trim();
+//		MaterialProject materialProject1 = new MaterialProject();
+//		materialProject1.setReserveProjectName(projectName);
+//		List<MaterialProject> materialProjects = materialProjectService.findList(materialProject1);
+//		if (materialProjects != null && materialProjects.size() > 0) {
+//			materialInfoMapper.deleteByPro(projectName);
+//			materialInfoMapper.deleteByOld(projectName);
+//		} else {
+//			MaterialProject materialProject = new MaterialProject();
+//			materialProject.setReserveProjectName(projectName);
+//			materialProjectService.save(materialProject);
+//		}
+//		List<MaterialInfo> materialInfos = getData(importExcel,projectName);   //sheet页数据
+//		List<MaterialInfo> list = getNewData(materialInfos);      //合并后数据
+//		saveList(list);
+//		insertOldList(list);
+//	}
+
 	/**
-	 *物料信息合并保存
+	 *在年度物资上报统计表中保存项目信息,在年度上报明细表中保存物资信息
 	 */
-    @Transactional(readOnly = false)
-	public void export(MultipartFile file,String batch,String itemBatch) throws IOException, InvalidFormatException {
-		ImportExcel mo = new ImportExcel(file,1,"模块表");
-		ImportExcel importExcel = new ImportExcel(file,1,"领料清单");
-			Row row = mo.getRow(0);
-		String projectNam1 = (String) mo.getCellValue(row, 1);
-		String projectName = projectNam1.trim();
-		MaterialProject materialProject1 = new MaterialProject();
-		materialProject1.setReserveProjectName(projectName);
-		List<MaterialProject> materialProjects = materialProjectService.findList(materialProject1);
-		if (materialProjects != null && materialProjects.size() > 0) {
+	@Transactional(readOnly = false)
+	public void saveData(MultipartFile file,String batch,String itemBatch) throws IOException, InvalidFormatException {
+		ImportExcel module = new ImportExcel(file,1,"模块表");
+		Row row = module.getRow(0);
+		Object obj = module.getCellValue(row, 1);
+		if(obj==null){
+			throw new RuntimeException("找不到项目名称!");
+		}
+		String projectName = ((String) obj).trim();
+		MaterialProject project = materialProjectService.findByReserveName(projectName);
+		//若年度物资上报统计表中存在该项目 则删除对应物资明细数据,否则在上报统计表中新增一条项目数据
+		if(project!=null){
 			materialInfoMapper.deleteByPro(projectName);
 			materialInfoMapper.deleteByOld(projectName);
-		} else {
+		}else{
 			MaterialProject materialProject = new MaterialProject();
 			materialProject.setReserveProjectName(projectName);
 			materialProjectService.save(materialProject);
 		}
-		List<MaterialInfo> materialInfos = getData(importExcel,projectName);   //sheet页数据
-//		List<MaterialInfo> list = replaceDate(materialInfos);          //对比替换数据
-		List<MaterialInfo> list = getNewData(materialInfos);      //合并后数据
-//		List<MaterialInfo> standardList = materialInfoMapper.findSat(batch);     //标准库数据
-//		List<MaterialInfo> newList = compareData(list,standardList);    //比对之后的数据
+		//保存物资明细数据
+		ImportExcel pick = new ImportExcel(file,1,"领料清单");
+		List<MaterialInfo> materialInfos = MaterialInfoUtil.getData(pick,projectName);   //获取领料清单数据
+		List<MaterialInfo> list = MaterialInfoUtil.combineData(materialInfos);      //合并数据
 		saveList(list);
 		insertOldList(list);
 	}
@@ -131,7 +156,7 @@ public class MaterialInfoService extends CrudService<MaterialInfoMapper, Materia
 	 */
 	public List<MaterialInfo> findByBatch(List<MaterialProject> list){
 		List<MaterialInfo> list1 = materialInfoMapper.findByList(list);
-		 List<MaterialInfo> list2 = getNewData(list1); //合并数据
+		 List<MaterialInfo> list2 = MaterialInfoUtil.combineData(list1); //合并数据
 		Collections.sort(list2, new Comparator<MaterialInfo>() {
 			@Override
 			public int compare(MaterialInfo o1, MaterialInfo o2) {
@@ -140,148 +165,55 @@ public class MaterialInfoService extends CrudService<MaterialInfoMapper, Materia
 		});
 		 return list2;
 	}
+//
+//	/**
+//	 * 对比替换数据
+//	 * @param list
+//	 * @return
+//	 */
+//	private List<MaterialInfo> replaceDate(List<MaterialInfo> list) {
+//		for(MaterialInfo materialInfo : list){
+//			String code = materialInfo.getMaterialCode();
+//			String name = materialInfo.getMaterialName();
+//			String des = materialInfo.getExtendDescription();
+//			for(int i=0;i< MaterialReplaceUtil.exportCode.length;i++){
+//				if(code.equals(MaterialReplaceUtil.exportCode[i]) && name.equals(MaterialReplaceUtil.exportName[i])
+//						&& des.equals(MaterialReplaceUtil.exportDes[i])){
+//					materialInfo.setMaterialCode(MaterialReplaceUtil.replaceCode[i]);
+//					materialInfo.setMaterialName(MaterialReplaceUtil.replaceName[i]);
+//					materialInfo.setExtendDescription(MaterialReplaceUtil.replaceDes[i]);
+//					break;
+//				}
+//			}
+//		}
+//		return list;
+//	}
+//
+//	/**
+//	 * 数据和标准库比对
+//	 * @param list
+//	 * @param standardList
+//	 * @return
+//	 */
+//	private List<MaterialInfo> compareData(List<MaterialInfo> list, List<MaterialInfo> standardList) {
+//		for(MaterialInfo materialInfo : list){
+//			String code = materialInfo.getMaterialCode();
+//			String name = materialInfo.getMaterialName();
+//			String des = materialInfo.getExtendDescription();
+//			materialInfo.setState("0");
+//			for(MaterialInfo materialInfo1 : standardList){
+//				String code1 = materialInfo1.getMaterialCode();
+//				String name1 = materialInfo1.getMaterialName();
+//				String des1 = materialInfo1.getExtendDescription();
+//				if(code.equals(code1) && name.equals(name1) && des.equals(des1)){
+//					materialInfo.setState("1");
+//					break;
+//				}
+//			}
+//		}
+//		return list;
+//	}
 
 
 
-
-	/**
-	 * 获取sheet中数据
-	 * @param importExcel
-	 * @param projectName
-	 * @return
-	 */
-	public List<MaterialInfo> getData(ImportExcel importExcel,String projectName)  {
-		int lastRow = importExcel.getLastDataRowNum();
-		List<MaterialInfo> list = new ArrayList<>();
-		MaterialInfo maintainData = null;
-		for(int i=2; i<lastRow;i++){
-			maintainData = new MaterialInfo();
-			Row row = importExcel.getRow(i);
-			String materialCode = (String) importExcel.getCellValue(row,1);
-			if(StringUtils.isNotBlank(materialCode)) {
-				maintainData.setProjectName(projectName);
-				maintainData.setMaterialCode(materialCode);
-			    maintainData.setMaterialName((String) importExcel.getCellValue(row,2));
-			    maintainData.setExtendDescription((String) importExcel.getCellValue(row,3));
-			    maintainData.setUnit((String) importExcel.getCellValue(row,4));
-			    maintainData.setTotalCount(getDouble(importExcel,row,5));
-			    maintainData.setWeightKg(getDouble(importExcel,row,6));
-			    maintainData.setWeightTon(getDouble(importExcel,row,7));
-				maintainData.setSupplyType((String) importExcel.getCellValue(row,8));
-				maintainData.setNote((String) importExcel.getCellValue(row,9));
-				list.add(maintainData);
-			}
-		}
-		return list;
-	}
-
-	/**
-	 * 合并数据
-	 * @param materialInfos
-	 * @return
-	 */
-	public List<MaterialInfo> getNewData(List<MaterialInfo> materialInfos) {
-		double totalCount = 0.00;
-		double weightTon = 0.00;
-		List<MaterialInfo> list = new ArrayList<>();
-		for(int i=0;i<materialInfos.size();i++){
-			MaterialInfo materialInfo = materialInfos.get(i);
-            String projectName = materialInfo.getProjectName();
-            String code = materialInfo.getMaterialCode();
-            String name = materialInfo.getMaterialName();
-            String des = materialInfo.getExtendDescription();
-            totalCount = materialInfo.getTotalCount();
-            weightTon = materialInfo.getWeightTon();
-            String note = materialInfo.getNote();
-            if(projectName != null){
-            	for(int j=i+1;j<materialInfos.size();j++){
-					MaterialInfo materialInfo1 = materialInfos.get(j);
-					String code1 = materialInfo1.getMaterialCode();
-					String name1 = materialInfo1.getMaterialName();
-					String des1 = materialInfo1.getExtendDescription();
-					String note1 = materialInfo1.getNote();
-					double totalCount1 = materialInfo1.getTotalCount();
-					double weightTon1 = materialInfo1.getWeightTon();
-					if(code.equals(code1) && des.equals(des1) && name.equals(name1) && note.equals(note1)){
-                          totalCount = totalCount + totalCount1;
-                          weightTon = weightTon + weightTon1;
-						  materialInfo1.setProjectName(null);
-					}
-				}
-				materialInfo.setTotalCount(totalCount);
-				materialInfo.setWeightTon(weightTon);
-				list.add(materialInfo);
-			}
-
-		}
-		return list;
-	}
-
-	/**
-	 * 对比替换数据
-	 * @param list
-	 * @return
-	 */
-	private List<MaterialInfo> replaceDate(List<MaterialInfo> list) {
-		for(MaterialInfo materialInfo : list){
-			String code = materialInfo.getMaterialCode();
-			String name = materialInfo.getMaterialName();
-			String des = materialInfo.getExtendDescription();
-			for(int i=0;i< MaterialReplaceUtil.exportCode.length;i++){
-				if(code.equals(MaterialReplaceUtil.exportCode[i]) && name.equals(MaterialReplaceUtil.exportName[i])
-						&& des.equals(MaterialReplaceUtil.exportDes[i])){
-					materialInfo.setMaterialCode(MaterialReplaceUtil.replaceCode[i]);
-					materialInfo.setMaterialName(MaterialReplaceUtil.replaceName[i]);
-					materialInfo.setExtendDescription(MaterialReplaceUtil.replaceDes[i]);
-					break;
-				}
-			}
-		}
-		return list;
-	}
-
-	/**
-	 * 数据和标准库比对
-	 * @param list
-	 * @param standardList
-	 * @return
-	 */
-	private List<MaterialInfo> compareData(List<MaterialInfo> list, List<MaterialInfo> standardList) {
-		for(MaterialInfo materialInfo : list){
-			String code = materialInfo.getMaterialCode();
-			String name = materialInfo.getMaterialName();
-			String des = materialInfo.getExtendDescription();
-			materialInfo.setState("0");
-			for(MaterialInfo materialInfo1 : standardList){
-				String code1 = materialInfo1.getMaterialCode();
-				String name1 = materialInfo1.getMaterialName();
-				String des1 = materialInfo1.getExtendDescription();
-				if(code.equals(code1) && name.equals(name1) && des.equals(des1)){
-					materialInfo.setState("1");
-					break;
-				}
-			}
-		}
-		return list;
-	}
-
-
-	private double getDouble(ImportExcel importExcel,Row row,int col){
-		double d = 0.00;
-		Object o = importExcel.getCellValue(row,col);
-		if(!o.equals("")){
-			d = Double.parseDouble(o.toString());
-		}
-		return d;
-	}
-
-
-
-
-
-
-
-
-
-	
 }

+ 119 - 0
src/main/java/com/jeeplus/modules/sg/managementcenter/materialinfo/util/MaterialInfoUtil.java

@@ -0,0 +1,119 @@
+package com.jeeplus.modules.sg.managementcenter.materialinfo.util;
+
+import com.jeeplus.common.utils.StringUtils;
+import com.jeeplus.common.utils.excel.ImportExcel;
+import com.jeeplus.modules.sg.audit.material.entity.Material;
+import com.jeeplus.modules.sg.financial.erpcredit.util.DoubleUtil;
+import com.jeeplus.modules.sg.managementcenter.materialinfo.entity.MaterialInfo;
+import org.apache.poi.ss.usermodel.Row;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class MaterialInfoUtil {
+
+    /**
+     * 获取‘领料清单数据’
+     * @param importExcel
+     * @param projectName
+     * @return
+     */
+    public static List<MaterialInfo> getData(ImportExcel importExcel, String projectName)  {
+        int lastRow = importExcel.getLastDataRowNum();
+        List<MaterialInfo> list = new ArrayList<>();
+        MaterialInfo maintainData = null;
+        for(int i=2; i<lastRow;i++){
+            maintainData = new MaterialInfo();
+            Row row = importExcel.getRow(i);
+            String materialCode = (String) importExcel.getCellValue(row,1);//物料编码
+            if(StringUtils.isNotBlank(materialCode)) {
+                maintainData.setProjectName(projectName);//项目名称
+                maintainData.setMaterialCode(materialCode);
+                maintainData.setMaterialName((String) importExcel.getCellValue(row,2));//物料名称
+                maintainData.setExtendDescription((String) importExcel.getCellValue(row,3));//扩展描述
+                maintainData.setUnit((String) importExcel.getCellValue(row,4));//单位
+                maintainData.setTotalCount(getDouble(importExcel,row,5));//总量
+                maintainData.setWeightKg(getDouble(importExcel,row,6));//单重/kg
+                maintainData.setWeightTon(getDouble(importExcel,row,7));//总重/吨
+                maintainData.setSupplyType((String) importExcel.getCellValue(row,8));//甲乙供
+                maintainData.setNote((String) importExcel.getCellValue(row,9));//备注
+                list.add(maintainData);
+            }
+        }
+        return list;
+    }
+
+    /**
+     * 合并‘领料清单’数据
+     * @param infos
+     * @return
+     */
+    public static List<MaterialInfo> combineData(List<MaterialInfo> infos){
+        Map<Integer,MaterialInfo> map = new HashMap<>();
+        for(int i=0;i<infos.size();i++){
+            MaterialInfo info = infos.get(i);
+            MaterialInfo mapInfo = map.get(info.hashCode());
+            if(mapInfo==null){
+                map.put(info.hashCode(),info);
+            }else{
+                mapInfo.setTotalCount(DoubleUtil.add(mapInfo.getTotalCount(),info.getTotalCount()));
+                mapInfo.setWeightTon(DoubleUtil.add(mapInfo.getWeightTon(),info.getWeightTon()));
+            }
+        }
+        return new ArrayList<>(map.values());
+    }
+
+//    /**
+//     * 合并数据
+//     * @param materialInfos
+//     * @return
+//     */
+//    public List<MaterialInfo> getNewData(List<MaterialInfo> materialInfos) {
+//        double totalCount = 0.00;
+//        double weightTon = 0.00;
+//        List<MaterialInfo> list = new ArrayList<>();
+//        for(int i=0;i<materialInfos.size();i++){
+//            MaterialInfo materialInfo = materialInfos.get(i);
+//            String projectName = materialInfo.getProjectName();
+//            String code = materialInfo.getMaterialCode();
+//            String name = materialInfo.getMaterialName();
+//            String des = materialInfo.getExtendDescription();
+//            totalCount = materialInfo.getTotalCount();
+//            weightTon = materialInfo.getWeightTon();
+//            String note = materialInfo.getNote();
+//            if(projectName != null){
+//                for(int j=i+1;j<materialInfos.size();j++){
+//                    MaterialInfo materialInfo1 = materialInfos.get(j);
+//                    String code1 = materialInfo1.getMaterialCode();
+//                    String name1 = materialInfo1.getMaterialName();
+//                    String des1 = materialInfo1.getExtendDescription();
+//                    String note1 = materialInfo1.getNote();
+//                    double totalCount1 = materialInfo1.getTotalCount();
+//                    double weightTon1 = materialInfo1.getWeightTon();
+//                    if(code.equals(code1) && des.equals(des1) && name.equals(name1) && note.equals(note1)){
+//                        totalCount = totalCount + totalCount1;
+//                        weightTon = weightTon + weightTon1;
+//                        materialInfo1.setProjectName(null);
+//                    }
+//                }
+//                materialInfo.setTotalCount(totalCount);
+//                materialInfo.setWeightTon(weightTon);
+//                list.add(materialInfo);
+//            }
+//
+//        }
+//        return list;
+//    }
+
+    private static double getDouble(ImportExcel importExcel,Row row,int col){
+        double d = 0.00;
+        Object obj = importExcel.getCellValue(row,col);
+        if(obj!=null&&!obj.equals("")){
+            d = Double.parseDouble(obj.toString());
+        }
+        return d;
+    }
+
+}

+ 142 - 139
src/main/java/com/jeeplus/modules/sg/managementcenter/materialinfo/web/MaterialInfoController.java

@@ -43,7 +43,7 @@ import java.util.List;
 import java.util.Map;
 
 /**
- * 数据维护
+ * 年度物资上报明细
  */
 @Controller
 @RequestMapping(value = "${adminPath}/managementcenter/materialinfo")
@@ -67,7 +67,7 @@ public class MaterialInfoController extends BaseController {
 	}
 	
 	/**
-	 * 列表页面
+	 * 年度物资上报明细 列表页面
 	 */
 	@RequiresPermissions("managementcenter:materialinfo:list")
 	@RequestMapping(value = {"list", ""})
@@ -76,101 +76,100 @@ public class MaterialInfoController extends BaseController {
 		return "modules/sg/managementcenter/materialinfo/materialInfoList";
 	}
 	
-		/**
-	 * 列表数据
+	/**
+	 * 年度物资上报明细 列表数据
 	 */
-		@ResponseBody
-		@RequiresPermissions("managementcenter:materialinfo:list")
-		@RequestMapping(value = "data")
-		public Map<String, Object> data(MaterialInfo materialInfo, HttpServletRequest request, HttpServletResponse response, Model model) {
-			MaterialInfo materialInfo1 = new MaterialInfo();//存入session数值
-			materialInfo1.setProjectName(materialInfo.getProjectName());
-			MaterialProject materialProject =  new MaterialProject();
-			materialProject.setProjectStatus("");
-			materialProject.setReserveCode(materialInfo.getReserveCode());
-			MaterialProject materialProject1 = new MaterialProject();
-			materialProjectService.getSearch(materialProject,materialProject1);
-			List<MaterialProject> list = materialProjectService.findList(materialProject);
-			String[] projectNames = new String[list.size()];
-			for (int i = 0; i < list.size(); i++) {
-				if (null!=list.get(i).getReserveProjectName()&&!"".equals(list.get(i).getReserveProjectName())){
-					projectNames[i] = list.get(i).getReserveProjectName();
-				}
+	@ResponseBody
+	@RequiresPermissions("managementcenter:materialinfo:list")
+	@RequestMapping(value = "data")
+	public Map<String, Object> data(MaterialInfo materialInfo, HttpServletRequest request, HttpServletResponse response, Model model) {
+		MaterialInfo materialInfo1 = new MaterialInfo();//存入session数值
+		materialInfo1.setProjectName(materialInfo.getProjectName());
+		MaterialProject materialProject =  new MaterialProject();
+		materialProject.setProjectStatus("");
+		materialProject.setReserveCode(materialInfo.getReserveCode());
+		MaterialProject materialProject1 = new MaterialProject();
+		materialProjectService.getSearch(materialProject,materialProject1);
+		List<MaterialProject> list = materialProjectService.findList(materialProject);
+		String[] projectNames = new String[list.size()];
+		for (int i = 0; i < list.size(); i++) {
+			if (null!=list.get(i).getReserveProjectName()&&!"".equals(list.get(i).getReserveProjectName())){
+				projectNames[i] = list.get(i).getReserveProjectName();
 			}
-			if (null!=list&&list.size()>0){
-				materialInfo.setProjectNames(projectNames);
-				materialInfo1.setProjectNames(projectNames);
-			}else {
-				if (!"".equals(materialInfo.getReserveCode())||!"".equals(materialInfo.getProjectCode())||
-					!"".equals(materialInfo.getProjectDefine())){
-					materialInfo.setProjectName("没有找到:请重新刷新...");
-					materialInfo1.setProjectName("没有找到:请重新刷新...");
-				}
+		}
+		if (null!=list&&list.size()>0){
+			materialInfo.setProjectNames(projectNames);
+			materialInfo1.setProjectNames(projectNames);
+		}else {
+			if (!"".equals(materialInfo.getReserveCode())||!"".equals(materialInfo.getProjectCode())||
+				!"".equals(materialInfo.getProjectDefine())){
+				materialInfo.setProjectName("没有找到:请重新刷新...");
+				materialInfo1.setProjectName("没有找到:请重新刷新...");
 			}
-
-			HttpSession session = request.getSession();
-			session.setAttribute("materialInfoSelect",materialInfo1);
-			Page<MaterialInfo> page = materialInfoService.findPage(new Page<MaterialInfo>(request, response), materialInfo);
-			return getBootstrapData(page);
 		}
+		HttpSession session = request.getSession();
+		session.setAttribute("materialInfoSelect",materialInfo1);
+		Page<MaterialInfo> page = materialInfoService.findPage(new Page<MaterialInfo>(request, response), materialInfo);
+		return getBootstrapData(page);
+	}
 
 
 
 
 	
-	/**
-	 * 删除
-	 */
-	@ResponseBody
-	@RequiresPermissions("managementcenter:materialinfo:del")
-	@RequestMapping(value = "delete")
-	public AjaxJson delete(MaterialInfo materialInfo) {
-		AjaxJson j = new AjaxJson();
-		materialInfoService.delete(materialInfo);
-		j.setMsg("删除成功");
-		return j;
-	}
-	
-	/**
-	 * 批量删除
-	 */
-	@ResponseBody
-	@RequiresPermissions("managementcenter:materialinfo:del")
-	@RequestMapping(value = "deleteAll")
-	public AjaxJson deleteAll(String ids) {
-		AjaxJson j = new AjaxJson();
-		String idArray[] =ids.split(",");
-		for(String id : idArray){
-			materialInfoService.delete(materialInfoService.get(id));
-		}
-		j.setMsg("删除成功");
-		return j;
-	}
+//	/**
+//	 * 删除
+//	 */
+//	@ResponseBody
+//	@RequiresPermissions("managementcenter:materialinfo:del")
+//	@RequestMapping(value = "delete")
+//	public AjaxJson delete(MaterialInfo materialInfo) {
+//		AjaxJson j = new AjaxJson();
+//		materialInfoService.delete(materialInfo);
+//		j.setMsg("删除成功");
+//		return j;
+//	}
+//
+//	/**
+//	 * 批量删除
+//	 */
+//	@ResponseBody
+//	@RequiresPermissions("managementcenter:materialinfo:del")
+//	@RequestMapping(value = "deleteAll")
+//	public AjaxJson deleteAll(String ids) {
+//		AjaxJson j = new AjaxJson();
+//		String idArray[] =ids.split(",");
+//		for(String id : idArray){
+//			materialInfoService.delete(materialInfoService.get(id));
+//		}
+//		j.setMsg("删除成功");
+//		return j;
+//	}
 
 
-	/**
-	 * 导入Excel数据
-	 */
-	@ResponseBody
-	@RequiresPermissions("managementcenter:materialinfo:import")
-    @RequestMapping(value = "import")
-   	public AjaxJson importFile(@RequestParam("file")MultipartFile file, HttpServletResponse response, HttpServletRequest request) {
-		String batch = request.getParameter("batch");   //物料批次
-		String itemBatch = request.getParameter("itemBatch");  //项目批次
-		AjaxJson j = new AjaxJson();
-		try {
-			materialInfoService.export(file,batch,itemBatch);
-			j.setMsg("导入成功");
-		} catch (Exception e) {
-			j.setSuccess(false);
-			j.setMsg("导入失败!失败信息:"+e.getMessage());
-		}
-		return j;
-    }
+//	/**
+//	 * 导入Excel数据
+//	 */
+//	@ResponseBody
+//	@RequiresPermissions("managementcenter:materialinfo:import")
+//    @RequestMapping(value = "import")
+//   	public AjaxJson importFile(@RequestParam("file")MultipartFile file, HttpServletResponse response, HttpServletRequest request) {
+//		String batch = request.getParameter("batch");   //物料批次
+//		String itemBatch = request.getParameter("itemBatch");  //项目批次
+//		AjaxJson j = new AjaxJson();
+//		try {
+//			materialInfoService.saveData(file,batch,itemBatch);
+//			j.setMsg("导入成功");
+//		} catch (Exception e) {
+//			j.setSuccess(false);
+//			j.setMsg("导入失败!失败信息:"+e.getMessage());
+//		}
+//		return j;
+//    }
 
 
     /**
-     * 多文件导入
+     * 年度物资上报明细 多文件导入
      */
     @ResponseBody
     @RequiresPermissions("managementcenter:materialinfo:import")
@@ -181,7 +180,7 @@ public class MaterialInfoController extends BaseController {
         AjaxJson j = new AjaxJson();
         try {
             for(int i=0;i<file.length;i++) {
-                materialInfoService.export(file[i], batch,itemBatch);
+                materialInfoService.saveData(file[i], batch,itemBatch);
             }
             j.setMsg("导入成功");
         } catch (Exception e) {
@@ -192,20 +191,20 @@ public class MaterialInfoController extends BaseController {
     }
 
 
-    /**
-	 * 导入文件页面
-	 * @return
-	 */
-	@RequestMapping(value = "importExcel")
-	public String importExcel(Model model) {
-		List<MaterialProject> list = materialProjectService.findBatch();
-		model.addAttribute("batch",list);
-		return "modules/sg/managementcenter/materialinfo/importexcel";
-	}
+//    /**
+//	 * 导入文件页面
+//	 * @return
+//	 */
+//	@RequestMapping(value = "importExcel")
+//	public String importExcel(Model model) {
+//		List<MaterialProject> list = materialProjectService.findBatch();
+//		model.addAttribute("batch",list);
+//		return "modules/sg/managementcenter/materialinfo/importexcel";
+//	}
 
 
 	/**
-	 * 多文件导出页面
+	 * 年度物资上报明细 多文件导入页面
 	 */
 	@RequestMapping(value = "/importMore/Form")
 	public String importMoreForm(Model model){
@@ -218,7 +217,6 @@ public class MaterialInfoController extends BaseController {
 	 * 导出excel文件
 	 */
 	@ResponseBody
-//	@RequiresPermissions("test:one:dialog:leave1:export")
 	@RequestMapping(value = "export")
 	public AjaxJson exportFile(MaterialInfo materialInfo, HttpServletRequest request, HttpServletResponse response) {
 		AjaxJson j = new AjaxJson();
@@ -240,59 +238,64 @@ public class MaterialInfoController extends BaseController {
 
 
 
-	/**
-	 * 项目验证
-	 */
-
-	@ResponseBody
-	@RequestMapping(value = "importValidation")
-	public AjaxJson importValidation(@RequestParam("file")MultipartFile file,String batch,String itemBatch){
-		AjaxJson j = new AjaxJson();
-		try {
-		ImportExcel mo = new ImportExcel(file,1,"模块表");
-		Row row = mo.getRow(0);
-		String projectName1 = (String) mo.getCellValue(row, 1);
-		String projectName = projectName1.trim();
-		MaterialProject materialProject = new MaterialProject();
-		materialProject.setReserveProjectName(projectName);
-		List<MaterialProject> list = materialProjectService.findList(materialProject);
-		if(list != null && list.size()>0){
-			j.setSuccess(true);
-		}else {
-			materialInfoService.export(file,batch,itemBatch);
-			j.setSuccess(true);
-			j.setErrorCode("0");
-			j.setMsg("导入成功");
-		}
-		} catch (Exception e) {
-			j.setSuccess(false);
-			j.setMsg("导入失败!失败信息:"+e.getMessage());
-		}
-		return j;
-	}
+//	/**
+//	 * 项目验证
+//	 */
+//
+//	@ResponseBody
+//	@RequestMapping(value = "importValidation")
+//	public AjaxJson importValidation(@RequestParam("file")MultipartFile file,String batch,String itemBatch){
+//		AjaxJson j = new AjaxJson();
+//		try {
+//		ImportExcel mo = new ImportExcel(file,1,"模块表");
+//		Row row = mo.getRow(0);
+//		String projectName1 = (String) mo.getCellValue(row, 1);
+//		String projectName = projectName1.trim();
+//		MaterialProject materialProject = new MaterialProject();
+//		materialProject.setReserveProjectName(projectName);
+//		List<MaterialProject> list = materialProjectService.findList(materialProject);
+//		if(list != null && list.size()>0){
+//			j.setSuccess(true);
+//		}else {
+//			materialInfoService.saveData(file,batch,itemBatch);
+//			j.setSuccess(true);
+//			j.setErrorCode("0");
+//			j.setMsg("导入成功");
+//		}
+//		} catch (Exception e) {
+//			j.setSuccess(false);
+//			j.setMsg("导入失败!失败信息:"+e.getMessage());
+//		}
+//		return j;
+//	}
 
 
     /**
-     * 多文件验证
+     * 年度物资上报明细 多文件导入验证
+	 * 若年度上报统计中已经存在某些项目,则返回消息由操作者选择是否进行覆盖,否则直接导入物资明细及项目信息
      */
     @ResponseBody
     @RequestMapping(value = "importValidations")
     public AjaxJson importValidations(@RequestParam("file")MultipartFile[] file,String batch,String itemBatch) {
         AjaxJson j = new AjaxJson();
-        List<MaterialProject> materialProjects = new ArrayList<>();
+        List<MaterialProject> list = new ArrayList<>();
         try {
+        	//获取项目名称列表
             for(int i = 0;i<file.length;i++) {
-                ImportExcel mo = new ImportExcel(file[i], 1, "模块表");
-				ImportExcel m1 = new ImportExcel(file[i], 1, "领料清单");
-                Row row = mo.getRow(0);
-                String projectName1 = (String) mo.getCellValue(row, 1);
-                String projectName = projectName1.trim();
-                MaterialProject materialProject = new MaterialProject();
-                materialProject.setReserveProjectName(projectName);
-                materialProjects.add(materialProject);
+				ImportExcel module = new ImportExcel(file[i], 1, "模块表");
+				Row row = module.getRow(0);
+				Object obj = module.getCellValue(row, 1);
+				if(obj==null){
+					throw new RuntimeException("找不到项目名称!");
+				}
+				String projectName = ((String) obj).trim();
+                MaterialProject project = new MaterialProject();
+				project.setReserveProjectName(projectName);
+				list.add(project);
             }
-            List<MaterialProject> list = materialProjectService.findByList(materialProjects);
-            if(list != null && list.size()>0){
+            List<MaterialProject> projects = materialProjectService.findByList(list);
+            //判断是否有已存在项目
+            if(projects != null && projects.size()>0){
             	StringBuilder stringBuilder = new StringBuilder();
             	for(MaterialProject materialProject : list){
             		stringBuilder.append(materialProject.getReserveProjectName()+",");
@@ -301,7 +304,7 @@ public class MaterialInfoController extends BaseController {
                 j.setSuccess(true);
             }else {
                 for(int k=0;k<file.length;k++) {
-                    materialInfoService.export(file[k], batch,itemBatch);
+                    materialInfoService.saveData(file[k], batch,itemBatch);
                 }
                 j.setSuccess(true);
                 j.setErrorCode("0");

+ 2 - 0
src/main/java/com/jeeplus/modules/sg/managementcenter/materialproject/mapper/MaterialProjectMapper.java

@@ -31,6 +31,8 @@ public interface MaterialProjectMapper extends BaseMapper<MaterialProject> {
 
     List<MaterialProject> findJugdeReserve(MaterialProject materialProject);
 
+    MaterialProject findByReserveName(String reserveName);
+
     /**
      * 删除施工交底流程信息(xm_construction_clarificaiton)
      * @param reserveProjectName 储备项目名称

+ 8 - 0
src/main/java/com/jeeplus/modules/sg/managementcenter/materialproject/mapper/xml/MaterialProjectMapper.xml

@@ -115,6 +115,14 @@
         </choose>
     </select>
 
+    <select id="findByReserveName" resultType="MaterialProject">
+        SELECT
+        <include refid="infoColumns"/>
+        FROM xm_material_project a
+        where a.del_flag = '0'
+        and  a.reserveProjectName = #{reserveName}
+    </select>
+
     <select id="findByList" resultType="com.jeeplus.modules.sg.managementcenter.materialproject.entity.MaterialProject">
         SELECT
         <include refid="infoColumns"/>

+ 6 - 0
src/main/java/com/jeeplus/modules/sg/managementcenter/materialproject/service/MaterialProjectService.java

@@ -37,6 +37,10 @@ public class MaterialProjectService extends CrudService<MaterialProjectMapper, M
 		return super.findList(materialProject);
 	}
 
+	public MaterialProject findByReserveName(String reserveName){
+		return mapper.findByReserveName(reserveName);
+	}
+
 	public List<MaterialProject> findBatch(){
 		return materialProjectMapper.findBatch();
 	}
@@ -202,6 +206,8 @@ public class MaterialProjectService extends CrudService<MaterialProjectMapper, M
 		}
 		materialProjectMapper.replaceList(list);
 	}
+
+
 	public void getSearch(MaterialProject materialProject,MaterialProject materialProject1){
 		String reserveCode = materialProject.getReserveCode();
 		if (StringUtils.isNotBlank(reserveCode)){

+ 10 - 0
src/main/java/com/jeeplus/modules/sg/managementcenter/project/entity/Project.java

@@ -56,6 +56,8 @@ public class Project extends DataEntity<Project> {
     private String projectType;
     //流程实例id
     private String procInsId;
+    //
+    private String attributionYear;
 
     public String getReserveProjectName() {
         return reserveProjectName;
@@ -248,4 +250,12 @@ public class Project extends DataEntity<Project> {
     public void setProcInsId(String procInsId) {
         this.procInsId = procInsId;
     }
+
+    public String getAttributionYear() {
+        return attributionYear;
+    }
+
+    public void setAttributionYear(String attributionYear) {
+        this.attributionYear = attributionYear;
+    }
 }

+ 43 - 43
src/main/webapp/webpage/modules/sg/managementcenter/materialinfo/materialInfoList.js

@@ -156,34 +156,34 @@ $(document).ready(function() {
             $('#view,#edit').prop('disabled', $('#dataTable').bootstrapTable('getSelections').length!=1);
         });
 
-    $("#btnImport").click(function(){
-             jp.open({
-                       type: 2,
-                       area: [500, 300],
-                       auto: true,
-                       title:"导入数据",
-                       // content: "${ctx}/managementcenter/materialinfo/importExcel" ,
-                       content: "${ctx}/managementcenter/materialinfo/importExcel" ,
-                       btn: ['确定', '关闭'],
-                       btn1: function(index, layero){
-                             var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
-                             iframeWin.contentWindow.importExcel('${ctx}/managementcenter/materialinfo/importValidation', function (data) {
-                             if(data.success){
-                                jp.success(data.msg);
-                                 refresh();
-                             }else{
-                                jp.error(data.msg);
-                             }
-                            jp.close(index);
-                      });//调用保存事件
-                       return false;
-                     },
-
-              btn2: function(index){
-                        jp.close(index);
-                      }
-                   });
-             });
+    // $("#btnImport").click(function(){
+    //          jp.open({
+    //                    type: 2,
+    //                    area: [500, 300],
+    //                    auto: true,
+    //                    title:"导入数据",
+    //                    // content: "${ctx}/managementcenter/materialinfo/importExcel" ,
+    //                    content: "${ctx}/managementcenter/materialinfo/importExcel" ,
+    //                    btn: ['确定', '关闭'],
+    //                    btn1: function(index, layero){
+    //                          var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+    //                          iframeWin.contentWindow.importExcel('${ctx}/managementcenter/materialinfo/importValidation', function (data) {
+    //                          if(data.success){
+    //                             jp.success(data.msg);
+    //                              refresh();
+    //                          }else{
+    //                             jp.error(data.msg);
+    //                          }
+    //                         jp.close(index);
+    //                   });//调用保存事件
+    //                    return false;
+    //                  },
+    //
+    //           btn2: function(index){
+    //                     jp.close(index);
+    //                   }
+    //                });
+    //          });
 
 
     $("#moreImport").click(function(){
@@ -253,21 +253,21 @@ $(document).ready(function() {
     }
 
   
-  function deleteAll(){
-
-		jp.confirm('确认要删除该数据记录吗?', function(){
-			jp.loading();  	
-			jp.get("${ctx}/managementcenter/materialinfo/deleteAll?ids=" + getIdSelections(), function(data){
-         	  		if(data.success){
-         	  			$('#dataTable').bootstrapTable('refresh');
-         	  			jp.success(data.msg);
-         	  		}else{
-         	  			jp.error(data.msg);
-         	  		}
-         	  	})
-          	   
-		})
-  }
+  // function deleteAll(){
+  //
+	// 	jp.confirm('确认要删除该数据记录吗?', function(){
+	// 		jp.loading();
+	// 		jp.get("${ctx}/managementcenter/materialinfo/deleteAll?ids=" + getIdSelections(), function(data){
+  //        	  		if(data.success){
+  //        	  			$('#dataTable').bootstrapTable('refresh');
+  //        	  			jp.success(data.msg);
+  //        	  		}else{
+  //        	  			jp.error(data.msg);
+  //        	  		}
+  //        	  	})
+  //
+	// 	})
+  // }
 
     //刷新列表
   function refresh(){

+ 2 - 2
src/main/webapp/webpage/modules/sg/materialmodule/activiti/reElectricalEnd.jsp

@@ -33,8 +33,8 @@
 				<div class="col-sm-3"></div>
 				<div class="col-sm-6">
 					<div class="form-group text-center">
-						<input id="agree" class="btn  btn-primary btn-lg btn-parsley" type="submit" value="没有问题"/>&nbsp;
-						<input id="no" class="btn  btn-primary btn-lg btn-danger" type="submit" value="存在问题"/>&nbsp;
+						<input id="agree" class="btn  btn-primary btn-lg btn-parsley" type="submit" value="通过"/>&nbsp;
+						<input id="no" class="btn  btn-primary btn-lg btn-danger" type="submit" value="驳回"/>&nbsp;
 					</div>
 				</div>
 			</div>

+ 2 - 2
src/main/webapp/webpage/modules/sg/materialmodule/activiti/rePowerEnd.jsp

@@ -149,8 +149,8 @@
 				<div class="col-sm-3"></div>
 				<div class="col-sm-6">
 					<div class="form-group text-center">
-						<input id="agree" class="btn  btn-primary btn-lg btn-parsley" type="submit" value="没有问题" />&nbsp;
-						<input id="no" class="btn  btn-primary btn-lg btn-danger" type="submit" value="纯在问题" />&nbsp;					</div>
+						<input id="agree" class="btn  btn-primary btn-lg btn-parsley" type="submit" value="完成" />&nbsp;
+						<input id="no" class="btn  btn-primary btn-lg btn-danger" type="submit" value="驳回" />&nbsp;					</div>
 				</div>
 			</div>
 			<c:if test="${not empty materialModule.id}">