生产管理修改

liweidong
李涛 2 weeks ago
parent 974949ad09
commit 593051e6f7
  1. 6
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/YieldOrder.java
  2. 4
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/LoadSubOrderVO.java
  3. 10
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/SaveSubOrderVo.java
  4. 12
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/PdaSaveController.java
  5. 1
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/ReworkProcessController.java
  6. 6
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IPdaSaveService.java
  7. 26
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/PdaLoadServiceImpl.java
  8. 91
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/PdaSaveServiceImpl.java
  9. 32
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java

@ -361,6 +361,12 @@ public class YieldOrder extends BaseEntity {
@TableField(value = "PRODUCE_BOOL") @TableField(value = "PRODUCE_BOOL")
private Boolean produceBool; private Boolean produceBool;
/**
* 子件齐套时间
*/
// @TableField(value = "PRODUCE_BOOL_DATE")
private Date produceBoolDate;
/** /**
* 使用部门代码 * 使用部门代码
*/ */

@ -4,12 +4,12 @@ import lombok.Data;
@Data @Data
public class LoadSubOrderVO { public class LoadSubOrderVO {
private String wpId; private Long wpId;
private String woCode; private String woCode;
private String partCode; private String partCode;
private String cardNo; private String cardNo;
private String batchNo; private String batchNo;
private String makeQty; private Double makeQty;
private String ppsName; private String ppsName;
private String tsName; private String tsName;

@ -0,0 +1,10 @@
package org.springblade.desk.produce.pojo.vo;
import lombok.Data;
@Data
public class SaveSubOrderVo {
private Long wpId;
private Long shId;
private Long cslId;
}

@ -17,10 +17,7 @@ import org.springblade.desk.energy.pojo.entity.BsEpciuPatrolInspectionEntity;
import org.springblade.desk.oldv1.constant.Constant; import org.springblade.desk.oldv1.constant.Constant;
import org.springblade.desk.oldv1.pojo.ResultInfo; import org.springblade.desk.oldv1.pojo.ResultInfo;
import org.springblade.desk.produce.pojo.dto.DeviceBindDTO; import org.springblade.desk.produce.pojo.dto.DeviceBindDTO;
import org.springblade.desk.produce.pojo.vo.MacToolUseVO; import org.springblade.desk.produce.pojo.vo.*;
import org.springblade.desk.produce.pojo.vo.SjEcBingCardVo;
import org.springblade.desk.produce.pojo.vo.UnBingDeviceVo;
import org.springblade.desk.produce.pojo.vo.UnBingVo;
import org.springblade.desk.produce.service.IPdaSaveService; import org.springblade.desk.produce.service.IPdaSaveService;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -178,4 +175,11 @@ public class PdaSaveController {
pdaSaveService.saveEpDosingRec(epDosingRec); pdaSaveService.saveEpDosingRec(epDosingRec);
return R.success(); return R.success();
} }
@Operation(summary = "子件入库保存")
@PostMapping("/saveSubOrder")
public R saveSubOrder(@RequestBody SaveSubOrderVo subOrder) {
pdaSaveService.saveSubOrder(subOrder);
return R.success();
}
} }

