xs 5 jaren geleden
bovenliggende
commit
3d4d9e605b

+ 2 - 0
src/main/java/com/jeeplus/modules/sg/managementcenter/project/mapper/ProjectMapper.java

@@ -23,6 +23,8 @@ public interface ProjectMapper extends BaseMapper<Project> {
 
     void  updateStatusByClose(@Param("close") String close,@Param("procInsId") String procInsid);
 
+    void updateAcquisitionStatus(@Param("acquisitionStatus")String acquisitionStatus,@Param("id") String id);
+
     public List<Project> findListById(String[] proListId);
 
     int insertList(@Param("list") List<Project> list);

+ 3 - 84
src/main/java/com/jeeplus/modules/sg/managementcenter/project/mapper/xml/PickingRequisitionMapper.xml

@@ -10,35 +10,8 @@
 		a.update_date AS "updateDate",
 		a.remarks AS "remarks",
 		a.del_flag AS "delFlag",
-		a.lineItemNumber AS lineItemNumber,
 		a.requisition AS requisition,
-		a.userName AS userName,
-		a.fullName AS fullName,
-		a.itemDetail AS itemDetail,
-		a.theFactory AS theFactory,
-		a.reservedNumberr AS reservedNumberr,
-		a.reserveLineNumber AS reserveLineNumber,
-		a.projectDefinition AS projectDefinition,
-		a.wbsElement AS wbsElement,
-		a.materialCode AS materialCode,
-		a.materialDescription AS materialDescription,
-		a.measuringUnit AS measuringUnit,
-		a.quantityDemanded AS quantityDemanded,
-		a.quantityDelivered AS quantityDelivered,
-		a.changeData AS changeData,
-		a.requisitionCostCenter AS requisitionCostCenter,
-		a.factoryDescription AS factoryDescription,
-		a.projectDepartment AS projectDepartment,
-		a.batch AS batch,
-		a.planningDivision AS planningDivision,
-		a.theOrder AS theOrder,
-		a.wbsDescription AS wbsDescription,
-		a.purposeMark AS purposeMark,
-		a.specialStock AS specialStock,
-		a.appointmentDate AS appointmentDate,
-		a.purposeIdentification AS purposeIdentification,
-		a.returnId AS returnId,
-		a.returnMessage AS returnMessage
+		a.projectDefinition AS projectDefinition
 	</sql>
     
 	<select id="get" resultType="PickingRequisition" >
@@ -171,35 +144,8 @@
 		update_date,
 		remarks,
 		del_flag,
-		lineItemNumber,
 		requisition,
-		userName,
-		fullName,
-		itemDetail,
-		theFactory,
-		reservedNumberr,
-		reserveLineNumber,
-		projectDefinition,
-		wbsElement,
-		materialCode,
-		materialDescription,
-		measuringUnit,
-		quantityDemanded,
-		quantityDelivered,
-		changeData,
-		requisitionCostCenter,
-		factoryDescription,
-		projectDepartment,
-		batch,
-		planningDivision,
-		theOrder,
-		wbsDescription,
-		purposeMark,
-		specialStock,
-		appointmentDate,
-		purposeIdentification,
-		returnId,
-		returnMessage
+		projectDefinition
 		) VALUES
 		<foreach collection="list" item="item" index="index" separator="," >
 			(
@@ -210,35 +156,8 @@
 			#{item.updateDate},
 			#{item.remarks},
 			#{item.delFlag},
-			#{item.lineItemNumber},
 			#{item.requisition},
-			#{item.userName},
-			#{item.fullName},
-			#{item.itemDetail},
-			#{item.theFactory},
-			#{item.reservedNumberr},
-			#{item.reserveLineNumber},
-			#{item.projectDefinition},
-			#{item.wbsElement},
-			#{item.materialCode},
-			#{item.materialDescription},
-			#{item.measuringUnit},
-			#{item.quantityDemanded},
-			#{item.quantityDelivered},
-			#{item.changeData},
-			#{item.requisitionCostCenter},
-			#{item.factoryDescription},
-			#{item.projectDepartment},
-			#{item.batch},
-			#{item.planningDivision},
-			#{item.theOrder},
-			#{item.wbsDescription},
-			#{item.purposeMark},
-			#{item.specialStock},
-			#{item.appointmentDate},
-			#{item.purposeIdentification},
-			#{item.returnId},
-			#{item.returnMessage}
+			#{item.projectDefinition}
 		)
 		</foreach>
 	</insert>

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

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

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

@@ -306,4 +306,8 @@ public class ProjectService extends CrudService<ProjectMapper, Project> {
 	public List<Project> findListProjectPicking(List<PickingRequisition> pickingRequisitions){
 		return projectMapper.findListProjectRequisitions(pickingRequisitions);
 	}
+	//修改领料状态
+	public void getUpdateAcquisitionStatus(String acquisitionStatus,String id){
+		projectMapper.updateAcquisitionStatus(acquisitionStatus,id);
+	}
 }

+ 74 - 14
src/main/java/com/jeeplus/modules/sg/managementcenter/project/util/PickingInfo.java

@@ -14,10 +14,7 @@ import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.ss.usermodel.Row;
 
 import javax.servlet.ServletContext;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.UUID;
