aps-modules/aps-job/src/main/java/com/aps/job/domain/ApsWorkOrderProcess.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsWorkOrderProcessMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
aps-modules/aps-job/src/main/java/com/aps/job/service/ApsWorkOrderProcessServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
aps-modules/aps-job/src/main/java/com/aps/job/service/IApsWorkOrderProcessService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderProcessMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
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(); } } 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); } 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); // åéPOSTè¯·æ± 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("ãUPDATEãè·åå¹¶æ´æ°U9å·¥åºæåï¼ãå·¥åå·ï¼{}ï¼å·¥åºå·ï¼{}ã", docNos, apsWorkOrderProcess.getOpNum()); }else{ apsWorkOrderProcessMapper.insertApsWorkOrderProcess(apsWorkOrderProcess); logger.info("ãINSERTãè·åå¹¶æå ¥U9å·¥åºæåï¼ãå·¥åå·ï¼{}, å·¥åºå·ï¼{}ã", docNos, apsWorkOrderProcess.getOpNum()); } }); } }else{ logger.error("ãERRORãæ¥è¯¢U9å·¥åºå¤±è´¥ï¼ãå·¥åå·ï¼{}, é误ç ï¼{}ï¼é误信æ¯ï¼{}ã", docNos, responseBodyJson.getString("status"), responseBodyJson.getString("message")); } }else{ logger.warn("ãWARNINGãæªæ¥è¯¢å°U9å·¥åºï¼ãå·¥åå·ï¼{}ã", docNos); } } else { throw new Exception("ãERRORãè·åU9å·¥åºå¤±è´¥ï¼ãå·¥åå·ï¼"+ docNos +"ã"); } } } 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); /** * ä»U9è·åå·¥åå·¥åºä¿¡æ¯ * @param docNo * @return */ public void getWorkOrderProcessFromU9(List<String> docNos) throws Exception; } 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>