mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-12 21:02:08 +08:00
修复一些可能的并发问题
This commit is contained in:
+4
-9
@@ -2,12 +2,10 @@ package com.cf.imes.module.executor.service.process;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator;
|
||||
import com.cf.imes.framework.common.enums.ProcessProcessingTypeEnum;
|
||||
import com.cf.imes.framework.security.core.util.SecurityFrameworkUtils;
|
||||
import com.cf.imes.module.executor.dal.dataobject.goods.GoodsDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.orderBody.OrderBodyDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.orderGroup.OrderGroupDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.plate.PlateDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.processStep.ProcessStepDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.processStepItem.OrderProcessStepItemDO;
|
||||
import com.cf.imes.module.executor.dal.mysql.goods.GoodsMapper;
|
||||
@@ -21,7 +19,6 @@ import com.cf.imes.module.executor.enums.OrderStatusEnum;
|
||||
import com.cf.imes.module.executor.enums.ProcessTypeEnum;
|
||||
import com.cf.imes.module.system.api.process.ProcessGroupApi;
|
||||
import com.cf.imes.module.system.api.process.dto.ProcessListReqDTO;
|
||||
import com.cf.imes.module.system.api.process.dto.ProcessRespDTO;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
@@ -31,15 +28,14 @@ import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import com.cf.imes.module.executor.controller.admin.process.vo.*;
|
||||
import com.cf.imes.module.executor.dal.dataobject.process.OrderProcessDO;
|
||||
import com.cf.imes.framework.common.pojo.PageResult;
|
||||
import com.cf.imes.framework.common.util.object.BeanUtils;
|
||||
|
||||
import com.cf.imes.module.executor.dal.mysql.process.OrderProcessMapper;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId;
|
||||
@@ -84,7 +80,6 @@ public class OrderProcessServiceImpl implements OrderProcessService {
|
||||
@Resource
|
||||
private GoodsMapper goodsMapper;
|
||||
|
||||
private static Integer INDEX = 0;
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@@ -115,11 +110,11 @@ public class OrderProcessServiceImpl implements OrderProcessService {
|
||||
// 需要获取工序组的具体信息,以及工序组中工序的信息,然后将工序组中工序的信息插入到生产单工序步骤表中
|
||||
ProcessListReqDTO processListReqDTO = processGroupApi.getProcessGroupDetail(createReqVO.getGroupId());
|
||||
|
||||
|
||||
AtomicInteger INDEX = new AtomicInteger(0);
|
||||
processListReqDTO.getLists().forEach(processRespDTO -> {
|
||||
Long processStepDOId = (Long) identifierGenerator.nextId(null);
|
||||
ProcessStepDO processStepDO = BeanUtils.toBean(processRespDTO, ProcessStepDO.class).setId(processStepDOId).setOrderId(createReqVO.getOrderId())
|
||||
.setStatus(false).setProcessinfoId(processRespDTO.getId()).setOrderProcessId(orderProcess.getId()).setFinishTime(null).setSort(INDEX++);// 计划日期没有填写
|
||||
.setStatus(false).setProcessinfoId(processRespDTO.getId()).setOrderProcessId(orderProcess.getId()).setFinishTime(null).setSort(INDEX.getAndIncrement());// 计划日期没有填写
|
||||
processStepDOS.add(processStepDO);
|
||||
|
||||
// 生产单中是否存在加工组,若存在加工组,需要逐条加工组信息写入到生产单工序步骤表
|
||||
@@ -171,7 +166,7 @@ public class OrderProcessServiceImpl implements OrderProcessService {
|
||||
}
|
||||
}
|
||||
});
|
||||
INDEX = 0;
|
||||
INDEX.set(0);
|
||||
// 修改生产单的状态
|
||||
orderMapper.updateOrderStatus(createReqVO.getOrderId(), OrderStatusEnum.NO_SORT.getStatus(), SecurityFrameworkUtils.getLoginUser().getOrganId());
|
||||
// 批量插入
|
||||
|
||||
+15
-20
@@ -1,10 +1,9 @@
|
||||
package com.cf.imes.module.executor.util.fileConversion.admin.files.excel;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.map.MapUtil;
|
||||
import com.alibaba.excel.EasyExcel;
|
||||
|
||||
import com.alibaba.excel.ExcelWriter;
|
||||
import com.alibaba.excel.write.metadata.WriteSheet;
|
||||
import com.alibaba.excel.write.metadata.fill.FillConfig;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.nacos.common.utils.StringUtils;
|
||||
@@ -15,25 +14,21 @@ import com.cf.imes.module.system.api.dict.dto.DictDataRespDTO;
|
||||
import com.cf.imes.module.system.enums.DictTypeConstants;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.util.ResourceUtils;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.ServletOutputStream;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.*;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
@Slf4j
|
||||
@Component
|
||||
public class ExcelReadUtil { // 文件读取
|
||||
|
||||
private Boolean index = true;
|
||||
|
||||
private int isErr;
|
||||
private AtomicInteger isErr = new AtomicInteger(0);
|
||||
|
||||
@Resource
|
||||
private DictDataApi dictDataApi;
|
||||
@@ -50,12 +45,13 @@ public class ExcelReadUtil { // 文件读取
|
||||
List<Map<Integer, String>> dataLists = excelListener.getDataLists();// 读取的内容
|
||||
List<OrderPlateImportExcelVO> list = new ArrayList<>();// plate
|
||||
|
||||
AtomicBoolean index = new AtomicBoolean(true);
|
||||
dataLists.forEach(
|
||||
item -> {
|
||||
if (item.get(0).equals("###")) {
|
||||
index = false;
|
||||
index.set(false);
|
||||
}
|
||||
if (index) {
|
||||
if (index.get()) {
|
||||
orderMap.put(item.get(0), item.get(1));
|
||||
orderMap.put(item.get(12), item.get(13));
|
||||
} else {
|
||||
@@ -66,12 +62,11 @@ public class ExcelReadUtil { // 文件读取
|
||||
}
|
||||
}
|
||||
);
|
||||
index = true;
|
||||
index.set(true);
|
||||
map.put("order", orderMap);
|
||||
if (orderMap.size() == 0)
|
||||
isErr = -1;
|
||||
if (list.size() == 0)
|
||||
isErr = -1;
|
||||
if (MapUtil.isNotEmpty(orderMap) || CollectionUtil.isNotEmpty(list)) {
|
||||
isErr.set(-1);
|
||||
}
|
||||
map.put("plate", list);
|
||||
return map;
|
||||
|
||||
@@ -391,7 +386,7 @@ public class ExcelReadUtil { // 文件读取
|
||||
}
|
||||
|
||||
if (!flag) {
|
||||
isErr++;
|
||||
isErr.getAndIncrement();
|
||||
}
|
||||
JSONArray jsonArray = JSONArray.parseArray(JSON.toJSONString(errList));// 错误列表
|
||||
vo.setResult(String.valueOf(jsonArray));
|
||||
@@ -432,10 +427,10 @@ public class ExcelReadUtil { // 文件读取
|
||||
}
|
||||
|
||||
public int isErr() {
|
||||
return isErr;
|
||||
return isErr.get();
|
||||
}
|
||||
|
||||
public void setErr(int isErr) {
|
||||
this.isErr = isErr;
|
||||
this.isErr.set(isErr);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user