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 +"】");
|
}
|
}
|
}
|