|
|
@@ -9,7 +9,6 @@ import com.jeesite.common.entity.Page;
|
|
|
import com.jeesite.common.lang.DateUtils;
|
|
|
import com.jeesite.common.lang.ObjectUtils;
|
|
|
import com.jeesite.common.lang.StringUtils;
|
|
|
-import com.jeesite.common.mybatis.mapper.query.QueryType;
|
|
|
import com.jeesite.common.service.ServiceException;
|
|
|
import com.jeesite.common.utils.excel.ExcelExport;
|
|
|
import com.jeesite.common.utils.excel.ExcelImport;
|
|
|
@@ -65,12 +64,6 @@ public class MesDevicePreventTaskController extends BaseController {
|
|
|
private MesDeviceService mesDeviceService;
|
|
|
@Resource
|
|
|
private MesDevicePreventService mesDevicePreventService;
|
|
|
- @Autowired
|
|
|
- private MesSkillService mesSkillService;
|
|
|
- @Autowired
|
|
|
- private MesLineProcessService mesLineProcessService;
|
|
|
- @Autowired
|
|
|
- private MesLineService mesLineService;
|
|
|
/**
|
|
|
* 获取数据
|
|
|
*/
|
|
|
@@ -125,55 +118,78 @@ public class MesDevicePreventTaskController extends BaseController {
|
|
|
|
|
|
/**
|
|
|
* 保存数据
|
|
|
+ * 新增时执行人员支持多选:按逗号拆分,为每人生成一条计划
|
|
|
+ * 说明:维护性任务由管理员指派,不校验产线工位操作权限/技能(与上岗扫码场景不同)
|
|
|
*/
|
|
|
@RequiresPermissions("mes:mesDevicePreventTask:edit")
|
|
|
@PostMapping(value = "save")
|
|
|
@ResponseBody
|
|
|
+ @Transactional
|
|
|
public String save(@Validated MesDevicePreventTask mesDevicePreventTask) {
|
|
|
- String userCode = mesDevicePreventTask.getUserCode();
|
|
|
- //1.根据设备查出产线编号
|
|
|
MesDevice mesDevice = new MesDevice();
|
|
|
mesDevice.setTreeCode(mesDevicePreventTask.getDeviceId());
|
|
|
MesDevice mesDevice1 = mesDeviceService.getByEntity(mesDevice);
|
|
|
- String gw = mesDevice1.getGw();
|
|
|
- String lineSn = mesDevice1.getLineSn();
|
|
|
- //判断执行人员是否有操作该工位的权限
|
|
|
- MesLineProcessUser mesLineProcessUser = new MesLineProcessUser();
|
|
|
- User user = new User();
|
|
|
- user.setUserCode(userCode);
|
|
|
- mesLineProcessUser.setUserCode(user.getUserCode());
|
|
|
- String type = "0";
|
|
|
- if (type.equals("1")) { // 质量
|
|
|
- String[] ids = new String[]{"1", "2"};
|
|
|
- mesLineProcessUser.getSqlMap().getWhere().and("auth", QueryType.IN, ids);
|
|
|
- } else { // 生产
|
|
|
- String[] ids = new String[]{"0", "2"};
|
|
|
- mesLineProcessUser.getSqlMap().getWhere().and("auth", QueryType.IN, ids);
|
|
|
+ if (ObjectUtils.isEmpty(mesDevice1)) {
|
|
|
+ return renderResult(Global.FALSE, text("保存失败,设备不存在!"));
|
|
|
}
|
|
|
- List<MesLineProcessUser> list = mesLineProcessService.findSubListOrder(mesLineProcessUser);
|
|
|
|
|
|
- List<String> mlps = new ArrayList<>();
|
|
|
- for(MesLineProcessUser mesLineProcessUser1:list){
|
|
|
- mlps.add(mesLineProcessUser1.getLineProcessId());
|
|
|
+ // 新增:支持多选执行人,每人一条计划
|
|
|
+ if (mesDevicePreventTask.getIsNewRecord()) {
|
|
|
+ List<String> userCodes = parseUserCodes(mesDevicePreventTask.getUserCode());
|
|
|
+ if (userCodes.isEmpty()) {
|
|
|
+ return renderResult(Global.FALSE, text("请选择执行人员!"));
|
|
|
+ }
|
|
|
+ int saveCount = 0;
|
|
|
+ for (String userCode : userCodes) {
|
|
|
+ MesDevicePreventTask saveTask = new MesDevicePreventTask();
|
|
|
+ BeanUtil.copyProperties(mesDevicePreventTask, saveTask, "id", "isNewRecord");
|
|
|
+ saveTask.setIsNewRecord(true);
|
|
|
+ saveTask.setUserCode(userCode);
|
|
|
+ mesDevicePreventTaskService.save(saveTask);
|
|
|
+ saveCount++;
|
|
|
+ }
|
|
|
+ return renderResult(Global.TRUE, text("保存预防性维修计划成功!共" + saveCount + "条"));
|
|
|
}
|
|
|
|
|
|
- MesLineProcess mesLineProcess = new MesLineProcess();
|
|
|
- mesLineProcess.getSqlMap().getWhere().and("id", QueryType.IN,mlps);
|
|
|
- mesLineProcess.setOprno(gw);
|
|
|
- mesLineProcess.setLineSn(lineSn);
|
|
|
- MesLineProcess mesLineProcess1 = mesLineProcessService.findInfo(mesLineProcess);
|
|
|
- if(ObjectUtils.isEmpty(mesLineProcess1)){
|
|
|
- return renderResult(Global.FALSE, text("保存失败,该执行人员暂无操作该设备权限!"));
|
|
|
+ // 编辑:按单人保存
|
|
|
+ String userCode = StringUtils.trim(mesDevicePreventTask.getUserCode());
|
|
|
+ if (StringUtils.isBlank(userCode)) {
|
|
|
+ return renderResult(Global.FALSE, text("请选择执行人员!"));
|
|
|
}
|
|
|
-
|
|
|
- //工人技能检验
|
|
|
- if (!mesSkillService.checkUserSkill(lineSn, gw, userCode)) {
|
|
|
- return renderResult(Global.FALSE, text("保存失败,该执行人员具备该设备技能不足!"));
|
|
|
+ User user = UserUtils.get(userCode);
|
|
|
+ if (user == null || StringUtils.isBlank(user.getUserCode())) {
|
|
|
+ return renderResult(Global.FALSE, text("保存失败,执行人员不存在!"));
|
|
|
}
|
|
|
-
|
|
|
+ mesDevicePreventTask.setUserCode(user.getUserCode());
|
|
|
mesDevicePreventTaskService.save(mesDevicePreventTask);
|
|
|
return renderResult(Global.TRUE, text("保存预防性维修计划成功!"));
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 解析多选执行人(过滤机构节点,仅保留用户)
|
|
|
+ */
|
|
|
+ private List<String> parseUserCodes(String userCodeStr) {
|
|
|
+ List<String> result = new ArrayList<>();
|
|
|
+ String[] userCodes = StringUtils.split(StringUtils.trim(userCodeStr), ",");
|
|
|
+ if (userCodes == null) {
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+ for (String code : userCodes) {
|
|
|
+ String userCode = StringUtils.trim(code);
|
|
|
+ if (StringUtils.isBlank(userCode)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ User user = UserUtils.get(userCode);
|
|
|
+ if (user == null || StringUtils.isBlank(user.getUserCode())) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ String realCode = user.getUserCode();
|
|
|
+ if (!result.contains(realCode)) {
|
|
|
+ result.add(realCode);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* 删除数据
|