|
@@ -92,6 +92,8 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
|
|
|
private ApsProcessOperationProcessEquDao apsProcessOperationProcessEquDao;
|
|
|
@Autowired
|
|
|
private ApsProcessOperationProcessEquBackupDao apsProcessOperationProcessEquBackupDao;
|
|
|
+ @Autowired
|
|
|
+ private ApsScheduleConfigService apsScheduleConfigService;
|
|
|
|
|
|
|
|
|
private final static Map<String, String> UNIT_MAP = new HashMap<String, String>() {{
|
|
@@ -108,7 +110,7 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
|
|
|
* @param ids
|
|
|
* @param batchNumn
|
|
|
*/
|
|
|
- public void updateBachmaterialprocessByIds(List<String> ids, String batchNumn,int unqualifiedQuantity) {
|
|
|
+ public void updateBachmaterialprocessByIds(List<String> ids, String batchNumn, int unqualifiedQuantity) {
|
|
|
apsProcessOperationDao.updateBachmaterialprocessByIds(ids, batchNumn, unqualifiedQuantity);
|
|
|
}
|
|
|
|
|
@@ -146,6 +148,10 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
|
|
|
JSONObject blanckdata = new JSONObject(params.get("BLANKDATA"));
|
|
|
String craftrouteid = params.get("CRAFTROUTEID").toString();
|
|
|
|
|
|
+ // 获取排程参数设置
|
|
|
+ List<ApsScheduleConfigDo> apsConfigs = apsScheduleConfigService.list();
|
|
|
+ BigDecimal aluminumdensity = apsConfigs.get(0).getAluminumdensity();
|
|
|
+
|
|
|
//先清空之前的相关数据
|
|
|
Map<String, Object> blanckMap = new HashMap<>();
|
|
|
blanckMap.put("BLANKID", blanckdata.getStr("ID"));
|
|
@@ -235,6 +241,10 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
|
|
|
//输入物料ID对应前道工序作业输出物料只有一个后道工序作业),则不可编辑,自动计算=计划输入卷数
|
|
|
if (apsCraftRouteStepDoList1.size() == 1) {
|
|
|
apsProcessOperationDo.setPlanprocessrall(processVo.get(0).getPlanprocessrall());
|
|
|
+ if (!apsProcessOperationDo.getProcessway().equals("合并加工")) {
|
|
|
+ //计划作业时长
|
|
|
+ apsProcessOperationDo.setProcesstotaltime(getProcesstotaltime(apsProcessOperationDo, aluminumdensity));
|
|
|
+ }
|
|
|
} else {
|
|
|
apsProcessOperationDo.setPlanprocessrall(0);
|
|
|
}
|
|
@@ -383,6 +393,11 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
|
|
|
apsProcessOperationDo.setBlankid(blanckdata.getStr("ID"));
|
|
|
apsProcessOperationDo.setCraftstepid(apsCraftRouteStepDo.getId());
|
|
|
|
|
|
+ if (!apsProcessOperationDo.getProcessway().equals("合并加工")) {
|
|
|
+ //计划作业时长
|
|
|
+ apsProcessOperationDo.setProcesstotaltime(getProcesstotaltime(apsProcessOperationDo, aluminumdensity));
|
|
|
+ }
|
|
|
+
|
|
|
//本道工序信息
|
|
|
previousProcessVo.setProcessId(processId);
|
|
|
previousProcessVo.setProcessName(apsProcessOperationDo.getProcessname());
|
|
@@ -670,6 +685,9 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
|
|
|
public List<ApsProcessOperationOutMaterDo> resetProcessOperation(List<ApsProcessOperationOutMaterDo> apsProcessOperationOutMaterDoList) {
|
|
|
List<ApsProcessOperationOutMaterDo> operationOutMaterDos = new ArrayList<>();//递归的数据源
|
|
|
try {
|
|
|
+ // 获取排程参数设置
|
|
|
+ List<ApsScheduleConfigDo> apsConfigs = apsScheduleConfigService.list();
|
|
|
+ BigDecimal aluminumdensity = apsConfigs.get(0).getAluminumdensity();
|
|
|
// List<ApsProcessOperationDo> processOperationDos = apsProcessOperationDao.getProcessOperation(apsProcessOperationOutMaterDoList.get(0).getBlankid());
|
|
|
//该坯料计划所有的工序及输出
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
@@ -698,6 +716,10 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
|
|
|
//输入物料ID对应前道工序作业输出物料只有一个后道工序作业),则不可编辑,自动计算=计划输入卷数
|
|
|
if (apsProcessOperationDos.size() == 1) {
|
|
|
apsProcessOperationDo.setPlanprocessrall(planinrall);
|
|
|
+ if (!apsProcessOperationDo.getProcessway().equals("合并加工")) {
|
|
|
+ //计划作业时长
|
|
|
+ apsProcessOperationDo.setProcesstotaltime(getProcesstotaltime(apsProcessOperationDo, aluminumdensity));
|
|
|
+ }
|
|
|
// ApsProcessOperationDo operationDo = processOperationDos.stream().filter(item -> item.getId().equals(apsProcessOperationDo.getPreviousprocessid())).findFirst().get();
|
|
|
// apsProcessOperationDo.setPlanprocessrall(operationDo.getPlanprocessrall());
|
|
|
}
|
|
@@ -853,6 +875,7 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
|
|
|
|
|
|
/**
|
|
|
* 工序作业备份
|
|
|
+ *
|
|
|
* @return
|
|
|
*/
|
|
|
@Override
|
|
@@ -862,15 +885,15 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
|
|
|
ApsUtils.clearBackup(currentUser);
|
|
|
List<ApsProcessOperationDo> apsProcessOperationDos = apsProcessOperationDao.selectList(
|
|
|
new LambdaQueryWrapper<ApsProcessOperationDo>()
|
|
|
- .in(ApsProcessOperationDo::getProcessstatus, "20"));
|
|
|
+ .in(ApsProcessOperationDo::getProcessstatus, "20"));
|
|
|
// 再备份
|
|
|
List<String> collect = apsProcessOperationDos.stream().map(ApsProcessOperationDo::getId).collect(Collectors.toList());
|
|
|
apsProcessOperationBackupDao.processOperationBackup(collect,
|
|
|
- currentUser ==null?"":currentUser.getId(),
|
|
|
- currentUser ==null?"":currentUser.getName());
|
|
|
+ currentUser == null ? "" : currentUser.getId(),
|
|
|
+ currentUser == null ? "" : currentUser.getName());
|
|
|
apsProcessOperationProcessEquBackupDao.processOperationEquCopy(collect,
|
|
|
- currentUser ==null?"":currentUser.getId(),
|
|
|
- currentUser ==null?"":currentUser.getName());
|
|
|
+ currentUser == null ? "" : currentUser.getId(),
|
|
|
+ currentUser == null ? "" : currentUser.getName());
|
|
|
return R.ok();
|
|
|
}
|
|
|
|
|
@@ -883,10 +906,10 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
|
|
|
public R backupRestoreProcessOperation() {
|
|
|
log.debug("开始恢复工序作业备份信息");
|
|
|
SysUserVo currentUser = CXCommonUtils.getCurrentUser();
|
|
|
- String factoryId =null;
|
|
|
- if(currentUser!=null){
|
|
|
+ String factoryId = null;
|
|
|
+ if (currentUser != null) {
|
|
|
List<SysOrganizationVo> organizationDoList = currentUser.getOrganizationDoList();
|
|
|
- factoryId = organizationDoList.stream()
|
|
|
+ factoryId = organizationDoList.stream()
|
|
|
.filter(org -> MINUS_ONE.equals(org.getPid()))
|
|
|
.map(SysOrganizationDo::getId)
|
|
|
.distinct()
|
|
@@ -899,26 +922,26 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
|
|
|
}
|
|
|
List<ApsProcessOperationProcessEquBackupDo> apsProcessOperationProcessEquBackupDos = apsProcessOperationProcessEquBackupDao
|
|
|
.selectList(new LambdaQueryWrapper<ApsProcessOperationProcessEquBackupDo>()
|
|
|
- .eq(StringUtils.isNotBlank(factoryId),ApsProcessOperationProcessEquBackupDo::getTenantid, factoryId));
|
|
|
+ .eq(StringUtils.isNotBlank(factoryId), ApsProcessOperationProcessEquBackupDo::getTenantid, factoryId));
|
|
|
List<ApsProcessOperationBackupDo> apsProcessOperationBackupDos = apsProcessOperationBackupDao.selectList(new LambdaQueryWrapper<ApsProcessOperationBackupDo>()
|
|
|
- .eq(StringUtils.isNotBlank(factoryId),ApsProcessOperationBackupDo::getTenantid, factoryId));
|
|
|
+ .eq(StringUtils.isNotBlank(factoryId), ApsProcessOperationBackupDo::getTenantid, factoryId));
|
|
|
List<ApsProcessOperationDo> saveList = new ArrayList<>();
|
|
|
List<ApsProcessOperationProcessEquDo> equSaveList = new ArrayList<>();
|
|
|
- apsProcessOperationProcessEquBackupDos.forEach(data->{
|
|
|
- ApsProcessOperationProcessEquDo equDo= new ApsProcessOperationProcessEquDo();
|
|
|
- BeanUtils.copyProperties(data,equDo);
|
|
|
+ apsProcessOperationProcessEquBackupDos.forEach(data -> {
|
|
|
+ ApsProcessOperationProcessEquDo equDo = new ApsProcessOperationProcessEquDo();
|
|
|
+ BeanUtils.copyProperties(data, equDo);
|
|
|
equSaveList.add(equDo);
|
|
|
});
|
|
|
- apsProcessOperationBackupDos.forEach(data->{
|
|
|
- ApsProcessOperationDo operationDo= new ApsProcessOperationDo();
|
|
|
- BeanUtils.copyProperties(data,operationDo);
|
|
|
+ apsProcessOperationBackupDos.forEach(data -> {
|
|
|
+ ApsProcessOperationDo operationDo = new ApsProcessOperationDo();
|
|
|
+ BeanUtils.copyProperties(data, operationDo);
|
|
|
saveList.add(operationDo);
|
|
|
});
|
|
|
- if(!saveList.isEmpty()){
|
|
|
- apsProcessOperationService.saveOrUpdateBatch(saveList,100);
|
|
|
+ if (!saveList.isEmpty()) {
|
|
|
+ apsProcessOperationService.saveOrUpdateBatch(saveList, 100);
|
|
|
}
|
|
|
- if(!equSaveList.isEmpty()){
|
|
|
- apsProcessOperationProcessEquService.saveOrUpdateBatch(equSaveList,100);
|
|
|
+ if (!equSaveList.isEmpty()) {
|
|
|
+ apsProcessOperationProcessEquService.saveOrUpdateBatch(equSaveList, 100);
|
|
|
}
|
|
|
return R.ok();
|
|
|
}
|
|
@@ -1148,4 +1171,22 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
|
|
|
}
|
|
|
return String.join(",", equIds);
|
|
|
}
|
|
|
+
|
|
|
+ /*
|
|
|
+ 计划作业时长
|
|
|
+ */
|
|
|
+ private BigDecimal getProcesstotaltime(ApsProcessOperationDo apsProcessOperationDo, BigDecimal aluminumdensity) {
|
|
|
+ String processtotaltime = null;
|
|
|
+ if (apsProcessOperationDo.getTimeway().equals("10")) {
|
|
|
+ //如果计时方式=按设备运转速度计时,计划作业时长=计划加工卷数*输入单卷重/(输入物料宽度/1000*输入物料厚度/1000*设备运转速度/1000*铝的密度)
|
|
|
+ BigDecimal prowidth = apsProcessOperationDo.getProwidth() == null ? BigDecimal.valueOf(1) : apsProcessOperationDo.getProwidth();
|
|
|
+ BigDecimal thickness = apsProcessOperationDo.getThickness() == null ? BigDecimal.valueOf(1) : apsProcessOperationDo.getThickness();
|
|
|
+ BigDecimal workspeed = apsProcessOperationDo.getWorkspeed() == null ? BigDecimal.valueOf(1) : apsProcessOperationDo.getWorkspeed();
|
|
|
+ processtotaltime = df.format(apsProcessOperationDo.getSinglerollweight().multiply(BigDecimal.valueOf(apsProcessOperationDo.getPlanprocessrall())).multiply(BigDecimal.valueOf(1000000000)).divide(prowidth.multiply(thickness).multiply(workspeed).multiply(aluminumdensity), 2, BigDecimal.ROUND_HALF_UP));
|
|
|
+ } else if (apsProcessOperationDo.getTimeway().equals("40")) {
|
|
|
+ //如果计时方式=按单次加工时长计时,计划作业时长=单次加工时长*计划加工卷数
|
|
|
+ processtotaltime = df.format(apsProcessOperationDo.getOnceprocessmin().multiply(BigDecimal.valueOf(apsProcessOperationDo.getPlanprocessrall())));
|
|
|
+ }
|
|
|
+ return new BigDecimal(processtotaltime);
|
|
|
+ }
|
|
|
}
|