|
|
@ -6,25 +6,32 @@ import com.op.common.core.domain.R;
|
|
|
|
import com.op.common.core.utils.DateUtils;
|
|
|
|
import com.op.common.core.utils.DateUtils;
|
|
|
|
import com.op.common.core.utils.bean.BeanUtils;
|
|
|
|
import com.op.common.core.utils.bean.BeanUtils;
|
|
|
|
import com.op.common.core.utils.uuid.IdUtils;
|
|
|
|
import com.op.common.core.utils.uuid.IdUtils;
|
|
|
|
|
|
|
|
import com.op.mes.domain.MesReportWork;
|
|
|
|
import com.op.mes.domain.MesShift;
|
|
|
|
import com.op.mes.domain.MesShift;
|
|
|
|
|
|
|
|
import com.op.mes.domain.ProOrderWorkorder;
|
|
|
|
import com.op.mes.domain.dto.LGInfoDto;
|
|
|
|
import com.op.mes.domain.dto.LGInfoDto;
|
|
|
|
import com.op.mes.mapper.MesMapper;
|
|
|
|
import com.op.mes.mapper.MesMapper;
|
|
|
|
import com.op.mes.mapper.MesReportWorkMapper;
|
|
|
|
import com.op.mes.mapper.MesReportWorkMapper;
|
|
|
|
import com.op.mes.mapper.ProRfidProcessDetailMapper;
|
|
|
|
import com.op.mes.mapper.ProRfidProcessDetailMapper;
|
|
|
|
import com.op.mes.service.IWCSInterfaceService;
|
|
|
|
import com.op.mes.service.IWCSInterfaceService;
|
|
|
|
|
|
|
|
import com.op.system.api.RemoteSapService;
|
|
|
|
import com.op.system.api.RemoteUserService;
|
|
|
|
import com.op.system.api.RemoteUserService;
|
|
|
|
import com.op.system.api.domain.SysDept;
|
|
|
|
import com.op.system.api.domain.SysDept;
|
|
|
|
|
|
|
|
import com.op.system.api.domain.SysSapLog;
|
|
|
|
import com.op.system.api.domain.SysUser;
|
|
|
|
import com.op.system.api.domain.SysUser;
|
|
|
|
import com.op.system.api.domain.dto.BoardDTO;
|
|
|
|
import com.op.system.api.domain.dto.BoardDTO;
|
|
|
|
import com.op.system.api.domain.dto.WCSDTO;
|
|
|
|
import com.op.system.api.domain.dto.WCSDTO;
|
|
|
|
import com.op.system.api.domain.dto.WCSDataDTO;
|
|
|
|
import com.op.system.api.domain.dto.WCSDataDTO;
|
|
|
|
import com.op.system.api.domain.mes.ProRfidProcessDetail;
|
|
|
|
import com.op.system.api.domain.mes.ProRfidProcessDetail;
|
|
|
|
|
|
|
|
import com.op.system.api.domain.sap.SapRFW;
|
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
|
import org.slf4j.Logger;
|
|
|
|
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.util.CollectionUtils;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
|
import java.time.LocalDate;
|
|
|
|
import java.time.LocalDate;
|
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
|
import java.time.temporal.ChronoUnit;
|
|
|
|
import java.time.temporal.ChronoUnit;
|
|
|
@ -54,6 +61,9 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService {
|
|
|
|
@Autowired
|
|
|
|
@Autowired
|
|
|
|
private RemoteUserService remoteUserService;
|
|
|
|
private RemoteUserService remoteUserService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
|
|
private RemoteSapService remoteSapService;
|
|
|
|
|
|
|
|
|
|
|
|
/**下一工序机台集合获取
|
|
|
|
/**下一工序机台集合获取
|
|
|
|
* JSON
|
|
|
|
* JSON
|
|
|
|
* {
|
|
|
|
* {
|
|
|
@ -259,6 +269,76 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService {
|
|
|
|
return R.ok(true);
|
|
|
|
return R.ok(true);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public R reportWork(MesReportWork mesReportWork) {
|
|
|
|
|
|
|
|
DynamicDataSourceContextHolder.push("ds_"+mesReportWork.getFactoryCode());// 这是数据源的key
|
|
|
|
|
|
|
|
mesReportWork.setUploadStatus("1");//除了1报工成功的,都需要报工
|
|
|
|
|
|
|
|
mesReportWork.setProdType("prod");
|
|
|
|
|
|
|
|
List<MesReportWork> reportWorks = mesReportWorkMapper.getReportWorkList(mesReportWork);
|
|
|
|
|
|
|
|
if(CollectionUtils.isEmpty(reportWorks)){
|
|
|
|
|
|
|
|
return R.fail("未查询报工单");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MesReportWork work = reportWorks.get(0);
|
|
|
|
|
|
|
|
SapRFW sapRFW = new SapRFW();
|
|
|
|
|
|
|
|
sapRFW.setAufnr(work.getWorkorderCodeSap());//虚拟工单号
|
|
|
|
|
|
|
|
sapRFW.setGamng(work.getQuantityFeedback().toString());//报工数量
|
|
|
|
|
|
|
|
SapRFW.lt_gs ltgs = sapRFW.getLt_gs();//生产订单报工工时修改
|
|
|
|
|
|
|
|
ltgs.setConf_activity1(work.getSac1());//人工
|
|
|
|
|
|
|
|
ltgs.setConf_activity2(work.getSac2());
|
|
|
|
|
|
|
|
ltgs.setConf_activity3(work.getSac3());//机器
|
|
|
|
|
|
|
|
ltgs.setConf_activity4(work.getSac4());
|
|
|
|
|
|
|
|
ltgs.setConf_activity5(work.getSac5());//折旧
|
|
|
|
|
|
|
|
ltgs.setConf_activity6(work.getSac6());
|
|
|
|
|
|
|
|
SapRFW.lt_hw lthw = sapRFW.getLt_hw();//MES生产订单报工货物移动修改
|
|
|
|
|
|
|
|
lthw.setEntry_qnt(work.getQuantityFeedback().toString());//TODO;
|
|
|
|
|
|
|
|
lthw.setMaterial(work.getProcessCode());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//添加调用sap日志
|
|
|
|
|
|
|
|
SysSapLog sysSapLog = new SysSapLog();
|
|
|
|
|
|
|
|
sysSapLog.setId(IdUtils.fastSimpleUUID());
|
|
|
|
|
|
|
|
sysSapLog.setMesssge(sapRFW.toString());
|
|
|
|
|
|
|
|
sysSapLog.setMethod("reportWork");
|
|
|
|
|
|
|
|
sysSapLog.setReqcode("请求");
|
|
|
|
|
|
|
|
sysSapLog.setCreateTime(DateUtils.getNowDate());
|
|
|
|
|
|
|
|
mesMapper.addSapLog(sysSapLog);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
R r = remoteSapService.sapRFWOrder(sapRFW);
|
|
|
|
|
|
|
|
//上传成功,更改mes_report_work状态
|
|
|
|
|
|
|
|
if (r.getCode() == 200) {
|
|
|
|
|
|
|
|
work.setUploadStatus("1");
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
work.setUploadStatus("2");
|
|
|
|
|
|
|
|
work.setUploadMsg(r.getMsg());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
work.setUploadTime(DateUtils.getNowDate());
|
|
|
|
|
|
|
|
mesReportWorkMapper.updateSyncSapStatus(work);
|
|
|
|
|
|
|
|
//工单完成数量>工单数量:关闭订单
|
|
|
|
|
|
|
|
MesReportWork proResult = mesReportWorkMapper.getProdResult(work);
|
|
|
|
|
|
|
|
ProOrderWorkorder topOrder = this.getTopOrder(work.getWorkorderCode());
|
|
|
|
|
|
|
|
if(proResult.getQuantityFeedback().compareTo(new BigDecimal(topOrder.getQuantitySplit()))>=0){
|
|
|
|
|
|
|
|
//工单完成,关闭工单
|
|
|
|
|
|
|
|
remoteSapService.sapCloseOrder(work.getOrderCode());
|
|
|
|
|
|
|
|
work.setStatus("w4");
|
|
|
|
|
|
|
|
work.setUpdateTime(DateUtils.getNowDate());
|
|
|
|
|
|
|
|
//pro_work_order status->w4报工
|
|
|
|
|
|
|
|
mesReportWorkMapper.updateWorkOrderStatus(work);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return R.ok();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//根据工单子单编码获取最顶级订单的母单
|
|
|
|
|
|
|
|
private ProOrderWorkorder getTopOrder(String workorderCode) {
|
|
|
|
|
|
|
|
//pro_order_workorder
|
|
|
|
|
|
|
|
ProOrderWorkorder topOrder = mesReportWorkMapper.getOrderByCode(workorderCode);
|
|
|
|
|
|
|
|
while (!"0".equals(topOrder.getParentOrder()) && StringUtils.isNotEmpty(topOrder.getParentOrder())) {
|
|
|
|
|
|
|
|
//pro_order_workorder
|
|
|
|
|
|
|
|
topOrder = mesReportWorkMapper.getOrderByCode(topOrder.getParentOrder());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return topOrder;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void dateBKFunc(String poolName,List<String> tables){
|
|
|
|
public void dateBKFunc(String poolName,List<String> tables){
|
|
|
|
DynamicDataSourceContextHolder.push(poolName);// 这是数据源的key
|
|
|
|
DynamicDataSourceContextHolder.push(poolName);// 这是数据源的key
|
|
|
|
DateTimeFormatter ymdhms = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
|
DateTimeFormatter ymdhms = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
@ -322,6 +402,8 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService {
|
|
|
|
return "保存成功条数:"+saveNum;
|
|
|
|
return "保存成功条数:"+saveNum;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static void main(String args[]){
|
|
|
|
public static void main(String args[]){
|
|
|
|
DateTimeFormatter ymdhms = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
|
DateTimeFormatter ymdhms = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
|
LocalDate today = LocalDate.now();
|
|
|
|
LocalDate today = LocalDate.now();
|
|
|
|