@ -44,6 +44,7 @@ public class ReworkProcessController extends BladeController {
public R<IPage<ReworkProcessVO>> page(ReworkProcessDTO prReworkProcess, Query query) { public R<IPage<ReworkProcessVO>> page(ReworkProcessDTO prReworkProcess, Query query) {
IPage<ReworkProcessVO> iPage = Condition.getPage(query); IPage<ReworkProcessVO> iPage = Condition.getPage(query);
List<ReworkProcessVO> process = erpDataProduceClient.loadReworkOrder(prReworkProcess.getReworkCode(), prReworkProcess.getPartCode(), prReworkProcess.getBatchNo(), query.getCurrent(), query.getSize()).getData(); List<ReworkProcessVO> process = erpDataProduceClient.loadReworkOrder(prReworkProcess.getReworkCode(), prReworkProcess.getPartCode(), prReworkProcess.getBatchNo(), query.getCurrent(), query.getSize()).getData();
process.forEach(processVO -> processVO.setReqqty(processVO.getAmount().toString()));
iPage.setRecords(process); iPage.setRecords(process);
int size = erpDataProduceClient.loadReworkOrderSize(prReworkProcess.getReworkCode(), prReworkProcess.getPartCode(), prReworkProcess.getBatchNo()).getData(); int size = erpDataProduceClient.loadReworkOrderSize(prReworkProcess.getReworkCode(), prReworkProcess.getPartCode(), prReworkProcess.getBatchNo()).getData();
iPage.setTotal(size); iPage.setTotal(size);

@ -7,10 +7,7 @@ import org.springblade.desk.produce.pojo.dto.DeviceBindDTO;
import org.springblade.desk.produce.pojo.dto.MesRbRedoRoutDTO; import org.springblade.desk.produce.pojo.dto.MesRbRedoRoutDTO;
import org.springblade.desk.produce.pojo.dto.ShiftTransferDTO; import org.springblade.desk.produce.pojo.dto.ShiftTransferDTO;
import org.springblade.desk.produce.pojo.entity.WorkPlan; import org.springblade.desk.produce.pojo.entity.WorkPlan;
import org.springblade.desk.produce.pojo.vo.MacToolUseVO; import org.springblade.desk.produce.pojo.vo.*;
import org.springblade.desk.produce.pojo.vo.SjEcBingCardVo;
import org.springblade.desk.produce.pojo.vo.UnBingDeviceVo;
import org.springblade.desk.produce.pojo.vo.UnBingVo;
import java.util.List; import java.util.List;
@ -72,4 +69,5 @@ public interface IPdaSaveService extends BaseService<WorkPlan> {
void saveEpDosingRec(BsDosingRecEntity epDosingRec); void saveEpDosingRec(BsDosingRecEntity epDosingRec);
void saveSubOrder(SaveSubOrderVo subOrder);
} }

@ -182,30 +182,32 @@ public class PdaLoadServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan
LoadSubOrderVO jsonObj = new LoadSubOrderVO(); LoadSubOrderVO jsonObj = new LoadSubOrderVO();
WorkOrder workOrder = workOrderService.getWorkOrderByCardNo(cardNo); WorkOrder workOrder = workOrderService.getWorkOrderByCardNo(cardNo);
if (workOrder == null) { if (workOrder == null) {
throw new ServiceException("pda.prWorkOrder.absent"); throw new ServiceException("车间订单不存在!");
} }
YieldOrder yieldOrder = yieldOrderService.getYoByCardNo(cardNo); YieldOrder yieldOrder = yieldOrderService.getById(workOrder.getYoId());
WorkPlan wp = workPlanService.getById(workOrder.getWpId());
WorkPlan wp = baseMapper.selectOne(Wrappers.lambdaQuery(WorkPlan.class).eq(WorkPlan::getWoId, workOrder.getWpId()));
//不是最后一道不允许入库 //不是最后一道不允许入库
if (wp.getNextWpId() != null) { if (wp.getNextWpId() != null) {
throw new ServiceException("pda.cur.work.not.last.one"); throw new ServiceException("当前工序不是最后一道,不能进行入库操作!");
} }
//工序未报工完成,不允许入库 //工序未报工完成,不允许入库
if (wp.getStatus().equals(WorkPlan.STATUS_WORK_OK)) { if (!WorkPlan.STATUS_WORK_OK.equals(wp.getStatus())) {
throw new ServiceException("pda.sub.work.in.isNot.ok"); throw new ServiceException("当前工序未报工完成,不能进行入库操作!");
} }
//不是子件车间订单不允许从此处入库 //不是子件车间订单不允许从此处入库
if (yieldOrder.getFatherYoId() == null && (StringUtils.isBlank(yieldOrder.getMemo()) if (yieldOrder.getFatherYoId() == null && (StringUtils.isBlank(yieldOrder.getMemo()) || !yieldOrder.getMemo().contains("WO-"))) {
|| !yieldOrder.getMemo().contains("WO-"))) { throw new ServiceException("不是子件车间订单,不允许在此入库!");
throw new ServiceException("pda.not.sub.order");
} }
jsonObj.setWpId(String.valueOf(wp.getId())); BsProcessSetEntity processSet = bsProcessSetService.getById(wp.getPpsId());
BsTeamSetEntity team = bsTeamSetService.getById(wp.getSubsidiaryTeam() != null ? wp.getSubsidiaryTeam() : wp.getMakeTeam());
jsonObj.setWpId(wp.getId());
jsonObj.setWoCode(workOrder.getWoCode()); jsonObj.setWoCode(workOrder.getWoCode());
jsonObj.setPartCode(yieldOrder.getPartCode()); jsonObj.setPartCode(yieldOrder.getPartCode());
jsonObj.setCardNo(workOrder.getCardNo()); jsonObj.setCardNo(workOrder.getCardNo());
jsonObj.setBatchNo(workOrder.getBatchNo()); jsonObj.setBatchNo(workOrder.getBatchNo());
jsonObj.setMakeQty(String.valueOf(workOrder.getMakeQty())); jsonObj.setMakeQty(workOrder.getMakeQty());
jsonObj.setPpsName(processSet != null ? processSet.getName() : null);
jsonObj.setTsName(team != null ? team.getTsName() : null);
return jsonObj; return jsonObj;
} }

