فهرست منبع

Merge remote-tracking branch 'origin/master'

yue 5 سال پیش
والد
کامیت
6ac4d811e9

+ 0 - 1
src/main/java/com/jeeplus/modules/sg/advence/activiti/mapper/xml/AdvanceMapper.xml

@@ -64,7 +64,6 @@
     	a.stay_open_area AS "stayOpenArea",
     	a.ring_network_cabinet AS "ringNetworkCabinet",
     	a.station_dtu AS "stationDtu",
-    	a.item_type AS "itemType",
 		a.status As "status",
 		a.acquisition_status AS "acquisitionStatus",
 		a.construction_status AS "constructionStatus",

+ 1 - 1
src/main/java/com/jeeplus/modules/sg/managementcenter/project/mapper/xml/ProjectMapper.xml

@@ -513,7 +513,7 @@
 
 	<!--修改项目领料状态状态0未发起-->
 	<update id="updateAcquisitionStatus">
-		update xm_project_details set status = #{acquisitionStatus} where id = #{id};
+		update xm_project_details set acquisition_status = #{acquisitionStatus} where id = #{id};
 	</update>
 
 	<!--修改提前施工状态0未提前施工,1提前施工-->

+ 1 - 0
src/main/java/com/jeeplus/modules/sg/managementcenter/project/service/ProjectService.java

@@ -307,6 +307,7 @@ public class ProjectService extends CrudService<ProjectMapper, Project> {
 		return projectMapper.findListProjectRequisitions(pickingRequisitions);
 	}
 	//修改领料状态
+	@Transactional(readOnly = false)
 	public void getUpdateAcquisitionStatus(String acquisitionStatus,String id){
 		projectMapper.updateAcquisitionStatus(acquisitionStatus,id);
 	}

+ 79 - 36
src/main/java/com/jeeplus/modules/sg/managementcenter/project/util/PickingInfo.java

