工单模块接口提交
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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>
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user