Browse Source

【万利达MES】【SN问题收集】【功能优化】【新增收集附件上传,点击确认并且保存】

wuyx 6 years ago
parent
commit
1e6585dd74

+ 2 - 2
src/com/uas/mes/api/pda/PdaSNProblemCollController.java

@@ -24,11 +24,11 @@ public class PdaSNProblemCollController extends BaseApiController{
 	private PdaSNProblemCollService pdaSNProblemCollService;
 	
 	@RequestMapping(value = "/getSNData.action", method = RequestMethod.POST)
-	public ModelMap getSNData(String SN, String remark){
+	public ModelMap getSNData(String SN, String remark,String id){
 		if (SN==null || SN.equals("") || remark==null || remark.equals("")) {
 			throw new APIErrorException(APIErrorCode.ILLEGAL_ARGUMENTS, "请传递必要的参数");
 		}
-		pdaSNProblemCollService.getSNData(SN, remark);
+		pdaSNProblemCollService.getSNData(SN, remark,id);
 		return success();
 	}
 }

+ 93 - 0
src/com/uas/mes/mobile/controller/common/AddrBookController.java

@@ -0,0 +1,93 @@
+package com.uas.mes.mobile.controller.common;
+
+import com.uas.mes.common.entity.Employee;
+import com.uas.mes.common.service.FilePathService;
+import com.uas.mes.common.util.BaseUtil;
+import com.uas.mes.core.data.SpObserver;
+import com.uas.mes.core.util.PathUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+import org.springframework.web.multipart.commons.CommonsMultipartResolver;
+
+import javax.servlet.http.HttpServletRequest;
+import java.io.*;
+import java.util.*;
+
+@Controller("addrBookController")
+public class AddrBookController {
+	@Autowired
+	private FilePathService filePathService;
+	/**
+	 * 多附件上传
+	 * 
+	 * @throws IOException
+	 * @throws IllegalStateException
+	 */
+	@RequestMapping("/mobile/uploadAttachs.action")
+	@ResponseBody
+	public Map<String, Object> uploadAttachs(HttpServletRequest request,
+			String master) throws IllegalStateException, IOException {
+		Employee employee = (Employee) request.getSession().getAttribute(
+				"employee");
+		if (employee == null)
+			BaseUtil.showError("会话已断开!");
+		SpObserver.putSp(master);
+		Map<String, Object> modelMap = new HashMap<String, Object>();
+		List<Integer> idArr = new ArrayList<Integer>();
+		CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(
+				request.getSession().getServletContext());
+		// 判断 request 是否有文件上传,即多部分请求
+		if (multipartResolver.isMultipart(request)) {
+			// 转换成多部分request
+			MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
+			// 取得request中的所有文件名
+			Iterator<String> iter = multiRequest.getFileNames();
+			while (iter.hasNext()) {
+				// 取得上传文件
+				MultipartFile file = multiRequest.getFile(iter.next());
+				if (file != null) {
+					// 取得当前上传文件的文件名称
+					String myFileName = file.getOriginalFilename();
+					long size = file.getSize();
+					// 如果名称不为"",说明该文件存在,否则说明该文件不存在
+					if (myFileName.trim() != "") {
+						// 定义上传路径
+						String path = getFilePath(myFileName,
+								employee.getEm_code());
+						File localFile = new File(path);
+						file.transferTo(localFile);
+						int id = filePathService.saveFilePath(path, (int) size,
+								myFileName, employee);
+						idArr.add(id);
+					}
+				}
+			}
+		}
+		modelMap.put("id", idArr.toString());
+		modelMap.put("success", true);
+		return modelMap;
+	}
+	private String getFilePath(String fileName, String em_code) {
+		String uuid = UUID.randomUUID().toString().replaceAll("\\-", "");
+		String suffix = fileName.indexOf(".") != -1 ? fileName.substring(
+				fileName.lastIndexOf("."), fileName.length()) : "";
+		String path = PathUtil.getFilePath() + "postattach";
+		File file = new File(path);
+		if (!file.isDirectory()) {
+			file.mkdir();
+			path = path + File.separator + em_code;
+			new File(path).mkdir();
+		} else {
+			path = path + File.separator + em_code;
+			file = new File(path);
+			if (!file.isDirectory()) {
+				file.mkdir();
+			}
+		}
+		return path + File.separator + uuid + suffix;
+	}
+}

+ 1 - 1
src/com/uas/mes/pda/service/PdaSNProblemCollService.java

@@ -4,5 +4,5 @@ import java.util.Map;
 
 public interface PdaSNProblemCollService {
 
-	public void getSNData(String SN,String remark);
+	public void getSNData(String SN,String remark,String id);
 }

+ 5 - 1
src/com/uas/mes/pda/service/impl/PdaSMTServiceImpl.java

@@ -450,7 +450,11 @@ public class PdaSMTServiceImpl implements PdaSMTService {
 		List<String> sqls = new ArrayList<String>();
 			//dsl_usable=2的直接更新bar_place为1,remain为0
 		sqls.add("update barcode set bar_place=1,bar_forcastremain=0,bar_remain=0 where exists (select 1 from devsmtlocation where dsl_linecode='"+dl_linecode+"' and dsl_makecode='"+dl_macode+"' and dsl_table='"+dl_table+"' and nvl(dsl_usable,0) = 2 and dsl_barcode = bar_code)");
-		rs = baseDao.queryForRowSet("select dsl_location,cn,dsl_remainqty,dsl_id,dsl_barcode,dsl_baseqty,case when "+actAddQty+">0 then round(dsl_baseqty*(1+0.01*"+lossrate+")*(1/"+pcbacount+")*"+actAddQty+",4) else 0 end remainAddQty from (select dsl_location,count(1)cn,sum(dsl_remainqty)dsl_remainqty,max(dsl_id)dsl_id,max(dsl_barcode)dsl_barcode,max(dsl_baseqty)dsl_baseqty from devsmtlocation where dsl_linecode=? and dsl_makecode=? and dsl_table=? and dsl_status=0 and dsl_usable<>2 group by dsl_location)",dl_linecode,dl_macode,dl_table);
+		rs = baseDao.queryForRowSet("select dsl_location,cn,dsl_remainqty,dsl_id,dsl_barcode,dsl_baseqty,case when "+actAddQty+">0 then round(dsl_baseqty*(1+0.01*"+lossrate+")*(1/"+pcbacount+")*"+actAddQty+",4) else 0 end remainAddQty " +
+				"from (select dsl_location,count(1)cn,sum(dsl_remainqty)dsl_remainqty,max(dsl_id)dsl_id,max(dsl_barcode)dsl_barcode," +
+				"max(dsl_baseqty)dsl_baseqty " +
+				"from devsmtlocation " +
+				"where dsl_linecode=? and dsl_makecode=? and dsl_table=? and dsl_status=0 and dsl_usable<>2 group by dsl_location)",dl_linecode,dl_macode,dl_table);
 		if(rs.hasNext()){
 			double remainAddQty,dsl_remainqty;
 			String dsl_location; 

+ 8 - 3
src/com/uas/mes/pda/service/impl/PdaSNProblemCollServiceImpl.java

@@ -2,6 +2,7 @@ package com.uas.mes.pda.service.impl;
 
 import com.uas.mes.common.data.BaseDao;
 import com.uas.mes.common.support.SystemSession;
+import com.uas.mes.core.util.StringUtil;
 import com.uas.mes.pda.service.PdaSNProblemCollService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -13,10 +14,14 @@ public class PdaSNProblemCollServiceImpl implements PdaSNProblemCollService {
 	private BaseDao baseDao;
 
 	@Override
-	public void getSNData(String SN, String remark) {
+	public void getSNData(String SN, String remark,String id) {
 		int spc_id =baseDao.getSeqId("SNProblemColl_SEQ");
-		String sql="insert into SNProblemColl (spc_id,spc_sncode,spc_remark,spc_recordid,spc_recordman,spc_recorddate)values("+
-				spc_id+",?,?,"+SystemSession.getUser().getEm_id()+",'"+SystemSession.getUser().getEm_name()+"',sysdate)";
+		String spc_attach = "";
+		if(StringUtil.hasText(id)&&!id.toUpperCase().equals("NULL")&&id.length()>1){
+			spc_attach = id.substring(1,id.length()-1)+";";
+		}
+		String sql="insert into SNProblemColl (spc_id,spc_sncode,spc_remark,spc_recordid,spc_recordman,spc_recorddate,spc_attach)values("+
+				spc_id+",?,?,"+SystemSession.getUser().getEm_id()+",'"+SystemSession.getUser().getEm_name()+"',sysdate,'"+spc_attach+"')";
 		baseDao.execute(sql,SN,remark);
 	}
 }