mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-13 21:32:07 +08:00
bug修改
This commit is contained in:
+2
@@ -2,11 +2,13 @@ package com.cf.imes.module.executor;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.cloud.openfeign.EnableFeignClients;
|
||||
|
||||
/**
|
||||
* @author there
|
||||
*/
|
||||
@SpringBootApplication
|
||||
@EnableFeignClients
|
||||
public class ExecutorServerApplication {
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(ExecutorServerApplication.class, args);
|
||||
|
||||
+140
-84
@@ -1,14 +1,18 @@
|
||||
package com.cf.imes.module.executor.controller.admin.order;
|
||||
|
||||
import com.cf.imes.module.executor.controller.admin.order.vo.order.*;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderImportRespVO;
|
||||
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderPageReqVO;
|
||||
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderRespVO;
|
||||
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderSaveReqVO;
|
||||
import com.cf.imes.module.executor.controller.admin.order.vo.product.OrderBodyRespVO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.orderModuleExtra.OrderModuleExtraDO;
|
||||
import com.cf.imes.module.executor.service.order.ApiOrderService;
|
||||
import com.cf.imes.module.executor.service.order.OrderInputProcessor;
|
||||
import com.cf.imes.module.executor.util.FileTypeChangeUtil;
|
||||
import com.cf.imes.module.executor.util.deviseData.Detail;
|
||||
import com.cf.imes.module.executor.util.fileConversion.admin.files.excel.OrderPlateImportExcelVO;
|
||||
import io.swagger.v3.oas.annotations.Parameters;
|
||||
import org.springframework.util.ObjectUtils;
|
||||
import org.springframework.util.ResourceUtils;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@@ -68,6 +72,9 @@ public class OrderController {
|
||||
@Resource
|
||||
private OrderInputProcessor orderInputProcessor;
|
||||
|
||||
@Resource
|
||||
private ApiOrderService apiOrderService;
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(OrderController.class);
|
||||
|
||||
@PostMapping("/create")
|
||||
@@ -163,62 +170,62 @@ public class OrderController {
|
||||
}
|
||||
}
|
||||
|
||||
@PostMapping("/import")
|
||||
@Operation(summary = "导入生产单新增")
|
||||
@Parameters({
|
||||
@Parameter(name = "file", description = "Excel 文件", required = true),
|
||||
@Parameter(name = "isAddPlate", description = "是否为生产单新增板材", example = "false"),
|
||||
@Parameter(name = "upload", description = "是 更新、否 新建", example = "false"),
|
||||
@Parameter(name = "orderSaveReqVO", description = "生产单新增参数", required = true)
|
||||
})
|
||||
@PreAuthorize("@ss.hasPermission('executor:order:import')")
|
||||
public CommonResult<Map<Boolean, String>> importExcel(@RequestPart("file") MultipartFile file,
|
||||
@RequestParam(value = "isAddPlate", required = false, defaultValue = "false") Boolean isAddPlate,
|
||||
@RequestParam(value = "upload", required = false, defaultValue = "false") Boolean upload,
|
||||
@RequestPart("orderSaveReqVO") OrderSaveReqVO createReqVO) throws IOException {
|
||||
Map<Boolean, String> map = new HashMap<>();
|
||||
// 判断是否更新板材
|
||||
if (!isAddPlate) {//不需要添加板材
|
||||
if (upload) {
|
||||
orderService.updateOrder(createReqVO);//更新
|
||||
map.put(true, "单独更新生产单成功");
|
||||
} else {
|
||||
Long id = orderService.createOrder(createReqVO);//新建
|
||||
map.put(true, "单独新增生产单成功");
|
||||
}
|
||||
return success(map);
|
||||
} else {
|
||||
Long id = 0L;
|
||||
if (upload) {
|
||||
orderService.updateOrder(createReqVO);//更新
|
||||
id = createReqVO.getId();
|
||||
map.put(true, "单独更新生产单成功");
|
||||
} else {
|
||||
id = orderService.createOrder(createReqVO);//新建
|
||||
map.put(true, "单独新增生产单成功");
|
||||
}
|
||||
// 解析导入文件,生成统一格式
|
||||
List<?> list = new ArrayList<>();
|
||||
if (createReqVO.getDataType() == 1) {//CAD
|
||||
|
||||
} else if (createReqVO.getDataType() == 2) {//WebCAD
|
||||
|
||||
} else if (createReqVO.getDataType() == 3) {//Excel
|
||||
// 文件数据读取
|
||||
list = fileTypeChangeUtil.fileDataChange(file);
|
||||
}
|
||||
if (list == null || list.size() == 0) {
|
||||
map.put(false, "导入文件有误");
|
||||
return success(map);
|
||||
}
|
||||
// OrderImportRespVO respVO = orderService.importOrderList(list , id , orderImportRespVO);
|
||||
orderInputProcessor.input((List<Detail>) list, id);
|
||||
// 是否新增成功需要返回
|
||||
map.putIfAbsent(true, "文件导入成功");
|
||||
return success(map);
|
||||
|
||||
}
|
||||
}
|
||||
// @PostMapping("/import")
|
||||
// @Operation(summary = "导入生产单新增")
|
||||
// @Parameters({
|
||||
// @Parameter(name = "file", description = "Excel 文件", required = true),
|
||||
// @Parameter(name = "isAddPlate", description = "是否为生产单新增板材", example = "false"),
|
||||
// @Parameter(name = "upload", description = "是 更新、否 新建", example = "false"),
|
||||
// @Parameter(name = "orderSaveReqVO", description = "生产单新增参数", required = true)
|
||||
// })
|
||||
// @PreAuthorize("@ss.hasPermission('executor:order:import')")
|
||||
// public CommonResult<Map<Boolean, String>> importExcel(@RequestPart("file") MultipartFile file,
|
||||
// @RequestParam(value = "isAddPlate", required = false, defaultValue = "false") Boolean isAddPlate,
|
||||
// @RequestParam(value = "upload", required = false, defaultValue = "false") Boolean upload,
|
||||
// @RequestPart("orderSaveReqVO") OrderSaveReqVO createReqVO) throws IOException {
|
||||
// Map<Boolean, String> map = new HashMap<>();
|
||||
//// 判断是否更新板材
|
||||
// if (!isAddPlate) {//不需要添加板材
|
||||
// if (upload) {
|
||||
// orderService.updateOrder(createReqVO);//更新
|
||||
// map.put(true, "单独更新生产单成功");
|
||||
// } else {
|
||||
// Long id = orderService.createOrder(createReqVO);//新建
|
||||
// map.put(true, "单独新增生产单成功");
|
||||
// }
|
||||
// return success(map);
|
||||
// } else {
|
||||
// Long id = 0L;
|
||||
// if (upload) {
|
||||
// orderService.updateOrder(createReqVO);//更新
|
||||
// id = createReqVO.getId();
|
||||
// map.put(true, "单独更新生产单成功");
|
||||
// } else {
|
||||
// id = orderService.createOrder(createReqVO);//新建
|
||||
// map.put(true, "单独新增生产单成功");
|
||||
// }
|
||||
//// 解析导入文件,生成统一格式
|
||||
// List<?> list = new ArrayList<>();
|
||||
// if (createReqVO.getDataType() == 1) {//CAD
|
||||
//
|
||||
// } else if (createReqVO.getDataType() == 2) {//WebCAD
|
||||
//
|
||||
// } else if (createReqVO.getDataType() == 3) {//Excel
|
||||
//// 文件数据读取
|
||||
// list = fileTypeChangeUtil.fileDataChange(file);
|
||||
// }
|
||||
// if (list == null || list.size() == 0) {
|
||||
// map.put(false, "导入文件有误");
|
||||
// return success(map);
|
||||
// }
|
||||
//// OrderImportRespVO respVO = orderService.importOrderList(list , id , orderImportRespVO);
|
||||
// orderInputProcessor.input((List<Detail>) list, id);
|
||||
//// 是否新增成功需要返回
|
||||
// map.putIfAbsent(true, "文件导入成功");
|
||||
// return success(map);
|
||||
//
|
||||
// }
|
||||
// }
|
||||
|
||||
// 导出错误的excel
|
||||
@PostMapping("/import-excel")
|
||||
@@ -249,15 +256,15 @@ public class OrderController {
|
||||
orderService.updateOrder(createReqVO);//更新
|
||||
id = createReqVO.getId();
|
||||
} else {
|
||||
// id = orderService.createOrder(createReqVO);//新建
|
||||
id = orderService.createOrder(createReqVO);//新建
|
||||
}
|
||||
// 解析导入文件,生成统一格式
|
||||
List<?> list = new ArrayList<>();
|
||||
if (createReqVO.getDataType() == 1) {//CAD
|
||||
if (createReqVO.getDataType() == 1) {//数据源
|
||||
|
||||
} else if (createReqVO.getDataType() == 2) {//WebCAD
|
||||
} else if (createReqVO.getDataType() == 2) {//api
|
||||
|
||||
} else if (createReqVO.getDataType() == 3) {//Excel
|
||||
} else if (createReqVO.getDataType() == 0) {//文件
|
||||
// 文件数据读取
|
||||
list = fileTypeChangeUtil.fileDataChange(file);
|
||||
}
|
||||
@@ -339,33 +346,82 @@ public class OrderController {
|
||||
return success(BeanUtils.toBean(orderService.getBody(orderId), OrderBodyRespVO.class));
|
||||
}
|
||||
|
||||
@PostMapping("file-import")
|
||||
@Operation(summary = "文件上产接口")
|
||||
@Parameters({
|
||||
@Parameter(name = "file", description = "文件", required = false),
|
||||
@Parameter(name = "isAddPlate", description = "是否为生产单新增板材", example = "false"),
|
||||
@Parameter(name = "upload", description = "是 更新、否 新建", example = "false"),
|
||||
@Parameter(name = "orderSaveReqVO", description = "生产单新增参数", required = true),
|
||||
@Parameter(name = "type", description = "文件类型", required = true)
|
||||
})
|
||||
@PreAuthorize("@ss.hasPermission('executor:fileData:import')")
|
||||
public CommonResult<OrderImportRespVO> apiImport(@RequestPart(value = "file", required = false) MultipartFile file,
|
||||
@RequestParam(value = "isAddPlate", required = false, defaultValue = "false") Boolean isAddPlate,
|
||||
@RequestParam(value = "upload", required = false, defaultValue = "false") Boolean upload,
|
||||
@RequestPart("orderSaveReqVO") OrderSaveReqVO createReqVO,
|
||||
@RequestParam(value = "type", required = false, defaultValue = "cf_cad") String type,
|
||||
final HttpServletResponse respons) throws IOException {
|
||||
// @PostMapping("file-import")
|
||||
// @Operation(summary = "文件上传接口--完善中")
|
||||
// @Parameters({
|
||||
// @Parameter(name = "file", description = "文件", required = false),
|
||||
// @Parameter(name = "isAddPlate", description = "是否为生产单新增板材", example = "false"),
|
||||
// @Parameter(name = "upload", description = "是 更新、否 新建", example = "false"),
|
||||
// @Parameter(name = "orderSaveReqVO", description = "生产单新增参数", required = true),
|
||||
// @Parameter(name = "type", description = "文件类型", required = true)
|
||||
// })
|
||||
// @PreAuthorize("@ss.hasPermission('executor:fileData:import')")
|
||||
// public CommonResult<OrderImportRespVO> apiImport(@RequestPart(value = "file", required = false) MultipartFile file,
|
||||
// @RequestParam(value = "isAddPlate", required = false, defaultValue = "false") Boolean isAddPlate,
|
||||
// @RequestParam(value = "upload", required = false, defaultValue = "false") Boolean upload,
|
||||
// @RequestPart("orderSaveReqVO") OrderSaveReqVO createReqVO,
|
||||
// @RequestParam(value = "type", required = false, defaultValue = "cf_cad") String type,
|
||||
// final HttpServletResponse respons) throws IOException {
|
||||
//
|
||||
// OrderImportRespVO orderImportRespVO = OrderImportRespVO.builder().createOrder(new ArrayList<>())
|
||||
// .updateOrder(new ArrayList<>()).failureOrder(new LinkedHashMap<>()).build();
|
||||
//
|
||||
//// 数据格式转换,返回转换完成的数据(传入文件类型,和文件类容),判断需要使用那种解析之后,进行数据的转换
|
||||
// List<?> list = fileTypeChangeUtil.chooseType(file, type);
|
||||
// if (fileTypeChangeUtil.getFlag()) {//文件数据转换成功,进行数据填入
|
||||
//
|
||||
// }
|
||||
//
|
||||
// return success(orderImportRespVO);
|
||||
// }
|
||||
|
||||
OrderImportRespVO orderImportRespVO = OrderImportRespVO.builder().createOrder(new ArrayList<>())
|
||||
.updateOrder(new ArrayList<>()).failureOrder(new LinkedHashMap<>()).build();
|
||||
|
||||
// 数据格式转换,返回转换完成的数据(传入文件类型,和文件类容),判断需要使用那种解析之后,进行数据的转换
|
||||
List<?> list = fileTypeChangeUtil.chooseType(file, type);
|
||||
if (fileTypeChangeUtil.getFlag()) {//文件数据转换成功,进行数据填入
|
||||
// 测试接口
|
||||
@GetMapping("getTest")
|
||||
@Operation(summary = "测试接口")
|
||||
@PreAuthorize("@ss.hasPermission('executor:order:query')")
|
||||
public CommonResult<JSONObject> test(@RequestParam(value = "orderNo", required = false, defaultValue = "20230809027818") String orderNo) {
|
||||
// 获取token
|
||||
JSONObject json = apiOrderService.getApiTokenMessage("CF7526AD51", "5f467b508061eff60bdacc7230357d2f");
|
||||
// 判断获取token是否成功
|
||||
if (json.getString("err_msg").equals("success")) {
|
||||
System.out.println("获取token成功");
|
||||
String token = json.getJSONObject("info").getString("access_token");
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("order_no", orderNo);//生产单号需要传入赋值
|
||||
jsonObject.put("format", "json");
|
||||
|
||||
// 数据解析
|
||||
JSONObject data = apiOrderService.getApiOrderMessage(token, jsonObject);
|
||||
if (data.getString("err_code").equals("0")) {
|
||||
System.out.println("获取数据成功");
|
||||
String value = data.getString("value");
|
||||
System.out.println("value " + data.getString("value") );
|
||||
// System.out.println("list " + toListMap(value));
|
||||
// 数据格式进行转换
|
||||
System.out.println("order " + value.substring(1, value.length() - 1));
|
||||
}
|
||||
}
|
||||
|
||||
return success(orderImportRespVO);
|
||||
return success(apiOrderService.getApiTokenMessage("CF7526AD51", "5f467b508061eff60bdacc7230357d2f"));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@PostMapping("/importTest")
|
||||
@Operation(summary = "生产单导入新增")
|
||||
@Parameters({
|
||||
@Parameter(name = "file", description = "Excel 文件", required = true),
|
||||
@Parameter(name = "isAddPlate", description = "是否为生产单新增板材", example = "false"),
|
||||
@Parameter(name = "upload", description = "是 更新、否 新建", example = "false")
|
||||
})
|
||||
@PreAuthorize("@ss.hasPermission('executor:order:importExcel')")
|
||||
@OperateLog(type = EXPORT)
|
||||
public void exportTest(@RequestPart("file") MultipartFile file,
|
||||
@RequestParam(value = "isAddPlate", required = false, defaultValue = "false") Boolean isAddPlate,
|
||||
@RequestParam(value = "upload", required = false, defaultValue = "false") Boolean upload,
|
||||
HttpServletResponse response) throws IOException {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
+3
-1
@@ -13,8 +13,10 @@ import static com.cf.imes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH
|
||||
|
||||
@Schema(description = "管理后台 - 生产单表 order_{N}分页 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class OrderPageReqVO extends PageParam {
|
||||
|
||||
@Schema(description = "父单号")
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@ import com.alibaba.excel.annotation.*;
|
||||
|
||||
@Schema(description = "管理后台 - 生产单表 order_{N} Response VO")
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
//@ExcelIgnoreUnannotated
|
||||
public class OrderRespVO {
|
||||
|
||||
@Schema(description = "生产单号,主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "15091")
|
||||
|
||||
-1
@@ -13,7 +13,6 @@ import java.time.LocalDateTime;
|
||||
@Data
|
||||
public class OrderSaveReqVO {
|
||||
|
||||
@Schema(description = "生产单号,主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "15091")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "父单号", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
|
||||
+1
-4
@@ -12,10 +12,8 @@ import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
|
||||
import javax.validation.constraints.*;
|
||||
import javax.validation.*;
|
||||
import javax.servlet.http.*;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
|
||||
@@ -31,7 +29,6 @@ import com.cf.imes.framework.operatelog.core.annotations.OperateLog;
|
||||
import static com.cf.imes.framework.operatelog.core.enums.OperateTypeEnum.*;
|
||||
|
||||
import com.cf.imes.module.executor.controller.admin.plan.vo.*;
|
||||
import com.cf.imes.module.executor.dal.dataobject.plan.PlanDO;
|
||||
import com.cf.imes.module.executor.service.plan.PlanService;
|
||||
|
||||
@Tag(name = "管理后台 - 排单")
|
||||
@@ -105,7 +102,7 @@ public class PlanController {
|
||||
@GetMapping("getNotPlanOrderListPage")
|
||||
@Operation(summary = "获取未排单的板材生产单板材分页列表")
|
||||
@PreAuthorize("@ss.hasPermission('executor:plan:query')")
|
||||
public CommonResult<PageResult<OrderRespVO>> getOrderPage(@Valid OrderPageReqVO pageReqVO) {
|
||||
public CommonResult<PageResult<OrderRespVOCopy>> getOrderPage(@Valid OrderPageReqVOCopy pageReqVO) {
|
||||
return success(planService.getOrderPage(pageReqVO));
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -17,7 +17,7 @@ import static com.cf.imes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH
|
||||
*/
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public class OrderPageReqVO extends PageParam {
|
||||
public class OrderPageReqVOCopy extends PageParam {
|
||||
|
||||
@Schema(description = "生产单id")
|
||||
private Long orderId;
|
||||
+1
-1
@@ -21,7 +21,7 @@ import static com.cf.imes.framework.common.util.date.DateUtils.TIME_ZONE_DEFAULT
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class OrderRespVO {
|
||||
public class OrderRespVOCopy {
|
||||
@Schema(description = "生产单id")
|
||||
private Long orderId;
|
||||
@Schema(description = "自定义单号")
|
||||
+2
-4
@@ -7,15 +7,13 @@ import com.cf.imes.framework.common.pojo.PageResult;
|
||||
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderPageReqVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.vo.OrderRespVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.vo.OrderRespVOCopy;
|
||||
import com.cf.imes.module.executor.dal.dataobject.order.OrderDO;
|
||||
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -50,7 +48,7 @@ public interface OrderMapper extends BaseMapperX<OrderDO> {
|
||||
}
|
||||
|
||||
|
||||
IPage<OrderRespVO> selectOrderPage(@Param("page") IPage page, @Param(Constants.WRAPPER) Wrapper<OrderDO> wrapper);
|
||||
IPage<OrderRespVOCopy> selectOrderPage(@Param("page") IPage page, @Param(Constants.WRAPPER) Wrapper<OrderDO> wrapper);
|
||||
|
||||
default List<OrderDO> selectOrderCheck(OrderPageReqVO reqVO) {
|
||||
MPJLambdaWrapper<OrderDO> wrapper = new MPJLambdaWrapper<OrderDO>()
|
||||
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
package com.cf.imes.module.executor.service.order;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
|
||||
|
||||
@FeignClient(url = "https://chenfeng.tech:7779", name = "apiOrderService")
|
||||
public interface ApiOrderService {
|
||||
|
||||
@RequestMapping(value = "/Api-Oauth-token",method = RequestMethod.GET)
|
||||
JSONObject getApiTokenMessage(@RequestParam("appid") String appid, @RequestParam("appsecret") String appsecret);
|
||||
|
||||
@RequestMapping(value = "/Api-erpOrders-orderPlanData",method = RequestMethod.POST)
|
||||
JSONObject getApiOrderMessage(@RequestParam("token") String token, @RequestBody JSONObject json);
|
||||
}
|
||||
+1
-3
@@ -3,9 +3,7 @@ package com.cf.imes.module.executor.service.plan;
|
||||
import java.util.*;
|
||||
import javax.validation.*;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.vo.*;
|
||||
import com.cf.imes.module.executor.dal.dataobject.plan.PlanDO;
|
||||
import com.cf.imes.framework.common.pojo.PageResult;
|
||||
import com.cf.imes.framework.common.pojo.PageParam;
|
||||
|
||||
/**
|
||||
* 生产单开料排单 Service 接口
|
||||
@@ -52,7 +50,7 @@ public interface PlanService {
|
||||
*/
|
||||
PageResult<PlanRespVO> getPlanPage(PlanPageReqVO pageReqVO);
|
||||
|
||||
PageResult<OrderRespVO> getOrderPage(OrderPageReqVO pageReqVO);
|
||||
PageResult<OrderRespVOCopy> getOrderPage(OrderPageReqVOCopy pageReqVO);
|
||||
|
||||
PageResult<PlatePage> getNotPlanPlateListPage(PlateReqPageVO pageVO);
|
||||
|
||||
|
||||
+3
-10
@@ -1,19 +1,13 @@
|
||||
package com.cf.imes.module.executor.service.plan;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.date.LocalDateTimeUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
|
||||
import com.cf.imes.framework.common.util.date.LocalDateTimeUtils;
|
||||
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.cf.imes.framework.mybatis.core.query.MPJLambdaWrapperX;
|
||||
import com.cf.imes.framework.mybatis.core.query.QueryWrapperX;
|
||||
import com.cf.imes.module.executor.dal.dataobject.goods.GoodsDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.module.ModuleDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.order.OrderDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.orderBody.OrderBodyDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.orderItem.OrderItemDO;
|
||||
@@ -44,7 +38,6 @@ import java.util.stream.Collectors;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.vo.*;
|
||||
import com.cf.imes.module.executor.dal.dataobject.plan.PlanDO;
|
||||
import com.cf.imes.framework.common.pojo.PageResult;
|
||||
import com.cf.imes.framework.common.pojo.PageParam;
|
||||
import com.cf.imes.framework.common.util.object.BeanUtils;
|
||||
|
||||
import com.cf.imes.module.executor.dal.mysql.plan.PlanMapper;
|
||||
@@ -241,8 +234,8 @@ public class PlanServiceImpl implements PlanService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<OrderRespVO> getOrderPage(OrderPageReqVO pageReqVO) {
|
||||
PageDTO<OrderRespVO> page = new PageDTO<>(pageReqVO.getPageNo(), pageReqVO.getPageSize());
|
||||
public PageResult<OrderRespVOCopy> getOrderPage(OrderPageReqVOCopy pageReqVO) {
|
||||
PageDTO<OrderRespVOCopy> page = new PageDTO<>(pageReqVO.getPageNo(), pageReqVO.getPageSize());
|
||||
|
||||
QueryWrapperX<OrderDO> queryWrapperX = new QueryWrapperX<>();
|
||||
queryWrapperX
|
||||
@@ -265,7 +258,7 @@ public class PlanServiceImpl implements PlanService {
|
||||
|
||||
queryWrapperX.inIfPresent("c.filter_type", filterTypes);
|
||||
|
||||
IPage<OrderRespVO> orderDOPageResult = orderMapper.selectOrderPage(page, queryWrapperX);
|
||||
IPage<OrderRespVOCopy> orderDOPageResult = orderMapper.selectOrderPage(page, queryWrapperX);
|
||||
if (CollectionUtil.isEmpty(orderDOPageResult.getRecords())) {
|
||||
return new PageResult<>();
|
||||
}
|
||||
|
||||
+2
@@ -1,6 +1,8 @@
|
||||
package com.cf.imes.module.executor.util;
|
||||
|
||||
import com.cf.imes.module.executor.util.deviseData.Detail;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
package com.cf.imes.module.executor.util.deviseData.dataTwo;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* 配件基本信息
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class PartsDetail {
|
||||
// 商品信息
|
||||
private String goodsNo; // 商品编码
|
||||
private String goodsName; //商品名称
|
||||
private String goodType; //商品类型,用于筛选是板材还是配件类,可传入文字(需做转换)
|
||||
private String material; //材质
|
||||
private String color; //颜色
|
||||
private String factory; //商品生产厂商
|
||||
private String brand; //商品品牌
|
||||
private String model; //商品型号
|
||||
private String spec; //商品规格
|
||||
private float thickness;//规格-板厚 板厚,成品和开料都是一样的
|
||||
private String unit; //商品单位
|
||||
private float goodsNumber; //产品数量为特殊处理,板件和配件都有数量
|
||||
}
|
||||
+5
-2
@@ -21,7 +21,7 @@ public class PlateDetail {
|
||||
|
||||
// 板件所属信息
|
||||
private String roomsName; //房间名称
|
||||
private String cabinetsName; //柜体名
|
||||
private String bodyName; //柜体名
|
||||
// 柜体信息 长 宽 深
|
||||
private float width;
|
||||
private float height;
|
||||
@@ -30,9 +30,12 @@ public class PlateDetail {
|
||||
private List<String> synthesis;// 板件加工组Group的名称,可以有多个
|
||||
private String synthesisName;// 加工组中Group中每个小加工组的名称
|
||||
|
||||
// 商品基本信息
|
||||
// 小板基本信息
|
||||
private IBoardProdInfo iBoardProdInfo;
|
||||
|
||||
// 配件基本信息
|
||||
private List<PartsDetail> partsDetail;
|
||||
|
||||
// 基准位置,用于画图
|
||||
private BasePosition basePosition;
|
||||
|
||||
|
||||
+135
-2
@@ -1,15 +1,148 @@
|
||||
package com.cf.imes.module.executor.util.fileConversion.admin.api.webcad;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderSaveReqVO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.order.OrderDO;
|
||||
import com.cf.imes.module.executor.util.FileTypeChangeUtil;
|
||||
import com.cf.imes.module.executor.util.deviseData.Detail;
|
||||
import com.cf.imes.module.executor.util.deviseData.dataTwo.IBoardProdInfo;
|
||||
import com.cf.imes.module.executor.util.deviseData.dataTwo.PlateDetail;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.poi.ss.formula.functions.T;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 实现数据格式转换
|
||||
*/
|
||||
public interface ApiTypeChangeRealize extends FileTypeChangeUtil {
|
||||
default List<Detail> apiDataChange(String data) {
|
||||
|
||||
public class ApiTypeChangeRealize implements FileTypeChangeUtil {
|
||||
|
||||
@Override
|
||||
public <T> List<?> fileDataChange(MultipartFile file) throws IOException {
|
||||
return null;
|
||||
}
|
||||
|
||||
public <T> List<?> fileDataChange(String data) throws IOException {
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getFlag() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
String jsonData = "" ;
|
||||
JSONObject jsonObject = JSONObject.parseObject(jsonData);
|
||||
|
||||
// System.out.println(jsonObject.getString("Orders"));
|
||||
|
||||
// 解析 JSON 字符串
|
||||
JSONObject object = JSON.parseObject(jsonData);
|
||||
|
||||
// 获取 Orders 字段对应的数组
|
||||
JSONArray ordersArray = object.getJSONArray("Orders");
|
||||
|
||||
// 如果 Orders 数组不为空,则获取第一个订单对象
|
||||
if (ordersArray != null && !ordersArray.isEmpty()) {
|
||||
JSONObject value = ordersArray.getJSONObject(0);
|
||||
|
||||
// 使用 DateTimeFormatter 解析日期字符串
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||
LocalDate deliveryDate = LocalDate.parse(value.getString("DeliveryDate"), formatter);
|
||||
|
||||
OrderDO orderDO = OrderDO.builder()
|
||||
.parentNo(0L)
|
||||
.type(true)
|
||||
.sort(0)
|
||||
.dataType(1)
|
||||
.status(0)
|
||||
.customOrderNo(value.getString("OrderNo"))
|
||||
.customer(value.getString("Consigee"))
|
||||
.address(value.getString("ConsigeeAddress"))
|
||||
.phoneNumber(value.getString("ConsigeePhone"))
|
||||
.dealer(value.getString("CustomName"))
|
||||
.salesman(value.getString("SalePerson"))
|
||||
.remark(value.getString("Remark"))
|
||||
.deliveryDate(deliveryDate.atStartOfDay())
|
||||
.build();
|
||||
|
||||
// System.out.println("orderDO 差生产单的创建日期、拆单员、经销商电话数据," + orderDO);
|
||||
|
||||
List<Detail> details = new ArrayList<>();
|
||||
// 遍历 Orders 数组
|
||||
for (int i = 0; i < ordersArray.size(); i++) {
|
||||
JSONObject orderObject = ordersArray.getJSONObject(i);
|
||||
|
||||
// 获取订单的 Materials 数组
|
||||
JSONArray materialsArray = orderObject.getJSONArray("Materials");
|
||||
|
||||
// 遍历 Materials 数组
|
||||
for (int j = 0; j < materialsArray.size(); j++) {
|
||||
JSONObject materialObject = materialsArray.getJSONObject(j);
|
||||
|
||||
// 处理每个材料对象,这里可以根据需要进行操作
|
||||
System.out.println("Material " + (j + 1) + ": " + materialObject);
|
||||
|
||||
JSONArray blocksArray = materialObject.getJSONArray("Blocks");
|
||||
System.out.println(blocksArray.size());
|
||||
for (int k = 0; k < blocksArray.size(); k++) {
|
||||
JSONObject blockObject = materialsArray.getJSONObject(k);
|
||||
//
|
||||
// 处理每个块对象,这里可以根据需要进行操作
|
||||
System.out.println("Block " + (k + 1) + ": " + blockObject.getString("RoomName"));
|
||||
//
|
||||
// for (int l = 0; l < materialsArray.size(); l++) {
|
||||
// JSONObject holeObject = materialsArray.getJSONObject(l);
|
||||
//
|
||||
// // 处理每个孔对象,这里可以根据需要进行操作
|
||||
// }
|
||||
}
|
||||
// PlateDetail plateDetail = PlateDetail.builder()
|
||||
// .multiNum(1)
|
||||
// .roomsName(materialObject.getString("RoomName"))
|
||||
// .bodyName(materialObject.getString("BoxName"))
|
||||
// .iBoardProdInfo(IBoardProdInfo.builder()
|
||||
// .goodsNo(materialObject.getString("GoodsSN"))
|
||||
// .goodsName(materialObject.getString("Name"))
|
||||
// .material(materialObject.getString("Material"))
|
||||
// .color(materialObject.getString("Color"))
|
||||
//
|
||||
// .build())
|
||||
// .build();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
System.out.println("JSON 数据中没有订单信息(Orders 数组为空)。");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// 生产单数据分离填入
|
||||
public List<T> getDeviseData(String[] args) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// 将remark转为map
|
||||
public Map<String, String> remarkToMap(String[] remark) {
|
||||
Map<String, String> map = new HashMap<>();
|
||||
|
||||
return map;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
package com.cf.imes.module.executor.util.fileConversion.admin.api.webcad.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.xml.bind.annotation.*;
|
||||
|
||||
@Data// lombok注解,给字段添加getter和setter
|
||||
@XmlAccessorType(XmlAccessType.FIELD)// 映射所有的字段
|
||||
@XmlRootElement(name = "Point ")// XML根节点名称,此处为nation
|
||||
public class Point {
|
||||
|
||||
@XmlAttribute// 解析节点的属性
|
||||
private String type;
|
||||
|
||||
@XmlValue// 解析nation节点的内容,字段名称无所谓
|
||||
private String nationValue;
|
||||
}
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
||||
<mapper namespace="com.cf.imes.module.executor.dal.mysql.order.OrderMapper">
|
||||
|
||||
<select id="selectOrderPage" resultType="com.cf.imes.module.executor.controller.admin.plan.vo.OrderRespVO">
|
||||
<select id="selectOrderPage" resultType="com.cf.imes.module.executor.controller.admin.plan.vo.OrderRespVOCopy">
|
||||
select a.id as orderId, a.delivery_date, a.customer, a.address, a.custom_order_no as defineId,
|
||||
count(c.id) as num, sum(c.area) as area, p.goods_name, p.color, p.material, p.goods_id
|
||||
from `order` a
|
||||
|
||||
-1
@@ -53,7 +53,6 @@ public class PlateSaveReqVO {
|
||||
private String spec;
|
||||
|
||||
@Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "随便")
|
||||
@NotEmpty(message = "备注不能为空")
|
||||
private String remark;
|
||||
|
||||
private Long organId;
|
||||
|
||||
+1
-1
@@ -46,7 +46,7 @@ public class PlateServiceImpl implements PlateService {
|
||||
@Override
|
||||
public Long createPlate(PlateSaveReqVO createReqVO) {
|
||||
PlateDO plate = BeanUtils.toBean(createReqVO, PlateDO.class);
|
||||
if (createReqVO.getOrganId() == 0 && createReqVO.getGoodsId() != null){
|
||||
if (createReqVO.getOrganId() != null && createReqVO.getOrganId() != 0 ){
|
||||
validateOrganExists(createReqVO.getOrganId());
|
||||
validateGoodExists(createReqVO.getGoodsId(), createReqVO.getOrganId());
|
||||
plate.setOrganId(OrganContextHolder.getOrganId());
|
||||
|
||||
+2
-1
@@ -211,7 +211,7 @@ public interface ErrorCodeConstants {
|
||||
|
||||
//=========== 板材信息 1-002-034-000 ============
|
||||
ErrorCode PROCESS_USER_NOT_EXISTS = new ErrorCode(1_002_032_002, "工序用户不存在");
|
||||
ErrorCode PROCESS_USER_EXISTS = new ErrorCode(1_002_032_002, "工序用户存在");
|
||||
ErrorCode PROCESS_USER_EXISTS = new ErrorCode(1_002_032_003, "工序用户存在");
|
||||
|
||||
//=========== 板材信息 1-002-035-000 ============
|
||||
ErrorCode RAW_GOODS_NOT_EXISTS = new ErrorCode(1_002_033_001, "设计板材不存再");
|
||||
@@ -230,4 +230,5 @@ public interface ErrorCodeConstants {
|
||||
ErrorCode APPLICATION_NOT_EXISTS = new ErrorCode(1_002_037_001, "应用信息不存在");
|
||||
ErrorCode APPLICATION_LOGIN_USER_DISABLED = new ErrorCode(1_002_037_001, "应用登陆失败");
|
||||
|
||||
ErrorCode ERR = new ErrorCode(1_002_038_001, "未知错误");
|
||||
}
|
||||
|
||||
+2
@@ -30,4 +30,6 @@ public interface ProcessGroupMapper extends BaseMapperX<ProcessGroupDO> {
|
||||
}
|
||||
|
||||
ProcessDO selectOneById(@Param("id") Long id, @Param("organId") Long organId);
|
||||
|
||||
int updateIsDefault(@Param("processGroupId") Long processGroupId, @Param("organId") Long organId);
|
||||
}
|
||||
+6
@@ -31,6 +31,12 @@ public interface ProcessUserMapper extends BaseMapperX<ProcessUserDO> {
|
||||
.eq(ProcessUserDO::getProcessId, processId));
|
||||
}
|
||||
|
||||
default List<ProcessUserDO> selectById(Long processId,Long userId) {
|
||||
return selectList(new LambdaQueryWrapperX<ProcessUserDO>()
|
||||
.eq(ProcessUserDO::getProcessId, processId)
|
||||
.eq(ProcessUserDO::getUserId, userId));
|
||||
}
|
||||
|
||||
default ProcessUserDO selectUserByProcessId(Long processId) {
|
||||
return selectOne(ProcessUserDO::getProcessId, processId);
|
||||
}
|
||||
|
||||
+12
@@ -51,6 +51,9 @@ public class ProcessGroupServiceImpl implements ProcessGroupService {
|
||||
ProcessGroupDO processGroup = BeanUtils.toBean(createReqVO, ProcessGroupDO.class);
|
||||
processGroup.setItems(checkProcessGroupExists(createReqVO.getItems()));
|
||||
processGroupMapper.insert(processGroup);
|
||||
if (createReqVO.getIsDefault()) {
|
||||
processGroupMapper.updateIsDefault(processGroup.getId(), OrganContextHolder.getOrganId());
|
||||
}
|
||||
// 返回
|
||||
return processGroup.getId();
|
||||
}
|
||||
@@ -63,6 +66,9 @@ public class ProcessGroupServiceImpl implements ProcessGroupService {
|
||||
ProcessGroupDO updateObj = BeanUtils.toBean(updateReqVO, ProcessGroupDO.class);
|
||||
updateObj.setItems(checkProcessGroupExists(updateReqVO.getItems()));
|
||||
processGroupMapper.updateById(updateObj);
|
||||
if (updateReqVO.getIsDefault()) {
|
||||
processGroupMapper.updateIsDefault(updateReqVO.getId(), OrganContextHolder.getOrganId());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -152,4 +158,10 @@ public class ProcessGroupServiceImpl implements ProcessGroupService {
|
||||
// 返回格式化的列表字符串
|
||||
return itemsBuilder.length() > 0 ? itemsBuilder.toString() : "[]";
|
||||
}
|
||||
|
||||
// 批量更新工序组默认
|
||||
public void updateProcessGroupIsDefault(Long processGroupId, Long organId) {
|
||||
processGroupMapper.updateIsDefault(processGroupId, organId);
|
||||
}
|
||||
|
||||
}
|
||||
+1
-1
@@ -69,7 +69,7 @@ public class ProcessServiceImpl implements ProcessService {
|
||||
processAndUserSaveReqVO.setUserId(Long.parseLong(user));
|
||||
processUserService.createProcessUser(processAndUserSaveReqVO);
|
||||
}catch (Exception e){
|
||||
throw ServiceExceptionUtil.exception(ErrorCodeConstants.USER_NOT_EXISTS);
|
||||
throw ServiceExceptionUtil.exception(ErrorCodeConstants.ERR);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+4
-3
@@ -1,6 +1,5 @@
|
||||
package com.cf.imes.module.system.service.process;
|
||||
|
||||
import com.cf.imes.framework.organ.core.context.OrganContextHolder;
|
||||
import com.cf.imes.module.system.controller.admin.process.vo.processUser.ProcessAndUserSaveReqVO;
|
||||
import org.springframework.stereotype.Service;
|
||||
import javax.annotation.Resource;
|
||||
@@ -14,6 +13,7 @@ import com.cf.imes.module.system.dal.mysql.process.ProcessUserMapper;
|
||||
import java.util.List;
|
||||
|
||||
import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static com.cf.imes.module.system.enums.ErrorCodeConstants.PROCESS_USER_EXISTS;
|
||||
import static com.cf.imes.module.system.enums.ErrorCodeConstants.PROCESS_USER_NOT_EXISTS;
|
||||
|
||||
/**
|
||||
@@ -30,8 +30,9 @@ public class ProcessUserServiceImpl implements ProcessUserService {
|
||||
|
||||
@Override
|
||||
public Long createProcessUser(ProcessAndUserSaveReqVO createReqVO) {
|
||||
if (processUserMapper.selectByProcessId(createReqVO.getProcessId()).size() != 0) {
|
||||
throw exception(PROCESS_USER_NOT_EXISTS);
|
||||
// 判断是否有
|
||||
if (processUserMapper.selectById(createReqVO.getProcessId(), createReqVO.getUserId()).size() != 0) {
|
||||
throw exception(PROCESS_USER_EXISTS);
|
||||
}
|
||||
// 插入
|
||||
ProcessUserDO processUser = BeanUtils.toBean(createReqVO, ProcessUserDO.class);
|
||||
|
||||
+3
@@ -20,4 +20,7 @@
|
||||
where p.id = #{id} and p.organ_id = #{organId} and p.deleted = 0
|
||||
</select>
|
||||
|
||||
<update id="updateIsDefault" >
|
||||
UPDATE process_group SET is_default = 0 WHERE organ_id = #{organId} AND id != #{processGroupId}
|
||||
</update>
|
||||
</mapper>
|
||||
|
||||
Reference in New Issue
Block a user