@ -44,10 +44,7 @@ import org.springblade.desk.produce.pojo.dto.MesRbRedoRoutDTO;
import org.springblade.desk.produce.pojo.dto.PrMacTooUseSpec; import org.springblade.desk.produce.pojo.dto.PrMacTooUseSpec;
import org.springblade.desk.produce.pojo.dto.ShiftTransferDTO; import org.springblade.desk.produce.pojo.dto.ShiftTransferDTO;
import org.springblade.desk.produce.pojo.entity.*; import org.springblade.desk.produce.pojo.entity.*;
import org.springblade.desk.produce.pojo.vo.MacToolUseVO; import org.springblade.desk.produce.pojo.vo.*;
import org.springblade.desk.produce.pojo.vo.SjEcBingCardVo;
import org.springblade.desk.produce.pojo.vo.UnBingDeviceVo;
import org.springblade.desk.produce.pojo.vo.UnBingVo;
import org.springblade.desk.produce.service.*; import org.springblade.desk.produce.service.*;
import org.springblade.desk.quality.pojo.entity.InspectionTask; import org.springblade.desk.quality.pojo.entity.InspectionTask;
import org.springblade.desk.quality.pojo.entity.ReviewSheet; import org.springblade.desk.quality.pojo.entity.ReviewSheet;
@ -57,6 +54,7 @@ import org.springblade.erpdata.feign.IErpDataProduceClient;
import org.springblade.erpdata.pojo.vo.PpmReportDetailModelVO; import org.springblade.erpdata.pojo.vo.PpmReportDetailModelVO;
import org.springblade.system.feign.IUserClient; import org.springblade.system.feign.IUserClient;
import org.springblade.system.pojo.entity.User; import org.springblade.system.pojo.entity.User;
import org.springblade.wms.pojo.entity.StClassRequest;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -967,4 +965,89 @@ public class PdaSaveServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan
epDosingRec.setHandleResult(Long.valueOf(BsDosingRecEntity.HANDLE_RESULT_PDA)); epDosingRec.setHandleResult(Long.valueOf(BsDosingRecEntity.HANDLE_RESULT_PDA));
bsDosingRecService.updateById(epDosingRec); bsDosingRecService.updateById(epDosingRec);
} }
@Override
public void saveSubOrder(SaveSubOrderVo subOrder) {
Long wpId = subOrder.getWpId();
Long shId = subOrder.getWpId();
Long cslId = subOrder.getWpId();
if (wpId == null || shId == null || cslId == null) {
throw new ServiceException("参数异常!");
}
WorkPlan wp = this.getById(wpId);
if (wp == null) {
throw new ServiceException("车间订单不存在!");
}
//不是最后一道不允许入库
if (wp.getNextWpId() != null) {
throw new ServiceException("当前工序不是最后一道,不能进行入库操作!");
}
//工序未报工完成,不允许入库
if (!Objects.equals(wp.getStatus(), WorkPlan.STATUS_WORK_OK)) {
throw new ServiceException("当前工序未报工完成,不能进行入库操作!");
}
WorkOrder wo = workOrderService.getById(wp.getWoId());
YieldOrder yo = yieldOrderService.getById(wo.getYoId());
//不是子件车间订单不允许从此处入库
if (yo.getFatherYoId() == null && (StringUtils.isBlank(yo.getMemo())
|| !yo.getMemo().contains("WO-"))) {
throw new ServiceException("不是子件车间订单,不允许在此入库!");
}
Date nowDate = new Date();
//进行入库
// stRealtimeStockWebService.saveSubOrderWarehousing(yo.getPartCode(), wo.getBatchNo(), wo.getMakeQty(), shId, cslId, nowDate, AuthUtil.getUserId());
//当前工序完工
wp.setFactEndTime(nowDate);
wp.setStatus(WorkPlan.STATUS_COMPLETE);
this.updateById(wp);
//更改车间订单状态
workOrderService.updateStatus(Collections.singletonList(wo.getId()), WorkOrder.RUN_STATUS_COMPLETED, AuthUtil.getUserId(), null);
//查询父级订单下的所有子件订单是否已全部完成
List<YieldOrder> yoList = yieldOrderService.listByFatherYoId(yo.getFatherYoId());
boolean bool = true;
if (yoList != null && !yoList.isEmpty()) {
for (YieldOrder item : yoList) {
if (item.getStatus() < YieldOrder.CUR_STATUS_COMPLETED) {
bool = false;
break;
}
}
}
//此处标记父级订单已齐套
if (yo.getFatherYoId() != null) {
YieldOrder fatherYo = yieldOrderService.getById(yo.getFatherYoId());
if (fatherYo != null) {
if (bool) {
fatherYo.setProduceBool(Boolean.TRUE);
fatherYo.setProduceBoolDate(new Date());
yieldOrderService.updateById(fatherYo);
}
}
}
//获取到订单入库的库存
// Object[] obj = stRealtimeStockWebService.queryByShIdAndCslId(yo.getPartCode(), yo.getYpQty(), shId, cslId);
// if (obj != null) {
// //像仓库发起班组提请
// List<StClassRequest> list = new ArrayList<>();
// StClassRequest stClassRequest = new StClassRequest();
// stClassRequest.setRlsId(Long.valueOf(obj[0].toString()));
// stClassRequest.setGoodsId(Long.valueOf(obj[1].toString()));
// stClassRequest.setGoodsCode(obj[2].toString());
// stClassRequest.setGoodsName(obj[3].toString());
// stClassRequest.setMemo(wo.getWoCode());
// stClassRequest.setQuantity(Double.valueOf(wo.getMakeQty()));
// stClassRequest.setCrCode(stClassRequestService.nextCode(null));
// stClassRequest.setCrMan(curUserInfo);
// stClassRequest.setCrDate(new Date());
// stClassRequest.setPfDepartment(curUserInfo.getPfDepartment());
// stClassRequest.setApprovalStatus(IFlowBusinessBean.STATUS_CHECKED);
// stClassRequest.setCreateMan(curUserInfo);
// stClassRequest.setCreateTime(new Date());
// stClassRequest.setCurStatus(StClassRequest.CURSTATUS_RELEASED);
// stClassRequest.setSpecial(Boolean.FALSE);
// list.add(stClassRequest);
// stClassRequestService.addOrEdit(list, null, curUserInfo);
// }
}
} }

