工单模块接口提交

This commit is contained in:
xuzh
2026-06-11 16:46:59 +08:00
parent d6fa944d8c
commit e956f6d836
8 changed files with 900 additions and 0 deletions

View File

@@ -0,0 +1,57 @@
package org.nl.wms.welding_manage.controller.work_order;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.base.TableDataInfo;
import org.nl.common.domain.query.PageQuery;
import org.nl.common.logging.annotation.Log;
import org.nl.wms.welding_manage.service.work_order.IWorkOrderService;
import org.nl.wms.welding_manage.service.work_order.dto.WorkOrderDto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
/**
* 工单接口类
*/
@RestController
@RequestMapping("/api/workOrder")
@Slf4j
public class WorkOrderController {
@Autowired
private IWorkOrderService iWorkOrderService;
@GetMapping
@Log("分页查询工单列表和详情")
public ResponseEntity<Object> query(@RequestParam Map params, PageQuery page)
{
return new ResponseEntity<>(TableDataInfo.build(iWorkOrderService.queryList(page, params)), HttpStatus.OK);
}
@PostMapping
@Log("保存工单")
public ResponseEntity<Object> save(@Validated @RequestBody WorkOrderDto dto)
{
iWorkOrderService.insert(dto);
return new ResponseEntity<>(HttpStatus.CREATED);
}
@PutMapping
@Log("修改工单")
public ResponseEntity<Object> update()
{
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
@DeleteMapping
@Log("删除工单")
public ResponseEntity<Object> delete()
{
return new ResponseEntity<>(HttpStatus.OK);
}
}

View File

@@ -0,0 +1,27 @@
package org.nl.wms.welding_manage.service.work_order;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.nl.common.domain.query.PageQuery;
import org.nl.wms.welding_manage.service.work_order.dao.WorkOrderDao;
import org.nl.wms.welding_manage.service.work_order.dto.WorkOrderDto;
import java.util.Map;
public interface IWorkOrderService extends IService<WorkOrderDao> {
/**
* 分页查询工单详情
* @param pageable
* @param params
* @return
*/
IPage<WorkOrderDto.WorkOrderDataDto> queryList(PageQuery pageable, Map params);
/**
* 新增工单
* @param entity
*/
void insert(WorkOrderDto entity);
}

View File

@@ -0,0 +1,81 @@
package org.nl.wms.welding_manage.service.work_order.dao;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("md_work_order_bom")
public class WorkOrderBomDao {
private String id;
private String item_id;
private Integer item_no;
private String material_code;
private String material_name;
private String spec;
private String unit;
private String base_unit;
private BigDecimal bom_qty;
private String work_center;
private String load_port;
private String dept_code;
private String sup_org_code;
private BigDecimal warehouse_code;
private String warehouse_name;
private String stocker_code;
private String stocker_name;
private String work_order_code;
private String line_pod;
private String bom_prop1;
private String bom_prop2;
private String bom_prop3;
private String attr_01;
private String attr_02;
private String attr_03;
private String attr_04;
private String attr_05;
private String attr_06;
private String track_no;
private BigDecimal wms_qty;
private BigDecimal eas5_qty;
private BigDecimal eas4_qty;
private BigDecimal group_pallet_qty;
private Integer status;
}

View File

@@ -0,0 +1,104 @@
package org.nl.wms.welding_manage.service.work_order.dao;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("md_work_order")
public class WorkOrderDao {
private String id;
private String work_order_sn_list;
private String org_code;
private String order_code;
private String order_id;
private String biz_dept_code;
private String order_type;
private String remark;
private String bom_code;
private Integer order_qty;
private String plan_started_on;
private String plan_finished_on;
private BigDecimal default_warehouse_code;
private String default_warehouse_name;
private String track_no;
private String unit;
private String biz_date;
private String product_code;
private String product_name;
private String product_spec;
private String color_code;
private String sn_detail;
private String process_plan;
private String step_code;
private String lot_number;
private String production_status;
private String work_area;
private String work_area_type;
private String finished_qty;
private String attr_01;
private String attr_02;
private String attr_03;
private String attr_04;
private String attr_05;
private String attr_06;
private String ser_no;
private String src_order_code;
private String finished_rate;
private String product_type;
private String layout_code;
private String factory;
private String workshop;
private int status;
private String create_time;
private String update_time;
}

View File

@@ -0,0 +1,34 @@
package org.nl.wms.welding_manage.service.work_order.dao.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.lettuce.core.dynamic.annotation.Param;
import org.nl.wms.welding_manage.service.work_order.dao.WorkOrderDao;
import org.nl.wms.welding_manage.service.work_order.dto.WorkOrderDto;
import java.util.List;
import java.util.Map;
public interface WorkOrderMapper extends BaseMapper<WorkOrderDao> {
/**
* 分页查询工单
* @param page
* @param params
* @return
*/
IPage<WorkOrderDto.WorkOrderDataDto> queryList(Page<WorkOrderDto.WorkOrderDataDto> page, @Param("params") Map params);
/**
* 保存工单
* @param workOrderDataDto
*/
void saveWorkOrder(WorkOrderDto.WorkOrderDataDto workOrderDataDto);
/**
* 批量保存BOM_LIST
* @param bomList
*/
void saveAllBom(List<WorkOrderDto.WorkOrderDataDto.WorkOrderBomDto> bomList);
}

View File

@@ -0,0 +1,180 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.nl.wms.welding_manage.service.work_order.dao.mapper.WorkOrderMapper">
<insert id="saveWorkOrder">
INSERT INTO md_work_order(
id, work_order_sn_list, org_code, order_code, order_id, biz_dept_code,
order_type, remark, bom_code, order_qty, plan_started_on,plan_finished_on,
default_warehouse_code, default_warehouse_name, track_no, unit, biz_date,
product_code, product_name, product_spec, color_code, sn_detail, process_plan,
step_code, lot_number, production_status, work_area, work_area_type, finished_qty,
attr_01, attr_02, attr_03, attr_04, attr_05, attr_06, src_order_code, finished_rate,
product_type,layout_code, factory, workshop, create_time
) VALUES (
#{id}, #{workOrderSnListString}, #{orgCode}, #{orderCode}, #{orderId}, #{bizDeptCode},
#{orderType}, #{remark}, #{bomCode}, #{orderQty}, #{planStartedOn}, #{planFinishedOn},
#{defaultWarehouseCode}, #{defaultWarehouseName}, #{trackNo}, #{unit}, #{bizDate},
#{productCode}, #{productName}, #{productSpec}, #{colorCode}, #{snDetail}, #{processPlan},
#{stepCode}, #{lotNumber}, #{productionStatus}, #{workArea}, #{workAreaType}, #{finishedQty},
#{attr01}, #{attr02}, #{attr03}, #{attr04}, #{attr05}, #{attr06}, #{srcOrderCode}, #{finishedRate},
#{productType}, #{layoutCode}, #{factory}, #{workshop}, #{createTime}
)
</insert>
<insert id="saveAllBom">
INSERT INTO md_work_order_bom(
id, item_id, item_no, material_code, material_name, spec, unit, base_unit,
bom_qty, work_center, load_port, dept_code, sup_org_code, warehouse_code,
warehouse_name, stocker_code, stocker_name, work_order_code, line_pod,
bom_prop1, bom_prop2, bom_prop3, attr_01, attr_02, attr_03, attr_04,
attr_05, attr_06, track_no, wms_qty, eas5_qty, eas4_qty
) VALUES
<foreach collection="bomList" item="bom" separator=",">
(
#{bom.id}, #{bom.itemId}, #{bom.itemNo}, #{bom.materialCode}, #{bom.materialName},
#{bom.spec}, #{bom.unit}, #{bom.baseUnit}, #{bom.bomQty}, #{bom.workCenter},
#{bom.loadPort}, #{bom.deptCode}, #{bom.supOrgCode}, #{bom.warehouseCode},
#{bom.warehouseName}, #{bom.stockerCode}, #{bom.stockerName}, #{bom.workOrderCode},
#{bom.linePod}, #{bom.bomProp1}, #{bom.bomProp2}, #{bom.bomProp3}, #{bom.attr01},
#{bom.attr02}, #{bom.attr03}, #{bom.attr04}, #{bom.attr05}, #{bom.attr06},
#{bom.trackNo}, #{bom.wmsQty}, #{bom.eas5Qty}, #{bom.eas4Qty}
)
</foreach>
</insert>
<!--查询工单列表-->
<select id="queryList" resultMap="workOrderList">
SELECT * FROM md_work_order
<where>
<if test="params.orderCode != null and params.orderCode != ''" >
AND order_code LIKE CONCAT('%', #{params.orderCode}, '%')
</if>
<if test="params.productName" >
AND product_name = #{params.productName}
</if>
<if test="params.bomCode != null" >
AND bom_code = #{params.bomCode}
</if>
<if test="params.workArea != null" >
AND work_area = #{params.workArea}
</if>
<if test="params.status" >
AND `status` = #{params.status}
</if>
</where>
ORDER BY `plan_started_on` Desc
</select>
<select id="selectBomByWorkOrderCode" resultMap="workOrderBom">
SELECT
*
FROM
md_work_order_bom
WHERE
work_order_code = #{orderCode}
ORDER BY
load_port ASC, item_no ASC
</select>
<resultMap id="workOrderList" type="org.nl.wms.welding_manage.service.work_order.dto.WorkOrderDto$WorkOrderDataDto">
<result property="id" column="id"/>
<result property="workOrderSnListString" column="work_order_sn_list"/>
<result property="orderStatus" column="order_status"/>
<result property="orgCode" column="org_code"/>
<result property="orderCode" column="order_code"/>
<result property="orderId" column="order_id"/>
<result property="bizDeptCode" column="biz_dept_code"/>
<result property="orderType" column="order_type"/>
<result property="remark" column="remark"/>
<result property="createdBy" column="created_by"/>
<result property="modifiedOn" column="modified_on"/>
<result property="checkedBy" column="checked_by"/>
<result property="bomCode" column="bom_code"/>
<result property="orderQty" column="order_qty"/>
<result property="planStartedOn" column="plan_started_on"/>
<result property="planFinishedOn" column="plan_finished_on"/>
<result property="defaultWarehouseCode" column="default_warehouse_code"/>
<result property="defaultWarehouseName" column="default_warehouse_name"/>
<result property="trackNo" column="track_no"/>
<result property="unit" column="unit"/>
<result property="bizDate" column="biz_date"/>
<result property="productCode" column="product_code"/>
<result property="productName" column="product_name"/>
<result property="productSpec" column="product_spec"/>
<result property="colorCode" column="color_code"/>
<result property="snDetail" column="sn_detail"/>
<result property="processPlan" column="process_plan"/>
<result property="stepCode" column="step_code"/>
<result property="lotNumber" column="lot_number"/>
<result property="productionStatus" column="production_status"/>
<result property="workArea" column="work_area"/>
<result property="workAreaType" column="work_area_type"/>
<result property="teamName" column="team_name"/>
<result property="modifiedBy" column="modified_by"/>
<result property="modifiedTime" column="modified_time"/>
<result property="createdOn" column="created_on"/>
<result property="finishedQty" column="finished_qty"/>
<result property="seqNo" column="seq_no"/>
<result property="attr01" column="attr_01"/>
<result property="attr02" column="attr_02"/>
<result property="attr03" column="attr_03"/>
<result property="attr04" column="attr_04"/>
<result property="attr05" column="attr_05"/>
<result property="attr06" column="attr_06"/>
<result property="serNo" column="ser_no"/>
<result property="actualStartedOn" column="actual_started_on"/>
<result property="actualFinishedOn" column="actual_finished_on"/>
<result property="srcOrderCode" column="src_order_code"/>
<result property="finishedRate" column="finished_rate"/>
<result property="bizDeptName" column="biz_dept_name"/>
<result property="productType" column="product_type"/>
<result property="layoutCode" column="layout_code"/>
<result property="factory" column="factory"/>
<result property="workshop" column="workshop"/>
<result property="status" column="status"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
<collection
property="workOrderBomList"
column="order_code"
select="selectBomByWorkOrderCode"
/>
</resultMap>
<resultMap id="workOrderBom" type="org.nl.wms.welding_manage.service.work_order.dto.WorkOrderDto$WorkOrderDataDto$WorkOrderBomDto">
<result property="id" column="id"/>
<result property="itemId" column="item_id"/>
<result property="itemNo" column="item_no"/>
<result property="materialCode" column="material_code"/>
<result property="materialName" column="material_name"/>
<result property="spec" column="spec"/>
<result property="unit" column="unit"/>
<result property="baseUnit" column="base_unit"/>
<result property="bomQty" column="bom_qty"/>
<result property="workCenter" column="work_center"/>
<result property="loadPort" column="load_port"/>
<result property="deptCode" column="dept_code"/>
<result property="supOrgCode" column="sup_org_code"/>
<result property="warehouseCode" column="warehouse_code"/>
<result property="warehouseName" column="warehouse_name"/>
<result property="stockerCode" column="stocker_code"/>
<result property="stockerName" column="stocker_name"/>
<result property="workOrderCode" column="work_order_code"/>
<result property="linePod" column="line_pod"/>
<result property="bomProp1" column="bom_prop1"/>
<result property="bomProp2" column="bom_prop2"/>
<result property="bomProp3" column="bom_prop3"/>
<result property="attr01" column="attr_01"/>
<result property="attr02" column="attr_02"/>
<result property="attr03" column="attr_03"/>
<result property="attr04" column="attr_04"/>
<result property="attr05" column="attr_05"/>
<result property="attr06" column="attr_06"/>
<result property="trackNo" column="track_no"/>
<result property="wmsQty" column="wms_qty"/>
<result property="eas5Qty" column="eas5_qty"/>
<result property="eas4Qty" column="eas4_qty"/>
<result property="groupPalletQty" column="group_pallet_qty"/>
<result property="status" column="status"/>
</resultMap>
</mapper>

View File

@@ -0,0 +1,317 @@
package org.nl.wms.welding_manage.service.work_order.dto;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
@Data
@JsonIgnoreProperties(ignoreUnknown = true) //忽略未知字段
public class WorkOrderDto implements Serializable {
@JsonProperty("WorkOrder")
private WorkOrderDataDto workOrder;
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public static class WorkOrderDataDto implements Serializable {
@JsonProperty("Id")
private String id;
@JsonProperty("WorkOrderSnList")
private List<String> workOrderSnList;
private String workOrderSnListString;
@JsonProperty("OrderStatus")
private String orderStatus;
@JsonProperty("OrgCode")
private String orgCode;
@JsonProperty("OrderCode")
private String orderCode;
@JsonProperty("OrderId")
private String orderId;
@JsonProperty("BizDeptCode")
private String bizDeptCode;
@JsonProperty("OrderType")
private String orderType;
@JsonProperty("Remark")
private String remark;
@JsonProperty("CreatedBy")
private String createdBy;
@JsonProperty("ModifiedOn")
private String modifiedOn;
@JsonProperty("CheckedBy")
private String checkedBy;
@JsonProperty("BomCode")
private String bomCode;
@JsonProperty("OrderQty")
private Integer orderQty;
@JsonProperty("PlanStartedOn")
private String planStartedOn;
@JsonProperty("PlanFinishedOn")
private String planFinishedOn;
@JsonProperty("DefaultWarehouseCode")
private BigDecimal defaultWarehouseCode;
@JsonProperty("DefaultWarehouseName")
private String defaultWarehouseName;
@JsonProperty("TrackNo")
private String trackNo;
@JsonProperty("Unit")
private String unit;
@JsonProperty("BizDate")
private String bizDate;
@JsonProperty("ProductCode")
private String productCode;
@JsonProperty("ProductName")
private String productName;
@JsonProperty("ProductSpec")
private String productSpec;
@JsonProperty("ColorCode")
private String colorCode;
@JsonProperty("SnDetail")
private String snDetail;
@JsonProperty("ProcessPlan")
private String processPlan;
@JsonProperty("StepCode")
private String stepCode;
@JsonProperty("LotNumber")
private String lotNumber;
@JsonProperty("ProductionStatus")
private String productionStatus;
@JsonProperty("WorkArea")
private String workArea;
@JsonProperty("WorkAreaType")
private String WorkAreaType;
@JsonProperty("TeamName")
private String teamName;
@JsonProperty("ModifiedBy")
private String modifiedBy;
@JsonProperty("ModifiedTime")
private String modifiedTime;
@JsonProperty("CreatedOn")
private String createdOn;
@JsonProperty("FinishedQty")
private String finishedQty;
@JsonProperty("SeqNo")
private String seqNo;
@JsonProperty("Attr01")
private String attr01;
@JsonProperty("Attr02")
private String attr02;
@JsonProperty("Attr03")
private String attr03;
@JsonProperty("Attr04")
private String attr04;
@JsonProperty("Attr05")
private String attr05;
@JsonProperty("Attr06")
private String attr06;
@JsonProperty("SerNo")
private String serNo;
@JsonProperty("ActualStartedOn")
private String actualStartedOn;
@JsonProperty("ActualFinishedOn")
private String actualFinishedOn;
@JsonProperty("SrcOrderCode")
private String srcOrderCode;
@JsonProperty("FinishedRate")
private String finishedRate;
@JsonProperty("BizDeptName")
private String bizDeptName;
@JsonProperty("ProductType")
private String productType;
@JsonProperty("LayoutCode")
private String layoutCode;
@JsonProperty("Factory")
private String factory;
@JsonProperty("Workshop")
private String workshop;
@JsonProperty("Status")
private String status;
@JsonProperty("CreateTime")
private String createTime;
@JsonProperty("UpdateTime")
private String updateTime;
@JsonProperty("PortList")
private List<FeedPortDto> portList;
@JsonProperty("WorkOrderBomList")
List<WorkOrderBomDto> workOrderBomList;
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public static class FeedPortDto implements Serializable {
@JsonProperty("Port")
private String port;
}
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public static class WorkOrderBomDto implements Serializable {
@JsonProperty("Id")
private String id;
@JsonProperty("ItemId")
private String itemId;
@JsonProperty("ItemNo")
private Integer itemNo;
@JsonProperty("MaterialCode")
private String materialCode;
@JsonProperty("MaterialName")
private String materialName;
@JsonProperty("Spec")
private String spec;
@JsonProperty("Unit")
private String unit;
@JsonProperty("BaseUnit")
private String baseUnit;
@JsonProperty("BomQty")
private BigDecimal bomQty;
@JsonProperty("WorkCenter")
private String workCenter;
@JsonProperty("LoadPort")
private String loadPort;
@JsonProperty("DeptCode")
private String deptCode;
@JsonProperty("SupOrgCode")
private String supOrgCode;
@JsonProperty("WarehouseCode")
private BigDecimal warehouseCode;
@JsonProperty("WarehouseName")
private String warehouseName;
@JsonProperty("StockerCode")
private String stockerCode;
@JsonProperty("StockerName")
private String stockerName;
@JsonProperty("WorkOrderCode")
private String workOrderCode;
@JsonProperty("LinePod")
private String linePod;
@JsonProperty("BomProp1")
private String bomProp1;
@JsonProperty("BomProp2")
private String bomProp2;
@JsonProperty("BomProp3")
private String bomProp3;
@JsonProperty("Attr01")
private String attr01;
@JsonProperty("Attr02")
private String attr02;
@JsonProperty("Attr03")
private String attr03;
@JsonProperty("Attr04")
private String attr04;
@JsonProperty("Attr05")
private String attr05;
@JsonProperty("Attr06")
private String attr06;
@JsonProperty("TrackNo")
private String trackNo;
@JsonProperty("WmsQty")
private BigDecimal wmsQty;
@JsonProperty("Eas5Qty")
private BigDecimal eas5Qty;
@JsonProperty("Eas4Qty")
private BigDecimal eas4Qty;
@JsonProperty("GroupPalletQty")
private BigDecimal groupPalletQty;
@JsonProperty("Status")
private BigDecimal status;
}
}
}

View File

@@ -0,0 +1,100 @@
package org.nl.wms.welding_manage.service.work_order.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.domain.query.PageQuery;
import org.nl.wms.welding_manage.service.work_order.dao.WorkOrderDao;
import org.nl.wms.welding_manage.service.work_order.dao.mapper.WorkOrderMapper;
import org.nl.wms.welding_manage.service.work_order.dto.WorkOrderDto;
import org.nl.wms.welding_manage.service.work_order.IWorkOrderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.stream.Collectors;
@Slf4j
@Service
public class WorkOrderServiceImpl extends ServiceImpl<WorkOrderMapper, WorkOrderDao> implements IWorkOrderService {
@Autowired
private WorkOrderMapper workOrderMapper;
@Override
public IPage<WorkOrderDto.WorkOrderDataDto> queryList(PageQuery page, Map params) {
IPage<WorkOrderDto.WorkOrderDataDto> workOrderDataDtoIPage = workOrderMapper.queryList(new Page<>(page.getPage() + 1, page.getSize()), params);
List<WorkOrderDto.WorkOrderDataDto> records = workOrderDataDtoIPage.getRecords();
if (records != null && !records.isEmpty()) {
for (WorkOrderDto.WorkOrderDataDto record : records) {
//获取PortList并去重
List<WorkOrderDto.WorkOrderDataDto.WorkOrderBomDto> workOrderBomList = record.getWorkOrderBomList();
if (workOrderBomList != null && !workOrderBomList.isEmpty()) {
List<WorkOrderDto.WorkOrderDataDto.FeedPortDto> portDtoList = workOrderBomList.stream()
.map(WorkOrderDto.WorkOrderDataDto.WorkOrderBomDto::getLoadPort)
.filter(Objects::nonNull)
.filter(s -> !s.trim().isEmpty())
.distinct() // 直接去重
.map(port -> {
WorkOrderDto.WorkOrderDataDto.FeedPortDto dto = new WorkOrderDto.WorkOrderDataDto.FeedPortDto();
dto.setPort(port);
return dto;
})
.collect(Collectors.toList());
record.setPortList(portDtoList);
}
String snListString = record.getWorkOrderSnListString();
if (StringUtils.hasText(snListString)) {
// 按逗号分割字符串并去除空白字符转换为List
List<String> snList = Arrays.stream(snListString.split(","))
.map(String::trim)
.filter(s -> !s.isEmpty())
.collect(Collectors.toList());
record.setWorkOrderSnList(snList);
}
}
}
workOrderDataDtoIPage.setRecords(records);
return workOrderDataDtoIPage;
}
@Override
@Transactional
public void insert(WorkOrderDto dto) {
WorkOrderDto.WorkOrderDataDto workOrderDataDto = dto.getWorkOrder();
if (workOrderDataDto == null) {
System.out.println("workOrderDataDto is NULL");
return;
}
WorkOrderDto.WorkOrderDataDto workOrder = dto.getWorkOrder();
LocalDateTime now = LocalDateTime.now();
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String nowStr = now.format(dateTimeFormatter).toString();
workOrder.setCreateTime(nowStr);
List<String> workOrderSnList = workOrder.getWorkOrderSnList();
if (workOrderSnList != null && !workOrderSnList.isEmpty()) {
workOrder.setWorkOrderSnListString(String.join(",", workOrderSnList));
}
List<WorkOrderDto.WorkOrderDataDto.WorkOrderBomDto> workOrderBomList = workOrder.getWorkOrderBomList();
workOrderMapper.saveWorkOrder(workOrder);
workOrderMapper.saveAllBom(workOrderBomList);
}
}