文件导入新改-修改

This commit is contained in:
lym
2024-07-18 18:20:10 +08:00
parent 6e99cb7399
commit 14e326c251
6 changed files with 76 additions and 127 deletions
@@ -67,6 +67,7 @@ public interface ErrorCodeConstants {
ErrorCode FILE_UPLOAD_ERR = new ErrorCode(1_002_029_012, "文件内容为空");
ErrorCode ORDER_STATUS_CONFLICT = new ErrorCode(1_002_029_006, "生产单状态冲突,禁止投入生产");
ErrorCode ORDER_READ_ERR = new ErrorCode(1_002_029_006, "订单列表获取失败,请刷新重试");
ErrorCode ORDER_DATE_ERR = new ErrorCode(1_002_029_006, "获取订单列表,时间超出范围,请在30天范围内选择");
ErrorCode SOURCE_NOT_EXITS_ERROR = new ErrorCode(1_002_029_013, "源数据查询失败");
ErrorCode ORDER_CAN_NOT_DELETE = new ErrorCode(1_002_029_013, "存在状态不符合强制删除的生产单,禁止删除");
@@ -182,25 +182,6 @@ public class OrderController {
return success(moduleDOList);
}
@GetMapping("/get-platesDetails")
@Operation(summary = "生产单详情-板材详细信息")
@Parameters({
@Parameter(name = "orderId", description = "生产单编号", example = "1024"),
@Parameter(name = "roomId", description = "房间编号", example = "1024"),
@Parameter(name = "bodyId", description = "柜体编号", example = "1024"),
@Parameter(name = "groupId", description = "加工组编号", example = "1024"),
@Parameter(name = "groupName", description = "加工组名称", example = "弧形")
})
@PreAuthorize("@ss.hasPermission('production:manager-list:detail')")
public CommonResult<List<OrderPlatesDetailReqVO>> platesDetails(@RequestParam("orderId") Long orderId,
@RequestParam(value = "roomId", required = false) Long roomId,
@RequestParam(value = "bodyId", required = false) Long bodyId,
@RequestParam(value = "groupId", required = false) Long groupId,
@RequestParam(value = "groupName", required = false) String groupName) {
List<OrderPlatesDetailReqVO> moduleDOList = orderService.getPlatesDetail(orderId, roomId, bodyId, groupId, groupName);
return success(moduleDOList);
}
@GetMapping("/get-platesDetailsPage")
@Operation(summary = "生产单详情-板材详细信息(分页)")
@Parameters({
@@ -224,23 +205,6 @@ public class OrderController {
return success(moduleDOList);
}
@GetMapping("/get-partsDetails")
@Operation(summary = "生产单详情-配件详细信息")
@Parameters({
@Parameter(name = "orderId", description = "生产单编号", example = "1024"),
@Parameter(name = "roomId", description = "房间编号", example = "1024"),
@Parameter(name = "bodyId", description = "柜体编号", example = "1024"),
@Parameter(name = "name", description = "配件名称", example = "1024")
})
@PreAuthorize("@ss.hasPermission('production:manager-list:detail')")
public CommonResult<List<OrderPartsRespVO>> partsDetails(@RequestParam("orderId") Long orderId,
@RequestParam(value = "roomId", required = false) Long roomId,
@RequestParam(value = "bodyId", required = false) Long bodyId,
@RequestParam(value = "name", required = false) String name) {
List<OrderPartsRespVO> moduleDOList = orderService.getPartsDetail(orderId, roomId, bodyId, name);
return success(moduleDOList);
}
@GetMapping("/get-partsDetailsPage")
@Operation(summary = "生产单详情-配件详细信息(分页)")
@Parameters({
@@ -304,64 +268,64 @@ public class OrderController {
return success(orderService.importApiData(listMap));
}
// @PostMapping("/importFile")
// @Operation(summary = "生产单文件导入新增")
// @Parameters({
// @Parameter(name = "file", description = "文件", required = true),
// @Parameter(name = "type", description = "文件类型", required = true)
// })
// @PreAuthorize("@ss.hasPermission('production:manager-list:create')")
// @OperateLog(type = IMPORT)
// public void exportTest(@RequestPart("file") MultipartFile file,
// @RequestParam(value = "type", required = false, defaultValue = "true") Integer type,
// HttpServletResponse response) throws IOException {
// try {
//
// List<?> list = null;
// OrderDO orderDO = new OrderDO();
// if (type == 0) { //excel
// // 读取文件
// excelReadUtil.setErr(0);
// Map<String, Object> map = excelReadUtil.read(file);
// System.err.println(excelReadUtil.isErr());
// // 判断是否读取有误
// if (excelReadUtil.isErr() == -1) { // 文件为空
// ExcelWriterUtil.writeErr(response, "生产单内容为空", orderService.getSavePath() + File.separator + "order_err.xlsx");
// return;
// } else if (excelReadUtil.isErr() > 0) {
// // 返回文件
// ExcelWriterUtil.write(response, (Map<Object, Object>) map.get("order"), (List<OrderPlateImportExcelVO>) map.get("plate"), orderService.getSavePath() + File.separator + "order_add_excel_err.xlsx");
// return;
// } else {
// // 获取数据
// list = (List<?>) map.get("plate");
// Map<String, Object> mapOrder = excelReadUtil.changeOrderDO((Map<Object, Object>) map.get("order"));
// if (list.size() == 0) {
// orderDO.setStatus(0);
// }
// orderDO = ((OrderDO) mapOrder.get("order")).setOrderType(OrderTypeEnum.MAIN_ORDER.getStatus()).setStatus(1);
// String err = ((String) mapOrder.get("error"));
//
// if (!orderService.customOrderNoIsExists(orderDO.getCustomOrderNo())) {
// err += orderDO.getCustomOrderNo() + "-自定义生产单号已存在;";
// }
// if (!err.equals("")) {
// ExcelWriterUtil.writeErr(response, err, orderService.getSavePath() + File.separator + "order_err.xlsx");
// }
//
// }
// } else if (type == 1) { // json
//
// } else if (type == 2) { // xml
//
// }
// orderService.importExcelData(orderDO, list, 0);
// } catch (Exception e) {
// ExcelWriterUtil.writeErr(response, "系统出现未知错误,请下载模板,按照模板重新上传文件", orderService.getSavePath() + File.separator + "order_err.xlsx");
// }
// }
@PostMapping("/importFile")
@Operation(summary = "生产单文件导入新增")
@Parameters({
@Parameter(name = "file", description = "文件", required = true),
@Parameter(name = "type", description = "文件类型", required = true)
})
@PreAuthorize("@ss.hasPermission('production:manager-list:create')")
@OperateLog(type = IMPORT)
public void exportTest(@RequestPart("file") MultipartFile file,
@RequestParam(value = "type", required = false, defaultValue = "true") Integer type,
HttpServletResponse response) throws IOException {
try {
List<?> list = null;
OrderDO orderDO = new OrderDO();
if (type == 0) { //excel
// 读取文件
excelReadUtil.setErr(0);
Map<String, Object> map = excelReadUtil.read(file);
System.err.println(excelReadUtil.isErr());
// 判断是否读取有误
if (excelReadUtil.isErr() == -1) { // 文件为空
ExcelWriterUtil.writeErr(response, "生产单内容为空", orderService.getSavePath() + File.separator + "order_err.xlsx");
return;
} else if (excelReadUtil.isErr() > 0) {
// 返回文件
ExcelWriterUtil.write(response, (Map<Object, Object>) map.get("order"), (List<OrderPlateImportExcelVO>) map.get("plate"), orderService.getSavePath() + File.separator + "order_add_excel_err.xlsx");
return;
} else {
// 获取数据
list = (List<?>) map.get("plate");
Map<String, Object> mapOrder = excelReadUtil.changeOrderDO((Map<Object, Object>) map.get("order"));
if (list.size() == 0) {
orderDO.setStatus(0);
}
orderDO = ((OrderDO) mapOrder.get("order")).setOrderType(OrderTypeEnum.MAIN_ORDER.getStatus()).setStatus(1);
String err = ((String) mapOrder.get("error"));
if (!orderService.customOrderNoIsExists(orderDO.getCustomOrderNo())) {
err += orderDO.getCustomOrderNo() + "-自定义生产单号已存在;";
}
if (!err.equals("")) {
ExcelWriterUtil.writeErr(response, err, orderService.getSavePath() + File.separator + "order_err.xlsx");
}
}
} else if (type == 1) { // json
} else if (type == 2) { // xml
}
orderService.importExcelData(orderDO, list, 0);
} catch (Exception e) {
ExcelWriterUtil.writeErr(response, "系统出现未知错误,请下载模板,按照模板重新上传文件", orderService.getSavePath() + File.separator + "order_err.xlsx");
}
}
@PostMapping("/importFileAdd")
@Operation(summary = "生产单文件导入新增/导入板材")
@Parameters({
@Parameter(name = "file", description = "文件", required = true),
@@ -563,7 +527,7 @@ public class OrderController {
// 小板面积 <集合>
@GetMapping("/getPlateArea")
@Operation(summary = "小板数量")
@Operation(summary = "小板面积")
@Parameters({
@Parameter(name = "startTime", description = "开始时间", example = "2024-07-15"),
@Parameter(name = "endTime", description = "结束时间", example = "2024-07-16"),
@@ -96,7 +96,6 @@ public interface OrderService {
* @return List<OrderPlatesDetailReqVO>
* 需要修改返回值
*/
List<OrderPlatesDetailReqVO> getPlatesDetail(Long orderId, Long roomId , Long bodyId , Long groupId, String groupName);
PageResult<OrderPlatesDetailReqVO> getPlatesDetail(Long orderId, Long roomId, Long bodyId, Long groupId, String groupName, Integer pageNo, Integer pageSize);
/**
@@ -106,7 +105,6 @@ public interface OrderService {
* @return List<OrderPartsRespVO>
* 需要修改返回值
*/
List<OrderPartsRespVO> getPartsDetail(Long orderId, Long roomId , Long bodyId , String name);
PageResult<OrderPartsRespVO> getPartsDetail(Long orderId, Long roomId , Long bodyId , String name, Integer pageNo, Integer pageSize);
/**
@@ -412,23 +412,6 @@ public class OrderServiceImpl implements OrderService {
return map;
}
@Override
public List<OrderPlatesDetailReqVO> getPlatesDetail(Long orderId, Long roomId, Long bodyId, Long groupId, String groupName) {
// 判断生产单是否删除 (包含判断存在)
Integer deleted = getOrderDeleted(orderId);
List<PlateRespVO> orderDetail = orderItemMapper.selectPlatesDetailByOrderId(orderId, roomId, bodyId, groupId,
groupName, SecurityFrameworkUtils.getLoginUser().getOrganId(), deleted);
List<OrderPlatesDetailReqVO> platesDetailReqVOS = new ArrayList<>();
orderDetail.forEach(orderPlatesDetailRespVO -> {
OrderPlatesDetailReqVO orderPlatesDetailReqVO = BeanUtils.toBean(orderPlatesDetailRespVO, OrderPlatesDetailReqVO.class)
.setIsRowHole(false);
if (orderPlatesDetailRespVO.getUnregularPointCount() > 0 || orderPlatesDetailRespVO.getFrontHoleCount() > 0
|| orderPlatesDetailRespVO.getBackHoleCount() > 0 || orderPlatesDetailRespVO.getSideHoleCount() > 0)
orderPlatesDetailReqVO.setIsRowHole(true);
platesDetailReqVOS.add(orderPlatesDetailReqVO);
});
return platesDetailReqVOS;
}
@Override
public PageResult<OrderPlatesDetailReqVO> getPlatesDetail(Long orderId, Long roomId, Long bodyId, Long groupId, String groupName, Integer pageNo, Integer pageSize) {
PageDTO<OrderRespVOCopy> page = new PageDTO<>(pageNo, pageSize);
@@ -442,14 +425,6 @@ public class OrderServiceImpl implements OrderService {
return pageResult;
}
@Override
public List<OrderPartsRespVO> getPartsDetail(Long orderId, Long roomId, Long bodyId, String name) {
// 判断生产单是否删除 (包含判断存在)
Integer deleted = getOrderDeleted(orderId);
List<OrderPartsRespVO> orderDetail = orderItemMapper.selectPartsDetailByOrderId(orderId, roomId, bodyId, name,
SecurityFrameworkUtils.getLoginUser().getOrganId(), deleted);
return orderDetail;
}
@Override
public PageResult<OrderPartsRespVO> getPartsDetail(Long orderId, Long roomId, Long bodyId, String name, Integer pageNo, Integer pageSize) {
PageDTO<OrderRespVOCopy> page = new PageDTO<>(pageNo, pageSize);
@@ -585,7 +560,7 @@ public class OrderServiceImpl implements OrderService {
goodsDO.getSpec(), SecurityFrameworkUtils.getLoginUser().getOrganId());
}
if (plateGoodDOS.size() > 0) {//存在板材
if (plateGoodDOS != null && plateGoodDOS.size() > 0) {//存在板材
goodsDO.setGoodsId(plateGoodDOS.get(0).getGoodsId());
break;
} else if (plateGoodDO != null) { // 存在板材
@@ -1,5 +1,6 @@
package com.cf.imes.module.executor.util.fileConversion.admin.api.webcad;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
@@ -12,6 +13,9 @@ import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.util.concurrent.Future;
import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception;
@@ -170,10 +174,19 @@ public class ApiDataAchieve {
// 订单列表
public Future<JSONObject> getApiOrderList(String token,String shopId,String createDateMin, String createDateMax, String orderNo, String customOrderNo) {
JSONObject jsonOrders = new JSONObject();
if (createDateMin != null){
if (createDateMin != null && createDateMax != null){
// 定义日期格式
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
// 将字符串转换为LocalDate对象
LocalDate startTime = LocalDate.parse(createDateMin, formatter);
LocalDate endTime = LocalDate.parse(createDateMax, formatter);
long daysBetweenSimple = ChronoUnit.DAYS.between(startTime, endTime);
if (daysBetweenSimple > 30) {
throw exception(ORDER_DATE_ERR);
}
jsonOrders.put("create_date_min", createDateMin + " 00:00:00");
}
if (createDateMax != null) {
jsonOrders.put("create_date_max", createDateMax + " 23:59:59");
}
@@ -278,8 +278,6 @@ public class ExcelTypeRealize {
map.put("orderModuleExtraDOS", orderModuleExtraDOS);
map.put("orderModelDOS", orderModelDOS);
map.put("orderPartsRemarks", orderPartsRemarks);
System.out.println(" orderGroupDOS " + orderGroupDOS);
System.out.println(" orderItemDOS " + orderItemDOS);
return map;
}