+import java.util.*;
 
 public  class PickingInfo {
     public final static String[] ALL_USER_ID={"项目经理","配网工程专职","配网政策处理专职","配网物资专职","项目管理中心领导","配网系统专职","配网运行人员","经研所","施工单位A","施工单位B","设计单位A","设计单位B"};
@@ -100,15 +97,19 @@ public  class PickingInfo {
         ArrayList<PickingRequisition> pickingDuplicates = new ArrayList<PickingRequisition>();
         boolean flag = true;//去重开关:判断是否存在重复
         PickingRequisition requisition = null;
+        String requisitionPicking = null;
         for (PickingRequisition pickingRequisition:pickingRequisitions){
             flag = true;
             for (PickingRequisition pickingDuplicate:pickingDuplicates){
                 if (pickingRequisition.getProjectDefinition().equals(pickingDuplicate.getProjectDefinition())) {
+                    requisitionPicking = pickingDuplicate.getRequisition()+","+pickingRequisition.getRequisition();
+                    pickingDuplicate.setRequisition(requisitionPicking);
                     flag = false;
                 }
             }
             if (flag){
                 requisition = new PickingRequisition();
+                requisition.setRequisition(pickingRequisition.getRequisition());
                 requisition.setProjectDefinition(pickingRequisition.getProjectDefinition());
                 pickingDuplicates.add(requisition);
             }
@@ -123,27 +124,86 @@ public  class PickingInfo {
      * @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 = "";//项目定义号
-        for (int i = 0; i < arrayList.size(); i++) {
-            projectDefinition = arrayList.get(i).getProjectDefinition();
-            for (PickingRequisition pickingRequisition:pickingRequisitions){
-                if (projectDefinition.equals(pickingRequisition.getProjectDefinition())){
-                    arrayList.remove(i);
-                    i--;
-                    break;
+        String requisition = "";//领料单号
+        String requisitionPicking = "";//表格中领料单号
+        boolean flag = false;
+        boolean flag1 = false;
+        for (PickingRequisition pickingRequisition:arrayList){
+            flag = false;
+            flag1 = false;
+            requisitionPicking = pickingRequisition.getRequisition();//领料单号
+            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;
+                            }
+                        }
+                    }
+                    flag = true;
+                }
+            }
+            if (flag){
+                if (!flag1){
+                    requisition=requisition+","+requisitionPicking;
+                    pickingRequisition.setRequisition(requisition);
                 }
             }
+            String strings = oneClear(pickingRequisition.getRequisition());//领料单号去重
+            if (!"".equals(strings)){
+                pickingRequisition.setRequisition(strings);
+            }
         }
         return arrayList;
     }
 
+    public static String oneClear(String requisitionPicking){
+        if (requisitionPicking.length()>0){
+            String string = "";
+            String[] split = requisitionPicking.split(",");
+            Set<String> set = new HashSet<String>();
+            for(int i=0;i<split.length;i++) {
+                set.add(split[i]);
+            }
+            for (String str :set){
+                string+=str+",";
+            }
+            if (!"".equals(string)){
+                string = string.substring(0,string.length()-1);
+                return string;
+            }
+
+        }
+        return "";
+    }
+    /*
+        领料单号
+     */
+    public static  List<PickingRequisition> getChangePicking(List<PickingRequisition> pickingRequisitions){
+        List<PickingRequisition> pickingRequisitionList = getJudgePicking(pickingRequisitions);//获取是否领料状态
+        List<PickingRequisition> pickingRequisitionList1 = new ArrayList<PickingRequisition>();
+        Integer status = 0;
+        for (PickingRequisition pickingRequisition:pickingRequisitionList){
+            status = pickingRequisition.getStatus();//获取是否允许领料状态
+            if (status<=0){//如果状态大于0.说明 一致。
+                pickingRequisitionList1.add(pickingRequisition);
+            }
+        }
+        return pickingRequisitionList1;
+    }
+
+
     /*
         返回单独项目定义号的  领料状态
      */

+ 12 - 2
src/main/java/com/jeeplus/modules/sg/managementcenter/project/web/ProjectController.java

@@ -381,7 +381,7 @@ public class ProjectController extends BaseController {
 		领料单
 	 */
 	@ResponseBody
-	@RequiresPermissions("sg:managementcenter:project:import")
+	@RequiresPermissions("sg:managementcenter:project:importPicking")
 	@RequestMapping(value = "importPicking")
 	public AjaxJson importFileRequisition(@RequestParam("file")MultipartFile file, HttpServletResponse response, HttpServletRequest request){
 		AjaxJson j = new AjaxJson();
@@ -400,10 +400,20 @@ public class ProjectController extends BaseController {
 				return j;
 			}
 			List<PickingRequisition> pickingRequisitions = pickingRequisitionService.pickingRequisitions(duplicateRemoval);//得到数据库中数据
-			List<PickingRequisition> sureSavePicking = PickingInfo.getSureSavePicking(pickingRequisitions, listPickRequisition);//参数1:得到数据库集合 参数2:读取表格list
+			List<PickingRequisition> sureSavePicking = PickingInfo.getSureSavePicking(pickingRequisitions, duplicateRemoval);//参数1:得到数据库集合 参数2:读取表格list
 			if (null!=sureSavePicking&&sureSavePicking.size()>0){
 				pickingRequisitionService.saveList(sureSavePicking);
 			}
+			/**
+			 * 一致的,修改领料状态
+			 */
+			List<PickingRequisition> changePicking = PickingInfo.getChangePicking(listPickRequisition);
+			if (null!=changePicking&&changePicking.size()>0){
+				List<Project> listProjectPicking1 = projectService.findListProjectPicking(changePicking);
+				for (Project project:listProjectPicking1){
+					projectService.getUpdateAcquisitionStatus("2",project.getId());
+				}
+			}
 			/*
 				发送通知方法集合
 			 */