|
|
|
@ -36,6 +36,7 @@ import org.springblade.desk.produce.pojo.vo.SjEcBingCardVo; |
|
|
|
import org.springblade.desk.produce.pojo.vo.UnBingDeviceVo; |
|
|
|
import org.springblade.desk.produce.pojo.vo.UnBingDeviceVo; |
|
|
|
import org.springblade.desk.produce.pojo.vo.UnBingVo; |
|
|
|
import org.springblade.desk.produce.pojo.vo.UnBingVo; |
|
|
|
import org.springblade.desk.produce.service.*; |
|
|
|
import org.springblade.desk.produce.service.*; |
|
|
|
|
|
|
|
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; |
|
|
|
|
|
|
|
|
|
|
|
@ -492,30 +493,27 @@ public class PdaSaveServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan |
|
|
|
} |
|
|
|
} |
|
|
|
String memo = ""; |
|
|
|
String memo = ""; |
|
|
|
List<PrReworkProcessEntity> rpList = dsPartService.selectReworkPartCraft(rr.getPrtno(), rr.getRedono(), rr.getSplcode(), String.valueOf(rr.getSeqno())); |
|
|
|
List<PrReworkProcessEntity> rpList = dsPartService.selectReworkPartCraft(rr.getPrtno(), rr.getRedono(), rr.getSplcode(), String.valueOf(rr.getSeqno())); |
|
|
|
if (rpList == null && rpList.size() == 0) { |
|
|
|
if (rpList == null && rpList.isEmpty()) { |
|
|
|
//修改erp返工单工艺状态为无工艺
|
|
|
|
//修改erp返工单工艺状态为无工艺
|
|
|
|
//prReworkProcessDao.receiveOrder(rr, user.getLdapName(), 0);
|
|
|
|
//prReworkProcessDao.receiveOrder(rr, user.getLdapName(), 0);
|
|
|
|
} else { |
|
|
|
} else { |
|
|
|
//查询原订单
|
|
|
|
//查询原订单
|
|
|
|
// WorkOrder wo = prWorkOrderService.getWorkOrderUniqueRec(rr.getPrtno(), rr.getSplcode(), rr.getSono());
|
|
|
|
|
|
|
|
WorkOrder wo = workOrderService.getOne(Wrappers.<WorkOrder>lambdaQuery().eq(WorkOrder::getBatchNo, rr.getSplcode())); |
|
|
|
WorkOrder wo = workOrderService.getOne(Wrappers.<WorkOrder>lambdaQuery().eq(WorkOrder::getBatchNo, rr.getSplcode())); |
|
|
|
//syDockingLogService.sendDockingLog("查询原单", rr.getRedono(), rr.getPrtno()+","+rr.getSplcode()+","+rr.getSono());
|
|
|
|
|
|
|
|
if (wo == null) { |
|
|
|
if (wo == null) { |
|
|
|
wo = workOrderService.getOne(Wrappers.<WorkOrder>lambdaQuery().eq(WorkOrder::getBatchNo, rr.getSplcode())); |
|
|
|
wo = workOrderService.getOne(Wrappers.<WorkOrder>lambdaQuery().eq(WorkOrder::getBatchNo, rr.getSplcode())); |
|
|
|
//syDockingLogService.sendDockingLog("查询原单", rr.getRedono(), rr.getPrtno()+","+rr.getSplcode());
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
memo = memo + "物料号:" + rr.getPrtno() + "批次号:" + rr.getSplcode() + " 订单号:" + rr.getSono() + " ---- "; |
|
|
|
memo = memo + "物料号:" + rr.getPrtno() + "批次号:" + rr.getSplcode() + " 订单号:" + rr.getSono() + " ---- "; |
|
|
|
YieldOrder yieldOrder; |
|
|
|
YieldOrder yieldOrder; |
|
|
|
WorkOrder newWo = new WorkOrder(); |
|
|
|
WorkOrder newWo = new WorkOrder(); |
|
|
|
//zxh 20250820 返修发现部门为3400的才进行原单覆盖
|
|
|
|
//zxh 20250820 返修发现部门为3400的才进行原单覆盖
|
|
|
|
if (wo != null && rr.getUsedept().equals("3400")) { |
|
|
|
if (wo != null && "3400".equals(rr.getUsedept())) { |
|
|
|
memo = memo + "找到原单,woId:" + wo.getId() + " ---- "; |
|
|
|
memo = memo + "找到原单,woId:" + wo.getId() + " ---- "; |
|
|
|
yieldOrder = yieldOrderService.getYoByCardNo(wo.getCardNo()); |
|
|
|
yieldOrder = yieldOrderService.getById(wo.getYoId()); |
|
|
|
List<WorkPlan> wpList = null; |
|
|
|
List<WorkPlan> wpList = null; |
|
|
|
//返工路线是3400-3400内部返工的,需要COPY原订单且不更新上账时间和上账人,反之则走非车间内部返工处理
|
|
|
|
//返工路线是3400-3400内部返工的,需要COPY原订单且不更新上账时间和上账人,反之则走非车间内部返工处理
|
|
|
|
if (StringUtils.isNotBlank(rr.getDeptcode()) && rr.getDeptcode().trim().equals("3400-3400")) { |
|
|
|
if (StringUtils.isNotBlank(rr.getDeptcode()) && "3400-3400".equals(rr.getDeptcode().trim())) { |
|
|
|
//顺延原WO号
|
|
|
|
//顺延原WO号
|
|
|
|
//newWo.setWoCode(prWorkOrderCodeService.nextCode(yieldOrder.getPoCode()));
|
|
|
|
newWo.setWoCode(workOrderService.nextCode(yieldOrder.getYpCode())); |
|
|
|
newWo.setWpId(wo.getWpId()); |
|
|
|
newWo.setWpId(wo.getWpId()); |
|
|
|
//zxh 20250520 返修路线为3400-3400的返修订单在车间订单级记录返修订单接收人
|
|
|
|
//zxh 20250520 返修路线为3400-3400的返修订单在车间订单级记录返修订单接收人
|
|
|
|
newWo.setMemo("返工路线是3400-3400,记录返修接收人为" + rr.getRecman()); |
|
|
|
newWo.setMemo("返工路线是3400-3400,记录返修接收人为" + rr.getRecman()); |
|
|
|
@ -524,9 +522,10 @@ public class PdaSaveServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan |
|
|
|
log.info("3400-3400新车间订单:woCode:{},oldYoCode:{}", newWo.getWoCode(), yieldOrder.getYoCode()); |
|
|
|
log.info("3400-3400新车间订单:woCode:{},oldYoCode:{}", newWo.getWoCode(), yieldOrder.getYoCode()); |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
//copy原生产订单,更新单号和关键信息
|
|
|
|
//copy原生产订单,更新单号和关键信息
|
|
|
|
YieldOrder newYieldOrder = yieldOrder; |
|
|
|
YieldOrder newYieldOrder = new YieldOrder(); |
|
|
|
newYieldOrder.setYoCode(null); |
|
|
|
BeanUtils.copyProperties(yieldOrder, newYieldOrder); |
|
|
|
newYieldOrder.setDemandDate(new Date()); |
|
|
|
newYieldOrder.setId(null); |
|
|
|
|
|
|
|
// newYieldOrder.setDemandDate(rr.getReqdate());
|
|
|
|
//如果接收人不为空,则默认此接收人和接收时间
|
|
|
|
//如果接收人不为空,则默认此接收人和接收时间
|
|
|
|
if (StringUtils.isNotBlank(rr.getRecman())) { |
|
|
|
if (StringUtils.isNotBlank(rr.getRecman())) { |
|
|
|
//user = epDosingRecDao.getUserByLdapName(rr.getRecman().trim());
|
|
|
|
//user = epDosingRecDao.getUserByLdapName(rr.getRecman().trim());
|
|
|
|
@ -537,56 +536,54 @@ public class PdaSaveServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan |
|
|
|
// DateTime.parse(rr.getRecdate()) : new Date());
|
|
|
|
// DateTime.parse(rr.getRecdate()) : new Date());
|
|
|
|
newYieldOrder.setMemo(rr.getRemark()); |
|
|
|
newYieldOrder.setMemo(rr.getRemark()); |
|
|
|
newYieldOrder.setReworkMemo(rr.getDetail()); |
|
|
|
newYieldOrder.setReworkMemo(rr.getDetail()); |
|
|
|
//newYieldOrder.setPoQty(Double.valueOf(rr.getAmount()));
|
|
|
|
newYieldOrder.setYpQty(rr.getAmount()); |
|
|
|
newYieldOrder.setPrimaryCraft(rr.getDeptcode()); |
|
|
|
newYieldOrder.setPrimaryCraft(rr.getDeptcode()); |
|
|
|
//newYieldOrder.setSyncTime(new Date());
|
|
|
|
|
|
|
|
newYieldOrder.setReworkCode(rr.getRedono()); |
|
|
|
newYieldOrder.setReworkCode(rr.getRedono()); |
|
|
|
newYieldOrder.setReworkNo(Long.valueOf(rr.getSeqno())); |
|
|
|
newYieldOrder.setReworkNo(Long.valueOf(rr.getSeqno())); |
|
|
|
newYieldOrder.setYoCode(rr.getRedono()); |
|
|
|
newYieldOrder.setYoCode(rr.getRedono()); |
|
|
|
//zxh 20250522 找到原单,非3400-3400,复制pj后不再更改pocode
|
|
|
|
//zxh 20250522 找到原单,非3400-3400,复制pj后不再更改pocode
|
|
|
|
//newYieldOrder.setPoCode(rr.getRedono());
|
|
|
|
//newYieldOrder.setPoCode(rr.getRedono());
|
|
|
|
newYieldOrder.setProduceBool(Boolean.TRUE); |
|
|
|
newYieldOrder.setProduceBool(Boolean.TRUE); |
|
|
|
// newYieldOrder.setCurStatus(PjYieldOrder.CUR_STATUS_PROCESSING);
|
|
|
|
newYieldOrder.setStatus(YieldOrder.CUR_STATUS_PROCESSING); |
|
|
|
//周新昊 20240912 返修订单找到原单复制pj后为使用部门代码赋值
|
|
|
|
//周新昊 20240912 返修订单找到原单复制pj后为使用部门代码赋值
|
|
|
|
//newYieldOrder.setUseDeptcode(rr.getUsedept());
|
|
|
|
newYieldOrder.setUseDeptCode(rr.getUsedept()); |
|
|
|
yieldOrderService.save(newYieldOrder); |
|
|
|
yieldOrderService.save(newYieldOrder); |
|
|
|
log.info("不是厂内,保存新生产订单:yoId{},yoCode{}", newYieldOrder.getId(), newYieldOrder.getYoCode()); |
|
|
|
log.info("不是厂内,保存新生产订单:yoId{},yoCode{}", newYieldOrder.getId(), newYieldOrder.getYoCode()); |
|
|
|
//原订单已经入库,则更新接收人、接收时间并且车间订单号不顺延原订单号,反之则需要顺延原订单号
|
|
|
|
//原订单已经入库,则更新接收人、接收时间并且车间订单号不顺延原订单号,反之则需要顺延原订单号
|
|
|
|
if (wo.getPutStoreTime() != null) { |
|
|
|
if (wo.getPutStoreTime() != null) { |
|
|
|
//newWo.setWoCode(prWorkOrderCodeService.nextCode(rr.getRedono()));
|
|
|
|
newWo.setWoCode(workOrderService.nextCode(rr.getRedono())); |
|
|
|
newWo.setReInStore("1"); |
|
|
|
newWo.setReInStore("1"); |
|
|
|
//newYieldOrder.setPoCode(rr.getRedono());
|
|
|
|
newYieldOrder.setYpCode(rr.getRedono()); |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
// newWo.setWoCode(prWorkOrderCodeService.nextCode(yieldOrder.getPoCode()));
|
|
|
|
newWo.setWoCode(workOrderService.nextCode(yieldOrder.getYpCode())); |
|
|
|
} |
|
|
|
} |
|
|
|
//绑定新车间订单的接收信息
|
|
|
|
//绑定新车间订单的接收信息
|
|
|
|
//newWo.setPjYieldOrder(newYieldOrder);
|
|
|
|
newWo.setYoId(newYieldOrder.getId()); |
|
|
|
|
|
|
|
|
|
|
|
//更新原生产订单状态为已关闭
|
|
|
|
//更新原生产订单状态为已关闭
|
|
|
|
YieldOrder oldYo = yieldOrderService.getById(wo.getYoId()); |
|
|
|
YieldOrder oldYo = yieldOrderService.getById(yieldOrder.getId()); |
|
|
|
if (oldYo != null) { |
|
|
|
if (oldYo != null) { |
|
|
|
// oldYo.setCurStatus(PjYieldOrder.CUR_STATUS_VOIDED);
|
|
|
|
oldYo.setStatus(YieldOrder.CUR_STATUS_VOIDED); |
|
|
|
oldYo.setCustodian(rr.getRecman()); |
|
|
|
|
|
|
|
yieldOrderService.updateById(oldYo); |
|
|
|
yieldOrderService.updateById(oldYo); |
|
|
|
} |
|
|
|
} |
|
|
|
memo = memo + "新生产订单,yoId:" + newYieldOrder.getId() + " ---- "; |
|
|
|
memo = memo + "新生产订单,yoId:" + newYieldOrder.getId() + " ---- "; |
|
|
|
} |
|
|
|
} |
|
|
|
//返工订单流程卡号重新生成
|
|
|
|
//返工订单流程卡号重新生成
|
|
|
|
//newWo.setCardNo(prWorkOrderService.nextCardNo(wo.getPjYieldOrder().getPoCode(), wo.getCardNo()));
|
|
|
|
newWo.setCardNo(workOrderService.nextCardNo(yieldOrder.getYpCode(), wo.getCardNo())); |
|
|
|
newWo.setBatchNo(rr.getSplcode()); |
|
|
|
newWo.setBatchNo(rr.getSplcode()); |
|
|
|
newWo.setMakeQty(Double.valueOf(rr.getAmount())); |
|
|
|
newWo.setMakeQty(rr.getAmount()); |
|
|
|
newWo.setRunStatus(WorkOrder.RUN_STATUS_NORMAL); |
|
|
|
newWo.setRunStatus(WorkOrder.RUN_STATUS_NORMAL); |
|
|
|
newWo.setPriority(wo.getPriority()); |
|
|
|
newWo.setPriority(wo.getPriority()); |
|
|
|
newWo.setReworkCode(rr.getRedono()); |
|
|
|
newWo.setReworkCode(rr.getRedono()); |
|
|
|
newWo.setReworkNo(rr.getSeqno().intValue()); |
|
|
|
newWo.setReworkNo(rr.getSeqno()); |
|
|
|
newWo.setOem("0"); |
|
|
|
newWo.setOem("0"); |
|
|
|
newWo.setOemOut("1"); |
|
|
|
newWo.setOemOut("1"); |
|
|
|
//newWo.setOemType(FlowBusinessBean.STATUS_NEW);
|
|
|
|
newWo.setOemType(-1); |
|
|
|
newWo.setPlanner(wo.getPlanner()); |
|
|
|
newWo.setPlanner(wo.getPlanner()); |
|
|
|
newWo.setDispatcher(wo.getDispatcher()); |
|
|
|
newWo.setDispatcher(wo.getDispatcher()); |
|
|
|
newWo.setReworkMemo(rr.getDetail()); |
|
|
|
newWo.setReworkMemo(rr.getDetail()); |
|
|
|
newWo.setDemandDate(new Date()); |
|
|
|
// newWo.setDemandDate(rr.getReqdate());
|
|
|
|
workOrderService.save(newWo); |
|
|
|
workOrderService.addWorkOrder(newWo); |
|
|
|
log.info("保存新车间订单:woId{},woCode{}", newWo.getId(), newWo.getWoCode()); |
|
|
|
log.info("保存新车间订单:woId{},woCode{}", newWo.getId(), newWo.getWoCode()); |
|
|
|
//组装生产工序
|
|
|
|
//组装生产工序
|
|
|
|
wpList = new ArrayList<>(rpList.size()); |
|
|
|
wpList = new ArrayList<>(rpList.size()); |
|
|
|
@ -627,6 +624,7 @@ public class PdaSaveServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan |
|
|
|
return prReworkProcessList; |
|
|
|
return prReworkProcessList; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
public void completeOrder(MesRbRedoRoutDTO rr, String userName) { |
|
|
|
public void completeOrder(MesRbRedoRoutDTO rr, String userName) { |
|
|
|
WorkOrder wo = workOrderService.getOne(Wrappers.lambdaQuery(WorkOrder.class) |
|
|
|
WorkOrder wo = workOrderService.getOne(Wrappers.lambdaQuery(WorkOrder.class) |
|
|
|
.eq(WorkOrder::getBatchNo, rr.getSplcode())); |
|
|
|
.eq(WorkOrder::getBatchNo, rr.getSplcode())); |
|
|
|
|