@ -1315,8 +1315,8 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
workPlan.setPlanWorkMan(""); workPlan.setPlanWorkMan("");
User workMan = UserCache.getUser(workPlan.getWorkMan()); User workMan = UserCache.getUser(workPlan.getWorkMan());
workPlan.setWorkManName(workMan != null ? workMan.getRealName() : ""); workPlan.setWorkManName(workMan != null ? workMan.getRealName() : "");
if (workPlan.getPlanStartTime() != null && workPlan.getPlanEndTime() != null) { if (workPlan.getFactStartTime() != null && workPlan.getFactEndTime() != null) {
workPlan.setHourActual(Duration.between(workPlan.getPlanStartTime(), workPlan.getPlanEndTime()).toMinutes()); workPlan.setHourActual(Duration.between(workPlan.getFactStartTime(), workPlan.getFactEndTime()).toMinutes());
} }
workPlan.setRate(workPlan.getRate()); workPlan.setRate(workPlan.getRate());
workPlan.setWorkPlanColor(workPlan.getWorkPlanColor()); workPlan.setWorkPlanColor(workPlan.getWorkPlanColor());
@ -2051,18 +2051,6 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
workOrder.setOem("1"); workOrder.setOem("1");
workOrder.setOemOut("0"); workOrder.setOemOut("0");
this.updateById(workOrder); this.updateById(workOrder);
try {
YieldOrder yieldOrder = yieldOrderService.getById(workOrder.getYoId());
// 玻璃封接退火
if (yieldOrder.getYieldType() == YieldOrderEnum.YIELD_TYPE_4.getCode() && frontWorkPlan != null && 63 == frontWorkPlan.getPpsId()) {
StGlassCakeOutDTO stGlassCakeOutDTO = new StGlassCakeOutDTO();
stGlassCakeOutDTO.setYoCode(yieldOrder.getYoCode());
stGlassCakeOutClient.callGeneratePreOutOrder(stGlassCakeOutDTO);
}
} catch (Exception e) {
log.error("调用玻璃饼出库接口失败", e);
}
} }
@Override @Override
@ -2181,6 +2169,22 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
// 如果下工序是外协:生成外协订单,完成本序,接收下序 // 如果下工序是外协:生成外协订单,完成本序,接收下序
this.oemHandle(wp.getNextWpId(), 1); this.oemHandle(wp.getNextWpId(), 1);
try {
WorkOrder workOrder = this.getById(wp.getWoId());
YieldOrder yieldOrder = yieldOrderService.getById(workOrder.getYoId());
if (yieldOrder.getFatherYoId() != null) {
YieldOrder fatherYieldOrder = yieldOrderService.getById(yieldOrder.getFatherYoId());
// 玻璃封接退火
if (yieldOrder.getYieldType() == YieldOrderEnum.YIELD_TYPE_4.getCode() && 63 == wp.getPpsId()) {
StGlassCakeOutDTO stGlassCakeOutDTO = new StGlassCakeOutDTO();
stGlassCakeOutDTO.setYoCode(fatherYieldOrder.getYoCode());
stGlassCakeOutClient.callGeneratePreOutOrder(stGlassCakeOutDTO);
}
}
} catch (Exception e) {
log.error("调用玻璃饼出库接口失败", e);
}
return true; return true;
} }

Loading…
Cancel
Save