发货单打印调整
This commit is contained in:
parent
6e92b0dd0e
commit
08574f46cf
@ -151,7 +151,7 @@ public class bdgzsomthingController {
|
|||||||
BeanUtils.toBean(list, bdgzsomthingRespVO.class));
|
BeanUtils.toBean(list, bdgzsomthingRespVO.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Scheduled(fixedRate = 10800000)
|
// @Scheduled(fixedRate = 10800000)
|
||||||
public void scheduledTask() {
|
public void scheduledTask() {
|
||||||
bdgzsomthingService.selectds();
|
bdgzsomthingService.selectds();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -10,7 +10,9 @@ import com.chanko.yunxi.mes.module.heli.dal.dataobject.configuration.Configurati
|
|||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.dataacquisition.DataAcquisitionDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.dataacquisition.DataAcquisitionDO;
|
||||||
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
import org.apache.ibatis.annotations.Select;
|
import org.apache.ibatis.annotations.Select;
|
||||||
|
import org.apache.ibatis.annotations.Update;
|
||||||
import com.chanko.yunxi.mes.module.heli.controller.admin.dataacquisition.vo.*;
|
import com.chanko.yunxi.mes.module.heli.controller.admin.dataacquisition.vo.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -46,18 +48,57 @@ public interface DataAcquisitionMapper extends BaseMapperX<DataAcquisitionDO> {
|
|||||||
"ORDER BY t1.running_status ASC")
|
"ORDER BY t1.running_status ASC")
|
||||||
List<DataAcquisitionDO> selectLatestByCode();
|
List<DataAcquisitionDO> selectLatestByCode();
|
||||||
|
|
||||||
@Select("SELECT t1.id FROM equipment_data_acquisition t1 " +
|
@Select("SELECT id FROM (" +
|
||||||
"INNER JOIN (" +
|
" SELECT t1.id, " +
|
||||||
" SELECT code, MAX(create_time) AS max_create_time " +
|
" @rn := IF(@prev_code = t1.code, @rn + 1, 1) AS row_num, " +
|
||||||
" FROM equipment_data_acquisition " +
|
" @prev_code := t1.code " +
|
||||||
" WHERE status = 1 " +
|
" FROM equipment_data_acquisition t1 " +
|
||||||
" GROUP BY code" +
|
" INNER JOIN (" +
|
||||||
") t2 ON t1.code = t2.code " +
|
" SELECT code, MAX(CASE WHEN status = 1 THEN create_time END) AS max_status1_time " +
|
||||||
"WHERE t1.status = 0 " +
|
" FROM equipment_data_acquisition GROUP BY code" +
|
||||||
" AND t1.create_time > t2.max_create_time " +
|
" ) t2 ON t1.code = t2.code, (SELECT @rn := 0, @prev_code := '') vars " +
|
||||||
"ORDER BY t1.create_time ASC")
|
" WHERE t1.status = 0 " +
|
||||||
|
" AND (t2.max_status1_time IS NULL OR t1.create_time > t2.max_status1_time) " +
|
||||||
|
" ORDER BY t1.code, t1.create_time" +
|
||||||
|
") ranked WHERE row_num = 1")
|
||||||
List<Long> selectNextStatusZeroIds();
|
List<Long> selectNextStatusZeroIds();
|
||||||
|
|
||||||
|
@Update("UPDATE equipment_data_acquisition t " +
|
||||||
|
"INNER JOIN (" +
|
||||||
|
" SELECT target_id FROM (" +
|
||||||
|
" SELECT id AS target_id FROM (" +
|
||||||
|
" SELECT t1.id, " +
|
||||||
|
" @rn := IF(@prev_code = t1.code, @rn + 1, 1) AS row_num, " +
|
||||||
|
" @prev_code := t1.code " +
|
||||||
|
" FROM equipment_data_acquisition t1 " +
|
||||||
|
" INNER JOIN (" +
|
||||||
|
" SELECT code, MAX(CASE WHEN status = 1 THEN create_time END) AS max_status1_time " +
|
||||||
|
" FROM equipment_data_acquisition GROUP BY code" +
|
||||||
|
" ) t2 ON t1.code = t2.code, (SELECT @rn := 0, @prev_code := '') vars " +
|
||||||
|
" WHERE t1.status = 0 " +
|
||||||
|
" AND (t2.max_status1_time IS NULL OR t1.create_time > t2.max_status1_time) " +
|
||||||
|
" ORDER BY t1.code, t1.create_time" +
|
||||||
|
" ) ranked WHERE row_num = 1" +
|
||||||
|
" ) tmp" +
|
||||||
|
") target ON t.id = target.target_id " +
|
||||||
|
"SET t.status = 1")
|
||||||
|
int updateNextStatusToActive();
|
||||||
|
|
||||||
|
@Update("UPDATE equipment_data_acquisition t " +
|
||||||
|
"INNER JOIN (" +
|
||||||
|
" SELECT id, " +
|
||||||
|
" DATE_ADD(#{baseTime}, INTERVAL rn * 5 SECOND) AS new_time " +
|
||||||
|
" FROM (" +
|
||||||
|
" SELECT id, code, " +
|
||||||
|
" @rn := IF(@prev_code = code, @rn + 1, 0) AS rn, " +
|
||||||
|
" @prev_code := code " +
|
||||||
|
" FROM equipment_data_acquisition, (SELECT @rn := 0, @prev_code := '') vars " +
|
||||||
|
" ORDER BY code, id" +
|
||||||
|
" ) ranked" +
|
||||||
|
") calc ON t.id = calc.id " +
|
||||||
|
"SET t.create_time = calc.new_time")
|
||||||
|
int batchUpdateTimeByGroup(@Param("baseTime") java.time.LocalDateTime baseTime);
|
||||||
|
|
||||||
default List<DataAcquisitionDO> getDataAcquisitionList(String code){
|
default List<DataAcquisitionDO> getDataAcquisitionList(String code){
|
||||||
MPJLambdaWrapper<DataAcquisitionDO> query = new MPJLambdaWrapper<>();
|
MPJLambdaWrapper<DataAcquisitionDO> query = new MPJLambdaWrapper<>();
|
||||||
query.selectAll(DataAcquisitionDO.class)
|
query.selectAll(DataAcquisitionDO.class)
|
||||||
@ -70,6 +111,6 @@ public interface DataAcquisitionMapper extends BaseMapperX<DataAcquisitionDO> {
|
|||||||
.last("limit 10");
|
.last("limit 10");
|
||||||
return selectList(query);
|
return selectList(query);
|
||||||
}
|
}
|
||||||
@Select("")
|
@Select("SELECT status FROM equipment_job_config LIMIT 1;")
|
||||||
Integer selectStatus();
|
Integer selectStatus();
|
||||||
}
|
}
|
||||||
@ -3,7 +3,6 @@ package com.chanko.yunxi.mes.module.heli.service.dataacquisition;
|
|||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
||||||
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
|
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
|
||||||
import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils;
|
import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils;
|
||||||
import com.chanko.yunxi.mes.module.heli.controller.admin.dataacquisition.vo.DataAcquisitionPageReqVO;
|
import com.chanko.yunxi.mes.module.heli.controller.admin.dataacquisition.vo.DataAcquisitionPageReqVO;
|
||||||
@ -88,23 +87,13 @@ public class DataAcquisitionServiceImpl implements DataAcquisitionService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateDataCollection() {
|
public void updateDataCollection() {
|
||||||
// 查找每个 code 分组中 status=1 的最大 createTime 之后的 status=0 的最小记录的 id
|
|
||||||
Integer integer = dataAcquisitionMapper.selectStatus();
|
Integer integer = dataAcquisitionMapper.selectStatus();
|
||||||
System.out.println("=== equipment_job_config status: " + integer);
|
log.info("=== equipment_job_config status: {}", integer);
|
||||||
if (ObjectUtil.isNotEmpty(integer) && integer == 0) {
|
if (ObjectUtil.isNotEmpty(integer) && integer == 0) {
|
||||||
List<Long> ids = dataAcquisitionMapper.selectNextStatusZeroIds();
|
int rows = dataAcquisitionMapper.updateNextStatusToActive();
|
||||||
System.out.println("=== selectNextStatusZeroIds returned " + (ids == null ? 0 : ids.size()) + " ids: " + ids);
|
log.info("=== updated rows: {}", rows);
|
||||||
if (ObjectUtil.isNotEmpty(ids)) {
|
|
||||||
LambdaUpdateWrapper<DataAcquisitionDO> updateWrapper = new LambdaUpdateWrapper<>();
|
|
||||||
updateWrapper.in(DataAcquisitionDO::getId, ids);
|
|
||||||
updateWrapper.set(DataAcquisitionDO::getStatus, 1);
|
|
||||||
int rows = dataAcquisitionMapper.update(null, updateWrapper);
|
|
||||||
System.out.println("=== updated rows: " + rows);
|
|
||||||
} else {
|
|
||||||
System.out.println("=== No status=0 records found");
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
System.out.println("=== Task disabled (status != 0)");
|
log.info("=== Task disabled (status != 0)");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -120,33 +109,8 @@ public class DataAcquisitionServiceImpl implements DataAcquisitionService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateTime(LocalDateTime acquisitionTime) {
|
public void updateTime(LocalDateTime acquisitionTime) {
|
||||||
// 查询所有数据按 code 分组,并按 id 排序(id 代表插入顺序)
|
// 一条 SQL 批量更新:按 code 分组,每组内按 id 排序,第一条用 acquisitionTime,之后每条递增5秒
|
||||||
List<DataAcquisitionDO> allData = dataAcquisitionMapper.selectList(
|
dataAcquisitionMapper.batchUpdateTimeByGroup(acquisitionTime);
|
||||||
new LambdaQueryWrapper<DataAcquisitionDO>()
|
|
||||||
.orderByAsc(DataAcquisitionDO::getId)
|
|
||||||
);
|
|
||||||
|
|
||||||
if (allData == null || allData.isEmpty()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 按 code 分组
|
|
||||||
Map<String, List<DataAcquisitionDO>> groupedByCode = allData.stream()
|
|
||||||
.collect(Collectors.groupingBy(DataAcquisitionDO::getCode, Collectors.toList()));
|
|
||||||
|
|
||||||
// 遍历每个分组,更新时间
|
|
||||||
for (Map.Entry<String, List<DataAcquisitionDO>> entry : groupedByCode.entrySet()) {
|
|
||||||
List<DataAcquisitionDO> groupData = entry.getValue();
|
|
||||||
for (int i = 0; i < groupData.size(); i++) {
|
|
||||||
DataAcquisitionDO record = groupData.get(i);
|
|
||||||
// 第一条记录使用 updateReqVO 的时间,之后的每条增加5秒
|
|
||||||
LocalDateTime newCreateTime = acquisitionTime.plusSeconds(i * 5L);
|
|
||||||
|
|
||||||
// 更新该条记录的创建时间
|
|
||||||
record.setCreateTime(newCreateTime);
|
|
||||||
dataAcquisitionMapper.updateById(record);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -10,6 +10,7 @@ import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
|
|||||||
import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils;
|
import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils;
|
||||||
import com.chanko.yunxi.mes.module.heli.controller.admin.screen.vo.ScreenPageReqVO;
|
import com.chanko.yunxi.mes.module.heli.controller.admin.screen.vo.ScreenPageReqVO;
|
||||||
import com.chanko.yunxi.mes.module.heli.controller.admin.screen.vo.ScreenSaveReqVO;
|
import com.chanko.yunxi.mes.module.heli.controller.admin.screen.vo.ScreenSaveReqVO;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.customer.CustomerDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.equipmanufacture.EquipManufactureDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.equipmanufacture.EquipManufactureDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.found.FoundDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.found.FoundDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.monordnum.MonOrdNumDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.monordnum.MonOrdNumDO;
|
||||||
@ -28,6 +29,7 @@ import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatch
|
|||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatchDetailDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatchDetailDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskreport.TaskReportDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskreport.TaskReportDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.yearnum.YearNumDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.yearnum.YearNumDO;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.customer.CustomerMapper;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.equipmanufacture.EquipManufactureMapper;
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.equipmanufacture.EquipManufactureMapper;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.found.FoundMapper;
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.found.FoundMapper;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.monordnum.MonOrdNumMapper;
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.monordnum.MonOrdNumMapper;
|
||||||
@ -114,6 +116,8 @@ public class ScreenServiceImpl implements ScreenService {
|
|||||||
private ProcessBomDetailMapper processBomDetailMapper;
|
private ProcessBomDetailMapper processBomDetailMapper;
|
||||||
@Resource
|
@Resource
|
||||||
private ProcessDesignProgressMapper processDesignProgressMapper;
|
private ProcessDesignProgressMapper processDesignProgressMapper;
|
||||||
|
@Resource
|
||||||
|
private CustomerMapper customerMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Long createScreen(ScreenSaveReqVO createReqVO) {
|
public Long createScreen(ScreenSaveReqVO createReqVO) {
|
||||||
@ -257,14 +261,62 @@ public class ScreenServiceImpl implements ScreenService {
|
|||||||
@Override
|
@Override
|
||||||
public List<ProcessDetailDO> searchProgress(Integer type) {
|
public List<ProcessDetailDO> searchProgress(Integer type) {
|
||||||
ProcessDO processDO = processMapper.selectType(type);
|
ProcessDO processDO = processMapper.selectType(type);
|
||||||
if (ObjectUtil.isNotEmpty(processDO)) {
|
if (ObjectUtil.isEmpty(processDO)) {
|
||||||
List<ProcessDetailDO> processDetailDOS = processDetailMapper.selectProcessIdAndIsSelect(processDO.getId());
|
return new ArrayList<>();
|
||||||
if (ObjectUtil.isNotEmpty(processDetailDOS)) {
|
|
||||||
return processDetailDOS;
|
|
||||||
}
|
|
||||||
return processDetailMapper.selectProcessId(processDO.getId());
|
|
||||||
}
|
}
|
||||||
return new ArrayList<>();
|
|
||||||
|
List<ProcessDetailDO> processDetailDOS = processDetailMapper.selectProcessIdAndIsSelect(processDO.getId());
|
||||||
|
List<ProcessDetailDO> result;
|
||||||
|
if (ObjectUtil.isEmpty(processDetailDOS)) {
|
||||||
|
result = processDetailMapper.selectProcessId(processDO.getId());
|
||||||
|
} else {
|
||||||
|
result = processDetailDOS;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ObjectUtil.isEmpty(result)) {
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 批量查询项目和客户信息,避免N+1查询
|
||||||
|
List<Long> projectIds = result.stream()
|
||||||
|
.map(ProcessDetailDO::getProjectId)
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.distinct()
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
if (CollUtil.isEmpty(projectIds)) {
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<Long, ProjectOrderDO> projectOrderMap = projectOrderMapper.selectBatchIds(projectIds).stream()
|
||||||
|
.collect(Collectors.toMap(ProjectOrderDO::getId, Function.identity()));
|
||||||
|
|
||||||
|
List<Long> customerIds = projectOrderMap.values().stream()
|
||||||
|
.map(ProjectOrderDO::getCustomerId)
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.distinct()
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
Map<Long, CustomerDO> customerMap;
|
||||||
|
if (CollUtil.isNotEmpty(customerIds)) {
|
||||||
|
customerMap = customerMapper.selectBatchIds(customerIds).stream()
|
||||||
|
.collect(Collectors.toMap(CustomerDO::getId, Function.identity()));
|
||||||
|
} else {
|
||||||
|
customerMap = Collections.emptyMap();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 设置项目名称和客户简称
|
||||||
|
result.forEach(processDetailDO -> {
|
||||||
|
ProjectOrderDO projectOrderDO = projectOrderMap.get(processDetailDO.getProjectId());
|
||||||
|
if (ObjectUtil.isNotEmpty(projectOrderDO) && ObjectUtil.isNotEmpty(projectOrderDO.getCustomerId())) {
|
||||||
|
CustomerDO customerDO = customerMap.get(projectOrderDO.getCustomerId());
|
||||||
|
if (ObjectUtil.isNotEmpty(customerDO)) {
|
||||||
|
processDetailDO.setProjectNameSim(projectOrderDO.getProjectNameSim() + "(" + customerDO.getBrief() + ")");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void syncYearData() {
|
public void syncYearData() {
|
||||||
@ -345,6 +397,19 @@ public class ScreenServiceImpl implements ScreenService {
|
|||||||
ProcessDO process = getProcess(1);
|
ProcessDO process = getProcess(1);
|
||||||
List<ProjectOrderDO> projectOrderDOS =projectOrderMapper.selectOrder();
|
List<ProjectOrderDO> projectOrderDOS =projectOrderMapper.selectOrder();
|
||||||
List<ProcessDetailDO> processDetailDOS = processDetailMapper.selectProcessIdAndIsSelect(process.getId());
|
List<ProcessDetailDO> processDetailDOS = processDetailMapper.selectProcessIdAndIsSelect(process.getId());
|
||||||
|
for (ProcessDetailDO processDetailDO : processDetailDOS) {
|
||||||
|
ProjectOrderDO projectOrderDO = projectOrderMapper.selectById(processDetailDO.getProjectId());
|
||||||
|
if (ObjectUtil.isNotEmpty(projectOrderDO)){
|
||||||
|
processDetailDO.setProjectName(projectOrderDO.getProjectName());
|
||||||
|
processDetailDO.setProjectNameSim(projectOrderDO.getProjectNameSim());
|
||||||
|
processDetailDO.setProjectId(projectOrderDO.getId());
|
||||||
|
processDetailDO.setOrdDate(projectOrderDO.getOrderTime());
|
||||||
|
processDetailDO.setProjectStartTime(projectOrderDO.getProjectStartTime());
|
||||||
|
processDetailDO.setProjectEndTime(projectOrderDO.getProjectEndTime());
|
||||||
|
processDetailDO.setDeliveryStatus(projectOrderDO.getDeliveryStatus());
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
//删除现有数据
|
//删除现有数据
|
||||||
deleteProcessDetail(process.getId());
|
deleteProcessDetail(process.getId());
|
||||||
List<ProcessDetailDO> addList = new ArrayList<>();
|
List<ProcessDetailDO> addList = new ArrayList<>();
|
||||||
@ -535,6 +600,19 @@ public class ScreenServiceImpl implements ScreenService {
|
|||||||
ProcessDO process = getProcess(3);
|
ProcessDO process = getProcess(3);
|
||||||
List<ProjectOrderDO> projectOrderDOS =projectOrderMapper.selectOrder();
|
List<ProjectOrderDO> projectOrderDOS =projectOrderMapper.selectOrder();
|
||||||
List<ProcessDetailDO> processDetailDOS = processDetailMapper.selectProcessIdAndIsSelect(process.getId());
|
List<ProcessDetailDO> processDetailDOS = processDetailMapper.selectProcessIdAndIsSelect(process.getId());
|
||||||
|
for (ProcessDetailDO processDetailDO : processDetailDOS) {
|
||||||
|
ProjectOrderDO projectOrderDO = projectOrderMapper.selectById(processDetailDO.getProjectId());
|
||||||
|
if (ObjectUtil.isNotEmpty(projectOrderDO)){
|
||||||
|
processDetailDO.setProjectName(projectOrderDO.getProjectName());
|
||||||
|
processDetailDO.setProjectNameSim(projectOrderDO.getProjectNameSim());
|
||||||
|
processDetailDO.setProjectId(projectOrderDO.getId());
|
||||||
|
processDetailDO.setOrdDate(projectOrderDO.getOrderTime());
|
||||||
|
processDetailDO.setProjectStartTime(projectOrderDO.getProjectStartTime());
|
||||||
|
processDetailDO.setProjectEndTime(projectOrderDO.getProjectEndTime());
|
||||||
|
processDetailDO.setDeliveryStatus(projectOrderDO.getDeliveryStatus());
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
//删除现有数据
|
//删除现有数据
|
||||||
deleteProcessDetail(process.getId());
|
deleteProcessDetail(process.getId());
|
||||||
List<ProcessDetailDO> addList = new ArrayList<>();
|
List<ProcessDetailDO> addList = new ArrayList<>();
|
||||||
@ -617,6 +695,18 @@ public class ScreenServiceImpl implements ScreenService {
|
|||||||
ProcessDO process = getProcess(2);
|
ProcessDO process = getProcess(2);
|
||||||
List<ProjectOrderDO> projectOrderDOS =projectOrderMapper.selectOrder();
|
List<ProjectOrderDO> projectOrderDOS =projectOrderMapper.selectOrder();
|
||||||
List<ProcessDetailDO> processDetailDOS = processDetailMapper.selectProcessIdAndIsSelect(process.getId());
|
List<ProcessDetailDO> processDetailDOS = processDetailMapper.selectProcessIdAndIsSelect(process.getId());
|
||||||
|
for (ProcessDetailDO processDetailDO : processDetailDOS) {
|
||||||
|
ProjectOrderDO projectOrderDO = projectOrderMapper.selectById(processDetailDO.getProjectId());
|
||||||
|
if (ObjectUtil.isNotEmpty(projectOrderDO)){
|
||||||
|
processDetailDO.setProjectName(projectOrderDO.getProjectName());
|
||||||
|
processDetailDO.setProjectNameSim(projectOrderDO.getProjectNameSim());
|
||||||
|
processDetailDO.setProjectId(projectOrderDO.getId());
|
||||||
|
processDetailDO.setOrdDate(projectOrderDO.getOrderTime());
|
||||||
|
processDetailDO.setProjectStartTime(projectOrderDO.getProjectStartTime());
|
||||||
|
processDetailDO.setProjectEndTime(projectOrderDO.getProjectEndTime());
|
||||||
|
processDetailDO.setDeliveryStatus(projectOrderDO.getDeliveryStatus());
|
||||||
|
}
|
||||||
|
}
|
||||||
//删除现有数据
|
//删除现有数据
|
||||||
deleteProcessDetail(process.getId());
|
deleteProcessDetail(process.getId());
|
||||||
List<ProcessDetailDO> addList = new ArrayList<>();
|
List<ProcessDetailDO> addList = new ArrayList<>();
|
||||||
|
|||||||
@ -12,7 +12,7 @@
|
|||||||
:inline="true"
|
:inline="true"
|
||||||
label-width="110px"
|
label-width="110px"
|
||||||
>
|
>
|
||||||
<el-form-item label="发货单号" prop="code">
|
<el-form-item label="号" prop="code">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="queryParams.code"
|
v-model="queryParams.code"
|
||||||
placeholder="请输入发货单号"
|
placeholder="请输入发货单号"
|
||||||
|
|||||||
@ -68,6 +68,7 @@
|
|||||||
<td colspan="4" v-if="item.category == 'DELIVER_LIST'">{{ item.name }}</td>
|
<td colspan="4" v-if="item.category == 'DELIVER_LIST'">{{ item.name }}</td>
|
||||||
<td colspan="4" v-if="item.category== 'OTHER_LIST' && item.subType == 1">备件:{{ item.name }}</td>
|
<td colspan="4" v-if="item.category== 'OTHER_LIST' && item.subType == 1">备件:{{ item.name }}</td>
|
||||||
<td colspan="4" v-if="item.category== 'OTHER_LIST' && item.subType == 2">刀具:{{ item.name }}</td>
|
<td colspan="4" v-if="item.category== 'OTHER_LIST' && item.subType == 2">刀具:{{ item.name }}</td>
|
||||||
|
<td colspan="4" v-if="item.category== 'OTHER_LIST' && item.subType == 3">其他:{{ item.name }}</td>
|
||||||
<td>{{ getDictLabel(DICT_TYPE.HELI_MATERIAL_UNIT, item.unit) }}</td>
|
<td>{{ getDictLabel(DICT_TYPE.HELI_MATERIAL_UNIT, item.unit) }}</td>
|
||||||
<td>{{ item.amount }}</td>
|
<td>{{ item.amount }}</td>
|
||||||
<td>{{ item.weight }}</td>
|
<td>{{ item.weight }}</td>
|
||||||
@ -331,6 +332,15 @@ style="
|
|||||||
<td> {{ item.amount }} </td>
|
<td> {{ item.amount }} </td>
|
||||||
<td colspan="2">{{ item.remark }} </td>
|
<td colspan="2">{{ item.remark }} </td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr v-for="(item, index) in formData.otherSubs" :key="index">
|
||||||
|
<td> {{ index + 1 }} </td>
|
||||||
|
<td colspan="3">
|
||||||
|
<span>其他:{{ item.name }}</span>
|
||||||
|
</td>
|
||||||
|
<td colspan="3">{{ item.blueprintNo }}</td>
|
||||||
|
<td> {{ item.amount }} </td>
|
||||||
|
<td colspan="2">{{ item.remark }} </td>
|
||||||
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
<tbody v-if="subTotalAmount <20">
|
<tbody v-if="subTotalAmount <20">
|
||||||
<tr v-for="item in (20-subTotalAmount)" :key="item">
|
<tr v-for="item in (20-subTotalAmount)" :key="item">
|
||||||
@ -413,6 +423,15 @@ style="
|
|||||||
<td> {{ item.amount }} </td>
|
<td> {{ item.amount }} </td>
|
||||||
<td colspan="2">{{ item.remark }} </td>
|
<td colspan="2">{{ item.remark }} </td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr v-for="(item, index) in formData.otherSubs" :key="index">
|
||||||
|
<td> {{ index + 1 }} </td>
|
||||||
|
<td colspan="3">
|
||||||
|
<span>其他:{{ item.name }}</span>
|
||||||
|
</td>
|
||||||
|
<td colspan="3">{{ item.blueprintNo }}</td>
|
||||||
|
<td> {{ item.amount }} </td>
|
||||||
|
<td colspan="2">{{ item.remark }} </td>
|
||||||
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
<tbody v-if="subTotalAmount <20">
|
<tbody v-if="subTotalAmount <20">
|
||||||
<tr v-for="item in (20-subTotalAmount)" :key="item">
|
<tr v-for="item in (20-subTotalAmount)" :key="item">
|
||||||
@ -584,6 +603,7 @@ const formData: any = ref({
|
|||||||
deliverOrderOtherSubs: [],
|
deliverOrderOtherSubs: [],
|
||||||
deliverOrderOtherSpareSubs: [],
|
deliverOrderOtherSpareSubs: [],
|
||||||
deliverOrderOtherCutterSubs: [],
|
deliverOrderOtherCutterSubs: [],
|
||||||
|
otherSubs: [],
|
||||||
attachments: [],
|
attachments: [],
|
||||||
operateLogs: [],
|
operateLogs: [],
|
||||||
active: undefined,
|
active: undefined,
|
||||||
@ -627,6 +647,9 @@ const open = async (id: number) => {
|
|||||||
formData.value.deliverOrderOtherCutterSubs = subArr.filter(
|
formData.value.deliverOrderOtherCutterSubs = subArr.filter(
|
||||||
(sub) => sub.category == 'OTHER_LIST' && sub.subType == 2
|
(sub) => sub.category == 'OTHER_LIST' && sub.subType == 2
|
||||||
)
|
)
|
||||||
|
formData.value.otherSubs = subArr.filter(
|
||||||
|
(sub) => sub.category == 'OTHER_LIST' && sub.subType == 3
|
||||||
|
)
|
||||||
} else {
|
} else {
|
||||||
num.value=6-subTotalAmount.value
|
num.value=6-subTotalAmount.value
|
||||||
formData.value.deliverOrderSubs = subArr
|
formData.value.deliverOrderSubs = subArr
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user