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

maser
yinq 3 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_NOT = "0";
public static final String MES_PLAN_STATUS_IN = "1"; 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_FINISH = "2";
public static final String MES_PLAN_STATUS_CANCEL = "3"; 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_WAIT = "4";
public static final String MES_PLAN_STATUS_DELETE = "5";
/** /**
* ERP * ERP

@ -66,4 +66,9 @@ public interface IERPPortService {
*/ */
void getProdPlanPersonalDetailsTask(ERPParamDto paramDto); 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.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*; 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); List<ProdPlanInfo> planInfoList = prodPlanInfoService.selectProdPlanInfoList(prodPlanInfo);
ProdPlanInfo planInfo = planInfoList.get(0); ProdPlanInfo planInfo = planInfoList.get(0);
if (planInfo.getUploadFlag().equals(MesConstants.MES_IS_ERP_YES) || planInfo.getPlanStatus().equals(MesConstants.MES_PLAN_STATUS_FINISH) 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; continue;
} }
planInfo.setPlanCode(seqNo); planInfo.setPlanCode(seqNo);

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

@ -69,6 +69,14 @@ public class ERPTask {
portService.getProdPlanPersonalDetailsTask(paramDto); 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 * daystype
* type: 0-1- * type: 0-1-

Loading…
Cancel
Save