|
@@ -1,12 +1,33 @@
|
|
|
package com.rongwei.bscommon.sys.service.impl;
|
|
|
|
|
|
|
|
|
+import cn.hutool.core.bean.BeanUtil;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.rongwei.bscommon.sys.dao.ApsCraftRouteDao;
|
|
|
+import com.rongwei.bscommon.sys.service.ApsCraftRouteOutMaterRequestService;
|
|
|
import com.rongwei.bscommon.sys.service.ApsCraftRouteService;
|
|
|
+import com.rongwei.bscommon.sys.service.ApsCraftRouteStepEquService;
|
|
|
+import com.rongwei.bscommon.sys.service.ApsCraftRouteStepService;
|
|
|
import com.rongwei.bsentity.domain.ApsCraftRouteDo;
|
|
|
+import com.rongwei.bsentity.domain.ApsCraftRouteOutMaterRequestDo;
|
|
|
+import com.rongwei.bsentity.domain.ApsCraftRouteStepDo;
|
|
|
+import com.rongwei.bsentity.domain.ApsCraftRouteStepEquDo;
|
|
|
+import com.rongwei.bsentity.vo.PreviousProcessVo;
|
|
|
+import com.rongwei.commonservice.serial.service.impl.SysSerialNumberServiceImpl;
|
|
|
+import com.rongwei.commonservice.service.SysMindMappingService;
|
|
|
+import com.rongwei.rwcommon.base.R;
|
|
|
+import com.rongwei.rwcommon.utils.SecurityUtil;
|
|
|
+import com.rongwei.rwcommon.utils.StringUtils;
|
|
|
+import com.rongwei.rwcommonentity.commonservers.domain.SysMindMappingDo;
|
|
|
+import com.rongwei.rwcommonentity.commonservers.vo.SysSerialVo;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
|
+import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
/**
|
|
|
*
|
|
|
*/
|
|
@@ -14,6 +35,107 @@ import org.springframework.stereotype.Service;
|
|
|
public class ApsCraftRouteServiceImpl extends ServiceImpl<ApsCraftRouteDao, ApsCraftRouteDo>
|
|
|
implements ApsCraftRouteService {
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private ApsCraftRouteService apsCraftRouteService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ApsCraftRouteStepService apsCraftRouteStepService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ApsCraftRouteOutMaterRequestService apsCraftRouteOutMaterRequestService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ApsCraftRouteStepEquService apsCraftRouteStepEquService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ SysMindMappingService sysMindMappingService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private SysSerialNumberServiceImpl sysSerialNumberService;
|
|
|
+
|
|
|
+ /*
|
|
|
+ 复制工艺路线
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public R copyCraftRoute(Map<String, Object> params) {
|
|
|
+ String craftrouteid = params.get("CRAFTROUTEID").toString();
|
|
|
+ String newRouteId = SecurityUtil.getUUID();
|
|
|
+ DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
|
|
|
+ LocalDateTime now = LocalDateTime.now();
|
|
|
+ //流水号
|
|
|
+ SysSerialVo sysSerialVo = new SysSerialVo();
|
|
|
+ sysSerialVo.setRuleTemplateStr("GL@{date:yyyyMMdd}@{serialNumber:#0000}");
|
|
|
+ sysSerialVo.setModulecode("aps_craft_route_ROUTENUM");
|
|
|
+ sysSerialVo.setResetrule("date:yyyyMMdd");
|
|
|
+ sysSerialVo.setIfautomaticreset("y");
|
|
|
+
|
|
|
+ //原工艺路线-->新工艺路线
|
|
|
+ ApsCraftRouteDo newCraftRouteDo = apsCraftRouteService.getById(craftrouteid);
|
|
|
+ newCraftRouteDo.setId(newRouteId);
|
|
|
+ newCraftRouteDo.setRoutename(newCraftRouteDo.getRoutename() + "-" + now.format(dateTimeFormatter));
|
|
|
+ newCraftRouteDo.setRoutenum(sysSerialNumberService.getCodeByTemplate(sysSerialVo));
|
|
|
+
|
|
|
+ //工艺路线对应的步骤信息
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
+ map.put("CRAFTROUTEID", craftrouteid);
|
|
|
+ List<ApsCraftRouteStepDo> apsCraftRouteStepDoList = apsCraftRouteStepService.listByMap(map).stream().collect(Collectors.toList());
|
|
|
+ Collections.sort(apsCraftRouteStepDoList, Comparator.comparingInt(ApsCraftRouteStepDo::getLevel));
|
|
|
+ Collections.sort(apsCraftRouteStepDoList, Comparator.comparing(ApsCraftRouteStepDo::getCreatedate));
|
|
|
+
|
|
|
+ //工艺路线对应的输出
|
|
|
+ List<ApsCraftRouteOutMaterRequestDo> apsCraftRouteOutMaterRequestDoList = apsCraftRouteOutMaterRequestService.listByMap(map).stream().collect(Collectors.toList());
|
|
|
+
|
|
|
+ //工艺路线对应的可选设备
|
|
|
+ List<ApsCraftRouteStepEquDo> apsCraftRouteStepEquDoList = apsCraftRouteStepEquService.listByMap(map).stream().collect(Collectors.toList());
|
|
|
+
|
|
|
+ //工艺路线对应的思维导图
|
|
|
+ List<SysMindMappingDo> sysMindMappingDos = new ArrayList<>();
|
|
|
+ Map<String, Object> mindMap = new HashMap<>();
|
|
|
+ mindMap.put("BSID", craftrouteid);
|
|
|
+ List<SysMindMappingDo> sysMindMappingDoList = sysMindMappingService.listByMap(mindMap).stream().collect(Collectors.toList());
|
|
|
+ Collections.sort(sysMindMappingDoList, Comparator.comparing(SysMindMappingDo::getTreecode, Comparator.nullsFirst(Comparator.naturalOrder())));
|
|
|
+ Collections.sort(sysMindMappingDoList, Comparator.comparing(SysMindMappingDo::getCreatedate));
|
|
|
+ if (sysMindMappingDoList.size() == 0) {
|
|
|
+ return R.error("工艺路线图不存在");
|
|
|
+ }
|
|
|
+ SysMindMappingDo sysMindMappingDo = BeanUtil.toBean(sysMindMappingDoList.get(0), SysMindMappingDo.class);
|
|
|
+ String mindStrId = SecurityUtil.getUUID();
|
|
|
+ sysMindMappingDo.setId(mindStrId);
|
|
|
+ sysMindMappingDo.setBsid(newRouteId);
|
|
|
+ sysMindMappingDos.add(sysMindMappingDo);
|
|
|
+
|
|
|
+ List<String> overRouteStepIds = new ArrayList<>();
|
|
|
+ List<PreviousProcessVo> newProcessIds = new ArrayList<>();//前道步骤信息
|
|
|
+ List<ApsCraftRouteStepDo> apsCraftRouteStepDos = new ArrayList<>();//新的步骤
|
|
|
+ List<ApsCraftRouteOutMaterRequestDo> apsCraftRouteOutMaterRequestDos = new ArrayList<>();//新的输出
|
|
|
+ List<ApsCraftRouteStepEquDo> apsCraftRouteStepEquDos = new ArrayList<>();//新的可选设备
|
|
|
+ for (ApsCraftRouteStepDo apsCraftRouteStepDo : apsCraftRouteStepDoList) {
|
|
|
+ if (overRouteStepIds.contains(apsCraftRouteStepDo.getId())) {
|
|
|
+ continue;
|
|
|
+ } else {
|
|
|
+ String stepId;
|
|
|
+ ApsCraftRouteStepDo craftRouteStepDo = apsCraftRouteStepDo;
|
|
|
+ PreviousProcessVo previousProcessVo;
|
|
|
+ if (StringUtils.isNotBlank(apsCraftRouteStepDo.getPreviousstepid())) {
|
|
|
+ //后面步骤
|
|
|
+ } else {
|
|
|
+ //首道步骤
|
|
|
+ previousProcessVo = new PreviousProcessVo();
|
|
|
+ stepId = SecurityUtil.getUUID();
|
|
|
+ craftRouteStepDo.setId(stepId);
|
|
|
+ craftRouteStepDo.setCraftrouteid(newRouteId);
|
|
|
+
|
|
|
+ //本道步骤信息
|
|
|
+ previousProcessVo.setProcessId(stepId);//新步骤ID
|
|
|
+ previousProcessVo.setPreviousstepid(apsCraftRouteStepDo.getId());//原步骤ID
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+// boolean bool1=apsCraftRouteService.save(newCraftRouteDo);
|
|
|
+
|
|
|
+ return R.ok(newRouteId);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|