白坯订单管理

highway
wws 1 year ago
parent 04de6bbefa
commit 8d24223198

@ -109,4 +109,11 @@ public interface ProWetMaterialPlanDetailMapper {
* @return
*/
ProWetMaterialPlan selectProWetMaterialPlanById(String wetMaterialPlanId);
/**
* code湿
* @param orderCode
* @return
*/
ProWetMaterialPlanDetail selectProWetMaterialPlanDetailByOrderCode(String orderCode);
}

@ -356,6 +356,27 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService {
@Override
@DS("#header.poolName")
public AjaxResult getOrderAndWorkInfo(ProOrderWorkorder proOrderWorkorder) {
if (proOrderWorkorder.getProdType().equals("white")) {
// 获取子母订单
ProOrder childOrder = proOrderMapper.selectProOrderByOrderCode(proOrderWorkorder.getOrderCode());
ProOrder proOrder = proOrderMapper.selectProOrderByOrderCode(childOrder.getParentOrder());
// 将子订单放入母订单
List<ProOrder> orderList = new ArrayList<>();
orderList.add(childOrder);
proOrder.setChildren(orderList);
// 工单
ProOrderWorkorder workOrder = proOrderWorkorderMapper.selectProOrderWorkorderByWorkorderId(proOrderWorkorder.getWorkorderId());
formatProOrderWorkorder(workOrder);
Map orderAndWork = new HashMap();
orderAndWork.put("order", proOrder);
orderAndWork.put("workOrder", workOrder);
return success(orderAndWork);
} else {
boolean run = true;
while (run) {
ProOrderWorkorder fatherWorkOrder = proOrderWorkorderMapper.selectWorkOrderByCode(proOrderWorkorder.getParentOrder());
@ -374,13 +395,13 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService {
}
// 通过获取到的工单信息获取父工单
formatProOrderWorkorder(proOrderWorkorder);
Map orderAndWork = new HashMap();
orderAndWork.put("order", proOrder);
orderAndWork.put("workOrder", proOrderWorkorder);
return success(orderAndWork);
}
}
/**
* list
@ -486,6 +507,81 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService {
}
if (checkout) {
// 白坯订单变更逻辑
if (splitOrderDTO.getProduct().getProdType().equals("white")) {
// 删除所有工单下的批次信息
int i = proOrderWorkorderBatchMapper.deleteProOrderWorkorderBatchByWorkorderIds(workorderIds);
// 删除湿料计划
proWetMaterialPlanDetailMapper.deleteProWetMaterialPlanDetailByWorkId(proWorkOrder.getWorkorderId());
// 创建订单信息将信息copy进去
ProOrder proOrder = new ProOrder();
BeanUtils.copyProperties(splitOrderDTO.getProduct(), proOrder);
// 创建批次表通用对象
ProOrderWorkorderBatch workBatch = setCommonBatchAttribute();
// 更新母订单信息
proOrder.setQuantitySplit(proOrder.getQuantitySplit() + splitOrderDTO.getSplitNum());
proOrder.setUpdateBy(SecurityContextHolder.getUserName());
proOrder.setUpdateTime(DateUtils.getNowDate());
proOrder.setAtrr1("");
// 更新母订单至数据库
proOrderMapper.updateProOrder(proOrder);
// 更新子订单
ProOrder childOrder = new ProOrder();
BeanUtils.copyProperties(proOrder.getChildren().get(0),childOrder);
childOrder.setAtrr1("");
childOrder.setQuantitySplit(childOrder.getQuantitySplit() + splitOrderDTO.getSplitNum());
childOrder.setQuantity(childOrder.getQuantitySplit());
childOrder.setUpdateBy(SecurityContextHolder.getUserName());
childOrder.setUpdateTime(DateUtils.getNowDate());
// 更新子订单至数据库
proOrderMapper.updateProOrder(childOrder);
// 工单信息更新
ProOrderWorkorder proOrderWorkorder = workOrderList.get(0);
proOrderWorkorder.setQuantitySplit(splitOrderDTO.getSplitNum());
proOrderWorkorder.setUpdateBy(SecurityContextHolder.getUserName());
proOrderWorkorder.setUpdateTime(DateUtils.getNowDate());
// 2.将工单信息更新至数据库
if (splitOrderDTO.getProdLineCode() != null) {
proOrderWorkorder.setProdLineCode(splitOrderDTO.getProdLineCode());
}
if (splitOrderDTO.getProductDate() != null) {
proOrderWorkorder.setProductDate(splitOrderDTO.getProductDate());
}
if (splitOrderDTO.getShiftId() != null) {
proOrderWorkorder.setShiftId(splitOrderDTO.getShiftId());
}
if (splitOrderDTO.getRouteCode() != null) {
proOrderWorkorder.setRouteCode(splitOrderDTO.getRouteCode());
}
// 白坯工单返修-车数
if (splitOrderDTO.getCarNum() != null) {
proOrderWorkorder.setCarNum(splitOrderDTO.getCarNum());
}
proOrderWorkorderMapper.updateProOrderWorkorder(proOrderWorkorder);
workBatch.setWorkorderId(proOrderWorkorder.getWorkorderId());
// 生成批次表信息并更新至数据库
for (Batch batch : splitOrderDTO.getFormFields()) {
// 生成批次id
workBatch.setBatchId(IdUtils.fastSimpleUUID());
// 生成批次号
workBatch.setBatchCode(batch.getBatchCode());
// 生成批次数量
workBatch.setBatchQuantity(batch.getBatchQuantity());
// 更新至数据库
proOrderWorkorderBatchMapper.insertProOrderWorkorderBatch(workBatch);
// 测试
// System.out.println("这里是workorderId----------->"+workBatch.getWorkorderId());
// System.out.println("这里是拆分数量----------->"+workBatch.getBatchQuantity());
}
return success("变更成功");
} else {
// 删除所有工单s下的批次信息
int i = proOrderWorkorderBatchMapper.deleteProOrderWorkorderBatchByWorkorderIds(workorderIds);
// 删除湿料计划
@ -529,9 +625,9 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService {
}
// 白坯工单返修-车数
if (proOrderWorkorder.getProdType().equals("white")) {
int everyNum = (int) Math.ceil(proOrder.getQuantity() / proOrder.getCarNum());
int carNum = (int) Math.ceil(splitOrderDTO.getSplitNum() / everyNum);
proOrderWorkorder.setCarNum(carNum);
if (splitOrderDTO.getCarNum() != null) {
proOrderWorkorder.setCarNum(splitOrderDTO.getCarNum());
}
}
proOrderWorkorderMapper.updateProOrderWorkorder(proOrderWorkorder);
@ -568,7 +664,11 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService {
run = false;
}
}
return success();
return success("变更成功");
// throw new RuntimeException();
}
}

@ -116,6 +116,15 @@
where wet_material_plan_id = #{wetMaterialPlanId}
</select>
<select id="selectProWetMaterialPlanDetailByOrderCode"
resultType="com.op.plan.domain.ProWetMaterialPlanDetail">
select id, factory_code, plan_time, sync_flag, create_by, create_time, update_by, update_time,
order_type, prod_code, prod_desc, prod_source, quantity, unit, atrr1, atrr2, atrr3, status,
prod_type, plan_code, shift_id, shift_desc from pro_wet_material_plan
where workorder_id in (select workorder_id from pro_order_workorder where order_code = #{orderCode}
)
</select>
<insert id="insertProWetMaterialPlanDetail" parameterType="ProWetMaterialPlanDetail">
insert into pro_wet_material_plan_detail
<trim prefix="(" suffix=")" suffixOverrides=",">

Loading…
Cancel
Save