工单删除

highway
wws 1 year ago
parent 00a06d2898
commit 58bb931a10

@ -164,21 +164,49 @@ public class ProOrderWorkorderController extends BaseController {
if (ObjectUtils.isEmpty(proOrderWorkorders)) {
throw new ServiceException("所查询的工单为空!!");
}
// 划分工单
List<ProOrderWorkorder> whiteWorkOrder = new ArrayList<>();
List<ProOrderWorkorder> proWorkOrder = new ArrayList<>();
for (ProOrderWorkorder data : proOrderWorkorders) {
if (data.getProdType().equals("white")) {
whiteWorkOrder.add(data);
}else {
proWorkOrder.add(data);
}
}
// 白坯检验逻辑
for (ProOrderWorkorder white : whiteWorkOrder) {
if (!(white.getStatus().equals("w0") || white.getStatus().equals("w1"))) {
throw new ServiceException("工单已进行生产,不允许删除!");
}
}
if (whiteWorkOrder.size() > 0) {
proOrderWorkorderService.deleteWhiteWorkorderByWorkOrder(whiteWorkOrder);
}
// 成品检验逻辑
ArrayList<String> strings = new ArrayList<>();
for (ProOrderWorkorder proOrderWorkorder : proOrderWorkorders) {
for (ProOrderWorkorder proOrderWorkorder : proWorkOrder) {
String status = proOrderWorkorder.getStatus();
if (status.equals("w0")) {
if (status.equals("w0") || status.equals("w1")) {
strings.add(proOrderWorkorder.getWorkorderId());
} else {
throw new ServiceException("工单已经下发,不能删除!");
throw new ServiceException("工单已进行生产,不允许删除!");
}
// 判断是否含有湿料计划 boolean值存在为true不存在为false
if (proWetMaterialPlanDetailService.selectProWetMaterialPlanDetailByWorkId(proOrderWorkorder.getWorkorderId())) {
throw new ServiceException("工单已创建湿料计划,不能删除!");
}
// if (proWetMaterialPlanDetailService.selectProWetMaterialPlanDetailByWorkId(proOrderWorkorder.getWorkorderId())) {
// throw new ServiceException("工单已创建湿料计划,不能删除!");
// }
}
String[] orderWorkerIds = strings.toArray(new String[0]);
return toAjax(proOrderWorkorderService.deleteProOrderWorkorderByWorkorderIds(orderWorkerIds));
// 删除成品工单
if (proWorkOrder.size() > 0) {
proOrderWorkorderService.deleteProOrderWorkorderByWorkorderIds(orderWorkerIds);
}
return toAjax(1);
}
/**

@ -114,4 +114,10 @@ public interface IProOrderWorkorderService {
* @return
*/
AjaxResult getWorkOrders(String code);
/**
*
* @param whiteWorkOrder
*/
void deleteWhiteWorkorderByWorkOrder(List<ProOrderWorkorder> whiteWorkOrder);
}

@ -4,6 +4,7 @@ import com.alibaba.fastjson2.JSONArray;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.op.common.core.context.SecurityContextHolder;
import com.op.common.core.domain.R;
import com.op.common.core.exception.ServiceException;
import com.op.common.core.utils.DateUtils;
import com.op.common.core.utils.bean.BeanUtils;
import com.op.common.core.utils.uuid.IdUtils;
@ -801,6 +802,58 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService {
return success(reversalWorkOrderList);
}
/**
*
* @param whiteWorkOrder
*/
@Override
@DS("#header.poolName")
@Transactional
public void deleteWhiteWorkorderByWorkOrder(List<ProOrderWorkorder> whiteWorkOrder) {
// 检验-湿料计划下发不允许删除
for (ProOrderWorkorder data : whiteWorkOrder) {
ProWetMaterialPlan plan = proWetMaterialPlanMapper.selectProWetMaterialPlanByWorkId(data.getWorkorderId());
if (plan != null) {
if (plan.getSyncFlag().equals("Y")) {
throw new ServiceException("工单下湿料计划已下发,不允许删除!");
}
}
}
// 删除逻辑
for (ProOrderWorkorder data : whiteWorkOrder) {
// 删除工单
proOrderWorkorderMapper.deleteProOrderWorkorderByWorkorderId(data.getWorkorderId());
// 获得对应订单和母订单
ProOrder childOrder = proOrderMapper.selectProOrderByOrderCode(data.getOrderCode());
ProOrder parentOrder = proOrderMapper.selectProOrderByOrderCode(childOrder.getParentOrder());
// 处理订单信息
childOrder.setQuantitySplit(childOrder.getQuantitySplit()-data.getQuantitySplit());
childOrder.setQuantity(childOrder.getQuantity()-data.getQuantitySplit());
childOrder.setUpdateBy(SecurityContextHolder.getUserName());
childOrder.setUpdateTime(DateUtils.getNowDate());
parentOrder.setQuantity(parentOrder.getQuantity()-data.getQuantitySplit());
parentOrder.setQuantitySplit(parentOrder.getQuantitySplit()-data.getQuantitySplit());
parentOrder.setUpdateBy(SecurityContextHolder.getUserName());
parentOrder.setUpdateTime(DateUtils.getNowDate());
parentOrder.setStatus("o1");
// 更新至数据库
proOrderMapper.updateProOrder(childOrder);
proOrderMapper.updateProOrder(parentOrder);
// 将级联所有白坯订单状态改为拆分中
proOrderMapper.updateOrderStatusByOrderCode(parentOrder.getOrderCode());
// 删除湿料计划中的湿料详情
proWetMaterialPlanDetailMapper.deleteProWetMaterialPlanDetailByWorkId(data.getWorkorderId());
// 删除对应批次此信息
proOrderWorkorderBatchMapper.deleteProOrderWorkorderBatchByWorkorderId(data.getWorkorderId());
}
}
/**
*
*

@ -295,7 +295,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<update id="updateOrderBatch">
<foreach collection="workers" item="worker" index="index" separator=";">
update pro_order set quantity_split = quantity_split-#{worker.quantitySplit},
update_time = GETDATE()
update_time = GETDATE(),
status = 'o1'
where id = #{worker.orderId}
</foreach>
</update>

Loading…
Cancel
Save