From 27478d0e43742dfb8dffe445ff62a6fb824e36c0 Mon Sep 17 00:00:00 2001
From: huangjiayang <5265313@qq.com>
Date: 星期四, 17 四月 2025 15:46:58 +0800
Subject: [PATCH] 【ADD】查询U9接口获取工单工序数据

---
 aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsWorkOrderProcessMapper.java       |   70 +++++
 aps-modules/aps-job/src/main/java/com/aps/job/service/IApsWorkOrderProcessService.java    |   69 +++++
 aps-modules/aps-job/src/main/java/com/aps/job/domain/ApsWorkOrderProcess.java             |  239 +++++++++++++++++++
 aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderProcessMapper.xml           |  126 ++++++++++
 aps-modules/aps-job/src/main/java/com/aps/job/service/ApsWorkOrderProcessServiceImpl.java |  175 ++++++++++++++
 5 files changed, 679 insertions(+), 0 deletions(-)

diff --git a/aps-modules/aps-job/src/main/java/com/aps/job/domain/ApsWorkOrderProcess.java b/aps-modules/aps-job/src/main/java/com/aps/job/domain/ApsWorkOrderProcess.java
new file mode 100644
index 0000000..330ad8f
--- /dev/null
+++ b/aps-modules/aps-job/src/main/java/com/aps/job/domain/ApsWorkOrderProcess.java
@@ -0,0 +1,239 @@
+package com.aps.job.domain;
+
+import com.aps.common.core.annotation.Excel;
+import com.aps.common.core.web.domain.BaseEntity;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import java.io.Serial;
+import java.util.Date;
+
+/**
+ * 宸ュ崟宸ュ簭瀵硅薄 aps_work_order_process
+ * 
+ * @author hjy
+ * @date 2025-04-17
+ */
+public class ApsWorkOrderProcess extends BaseEntity
+{
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /** 涓婚敭鑷 */
+    private Long id;
+
+    /** 鏂欏彿 */
+    @Excel(name = "鏂欏彿")
+    private String itemCode;
+
+    /** 宸ュ崟鍙� */
+    @Excel(name = "宸ュ崟鍙�")
+    private String docNo;
+
+    /** 宸ュ簭搴忓彿 */
+    @Excel(name = "宸ュ簭搴忓彿")
+    private String opNum;
+
+    /** 宸ュ簭id */
+    @Excel(name = "宸ュ簭id")
+    private String opId;
+
+    /** 宸ュ簭鍚嶇О-U9-WorkCenter */
+    @Excel(name = "宸ュ簭鍚嶇О-U9-WorkCenter")
+    private String processName;
+
+    /** 鏍囧噯宸ユ椂-灏忔暟 */
+    @Excel(name = "鏍囧噯宸ユ椂-灏忔暟")
+    private Float standardTime;
+
+    /** 宸ュ簭璁″垝寮�濮嬫椂闂� */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "宸ュ簭璁″垝寮�濮嬫椂闂�", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date palnStartDate;
+
+    /** 宸ュ簭璁″垝瀹屾垚鏃ユ湡 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "宸ュ簭璁″垝瀹屾垚鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date planCompleteDate;
+
+    /** 鍔犲伐鏁伴噺-灏忔暟 */
+    @Excel(name = "鍔犲伐鏁伴噺-灏忔暟")
+    private Float processQty;
+
+    /** 搴熷純鏁伴噺 */
+    @Excel(name = "搴熷純鏁伴噺")
+    private Float scrapQty;
+
+    /** 宸ュ簭鐘舵�� */
+    @Excel(name = "宸ュ簭鐘舵��")
+    private String opStatus;
+
+    /** 璐﹀ */
+    @Excel(name = "璐﹀")
+    private String org;
+
+    /** 璐﹀缂栫爜 */
+    @Excel(name = "璐﹀缂栫爜")
+    private String orgCode;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+
+    public void setItemCode(String itemCode) 
+    {
+        this.itemCode = itemCode;
+    }
+
+    public String getItemCode() 
+    {
+        return itemCode;
+    }
+
+    public void setDocNo(String docNo) 
+    {
+        this.docNo = docNo;
+    }
+
+    public String getDocNo() 
+    {
+        return docNo;
+    }
+
+    public void setOpNum(String opNum) 
+    {
+        this.opNum = opNum;
+    }
+
+    public String getOpNum() 
+    {
+        return opNum;
+    }
+
+    public void setOpId(String opId) 
+    {
+        this.opId = opId;
+    }
+
+    public String getOpId() 
+    {
+        return opId;
+    }
+
+    public void setProcessName(String processName) 
+    {
+        this.processName = processName;
+    }
+
+    public String getProcessName() 
+    {
+        return processName;
+    }
+
+    public void setStandardTime(Float standardTime)
+    {
+        this.standardTime = standardTime;
+    }
+
+    public Float getStandardTime()
+    {
+        return standardTime;
+    }
+
+    public void setPalnStartDate(Date palnStartDate) 
+    {
+        this.palnStartDate = palnStartDate;
+    }
+
+    public Date getPalnStartDate() 
+    {
+        return palnStartDate;
+    }
+
+    public void setPlanCompleteDate(Date planCompleteDate) 
+    {
+        this.planCompleteDate = planCompleteDate;
+    }
+
+    public Date getPlanCompleteDate() 
+    {
+        return planCompleteDate;
+    }
+
+    public void setProcessQty(Float processQty)
+    {
+        this.processQty = processQty;
+    }
+
+    public Float getProcessQty()
+    {
+        return processQty;
+    }
+
+    public void setScrapQty(Float scrapQty)
+    {
+        this.scrapQty = scrapQty;
+    }
+
+    public Float getScrapQty()
+    {
+        return scrapQty;
+    }
+
+    public void setOpStatus(String opStatus) 
+    {
+        this.opStatus = opStatus;
+    }
+
+    public String getOpStatus() 
+    {
+        return opStatus;
+    }
+
+    public void setOrg(String org)
+    {
+        this.org = org;
+    }
+
+    public String getOrg()
+    {
+        return org;
+    }
+
+    public void setOrgCode(String orgCode)
+    {
+        this.orgCode = orgCode;
+    }
+
+    public String getOrgCode()
+    {
+        return orgCode;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("itemCode", getItemCode())
+            .append("docNo", getDocNo())
+            .append("opNum", getOpNum())
+            .append("opId", getOpId())
+            .append("processName", getProcessName())
+            .append("standardTime", getStandardTime())
+            .append("palnStartDate", getPalnStartDate())
+            .append("planCompleteDate", getPlanCompleteDate())
+            .append("processQty", getProcessQty())
+            .append("scrapQty", getScrapQty())
+            .append("opStatus", getOpStatus())
+            .append("org", getOrg())
+            .append("orgCode", getOrgCode())
+            .toString();
+    }
+}
diff --git a/aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsWorkOrderProcessMapper.java b/aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsWorkOrderProcessMapper.java
new file mode 100644
index 0000000..6d1122c
--- /dev/null
+++ b/aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsWorkOrderProcessMapper.java
@@ -0,0 +1,70 @@
+package com.aps.job.mapper;
+
+import com.aps.job.domain.ApsWorkOrderProcess;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 宸ュ崟宸ュ簭Mapper鎺ュ彛
+ * 
+ * @author hjy
+ * @date 2025-04-17
+ */
+public interface ApsWorkOrderProcessMapper 
+{
+    /**
+     * 鏌ヨ宸ュ崟宸ュ簭
+     * 
+     * @param id 宸ュ崟宸ュ簭涓婚敭
+     * @return 宸ュ崟宸ュ簭
+     */
+    public ApsWorkOrderProcess selectApsWorkOrderProcessById(Long id);
+
+    /**
+     * 鏌ヨ宸ュ崟宸ュ簭鍒楄〃
+     * 
+     * @param apsWorkOrderProcess 宸ュ崟宸ュ簭
+     * @return 宸ュ崟宸ュ簭闆嗗悎
+     */
+    public List<ApsWorkOrderProcess> selectApsWorkOrderProcessList(ApsWorkOrderProcess apsWorkOrderProcess);
+
+    /**
+     * 鏂板宸ュ崟宸ュ簭
+     * 
+     * @param apsWorkOrderProcess 宸ュ崟宸ュ簭
+     * @return 缁撴灉
+     */
+    public int insertApsWorkOrderProcess(ApsWorkOrderProcess apsWorkOrderProcess);
+
+    /**
+     * 淇敼宸ュ崟宸ュ簭
+     * 
+     * @param apsWorkOrderProcess 宸ュ崟宸ュ簭
+     * @return 缁撴灉
+     */
+    public int updateApsWorkOrderProcess(ApsWorkOrderProcess apsWorkOrderProcess);
+
+    /**
+     * 鍒犻櫎宸ュ崟宸ュ簭
+     * 
+     * @param id 宸ュ崟宸ュ簭涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteApsWorkOrderProcessById(Long id);
+
+    /**
+     * 鎵归噺鍒犻櫎宸ュ崟宸ュ簭
+     * 
+     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteApsWorkOrderProcessByIds(Long[] ids);
+
+    /**
+     * 鏍规嵁宸ュ崟鍙峰拰宸ュ崟宸ュ簭鍙锋煡璇㈠伐鍗曞伐搴�
+     * @param map
+     * @return
+     */
+    public Long existsByDocNoOpNumOpId(Map map);
+}
diff --git a/aps-modules/aps-job/src/main/java/com/aps/job/service/ApsWorkOrderProcessServiceImpl.java b/aps-modules/aps-job/src/main/java/com/aps/job/service/ApsWorkOrderProcessServiceImpl.java
new file mode 100644
index 0000000..7fa388b
--- /dev/null
+++ b/aps-modules/aps-job/src/main/java/com/aps/job/service/ApsWorkOrderProcessServiceImpl.java
@@ -0,0 +1,175 @@
+package com.aps.job.service;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.aps.common.core.utils.StringUtils;
+import com.aps.job.domain.ApsWorkOrderProcess;
+import com.aps.job.mapper.ApsWorkOrderProcessMapper;
+import jakarta.annotation.Resource;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 宸ュ崟宸ュ簭Service涓氬姟灞傚鐞�
+ * 
+ * @author hjy
+ * @date 2025-04-17
+ */
+@Service
+public class ApsWorkOrderProcessServiceImpl implements IApsWorkOrderProcessService 
+{
+    @Value("${u9.workOrderProcessUrl}")
+    private String u9WorkOrderProcessUrl;
+
+    private final Logger logger = LoggerFactory.getLogger(ApsWorkOrderProcessServiceImpl.class);
+
+    @Resource
+    private RestTemplate restTemplate;
+
+    @Resource
+    private ApsWorkOrderProcessMapper apsWorkOrderProcessMapper;
+
+    /**
+     * 鏌ヨ宸ュ崟宸ュ簭
+     * 
+     * @param id 宸ュ崟宸ュ簭涓婚敭
+     * @return 宸ュ崟宸ュ簭
+     */
+    @Override
+    public ApsWorkOrderProcess selectApsWorkOrderProcessById(Long id)
+    {
+        return apsWorkOrderProcessMapper.selectApsWorkOrderProcessById(id);
+    }
+
+    /**
+     * 鏌ヨ宸ュ崟宸ュ簭鍒楄〃
+     * 
+     * @param apsWorkOrderProcess 宸ュ崟宸ュ簭
+     * @return 宸ュ崟宸ュ簭
+     */
+    @Override
+    public List<ApsWorkOrderProcess> selectApsWorkOrderProcessList(ApsWorkOrderProcess apsWorkOrderProcess)
+    {
+        return apsWorkOrderProcessMapper.selectApsWorkOrderProcessList(apsWorkOrderProcess);
+    }
+
+    /**
+     * 鏂板宸ュ崟宸ュ簭
+     * 
+     * @param apsWorkOrderProcess 宸ュ崟宸ュ簭
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertApsWorkOrderProcess(ApsWorkOrderProcess apsWorkOrderProcess)
+    {
+        return apsWorkOrderProcessMapper.insertApsWorkOrderProcess(apsWorkOrderProcess);
+    }
+
+    /**
+     * 淇敼宸ュ崟宸ュ簭
+     * 
+     * @param apsWorkOrderProcess 宸ュ崟宸ュ簭
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateApsWorkOrderProcess(ApsWorkOrderProcess apsWorkOrderProcess)
+    {
+        return apsWorkOrderProcessMapper.updateApsWorkOrderProcess(apsWorkOrderProcess);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎宸ュ崟宸ュ簭
+     * 
+     * @param ids 闇�瑕佸垹闄ょ殑宸ュ崟宸ュ簭涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteApsWorkOrderProcessByIds(Long[] ids)
+    {
+        return apsWorkOrderProcessMapper.deleteApsWorkOrderProcessByIds(ids);
+    }
+
+    /**
+     * 鍒犻櫎宸ュ崟宸ュ簭淇℃伅
+     * 
+     * @param id 宸ュ崟宸ュ簭涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteApsWorkOrderProcessById(Long id)
+    {
+        return apsWorkOrderProcessMapper.deleteApsWorkOrderProcessById(id);
+    }
+
+    @Override
+    public void getWorkOrderProcessFromU9(List<String> docNos) throws Exception {
+        // 璁剧疆璇锋眰澶�
+        HttpHeaders headers = new HttpHeaders();
+        headers.setContentType(MediaType.APPLICATION_JSON);
+        // 璁剧疆璇锋眰浣�
+        JSONObject requestBody = new JSONObject();
+        requestBody.put("DocList", docNos);
+        // 鍒涘缓HttpEntity瀵硅薄
+        HttpEntity<String> request = new HttpEntity<>(requestBody.toJSONString(), headers);
+        // 鍙戦�丳OST璇锋眰
+        ResponseEntity<String> response = restTemplate.postForEntity(u9WorkOrderProcessUrl, request, String.class);
+        if (response.getStatusCode().is2xxSuccessful()) {
+            String responseBody = response.getBody();
+            if(StringUtils.isEmpty(responseBody)){
+                JSONObject responseBodyJson = JSONObject.parseObject(responseBody);
+                if(!"200".equals(responseBodyJson.getString("status"))){
+                    JSONArray jsonArray = responseBodyJson.getJSONArray("data");
+                    if (jsonArray != null) {
+                        jsonArray.forEach(jsonObject -> {
+                            JSONObject process = (JSONObject) jsonObject;
+                            Map<String, Object> params = new HashMap<>();
+                            params.put("docNo", process.getString("DocNo"));
+                            params.put("opNum", process.getString("OpNum"));
+                            params.put("opId", process.getString("OpID"));
+                            Long existsId = apsWorkOrderProcessMapper.existsByDocNoOpNumOpId(params);
+                            ApsWorkOrderProcess apsWorkOrderProcess = new ApsWorkOrderProcess();
+                            apsWorkOrderProcess.setItemCode(process.getString("ItemCode"));
+                            apsWorkOrderProcess.setDocNo(process.getString("DocNo"));
+                            apsWorkOrderProcess.setOpNum(process.getString("OpNum"));
+                            apsWorkOrderProcess.setOpId(process.getString("OpID"));
+                            apsWorkOrderProcess.setProcessName(process.getString("WorkCenter"));
+                            apsWorkOrderProcess.setStandardTime(process.getFloat("StandardTime"));
+                            apsWorkOrderProcess.setPalnStartDate(process.getDate("PlanStartDate"));
+                            apsWorkOrderProcess.setPlanCompleteDate(process.getDate("PlanCompleteDate"));
+                            apsWorkOrderProcess.setProcessQty(process.getFloat("ProcessQty"));
+                            apsWorkOrderProcess.setScrapQty(process.getFloat("ScrapQty"));
+                            apsWorkOrderProcess.setOpStatus(process.getString("OpStatus"));
+                            apsWorkOrderProcess.setOrg(process.getString("Org"));
+                            apsWorkOrderProcess.setOrgCode(process.getString("OrgCode"));
+                            if(existsId!=null){
+                                apsWorkOrderProcess.setId(existsId);
+                                apsWorkOrderProcessMapper.updateApsWorkOrderProcess(apsWorkOrderProcess);
+                                logger.info("銆怳PDATE銆戣幏鍙栧苟鏇存柊U9宸ュ簭鎴愬姛锛併�愬伐鍗曞彿锛歿}锛屽伐搴忓彿锛歿}銆�", docNos, apsWorkOrderProcess.getOpNum());
+                            }else{
+                                apsWorkOrderProcessMapper.insertApsWorkOrderProcess(apsWorkOrderProcess);
+                                logger.info("銆怚NSERT銆戣幏鍙栧苟鎻掑叆U9宸ュ簭鎴愬姛锛併�愬伐鍗曞彿锛歿}, 宸ュ簭鍙凤細{}銆�", docNos, apsWorkOrderProcess.getOpNum());
+                            }
+                        });
+                    }
+                }else{
+                    logger.error("銆怑RROR銆戞煡璇9宸ュ簭澶辫触锛併�愬伐鍗曞彿锛歿}, 閿欒鐮侊細{}锛岄敊璇俊鎭細{}銆�", docNos, responseBodyJson.getString("status"), responseBodyJson.getString("message"));
+                }
+            }else{
+                logger.warn("銆怶ARNING銆戞湭鏌ヨ鍒癠9宸ュ簭锛併�愬伐鍗曞彿锛歿}銆�", docNos);
+            }
+        } else {
+            throw new Exception("銆怑RROR銆戣幏鍙朥9宸ュ簭澶辫触锛併�愬伐鍗曞彿锛�"+ docNos +"銆�");
+        }
+    }
+}
diff --git a/aps-modules/aps-job/src/main/java/com/aps/job/service/IApsWorkOrderProcessService.java b/aps-modules/aps-job/src/main/java/com/aps/job/service/IApsWorkOrderProcessService.java
new file mode 100644
index 0000000..17047aa
--- /dev/null
+++ b/aps-modules/aps-job/src/main/java/com/aps/job/service/IApsWorkOrderProcessService.java
@@ -0,0 +1,69 @@
+package com.aps.job.service;
+
+import com.aps.job.domain.ApsWorkOrderProcess;
+
+import java.util.List;
+
+/**
+ * 宸ュ崟宸ュ簭Service鎺ュ彛
+ * 
+ * @author hjy
+ * @date 2025-04-17
+ */
+public interface IApsWorkOrderProcessService 
+{
+    /**
+     * 鏌ヨ宸ュ崟宸ュ簭
+     * 
+     * @param id 宸ュ崟宸ュ簭涓婚敭
+     * @return 宸ュ崟宸ュ簭
+     */
+    public ApsWorkOrderProcess selectApsWorkOrderProcessById(Long id);
+
+    /**
+     * 鏌ヨ宸ュ崟宸ュ簭鍒楄〃
+     * 
+     * @param apsWorkOrderProcess 宸ュ崟宸ュ簭
+     * @return 宸ュ崟宸ュ簭闆嗗悎
+     */
+    public List<ApsWorkOrderProcess> selectApsWorkOrderProcessList(ApsWorkOrderProcess apsWorkOrderProcess);
+
+    /**
+     * 鏂板宸ュ崟宸ュ簭
+     * 
+     * @param apsWorkOrderProcess 宸ュ崟宸ュ簭
+     * @return 缁撴灉
+     */
+    public int insertApsWorkOrderProcess(ApsWorkOrderProcess apsWorkOrderProcess);
+
+    /**
+     * 淇敼宸ュ崟宸ュ簭
+     * 
+     * @param apsWorkOrderProcess 宸ュ崟宸ュ簭
+     * @return 缁撴灉
+     */
+    public int updateApsWorkOrderProcess(ApsWorkOrderProcess apsWorkOrderProcess);
+
+    /**
+     * 鎵归噺鍒犻櫎宸ュ崟宸ュ簭
+     * 
+     * @param ids 闇�瑕佸垹闄ょ殑宸ュ崟宸ュ簭涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteApsWorkOrderProcessByIds(Long[] ids);
+
+    /**
+     * 鍒犻櫎宸ュ崟宸ュ簭淇℃伅
+     * 
+     * @param id 宸ュ崟宸ュ簭涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteApsWorkOrderProcessById(Long id);
+
+    /**
+     * 浠嶶9鑾峰彇宸ュ崟宸ュ簭淇℃伅
+     * @param docNo
+     * @return
+     */
+    public void getWorkOrderProcessFromU9(List<String> docNos) throws Exception;
+}
diff --git a/aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderProcessMapper.xml b/aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderProcessMapper.xml
new file mode 100644
index 0000000..bbdb439
--- /dev/null
+++ b/aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderProcessMapper.xml
@@ -0,0 +1,126 @@
+<?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="com.aps.job.mapper.ApsWorkOrderProcessMapper">
+    
+    <resultMap type="ApsWorkOrderProcess" id="ApsWorkOrderProcessResult">
+        <result property="id"    column="id"    />
+        <result property="itemCode"    column="item_code"    />
+        <result property="docNo"    column="doc_no"    />
+        <result property="opNum"    column="op_num"    />
+        <result property="opId"    column="op_id"    />
+        <result property="processName"    column="process_name"    />
+        <result property="standardTime"    column="standard_time"    />
+        <result property="palnStartDate"    column="paln_start_date"    />
+        <result property="planCompleteDate"    column="plan_complete_date"    />
+        <result property="processQty"    column="process_qty"    />
+        <result property="scrapQty"    column="scrap_qty"    />
+        <result property="opStatus"    column="op_status"    />
+        <result property="org"    column="org"    />
+        <result property="org_code"    column="org_code"    />
+    </resultMap>
+
+    <sql id="selectApsWorkOrderProcessVo">
+        select id, item_code, doc_no, op_num, op_id, process_name, standard_time, paln_start_date, plan_complete_date, process_qty, scrap_qty, op_status, org, org_code from aps_work_order_process
+    </sql>
+
+    <select id="selectApsWorkOrderProcessList" parameterType="ApsWorkOrderProcess" resultMap="ApsWorkOrderProcessResult">
+        <include refid="selectApsWorkOrderProcessVo"/>
+        <where>  
+            <if test="itemCode != null  and itemCode != ''"> and item_code = #{itemCode}</if>
+            <if test="docNo != null  and docNo != ''"> and doc_no = #{docNo}</if>
+            <if test="opNum != null  and opNum != ''"> and op_num = #{opNum}</if>
+            <if test="opId != null  and opId != ''"> and op_id = #{opId}</if>
+            <if test="processName != null  and processName != ''"> and process_name like concat('%', #{processName}, '%')</if>
+            <if test="standardTime != null  and standardTime != ''"> and standard_time = #{standardTime}</if>
+            <if test="palnStartDate != null "> and paln_start_date = #{palnStartDate}</if>
+            <if test="planCompleteDate != null "> and plan_complete_date = #{planCompleteDate}</if>
+            <if test="processQty != null "> and process_qty = #{processQty}</if>
+            <if test="scrapQty != null "> and scrap_qty = #{scrapQty}</if>
+            <if test="opStatus != null  and opStatus != ''"> and op_status = #{opStatus}</if>
+            <if test="org != null  and org != ''"> and org = #{org}</if>
+            <if test="org_code != null  and opStatus != ''"> and op_status = #{opStatus}</if>
+        </where>
+    </select>
+    
+    <select id="selectApsWorkOrderProcessById" parameterType="Long" resultMap="ApsWorkOrderProcessResult">
+        <include refid="selectApsWorkOrderProcessVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertApsWorkOrderProcess" parameterType="ApsWorkOrderProcess">
+        insert into aps_work_order_process
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="itemCode != null">item_code,</if>
+            <if test="docNo != null">doc_no,</if>
+            <if test="opNum != null">op_num,</if>
+            <if test="opId != null">op_id,</if>
+            <if test="processName != null">process_name,</if>
+            <if test="standardTime != null">standard_time,</if>
+            <if test="palnStartDate != null">paln_start_date,</if>
+            <if test="planCompleteDate != null">plan_complete_date,</if>
+            <if test="processQty != null">process_qty,</if>
+            <if test="scrapQty != null">scrap_qty,</if>
+            <if test="opStatus != null">op_status,</if>
+            <if test="org != null">org,</if>
+            <if test="orgCode != null">org_code,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="itemCode != null">#{itemCode},</if>
+            <if test="docNo != null">#{docNo},</if>
+            <if test="opNum != null">#{opNum},</if>
+            <if test="opId != null">#{opId},</if>
+            <if test="processName != null">#{processName},</if>
+            <if test="standardTime != null">#{standardTime},</if>
+            <if test="palnStartDate != null">#{palnStartDate},</if>
+            <if test="planCompleteDate != null">#{planCompleteDate},</if>
+            <if test="processQty != null">#{processQty},</if>
+            <if test="scrapQty != null">#{scrapQty},</if>
+            <if test="opStatus != null">#{opStatus},</if>
+            <if test="org != null">#{org},</if>
+            <if test="orgCode != null">#{orgCode},</if>
+         </trim>
+    </insert>
+
+    <update id="updateApsWorkOrderProcess" parameterType="ApsWorkOrderProcess">
+        update aps_work_order_process
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="itemCode != null">item_code = #{itemCode},</if>
+            <if test="docNo != null">doc_no = #{docNo},</if>
+            <if test="opNum != null">op_num = #{opNum},</if>
+            <if test="opId != null">op_id = #{opId},</if>
+            <if test="processName != null">process_name = #{processName},</if>
+            <if test="standardTime != null">standard_time = #{standardTime},</if>
+            <if test="palnStartDate != null">paln_start_date = #{palnStartDate},</if>
+            <if test="planCompleteDate != null">plan_complete_date = #{planCompleteDate},</if>
+            <if test="processQty != null">process_qty = #{processQty},</if>
+            <if test="scrapQty != null">scrap_qty = #{scrapQty},</if>
+            <if test="opStatus != null">op_status = #{opStatus},</if>
+            <if test="org != null">org = #{org},</if>
+            <if test="orgCode != null">org_code = #{orgCode},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteApsWorkOrderProcessById" parameterType="Long">
+        delete from aps_work_order_process where id = #{id}
+    </delete>
+
+    <delete id="deleteApsWorkOrderProcessByIds" parameterType="String">
+        delete from aps_work_order_process where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+
+    <select id="existsByDocNoOpNumOpId" parameterType="map" resultMap="Long">
+        select id from aps_work_order_process
+        where doc_no = #{docNo}
+          and op_num = #{opNum}
+          and op_id = #{opId}
+    </select>
+
+</mapper>
\ No newline at end of file

--
Gitblit v1.9.3