浏览代码

删除心跳,添加复选框

hfy 3 月之前
父节点
当前提交
004ea45fab

+ 36 - 12
src/main/java/com/jeesite/modules/mes/web/MesLineProcessUserController.java

@@ -1,15 +1,11 @@
 package com.jeesite.modules.mes.web;
 
-import com.jeesite.common.collect.ListUtils;
 import com.jeesite.common.config.Global;
 import com.jeesite.common.entity.Page;
+import com.jeesite.common.lang.StringUtils;
 import com.jeesite.common.web.BaseController;
 import com.jeesite.modules.mes.entity.MesLineProcess;
-import com.jeesite.modules.mes.entity.MesLineProcessMaterial;
 import com.jeesite.modules.mes.entity.MesLineProcessUser;
-import com.jeesite.modules.mes.resp.BindMaterialResp;
-import com.jeesite.modules.mes.resp.CommonResp;
-import com.jeesite.modules.mes.service.MesLineProcessMaterialService;
 import com.jeesite.modules.mes.service.MesLineProcessService;
 import com.jeesite.modules.mes.service.MesLineProcessUserService;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
@@ -24,7 +20,8 @@ import org.springframework.web.bind.annotation.ResponseBody;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import java.util.List;
+import java.util.LinkedHashSet;
+import java.util.Set;
 
 /**
  * 生产工序物料表Controller
@@ -95,13 +92,40 @@ public class MesLineProcessUserController extends BaseController {
 	@ResponseBody
 	public String save(@Validated MesLineProcessUser mesLineProcessUser) {
 		if(mesLineProcessUser.getIsNewRecord()){
-			MesLineProcessUser mesLineProcessUser1 = new MesLineProcessUser();
-			mesLineProcessUser1.setLineProcessId(mesLineProcessUser.getLineProcessId());
-			mesLineProcessUser1.setUserCode(mesLineProcessUser.getUserCode());
-			Long mr = mesLineProcessUserService.findCount(mesLineProcessUser1);
-			if(mr >0){
+			Set<String> userCodeSet = new LinkedHashSet<>();
+			String[] userCodes = StringUtils.split(StringUtils.trim(mesLineProcessUser.getUserCode()), ",");
+			if (userCodes != null) {
+				for (String userCode : userCodes) {
+					if (StringUtils.isNotBlank(userCode)) {
+						userCodeSet.add(StringUtils.trim(userCode));
+					}
+				}
+			}
+			if (userCodeSet.isEmpty()) {
+				return renderResult(Global.FALSE, text("请选择人员!"));
+			}
+
+			int saveCount = 0;
+			for (String userCode : userCodeSet) {
+				MesLineProcessUser exists = new MesLineProcessUser();
+				exists.setLineProcessId(mesLineProcessUser.getLineProcessId());
+				exists.setUserCode(userCode);
+				Long mr = mesLineProcessUserService.findCount(exists);
+				if(mr > 0){
+					continue;
+				}
+				MesLineProcessUser saveUser = new MesLineProcessUser();
+				saveUser.setIsNewRecord(true);
+				saveUser.setLineProcessId(mesLineProcessUser.getLineProcessId());
+				saveUser.setUserCode(userCode);
+				saveUser.setAuth(mesLineProcessUser.getAuth());
+				mesLineProcessUserService.save(saveUser);
+				saveCount++;
+			}
+			if(saveCount == 0){
 				return renderResult(Global.FALSE, text("当前人员已添加!"));
 			}
+			return renderResult(Global.TRUE, text("保存成功!"));
 		}
 
 		mesLineProcessUserService.save(mesLineProcessUser);
@@ -119,4 +143,4 @@ public class MesLineProcessUserController extends BaseController {
 		return renderResult(Global.TRUE, text("删除成功!"));
 	}
 	
-}
+}

+ 35 - 0
src/main/java/com/jeesite/modules/scheduling/DeviceStateCleanup.java

@@ -0,0 +1,35 @@
+package com.jeesite.modules.scheduling;
+
+import com.jeesite.common.mybatis.mapper.query.QueryType;
+import com.jeesite.modules.mes.dao.MesDeviceStateDao;
+import com.jeesite.modules.mes.entity.MesDeviceState;
+import com.jeesite.modules.mes.util.CommonUitl;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.scheduling.annotation.Scheduled;
+
+import java.util.Date;
+
+@Configuration
+@EnableScheduling
+public class DeviceStateCleanup {
+
+    private static final int RETENTION_DAYS = 7;
+
+    private final Logger logger = LoggerFactory.getLogger(this.getClass());
+
+    @Autowired
+    private MesDeviceStateDao mesDeviceStateDao;
+
+    @Scheduled(cron = "0 10 2 * * ?")
+    public void cleanHistory() {
+        Date cutoffDate = CommonUitl.getPreviousDate(RETENTION_DAYS);
+        MesDeviceState mesDeviceState = new MesDeviceState();
+        mesDeviceState.getSqlMap().getWhere().and("start_date", QueryType.LT, cutoffDate).and("content",QueryType.EQ,"运行心跳");
+        mesDeviceStateDao.deleteByEntity(mesDeviceState);
+        logger.info("Cleaned mes_device_state records before {}", cutoffDate);
+    }
+}

+ 12 - 5
src/main/resources/views/modules/mes/mesLineProcessUserForm.html

@@ -21,10 +21,17 @@
 							<label class="control-label col-sm-4" title="">
 								<span class="required ">*</span> ${text('人员')}:<i class="fa icon-question hide"></i></label>
 							<div class="col-sm-8">
-								<#form:treeselect id="userCode" title="${text('用户选择')}"
-								path="userCode" labelPath="userName"
-								url="${ctx}/sys/office/treeData?isLoadUser=true"
-								class=" required" allowClear="true"/>
+								<% if (mesLineProcessUser.isNewRecord){ %>
+									<#form:treeselect id="userCode" title="${text('用户选择')}"
+									path="userCode" labelPath="userName"
+									url="${ctx}/sys/office/treeData?isLoadUser=true"
+									class=" required" allowClear="true" checkbox="true"/>
+								<% } else { %>
+									<#form:treeselect id="userCode" title="${text('用户选择')}"
+									path="userCode" labelPath="userName"
+									url="${ctx}/sys/office/treeData?isLoadUser=true"
+									class=" required" allowClear="true"/>
+								<% } %>
 							</div>
 						</div>
 					</div>
@@ -66,4 +73,4 @@ $("#inputForm").validate({
 		}, "json");
     }
 });
-</script>
+</script>