@@ -120,54 +120,59 @@ public  class PickingInfo {
     /**
      *
      * @param pickingRequisitions //数据库中查到的数据
-     * @param listPickingRequisition 读取表格得到的数据
+     * @param listPickingRequisition 读取表格去掉重复项目定义号以及重复领料单号的数据
      * @return 确定保存到数据库中数据
      */
     public static List<PickingRequisition> getSureSavePicking(List<PickingRequisition> pickingRequisitions,List<PickingRequisition> listPickingRequisition){
-//        if (null==pickingRequisitions||pickingRequisitions.size()<=0){
-//            return listPickingRequisition;
-//        }
+        if (null==pickingRequisitions||pickingRequisitions.size()<=0){
+            return listPickingRequisition;
+        }
         ArrayList<PickingRequisition> arrayList = new ArrayList<PickingRequisition>();
         for (PickingRequisition pickingRequisition:listPickingRequisition){
             arrayList.add(pickingRequisition);
         }
         String projectDefinition = "";//项目定义号
-        String requisition = "";//领料单号
-        String requisitionPicking = "";//表格中领料单号
         boolean flag = false;
-        boolean flag1 = false;
-        for (PickingRequisition pickingRequisition:arrayList){
+        for (int i = 0; i < arrayList.size(); i++) {
             flag = false;
-            flag1 = false;
-            requisitionPicking = pickingRequisition.getRequisition();//领料单号
+            projectDefinition = arrayList.get(i).getProjectDefinition();
             for (PickingRequisition pickingRequisition1:pickingRequisitions){
-                if (pickingRequisition.getProjectDefinition().equals(pickingRequisition1.getProjectDefinition())){
-                    requisition = pickingRequisition1.getRequisition();
-                    if (requisition.length()>0){
-                        String[] split = requisition.split(",");
-                        for (String str:split){
-                            if (requisitionPicking.equals(str)){
-                                flag1= true;
-                            }
-                        }
-                    }
+                if (projectDefinition.equals(pickingRequisition1.getProjectDefinition())){
                     flag = true;
+                    break;
                 }
             }
             if (flag){
-                if (!flag1){
-                    requisition=requisition+","+requisitionPicking;
-                    pickingRequisition.setRequisition(requisition);
-                }
-            }
-            String strings = oneClear(pickingRequisition.getRequisition());//领料单号去重
-            if (!"".equals(strings)){
-                pickingRequisition.setRequisition(strings);
+                arrayList.remove(i);
+                i--;
             }
         }
+//        for (PickingRequisition pickingRequisition:arrayList){
+//            flag = false;
+//            requisitionPicking = pickingRequisition.getRequisition();//领料单号
+//            for (PickingRequisition pickingRequisition1:pickingRequisitions){
+//                if (pickingRequisition.getProjectDefinition().equals(pickingRequisition1.getProjectDefinition())){
+//                    requisition = pickingRequisition1.getRequisition();
+//                    flag = true;
+//                }
+//            }
+//            String strings = oneClear(pickingRequisition.getRequisition());//领料单号去重
+//            if (!"".equals(strings)){
+//                pickingRequisition.setRequisition(strings);
+//            }
+//        }
         return arrayList;
     }
-
+    //去掉重复的领料单号
+    public static List<PickingRequisition> getRepeatRequisition(List<PickingRequisition> pickingRequisitions){
+        String s = "";
+        for (PickingRequisition pickingRequisition:pickingRequisitions){
+            s = oneClear(pickingRequisition.getRequisition());
+            pickingRequisition.setRequisition(s);
+        }
+        return pickingRequisitions;
+    }
+    //去掉重复的领料单号
     public static String oneClear(String requisitionPicking){
         if (requisitionPicking.length()>0){
             String string = "";
@@ -188,15 +193,15 @@ public  class PickingInfo {
         return "";
     }
     /*
-        领料单号
+        获取需求数量和已出库数量都一致领料单集合
      */
     public static  List<PickingRequisition> getChangePicking(List<PickingRequisition> pickingRequisitions){
-        List<PickingRequisition> pickingRequisitionList = getJudgePicking(pickingRequisitions);//获取是否领料状态
+//        List<PickingRequisition> pickingRequisitionList = getJudgePicking(pickingRequisitions);//获取是否领料状态
         List<PickingRequisition> pickingRequisitionList1 = new ArrayList<PickingRequisition>();
         Integer status = 0;
-        for (PickingRequisition pickingRequisition:pickingRequisitionList){
+        for (PickingRequisition pickingRequisition:pickingRequisitions){
             status = pickingRequisition.getStatus();//获取是否允许领料状态
-            if (status<=0){//如果状态大于0.说明 一致。
+            if (status<1){//如果状态小于0.说明 一致。
                 pickingRequisitionList1.add(pickingRequisition);
             }
         }
@@ -213,12 +218,14 @@ public  class PickingInfo {
         PickingRequisition pickingRequisition2 = null;
         boolean flag = true;
         int status = 0;
+        Double d = 0.0;
         for (PickingRequisition pickingRequisition:pickingRequisitions){
             status = 0;
             flag = true;
             projectDefinition = pickingRequisition.getProjectDefinition();//获取项目定义号
             //如果需求数量等于已经出库数量
-            if (pickingRequisition.getQuantityDemanded() != pickingRequisition.getQuantityDelivered()){
+            d = pickingRequisition.getQuantityDemanded()-pickingRequisition.getQuantityDelivered();
+            if (d>0||d<0){
                 status = 1;
                 pickingRequisition.setStatus(status);//0-已完成首次领料 1-未完成首次领料
             }
@@ -244,11 +251,11 @@ public  class PickingInfo {
         统一项目定义号状态编码.获得该项目是否允许领料是否允许领料状态的项目:返回不一致集合
      */
     public static List<PickingRequisition> getUnifiedPicking(List<PickingRequisition> pickingRequisitions){
-        List<PickingRequisition> pickingRequisitionList = getJudgePicking(pickingRequisitions);//获取是否领料状态
+//        List<PickingRequisition> pickingRequisitionList = getJudgePicking(pickingRequisitions);//获取是否领料状态
         ArrayList<PickingRequisition> pickingRequisitionArrayList = new ArrayList<PickingRequisition>();//不一致的集合
         String projectDefinition = "";//项目定义号
         Integer status = 0;
-        for (PickingRequisition pickingRequisition:pickingRequisitionList){
+        for (PickingRequisition pickingRequisition:pickingRequisitions){
             status = pickingRequisition.getStatus();//获取是否允许领料状态
             projectDefinition = pickingRequisition.getProjectDefinition();//获得项目定义号
             if (status>0){//如果状态大于0.说明 不一致。
@@ -312,6 +319,42 @@ public  class PickingInfo {
         }
         return projectAcquisitions;
     }
+        //得到最后一次项目中心领导审核时间:去重
+        public static List<Acquisition> getSureFindListDate(List<Acquisition> findListDate){
+            List<Acquisition> projectAcquisitions = new ArrayList<Acquisition>();
+            Acquisition acquisition1 = null;
+            boolean flag = false;
+            for (Acquisition acquisition:findListDate){
+                flag =true;
+                for (Acquisition acquisition2:projectAcquisitions){
+                    if (acquisition2.getProjectId().equals(acquisition.getProjectId())){
+                        if(null!=acquisition.getManagerTime()&&null!=acquisition2.getManagerTime()){
+                            long days1 = acquisition.getManagerTime().getTime();//项目领导审核时间
+                            long days2 = acquisition2.getManagerTime().getTime();
+                            if (days1>days2){
+                                acquisition2.setManagerTime(acquisition.getManagerTime());
+                            }
+                        }else {
+                            if (null!=acquisition.getManagerTime()){
+                                acquisition2.setManagerTime(acquisition.getManagerTime());
+                            }
+                            if (null!=acquisition2.getManagerTime()){
+                                acquisition2.setManagerTime(acquisition2.getManagerTime());
+                            }
+                        }
+                        flag = false;
+                    }
+                }
+                if (flag){
+                    acquisition1 = new Acquisition();
+                    acquisition1.setId(acquisition.getId());
+                    acquisition1.setProjectId(acquisition.getProjectId());
+                    acquisition1.setManagerTime(acquisition.getManagerTime());
+                    projectAcquisitions.add(acquisition1);
+                }
+            }
+            return projectAcquisitions;
+        }
 //    /*
 //        与时间进行对比得到list集合 得到存在项目(不一致且超过三天的)
 //     */

+ 27 - 24
src/main/java/com/jeeplus/modules/sg/managementcenter/project/web/ProjectController.java

@@ -383,10 +383,10 @@ public class ProjectController extends BaseController {
 	@ResponseBody
 	@RequiresPermissions("sg:managementcenter:project:importPicking")
 	@RequestMapping(value = "importPicking")
-	public AjaxJson importFileRequisition(@RequestParam("file")MultipartFile file, HttpServletResponse response, HttpServletRequest request){
+	public AjaxJson importFileRequisition(@RequestParam("file")MultipartFile file, HttpServletResponse response, HttpServletRequest request) throws IOException, InvalidFormatException {
 		AjaxJson j = new AjaxJson();
 		String str = "";//提示
-		try {
+//		try {
 			ImportUtil importUtil = new ImportUtil(file, 0, 0);
 			//读取表格list
 			List<PickingRequisition> listPickRequisition = PickingInfo.getListPickRequisition(importUtil);
@@ -399,15 +399,19 @@ public class ProjectController extends BaseController {
 				j.setMsg("导入失败:导入表格无数据");
 				return j;
 			}
-			List<PickingRequisition> pickingRequisitions = pickingRequisitionService.pickingRequisitions(duplicateRemoval);//得到数据库中数据
-			List<PickingRequisition> sureSavePicking = PickingInfo.getSureSavePicking(pickingRequisitions, duplicateRemoval);//参数1:得到数据库集合 参数2:读取表格list
+			List<PickingRequisition> repeatRequisition = PickingInfo.getRepeatRequisition(duplicateRemoval);//去掉重复的领料单号
+			List<PickingRequisition> pickingRequisitions = pickingRequisitionService.pickingRequisitions(repeatRequisition);//得到数据库中数据
+			List<PickingRequisition> sureSavePicking = PickingInfo.getSureSavePicking(pickingRequisitions, repeatRequisition);//参数1:得到数据库集合 参数2:读取表格list
 			if (null!=sureSavePicking&&sureSavePicking.size()>0){
 				pickingRequisitionService.saveList(sureSavePicking);
 			}
+			//判断该项目已完成首次领料
+			List<PickingRequisition> judgePicking = PickingInfo.getJudgePicking(listPickRequisition);//获取领料状态
 			/**
 			 * 一致的,修改领料状态
 			 */
-			List<PickingRequisition> changePicking = PickingInfo.getChangePicking(listPickRequisition);
+			//获取需求数量和已出库数量都一致领料单集合
+			List<PickingRequisition> changePicking = PickingInfo.getChangePicking(judgePicking);
 			if (null!=changePicking&&changePicking.size()>0){
 				List<Project> listProjectPicking1 = projectService.findListProjectPicking(changePicking);
 				for (Project project:listProjectPicking1){
@@ -417,31 +421,30 @@ public class ProjectController extends BaseController {
 			/*
 				发送通知方法集合
 			 */
+			//获得该项目是否允许领料是否允许领料状态的项目:返回不一致集合
+			List<PickingRequisition> notifyPickingRequisitions = PickingInfo.getUnifiedPicking(judgePicking);
+			//去重
+			List<PickingRequisition> duplicate = PickingInfo.getDuplicateRemoval(notifyPickingRequisitions);
 			//根据项目定义号去项目表中查找项目信息
-			List<Project> listProjectPicking = projectService.findListProjectPicking(duplicateRemoval);
+			List<Project> listProjectPicking = projectService.findListProjectPicking(duplicate);
 			if (null!=listProjectPicking&&listProjectPicking.size()>0){
 				//根据项目的id去数据库中查找项目领导审核时间
 				List<Acquisition> findListDate = pickingRequisitionService.getFindListDate(listProjectPicking);
 				if (null!=findListDate&&findListDate.size()>0){
+					List<Acquisition> sureFindListDate = PickingInfo.getSureFindListDate(findListDate);
 					//得到整合后的list集合(存在项目信息)
-					List<ProjectAcquisition> listProjectAcquisition = PickingInfo.getListProjectAcquisition(listProjectPicking, findListDate);
-
-					//得到存在项目(不一致且超过三天的)
-					//			List<PickingRequisition> notifyPickingRequisitions = PickingInfo.getJudgeDatePicking(listPickRequisition,listProjectAcquisition);
+					List<ProjectAcquisition> listProjectAcquisition = PickingInfo.getListProjectAcquisition(listProjectPicking, sureFindListDate);
 
 					//得到和项目表匹配的pickAcquisition的集合同时判断给超过三天的领料做标识
 					List<PickingRequisition> listSameSetOf = PickingInfo.getListSameSetOf(listProjectAcquisition, listPickRequisition);
-					//获得该项目是否允许领料是否允许领料状态的项目:返回不一致集合
-					List<PickingRequisition> notifyPickingRequisitions = PickingInfo.getUnifiedPicking(listSameSetOf);
-
-					//根据物料编码进行去重
-					List<PickingRequisition> duplicateRemovalMaterCode = PickingInfo.getDuplicateRemovalMaterCode(notifyPickingRequisitions);
-					if (null!=duplicateRemovalMaterCode&&duplicateRemovalMaterCode.size()>0){
+					if (null!=listSameSetOf&&listSameSetOf.size()>0){
+						//根据物料编码进行去重
+						List<PickingRequisition> duplicateRemovalMaterCode = PickingInfo.getDuplicateRemovalMaterCode(listSameSetOf);
 						//得到库存对应的集合
 						List<MaterialInventory> byListPicking = materialInventoryService.findByListPicking(duplicateRemovalMaterCode);
 
 						//所有缺货未缺货信息的登记
-						List<PickingRequisition> whetherStock = PickingInfo.getWhetherStock(notifyPickingRequisitions, byListPicking);
+						List<PickingRequisition> whetherStock = PickingInfo.getWhetherStock(listSameSetOf, byListPicking);
 
 						//得到非缺货信息1的通知
 						String noStock = PickingInfo.getNoStock(whetherStock);
@@ -471,7 +474,7 @@ public class ProjectController extends BaseController {
 										.getBean(ServletContext.class);
 								new SystemInfoSocketHandler().sendMessageToUser(UserUtils.get(o.getUser().getId()).getLoginName(), "收到一条新通知,请到我的通知查看!");
 							}
-							str="已经发送非缺货信息;";
+							str="已经发送非缺货信息通知;";
 						}
 						//非缺货信息2
 						if (!"".equals(yesStock1)){
@@ -494,7 +497,7 @@ public class ProjectController extends BaseController {
 										.getBean(ServletContext.class);
 								new SystemInfoSocketHandler().sendMessageToUser(UserUtils.get(o.getUser().getId()).getLoginName(), "收到一条新通知,请到我的通知查看!");
 							}
-							str+="已经发送缺货信息;";
+							str+="已经发送缺货信息通知;";
 						}
 						//非缺货信息2
 						if (!"".equals(yesStock2)){
@@ -517,17 +520,17 @@ public class ProjectController extends BaseController {
 										.getBean(ServletContext.class);
 								new SystemInfoSocketHandler().sendMessageToUser(UserUtils.get(o.getUser().getId()).getLoginName(), "收到一条新通知,请到我的通知查看!");
 							}
-							str+="已经发送缺货项目信息;";
+							str+="已经发送缺货项目信息通知;";
 						}
 					}
 
 				}
 			}
 			j.setMsg( "已成功导入 "+sureSavePicking.size()+" 条领料表单记录."+str);
-		} catch (Exception e) {
-			j.setSuccess(false);
-			j.setMsg("导入领料表单失败!失败信息:"+e.getMessage());
-		}
+//		} catch (Exception e) {
+//			j.setSuccess(false);
+//			j.setMsg("导入领料表单失败!失败信息:"+e.getMessage());
+//		}
 		return j;
 	}
 }

+ 1 - 1
src/main/webapp/webpage/modules/sg/managementcenter/project/projectForm.jsp

@@ -165,7 +165,7 @@
 				<tr>
 					<td class="width-15 active"><label class=""><font color="red">*</font>项目类型:</label></td>
 					<td class="width-35">
-						<form:input path="itemType" htmlEscape="false" class="form-control required"/>
+						<form:input path="projectType" htmlEscape="false" class="form-control required"/>
 					</td>
 					<td class="width-15 active"><label class=""><font color="red">*</font>交底类型:</label></td>
 					<td class="width-35">

+ 1 - 1
src/main/webapp/webpage/modules/sg/managementcenter/project/projectList.jsp

@@ -59,7 +59,7 @@
 			<shiro:hasPermission name="sg:managementcenter:project:import">
 				<button id="btnImport" class="btn btn-info"><i class="fa fa-folder-open-o"></i> 导入</button>
 			</shiro:hasPermission>
-			<shiro:hasPermission name="sg:managementcenter:project:import">
+			<shiro:hasPermission name="sg:managementcenter:project:importPicking">
 				<button id="btnImportPicking" class="btn btn-info"><i class="fa fa-folder-open-o"></i> 导入领料单</button>
 			</shiro:hasPermission>
 			<shiro:hasPermission name="sg:managementcenter:project:export">