zhanghl
2025-04-17 f366db113cb6f26f418f42d0098d9aa1c52a61b7
[add]工单同步代码
已修改7个文件
已添加2个文件
199 ■■■■■ 文件已修改
aps-modules/aps-job/pom.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-job/src/main/java/com/aps/job/config/RestTemplateConfig.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-job/src/main/java/com/aps/job/controller/ApsWorkOrderJobController.java 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsWorkOrderProcessMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-job/src/main/java/com/aps/job/mapper/SysJobLogMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-job/src/main/java/com/aps/job/mapper/SysJobMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-job/src/main/java/com/aps/job/service/IApsWorkOrderJobService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWorkOrderJobServiceImpl.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderProcessMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-job/pom.xml
@@ -71,6 +71,11 @@
            <groupId>com.aps</groupId>
            <artifactId>aps-common-swagger</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <scope>provided</scope>
        </dependency>
        
    </dependencies>
aps-modules/aps-job/src/main/java/com/aps/job/config/RestTemplateConfig.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
package com.aps.job.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;
@Configuration
public class RestTemplateConfig {
    @Bean
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
}
aps-modules/aps-job/src/main/java/com/aps/job/controller/ApsWorkOrderJobController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,114 @@
package com.aps.job.controller;
import java.util.List;
import java.io.IOException;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.aps.common.log.annotation.Log;
import com.aps.common.log.enums.BusinessType;
import com.aps.common.security.annotation.RequiresPermissions;
import com.aps.job.domain.ApsWorkOrderJob;
import com.aps.job.service.IApsWorkOrderJobService;
import com.aps.common.core.web.controller.BaseController;
import com.aps.common.core.web.domain.AjaxResult;
import com.aps.common.core.utils.poi.ExcelUtil;
import com.aps.common.core.web.page.TableDataInfo;
/**
 * å·¥å•同步Controller
 *
 * @author zhl
 * @date 2025-04-17
 */
@RestController
@RequestMapping("/ApsWorkOrderJob")
public class ApsWorkOrderJobController extends BaseController
{
    @Autowired
    private IApsWorkOrderJobService apsWorkOrderJobService;
    /**
     * æŸ¥è¯¢å·¥å•同步列表
     */
    @RequiresPermissions("ApsWorkOrderJob:ApsWorkOrderJob:list")
    @GetMapping("/list")
    public TableDataInfo list(ApsWorkOrderJob apsWorkOrderJob)
    {
        startPage();
        List<ApsWorkOrderJob> list = apsWorkOrderJobService.selectApsWorkOrderJobList(apsWorkOrderJob);
        return getDataTable(list);
    }
    /**
     * å¯¼å‡ºå·¥å•同步列表
     */
    @RequiresPermissions("ApsWorkOrderJob:ApsWorkOrderJob:export")
    @Log(title = "工单同步", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, ApsWorkOrderJob apsWorkOrderJob)
    {
        List<ApsWorkOrderJob> list = apsWorkOrderJobService.selectApsWorkOrderJobList(apsWorkOrderJob);
        ExcelUtil<ApsWorkOrderJob> util = new ExcelUtil<ApsWorkOrderJob>(ApsWorkOrderJob.class);
        util.exportExcel(response, list, "工单同步数据");
    }
    /**
     * èŽ·å–å·¥å•åŒæ­¥è¯¦ç»†ä¿¡æ¯
     */
    @RequiresPermissions("ApsWorkOrderJob:ApsWorkOrderJob:query")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id)
    {
        return success(apsWorkOrderJobService.selectApsWorkOrderJobById(id));
    }
    /**
     * æ–°å¢žå·¥å•同步
     */
    @RequiresPermissions("ApsWorkOrderJob:ApsWorkOrderJob:add")
    @Log(title = "工单同步", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody ApsWorkOrderJob apsWorkOrderJob)
    {
        return toAjax(apsWorkOrderJobService.insertApsWorkOrderJob(apsWorkOrderJob));
    }
    /**
     * ä¿®æ”¹å·¥å•同步
     */
    @RequiresPermissions("ApsWorkOrderJob:ApsWorkOrderJob:edit")
    @Log(title = "工单同步", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody ApsWorkOrderJob apsWorkOrderJob)
    {
        return toAjax(apsWorkOrderJobService.updateApsWorkOrderJob(apsWorkOrderJob));
    }
    /**
     * åˆ é™¤å·¥å•同步
     */
    @RequiresPermissions("ApsWorkOrderJob:ApsWorkOrderJob:remove")
    @Log(title = "工单同步", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
    {
        return toAjax(apsWorkOrderJobService.deleteApsWorkOrderJobByIds(ids));
    }
    @PostMapping("/batchInsertApsWorkOrderJob")
    public AjaxResult batchInsertApsWorkOrderJob()
    {
        apsWorkOrderJobService.batchInsertApsWorkOrderJob();
        return success();
    }
}
aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsWorkOrderProcessMapper.java
@@ -1,6 +1,7 @@
package com.aps.job.mapper;
import com.aps.job.domain.ApsWorkOrderProcess;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
import java.util.Map;
@@ -11,6 +12,7 @@
 * @author hjy
 * @date 2025-04-17
 */
