parent
dd003ba913
commit
136e9e591e
10 changed files with 645 additions and 2 deletions
@ -0,0 +1,52 @@ |
|||||||
|
package org.springblade.desk.produce.controller; |
||||||
|
|
||||||
|
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; |
||||||
|
import io.swagger.v3.oas.annotations.Operation; |
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag; |
||||||
|
import lombok.RequiredArgsConstructor; |
||||||
|
import org.springblade.core.mp.support.Condition; |
||||||
|
import org.springblade.core.secure.utils.AuthUtil; |
||||||
|
import org.springblade.core.tool.api.R; |
||||||
|
import org.springblade.desk.device.pojo.entity.RackSetEntity; |
||||||
|
import org.springblade.desk.device.pojo.vo.RackSetVO; |
||||||
|
import org.springblade.desk.device.wrapper.RackSetWrapper; |
||||||
|
import org.springblade.desk.produce.pojo.dto.TurnTypeDTO; |
||||||
|
import org.springblade.desk.produce.service.IPdaLoadService; |
||||||
|
import org.springframework.web.bind.annotation.*; |
||||||
|
|
||||||
|
/** |
||||||
|
* @ClassName PdaLoadController |
||||||
|
* @Description: 手持移动端数据查询接口 |
||||||
|
* @Author qjh |
||||||
|
* @Date 2022-10-28 14:41 |
||||||
|
* @Version 1.0 |
||||||
|
* 注意:本内容仅限于内部传阅,禁止外泄及用于其他的商业目的 |
||||||
|
*/ |
||||||
|
@RestController |
||||||
|
@RequiredArgsConstructor |
||||||
|
@RequestMapping("/pdaLoad") |
||||||
|
@Tag(name = "手持移动端数据查询接口", description = "接口") |
||||||
|
public class PdaLoadController { |
||||||
|
|
||||||
|
private final IPdaLoadService pdaLoadService; |
||||||
|
@GetMapping(value = "/loadBindData/{cardNo}") |
||||||
|
@ApiOperationSupport(order = 1) |
||||||
|
@Operation(summary = "加载绑定需要的流程卡数据", description = "传入cardNo") |
||||||
|
public R loadBindData(@PathVariable String cardNo) { |
||||||
|
return R.data(pdaLoadService.loadBindData(AuthUtil.getUser(), cardNo)); |
||||||
|
} |
||||||
|
@GetMapping(value = "getBsFeiBaSetByCode/{rsCode}") |
||||||
|
@ApiOperationSupport(order = 2) |
||||||
|
@Operation(summary = "根据挂具编码查询数据", description = "传入rsCode") |
||||||
|
public R getBsFeiBaSetByCode(@PathVariable String rsCode) { |
||||||
|
return R.data(pdaLoadService.getBsRackSetByCode(rsCode)); |
||||||
|
} |
||||||
|
@GetMapping(value = "/getBsFeiBaSetByCodeUn/{fsCode}") |
||||||
|
@ApiOperationSupport(order = 3) |
||||||
|
@Operation(summary = "根据挂具编码查询数据(解绑)", description = "传入fsCode") |
||||||
|
public R getBsFeiBaSetByCodeUn(@PathVariable String fsCode) { |
||||||
|
return R.data(pdaLoadService.getBsFeiBaSetByCode(fsCode)); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,89 @@ |
|||||||
|
package org.springblade.desk.produce.controller; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
||||||
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
||||||
|
import io.swagger.v3.oas.annotations.Operation; |
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag; |
||||||
|
import lombok.RequiredArgsConstructor; |
||||||
|
import org.springblade.core.tool.api.R; |
||||||
|
import org.springblade.desk.basic.pojo.entity.BasicClazz; |
||||||
|
import org.springblade.desk.basic.service.IBasicClazzService; |
||||||
|
import org.springblade.desk.produce.service.IPdaSaveService; |
||||||
|
import org.springframework.web.bind.annotation.*; |
||||||
|
|
||||||
|
/** |
||||||
|
* @ClassName PdaLoadController |
||||||
|
* @Description: 手持移动端数据查询接口 |
||||||
|
* @Author qjh |
||||||
|
* @Date 2022-10-28 14:41 |
||||||
|
* @Version 1.0 |
||||||
|
* 注意:本内容仅限于内部传阅,禁止外泄及用于其他的商业目的 |
||||||
|
*/ |
||||||
|
@RestController |
||||||
|
@RequiredArgsConstructor |
||||||
|
@RequestMapping("/pdaSave") |
||||||
|
@Tag(name = "手持移动端数据查询接口", description = "接口") |
||||||
|
public class PdaSaveController { |
||||||
|
|
||||||
|
private final IPdaSaveService pdaSaveService; |
||||||
|
|
||||||
|
private final IBasicClazzService basicClazzService; |
||||||
|
@Operation(summary = "流程卡与挂具绑定") |
||||||
|
@PostMapping("/gjBindingCrad") |
||||||
|
public R gjBindingCrad(@RequestParam(value = "rsId") Long rsId,@RequestParam(value = "planListIds") String planListIds) { |
||||||
|
pdaSaveService.bindingCard(rsId, null, null, planListIds); |
||||||
|
return R.success() ; |
||||||
|
} |
||||||
|
@Operation(summary = "挂具与飞靶绑定") |
||||||
|
@PostMapping("/gjBindingFb") |
||||||
|
public R gjBindingFb(@RequestParam(value = "fsId") Long fsId,@RequestParam(value = "rsListIds") String rsListIds) { |
||||||
|
pdaSaveService.binding(fsId, null, null,null, rsListIds); |
||||||
|
return R.success() ; |
||||||
|
} |
||||||
|
@Operation(summary = "飞靶与设备绑定") |
||||||
|
@PostMapping("/fbBindingEc") |
||||||
|
public R fbBindingEc(@RequestParam(value = "fsId") Long fsId,@RequestParam(value = "ecId") Long ecId, |
||||||
|
@RequestParam(value = "hangNum") Long hangNum,@RequestParam(value = "unFsBool") Boolean unFsBool) { |
||||||
|
String hangNumName = ""; |
||||||
|
BasicClazz bsBasicClass = null; |
||||||
|
if(hangNum != null&&hangNum != -1){ |
||||||
|
bsBasicClass = basicClazzService.getById(hangNum); |
||||||
|
if(bsBasicClass != null){ |
||||||
|
hangNumName = bsBasicClass.getName(); |
||||||
|
} |
||||||
|
}else if(hangNum == -1){ |
||||||
|
hangNumName = "-1"; |
||||||
|
} |
||||||
|
pdaSaveService.binding(fsId, ecId, unFsBool, hangNumName,null); |
||||||
|
// 删除产线设备对应的挂次号之前的数据
|
||||||
|
if(bsBasicClass!= null){ |
||||||
|
LambdaUpdateWrapper<BasicClazz> wrapper = new LambdaUpdateWrapper<>(); |
||||||
|
wrapper.eq(BasicClazz::getCode,bsBasicClass.getCode()); |
||||||
|
wrapper.eq(BasicClazz::getBizType,"6"); |
||||||
|
wrapper.lt(BasicClazz::getUpdateTime,bsBasicClass.getUpdateTime()); |
||||||
|
wrapper.set(BasicClazz::getIsDeleted,1); |
||||||
|
basicClazzService.update(null, wrapper); |
||||||
|
} |
||||||
|
return R.success() ; |
||||||
|
} |
||||||
|
@Operation(summary = "流程卡与飞靶绑定") |
||||||
|
@PostMapping("/fbBindingCrad") |
||||||
|
public R fbBindingCrad(@RequestParam(value = "fsId") Long fsId,@RequestParam(value = "planListIds") String planListIds) { |
||||||
|
pdaSaveService.bindingCard(null, fsId, null, planListIds); |
||||||
|
return R.success() ; |
||||||
|
} |
||||||
|
@Operation(summary = "流程卡与设备绑定") |
||||||
|
@PostMapping("/ecBindingCrad") |
||||||
|
public R ecBindingCrad(@RequestParam(value = "ecId") Long ecId,@RequestParam(value = "planListIds") String planListIds) { |
||||||
|
pdaSaveService.bindingCard(null, null, ecId, planListIds); |
||||||
|
return R.success() ; |
||||||
|
} |
||||||
|
@Operation(summary = "挂具与设备绑定") |
||||||
|
@PostMapping("/gjBindingEc") |
||||||
|
public R gjBindingEc(@RequestParam(value = "ecId") Long ecId,@RequestParam(value = "rsListIds") String rsListIds) { |
||||||
|
pdaSaveService.binding(null, ecId, null,null, rsListIds); |
||||||
|
return R.success() ; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,44 @@ |
|||||||
|
package org.springblade.desk.produce.service; |
||||||
|
|
||||||
|
import org.springblade.core.mp.base.BaseService; |
||||||
|
import org.springblade.core.secure.BladeUser; |
||||||
|
import org.springblade.desk.device.pojo.entity.FeiBaSetEntity; |
||||||
|
import org.springblade.desk.device.pojo.entity.RackSetEntity; |
||||||
|
import org.springblade.desk.produce.pojo.entity.WorkOrder; |
||||||
|
import org.springblade.desk.produce.pojo.entity.WorkPlan; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* 车间作业计划 服务类 |
||||||
|
* |
||||||
|
* @author BladeX |
||||||
|
* @since 2025-11-28 |
||||||
|
*/ |
||||||
|
public interface IPdaLoadService extends BaseService<WorkPlan> { |
||||||
|
/** |
||||||
|
* <p>方法名: loadBindData </p> |
||||||
|
* <p>方法描述: 加载绑定数据 </p> |
||||||
|
* |
||||||
|
* @param user 用户 |
||||||
|
* @param cardNo 卡号 |
||||||
|
* @return org.springblade.desk.produce.pojo.entity.WorkPlan |
||||||
|
*/ |
||||||
|
WorkPlan loadBindData(BladeUser user, String cardNo); |
||||||
|
/** |
||||||
|
* <p>方法名: getBsRackSetByCode </p> |
||||||
|
* <p>方法描述: 根据挂具编码查询数据 </p> |
||||||
|
* |
||||||
|
* @param rsCode 挂具编码 |
||||||
|
* @return org.springblade.desk.device.pojo.entity.RackSetEntity |
||||||
|
*/ |
||||||
|
RackSetEntity getBsRackSetByCode(String rsCode); |
||||||
|
/** |
||||||
|
* <p>方法名: getBsFeiBaSetByCode </p> |
||||||
|
* <p>方法描述: 根据飞靶编码查询数据 </p> |
||||||
|
* |
||||||
|
* @param fsCode 飞靶编码 |
||||||
|
* @return org.springblade.desk.device.pojo.entity.BsFeiBaSet |
||||||
|
*/ |
||||||
|
FeiBaSetEntity getBsFeiBaSetByCode(String fsCode); |
||||||
|
} |
||||||
@ -0,0 +1,32 @@ |
|||||||
|
package org.springblade.desk.produce.service; |
||||||
|
|
||||||
|
import org.springblade.core.mp.base.BaseService; |
||||||
|
import org.springblade.desk.produce.pojo.entity.WorkPlan; |
||||||
|
|
||||||
|
/** |
||||||
|
* 车间作业计划 服务类 |
||||||
|
* |
||||||
|
* @author BladeX |
||||||
|
* @since 2025-11-28 |
||||||
|
*/ |
||||||
|
public interface IPdaSaveService extends BaseService<WorkPlan> { |
||||||
|
/** |
||||||
|
* <p>方法名: bindingCard </p> |
||||||
|
* <p>方法描述: 绑定卡 </p> |
||||||
|
* |
||||||
|
* @param rsId 挂具id |
||||||
|
* @param planListIds 绑定数据 |
||||||
|
*/ |
||||||
|
void bindingCard(Long rsId, Long fsId, Long ecId, String planListIds); |
||||||
|
/** |
||||||
|
* <p>方法名: binding </p> |
||||||
|
* <p>方法描述: 绑定 </p> |
||||||
|
* |
||||||
|
* @param rsId 挂具id |
||||||
|
* @param ecId 设备id |
||||||
|
* @param unFsBool 是否解绑 |
||||||
|
* @param rsListIds 绑定数据 |
||||||
|
* @param listIds |
||||||
|
*/ |
||||||
|
void binding(Long rsId, Long ecId, Boolean unFsBool,String hangNum,String rsListIds); |
||||||
|
} |
||||||
@ -0,0 +1,163 @@ |
|||||||
|
package org.springblade.desk.produce.service.impl; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
||||||
|
import lombok.RequiredArgsConstructor; |
||||||
|
import lombok.extern.slf4j.Slf4j; |
||||||
|
import org.apache.commons.lang3.ObjectUtils; |
||||||
|
import org.springblade.common.exception.BusinessException; |
||||||
|
import org.springblade.core.log.exception.ServiceException; |
||||||
|
import org.springblade.core.mp.base.BaseServiceImpl; |
||||||
|
import org.springblade.core.secure.BladeUser; |
||||||
|
import org.springblade.desk.basic.pojo.entity.RelTeamSetUser; |
||||||
|
import org.springblade.desk.basic.service.IRelTeamSetUserService; |
||||||
|
import org.springblade.desk.dashboard.pojo.entity.BsProcessSetEntity; |
||||||
|
import org.springblade.desk.dashboard.pojo.entity.BsTeamSetEntity; |
||||||
|
import org.springblade.desk.dashboard.pojo.entity.DsProcessMeasuringToolEntity; |
||||||
|
import org.springblade.desk.dashboard.pojo.entity.DsProcessProjectEntity; |
||||||
|
import org.springblade.desk.dashboard.service.*; |
||||||
|
import org.springblade.desk.device.pojo.entity.FeiBaSetEntity; |
||||||
|
import org.springblade.desk.device.pojo.entity.RackSetEntity; |
||||||
|
import org.springblade.desk.device.service.IFeiBaSetService; |
||||||
|
import org.springblade.desk.device.service.IRackSetService; |
||||||
|
import org.springblade.desk.produce.mapper.WorkPlanMapper; |
||||||
|
import org.springblade.desk.produce.pojo.entity.*; |
||||||
|
import org.springblade.desk.produce.service.*; |
||||||
|
import org.springblade.desk.quality.pojo.entity.InspectionTask; |
||||||
|
import org.springblade.desk.quality.pojo.entity.WorkPlanItem; |
||||||
|
import org.springblade.desk.quality.pojo.vo.WorkPlanItemDetailVO; |
||||||
|
import org.springblade.desk.quality.pojo.vo.WorkPlanItemVO; |
||||||
|
import org.springblade.desk.quality.service.IInspectionTaskService; |
||||||
|
import org.springblade.desk.quality.service.IPlanTestService; |
||||||
|
import org.springblade.desk.quality.service.IWorkPlanItemService; |
||||||
|
import org.springframework.beans.BeanUtils; |
||||||
|
import org.springframework.stereotype.Service; |
||||||
|
|
||||||
|
import java.util.ArrayList; |
||||||
|
import java.util.Date; |
||||||
|
import java.util.List; |
||||||
|
import java.util.Map; |
||||||
|
import java.util.stream.Collectors; |
||||||
|
|
||||||
|
/** |
||||||
|
* 车间作业计划 服务实现类 |
||||||
|
* |
||||||
|
* @author BladeX |
||||||
|
*/ |
||||||
|
@Slf4j |
||||||
|
@Service |
||||||
|
@RequiredArgsConstructor |
||||||
|
public class PdaLoadServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan> implements IPdaLoadService { |
||||||
|
|
||||||
|
private final IBsProcedureTeamService bsProcedureTeamService; |
||||||
|
|
||||||
|
private final IBsProcessSetService bsProcessSetService; |
||||||
|
|
||||||
|
private final IDsProcessService dsProcessService; |
||||||
|
|
||||||
|
private final IPrReworkProcessService prReworkProcessService; |
||||||
|
|
||||||
|
private final IWorkPlanItemService workPlanItemService; |
||||||
|
|
||||||
|
private final IInspectionTaskService inspectionTaskService; |
||||||
|
|
||||||
|
private final IWorkOrderRunService workOrderRunService; |
||||||
|
|
||||||
|
private final IDsProcessMeasuringToolService processMeasuringToolService; |
||||||
|
|
||||||
|
private final IDsProcessProjectService dsProcessProjectService; |
||||||
|
|
||||||
|
private final IMakeRecService makeRecService; |
||||||
|
|
||||||
|
private final IMacToolUseService macToolUseService; |
||||||
|
|
||||||
|
private final IPlanTestService planTestService; |
||||||
|
|
||||||
|
private final IWorkOrderService workOrderService; |
||||||
|
|
||||||
|
private final IRelTeamSetUserService relTeamSetUserService; |
||||||
|
|
||||||
|
private final IRackSetService rackSetService; |
||||||
|
|
||||||
|
private final IFeiBaSetService feiBaSetService; |
||||||
|
|
||||||
|
@Override |
||||||
|
public WorkPlan loadBindData(BladeUser user, String cardNo) { |
||||||
|
WorkPlan prWorkPlan = this.getCurrentWorkPlan(cardNo, user, false, false); |
||||||
|
return prWorkPlan; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public RackSetEntity getBsRackSetByCode(String rsCode) { |
||||||
|
return rackSetService.getOne(Wrappers.lambdaQuery(RackSetEntity.class) |
||||||
|
.eq(RackSetEntity::getRsCode, rsCode)); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public FeiBaSetEntity getBsFeiBaSetByCode(String fsCode) { |
||||||
|
return feiBaSetService.getOne(Wrappers.lambdaQuery(FeiBaSetEntity.class) |
||||||
|
.eq(FeiBaSetEntity::getFsCode, fsCode)); |
||||||
|
} |
||||||
|
|
||||||
|
private WorkPlan getCurrentWorkPlan(String cardNo, BladeUser user, boolean checkCurrentProcess, boolean checkAfterPlating) { |
||||||
|
//获取并验证车间订单
|
||||||
|
WorkOrder prWorkOrder = this.checkPrWorkOrder(cardNo); |
||||||
|
//获取当前登录人班组
|
||||||
|
List<Long> tsIds = relTeamSetUserService. |
||||||
|
list(Wrappers.lambdaQuery(RelTeamSetUser.class) |
||||||
|
.eq(RelTeamSetUser::getUserId, user.getUserId())) |
||||||
|
.stream().map(RelTeamSetUser::getUserId).collect(Collectors.toList()); |
||||||
|
//获取作业计划
|
||||||
|
WorkPlan prWorkPlan = this.getOne(Wrappers.lambdaQuery(WorkPlan.class) |
||||||
|
.eq(WorkPlan::getId, prWorkOrder.getWpId())); |
||||||
|
//获取当前工序的下序
|
||||||
|
WorkPlan nextPrWorkPlan = this.getOne(Wrappers.lambdaQuery(WorkPlan.class) |
||||||
|
.eq(WorkPlan::getId, prWorkPlan.getNextWpId())); |
||||||
|
//获取当前工序的上序
|
||||||
|
WorkPlan frontPrWorkPlan = this.getOne(Wrappers.lambdaQuery(WorkPlan.class) |
||||||
|
.eq(WorkPlan::getId, prWorkPlan.getFrontWpId())); |
||||||
|
//如果是最后一道工序(当前序下序为空或者下序的下序为空)
|
||||||
|
if (nextPrWorkPlan == null || nextPrWorkPlan.getNextWpId() == null) { |
||||||
|
//如果是镀后入库则不验证
|
||||||
|
if (checkAfterPlating) { |
||||||
|
throw new ServiceException("pda.nextWorkPlan.noNext"); |
||||||
|
} |
||||||
|
} |
||||||
|
//验证作业中心
|
||||||
|
//this.checkWorkCenter(checkCurrentProcess, frontPrWorkPlan, prWorkPlan, nextPrWorkPlan, tsIds, checkAfterPlating);
|
||||||
|
//状态是false或者上序为空,并且当前序(首道)状态未未开工时,获取当前序;
|
||||||
|
if (!checkCurrentProcess || (frontPrWorkPlan == null && prWorkPlan.getStatus().equals(WorkPlan.STATUS_NO_START))) { |
||||||
|
return prWorkPlan; |
||||||
|
} |
||||||
|
//如果是镀后入库则不验证
|
||||||
|
if (checkAfterPlating) { |
||||||
|
if (prWorkPlan != null) { |
||||||
|
//验证上道工序是否报工完成
|
||||||
|
if (!WorkPlan.STATUS_WORK_OK.equals(prWorkPlan.getStatus())) { |
||||||
|
throw new ServiceException("product.frontWpNotWork"); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
return nextPrWorkPlan; |
||||||
|
} |
||||||
|
|
||||||
|
private void checkWorkCenter(boolean checkCurrentProcess, WorkPlan frontPrWorkPlan, WorkPlan prWorkPlan, WorkPlan nextPrWorkPlan, List<Long> tsIds, boolean checkAfterPlating) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
private WorkOrder checkPrWorkOrder(String cardNo) { |
||||||
|
WorkOrder prWorkOrder = this.checkWo(cardNo); |
||||||
|
//车间订单状态小于已下达并且大于加工中的情况下,不允许下序接收
|
||||||
|
if (prWorkOrder.getRunStatus() < WorkOrder.RUN_STATUS_ISSUED || prWorkOrder.getRunStatus() > WorkOrder.RUN_STATUS_RECEIVE) { |
||||||
|
throw new ServiceException("pda.prWorkOrder.runStatus"+prWorkOrder.getRunStatus()); |
||||||
|
} |
||||||
|
return prWorkOrder; |
||||||
|
} |
||||||
|
|
||||||
|
private WorkOrder checkWo(String cardNo) { |
||||||
|
WorkOrder prWorkOrder = workOrderService.getOne(Wrappers.lambdaQuery(WorkOrder.class).eq(WorkOrder::getCardNo, cardNo)); |
||||||
|
if (prWorkOrder == null) { |
||||||
|
throw new ServiceException("pda.prWorkOrder.absent"+null); |
||||||
|
} |
||||||
|
return prWorkOrder; |
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1,208 @@ |
|||||||
|
package org.springblade.desk.produce.service.impl; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
||||||
|
import lombok.RequiredArgsConstructor; |
||||||
|
import lombok.extern.slf4j.Slf4j; |
||||||
|
import org.apache.commons.lang3.StringUtils; |
||||||
|
import org.springblade.core.mp.base.BaseServiceImpl; |
||||||
|
import org.springblade.core.secure.utils.AuthUtil; |
||||||
|
import org.springblade.desk.basic.service.IRelTeamSetUserService; |
||||||
|
import org.springblade.desk.dashboard.service.*; |
||||||
|
import org.springblade.desk.device.pojo.entity.FeiBaSetEntity; |
||||||
|
import org.springblade.desk.device.pojo.entity.RackSetEntity; |
||||||
|
import org.springblade.desk.device.service.IFeiBaSetService; |
||||||
|
import org.springblade.desk.device.service.IRackSetService; |
||||||
|
import org.springblade.desk.produce.mapper.WorkPlanMapper; |
||||||
|
import org.springblade.desk.produce.pojo.entity.MacToolUse; |
||||||
|
import org.springblade.desk.produce.pojo.entity.WorkPlan; |
||||||
|
import org.springblade.desk.produce.service.*; |
||||||
|
import org.springblade.desk.quality.service.IInspectionTaskService; |
||||||
|
import org.springblade.desk.quality.service.IPlanTestService; |
||||||
|
import org.springblade.desk.quality.service.IWorkPlanItemService; |
||||||
|
import org.springframework.stereotype.Service; |
||||||
|
|
||||||
|
import java.util.Date; |
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* 车间作业计划 服务实现类 |
||||||
|
* |
||||||
|
* @author BladeX |
||||||
|
*/ |
||||||
|
@Slf4j |
||||||
|
@Service |
||||||
|
@RequiredArgsConstructor |
||||||
|
public class PdaSaveServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan> implements IPdaSaveService { |
||||||
|
|
||||||
|
private final IBsProcedureTeamService bsProcedureTeamService; |
||||||
|
|
||||||
|
private final IBsProcessSetService bsProcessSetService; |
||||||
|
|
||||||
|
private final IDsProcessService dsProcessService; |
||||||
|
|
||||||
|
private final IPrReworkProcessService prReworkProcessService; |
||||||
|
|
||||||
|
private final IWorkPlanItemService workPlanItemService; |
||||||
|
|
||||||
|
private final IInspectionTaskService inspectionTaskService; |
||||||
|
|
||||||
|
private final IWorkOrderRunService workOrderRunService; |
||||||
|
|
||||||
|
private final IDsProcessMeasuringToolService processMeasuringToolService; |
||||||
|
|
||||||
|
private final IDsProcessProjectService dsProcessProjectService; |
||||||
|
|
||||||
|
private final IMakeRecService makeRecService; |
||||||
|
|
||||||
|
private final IMacToolUseService macToolUseService; |
||||||
|
|
||||||
|
private final IPlanTestService planTestService; |
||||||
|
|
||||||
|
private final IWorkOrderService workOrderService; |
||||||
|
|
||||||
|
private final IRelTeamSetUserService relTeamSetUserService; |
||||||
|
|
||||||
|
private final IRackSetService rackSetService; |
||||||
|
|
||||||
|
private final IFeiBaSetService feiBaSetService; |
||||||
|
|
||||||
|
@Override |
||||||
|
public void bindingCard(Long rsId, Long fsId, Long ecId, String planListIds) { |
||||||
|
RackSetEntity rackSet = rackSetService.getById(rsId); |
||||||
|
//BsFeiBaSet bsFeiBaSet = this.getFeiBaSetByFsId(fsId);
|
||||||
|
//DeEquipmentCard equipmentCard = this.getEquipmentCardByEcId(ecId);
|
||||||
|
|
||||||
|
//同槽号
|
||||||
|
String code = null; |
||||||
|
//rsId挂具绑定流程卡,fsId飞靶绑定流程卡
|
||||||
|
if(rsId!=null){ |
||||||
|
List<MacToolUse> macToolUseList = macToolUseService.list(Wrappers.<MacToolUse>query().lambda() |
||||||
|
.eq(MacToolUse::getBsRackSet, rsId) |
||||||
|
.eq(MacToolUse::getFinished, false) |
||||||
|
.eq(MacToolUse::getIsDeleted, 0).orderByDesc(MacToolUse::getMtnCode) |
||||||
|
); |
||||||
|
if(macToolUseList.size()>0){ |
||||||
|
code = macToolUseList.get(0).getMtnCode(); |
||||||
|
} |
||||||
|
//如果未找到满足条件的同槽号
|
||||||
|
if (StringUtils.isBlank(code)) { |
||||||
|
code = macToolUseService.nextCode(0); |
||||||
|
} |
||||||
|
//修改挂具状态
|
||||||
|
rackSetService.updateById(rackSet); |
||||||
|
} |
||||||
|
//fsId 是空,逻辑不会走
|
||||||
|
//处理绑定信息
|
||||||
|
WorkPlan prWorkPlan = null; |
||||||
|
MacToolUse mtu = null; |
||||||
|
//绑定日期
|
||||||
|
Date nowDate = new Date(); |
||||||
|
String [] str= planListIds.split(","); |
||||||
|
for (int i = 0; i < str.length; i++) { |
||||||
|
Long planId = Long.parseLong(str[i]); |
||||||
|
prWorkPlan = this.getById(planId); |
||||||
|
mtu = new MacToolUse(); |
||||||
|
mtu.setMtnCode(code); |
||||||
|
mtu.setBsRackSet(rsId); |
||||||
|
mtu.setWpId(prWorkPlan.getId()); |
||||||
|
mtu.setCreateMan(AuthUtil.getUser().getUserId()); |
||||||
|
mtu.setUpdateTime(nowDate); |
||||||
|
mtu.setCreateTime(nowDate); |
||||||
|
macToolUseService.saveOrUpdate(mtu); |
||||||
|
//修改作业计划绑定状态为绑定
|
||||||
|
prWorkPlan.setBindStatus(WorkPlan.BIND_STATUS_BIND); |
||||||
|
if (rsId == null) { |
||||||
|
prWorkPlan.setPrintType(WorkPlan.PRINT_TYPE_PROCESS); |
||||||
|
} |
||||||
|
this.updateById(prWorkPlan); |
||||||
|
} |
||||||
|
// 存储同槽额外面积 没有表,后期添加
|
||||||
|
this.setBsAdditionalMess(code); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void binding(Long fsId, Long ecId, Boolean unFsBool,String hangNum, String rsListIds) { |
||||||
|
//获取同槽号
|
||||||
|
String code = null; |
||||||
|
Date nowDate = new Date(); |
||||||
|
FeiBaSetEntity frackSet = feiBaSetService.getById(fsId); |
||||||
|
//挂具集合不为空,则代表是挂具相关绑定,反之则是飞靶绑定设备
|
||||||
|
if (rsListIds != null) { |
||||||
|
if (fsId != null) { |
||||||
|
List<MacToolUse> macToolUseList = macToolUseService.list(Wrappers.<MacToolUse>query().lambda() |
||||||
|
.eq(MacToolUse::getBsRackSet, fsId) |
||||||
|
.eq(MacToolUse::getFinished, false) |
||||||
|
.eq(MacToolUse::getIsDeleted, 0).orderByDesc(MacToolUse::getMtnCode) |
||||||
|
); |
||||||
|
if(macToolUseList.size()>0){ |
||||||
|
code = macToolUseList.get(0).getMtnCode(); |
||||||
|
} |
||||||
|
//修改飞靶状态
|
||||||
|
feiBaSetService.updateById(frackSet); |
||||||
|
//如果未找到满足条件的同槽号,则自动生成一个同槽号(飞靶)
|
||||||
|
if (StringUtils.isBlank(code)) { |
||||||
|
code = macToolUseService.nextCode(0); |
||||||
|
} |
||||||
|
}else { |
||||||
|
//如果未找到满足条件的同槽号,则自动生成一个同槽号(设备)
|
||||||
|
if (StringUtils.isBlank(code)) { |
||||||
|
code = macToolUseService.nextCode(2); |
||||||
|
} |
||||||
|
} |
||||||
|
//挂具
|
||||||
|
RackSetEntity rackSet = null; |
||||||
|
String [] str= rsListIds.split(","); |
||||||
|
for (int i = 0; i < str.length; i++) { |
||||||
|
Long rsId = Long.parseLong(str[i]); |
||||||
|
rackSet = rackSetService.getById(rsId); |
||||||
|
List<MacToolUse> macToolUseList = macToolUseService.list(Wrappers.<MacToolUse>query().lambda() |
||||||
|
.eq(MacToolUse::getBsRackSet, rsId) |
||||||
|
.eq(MacToolUse::getFinished, false) |
||||||
|
.eq(MacToolUse::getIsDeleted, 0) |
||||||
|
); |
||||||
|
//开始绑定
|
||||||
|
for (int i1 = 0; i1 < macToolUseList.size(); i1++) { |
||||||
|
MacToolUse mtu = macToolUseList.get(i1); |
||||||
|
mtu.setMtnCode(code); |
||||||
|
mtu.setBsRackSet(rsId); |
||||||
|
mtu.setUpdateTime(nowDate); |
||||||
|
mtu.setCreateMan(AuthUtil.getUser().getUserId()); |
||||||
|
macToolUseService.updateById(mtu); |
||||||
|
} |
||||||
|
// 存储同槽额外面积
|
||||||
|
this.setBsAdditionalMess(code); |
||||||
|
} |
||||||
|
|
||||||
|
}else { |
||||||
|
List<MacToolUse> macToolUseList = macToolUseService.list(Wrappers.<MacToolUse>query().lambda() |
||||||
|
.eq(MacToolUse::getBsFeiBaSet, frackSet.getId()) |
||||||
|
.eq(MacToolUse::getIsDeleted, 0) |
||||||
|
); |
||||||
|
//未标记解绑飞靶,则代表正常绑定
|
||||||
|
if (unFsBool == null){ |
||||||
|
//获取以设备为基准的同槽号
|
||||||
|
code = macToolUseService.nextCode(2); |
||||||
|
//开始绑定
|
||||||
|
for (int i = 0; i < macToolUseList.size(); i++) { |
||||||
|
MacToolUse mtu = macToolUseList.get(i); |
||||||
|
mtu.setMtnCode(code); |
||||||
|
mtu.setHangNum(null); |
||||||
|
mtu.setMtnCode(code); |
||||||
|
mtu.setUpdateTime(nowDate); |
||||||
|
mtu.setCreateMan(AuthUtil.getUser().getUserId()); |
||||||
|
macToolUseService.updateById(mtu); |
||||||
|
} |
||||||
|
} //else 逻辑不走
|
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 存储同槽额外面积 |
||||||
|
* @param code |
||||||
|
*/ |
||||||
|
private void setBsAdditionalMess(String code) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
Loading…
Reference in new issue