change - 定时清理ERP已删除的生产计划

maser
yinq 2 weeks ago
parent 1dd3247ae4
commit 61405e82dd

@ -56,13 +56,14 @@ public class MesConstants
/**
* 0 1 2 3 4
* 0 1 2 3 4 5
*/
public static final String MES_PLAN_STATUS_NOT = "0";
public static final String MES_PLAN_STATUS_IN = "1";
public static final String MES_PLAN_STATUS_FINISH = "2";
public static final String MES_PLAN_STATUS_CANCEL = "3";
public static final String MES_PLAN_STATUS_WAIT = "4";
public static final String MES_PLAN_STATUS_DELETE = "5";
/**
* ERP

@ -66,4 +66,9 @@ public interface IERPPortService {
*/
void getProdPlanPersonalDetailsTask(ERPParamDto paramDto);
/**
* ERP
* @param paramDto
*/
void ERPProdDeleteTask(ERPParamDto paramDto);
}

@ -29,6 +29,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
@ -388,4 +389,60 @@ public class ERPPortServiceImpl implements IERPPortService {
}
}
/**
* ERP
* @param paramDto
*/
@Override
@Transactional(rollbackFor = Exception.class)
public void ERPProdDeleteTask(ERPParamDto paramDto) {
ProdPlanInfo prodPlanInfo = new ProdPlanInfo();
HashMap<String, Object> paramMap = new HashMap<>();
paramMap.put("beginBeginTime", "2020-01-01 00:00:00");
paramMap.put("endBeginTime", paramDto.getPlanEndTime());
prodPlanInfo.setParams(paramMap);
prodPlanInfo.setPlanStatus(MesConstants.MES_PLAN_STATUS_WAIT);
List<ProdPlanInfo> planInfoList = prodPlanInfoService.selectProdPlanInfoList(prodPlanInfo);
String requestParam = null;
String result = null;
ERPParamDto erpParamDto = new ERPParamDto();
erpParamDto.setAppCode(ERPConstants.planAppCode);
erpParamDto.setController(ERPConstants.planController);
erpParamDto.setActionName(ERPConstants.planActionName);
for (ProdPlanInfo planInfo : planInfoList) {
if (StringUtils.isEmpty(planInfo.getOrderCode())){
continue;
}
erpParamDto.setTaskCode(planInfo.getOrderCode());
try {
// 创建ObjectMapper实例 对象转JSON字符串
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setPropertyNamingStrategy(PropertyNamingStrategy.UPPER_CAMEL_CASE);
requestParam = objectMapper.writeValueAsString(erpParamDto);
result = ApiUtils.sendERPHttpPost(ERPConstants.ERP_URL, requestParam);
// 处理接口返回消息
ObjectMapper resMapper = new ObjectMapper();
HashMap<String, Object> map = resMapper.readValue(result, new TypeReference<HashMap<String, Object>>() {
});
HashMap<String, Object> returnData = (HashMap<String, Object>) map.get("ReturnData");
List<ProdPlanErpInfo> dataList = resMapper.convertValue(returnData.get("data"), new TypeReference<List<ProdPlanErpInfo>>() {
});
boolean SuccessFlag = true;
for (ProdPlanErpInfo prodPlanErpInfo : dataList) {
if (prodPlanErpInfo.getSeqNo().equals(planInfo.getPlanCode())){
SuccessFlag = false;
break;
}
}
if (SuccessFlag) {ProdPlanInfo insetInfo = new ProdPlanInfo();
insetInfo.setObjId(planInfo.getObjId());
insetInfo.setPlanStatus(MesConstants.MES_PLAN_STATUS_DELETE);
prodPlanInfoService.updateProdPlanInfo(insetInfo);
}
} catch (Exception e) {
logger.warn("定时清理ERP已删除的生产计划异常:" + requestParam + "|" + result + "|" + e);
}
}
}
}

@ -133,7 +133,7 @@ public class ProdPlanErpInfoServiceImpl implements IProdPlanErpInfoService {
List<ProdPlanInfo> planInfoList = prodPlanInfoService.selectProdPlanInfoList(prodPlanInfo);
ProdPlanInfo planInfo = planInfoList.get(0);
if (planInfo.getUploadFlag().equals(MesConstants.MES_IS_ERP_YES) || planInfo.getPlanStatus().equals(MesConstants.MES_PLAN_STATUS_FINISH)
|| planInfo.getPlanStatus().equals(MesConstants.MES_PLAN_STATUS_IN)) {
|| planInfo.getPlanStatus().equals(MesConstants.MES_PLAN_STATUS_IN) || planInfo.getPlanStatus().equals(MesConstants.MES_PLAN_STATUS_DELETE)) {
continue;
}
planInfo.setPlanCode(seqNo);

@ -249,7 +249,6 @@
and pod.OrderDate between #{params.beginOrderDate} and #{params.endOrderDate}
</if>
</where>
order by poi.order_code desc
</select>
<select id="selectProdOrderInfoByObjId" parameterType="Long" resultMap="ProdOrderInfoResult">

@ -69,6 +69,14 @@ public class ERPTask {
portService.getProdPlanPersonalDetailsTask(paramDto);
}
public void ERPProdDeleteTask(Long startDays) {
//定时清理ERP已删除的生产计划
String startDate = convertDaysToDateString(startDays, 0);
ERPParamDto paramDto = new ERPParamDto();
paramDto.setPlanStartTime(startDate);
portService.ERPProdDeleteTask(paramDto);
}
/**
* daystype
* type: 0-1-

Loading…
Cancel
Save