2024-11-5 Device设备 - 点检 -只生成当日计划生产的产线

master
元气满满(jgy) 5 months ago
parent 9ced49d488
commit 979fba0209

@ -118,7 +118,7 @@ public class EquPlanController extends BaseController {
* *
*/ */
@RequiresPermissions("device:inspectionPlan:export") @RequiresPermissions("device:inspectionPlan:export")
@Log(title = "计划", businessType = BusinessType.EXPORT) @Log(title = "导出计划", businessType = BusinessType.EXPORT)
@PostMapping("/export") @PostMapping("/export")
public void export(HttpServletResponse response, EquPlan equPlan) { public void export(HttpServletResponse response, EquPlan equPlan) {
List<EquPlan> list = equPlanService.selectEquPlanList(equPlan); List<EquPlan> list = equPlanService.selectEquPlanList(equPlan);
@ -139,7 +139,7 @@ public class EquPlanController extends BaseController {
* *
*/ */
@RequiresPermissions("device:inspectionPlan:add") @RequiresPermissions("device:inspectionPlan:add")
@Log(title = "计划", businessType = BusinessType.INSERT) @Log(title = "新增计划", businessType = BusinessType.INSERT)
@PostMapping @PostMapping
public AjaxResult add(@RequestBody EquPlan equPlan) { public AjaxResult add(@RequestBody EquPlan equPlan) {
return equPlanService.insertEquPlan(equPlan); return equPlanService.insertEquPlan(equPlan);
@ -149,7 +149,7 @@ public class EquPlanController extends BaseController {
* *
*/ */
@RequiresPermissions("device:inspectionPlan:edit") @RequiresPermissions("device:inspectionPlan:edit")
@Log(title = "计划", businessType = BusinessType.UPDATE) @Log(title = "修改计划", businessType = BusinessType.UPDATE)
@PutMapping @PutMapping
public AjaxResult edit(@RequestBody EquPlan equPlan) { public AjaxResult edit(@RequestBody EquPlan equPlan) {
return equPlanService.updateEquPlan(equPlan); return equPlanService.updateEquPlan(equPlan);
@ -159,7 +159,7 @@ public class EquPlanController extends BaseController {
* *
*/ */
@RequiresPermissions("device:inspectionPlan:remove") @RequiresPermissions("device:inspectionPlan:remove")
@Log(title = "计划", businessType = BusinessType.DELETE) @Log(title = "删除计划", businessType = BusinessType.DELETE)
@DeleteMapping("/{planIds}") @DeleteMapping("/{planIds}")
public AjaxResult remove(@PathVariable String[] planIds) { public AjaxResult remove(@PathVariable String[] planIds) {
return equPlanService.deleteEquPlanByPlanIds(planIds); return equPlanService.deleteEquPlanByPlanIds(planIds);

@ -205,6 +205,9 @@ public class EquPlan extends BaseEntity {
@Excel(name = "委外原因") @Excel(name = "委外原因")
private String workReason; private String workReason;
//jgy 新增 生产线体编码 每天生成线体信息的时候只生成计划生产的
private String lineCode;
public String getWorkOutsourcingUnit() { public String getWorkOutsourcingUnit() {
return workOutsourcingUnit; return workOutsourcingUnit;
} }
@ -581,6 +584,14 @@ public class EquPlan extends BaseEntity {
return delFlag; return delFlag;
} }
public void setLineCode(String lineCode) {
this.lineCode = lineCode;
}
public String getLineCode() {
return lineCode;
}
@Override @Override
public String toString() { public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)

@ -1,12 +1,8 @@
package com.op.device.mapper; package com.op.device.mapper;
import com.op.common.core.domain.BaseFileData;
import com.op.device.domain.EquFile;
import com.op.device.domain.EquOrder; import com.op.device.domain.EquOrder;
import com.op.device.domain.EquPlan; import com.op.device.domain.EquPlan;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
/** /**
@ -23,4 +19,6 @@ public interface DeviceTaskMapper {
EquOrder getNewTaskOrder(EquPlan quPlan); EquOrder getNewTaskOrder(EquPlan quPlan);
EquOrder getNewTaskOrder0(EquPlan plan); EquOrder getNewTaskOrder0(EquPlan plan);
List<String> getPlanProduceLine();//计划生产产线查询
} }

@ -1,14 +1,12 @@
package com.op.device.service.impl; package com.op.device.service.impl;
import com.baomidou.dynamic.datasource.annotation.DS; import com.alibaba.fastjson.JSONArray;
import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
import com.op.common.core.context.SecurityContextHolder;
import com.op.common.core.domain.R; import com.op.common.core.domain.R;
import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.DateUtils;
import com.op.common.core.utils.StringUtils; import com.op.common.core.utils.StringUtils;
import com.op.common.core.utils.uuid.IdUtils; import com.op.common.core.utils.uuid.IdUtils;
import com.op.common.core.web.domain.AjaxResult; import com.op.common.core.web.domain.AjaxResult;
import com.op.common.security.utils.SecurityUtils;
import com.op.device.domain.*; import com.op.device.domain.*;
import com.op.device.mapper.*; import com.op.device.mapper.*;
import com.op.device.service.IDeviceTaskService; import com.op.device.service.IDeviceTaskService;
@ -19,18 +17,15 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.ArrayList; import java.util.*;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ExecutorService; import java.util.concurrent.ExecutorService;
import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import static com.op.common.core.web.domain.AjaxResult.error; import static com.op.common.core.web.domain.AjaxResult.error;
import static com.op.common.core.web.domain.AjaxResult.success; import static com.op.common.core.web.domain.AjaxResult.success;
@ -253,8 +248,9 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService {
EquPlan equPlan = new EquPlan(); EquPlan equPlan = new EquPlan();
equPlan.setPlanType("spotInspection"); equPlan.setPlanType("spotInspection");
List<EquPlan> plans = deviceTaskMapper.getPlans(equPlan); List<EquPlan> plans = deviceTaskMapper.getPlans(equPlan);
List<EquPlan> producePlans = this.confirmPlanProduceLine(plans,poolName);
for (EquPlan plan : plans) { for (EquPlan plan : producePlans) {
EquOrder hasTask = deviceTaskMapper.getNewTaskOrder(plan); EquOrder hasTask = deviceTaskMapper.getNewTaskOrder(plan);
if (hasTask == null || Integer.parseInt(plan.getPlanLoop()) <= hasTask.getDays() || checkHourTask(hasTask, plan)) { if (hasTask == null || Integer.parseInt(plan.getPlanLoop()) <= hasTask.getDays() || checkHourTask(hasTask, plan)) {
//生成点检计划 //生成点检计划
@ -560,4 +556,48 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService {
System.out.println("------>" + batchCount); System.out.println("------>" + batchCount);
} }
//筛选出 当天要计划生成的数据
private List<EquPlan> confirmPlanProduceLine(List<EquPlan> plans,String poolName) {
//查询到当天要生产的产线
List<String> planProduceLine = deviceTaskMapper.getPlanProduceLine();//计划生产产线
List<String> planProduceLineCode = new ArrayList<>();
List<String> produceLine = new ArrayList<>();
for(String str : planProduceLine){
str = str.substring(1, str.length() - 1);
String[] subArrays = str.split("],\\[");
for (String subArrayStr : subArrays) {
subArrayStr = subArrayStr.substring(1, subArrayStr.length() - 1);
String[] parts = subArrayStr.split("\",\"");
for (int i = 1 ; i < parts.length ; i++) {
if(i == parts.length - 1){
planProduceLineCode.add(parts[i].replaceAll("\"", ""));
}else{
planProduceLineCode.add(parts[i]);
}
}
}
}
List<String> uniqueLineCodeList = planProduceLineCode.stream().distinct().collect(Collectors.toList());
List<EquPlan> returnPlanList = new ArrayList<>();
if(!CollectionUtils.isEmpty(uniqueLineCodeList) && !CollectionUtils.isEmpty(plans)){
for(String lineCode : uniqueLineCodeList){
for(EquPlan equPlan : plans){
if(!StringUtils.isBlank(equPlan.getLineCode())){
if(equPlan.getLineCode().equals(lineCode)){
returnPlanList.add(equPlan);
produceLine.add(lineCode);//生成产线
}
}
}
}
}
produceLine = produceLine.stream().distinct().collect(Collectors.toList());
logger.info(poolName + "工厂今日生成的产线:" + JSONArray.toJSONString(produceLine));
logger.info(poolName + "工厂返回生成今日生产的产线点检计划信息:" + JSONArray.toJSONString(returnPlanList));
return returnPlanList;
}
} }

@ -25,11 +25,18 @@
ep.plan_code planCode, ep.plan_code planCode,
epe.equipment_code equipmentCode, epe.equipment_code equipmentCode,
epe.equipment_name equipmentName, epe.equipment_name equipmentName,
ebae.equipment_code lineCode,
epe.id planEquId epe.id planEquId
from equ_plan ep from equ_plan ep
left join equ_plan_equ epe on ep.plan_code = epe.plan_code left join equ_plan_equ epe on ep.plan_code = epe.plan_code
left join equ_bind_auxiliary_equipment ebae on epe.equipment_code = ebae.auxiliary_equipment_code
where ep.del_flag = '0' and epe.del_flag = '0' and ep.plan_status = '0' where ep.del_flag = '0' and epe.del_flag = '0' and ep.plan_status = '0'
and epe.equipment_code in ( select be.equipment_code from base_equipment be where be.del_flag = '0' ) and epe.equipment_code in(
select be.equipment_code from base_equipment be
left join equ_bind_auxiliary_equipment ebae0 on be.equipment_code = ebae0.auxiliary_equipment_code
where be.del_flag = '0'
and ebae0.del_flag = '0'
)
and ep.plan_type = #{planType} and ep.plan_type = #{planType}
and CONVERT(varchar(10),GETDATE(), 120) >= CONVERT(varchar(10),ep.plan_loop_start, 120) and CONVERT(varchar(10),GETDATE(), 120) >= CONVERT(varchar(10),ep.plan_loop_start, 120)
<if test='planType=="inspection" or planType=="maintenance" '> <if test='planType=="inspection" or planType=="maintenance" '>
@ -66,4 +73,10 @@
and del_flag = '0' and del_flag = '0'
order by create_time desc order by create_time desc
</select> </select>
<select id="getPlanProduceLine" resultType="java.lang.String">
select prod_line_code AS planProduceLine
from pro_order_workorder pow
where CONVERT(varchar(10),pow.product_date, 120) = CONVERT(varchar(10),GETDATE(), 120)
</select>
</mapper> </mapper>

Loading…
Cancel
Save