生产管理

liweidong
sugy 2 months ago
parent dd003ba913
commit 136e9e591e
  1. 19
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkPlan.java
  2. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/process/mapper/ProjectApplicationMapper.xml
  3. 52
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/PdaLoadController.java
  4. 89
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/PdaSaveController.java
  5. 8
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IMacToolUseService.java
  6. 44
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IPdaLoadService.java
  7. 32
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IPdaSaveService.java
  8. 30
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MacToolUseServiceImpl.java
  9. 163
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/PdaLoadServiceImpl.java
  10. 208
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/PdaSaveServiceImpl.java

@ -13,7 +13,9 @@ import java.io.Serial;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 车间作业计划 实体类
@ -46,6 +48,23 @@ public class WorkPlan extends BaseEntity {
*/
public static Integer STATUS_VOIDED = 6;
/**
* 绑定
*/
public static Short BIND_STATUS_BIND = 1;
/**
* 加工
*/
public static Short BIND_STATUS_WORK = 2;
/**
* 解绑
*/
public static Short BIND_STATUS_FREE = 3;
public static Map<Short, String> statusMap = new HashMap<Short, String>(3);
/**
* 生产过程
*/
public static Short PRINT_TYPE_PROCESS = 1;
@Serial
private static final long serialVersionUID = 1L;

@ -40,7 +40,7 @@
and n.PA_CODE = #{fmProjectApplication.paCode}
</if>
<if test="fmProjectApplication.projectName!=null">
and n.PROJECT_NAME = #{fmProjectApplication.projectName}
and n.PROJECT_NAME LIKE '%' || #{fmProjectApplication.projectName} || '%'
</if>
<if test="fmProjectApplication.projectHead!=null">
and n.PROJECT_HEAD = #{fmProjectApplication.projectHead}

@ -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() ;
}
}

@ -11,5 +11,11 @@ import org.springblade.desk.produce.pojo.entity.MacToolUse;
*/
public interface IMacToolUseService extends BaseService<MacToolUse> {
/**
* 获取下一个编号
*
* @param i
* @return
*/
String nextCode(int i);
}

@ -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);
}

@ -8,6 +8,13 @@ import org.springblade.desk.produce.pojo.entity.MacToolUse;
import org.springblade.desk.produce.service.IMacToolUseService;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Random;
import static com.fasterxml.jackson.databind.type.LogicalType.DateTime;
/**
* 设备工装使用记录 服务实现类
*
@ -18,4 +25,27 @@ import org.springframework.stereotype.Service;
@RequiredArgsConstructor
public class MacToolUseServiceImpl extends BaseServiceImpl<MacToolUseMapper, MacToolUse> implements IMacToolUseService {
@Override
public String nextCode(int i) {
// 编码模式
String str = "";
if (i == 0) {
str = "G-";
} else if (i == 1) {
str = "B-";
} else if (i == 2) {
str = "S-";
} else if (i == 3) {
str = "SJ-";
}
String codePattern = str + "BD" + new SimpleDateFormat("YYYYMMDD").format(new Date());
return codePattern + time2Integer(new Date()) + new Random().nextInt(100);
}
public static final int time2Integer(Date d) {
Calendar cal = Calendar.getInstance();
cal.setTime(d);
return cal.get(11) * 10000 + cal.get(12) * 100 + cal.get(13);
}
}

@ -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…
Cancel
Save