@Mapper
public interface ApsWorkOrderProcessMapper 
{
    /**
aps-modules/aps-job/src/main/java/com/aps/job/mapper/SysJobLogMapper.java
@@ -2,12 +2,14 @@
import java.util.List;
import com.aps.job.domain.SysJobLog;
import org.apache.ibatis.annotations.Mapper;
/**
 * è°ƒåº¦ä»»åŠ¡æ—¥å¿—ä¿¡æ¯ æ•°æ®å±‚
 * 
 * @author ruoyi
 */
@Mapper
public interface SysJobLogMapper
{
    /**
aps-modules/aps-job/src/main/java/com/aps/job/mapper/SysJobMapper.java
@@ -2,12 +2,14 @@
import java.util.List;
import com.aps.job.domain.SysJob;
import org.apache.ibatis.annotations.Mapper;
/**
 * è°ƒåº¦ä»»åŠ¡ä¿¡æ¯ æ•°æ®å±‚
 * 
 * @author ruoyi
 */
@Mapper
public interface SysJobMapper
{
    /**
aps-modules/aps-job/src/main/java/com/aps/job/service/IApsWorkOrderJobService.java
@@ -58,4 +58,6 @@
     * @return ç»“æžœ
     */
    public int deleteApsWorkOrderJobById(Long id);
    void batchInsertApsWorkOrderJob();
}
aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWorkOrderJobServiceImpl.java
@@ -1,12 +1,24 @@
package com.aps.job.service.impl;
import java.util.ArrayList;
import java.util.List;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.aps.common.core.utils.DateUtils;
import com.aps.common.core.utils.StringUtils;
import jakarta.annotation.Resource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.beans.factory.annotation.Autowired;
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 com.aps.job.mapper.ApsWorkOrderJobMapper;
import com.aps.job.domain.ApsWorkOrderJob;
import com.aps.job.service.IApsWorkOrderJobService;
import org.springframework.web.client.RestTemplate;
/**
 * å·¥å•同步Service业务层处理
@@ -19,6 +31,16 @@
{
    @Autowired
    private ApsWorkOrderJobMapper apsWorkOrderJobMapper;
    /**
     * èŽ·å–è®¢å•æŽ¥å£
     * */
    @Value("${u9.workOrderJobUrl}")
    private String getWorkOrderUrl;
    @Autowired
    private RestTemplate restTemplate;
    /**
     * æŸ¥è¯¢å·¥å•同步
@@ -93,4 +115,39 @@
    {
        return apsWorkOrderJobMapper.deleteApsWorkOrderJobById(id);
    }
    @Override
    public void batchInsertApsWorkOrderJob() {
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_JSON);
        Integer PageIndex=1;
        Integer PageSize=10;
        Boolean continueFlag=true;
      /*  while (continueFlag){*/
            JSONObject requestBody = new JSONObject();
            requestBody.put("PageIndex", PageIndex);
            requestBody.put("PageSize", PageSize);
            HttpEntity<String> request = new HttpEntity<>(requestBody.toJSONString(), headers);
            ResponseEntity<String> response = restTemplate.postForEntity(getWorkOrderUrl, request, String.class);
            if (response.getStatusCode().is2xxSuccessful()) {
                String responseBody = response.getBody();
                if(StringUtils.isNotEmpty(responseBody)){
                    JSONObject responseBodyJson = JSONObject.parseObject(responseBody);
                    if("200".equals(responseBodyJson.getString("status"))){
                        JSONArray result = responseBodyJson.getJSONArray("data");
                        List<ApsWorkOrderJob> jobs = new ArrayList<>();
                        if (result!=null){
                            for (int i = 0; i < result.size(); i++) {
                                ApsWorkOrderJob order = result.getObject(i, ApsWorkOrderJob.class);
                                jobs.add(order);
                            }
                        }
                        apsWorkOrderJobMapper.batchInsertApsWorkOrderJob(jobs);
                    }
                }
            }
       /* }*/
    }
}
aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderProcessMapper.xml
@@ -116,7 +116,7 @@
        </foreach>
    </delete>
    <select id="existsByDocNoOpNumOpId" parameterType="map" resultMap="Long">
    <select id="existsByDocNoOpNumOpId" parameterType="map" resultType="Long">
        select id from aps_work_order_process
        where doc_no = #{docNo}
          and op_num = #{opNum}