Merge remote-tracking branch 'origin/master'

orign^2
mengjiao 1 year ago
commit b00e31ec4d

@ -6,6 +6,7 @@ import com.op.common.core.web.domain.TreeEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@ -185,6 +186,52 @@ public class ProOrderWorkorderDTO extends TreeEntity {
// 供湿料计划使用
private String bucketName1;
private String workorderCodes;
private String productCodes;
private String productNames;
private BigDecimal quantitySplits;
private String units;
public String getWorkorderCodes() {
return workorderCodes;
}
public void setWorkorderCodes(String workorderCodes) {
this.workorderCodes = workorderCodes;
}
public String getProductCodes() {
return productCodes;
}
public void setProductCodes(String productCodes) {
this.productCodes = productCodes;
}
public String getProductNames() {
return productNames;
}
public void setProductNames(String productNames) {
this.productNames = productNames;
}
public BigDecimal getQuantitySplits() {
return quantitySplits;
}
public void setQuantitySplits(BigDecimal quantitySplits) {
this.quantitySplits = quantitySplits;
}
public String getUnits() {
return units;
}
public void setUnits(String units) {
this.units = units;
}
public String getMaterialName1() {
return materialName1;
}

@ -114,7 +114,7 @@ public class SapRFW {
}
}
public class lt_hw{
public static class lt_hw{
String material;
String entry_qnt;

@ -154,6 +154,10 @@ public class EquEquipment extends BaseEntity {
@Excel(name = "SAP资产号")
private String sapAsset;
/** 设备状态 */
@Excel(name = "设备状态")
private String equipmentStatus;
public void setEquipmentId(Long equipmentId) {
this.equipmentId = equipmentId;
}
@ -400,6 +404,14 @@ public class EquEquipment extends BaseEntity {
return sapAsset;
}
//设备状态
public void setEquipmentStatus(String equipmentStatus) {
this.equipmentStatus = equipmentStatus;
}
public String getEquipmentStatus() {
return equipmentStatus;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

@ -207,6 +207,9 @@ public class EquOrder extends BaseEntity {
private String picturePath;
//工具
private String itemTools;
public String getPicturePath() {
return picturePath;
}
@ -663,6 +666,14 @@ public class EquOrder extends BaseEntity {
return itemTypeName;
}
//工具
public String getItemTools() {
return itemTools;
}
public void setItemTools(String itemTools) {
this.itemTools = itemTools;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

@ -147,6 +147,10 @@ public class Equipment extends BaseEntity {
@Excel(name = "SAP资产号")
private String sapAsset;
/** 设备状态 */
@Excel(name = "设备状态")
private String equipmentStatus;
public void setEquipmentId(Long equipmentId) {
this.equipmentId = equipmentId;
}
@ -393,6 +397,14 @@ public class Equipment extends BaseEntity {
return sapAsset;
}
//设备状态
public void setEquipmentStatus(String equipmentStatus) {
this.equipmentStatus = equipmentStatus;
}
public String getEquipmentStatus() {
return equipmentStatus;
}
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)

@ -3,6 +3,7 @@ package com.op.device.mapper;
import java.util.List;
import com.op.device.domain.EquOperationRecord;
import org.apache.ibatis.annotations.Param;
/**
* Mapper
@ -71,4 +72,11 @@ public interface EquOperationRecordMapper {
//设备完好率
EquOperationRecord getEquipmentIntactRate(EquOperationRecord equOperationRecord);
/**
*
* @param equipmentCode
* @return
*/
EquOperationRecord selectLastOperationRecordByEquipmentCode(String equipmentCode);
}

@ -4,6 +4,7 @@ import java.util.List;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.op.device.domain.EquOrder;
import com.op.device.domain.Equipment;
import com.op.device.domain.dto.PDADTO;
import org.apache.ibatis.annotations.Mapper;
@ -164,4 +165,10 @@ public interface EquOrderMapper {
* @param repairCode
*/
void updateEquOrderStatusComplete(String repairCode);
/**
*
* @param equ
*/
void updateEquipmentStatus(Equipment equ);
}

@ -79,12 +79,12 @@ public interface EquOrderStandardMapper {
/**
*
*/
void deleteBaseFileBySourceId(String id);
void deleteBaseFileBySourceId(@Param("sourceId")String sourceId , @Param("imageType")String imageType);
/**
*
*/
public List<BaseFileData> getBaseFileBatch(String id);
public List<BaseFileData> getBaseFileBatch(@Param("sourceId")String sourceId , @Param("imageType")String imageType);
//PC查询点检巡检报修
List<EquOrderStandard> selectPdaEquOrderList(EquOrderStandard equOrderStandard);

@ -4,6 +4,7 @@ import java.util.List;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.op.common.core.domain.BaseFileData;
import com.op.device.domain.EquEquipment;
import com.op.device.domain.EquRepairWorkOrder;
import com.op.device.domain.EquTeamUser;
import org.apache.ibatis.annotations.Param;
@ -104,4 +105,11 @@ public interface EquRepairWorkOrderMapper {
* @return
*/
EquRepairWorkOrder selectEquRepairWorkOrderByWorkCode(String workCode);
/**
*
* @param equEquipment
* @return
*/
public int updateEquipmentStatus(EquEquipment equEquipment);
}

@ -78,14 +78,14 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService {
/* 停机故障率逻辑 */
long totalTime = 0L;// 运行总时间
long downTime = 0L;// 停机时间
double totalTime = 0;// 运行总时间
double downTime = 0;// 停机时间
// 通过设备编码获取运行记录中的运行记录List
List<EquOperationRecord> operationRecordList = equOperationRecordMapper.selectEquOperationRecordByEquipmentCode(equipmentVO.getEquipmentCode());
if (operationRecordList.size() != 0) {
for (EquOperationRecord operationRecord : operationRecordList) {
// 运行时间差值
long diffTime = operationRecord.getEndTime().getTime() - operationRecord.getStartTime().getTime();
double diffTime = operationRecord.getEndTime().getTime() - operationRecord.getStartTime().getTime();
// 开机运行时间运行总时间累加
if (operationRecord.getType().equals("on")) {
totalTime += diffTime;
@ -103,6 +103,7 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService {
} else {
// 计算故障停机率(设备停机时间总和/一定时间内运行总时间(年))
double failureRate = downTime / totalTime;
System.out.println(failureRate);
equipmentVO.setFailureRate(failureRate);
}
@ -145,7 +146,7 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService {
// 通过该设备code获取设备维修记录(只获取开始时间、结束时间)
List<EquRepairWorkOrder> workOrderList = deviceInterfaceMapper.selectRepairRecordByEquipmentCode(equipmentVO.getEquipmentCode());
if (workOrderList.size() != 0) {
Long runTime = 0l;
double runTime = 0;
for (EquRepairWorkOrder workOrder : workOrderList) {
// 维修时间差值
long diffTime = workOrder.getWorkEndTime().getTime() - workOrder.getWorkStartTime().getTime();
@ -153,7 +154,7 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService {
runTime += diffTime;
}
// 计算维修质量(故障时间(小时)/故障次数)
long rapairQuantity = runTime / 3600000 / workOrderList.size();
double rapairQuantity = runTime / 3600000 / workOrderList.size();
equipmentVO.setRapairQuantity(Double.valueOf(rapairQuantity));
} else {
// 没有该记录则默认为0

@ -15,6 +15,7 @@ import com.op.device.service.IDevicePDAService;
import com.op.system.api.domain.SysUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
@ -66,6 +67,11 @@ public class DevicePDAServiceImpl implements IDevicePDAService {
@Autowired
private SparePartsLedgerMapper sparePartsLedgerMapper;
@Autowired
private EquipmentMapper equipmentMapper;
@Autowired
private EquOperationRecordMapper equOperationRecordMapper;
/**
* list-
@ -115,7 +121,13 @@ public class DevicePDAServiceImpl implements IDevicePDAService {
timeArray.add(order.getOrderEnd());
order.setTimeArray(timeArray);
order.setPlanName(equOrderMapper.selectPlanNameByPlanCode(order.getOrderCode()));
String planName = equOrderMapper.selectPlanNameByPlanCode(order.getPlanCode());
if (planName != null) {
order.setPlanName(planName);
}
// 设备名称
order.setEquipmentName(equipmentMapper.selectEquipmentByEquipmentCode(order.getEquipmentCode()).getEquipmentName());
order.setWorkCenterName(equOrderMapper.selectCenterNameByCenterCode(order.getPlanWorkshop()));
@ -155,7 +167,7 @@ public class DevicePDAServiceImpl implements IDevicePDAService {
// 保养图片
BaseFileData selectTemp = new BaseFileData();
selectTemp.setSourceId(equOrder.getId());
selectTemp.setSourceId(order.getOrderId());
List<String> upkeepPictures = equFileMapper.selectUrlList(selectTemp);
if (upkeepPictures != null) {
order.setUpkeepPictures(upkeepPictures);
@ -244,6 +256,7 @@ public class DevicePDAServiceImpl implements IDevicePDAService {
// 更新工单信息
equOrder.setOrderStatus("1"); // 状态为已完成
equOrder.setOrderStart(DateUtils.getNowDate());// 设置检查时间
equOrder.setUpdateTime(DateUtils.getNowDate());
equOrder.setUpdateBy(SecurityContextHolder.getUserName());
equOrder.setPlanPerson(SecurityContextHolder.getUserName());
@ -319,6 +332,17 @@ public class DevicePDAServiceImpl implements IDevicePDAService {
if (maintenanceFlag) {
// 设置结束时间
equOrder.setOrderEnd(DateUtils.getNowDate());
// 设置保养用时
long diff = equOrder.getOrderEnd().getTime() - equOrder.getOrderStart().getTime();
equOrder.setOrderCostTime(String.valueOf(diff/60000));
// 创建设备对象用于更新设备状态
Equipment equ = new Equipment();
equ.setEquipmentCode(equOrder.getEquipmentCode());
// 更新设备状态为正常运行
equ.setStatus("1");
equOrderMapper.updateEquipmentStatus(equ);
// 更新设备运行记录
updateOperationRecord(equOrder.getEquipmentCode(),"on","");
//上传附件
if (StringUtils.isNotEmpty(equOrder.getPicturePath())) {
String[] ids = equOrder.getPicturePath().split(",");
@ -436,7 +460,6 @@ public class DevicePDAServiceImpl implements IDevicePDAService {
/**
*
* TODO
*
* @param pdadto
* @return
@ -449,6 +472,25 @@ public class DevicePDAServiceImpl implements IDevicePDAService {
order.setOrderStatus("3");
// 设置是否停机保养
order.setShutDown(pdadto.getShutDown());
// 创建设备对象用于更新设备状态
Equipment equ = new Equipment();
equ.setEquipmentCode(order.getEquipmentCode());
// 运行记录类型
String operationType;
// 停机保养
if (pdadto.getShutDown().equals("1")){
operationType = "off";
}else {
operationType = "on";
}
// 更改设备状态为保养中
equ.setStatus("3");
equOrderMapper.updateEquipmentStatus(equ);
// 更新设备运行记录
updateOperationRecord(order.getEquipmentCode(),operationType,"upkeep");
// 设置开始时间
order.setOrderStart(DateUtils.getNowDate());
// 设置保养人
@ -531,14 +573,23 @@ public class DevicePDAServiceImpl implements IDevicePDAService {
equRepairWorkOrder.setUpdateTime(DateUtils.getNowDate());
//维修中
equRepairWorkOrder.setWorkStatus("2");
//维修工单里面的设备名 简化TODO
EquRepairWorkOrder list = equRepairWorkOrderMapper.selectEquRepairWorkOrderByWorkId(equRepairWorkOrder.getWorkId());
//修改设备状态 改为维修中
EquEquipment equEquipment = new EquEquipment();
equEquipment.setEquipmentCode(list.getEquipmentCode());
equEquipment.setEquipmentStatus("2");
equRepairWorkOrderMapper.updateEquipmentStatus(equEquipment);
equRepairWorkOrderMapper.updateEquRepairWorkOrder(equRepairWorkOrder);
return success("提交成功,开始维修!");
return success("提交成功,设备开始维修!");
} catch (Exception e) {
return error();
}
}
/**
*
* @param equipmentId
* @return
*/
@ -577,7 +628,8 @@ public class DevicePDAServiceImpl implements IDevicePDAService {
List<EquOrderStandard> standardLists = equOrderStandardMapper.selectPdaEquOrderList(equOrderStandard);
for (EquOrderStandard standardList : standardLists) {
//每个检查标准里面的照片
List<BaseFileData> files = equOrderStandardMapper.getBaseFileBatch(standardList.getId());
String imageType = "4";
List<BaseFileData> files = equOrderStandardMapper.getBaseFileBatch(standardList.getId(),imageType);
if (!CollectionUtils.isEmpty(files)) {
standardList.setPicturePaths(files);
}
@ -611,117 +663,149 @@ public class DevicePDAServiceImpl implements IDevicePDAService {
* @param equRepairWorkOrder
* @return
*/
@Transactional//增加事务注解,出错时自动回滚
@Override
@DS("#header.poolName")
public AjaxResult updateMaintenanceRecords(EquRepairWorkOrder equRepairWorkOrder) {
//判断是否停机
EquRepairWorkOrder list = equRepairWorkOrderMapper.selectEquRepairWorkOrderByWorkId(equRepairWorkOrder.getWorkId());
if (list.getWorkDownMachine().equals("1")) {
//维修结束时间、维修真正停机时间
equRepairWorkOrder.setActualDownEndTime(DateUtils.getNowDate());
}
equRepairWorkOrder.setWorkEndTime(DateUtils.getNowDate());
//更新每一项点检/巡检检查项信息
List<EquOrder> checkLists = equRepairWorkOrder.getDetailList();
for (EquOrder checkList : checkLists) {
checkList.setUpdateBy(SecurityUtils.getUsername());
checkList.setUpdateTime(DateUtils.getNowDate());
List<EquOrderStandard> standardLists = checkList.getStandardList();
for (EquOrderStandard standardList : standardLists) {
//先删除每个检查项标准图片
equOrderStandardMapper.deleteBaseFileBySourceId(standardList.getId());
//图片
if (StringUtils.isNotEmpty(standardList.getPicturePath())) {
String[] ids = standardList.getPicturePath().split(",");
List<BaseFileData> files = new ArrayList<>();
BaseFileData file = null;
for (String id : ids) {
file = new BaseFileData();
file.setFileId(IdUtils.fastSimpleUUID());
file.setFileName(id.split("&fileName=")[1]);
file.setFileAddress(id);
file.setSourceId(standardList.getId());
file.setCreateBy(SecurityUtils.getUsername());
file.setCreateTime(new Date());
//维修后
file.setImageType("4");
files.add(file);
// try {
//判断是否停机
EquRepairWorkOrder list = equRepairWorkOrderMapper.selectEquRepairWorkOrderByWorkId(equRepairWorkOrder.getWorkId());
if (list.getWorkDownMachine().equals("1")) {
//维修真正停机时间
equRepairWorkOrder.setActualDownEndTime(DateUtils.getNowDate());
}
//维修工单结束时间
equRepairWorkOrder.setWorkEndTime(DateUtils.getNowDate());
////更新每一项点检/巡检检查项信息
//判空
if(StringUtils.isNotEmpty(equRepairWorkOrder.getDetailList())){
List<EquOrder> checkLists = equRepairWorkOrder.getDetailList();
for (EquOrder checkList : checkLists) {
checkList.setUpdateBy(SecurityUtils.getUsername());
checkList.setUpdateTime(DateUtils.getNowDate());
List<EquOrderStandard> standardLists = checkList.getStandardList();
for (EquOrderStandard standardList : standardLists) {
//先删除每个检查项标准图片
String imageType = "4";
equOrderStandardMapper.deleteBaseFileBySourceId(standardList.getId(),imageType);
//图片批量新增
if (StringUtils.isNotEmpty(standardList.getPicturePath())) {
String[] ids = standardList.getPicturePath().split(",");
List<BaseFileData> files = new ArrayList<>();
BaseFileData file = null;
for (String id : ids) {
file = new BaseFileData();
file.setFileId(IdUtils.fastSimpleUUID());
file.setFileName(id.split("&fileName=")[1]);
file.setFileAddress(id);
file.setSourceId(standardList.getId());
file.setCreateBy(SecurityUtils.getUsername());
file.setCreateTime(new Date());
//图片类型 维修后
file.setImageType("4");
files.add(file);
}
equOrderStandardMapper.insertBaseFileBatch(files);
}
standardList.setRepairReach(standardList.getDetailReach());
standardList.setRepairValue(standardList.getActualValue());
standardList.setUpdateTime(DateUtils.getNowDate());
standardList.setUpdateBy(SecurityUtils.getUsername());
equOrderStandardMapper.updateActualValues(standardList);
}
equOrderStandardMapper.insertBaseFileBatch(files);
equOrderMapper.updateEquOrder(checkList);
}
standardList.setRepairReach(standardList.getDetailReach());
standardList.setRepairValue(standardList.getActualValue());
standardList.setUpdateTime(DateUtils.getNowDate());
standardList.setUpdateBy(SecurityUtils.getUsername());
equOrderStandardMapper.updateActualValues(standardList);
}
equOrderMapper.updateEquOrder(checkList);
}
//新建申领单
List<EquSpareApply> equSpareApplies = equRepairWorkOrder.getApplyList();
for (EquSpareApply equSpareApply : equSpareApplies) {
//生成领料单code
String serialNum = String.format("%03d", equSpareApplyMapper.selectSerialNumber());
String code = DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + equRepairWorkOrder.getWorkCode().substring(10);
//十五位单号
equSpareApply.setApplyCode("AW" + code + serialNum);
equSpareApply.setApplyId(IdUtils.fastSimpleUUID());
//备品备件规格型号!!!!!
// equSpareApply.setSpareModel(equSpareApply.getS);
equSpareApply.setSpareCode(equSpareApply.getMaterialCode());
equSpareApply.setSpareName(equSpareApply.getMaterialDesc());
equSpareApply.setApplyPeople(SecurityUtils.getUsername());
equSpareApply.setCreateBy(SecurityUtils.getUsername());
equSpareApply.setCreateTime(DateUtils.getNowDate());
equSpareApply.setApplyTime(DateUtils.getNowDate());
equSpareApply.setSpareUseEquipment(equRepairWorkOrder.getEquipmentCode());
equSpareApply.setWorkCode(equRepairWorkOrder.getWorkCode());
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String key = "#header.poolName";
equSpareApply.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_", ""));
equSpareApplyMapper.insertEquSpareApply(equSpareApply);
//更新完备品申领单后,更新库存
SparePartsLedger sparePartsLedger = new SparePartsLedger();
sparePartsLedger.setStorageId(equSpareApply.getStorageId());
BigDecimal applyNum = equSpareApply.getSpareQuantity();
BigDecimal amount = equSpareApply.getAmount();
sparePartsLedger.setAmount(amount.subtract(applyNum));
sparePartsLedgerMapper.updateSparePartsLedger(sparePartsLedger);
}
////新建申领单
//判空
if(StringUtils.isNotEmpty(equRepairWorkOrder.getApplyList())){
List<EquSpareApply> equSpareApplies = equRepairWorkOrder.getApplyList();
for (EquSpareApply equSpareApply : equSpareApplies) {
//生成领料单code
String serialNum = String.format("%03d", equSpareApplyMapper.selectSerialNumber());
String code = DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + equRepairWorkOrder.getWorkCode().substring(10);
//十五位单号
equSpareApply.setApplyCode("AW" + code + serialNum);
equSpareApply.setApplyId(IdUtils.fastSimpleUUID());
//备品备件规格型号!!!!!
//equSpareApply.setSpareModel(equSpareApply.getSpareMode());
//备件编码
equSpareApply.setSpareCode(equSpareApply.getMaterialCode());
//备件名称
equSpareApply.setSpareName(equSpareApply.getMaterialDesc());
//申领人
equSpareApply.setApplyPeople(SecurityUtils.getUsername());
equSpareApply.setCreateBy(SecurityUtils.getUsername());
equSpareApply.setCreateTime(DateUtils.getNowDate());
//申领时间
equSpareApply.setApplyTime(DateUtils.getNowDate());
//使用设备
equSpareApply.setSpareUseEquipment(equRepairWorkOrder.getEquipmentCode());
//关联维修工单号
equSpareApply.setWorkCode(equRepairWorkOrder.getWorkCode());
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String key = "#header.poolName";
//工厂号
equSpareApply.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_", ""));
equSpareApplyMapper.insertEquSpareApply(equSpareApply);
////更新完备品申领单后,更新库存
SparePartsLedger sparePartsLedger = new SparePartsLedger();
sparePartsLedger.setStorageId(equSpareApply.getStorageId());
BigDecimal applyNum = equSpareApply.getSpareQuantity();
BigDecimal amount = equSpareApply.getAmount();
//减去库存
sparePartsLedger.setAmount(amount.subtract(applyNum));
sparePartsLedgerMapper.updateSparePartsLedger(sparePartsLedger);
}
}
//图片
//先删除每个维修工单对应图片
equRepairWorkOrderMapper.deleteBaseFileBySourceId(equRepairWorkOrder.getWorkId());
if (StringUtils.isNotEmpty(equRepairWorkOrder.getFileList())) {
String[] ids = equRepairWorkOrder.getFileList().split(",");
List<BaseFileData> files = new ArrayList<>();
BaseFileData file = null;
for (String id : ids) {
file = new BaseFileData();
file.setFileId(IdUtils.fastSimpleUUID());
file.setFileName(id.split("&fileName=")[1]);
file.setFileAddress(id);
file.setSourceId(equRepairWorkOrder.getWorkId());
file.setCreateBy(SecurityUtils.getUsername());
file.setCreateTime(new Date());
//维修后
file.setImageType("4");
files.add(file);
////增加多个维修后照片
//先删除每个维修工单对应图片
equRepairWorkOrderMapper.deleteBaseFileBySourceId(equRepairWorkOrder.getWorkId());
if (StringUtils.isNotEmpty(equRepairWorkOrder.getFileList())) {
String[] ids = equRepairWorkOrder.getFileList().split(",");
List<BaseFileData> files = new ArrayList<>();
BaseFileData file = null;
for (String id : ids) {
file = new BaseFileData();
file.setFileId(IdUtils.fastSimpleUUID());
file.setFileName(id.split("&fileName=")[1]);
file.setFileAddress(id);
file.setSourceId(equRepairWorkOrder.getWorkId());
file.setCreateBy(SecurityUtils.getUsername());
file.setCreateTime(new Date());
//维修后
file.setImageType("4");
files.add(file);
}
equRepairWorkOrderMapper.insertBaseFileBatch(files);
}
equRepairWorkOrderMapper.insertBaseFileBatch(files);
}
//维修人:当前登录人
//维修状态
equRepairWorkOrder.setWorkStatus("1");
//维修结束时间
equRepairWorkOrder.setWorkPerson(SecurityUtils.getUsername());
equRepairWorkOrder.setUpdateBy(SecurityUtils.getUsername());
equRepairWorkOrder.setUpdateTime(DateUtils.getNowDate());
equRepairWorkOrderMapper.updateEquRepairWorkOrder(equRepairWorkOrder);
//需要更新设备状态????这里没做
return success("提交成功,维修完成!");
////更新维修工单
//维修状态
equRepairWorkOrder.setWorkStatus("1");
//维修人
equRepairWorkOrder.setWorkPerson(SecurityUtils.getUsername());
//维修人员联系方式TODO
equRepairWorkOrder.setUpdateBy(SecurityUtils.getUsername());
equRepairWorkOrder.setUpdateTime(DateUtils.getNowDate());
equRepairWorkOrderMapper.updateEquRepairWorkOrder(equRepairWorkOrder);
//维修工单里面的设备名 简化TODO
EquRepairWorkOrder example = equRepairWorkOrderMapper.selectEquRepairWorkOrderByWorkId(equRepairWorkOrder.getWorkId());
//修改设备状态 由维修中改为正常运行
EquEquipment equEquipment = new EquEquipment();
equEquipment.setEquipmentCode(example.getEquipmentCode());
equEquipment.setEquipmentStatus("1");
equRepairWorkOrderMapper.updateEquipmentStatus(equEquipment);
return success("提交成功,维修完成!");
// } catch (Exception e) {
// return error("提交失败!");
// }
}
/**
@ -759,4 +843,38 @@ public class DevicePDAServiceImpl implements IDevicePDAService {
return equEquipmentMapper.selectEquEquipmentList(equEquipment);
}
/**
*
* @param equipmentCode
* @param operationType /
* @param type /
*/
private void updateOperationRecord(String equipmentCode,String operationType,String type) {
// 设备最后一条运行记录
EquOperationRecord lastRecord = equOperationRecordMapper.selectLastOperationRecordByEquipmentCode(equipmentCode);
if (lastRecord.getMaintenanceType() != null) {
if (!lastRecord.getMaintenanceType().isEmpty()) {
if (lastRecord.getMaintenanceType().equals("repair")) {
return;
}
}
}
lastRecord.setEndTime(DateUtils.getNowDate());
lastRecord.setUpdateBy(SecurityContextHolder.getUserName());
// 更新运行记录
equOperationRecordMapper.updateEquOperationRecord(lastRecord);
// 创建新的运行记录
EquOperationRecord newRecord = new EquOperationRecord();
newRecord.setId(IdUtils.fastSimpleUUID());
newRecord.setEquipmentCode(equipmentCode);
newRecord.setStartTime(DateUtils.getNowDate());
newRecord.setType(operationType);
newRecord.setMaintenanceType(type);// 维护类型
newRecord.setParentId(lastRecord.getId());
newRecord.setFactoryCode(lastRecord.getFactoryCode());
newRecord.setCreateBy(SecurityContextHolder.getUserName());
newRecord.setCreateTime(DateUtils.getNowDate());
equOperationRecordMapper.insertEquOperationRecord(newRecord);
}
}

@ -78,9 +78,10 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService {
private EquSpareApplyMapper equSpareApplyMapper;
@Autowired
private SparePartsLedgerMapper sparePartsLedgerMapper;
/**
*
* **/
**/
@Override
public AjaxResult createSpotCheckPlanTask() {
@ -111,7 +112,7 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService {
/**
*
* **/
**/
@Override
public AjaxResult createPatrolCheckPlanTask() {
@ -127,11 +128,11 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService {
new LinkedBlockingQueue<Runnable>());
try {
dateSources.forEach(dateSource -> {
if("ds_1000".equals(dateSource.get("poolName"))){//TODO生产去掉
//if("ds_1000".equals(dateSource.get("poolName"))){//TODO生产去掉
logger.info("++++++++++++" + dateSource.get("poolName") + "++++巡检开始++++++++++");
Runnable run = () -> createPatrolCheckPlanFunc(dateSource.get("poolName"));
executorService.execute(run);
}
//}
});
} catch (Exception e) {
logger.error("service == dataClearTask == exception", e);
@ -144,7 +145,7 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService {
/**
*
* **/
**/
@Override
public AjaxResult createMaintenancePlanTask() {

@ -149,6 +149,7 @@ public class EquOrderServiceImpl implements IEquOrderService {
List<WorkCenter> workCenters = equPlanMapper.selectWorkCenter(factory);
// 设置工作中心
for (EquOrder order : orderList) {
for (WorkCenter center : workCenters) {
if (center.getFactoryCode().equals(order.getPlanWorkshop())) {
@ -156,6 +157,11 @@ public class EquOrderServiceImpl implements IEquOrderService {
}
}
order.setEquipmentName(equOrderMapper.selectEquipmentNameByEquCode(order.getEquipmentCode()));
// 设置计划名称
String planName = equOrderMapper.selectPlanNameByPlanCode(order.getPlanCode());
if (planName!=null) {
order.setPlanName(planName);
}
}
return orderList;
}
@ -250,7 +256,9 @@ public class EquOrderServiceImpl implements IEquOrderService {
}
// 更新工单信息
equOrder.setOrderStatus("1"); // 状态为已完成
if (!equOrder.getPlanType().equals("maintenance")) {
equOrder.setOrderStatus("1"); // 状态为已完成
}
equOrder.setUpdateTime(DateUtils.getNowDate());
equOrder.setUpdateBy(SecurityContextHolder.getUserName());
equOrder.setPlanPerson(SecurityContextHolder.getUserName());

@ -6,9 +6,12 @@ import com.baomidou.dynamic.datasource.annotation.DS;
import com.op.common.core.utils.DateUtils;
import com.op.common.core.utils.uuid.IdUtils;
import com.op.common.security.utils.SecurityUtils;
import com.op.device.domain.EquEquipment;
import com.op.device.domain.EquRepairWorkOrder;
import com.op.device.domain.Equipment;
import com.op.device.mapper.EquOrderMapper;
import com.op.device.mapper.EquRepairWorkOrderMapper;
import com.op.device.mapper.EquipmentMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.op.device.mapper.EquOutsourceWorkMapper;
@ -36,6 +39,10 @@ public class EquOutsourceWorkServiceImpl implements IEquOutsourceWorkService {
@Autowired
private EquOrderMapper equOrderMapper;
@Autowired
private EquipmentMapper equipmentMapper;
/**
*
@ -70,7 +77,7 @@ public class EquOutsourceWorkServiceImpl implements IEquOutsourceWorkService {
@Override
@DS("#header.poolName")
public int insertEquOutsourceWork(EquOutsourceWork equOutsourceWork) {
//新增的委外工单,不用报修单号、维修单号拼接
//新增的委外工单,不用报修单号、维修单号拼接,流水号生成
equOutsourceWork.setWorkId(IdUtils.fastSimpleUUID());
String serialNum = String.format("%03d", equOutsourceWorkMapper.selectWorkCodeSerialNumber());
String equipmentCode = equOutsourceWork.getEquipmentCode();
@ -83,6 +90,32 @@ public class EquOutsourceWorkServiceImpl implements IEquOutsourceWorkService {
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String key = "#header.poolName";
equOutsourceWork.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_",""));
////修改工单状态、设备状态
if(equOutsourceWork.getWorkStatus().equals("1") && equOutsourceWork.getWorkType().equals("0")){
//更新维修工单状态
equRepairWorkOrderMapper.updateWorkStatus(equOutsourceWork.getRepairCode());
//修改设备状态 改为正常运行
EquEquipment equEquipment = new EquEquipment();
equEquipment.setEquipmentCode(equOutsourceWork.getEquipmentCode());
equEquipment.setEquipmentStatus("1");
equRepairWorkOrderMapper.updateEquipmentStatus(equEquipment);
}else if(equOutsourceWork.getWorkStatus().equals("1") && equOutsourceWork.getWorkType().equals("1")){
//更新保养工单状态
equOrderMapper.updateEquOrderStatusComplete(equOutsourceWork.getRepairCode());
//修改设备状态 改为正常运行
//查找当前运行的设备信息 如果是维修中则不改 维修>保养
EquEquipment example = new EquEquipment();
example.setEquipmentCode(equOutsourceWork.getEquipmentCode());
Equipment equipment = equipmentMapper.selectEquipmentByEquipmentCode(equOutsourceWork.getEquipmentCode());
if(equipment.getEquipmentStatus().equals("3")){
example.setEquipmentStatus("1");
equRepairWorkOrderMapper.updateEquipmentStatus(example);
}
}
return equOutsourceWorkMapper.insertEquOutsourceWork(equOutsourceWork);
}
@ -95,13 +128,31 @@ public class EquOutsourceWorkServiceImpl implements IEquOutsourceWorkService {
@Override
@DS("#header.poolName")
public int updateEquOutsourceWork(EquOutsourceWork equOutsourceWork) {
//1完成委外
if(equOutsourceWork.getWorkStatus().equals("1")){
//1完成委外,更新工单状态
if(equOutsourceWork.getWorkStatus().equals("1") && equOutsourceWork.getWorkType().equals("0")){
//更新维修工单状态
equRepairWorkOrderMapper.updateWorkStatus(equOutsourceWork.getRepairCode());
//修改设备状态 改为正常运行
EquEquipment equEquipment = new EquEquipment();
equEquipment.setEquipmentCode(equOutsourceWork.getEquipmentCode());
equEquipment.setEquipmentStatus("1");
equRepairWorkOrderMapper.updateEquipmentStatus(equEquipment);
}else if(equOutsourceWork.getWorkStatus().equals("1") && equOutsourceWork.getWorkType().equals("1")){
//更新保养工单状态
equOrderMapper.updateEquOrderStatusComplete(equOutsourceWork.getRepairCode());
//修改设备状态 改为正常运行
//查找当前运行的设备信息 如果是维修中则不改 维修>保养
EquEquipment example = new EquEquipment();
example.setEquipmentCode(equOutsourceWork.getEquipmentCode());
Equipment equipment = equipmentMapper.selectEquipmentByEquipmentCode(equOutsourceWork.getEquipmentCode());
if(equipment.getEquipmentStatus().equals("3")){
example.setEquipmentStatus("1");
equRepairWorkOrderMapper.updateEquipmentStatus(example);
}
}
equOutsourceWork.setUpdateTime(DateUtils.getNowDate());
equOutsourceWork.setUpdateBy(SecurityUtils.getUsername());
return equOutsourceWorkMapper.updateEquOutsourceWork(equOutsourceWork);

@ -81,7 +81,8 @@ public class EquRepairOrderServiceImpl implements IEquRepairOrderService {
List<EquOrderStandard> standardLists = equOrderStandardMapper.selectPdaEquOrderList(equOrderStandard);
for(EquOrderStandard standardList :standardLists){
//每个检查标准里面的照片
List<BaseFileData> file = equOrderStandardMapper.getBaseFileBatch(standardList.getId());
String imageType = "3";
List<BaseFileData> file = equOrderStandardMapper.getBaseFileBatch(standardList.getId(),imageType);
if (!CollectionUtils.isEmpty(file)) {
standardList.setPicturePaths(file);
}
@ -164,6 +165,7 @@ public class EquRepairOrderServiceImpl implements IEquRepairOrderService {
/**
*
*
*
* @param equRepairOrder
* @return
@ -171,7 +173,7 @@ public class EquRepairOrderServiceImpl implements IEquRepairOrderService {
@Override
@DS("#header.poolName")
public int checkEquRepairOrder(EquRepairOrder equRepairOrder) {
//改了,不生成流水号,从第十位开始切割
//不生成流水号,从报修单号第十位开始切割、拼接
String code = equRepairOrder.getOrderCode().substring(10);
String workCode = DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + code;
//判断是否是点检、巡检过来的
@ -185,7 +187,6 @@ public class EquRepairOrderServiceImpl implements IEquRepairOrderService {
one.setWorkCode("WX" + workCode);
one.setUpdateBy(SecurityUtils.getUsername());
one.setUpdateTime(DateUtils.getNowDate());
//只更新其中一个信息
equOrderMapper.updateEquOrderRepairCode(one);
}
}
@ -196,11 +197,15 @@ public class EquRepairOrderServiceImpl implements IEquRepairOrderService {
equRepairWorkOrder.setOrderCode(equRepairOrder.getOrderCode());
//维修单号
equRepairWorkOrder.setWorkCode("WX" + workCode);
//报修id
equRepairWorkOrder.setOrderId(equRepairOrder.getOrderId());
//设备编号
equRepairWorkOrder.setEquipmentCode(equRepairOrder.getEquipmentCode());
//维修组
equRepairWorkOrder.setWorkTeam(equRepairOrder.getWorkTeam());
//不委外
equRepairWorkOrder.setWorkOutsource("0");
//无委外单号
equRepairWorkOrder.setOutWorkCode("无");
//是否立即维修 1是 0 否
equRepairWorkOrder.setWorkHandle("0");
@ -213,7 +218,9 @@ public class EquRepairOrderServiceImpl implements IEquRepairOrderService {
}else{
equRepairWorkOrder.setWorkDownMachine("0");
}
//故障描述????
equRepairWorkOrder.setWorkFaultDesc(equRepairOrder.getOrderDesc());
//维修状态 待维修
equRepairWorkOrder.setWorkStatus("0");
equRepairWorkOrder.setWorkId(IdUtils.fastSimpleUUID());
equRepairWorkOrder.setCreateTime(DateUtils.getNowDate());
@ -225,20 +232,35 @@ public class EquRepairOrderServiceImpl implements IEquRepairOrderService {
equRepairWorkOrderMapper.insertEquRepairWorkOrder(equRepairWorkOrder);
equRepairOrder.setOrderStatus("审核通过");
////更新设备状态
EquEquipment equEquipment = new EquEquipment();
equEquipment.setEquipmentCode(equRepairOrder.getEquipmentCode());
//0 故障
equEquipment.setEquipmentStatus("0");
equRepairWorkOrderMapper.updateEquipmentStatus(equEquipment);
}else if(equRepairOrder.getRepairDestination().equals("不维修")){
equRepairOrder.setOrderStatus("驳回");
}else if(equRepairOrder.getRepairDestination().equals("委外维修")){
EquOutsourceWork equOutsourceWork = new EquOutsourceWork();
//委外工单编码、id、联系方式、委外单位、委外人员、委外原因
//id
equOutsourceWork.setWorkId(IdUtils.fastSimpleUUID());
//报修单号
equOutsourceWork.setOrderCode(equRepairOrder.getOrderCode());
//设备编码
equOutsourceWork.setEquipmentCode(equRepairOrder.getEquipmentCode());
//委外工单号
equOutsourceWork.setWorkCode("WW" + workCode);
//维修工单号
equOutsourceWork.setRepairCode("无");
//委外联系方式
equOutsourceWork.setWorkConnection(equRepairOrder.getWorkConnection());
//委外单位
equOutsourceWork.setWorkOutsourcingUnit(equRepairOrder.getWorkOutsourcingUnit());
//委外人员
equOutsourceWork.setWorkPerson(equRepairOrder.getOutSourcePerson());
//委外原因
equOutsourceWork.setWorkReason(equRepairOrder.getOutSourceReason());
//委外类型 维修委外
equOutsourceWork.setWorkType("0");
@ -246,20 +268,35 @@ public class EquRepairOrderServiceImpl implements IEquRepairOrderService {
equOutsourceWork.setCreateTime(DateUtils.getNowDate());
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String key = "#header.poolName";
//工厂号
equOutsourceWork.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_",""));
equOutsourceWorkMapper.insertEquOutsourceWork(equOutsourceWork);
equRepairOrder.setOrderStatus("审核通过");
////更新设备状态
EquEquipment equEquipment = new EquEquipment();
equEquipment.setEquipmentCode(equRepairOrder.getEquipmentCode());
//0 故障
equEquipment.setEquipmentStatus("0");
equRepairWorkOrderMapper.updateEquipmentStatus(equEquipment);
}else if(equRepairOrder.getRepairDestination().equals("立即维修")){
EquRepairWorkOrder equRepairWorkOrder = new EquRepairWorkOrder();
//维修工单id
equRepairWorkOrder.setWorkId(IdUtils.fastSimpleUUID());
//报修单号
equRepairWorkOrder.setOrderCode(equRepairOrder.getOrderCode());
//维修单号
equRepairWorkOrder.setWorkCode("WX"+workCode);
//orderId
equRepairWorkOrder.setOrderId(equRepairOrder.getOrderId());
//设备编码
equRepairWorkOrder.setEquipmentCode(equRepairOrder.getEquipmentCode());
//维修组
equRepairWorkOrder.setWorkTeam(equRepairOrder.getWorkTeam());
//不委外
equRepairWorkOrder.setWorkOutsource("0");
//无委外工单号
equRepairWorkOrder.setOutWorkCode("无");
//是否立即维修 1是 0 否
equRepairWorkOrder.setWorkHandle("0");
@ -272,9 +309,10 @@ public class EquRepairOrderServiceImpl implements IEquRepairOrderService {
}else{
equRepairWorkOrder.setWorkDownMachine("0");
}
//故障描述
equRepairWorkOrder.setWorkFaultDesc(equRepairOrder.getOrderDesc());
//工单状态 待维修
equRepairWorkOrder.setWorkStatus("0");
equRepairWorkOrder.setWorkId(IdUtils.fastSimpleUUID());
equRepairWorkOrder.setCreateTime(DateUtils.getNowDate());
equRepairWorkOrder.setCreateBy(SecurityUtils.getUsername());
//工厂
@ -283,6 +321,14 @@ public class EquRepairOrderServiceImpl implements IEquRepairOrderService {
equRepairWorkOrder.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_",""));
equRepairWorkOrderMapper.insertEquRepairWorkOrder(equRepairWorkOrder);
equRepairOrder.setOrderStatus("审核通过");
////更新设备状态
EquEquipment equEquipment = new EquEquipment();
equEquipment.setEquipmentCode(equRepairOrder.getEquipmentCode());
//0 故障
equEquipment.setEquipmentStatus("0");
equRepairWorkOrderMapper.updateEquipmentStatus(equEquipment);
}
equRepairOrder.setUpdateTime(DateUtils.getNowDate());
equRepairOrder.setUpdateBy(SecurityUtils.getUsername());

@ -77,7 +77,8 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService
List<EquOrderStandard> standardLists = equOrderStandardMapper.selectPdaEquOrderList(equOrderStandard);
for(EquOrderStandard standardList :standardLists){
//每个检查标准里面的照片
List<BaseFileData> files = equOrderStandardMapper.getBaseFileBatch(standardList.getId());
String imageType = "4";
List<BaseFileData> files = equOrderStandardMapper.getBaseFileBatch(standardList.getId(),imageType);
if (!CollectionUtils.isEmpty(files)) {
standardList.setPicturePaths(files);
}
@ -185,6 +186,15 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService
equOrderStandard.setUpdateTime(DateUtils.getNowDate());
equOrderStandardMapper.updateStandardAfterRepair(equOrderStandard);
}
if(equRepairWorkOrder.getWorkStatus().equals("1")){
//修改设备状态 由维修中改为正常运行
EquEquipment equEquipment = new EquEquipment();
equEquipment.setEquipmentCode(equRepairWorkOrder.getEquipmentCode());
equEquipment.setEquipmentStatus("1");
equRepairWorkOrderMapper.updateEquipmentStatus(equEquipment);
}
return equRepairWorkOrderMapper.updateEquRepairWorkOrder(equRepairWorkOrder);
}

@ -187,6 +187,28 @@ public class EquUpkeepServiceImpl implements IEquUpkeepService {
EquPlanDetail detail = new EquPlanDetail();
BeanUtils.copyProperties(checkItem,detail);
if (!detail.getItemCode().isEmpty()) {
itemTempName.append(detail.getItemName()).append(",");
// 获取检查项详情list
List<EquCheckItemDetail> equCheckItemDetailList = equCheckItemDetailMapper.selectCheckItemDetailByItemCode(detail.getItemCode());
if (equCheckItemList.size() > 0) {
List<EquPlanStandard> standardList = new ArrayList<>();
for (EquCheckItemDetail standardTemp : equCheckItemDetailList) {
EquPlanStandard standard = new EquPlanStandard();
BeanUtils.copyProperties(standardTemp,standard);
standard.setShowFlag(true);
standardList.add(standard);
}
detail.setEquPlanStandardList(standardList);
}
}
detailList.add(detail);
}
if (data.getItemLoop() == 0) {
EquPlanDetail detail = new EquPlanDetail();
BeanUtils.copyProperties(checkItem,detail);
if (!detail.getItemCode().isEmpty()) {
itemTempName.append(detail.getItemName()).append(",");
// 获取检查项详情list

@ -59,6 +59,9 @@ public class InspectionWorkServiceImpl implements IInspectionWorkService {
order.setPlanName(equPlan.getPlanName());
}
// 设备名称
order.setEquipmentName(equipmentMapper.selectEquipmentByEquipmentCode(order.getEquipmentCode()).getEquipmentName());
// 保养图片
BaseFileData selectTemp = new BaseFileData();
selectTemp.setSourceId(orderId);

@ -73,6 +73,7 @@
where eor.del_flag = '0'
and eor.end_time is not null
and eor.equipment_code = #{equipmentCode}
and eor.create_time >= DATEADD(year,-1, GETDATE())
</select>
<insert id="insertEquOperationRecord" parameterType="EquOperationRecord">
@ -174,9 +175,32 @@
SUM(CASE WHEN equipment_status = '1' or equipment_status = '3' THEN 1 Else 0 END) AS operationEquipment,
SUM(CASE WHEN equipment_status = '0' or equipment_status = '0' THEN 1 Else 0 END) AS faultEquipment,
COUNT(*) AS totalEquipment,
CONCAT(cast(SUM(CASE WHEN equipment_status = '1' or equipment_status = '3' THEN 1 Else 0 END)*100/COUNT(*)as decimal(10,2)),'%') AS intactRate
CAST(SUM(CASE WHEN equipment_status = '1' or equipment_status = '3' THEN 1 Else 0 END)*100.00/COUNT(*) as decimal(18,2)) AS intactRate
FROM base_equipment
WHERE del_flag = '0' AND status = '1'
</select>
<select id="selectLastOperationRecordByEquipmentCode" resultType="com.op.device.domain.EquOperationRecord">
select id AS 'id',
equipment_code,
start_time,
end_time,
type,
maintenance_type,
parent_id,
factory_code,
attr1,
attr2,
attr3,
del_flag,
create_by,
create_time,
update_by,
update_time
from equ_operation_record
where id not in ( select parent_id from equ_operation_record where del_flag =
'0' ) and equipment_code =#{equipmentCode}
</select>
</mapper>

@ -113,13 +113,14 @@
<if test="itemTools != null">#{itemTools},</if>
</trim>
</insert>
<insert id="insertEquOrderDetails">
insert into equ_order_detail
(
id, order_code,
item_code, item_name, item_method,
item_type, item_type_name, factory_code, del_flag,
create_by, create_time,item_tools
create_by, create_time
)
VALUES
<foreach collection="list" index="index" item="item" separator=",">
@ -127,7 +128,7 @@
#{item.id},#{item.parentCode},
#{item.itemCode},#{item.itemName},#{item.itemMethod},
#{item.itemType},#{item.itemTypeName},#{item.factoryCode},#{item.delFlag},
#{item.createBy},#{item.createTime},#{itemTools}
#{item.createBy},#{item.createTime}
)
</foreach>

@ -45,6 +45,7 @@
<result property="itemMethod" column="item_method" />
<result property="itemType" column="item_type" />
<result property="itemTypeName" column="item_type_name" />
<result property="itemTools" column="item_tools" />
<result property="outsourceCode" column="outsource_code" />
</resultMap>
@ -105,6 +106,7 @@
<if test="orderEndArrayEnd != null "> and #{orderEndArrayEnd} >= CONVERT(date,order_end)</if>
and del_flag = '0'
</where>
order by create_time desc
</select>
<select id="selectEquOrderByOrderCode" parameterType="String" resultMap="EquOrderResult">
@ -137,7 +139,7 @@
<select id="selectTodayTask" parameterType="String" resultMap="EquOrderResult">
<include refid="selectEquOrderVo"/>
where CONVERT(date,GETDATE()) >= plan_loop_start and plan_type = #{planType} and del_flag = '0' and order_status != '1' and order_code in (
where plan_type = #{planType} and del_flag = '0' and order_status != '1' and order_code in (
select order_code from equ_order_person where del_flag = '0' and user_id = #{userId} GROUP BY order_code
)
</select>
@ -300,11 +302,14 @@
eo.order_code,
eo.repair_code,
eo.work_code,
eo.plan_loop,
eo.plan_loop_type,
eod.id,
eod.item_name,
eod.item_method,
eod.item_type,
eod.item_type_name
eod.item_type_name,
eod.item_tools
from equ_order eo
left join equ_order_detail eod on eo.order_code = eod.order_code
where eo.work_code = #{workCode}
@ -318,18 +323,20 @@
eo.order_code,
eo.repair_code,
eo.work_code,
eo.plan_loop,
eo.plan_loop_type,
eod.id,
eod.item_name,
eod.item_method,
eod.item_type,
eod.item_type_name
eod.item_type_name,
eod.item_tools
from equ_order eo
left join equ_order_detail eod on eo.order_code = eod.order_code
where eo.repair_code = #{repairCode}
and eo.del_flag = '0'
</select>
<!-- 查询对应检查项id-->
<select id="getIdsByOrderCode" parameterType="EquOrder" resultType="java.lang.String">
select
@ -358,4 +365,12 @@
and del_flag = '0'
</update>
<update id="updateEquipmentStatus">
update base_equipment
set equipment_status = #{status}
where equipment_code = #{equipmentCode}
and del_flag = '0'
</update>
</mapper>

@ -268,8 +268,10 @@
</foreach>
</insert>
<delete id="deleteBaseFileBySourceId">
delete from base_file where source_id = #{sourceId}
<delete id="deleteBaseFileBySourceId" parameterType="String">
delete from base_file
where source_id = #{sourceId}
and image_type = #{imageType}
</delete>
<delete id="delEquOrderStandardByorderIds" parameterType="String">
@ -285,6 +287,7 @@
<select id="getBaseFileBatch" resultMap="BaseFileResult">
<include refid="selectBaseFileVo"/>
where source_id = #{sourceId}
and image_type = #{imageType}
</select>
<update id="updateStandardAfterRepair" parameterType="EquOrderStandard">

@ -87,6 +87,7 @@
<if test="getLoopEndArrayEnd != null "> and #{getLoopEndArrayEnd} >= CONVERT(date,plan_loop_end)</if>
and del_flag = '0'
</where>
order by create_time desc
</select>
<select id="selectEquPlanByPlanId" parameterType="String" resultMap="EquPlanResult">

@ -477,4 +477,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
and del_flag = '0'
</update>
<update id="updateEquipmentStatus" parameterType="com.op.device.domain.EquEquipment">
update base_equipment
set equipment_status = #{equipmentStatus}
where equipment_code = #{equipmentCode}
and del_flag = '0'
</update>
</mapper>

@ -45,15 +45,17 @@
<result property="plcPort" column="plc_port" />
<result property="delFlag" column="del_flag" />
<result property="sapAsset" column="sap_asset" />
<result property="equipmentStatus" column="equipment_status" />
</resultMap>
<sql id="selectEquipmentVo">
select equipment_id, equipment_code, equipment_name, equipment_brand, equipment_spec, equipment_type_id, equipment_type_code, equipment_type_name, workshop_id, workshop_code, workshop_name, status, remark, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time, workshop_section, equipment_location, hourly_unit_price, equipment_barcode, equipment_barcode_image, manufacturer, supplier, use_life, buy_time, asset_original_value, net_asset_value, asset_head, fixed_asset_code, department, unit_working_hours, plc_ip, plc_port, del_flag, sap_asset from base_equipment
select equipment_id, equipment_code, equipment_name, equipment_brand, equipment_spec, equipment_type_id, equipment_type_code, equipment_type_name, workshop_id, workshop_code, workshop_name, status, remark, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time, workshop_section, equipment_location, hourly_unit_price, equipment_barcode, equipment_barcode_image, manufacturer, supplier, use_life, buy_time, asset_original_value, net_asset_value, asset_head, fixed_asset_code, department, unit_working_hours, plc_ip, plc_port, del_flag, sap_asset,equipment_status from base_equipment
</sql>
<select id="selectEquipmentByEquipmentCode" parameterType="String" resultMap="EquipmentResult">
<include refid="selectEquipmentVo"/>
where equipment_code = #{equipmentCode}
and del_flag = '0'
</select>
</mapper>

@ -4,6 +4,7 @@ import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.op.common.core.utils.uuid.IdUtils;
import com.op.mes.domain.MesReportWork;
import com.op.system.api.domain.dto.BaseBomDTO;
import com.op.system.api.domain.mes.BaseProductDTO;
import com.op.system.api.domain.mes.BaseTeamTDTO;
@ -135,4 +136,21 @@ public class MesReportWorkConsumeController extends BaseController {
List<BaseTeamTDTO> list = mesReportWorkConsumeService.getTeamList(dto);
return list;
}
/**获取母子报工物料损耗记录**/
@RequiresPermissions("mes:reportWork:report")
@GetMapping("/getConsumeList")
public List getConsumeList(MesReportWorkConsume mesReportWorkConsume) {
List<MesReportWorkConsume> rlist = mesReportWorkConsumeService.getConsumeList(mesReportWorkConsume);
return rlist;
}
@PostMapping("/submitConsumePS")
public AjaxResult submitConsumePS(@RequestBody List<MesReportWorkConsume> mesReportWorkConsume) {
return toAjax(mesReportWorkConsumeService.submitConsumePS(mesReportWorkConsume));
}
/**填写报工**/
@PostMapping("/submitReportInfo")
public AjaxResult submitReportInfo(@RequestBody MesReportWork mesReportWork) {
return toAjax(mesReportWorkConsumeService.submitReportInfo(mesReportWork));
}
}

@ -66,8 +66,9 @@ public class MesReportWorkController extends BaseController {
// String dateEndStr = dtf.format(dateEnd)+" 00:00:00";
// mesReportWork.setCreateTimeEnd(dateEndStr);//end
// }
List<MesReportWork> list = mesReportWorkService.selectMesReportWorkList(mesReportWork);
return getDataTable(list);
// List<MesReportWork> list = mesReportWorkService.selectMesReportWorkList(mesReportWork);
List<MesReportWork> hzlist = mesReportWorkService.getReportWorkHzList(mesReportWork);
return getDataTable(hzlist);
}
/**
@ -369,6 +370,26 @@ public class MesReportWorkController extends BaseController {
return mesReportWorkService.getBatchList(ProOrderWorkorder);
}
/**获取母子报工记录**/
@RequiresPermissions("mes:reportWork:report")
@GetMapping("/getReportList")
public List getReportList(MesReportWork mesReportWork) {
List<MesReportWork> rlist = mesReportWorkService.getReportList(mesReportWork);
return rlist;
}
@PostMapping("/submitReportPS")
public AjaxResult submitReportPS(@RequestBody List<MesReportWork> mesReportWorks) {
return toAjax(mesReportWorkService.submitReportPS(mesReportWorks));
}
@GetMapping("/getPrepareList")
public List getPrepareList(MesPrepareDetail mesPrepareDetail) {
List<MesPrepareDetail> rlist = mesReportWorkService.getPrepareList(mesPrepareDetail);
return rlist;
}
public static void main(String args[]){
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:00:00");
try {

@ -29,7 +29,7 @@ public class MesPrepareDetail extends BaseEntity {
/** 物料名称 */
@Excel(name = "物料名称")
private String materailName;
private String materialName;
/** 规格型号 */
@Excel(name = "规格型号")
@ -83,6 +83,24 @@ public class MesPrepareDetail extends BaseEntity {
private String needDate;
private String recoil;
private String buyFlag;
private String workorderCode;
private String parentOrder;
public String getParentOrder() {
return parentOrder;
}
public void setParentOrder(String parentOrder) {
this.parentOrder = parentOrder;
}
public String getWorkorderCode() {
return workorderCode;
}
public void setWorkorderCode(String workorderCode) {
this.workorderCode = workorderCode;
}
public String getBuyFlag() {
return buyFlag;
@ -149,13 +167,15 @@ public class MesPrepareDetail extends BaseEntity {
public String getMaterialCode() {
return materialCode;
}
public void setMaterailName(String materailName) {
this.materailName = materailName;
public String getMaterialName() {
return materialName;
}
public String getMaterailName() {
return materailName;
public void setMaterialName(String materialName) {
this.materialName = materialName;
}
public void setMaterailSpc(String materailSpc) {
this.materailSpc = materailSpc;
}
@ -247,7 +267,7 @@ public class MesPrepareDetail extends BaseEntity {
.append("recordId", getRecordId())
.append("prepareId", getPrepareId())
.append("materialCode", getMaterialCode())
.append("materailName", getMaterailName())
.append("materialName", getMaterialName())
.append("materailSpc", getMaterailSpc())
.append("unit", getUnit())
.append("quantity", getQuantity())

@ -2,6 +2,8 @@ package com.op.mes.domain;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
@ -80,6 +82,7 @@ public class MesReportWork extends BaseEntity {
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "报工时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date feedbackTime;
private String feedbackTimeStr;
/** 录入人员 */
@Excel(name = "录入人员")
@ -165,6 +168,131 @@ public class MesReportWork extends BaseEntity {
private String feedbackTimeEnd;
private String batch;
private String endReport;
private String parentOrder;
private String workorderCodes;
private String productCodes;
private String productNames;
private BigDecimal quantitys;
private BigDecimal quantitySplits;
private String units;
private BigDecimal quantityFeedbacks;
private Long useMans;
private Long workTimes;
private String workCenter;
private String shiftId;
private List<MesReportWorkConsume> consumesInfos;
public String getShiftId() {
return shiftId;
}
public void setShiftId(String shiftId) {
this.shiftId = shiftId;
}
public String getWorkCenter() {
return workCenter;
}
public void setWorkCenter(String workCenter) {
this.workCenter = workCenter;
}
public Long getUseMans() {
return useMans;
}
public void setUseMans(Long useMans) {
this.useMans = useMans;
}
public Long getWorkTimes() {
return workTimes;
}
public void setWorkTimes(Long workTimes) {
this.workTimes = workTimes;
}
public BigDecimal getQuantityFeedbacks() {
return quantityFeedbacks;
}
public void setQuantityFeedbacks(BigDecimal quantityFeedbacks) {
this.quantityFeedbacks = quantityFeedbacks;
}
public BigDecimal getQuantitys() {
return quantitys;
}
public void setQuantitys(BigDecimal quantitys) {
this.quantitys = quantitys;
}
public String getWorkorderCodes() {
return workorderCodes;
}
public void setWorkorderCodes(String workorderCodes) {
this.workorderCodes = workorderCodes;
}
public String getProductCodes() {
return productCodes;
}
public void setProductCodes(String productCodes) {
this.productCodes = productCodes;
}
public String getProductNames() {
return productNames;
}
public void setProductNames(String productNames) {
this.productNames = productNames;
}
public BigDecimal getQuantitySplits() {
return quantitySplits;
}
public void setQuantitySplits(BigDecimal quantitySplits) {
this.quantitySplits = quantitySplits;
}
public String getUnits() {
return units;
}
public void setUnits(String units) {
this.units = units;
}
public List<MesReportWorkConsume> getConsumesInfos() {
return consumesInfos;
}
public void setConsumesInfos(List<MesReportWorkConsume> consumesInfos) {
this.consumesInfos = consumesInfos;
}
public String getParentOrder() {
return parentOrder;
}
public void setParentOrder(String parentOrder) {
this.parentOrder = parentOrder;
}
public String getFeedbackTimeStr() {
return feedbackTimeStr;
}
public void setFeedbackTimeStr(String feedbackTimeStr) {
this.feedbackTimeStr = feedbackTimeStr;
}
public String getEndReport() {
return endReport;

@ -5,6 +5,8 @@ import org.apache.commons.lang3.builder.ToStringStyle;
import com.op.common.core.annotation.Excel;
import com.op.common.core.web.domain.BaseEntity;
import java.math.BigDecimal;
/**
* mes_report_work_consume
*
@ -35,7 +37,7 @@ public class MesReportWorkConsume extends BaseEntity {
/** 数量 */
@Excel(name = "数量")
private Long quantity;
private BigDecimal quantity;
/** 单位 */
@Excel(name = "单位")
@ -67,6 +69,33 @@ public class MesReportWorkConsume extends BaseEntity {
//虚拟字段
private String id;
private String parentOrder;
private String batch;
private String recoil;
public String getRecoil() {
return recoil;
}
public void setRecoil(String recoil) {
this.recoil = recoil;
}
public String getBatch() {
return batch;
}
public void setBatch(String batch) {
this.batch = batch;
}
public String getParentOrder() {
return parentOrder;
}
public void setParentOrder(String parentOrder) {
this.parentOrder = parentOrder;
}
public void setRecordId(String recordId) {
this.recordId = recordId;
@ -111,13 +140,15 @@ public class MesReportWorkConsume extends BaseEntity {
public String getMaterialSpc() {
return materialSpc;
}
public void setQuantity(Long quantity) {
this.quantity = quantity;
}
public Long getQuantity() {
public BigDecimal getQuantity() {
return quantity;
}
public void setQuantity(BigDecimal quantity) {
this.quantity = quantity;
}
public void setUnit(String unit) {
this.unit = unit;
}

@ -69,4 +69,12 @@ public interface MesReportWorkConsumeMapper {
List<BaseTeamTDTO> getTeamList(BaseTeamTDTO dto);
int insertMesReportWorkConsumes(@Param("list") List<MesReportWorkConsume> mesReportWorkConsumes);
List<MesReportWorkConsume> getConsumeList(MesReportWorkConsume mesReportWorkConsume);
int submitConsumePS(@Param("list")List<MesReportWorkConsume> mesReportWorkConsumes);
int addConsumePS(@Param("list")List<MesReportWorkConsume> rconsumes);
List<MesReportWorkConsume> getSonConsumeList(MesReportWorkConsume mesReportWorkConsume);
}

@ -10,6 +10,7 @@ import com.op.system.api.domain.device.EquEquipmentDTO;
import com.op.system.api.domain.mes.ProOrderWorkorderDTO;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* Mapper
@ -71,7 +72,7 @@ public interface MesReportWorkMapper {
public List<MesReportProduction> getProductionList(MesReportProduction mesReportProduction);
public List<MesReportWork> getReportWorkList(MesReportWork mesReportWork);
public List<MesReportWork> getReportWork(MesReportWork mesReportWork);
public void updateSyncSapStatus(MesReportWork work);
@ -81,7 +82,7 @@ public interface MesReportWorkMapper {
List<SysFactoryDto> getWorkcenterList(MesDailyReport mesDailyReport);
public void updateWorkOrderStatus(MesReportWork work);
public void updateOrderWorkStatus(MesReportWork work);
@MapKey("nameDate")
Map<String,MesReportProduction> getLineChartsDatas(MesReportProduction mesReportProduction);
@ -109,5 +110,19 @@ public interface MesReportWorkMapper {
List<ProOrderWorkorder> getBatchList(ProOrderWorkorder proOrderWorkorder);
List<String> getSapWorkOrder(String workorderCode);
List<MesReportWork> getSapWorkOrder(String workorderCode);
List<MesReportWork> getReportWorkHzList(MesReportWork mesReportWork);
List<MesReportWork> getReportList(MesReportWork mesReportWork);
int submitReportPS(@Param("list") List<MesReportWork> mesReportWorks);
List<MesPrepareDetail> getPrepareList(MesPrepareDetail mesPrepareDetail);
int addReportPS(@Param("list") List<MesReportWork> rworks);
public MesReportWork getReportWorkHz(MesReportWork mesReportWork);
MesReportWork getEndReport(MesReportWork pWork);
}

@ -1,6 +1,8 @@
package com.op.mes.service;
import java.util.List;
import com.op.mes.domain.MesReportWork;
import com.op.mes.domain.MesReportWorkConsume;
import com.op.system.api.domain.dto.BaseBomDTO;
import com.op.system.api.domain.mes.BaseProductDTO;
@ -74,4 +76,10 @@ public interface IMesReportWorkConsumeService {
public List<BaseTeamTDTO> getTeamList(BaseTeamTDTO dto);
int insertMesReportWorkConsumes(List<MesReportWorkConsume> mesReportWorkConsumes);
List<MesReportWorkConsume> getConsumeList(MesReportWorkConsume mesReportWorkConsume);
int submitConsumePS(List<MesReportWorkConsume> mesReportWorkConsume);
int submitReportInfo(MesReportWork mesReportWork);
}

@ -90,4 +90,12 @@ public interface IMesReportWorkService {
R reportSap(MesReportWork mesReportWork);
List<ProOrderWorkorder> getBatchList(ProOrderWorkorder proOrderWorkorder);
List<MesReportWork> getReportWorkHzList(MesReportWork mesReportWork);
List<MesReportWork> getReportList(MesReportWork mesReportWork);
int submitReportPS(List<MesReportWork> mesReportWorks);
List<MesPrepareDetail> getPrepareList(MesPrepareDetail mesPrepareDetail);
}

@ -9,6 +9,7 @@ import com.op.common.core.utils.DateUtils;
import com.op.common.core.utils.bean.BeanUtils;
import com.op.common.core.utils.http.HttpUtils;
import com.op.common.core.utils.uuid.IdUtils;
import com.op.common.security.utils.SecurityUtils;
import com.op.mes.domain.*;
import com.op.mes.domain.buffer.JsonRootBean;
import com.op.mes.domain.dto.LGInfoDto;
@ -281,103 +282,117 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService {
return R.ok(true);
}
/****
*
*
* @param mesReportWork
* @return
*/
@Override
public R reportWork(MesReportWork mesReportWork) {
String belongWorkOrder = mesReportWork.getWorkorderCode();
if(StringUtils.isNotBlank(mesReportWork.getFactoryCode())){//已经加上ds_
DynamicDataSourceContextHolder.push(mesReportWork.getFactoryCode());// 这是数据源的key
}
//根据belong_work_order找到sap工单
List<MesReportWork> sapWorkOrders = mesReportWorkMapper.getSapWorkOrder(mesReportWork.getWorkorderCode());
if(CollectionUtils.isEmpty(sapWorkOrders)||sapWorkOrders.size()<2){
return R.fail("子母工单信息缺失");
}
/**子工单先报工,然后母工单报工**/
mesReportWork.setUploadStatus("1");//除了1报工成功的都需要报工
mesReportWork.setProdType("prod");
List<MesReportWork> reportWorks = mesReportWorkMapper.getReportWorkList(mesReportWork);
if(CollectionUtils.isEmpty(reportWorks)){
return R.fail("未查询到报工单");
mesReportWork.setWorkorderCode(sapWorkOrders.get(1).getWorkorderCode());
MesReportWork sHzWorks = mesReportWorkMapper.getReportWorkHz(mesReportWork);
if(sHzWorks==null){
return R.fail("未查询到子报工单");
}
//子工单报工
logger.info("==========================子工单报工开始");
this.reportHzToSap(sHzWorks);
logger.info("==========================子工单报工结束");
mesReportWork.setWorkorderCode(sapWorkOrders.get(0).getWorkorderCode());
MesReportWork pHzWork = mesReportWorkMapper.getReportWorkHz(mesReportWork);
if(pHzWork==null){
return R.fail("未查询到母报工单");
}
//母工单报工
logger.info("==========================母工单报工开始");
this.reportHzToSap(pHzWork);
logger.info("==========================母工单报工结束");
//最终报工标识:关闭子母工单
MesReportWork endReport = mesReportWorkMapper.getEndReport(pHzWork);
if("1".equals(endReport.getEndReport())){
logger.info("报工======母sap工单编码"+sapWorkOrders.get(0).getWorkorderCodeSap()+
"子sap工单编码"+sapWorkOrders.get(1).getWorkorderCodeSap()
);
//关闭母子订单//订单的订单编码
SapCloseOrderQuery sapCloseOrderQuery = new SapCloseOrderQuery();
sapCloseOrderQuery.setLeadOrder(sapWorkOrders.get(0).getWorkorderCodeSap());
sapCloseOrderQuery.setOrder(sapWorkOrders.get(1).getWorkorderCodeSap());
R closeR = remoteSapService.sapCloseOrder(sapCloseOrderQuery);
logger.info("报工======关闭母子sap工单"+sapCloseOrderQuery.getLeadOrder()+":"+
sapCloseOrderQuery.getOrder()+":"+
closeR.getCode()+","+
closeR.getMsg()+","+
closeR.getData());
MesReportWork rworkVo = new MesReportWork();
rworkVo.setStatus("w3");
rworkVo.setUpdateTime(DateUtils.getNowDate());
rworkVo.setUpdateBy(SecurityUtils.getUsername());
rworkVo.setWorkorderCode(belongWorkOrder);
//pro_work_order status->w3报工--belong_work_order
mesReportWorkMapper.updateOrderWorkStatus(rworkVo);
}
return R.ok();
}
MesReportWork work = reportWorks.get(0);
private R reportHzToSap(MesReportWork workOrder){
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.setAufnr(workOrder.getWorkorderCodeSap());//虚拟工单号
sapRFW.setGamng(workOrder.getQuantityFeedback().toString());//报工数量
SapRFW.lt_gs ltgs = new SapRFW.lt_gs();//生产订单报工工时修改
ltgs.setConf_activity1(workOrder.getSac1());//人工
ltgs.setConf_activity2(workOrder.getSac2());
ltgs.setConf_activity3(workOrder.getSac3());//机器
ltgs.setConf_activity4(workOrder.getSac4());
ltgs.setConf_activity5(workOrder.getSac5());//折旧
ltgs.setConf_activity6(workOrder.getSac6());
sapRFW.setLt_gs(ltgs);
List<SapRFW.lt_hw> lt_hwList =new ArrayList<>();
logger.info(work.getWorkorderCodeSap()+"母sap工单报工报工数量"+sapRFW.getGamng());
MesReportWorkConsume consumeqo = new MesReportWorkConsume();
consumeqo.setWorkorderCode(work.getWorkorderCode());
consumeqo.setWorkorderCode(workOrder.getWorkorderCode());
List<MesReportWorkConsume> consumes = mesReportWorkConsumeMapper.selectMesReportWorkConsumeList(consumeqo);
if(!CollectionUtils.isEmpty(consumes)){
for(MesReportWorkConsume consume:consumes){
logger.info(work.getWorkorderCodeSap()+"母sap工单报工【原料损耗】"+
consume.getMaterialCode()+"|"+consume.getQuantity());
SapRFW.lt_hw lthw = sapRFW.new lt_hw();//MES生产订单报工货物移动修改
SapRFW.lt_hw lthw = new SapRFW.lt_hw();//MES生产订单报工货物移动修改
lthw.setEntry_qnt(consume.getQuantity()+"");//数量
lthw.setMaterial(consume.getMaterialCode());//物料编码
lt_hwList.add(lthw);
}
}else{
logger.info(work.getWorkorderCodeSap()+"母sap工单报工工单"+work.getWorkorderCode()+"mes_report_work_consume没有数据");
logger.info(workOrder.getWorkorderCodeSap()+"sap工单报工工单"+workOrder.getWorkorderCode()+"mes_report_work_consume没有数据");
return R.fail("mes_report_work_consume没有数据");
}
sapRFW.setLt_hwList(lt_hwList);
logger.info(workOrder.getWorkorderCodeSap()+"sap工单报工请求"+JSONObject.toJSONString(sapRFW));
R r = remoteSapService.sapRFWOrder(sapRFW);
logger.info(work.getWorkorderCodeSap()+"母sap工单报工结果"+r.getCode()+","+r.getData()+","+r.getMsg());
logger.info(workOrder.getWorkorderCodeSap()+"sap工单报工结果"+r.getCode()+","+r.getData()+","+r.getMsg());
//上传成功更改mes_report_work状态
if (r.getCode() == 200) {
work.setUploadStatus("1");
workOrder.setUploadStatus("1");
} else {
work.setUploadStatus("2");
work.setUploadMsg(r.getMsg());
workOrder.setUploadStatus("2");
workOrder.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(work.getQuantitySplit())>=0
||
"1".equals(work.getEndReport())//最终报工标识
){
logger.info("工单请求关闭调用remoteSapService.sapCloseOrder,参数:"+work.getWorkorderCodeSap());
//工单完成,关闭工单
List<String> sapWorkOrders = mesReportWorkMapper.getSapWorkOrder(work.getWorkorderCode());//根据belong_work_order找到所有要关闭的虚拟工单
//关闭母子订单//订单的订单编码
SapCloseOrderQuery sapCloseOrderQuery = new SapCloseOrderQuery();
sapCloseOrderQuery.setLeadOrder(sapWorkOrders.get(0));
sapCloseOrderQuery.setOrder(sapWorkOrders.get(1));
R closeR = remoteSapService.sapCloseOrder(sapCloseOrderQuery);
logger.info(work.getWorkorderCodeSap()+"报工后关闭母子工单"+sapCloseOrderQuery.getLeadOrder()+":"+
sapCloseOrderQuery.getOrder()+":"+
closeR.getCode()+","+
closeR.getMsg()+","+
closeR.getData());
workOrder.setUploadTime(DateUtils.getNowDate());
mesReportWorkMapper.updateSyncSapStatus(workOrder);
work.setStatus("w3");
work.setUpdateTime(DateUtils.getNowDate());
//pro_work_order status->w3报工--belong_work_order
mesReportWorkMapper.updateWorkOrderStatus(work);
logger.info("工单"+work.getWorkorderCodeSap()+"关闭成功");
}
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){
DynamicDataSourceContextHolder.push(poolName);// 这是数据源的key

@ -1,18 +1,28 @@
package com.op.mes.service.impl;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.op.common.core.utils.DateUtils;
import com.op.common.core.utils.bean.BeanUtils;
import com.op.common.core.utils.uuid.IdUtils;
import com.op.common.security.utils.SecurityUtils;
import com.op.mes.domain.MesReportWork;
import com.op.mes.mapper.MesReportWorkMapper;
import com.op.system.api.domain.dto.BaseBomDTO;
import com.op.system.api.domain.mes.BaseProductDTO;
import com.op.system.api.domain.mes.BaseTeamTDTO;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.op.mes.mapper.MesReportWorkConsumeMapper;
import com.op.mes.domain.MesReportWorkConsume;
import com.op.mes.service.IMesReportWorkConsumeService;
import org.springframework.util.CollectionUtils;
/**
* Service
@ -22,9 +32,13 @@ import com.op.mes.service.IMesReportWorkConsumeService;
*/
@Service
public class MesReportWorkConsumeServiceImpl implements IMesReportWorkConsumeService {
protected Logger logger = LoggerFactory.getLogger(getClass());
@Autowired
private MesReportWorkConsumeMapper mesReportWorkConsumeMapper;
@Autowired
private MesReportWorkMapper mesReportWorkMapper;
/**
*
*
@ -135,4 +149,106 @@ public class MesReportWorkConsumeServiceImpl implements IMesReportWorkConsumeSer
return mesReportWorkConsumeMapper.getTeamList(dto);
}
@Override
@DS("#header.poolName")
public List<MesReportWorkConsume> getConsumeList(MesReportWorkConsume mesReportWorkConsume) {
List<MesReportWorkConsume> dtos = new ArrayList<>();
if("0".equals(mesReportWorkConsume.getParentOrder())){
dtos = mesReportWorkConsumeMapper.getConsumeList(mesReportWorkConsume);
}else{
dtos = mesReportWorkConsumeMapper.getSonConsumeList(mesReportWorkConsume);
}
return dtos;
}
@Override
@DS("#header.poolName")
public int submitConsumePS(List<MesReportWorkConsume> mesReportWorkConsumes) {
Date nowTime = DateUtils.getNowDate();
String updateBy = SecurityUtils.getUsername();
for(MesReportWorkConsume mesReportWorkConsume:mesReportWorkConsumes){
mesReportWorkConsume.setUpdateTime(nowTime);
mesReportWorkConsume.setUpdateBy(updateBy);
}
return mesReportWorkConsumeMapper.submitConsumePS(mesReportWorkConsumes);
}
@Override
@DS("#header.poolName")
public int submitReportInfo(MesReportWork mesReportWork) {
Date nowTime = DateUtils.getNowDate();
String createBy = SecurityUtils.getUsername();
mesReportWork.setCreateBy(createBy);
mesReportWork.setCreateTime(nowTime);
//mes_report_work 母子
List<MesReportWork> rworks = this.getAddMesReportWorks(mesReportWork);
if(!CollectionUtils.isEmpty(rworks)){
int rps = mesReportWorkMapper.addReportPS(rworks);
System.out.println("rps添加成功:"+rps);
}
//mes_report_work_consume 母子
List<MesReportWorkConsume> rconsumes = this.getAddWorkConsumes(mesReportWork,
rworks.get(0).getReportCode(),
rworks.get(1).getReportCode());
if(!CollectionUtils.isEmpty(rconsumes)) {
int rcs = mesReportWorkConsumeMapper.addConsumePS(rconsumes);
System.out.println("rcs添加成功:" + rcs);
}
return 1;
}
private List<MesReportWork> getAddMesReportWorks(MesReportWork mesReportWork){
List<MesReportWork> rworks = new ArrayList<>();
//母
String bpDD = DateUtils.parseDateToStr(DateUtils.YYYYMMDD, mesReportWork.getFeedbackTime());
int liushuiNum = mesReportWorkMapper.getTodayMaxNum(mesReportWork);
String liushuiStr = String.format("%04d", liushuiNum);
String pReportCode = bpDD+liushuiStr;
MesReportWork prwork = new MesReportWork();
BeanUtils.copyProperties(mesReportWork,prwork);
prwork.setId(IdUtils.fastSimpleUUID());
prwork.setReportCode(pReportCode);
prwork.setParentOrder("0");
prwork.setProdType("prod");
rworks.add(prwork);
//子
String bpDD2 = DateUtils.parseDateToStr(DateUtils.YYYYMMDD, mesReportWork.getFeedbackTime());
int liushuiNum2 = mesReportWorkMapper.getTodayMaxNum(mesReportWork);
String liushuiStr2 = String.format("%04d", liushuiNum2);
String pReportCode2 = bpDD2+liushuiStr2;
MesReportWork srwork = new MesReportWork();
BeanUtils.copyProperties(mesReportWork,srwork);
srwork.setId(IdUtils.fastSimpleUUID());
srwork.setReportCode(pReportCode2);
srwork.setWorkorderCode(mesReportWork.getWorkorderCodes());
srwork.setParentOrder(mesReportWork.getWorkorderCode());
srwork.setProductCode(mesReportWork.getProductCodes());
srwork.setProductName(mesReportWork.getProductNames());
srwork.setUnit(mesReportWork.getUnits());
srwork.setQuantity(mesReportWork.getQuantitys());
srwork.setQuantityFeedback(mesReportWork.getQuantityFeedbacks());
srwork.setUseMan(mesReportWork.getUseMans());
srwork.setWorkTime(mesReportWork.getWorkTimes());
srwork.setUseMan(mesReportWork.getUseMans());
srwork.setProdType("prod");
rworks.add(srwork);
return rworks;
}
private List<MesReportWorkConsume> getAddWorkConsumes(MesReportWork mesReportWork,String pReportCode,String sReportCode) {
List<MesReportWorkConsume> rconsumes = mesReportWork.getConsumesInfos();
for(MesReportWorkConsume consume:rconsumes){
consume.setRecordId(IdUtils.fastSimpleUUID());
consume.setCreateBy(mesReportWork.getCreateBy());
consume.setCreateTime(mesReportWork.getCreateTime());
if("0".equals(consume.getParentOrder())){
consume.setReportCode(pReportCode);
}else{
consume.setReportCode(sReportCode);
}
}
return rconsumes;
}
}

@ -12,6 +12,7 @@ import com.op.common.core.constant.SecurityConstants;
import com.op.common.core.domain.R;
import com.op.common.core.utils.DateUtils;
import com.op.common.core.utils.ServletUtils;
import com.op.common.security.utils.SecurityUtils;
import com.op.mes.domain.*;
import com.op.mes.domain.dto.LineChartDto;
import com.op.mes.domain.dto.LineChartSeriesDto;
@ -128,6 +129,46 @@ public class MesReportWorkServiceImpl implements IMesReportWorkService {
return mesReportWorkMapper.getBatchList(proOrderWorkorder);
}
@Override
@DS("#header.poolName")
public List<MesReportWork> getReportWorkHzList(MesReportWork mesReportWork) {
List<MesReportWork> dtos = mesReportWorkMapper.getReportWorkHzList(mesReportWork);
for(MesReportWork dto:dtos){
if("1".equals(dto.getUploadStatus())){
dto.setUploadStatus("sap报工成功");
}else if("2".equals(dto.getUploadStatus())){
dto.setUploadStatus("sap报工失败");
}else if("0".equals(dto.getUploadStatus())){
dto.setUploadStatus("待报工sap");
}
}
return dtos;
}
@Override
@DS("#header.poolName")
public List<MesReportWork> getReportList(MesReportWork mesReportWork) {
return mesReportWorkMapper.getReportList(mesReportWork);
}
@Override
@DS("#header.poolName")
public int submitReportPS(List<MesReportWork> mesReportWorks) {
Date nowTime = DateUtils.getNowDate();
String updateBy = SecurityUtils.getUsername();
for(MesReportWork mesReportWork:mesReportWorks){
mesReportWork.setUpdateTime(nowTime);
mesReportWork.setUpdateBy(updateBy);
}
return mesReportWorkMapper.submitReportPS(mesReportWorks);
}
@Override
@DS("#header.poolName")
public List<MesPrepareDetail> getPrepareList(MesPrepareDetail mesPrepareDetail) {
return mesReportWorkMapper.getPrepareList(mesPrepareDetail);
}
/**
*
*
@ -402,6 +443,8 @@ public class MesReportWorkServiceImpl implements IMesReportWorkService {
return dtos;
}
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
Date now = calendar.getTime();

@ -82,6 +82,33 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
from base_team_t
where del_flag = '0'
</select>
<select id="getConsumeList" resultType="com.op.mes.domain.MesReportWorkConsume">
select mrwc.record_id recordId,
mrwc.workorder_code workorderCode,
mrwc.material_code materialCode,
mrwc.material_name materialName,
mrwc.quantity,
mrwc.unit,
mrwc.create_time createTime,
mrwc.recoil
from mes_report_work_consume mrwc
where mrwc.del_flag = '0'
and mrwc.workorder_code = #{workorderCode}
</select>
<select id="getSonConsumeList" resultType="com.op.mes.domain.MesReportWorkConsume">
select mrwc.record_id recordId,
mrwc.workorder_code workorderCode,
mrwc.material_code materialCode,
mrwc.material_name materialName,
mrwc.quantity,
mrwc.unit,
mrwc.create_time createTime,
mrwc.recoil
from mes_report_work_consume mrwc
left join pro_order_workorder pow on pow.workorder_code = mrwc.workorder_code
where mrwc.del_flag = '0'
and pow.parent_order = #{workorderCode}
</select>
<insert id="insertMesReportWorkConsume" parameterType="MesReportWorkConsume">
insert into mes_report_work_consume
@ -137,6 +164,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</foreach>
</insert>
<insert id="addConsumePS">
insert into mes_report_work_consume
(
record_id,report_code,workorder_code,
material_code,material_name,quantity,unit,
create_by,create_time,parent_order,recoil
)values
<foreach collection="list" item="item" index="index" separator=",">
(
#{item.recordId},#{item.reportCode},#{item.workorderCode},
#{item.materialCode},#{item.materialName},#{item.quantity},#{item.unit},
#{item.createBy},#{item.createTime},#{item.parentOrder},#{item.recoil}
)
</foreach>
</insert>
<update id="updateMesReportWorkConsume" parameterType="MesReportWorkConsume">
update mes_report_work_consume
@ -161,6 +203,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</trim>
where record_id = #{recordId}
</update>
<update id="submitConsumePS">
<foreach collection="list" item="item" separator=";">
update mes_report_work_consume
set
quantity = #{item.quantity},
update_by = #{item.updateBy},
update_time = #{item.updateTime}
where
record_id = #{item.recordId}
</foreach>
</update>
<delete id="deleteMesReportWorkConsumeByRecordId" parameterType="String">
update mes_report_work_consume

@ -78,6 +78,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="endFlag" column="end_flag" />
<result property="carNum" column="car_num" />
<result property="sortNo" column="sort_no" />
<result property="workorderCodes" column="workorderCodes" />
<result property="productCodes" column="productCodes" />
<result property="productNames" column="productNames" />
<result property="quantitySplits" column="quantitySplits" />
<result property="units" column="units" />
</resultMap>
<sql id="selectMesReportWorkVo">
select id, report_type, report_code, workorder_code, product_code,
@ -213,7 +220,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="productDateStart != null "> and CONVERT(varchar(10),mrw.feedback_time, 120) >= #{productDateStart}</if>
<if test="productDateEnd != null "> and #{productDateEnd} >= CONVERT(varchar(10),mrw.feedback_time, 120)</if>
</select>
<select id="getReportWorkList" resultType="com.op.mes.domain.MesReportWork">
<select id="getReportWork" resultType="com.op.mes.domain.MesReportWork">
select
ow.order_code orderCode,
ow.workorder_code workorderCode,
@ -235,8 +242,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
left join pro_order_workorder ow on mrw.workorder_code = ow.workorder_code
left join pro_route rte on rte.route_code = ow.route_code
where mrw.upload_status != #{uploadStatus} and mrw.prod_type = #{prodType}
<if test="reportCode != null ">
and mrw.report_code = #{reportCode}
<if test="workorderCode != null ">
and mrw.workorder_code = #{workorderCode}
</if>
order by mrw.create_time
</select>
@ -421,14 +428,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
pow.product_spc, pow.unit, pow.quantity_split,
pow.route_code, pow.prod_line_code, pow.product_date,
pow.shift_id, pow.parent_order, pow.status, pow.remark,
s.Shift_Desc shiftName
s.Shift_Desc shiftName,
pows.workorder_code workorderCodes,pows.product_code productCodes, pows.product_name productNames,
pows.quantity_split quantitySplits,pows.unit units
from pro_order_workorder pow
left join base_shifts_t s on pow.shift_id = s.Shift_Id
left join pro_order_workorder pows on pows.parent_order = pow.workorder_code
where pow.del_flag = '0' and pow.status = 'w2' and pow.parent_order ='0'
order by pow.product_date desc
<if test="workorderCode != null and workorderCode != ''">
and pow.workorder_code like concat('%', #{workorderCode}, '%')
</if>
order by pow.product_date desc
</select>
<select id="getEquipInfoByCodes" resultType="com.op.system.api.domain.device.EquEquipmentDTO">
select equipment_code equipmentCode,equipment_name equipmentName from base_equipment where equipment_code in
@ -449,9 +460,122 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where powb.del_flag = '0' and pow.del_flag = '0'
and pow.workorder_code = #{workorderCode}
</select>
<select id="getSapWorkOrder" resultType="java.lang.String">
select workorder_code_sap from pro_order_workorder
<select id="getSapWorkOrder" resultType="com.op.mes.domain.MesReportWork">
select workorder_code_sap workorderCodeSap,
workorder_code workorderCode
from pro_order_workorder
where belong_work_order = #{workorderCode} and del_flag = '0'
order by parent_order
</select>
<select id="getReportWorkHzList" resultType="com.op.mes.domain.MesReportWork">
select mrw.workorderCode,mrw.productCode,mrw.productName,mrw.machineCode,mrw.machineName,
mrw.shiftCode,mrw.feedbackTime feedbackTimeStr,mrw.quantityFeedback,
mrw.workTime,mrw.useMan,mrw.uploadStatus,<!--mrw.uploadTime,mrw.unit,-->
pow.order_code orderCode,pow.quantity_split quantity
from (
select workorder_code workorderCode,
product_code productCode,
product_name productName,
machine_code machineCode,
machine_name machineName,
shift_code shiftCode,
CONVERT(varchar(10),feedback_time, 120) feedbackTime,
sum(quantity_feedback) quantityFeedback,
sum(work_time) workTime,
sum(use_man) useMan,
upload_status uploadStatus
<!--,upload_time uploadTime,
,
unit-->
from mes_report_work
where del_flag = '0' and parent_order = '0'
<if test="workorderCode != null and workorderCode != ''"> and workorder_code like concat('%', #{workorderCode}, '%')</if>
<if test="productCode != null and productCode != ''"> and product_code like concat('%', #{productCode}, '%')</if>
<if test="productName != null and productName != ''"> and product_name like concat('%', #{productName}, '%')</if>
<if test="machineCode != null and machineCode != ''"> and machine_code = #{machineCode}</if>
<if test="machineName != null and machineName != ''"> and machine_name like concat('%', #{machineName}, '%')</if>
<if test="feedbackTimeStart != null "> and CONVERT(varchar(19),feedback_time, 120) >= #{feedbackTimeStart}</if>
<if test="feedbackTimeEnd != null "> and #{feedbackTimeEnd} >= CONVERT(varchar(19),feedback_time, 120)</if>
<if test="uploadStatus != null and uploadStatus != ''"> and upload_status = #{uploadStatus}</if>
group by workorder_code, product_code,product_name,CONVERT(varchar(10),feedback_time, 120),machine_code,machine_name,shift_code
,upload_status
<!--,upload_time,unit-->
) mrw
left join pro_order_workorder pow on mrw.workorderCode = pow.workorder_code
<where>
<if test="orderCode != null and orderCode != ''"> and pow.order_code like concat('%', #{orderCode}, '%')</if>
</where>
order by mrw.feedbackTime desc
</select>
<select id="getReportList" resultType="com.op.mes.domain.MesReportWork">
select
id,
workorder_code workorderCode,
report_code reportCode,
batch,
quantity_feedback quantityFeedback,
unit,
work_time workTime,
use_man useMan,
create_time createTime
from mes_report_work
where del_flag='0'
<if test='parentOrder=="0"'>
and workorder_code = #{workorderCode}
</if>
<if test='parentOrder!="0"'>
and parent_order = #{workorderCode}
</if>
order by end_report
</select>
<select id="getPrepareList" resultType="com.op.mes.domain.MesPrepareDetail">
select
mp.workorder_code workorderCode,
mpd.material_code materialCode,
mpd.material_name materialName,
mpd.quantity,
mpd.unit,
mpd.recoil,
pow.parent_order parentOrder
from mes_prepare mp
left join mes_prepare_detail mpd on mpd.prepare_id = mp.prepare_id
left join pro_order_workorder pow on pow.workorder_code = mp.workorder_code
where (pow.workorder_code = #{workorderCode} or pow.parent_order = #{workorderCode})
and mp.del_flag = '0' and mpd.del_flag = '0'
order by mp.workorder_code
</select>
<select id="getReportWorkHz" resultType="com.op.mes.domain.MesReportWork">
select
ow.workorder_code workorderCode,
ow.workorder_code_sap workorderCodeSap,
mrw.quantity_feedback quantityFeedback,
mrw.product_code productCode,
mrw.product_name productName,
rte.tec_machine sac1,
rte.tec_man sac2,
rte.tec_depreciation sac3,
rte.tec_other sac4,
rte.tec_conf_acivity5 sac5,
rte.tec_conf_acivity6 sac6
from (
select
workorder_code,
sum(quantity_feedback) quantity_feedback,
product_code,
product_name
from
mes_report_work
where upload_status != #{uploadStatus} and prod_type = #{prodType}
and workorder_code = #{workorderCode}
group by workorder_code,product_code,product_name
) mrw
left join pro_order_workorder ow on mrw.workorder_code = ow.workorder_code
left join pro_route rte on rte.route_code = ow.route_code
</select>
<select id="getEndReport" resultType="com.op.mes.domain.MesReportWork">
select end_report endReport
from mes_report_work
where end_report = '1' and workorder_code = #{workorderCode}
</select>
<insert id="insertMesReportWork" parameterType="MesReportWork">
@ -533,6 +657,33 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="endReport != null and endReport != ''">#{endReport},</if>
</trim>
</insert>
<insert id="addReportPS">
insert into mes_report_work
(
id,report_type,report_code,
workorder_code,parent_order,
product_code,product_name,
unit,quantity,quantity_feedback,
user_name,nick_name,feedback_channel,
feedback_time,remark,
work_time,use_man,batch,
machine_code,machine_name,shift_code,work_center,
create_by,create_time,del_flag,end_report
)values
<foreach collection="list" item="item" index="index" separator=",">
(
#{item.id},'UNI',#{item.reportCode},
#{item.workorderCode},#{item.parentOrder},
#{item.productCode},#{item.productName},
#{item.unit},#{item.quantity},#{item.quantityFeedback},
#{item.userName},#{item.nickName},#{item.feedbackChannel},
#{item.feedbackTime},#{item.remark},
#{item.workTime},#{item.useMan},#{item.batch},
#{item.machineCode},#{item.machineName},#{item.shiftId},#{item.workCenter},
#{item.createBy},#{item.createTime},'0',#{item.endReport}
)
</foreach>
</insert>
<update id="updateMesReportWork" parameterType="MesReportWork">
update mes_report_work
@ -582,15 +733,28 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="uploadMsg != null">upload_msg = #{uploadMsg},</if>
</trim>
where 1=1
<if test="id != null">
and id = #{id}
</if>
<if test="reportCode != null">
and report_code = #{reportCode}
</if>
<if test="id != null">and id = #{id}</if>
<if test="workorderCode != null">and workorder_code = #{workorderCode}</if>
</update>
<update id="updateWorkOrderStatus">
update pro_order_workorder set status = #{status} where workorder_code = #{workorderCode}
<update id="updateOrderWorkStatus">
update pro_order_workorder
set status = #{status},
update_by = #{updateBy},
update_time = #{updateTime}
where belong_work_order = #{workorderCode}
</update>
<update id="submitReportPS">
<foreach collection="list" item="item" separator=";">
update mes_report_work
set quantity_feedback = #{item.quantityFeedback},
work_time = #{item.workTime},
use_man = #{item.useMan},
update_by = #{item.updateBy},
update_time = #{item.updateTime}
where
id = #{item.id}
</foreach>
</update>
<delete id="deleteMesReportWorkById" parameterType="String">

@ -44,18 +44,18 @@ public class OpenController extends BaseController {
}
return openService.requestDestinationStations(wcsdto);
}
/**上位机报工**/
@PostMapping("/reportWork")
public AjaxResult reportWork(@RequestBody MesReportWorkDTO mesReportWork) {
if(StringUtils.isBlank(mesReportWork.getFactoryCode())){
return error("[factoryCode] is null");
}
if(StringUtils.isBlank(mesReportWork.getReportCode())){
return error("[reportCode] is null");
}
return success(openService.reportWork(mesReportWork));
}
// /**上位机报工**/
// @PostMapping("/reportWork")
// public AjaxResult reportWork(@RequestBody MesReportWorkDTO mesReportWork) {
// if(StringUtils.isBlank(mesReportWork.getFactoryCode())){
// return error("[factoryCode] is null");
// }
// if(StringUtils.isBlank(mesReportWork.getReportCode())){
// return error("[reportCode] is null");
// }
//
// return success(openService.reportWork(mesReportWork));
// }
/**获取料罐信息**/
@PostMapping("/getLGInfo")

@ -16,7 +16,7 @@ public interface OpenService {
WCSDTO requestDestinationStations(WCSDTO wcsdto);
R reportWork(MesReportWorkDTO mesReportWork);
// R reportWork(MesReportWorkDTO mesReportWork);
List<WCSDTO> getLGInfo(WCSDTO wcsDTO);
}

@ -153,86 +153,86 @@ public class OpenServiceImpl implements OpenService {
return dto;
}
@Override
public R reportWork(MesReportWorkDTO mesReportWork) {
DynamicDataSourceContextHolder.push("ds_"+mesReportWork.getFactoryCode());// 这是数据源的key
mesReportWork.setUploadStatus("1");//除了1报工成功的都需要报工
mesReportWork.setProdType("prod");
List<MesReportWorkDTO> reportWorks = openMapper.getReportWorkList(mesReportWork);
if(CollectionUtils.isEmpty(reportWorks)){
return R.fail("未查询到报工单");
}
MesReportWorkDTO 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.setLt_gs(ltgs);
List<SapRFW.lt_hw> lt_hwList =new ArrayList<>();
logger.info(work.getWorkorderCodeSap()+"母sap工单报工报工数量"+sapRFW.getGamng());
MesReportWorkConsumeDTO consumeqo = new MesReportWorkConsumeDTO();
consumeqo.setWorkorderCode(work.getWorkorderCode());
List<MesReportWorkConsumeDTO> consumes = openMapper.selectMesReportWorkConsumeList(consumeqo);
if(!CollectionUtils.isEmpty(consumes)){
for(MesReportWorkConsumeDTO consume:consumes){
logger.info(work.getWorkorderCodeSap()+"母sap工单报工【原料损耗】"+
consume.getMaterialCode()+"|"+consume.getQuantity());
SapRFW.lt_hw lthw = sapRFW.new lt_hw();//MES生产订单报工货物移动修改
lthw.setEntry_qnt(consume.getQuantity()+"");//数量
lthw.setMaterial(consume.getMaterialCode());//物料编码
lt_hwList.add(lthw);
}
}else{
logger.info(work.getWorkorderCodeSap()+"母sap工单报工工单"+work.getWorkorderCode()+"==mes_report_work_consume没有数据");
//return R.fail("mes_report_work_consume没有数据");
}
sapRFW.setLt_hwList(lt_hwList);
logger.info(work.getWorkorderCodeSap()+"母sap工单报工请求"+ JSONObject.toJSONString(sapRFW));
R r = remoteSapService.sapRFWOrder(sapRFW);
logger.info(work.getWorkorderCodeSap()+"母sap工单报工结果"+r.getCode()+","+r.getData()+","+r.getMsg());
//上传成功更改mes_report_work状态
if (r.getCode() == 200) {
work.setUploadStatus("1");
} else {
work.setUploadStatus("2");
work.setUploadMsg(r.getMsg());
}
work.setUploadTime(DateUtils.getNowDate());
openMapper.updateSyncSapStatus(work);
//工单完成数量>工单数量:关闭订单
MesReportWorkDTO proResult = openMapper.getProdResult(work);
//ProOrderWorkorderDTO topOrder = this.getTopOrder(work.getWorkorderCode());
if(proResult.getQuantityFeedback().compareTo(work.getQuantitySplit())>=0||"1".equals(work.getEndReport())//最终报工标识
){
logger.info("工单请求关闭调用remoteSapService.sapCloseOrder,参数:"+work.getWorkorderCodeSap());
//工单完成,关闭母工单
List<String> sapWorkOrders = openMapper.getSapWorkOrder(work.getWorkorderCode());//根据belong_work_order找到所有要关闭的虚拟工单
//关闭母子订单//订单的订单编码
SapCloseOrderQuery sapCloseOrderQuery = new SapCloseOrderQuery();
sapCloseOrderQuery.setLeadOrder(sapWorkOrders.get(0));
sapCloseOrderQuery.setOrder(sapWorkOrders.get(1));
R closeR = remoteSapService.sapCloseOrder(sapCloseOrderQuery);
logger.info(work.getWorkorderCodeSap()+"下发工单后关闭母子工单"+sapCloseOrderQuery.getLeadOrder()+":"+
sapCloseOrderQuery.getOrder()+":"+
closeR.getCode()+","+
closeR.getMsg()+","+
closeR.getData());
work.setStatus("w3");
work.setUpdateTime(DateUtils.getNowDate());
//pro_work_order status->w3报工--belong_work_order
openMapper.updateWorkOrderStatus(work);
logger.info("工单"+work.getWorkorderCodeSap()+"关闭成功");
}
return R.ok();
}
// @Override
// public R reportWork(MesReportWorkDTO mesReportWork) {
// DynamicDataSourceContextHolder.push("ds_"+mesReportWork.getFactoryCode());// 这是数据源的key
// logger.info("上位机开始报工:报工单"+mesReportWork.getReportCode());
// mesReportWork.setUploadStatus("1");//除了1报工成功的都需要报工
// mesReportWork.setProdType("prod");
// List<MesReportWorkDTO> reportWorks = openMapper.getReportWorkList(mesReportWork);
// if(CollectionUtils.isEmpty(reportWorks)){
// return R.fail("未查询到报工单");
// }
//
// MesReportWorkDTO work = reportWorks.get(0);
// SapRFW sapRFW = new SapRFW();
// sapRFW.setAufnr(work.getWorkorderCodeSap());//虚拟工单号
// sapRFW.setGamng(work.getQuantityFeedback().toString());//报工数量
// SapRFW.lt_gs ltgs = sapRFW.new lt_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.setLt_gs(ltgs);
// List<SapRFW.lt_hw> lt_hwList =new ArrayList<>();
// //logger.info(work.getWorkorderCodeSap()+"母sap工单报工报工数量"+sapRFW.getGamng());
// MesReportWorkConsumeDTO consumeqo = new MesReportWorkConsumeDTO();
// consumeqo.setWorkorderCode(work.getWorkorderCode());
// List<MesReportWorkConsumeDTO> consumes = openMapper.selectMesReportWorkConsumeList(consumeqo);
// if(!CollectionUtils.isEmpty(consumes)){
// for(MesReportWorkConsumeDTO consume:consumes){
// logger.info(work.getWorkorderCodeSap()+"母sap工单报工【原料损耗】"+
// consume.getMaterialCode()+"|"+consume.getQuantity());
// SapRFW.lt_hw lthw = sapRFW.new lt_hw();//MES生产订单报工货物移动修改
// lthw.setEntry_qnt(consume.getQuantity()+"");//数量
// lthw.setMaterial(consume.getMaterialCode());//物料编码
// lt_hwList.add(lthw);
// }
// }else{
// logger.info(work.getWorkorderCodeSap()+"母sap工单报工工单"+work.getWorkorderCode()+"==mes_report_work_consume没有数据");
// //return R.fail("mes_report_work_consume没有数据");
// }
// sapRFW.setLt_hwList(lt_hwList);
// logger.info(work.getWorkorderCodeSap()+"母sap工单报工请求参数"+ JSONObject.toJSONString(sapRFW));
// R r = remoteSapService.sapRFWOrder(sapRFW);
// logger.info(work.getWorkorderCodeSap()+"母sap工单报工结果"+r.getCode()+","+r.getData()+","+r.getMsg());
// //上传成功更改mes_report_work状态
// if (r.getCode() == 200) {
// work.setUploadStatus("1");
// } else {
// work.setUploadStatus("2");
// work.setUploadMsg(r.getMsg());
// }
// work.setUploadTime(DateUtils.getNowDate());
// openMapper.updateSyncSapStatus(work);
// //工单完成数量>工单数量:关闭订单
// MesReportWorkDTO proResult = openMapper.getProdResult(work);
// //ProOrderWorkorderDTO topOrder = this.getTopOrder(work.getWorkorderCode());
// if(proResult.getQuantityFeedback().compareTo(work.getQuantitySplit())>=0||"1".equals(work.getEndReport())//最终报工标识
// ){
// logger.info("工单请求关闭调用remoteSapService.sapCloseOrder,参数:"+work.getWorkorderCodeSap());
// //工单完成,关闭母工单
// List<String> sapWorkOrders = openMapper.getSapWorkOrder(work.getWorkorderCode());//根据belong_work_order找到所有要关闭的虚拟工单
// //关闭母子订单//订单的订单编码
// SapCloseOrderQuery sapCloseOrderQuery = new SapCloseOrderQuery();
// sapCloseOrderQuery.setLeadOrder(sapWorkOrders.get(0));
// sapCloseOrderQuery.setOrder(sapWorkOrders.get(1));
// R closeR = remoteSapService.sapCloseOrder(sapCloseOrderQuery);
// logger.info(work.getWorkorderCodeSap()+"下发工单后关闭母子工单"+sapCloseOrderQuery.getLeadOrder()+":"+
// sapCloseOrderQuery.getOrder()+":"+
// closeR.getCode()+","+
// closeR.getMsg()+","+
// closeR.getData());
// work.setStatus("w3");
// work.setUpdateTime(DateUtils.getNowDate());
// //pro_work_order status->w3报工--belong_work_order
// openMapper.updateWorkOrderStatus(work);
// logger.info("工单"+work.getWorkorderCodeSap()+"关闭成功");
// }
// return R.ok();
// }
@Override
public List<WCSDTO> getLGInfo(WCSDTO wcsDTO) {

@ -11,6 +11,7 @@ import java.util.stream.Collectors;
import com.alibaba.csp.sentinel.util.StringUtil;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.op.common.core.utils.ServletUtils;
import com.op.plan.domain.vo.CascaderDTO;
import com.baomidou.dynamic.datasource.annotation.DS;
@ -93,8 +94,8 @@ public class ProOrderServiceImpl implements IProOrderService {
* @return
*/
@Override
@Transactional
@DS("#header.poolName")
@Transactional(rollbackFor = Exception.class)
public AjaxResult subSplitOrder(SplitOrderDTO splitOrderDTO) {
boolean checkout = true;
// 校验批次编号是否存在(重复问题)
@ -294,8 +295,12 @@ public class ProOrderServiceImpl implements IProOrderService {
R rSapChange = remoteSapService.shopUpdateSync(sapChange);//sap只能同步指定日期的数据
logger.info("母订单"+proOrder.getOrderCode()+
"订单数量变更结果:"+rSapChange.getCode()+","+rSapChange.getMsg());
}else{
workOrder.setProductCode(splitOrderDTO.getProduct().getChildren().get(0).getProdCode());
workOrder.setProductName(splitOrderDTO.getProduct().getChildren().get(0).getProdDesc());
}
workOrder.setBelongWorkOrder(belongWorkOrder);
workOrder.setProdType("LJ01");
// 将工单信息更新至数据库
proOrderWorkorderMapper.insertProOrderWorkorder(workOrder);
@ -437,15 +442,15 @@ public class ProOrderServiceImpl implements IProOrderService {
sapqo.setErdat(maxCreateTime.getCreateTimeStr());//S_ERDAT(创建日期) 例如20230923
}
//添加调用sap日志
SysSapLog sysSapLog = new SysSapLog();
sysSapLog.setId(IdUtils.fastSimpleUUID());
sysSapLog.setMesssge(sapqo.toString());
sysSapLog.setMethod("syncSAP");
sysSapLog.setReqcode("请求");
sysSapLog.setCreateTime(DateUtils.getNowDate());
proOrderMapper.addSapLog(sysSapLog);
// //添加调用sap日志
// SysSapLog sysSapLog = new SysSapLog();
// sysSapLog.setId(IdUtils.fastSimpleUUID());
// sysSapLog.setMesssge(sapqo.toString());
// sysSapLog.setMethod("syncSAP");
// sysSapLog.setReqcode("请求");
// sysSapLog.setCreateTime(DateUtils.getNowDate());
// proOrderMapper.addSapLog(sysSapLog);
logger.info("手动订单同步:【参数】"+ JSONObject.toJSONString(sapqo));
//取>=20230923的sap数据
R<List<SapProOrder>> rSapProOrder = remoteSapService.shopOrderSync(sapqo);//sap只能同步指定日期的数据
@ -461,12 +466,14 @@ public class ProOrderServiceImpl implements IProOrderService {
String failOrder = "";
ProOrder proOrder = null;
for (SapProOrder sapProOrder:newOrders) {
//工单生产后整个订单就被锁定//订单存在就更新,不存在就插入
proOrder = new ProOrder();
BeanUtils.copyProperties(sapProOrder, proOrder);
proOrder.setSyncUser(syncUser);
proOrder.setProdType("prod");//只有白坯有导入
failOrder += syncFunc(proOrder);
if("LJ88".equals(sapProOrder.getOrderType())){
//工单生产后整个订单就被锁定//订单存在就更新,不存在就插入
proOrder = new ProOrder();
BeanUtils.copyProperties(sapProOrder, proOrder);
proOrder.setSyncUser(syncUser);
proOrder.setProdType("prod");//只有白坯有导入
failOrder += syncFunc(proOrder);
}
}
return failOrder;
}

@ -1,6 +1,7 @@
package com.op.plan.service.impl;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
import com.op.common.core.context.SecurityContextHolder;
@ -299,26 +300,18 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService {
sapList = new ArrayList<>();
SapCreateOrder sap = new SapCreateOrder();
sap.setWerks(whiteOrder.getFactoryCode());//工厂编码
sap.setAufpar(whiteOrder.getProdType());//订单类型
sap.setAufpar("LJ01");//订单类型
sap.setMatnr(whiteOrder.getProductCode());//物料编号
sap.setQuantity(whiteOrder.getQuantitySplit() + "");//数量
sap.setDates(DateUtils.parseDateToStr("yyyy-MM-dd", whiteOrder.getProductDate()));//开始时间
sap.setDatee(DateUtils.parseDateToStr("yyyy-MM-dd", whiteOrder.getProductDate()));//完成时间
sapList.add(sap);
//添加调用sap日志
// SysSapLog sysSapLog = new SysSapLog();
// sysSapLog.setId(IdUtils.fastSimpleUUID());
// sysSapLog.setMesssge(Arrays.asList(sapList).toString());
// sysSapLog.setMethod("downProOrderWorkorderByWorkorderIds");
// sysSapLog.setReqcode("请求");
// sysSapLog.setCreateTime(DateUtils.getNowDate());
// proOrderMapper.addSapLog(sysSapLog);
logger.info(whiteOrder.getWorkorderCode()+"sap工单回传sap虚拟工单号开始"+Arrays.asList(sapList).toString());
logger.info(whiteOrder.getWorkorderCode()+"sap工单回传sap工单号开始"+ JSONObject.toJSONString(sapList));
R<List<Map<String, String>>> r = remoteSapService.SapCreateOrder(sapList);
logger.info("sap工单回传" + r.getMsg());
if (500 == r.getCode()) {
logger.error("sap工单回传" + r.getMsg());
logger.error("sap工单回传(sap订单创建)" + r.getMsg());
return 0;
}
List<Map<String, String>> returnMaps = r.getData();
@ -329,7 +322,7 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService {
}
Date updateTime = DateUtils.getNowDate();
if (!CollectionUtils.isEmpty(returnCodes)) {
logger.info("sap工单回传sap虚拟工单号结束:" + StringUtils.join(returnCodes, ","));
logger.info("sap工单回传sap工单号结束:" + StringUtils.join(returnCodes, ","));
//按照母子顺序进行更新
for (int m=0;m<returnCodes.size();m++) {
ProOrderWorkorder oworkSap = new ProOrderWorkorder();
@ -381,22 +374,13 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService {
Date createDate = DateUtils.getNowDate();
for (int m = 0;m<sapWorkOrders.size();m++) {
logger.info("获取sap领料单" + sapWorkOrders.get(m)+"开始");
// //添加调用sap日志
// SysSapLog sysSapLog = new SysSapLog();
// sysSapLog.setId(IdUtils.fastSimpleUUID());
// sysSapLog.setMesssge(sapWorkOrder);
// sysSapLog.setMethod("getMesPrepare");
// sysSapLog.setReqcode("请求");
// sysSapLog.setCreateTime(DateUtils.getNowDate());
// proOrderMapper.addSapLog(sysSapLog);
List<SapMaterialPreparation> sapMaterialPreparationList = remoteSapService.materialPreparation(sapWorkOrders.get(m)).getData();
if (CollectionUtils.isEmpty(sapMaterialPreparationList)) {
System.out.println("sap无领料单数据");
}
//取出各领料单
String orderCode = sapWorkOrders.get(m);
logger.info("sap虚拟工单码:"+orderCode);
logger.info("sap工单码"+orderCode);
/**mes_prepare**/
String mesPrepareId = IdUtils.fastSimpleUUID();
MesPrepareDTO mesPrepare0 = new MesPrepareDTO();
@ -436,7 +420,10 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService {
sap.getMEINS()+","+sap.getRGEKZ()+","+sap.getDBSKZ()
);
}
proOrderWorkorderMapper.insertMesPrepareDetails(details);
if(!CollectionUtils.isEmpty(details)){
proOrderWorkorderMapper.insertMesPrepareDetails(details);
}
logger.info("获取sap领料单" + sapWorkOrders.get(m)+"结束");
}
}

@ -63,9 +63,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="prodSpc != null and prodSpc != ''"> and prod_spc = #{prodSpc}</if>
<if test="planDateStart != null "> and CONVERT(varchar(10),plan_pro_date, 120) >= '${planDateStart}'</if>
<if test="planDateEnd != null "> and '${planDateEnd}%' >= CONVERT(varchar(10),plan_pro_date, 120)</if>
and prod_type != 'white'
and del_flag = '0'
</where>
and prod_type != 'white'
and del_flag = '0'
ORDER BY plan_pro_date DESC
</select>

@ -457,9 +457,9 @@
</insert>
<insert id="insertMesPrepareDetails">
INSERT INTO mes_prepare_detail (
record_id,prepare_id,material_code,material_name,unit,
quantity,create_by,create_time,factory_code,status,
locator,need_date,recoil,fund_quanlity,buy_flag,parent_work_order
record_id,prepare_id,material_code,material_name,unit,
quantity,create_by,create_time,factory_code,status,
locator,need_date,recoil,fund_quanlity,buy_flag,parent_work_order
)VALUES
<foreach collection="list" item="d" index="index" separator=",">
(

@ -100,9 +100,10 @@ public class QcCheckTypeProjectController extends BaseController {
/**
*
*/
@Log(title = "物料检验项目维护", businessType = BusinessType.UPDATE)
@Log(title = "修改数据状态", businessType = BusinessType.UPDATE)
@PutMapping("/changeStatus")
public AjaxResult changeStatus(@RequestBody QcCheckTypeProject qcCheckTypeProject) {
return toAjax(qcCheckTypeProjectService.changeStatus(qcCheckTypeProject));
}
}

@ -18,6 +18,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.List;
/**
@ -46,6 +48,9 @@ public class QuaController extends BaseController {
@Autowired
private IQcCheckTaskIncomeService qcCheckTaskIncomeService;
@Autowired
private IQcCheckUnqualifiedService qcCheckUnqualifiedService;
@PostMapping("/saveQcProCheck")
public R<Boolean> saveQcProCheck(@RequestBody QcProCheck qcProCheck) {
DynamicDataSourceContextHolder.push("ds_"+qcProCheck.getFactoryCode());
@ -244,4 +249,13 @@ public class QuaController extends BaseController {
List<QcCheckTypeProject> list = qcMaterialGroupService.getCheckTypeProjectList(qcCheckTypeProject);
return getDataTable(list);
}
@GetMapping("/getUnqualifiedList")
public TableDataInfo getUnqualifiedList(QcCheckUnqualified qcCheckUnqualified) {
DynamicDataSourceContextHolder.push("ds_"+qcCheckUnqualified.getFactoryCode());
startPage();
qcCheckUnqualified.setDelFlag("0");
List<QcCheckUnqualified> list = qcCheckUnqualifiedService.selectQcCheckUnqualifiedList(qcCheckUnqualified);
return getDataTable(list);
}
}

@ -53,11 +53,31 @@ public class QcCheckProject extends BaseEntity {
@Excel(name = "工厂编码")
private String factoryCode;
private String samplePlan;
private String judge;
public String getJudge() {
return judge;
}
public void setJudge(String judge) {
this.judge = judge;
}
/** 删除标识1删除0正常 */
private String delFlag;
private Long serialNumber;
public String getSamplePlan() {
return samplePlan;
}
public void setSamplePlan(String samplePlan) {
this.samplePlan = samplePlan;
}
public void setId(String id) {
this.id = id;
}

@ -78,14 +78,14 @@ public class QcCheckTypeProject extends BaseEntity {
private String checkTool;
private String checkMode;
private String uint;
private String unit;
public String getUint() {
return uint;
public String getUnit() {
return unit;
}
public void setUint(String uint) {
this.uint = uint;
public void setUnit(String unit) {
this.unit = unit;
}
public String getCheckTool() {

@ -63,4 +63,12 @@ public interface QcCheckUnqualifiedMapper {
public int deleteQcCheckUnqualifiedByIds(String[] ids);
public List<QcDefectType> getDefectList(QcDefectType qcDefectType);
/**
*
*
* @param qcCheckUnqualified
* @return
*/
public List<QcCheckUnqualified> getUnqualifiedList(QcCheckUnqualified qcCheckUnqualified);
}

@ -9,6 +9,7 @@ import com.op.common.core.utils.DateUtils;
import com.op.common.core.utils.uuid.IdUtils;
import com.op.common.security.utils.SecurityUtils;
import com.op.system.api.domain.SysDictData;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.op.quality.mapper.QcCheckTypeProjectMapper;
@ -58,7 +59,10 @@ public class QcCheckTypeProjectServiceImpl implements IQcCheckTypeProjectService
Map<String,SysDictData> dictMap = qcCheckTypeProjectMapper.getDictMap(sData);
if(dictMap != null){
for(QcCheckTypeProject dto:dtos){
dto.setUint(dictMap.get(dto.getUint()).getDictLabel());
if(StringUtils.isNotBlank(dto.getUnit())){
dto.setUnit(dictMap.get(dto.getUnit()).getDictLabel());
}
}
}
return dtos;

@ -194,7 +194,7 @@ public class QcMaterialGroupServiceImpl implements IQcMaterialGroupService {
Map<String,SysDictData> dictMap = qcCheckTypeProjectMapper.getDictMap(sData);
if(dictMap != null){
for(QcCheckTypeProject dto:dtos){
dto.setUint(dictMap.get(dto.getUint()).getDictLabel());
dto.setUnit(dictMap.get(dto.getUnit()).getDictLabel());
}
}
return dtos;

@ -29,6 +29,7 @@ public class QcUserMaterialServiceImpl implements IQcUserMaterialService {
@Autowired
private QcUserMaterialMapper qcUserMaterialMapper;
@Override
@DS("master")
public List<QcUserMaterial> selectUserList(QcUserMaterial qcUserMaterial) {
return qcUserMaterialMapper.selectUserList( qcUserMaterial);
}

@ -20,10 +20,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="updateTime" column="update_time" />
<result property="factoryCode" column="factory_code" />
<result property="delFlag" column="del_flag" />
<result property="samplePlan" column="sample_plan" />
<result property="judge" column="judge" />
</resultMap>
<sql id="selectQcCheckProjectVo">
select id, order_num, rule_name, property_code, check_mode, check_tool, unit_code, check_standard, attr1, create_by, create_time, update_by, update_time, factory_code, del_flag from qc_check_project
select id, order_num, rule_name, property_code, check_mode, check_tool, unit_code, check_standard,
attr1, create_by, create_time, update_by, update_time, factory_code, del_flag,sample_plan,
judge
from qc_check_project
</sql>
<select id="selectQcCheckProjectList" parameterType="QcCheckProject" resultMap="QcCheckProjectResult">
@ -38,6 +44,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="checkStandard != null and checkStandard != ''"> and check_standard = #{checkStandard}</if>
<if test="attr1 != null and attr1 != ''"> and attr1 = #{attr1}</if>
<if test="factoryCode != null and factoryCode != ''"> and factory_code = #{factoryCode}</if>
<if test="judge != null and judge != ''"> and judge = #{judge}</if>
</where>
order by create_time
</select>
@ -65,6 +72,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="updateTime != null">update_time,</if>
<if test="factoryCode != null and factoryCode != ''">factory_code,</if>
<if test="delFlag != null">del_flag,</if>
<if test="samplePlan != null">sample_plan,</if>
<if test="judge != null">judge,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">#{id},</if>
@ -82,6 +91,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="updateTime != null">#{updateTime},</if>
<if test="factoryCode != null and factoryCode != ''">#{factoryCode},</if>
<if test="delFlag != null">#{delFlag},</if>
<if test="samplePlan != null">#{samplePlan},</if>
<if test="judge != null">#{judge},</if>
</trim>
</insert>
@ -102,6 +113,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="factoryCode != null and factoryCode != ''">factory_code = #{factoryCode},</if>
<if test="delFlag != null">del_flag = #{delFlag},</if>
<if test="samplePlan != null">sample_plan = #{samplePlan},</if>
<if test="judge != null">judge = #{judge},</if>
</trim>
where id = #{id}
</update>

@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.op.quality.mapper.QcCheckTypeProjectMapper">
<resultMap type="QcCheckTypeProject" id="QcCheckTypeProjectResult">
<resultMap type="com.op.quality.domain.QcCheckTypeProject" id="QcCheckTypeProjectResult">
<result property="id" column="id" />
<result property="projectId" column="project_id" />
<result property="typeId" column="type_id" />
@ -23,11 +23,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="groupId" column="group_id" />
<result property="materialCode" column="material_code" />
<result property="sampleNum" column="sample_num" />
<result property="unit" column="unit" />
<result property="propertyCode" column="property_code" />
<result property="ruleName" column="rule_name" />
<result property="sort" column="sort" />
</resultMap>
<sql id="selectQcCheckTypeProjectVo">
select id, project_id, type_id, standard_value, upper_diff, down_diff, sample, status, attr1,
create_by, create_time, update_by, update_time, factory_code, del_flag, group_id, material_code, sample_num
create_by, create_time, update_by, update_time, factory_code, del_flag, group_id,
material_code, sample_num,unit,sort
from qc_check_type_project
</sql>
@ -35,8 +40,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
SELECT
ctp.id,
ctp.project_id,
cp.rule_name ruleName,
cp.property_code propertyCode,
cp.rule_name,
cp.property_code,
cp.unit_code unit,
ctp.type_id,
ctp.standard_value,
ctp.upper_diff,
@ -51,7 +57,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
ctp.del_flag,
ctp.group_id,
ctp.material_code,
ctp.sample_num
ctp.sample_num,
ctp.sort
FROM qc_check_type_project ctp
LEFT JOIN qc_check_project cp ON ctp.project_id = cp.id AND cp.del_flag = '0'
<where>
@ -68,14 +75,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="sampleNum != null and sampleNum != ''"> and ctp.sample_num = #{sampleNum}</if>
<if test="ruleName != null and ruleName != ''"> and cp.rule_name like concat('%', #{ruleName}, '%')</if>
</where>
order by ctp.sort
</select>
<select id="selectQcCheckTypeProjectById" parameterType="String" resultMap="QcCheckTypeProjectResult">
SELECT
ctp.id,
ctp.project_id,
cp.rule_name ruleName,
cp.property_code propertyCode,
cp.rule_name,
cp.property_code,
ctp.type_id,
ctp.standard_value,
ctp.upper_diff,
@ -90,7 +98,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
ctp.del_flag,
ctp.group_id,
ctp.material_code,
ctp.sample_num
ctp.sample_num,
ctp.sort
FROM qc_check_type_project ctp
LEFT JOIN qc_check_project cp ON ctp.project_id = cp.id AND cp.del_flag = '0'
WHERE ctp.del_flag ='0' AND ctp.id = #{id}
@ -192,7 +201,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="groupId != null">group_id,</if>
<if test="materialCode != null">material_code,</if>
<if test="sampleNum != null">sample_num,</if>
<if test="projectNo != null">project_no</if>
<if test="projectNo != null">project_no,</if>
<if test="unit != null">unit,</if>
<if test="propertyCode != null">property_code,</if>
<if test="sort != null">sort,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">#{id},</if>
@ -213,7 +225,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="groupId != null">#{groupId},</if>
<if test="materialCode != null">#{materialCode},</if>
<if test="sampleNum != null">#{sampleNum},</if>
<if test="projectNo != null">#{projectNo}</if>
<if test="projectNo != null">#{projectNo},</if>
<if test="unit != null">#{unit},</if>
<if test="propertyCode != null">#{propertyCode},</if>
<if test="sort != null">#{sort},</if>
</trim>
</insert>
@ -238,6 +253,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="materialCode != null">material_code = #{materialCode},</if>
<if test="sampleNum != null">sample_num = #{sampleNum},</if>
<if test="projectNo != null">project_no = #{projectNo}</if>
<if test="unit != null">unit = #{unit},</if>
<if test="propertyCode != null">property_code = #{propertyCode},</if>
<if test="sort != null">sort = #{sort},</if>
</trim>
where id = #{id}
</update>

@ -73,6 +73,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
from qc_defect_type
where defect_type = #{defectType} and del_flag='0'
</select>
<select id="getUnqualifiedList" resultType="com.op.quality.domain.QcCheckUnqualified">
select qcu.id,qcu.task_id taskId,qcu.status,qcu.next_node_code nextNodeCode,qcu.next_node_name nextNodeName,qcu.remark,
qcu.create_time createTime,
qct.check_type checkType,qtn.check_name checkName,qct.check_no checkNo,qct.income_batch_no incomeBatchNo,qct.order_no orderNo,
qct.material_code materialCode,qct.material_name materialName,qct.quality,qct.unit,qct.supplier_code supplierCode,
qct.supplier_name supplierName,qct.income_time incomeTime,qct.check_loc checkLoc,qct.check_status checkStatus,qct.check_man_code checkManCode,
qct.check_man_name checkManName,qct.check_time checkTime,qct.check_result checkResult
from qc_check_unqualified qcu
left join qc_check_task qct on qcu.task_id = qct.record_id
left join qc_check_type qtn on qtn.id = qct.check_type
where qcu.id = #{id}
</select>
<insert id="insertQcCheckUnqualified" parameterType="QcCheckUnqualified">
insert into qc_check_unqualified

@ -377,6 +377,8 @@ public class SapController extends BaseController {
}
@PostMapping("/sapMaterialPosting")
@Log(title = "订单物料领料过账、原材料补料、订单物料退料过账接口MB1A", businessType = BusinessType.SAP)
public R sapMaterialPosting(@RequestBody SapMaterialPosting sapMaterialPosting){

@ -8,11 +8,125 @@ public class SapPurchaseOrderQuery {
* S_MATNR
* S_PWERK
*/
/**
* EBELN
* EBELP
* MATNR
* MAKTX
* MENGE
* MEINS
* ZMENGE
* ZMEINS
* LIFNR
* WERKS
* LGORT
* EINDT
* ELIKZ
* BEIZHU
*/
private String ebeln;
private String ebelp;
private String matnr;
private String pwerk;
private String maktx;
private String menge;
private String meins;
private String zmenge;
private String zmeins;
private String lifnr;
private String werks;
private String lgort;
private String eindt;
private String elikz;
private String beizhu;
public String getMaktx() {
return maktx;
}
public void setMaktx(String maktx) {
this.maktx = maktx;
}
public String getMenge() {
return menge;
}
public void setMenge(String menge) {
this.menge = menge;
}
public String getMeins() {
return meins;
}
public void setMeins(String meins) {
this.meins = meins;
}
public String getZmenge() {
return zmenge;
}
public void setZmenge(String zmenge) {
this.zmenge = zmenge;
}
public String getZmeins() {
return zmeins;
}
public void setZmeins(String zmeins) {
this.zmeins = zmeins;
}
public String getLifnr() {
return lifnr;
}
public void setLifnr(String lifnr) {
this.lifnr = lifnr;
}
public String getWerks() {
return werks;
}
public void setWerks(String werks) {
this.werks = werks;
}
public String getLgort() {
return lgort;
}
public void setLgort(String lgort) {
this.lgort = lgort;
}
public String getEindt() {
return eindt;
}
public void setEindt(String eindt) {
this.eindt = eindt;
}
public String getElikz() {
return elikz;
}
public void setElikz(String elikz) {
this.elikz = elikz;
}
public String getBeizhu() {
return beizhu;
}
public void setBeizhu(String beizhu) {
this.beizhu = beizhu;
}
public String getEbeln() {
return ebeln;

@ -1,5 +1,6 @@
package com.op.sap.service.impl;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
import com.op.common.core.constant.Constants;
import com.op.common.core.domain.R;
@ -54,6 +55,7 @@ public class SapItemSyncImpl implements SapItemSyncService {
// 获取调用 RFC 函数对象
//获取连接
// JCoDestination dest = SAPConnUtils.connect();
log.info("物料基础数据同步输入参数---------"+JSONObject.toJSONString(sapItemQuery));
JCoRepository repository = dest.getRepository();
JCoFunction func = repository.getFunction("ZMMR_MES_MAT_GET");
@ -104,7 +106,7 @@ public class SapItemSyncImpl implements SapItemSyncService {
// 获取 内表 - ZMES_PRO
JCoTable maraTable = func.getTableParameterList().getTable("LT_MARA");
JCoRecordMetaData metaData = maraTable.getRecordMetaData();
System.out.println("###" + metaData.toString());
// System.out.println("###" + metaData.toString());
// 加载数据源
DynamicDataSourceContextHolder.push("ds_1000");
List<SapBaseProduct> sapBaseProductList=new ArrayList<>();
@ -143,35 +145,64 @@ public class SapItemSyncImpl implements SapItemSyncService {
String MVGR5_NM = maraTable.getString("MVGR5_NM");
String LAEDA = maraTable.getString("LAEDA");
String ERSDA = maraTable.getString("LAEDA");
System.out.println(
log.info("物料基础数据同步数据输出----"+
"物料号:" + MATNR+
"物料描述(短文本):" + MAKTX+
"国际文件号(EAN/UPC)" + EAN11+
"物料类型:" + MTART+
"物料类型描述:" + MTBEZ+
"物料组:" + MATKL+
"物料组描述:" + WGBEZ+
"毛重:" + BRGEW+
"净重:" + NTGEW+
"体积:" + VOLUM+
"体积单位:" + VOLEH+
"基本计量单位:" + MEINS+
"帐面库存单位的可选计量单位 " + MEINH+
"基本计量单位转换分子:" + UMREZ+
"转换为基本计量单位的分母:" + UMREN+
"在客户级标记要删除的物料:" + LVORM+
"数量:" + MENGE+
"总货架寿命 " + MHDHB+
"产品组:" + SPART+
"产品组描述:" + SPART_NM+
"物料组1" + MVGR1+
"物料组1描述" + MVGR1_NM+
"物料组2" + MVGR2+
"物料组2描述" + MVGR2_NM+
" 物料组3" + MVGR3+
" 物料组描述 " + MVGR3_NM+
"创建日期:"+ERSDA+
"物料描述(短文本):" + MAKTX+
"国际文件号(EAN/UPC)" + EAN11+
"物料类型:" + MTART+
"物料类型描述:" + MTBEZ+
"物料组:" + MATKL+
"物料组描述:" + WGBEZ+
"毛重:" + BRGEW+
"净重:" + NTGEW+
"体积:" + VOLUM+
"体积单位:" + VOLEH+
"基本计量单位:" + MEINS+
"帐面库存单位的可选计量单位 " + MEINH+
"基本计量单位转换分子:" + UMREZ+
"转换为基本计量单位的分母:" + UMREN+
"在客户级标记要删除的物料:" + LVORM+
"数量:" + MENGE+
"总货架寿命 " + MHDHB+
"产品组:" + SPART+
"产品组描述:" + SPART_NM+
"物料组1" + MVGR1+
"物料组1描述" + MVGR1_NM+
"物料组2" + MVGR2+
"物料组2描述" + MVGR2_NM+
" 物料组3" + MVGR3+
" 物料组描述 " + MVGR3_NM+
"创建日期:"+ERSDA+
"上次更改日期:"+LAEDA);
// System.out.println(
// "物料号:" + MATNR+
// "物料描述(短文本):" + MAKTX+
// "国际文件号(EAN/UPC)" + EAN11+
// "物料类型:" + MTART+
// "物料类型描述:" + MTBEZ+
// "物料组:" + MATKL+
// "物料组描述:" + WGBEZ+
// "毛重:" + BRGEW+
// "净重:" + NTGEW+
// "体积:" + VOLUM+
// "体积单位:" + VOLEH+
// "基本计量单位:" + MEINS+
// "帐面库存单位的可选计量单位 " + MEINH+
// "基本计量单位转换分子:" + UMREZ+
// "转换为基本计量单位的分母:" + UMREN+
// "在客户级标记要删除的物料:" + LVORM+
// "数量:" + MENGE+
// "总货架寿命 " + MHDHB+
// "产品组:" + SPART+
// "产品组描述:" + SPART_NM+
// "物料组1" + MVGR1+
// "物料组1描述" + MVGR1_NM+
// "物料组2" + MVGR2+
// "物料组2描述" + MVGR2_NM+
// " 物料组3" + MVGR3+
// " 物料组描述 " + MVGR3_NM+
// "创建日期:"+ERSDA+
// "上次更改日期:"+LAEDA);
baseProduct.setProductCode(MATNR);
baseProduct.setProductDescZh(MAKTX);
baseProduct.setProductGroup(MATKL);
@ -314,7 +345,7 @@ public class SapItemSyncImpl implements SapItemSyncService {
// int failureNum = 0;
// StringBuilder successMsg = new StringBuilder();
// StringBuilder failureMsg = new StringBuilder();
// log.info("反冲物料开始过账----------------------------------------");
log.info("反冲物料开始过账----------------------------------------");
// for (int i = 0; i < sapBackflushMPQueryList.size(); i++) {
// L_ITEM.setRow(i);
@ -340,6 +371,26 @@ public class SapItemSyncImpl implements SapItemSyncService {
L_ITEM.setValue("MOVE_BATCH",sfp.getMove_batch());
}
func.execute(dest);
JCoTable maraTable = func.getTableParameterList().getTable("LT_RETURN");
JCoRecordMetaData metaData = maraTable.getRecordMetaData();
System.out.println("###" + metaData.toString());
for (int i = 0; i < maraTable.getNumRows(); i++) {
maraTable.setRow(i);
String TYPE = maraTable.getString("TYPE");
System.out.println(TYPE);
}
String L_MSG= func.getExportParameterList().getString("L_MSG");
String RETCODE= func.getExportParameterList().getString("RETCODE");
String MATERIALDOCUMENT= func.getExportParameterList().getString("MATERIALDOCUMENT");
String MATDOCUMENTYEAR= func.getExportParameterList().getString("MATDOCUMENTYEAR");
System.out.println(L_MSG);
System.out.println(RETCODE);
System.out.println(MATERIALDOCUMENT);
System.out.println(MATDOCUMENTYEAR);
return R.ok();
}catch (Exception e){

@ -8,6 +8,8 @@ import com.op.sap.service.SapMaterialPreparationService;
import com.op.sap.util.SAPConnUtils;
import com.op.system.api.domain.sap.SapMaterialPreparation;
import com.sap.conn.jco.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
@ -18,7 +20,7 @@ import java.util.List;
@Component
@Service
public class SapMaterialPreparationServiceImpl implements SapMaterialPreparationService {
private static final Logger log = LoggerFactory.getLogger(SapMaterialPreparationServiceImpl.class);
@Autowired
SapMaterialPreparationMapper sapMaterialPreparationMapper;
@ -33,6 +35,7 @@ public class SapMaterialPreparationServiceImpl implements SapMaterialPreparation
// 获取调用 RFC 函数对象
//获取连接
// JCoDestination dest = SAPConnUtils.connect();
log.info("备料单入参-----"+shopOrder);
JCoRepository repository = dest.getRepository();
JCoFunction func = repository.getFunction("ZPPR_MES_MATERIAL_PREPARATION");
if (func == null) {
@ -48,7 +51,7 @@ public class SapMaterialPreparationServiceImpl implements SapMaterialPreparation
// 获取 内表 - ZMES_PRO
JCoTable maraTable = func.getTableParameterList().getTable("LT_MAPRE");
JCoRecordMetaData metaData = maraTable.getRecordMetaData();
System.out.println("###" + metaData.toString());
//System.out.println("###" + metaData.toString());
List<SapMaterialPreparation> sapMaterialPreparationList =new ArrayList<>();
// 循环输出 Table 数据
@ -66,7 +69,7 @@ public class SapMaterialPreparationServiceImpl implements SapMaterialPreparation
String MEINS = maraTable.getString("MEINS");
String RGEKZ = maraTable.getString("RGEKZ");
String DBSKZ = maraTable.getString("DBSKZ");
System.out.println("订单号:" + AUFNR
log.info( "备料单输出------"+ "订单号:" + AUFNR
+ " - 预留/相关需求的项目编号:" + RSPOS +
" - 物料号:" + MATNR +
" - 物料描述(短文本):" + MAKTX +
@ -78,6 +81,18 @@ public class SapMaterialPreparationServiceImpl implements SapMaterialPreparation
" - 基本计量单位:" + MEINS +
" - 标识:反冲:" + RGEKZ +
" - 直接采购标识:" + DBSKZ );
// System.out.println("订单号:" + AUFNR
// + " - 预留/相关需求的项目编号:" + RSPOS +
// " - 物料号:" + MATNR +
// " - 物料描述(短文本):" + MAKTX +
// " - 工厂:" + WERKS +
// " - 库存地点:" + LGORT +
// " - 组件的需求日期 " + BDTER +
// " - 需求量:" + BDMNG +
// " - 欠料数量:" + ZQLSL +
// " - 基本计量单位:" + MEINS +
// " - 标识:反冲:" + RGEKZ +
// " - 直接采购标识:" + DBSKZ );
SapMaterialPreparation sapMaterialPreparation = new SapMaterialPreparation();
sapMaterialPreparation.setAUFNR(AUFNR);
sapMaterialPreparation.setBDMNG(BDMNG);
@ -93,8 +108,10 @@ public class SapMaterialPreparationServiceImpl implements SapMaterialPreparation
sapMaterialPreparation.setZQLSL(ZQLSL);
sapMaterialPreparationList.add(sapMaterialPreparation);
}
return R.ok(sapMaterialPreparationList);
String MSG= func.getExportParameterList().getString("MSG");
return R.ok(sapMaterialPreparationList,MSG);
} catch (Exception e) {
log.error("同步领料单报错-----"+e.getMessage());
return R.fail(e.getMessage());
}
}

@ -18,6 +18,8 @@ import com.op.system.api.domain.sap.SapShopOrderQuery;
import com.op.system.api.model.SapProOrder;
import com.sap.conn.jco.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
@ -31,7 +33,7 @@ import java.util.Map;
@Component
@Service
public class SapOrderServiceImpl implements SapOrderService {
private static final Logger log = LoggerFactory.getLogger(SapOrderServiceImpl.class);
private static final String END_DATE="99991231";
@Autowired
private JCoDestination dest;
@ -43,6 +45,7 @@ public class SapOrderServiceImpl implements SapOrderService {
// 获取调用 RFC 函数对象
//获取连接
//JCoDestination dest = SAPConnUtils.connect();
log.info("订单同步入参-----"+sapShopOrderQuery.toString());
JCoRepository repository = dest.getRepository();
JCoFunction func = repository.getFunction("ZPPR_MES_PRO_TO");
if (func == null) {
@ -51,8 +54,8 @@ public class SapOrderServiceImpl implements SapOrderService {
JCoParameterList jCoParameterList= func.getTableParameterList();
JCoParameterList js= func.getExportParameterList();
System.out.println(js);
System.out.println(jCoParameterList);
// System.out.println(js);
// System.out.println(jCoParameterList);
// 配置传入参数
// S_WERKS(工厂) S_AUFNR订单号 S_MATNR物料号 S_ERDAT(创建日期) 例如20230923
@ -95,7 +98,7 @@ public class SapOrderServiceImpl implements SapOrderService {
// 获取 内表 - ZMES_PRO
JCoTable maraTable = func.getTableParameterList().getTable("ZMES_PRO");
JCoRecordMetaData metaData = maraTable.getRecordMetaData();
System.out.println("###" + metaData.toString());
// System.out.println("###" + metaData.toString());
List<SapProOrder> proOrderList = new ArrayList<>();
// 循环输出 Table 数据
@ -115,9 +118,12 @@ public class SapOrderServiceImpl implements SapOrderService {
String ERNAM = maraTable.getString("ERNAM");
String ERDAT = maraTable.getString("ERDAT");
String STTXT = maraTable.getString("STTXT");
System.out.println("订单号:" + AUFNR + " - 订单类型:" + AUART + " - 上级订单编号:" + MAUFNR + " - 物料号:" + PLNBEZ + " - 物料描述(短文本):" + MAKTX
log.info("订单输出------"+"订单号:" + AUFNR + " - 订单类型:" + AUART + " - 上级订单编号:" + MAUFNR + " - 物料号:" + PLNBEZ + " - 物料描述(短文本):" + MAKTX
+ " - 订单的计划工厂:" + PWERK + " - 订单数量总计:" + GAMNG + " - 基本计量单位:" + GMEIN + " - 任务清单组码:" + PLNNR + " - 基本开始日期:" + GSTRP
+ " - 基本完成日期:" + GLTRP + " - 输入者:" + ERNAM + " - 创建日期:" + ERDAT + " - 系统状态:" + STTXT);
// System.out.println("订单号:" + AUFNR + " - 订单类型:" + AUART + " - 上级订单编号:" + MAUFNR + " - 物料号:" + PLNBEZ + " - 物料描述(短文本):" + MAKTX
// + " - 订单的计划工厂:" + PWERK + " - 订单数量总计:" + GAMNG + " - 基本计量单位:" + GMEIN + " - 任务清单组码:" + PLNNR + " - 基本开始日期:" + GSTRP
// + " - 基本完成日期:" + GLTRP + " - 输入者:" + ERNAM + " - 创建日期:" + ERDAT + " - 系统状态:" + STTXT);
SapProOrder proOrder = new SapProOrder();
proOrder.setId(IdUtils.fastSimpleUUID());
proOrder.setPlanFactoryCode(PWERK);
@ -145,7 +151,7 @@ public class SapOrderServiceImpl implements SapOrderService {
return R.ok(proOrderList);
} catch (Exception e) {
System.out.println(e.getMessage());
return R.fail(e.getMessage());
}
}
@ -156,6 +162,7 @@ public class SapOrderServiceImpl implements SapOrderService {
try {
//获取连接
// JCoDestination dest = SAPConnUtils.connect();
log.info("订单创建入参-----"+JSONObject.toJSONString(sapCreateOrderList));
JCoRepository repository = dest.getRepository();
JCoFunction func = repository.getFunction("ZPPR_MES_PRODORD_CREATE");
if (func == null) {
@ -176,12 +183,12 @@ public class SapOrderServiceImpl implements SapOrderService {
jCoParameterList.setValue("P_DATEE",sapCreateOrder.getDatee());
func.execute(dest);//执行调用函数
JCoParameterList J= func.getExportParameterList();
System.out.println(J);
// System.out.println(J);
L_MSG= func.getExportParameterList().getString("L_MSG");
String LV_ORDER_NUMBER= func.getExportParameterList().getString("LV_ORDER_NUMBER");
JCoTable LT_ZGD=func.getTableParameterList().getTable("LT_ZGD");
System.out.println(LT_ZGD);
// System.out.println(LT_ZGD);
//DynamicDataSourceContextHolder.push("ds_1000");//controller已经完成切换
for (int i = 0; i <LT_ZGD.getNumRows(); i++) {
LT_ZGD.setRow(i);
@ -193,11 +200,14 @@ public class SapOrderServiceImpl implements SapOrderService {
LV_ORDER_NUM_List.add(map);
}
}
log.info("订单创建结果----"+L_MSG+"|"+JSONObject.toJSONString(LV_ORDER_NUM_List));
return R.ok(LV_ORDER_NUM_List,L_MSG);
}else {
log.error("接收的数据为空");
return R.fail("接收的数据为空");
}
}catch (Exception e){
log.error(L_MSG+e.getMessage());
return R.fail(L_MSG);
}
@ -210,6 +220,7 @@ public class SapOrderServiceImpl implements SapOrderService {
try {
//获取连接
// JCoDestination dest = SAPConnUtils.connect();
log.info("订单关闭入参------"+sapCloseOrderQuery.toString());
JCoRepository repository = dest.getRepository();
JCoFunction func = repository.getFunction("ZPPR_MES_PRODORD_CLOSE");
if (func == null) {
@ -237,8 +248,10 @@ public class SapOrderServiceImpl implements SapOrderService {
func.execute(dest);//执行调用函数
String L_MSG2= func.getExportParameterList().getString("L_MSG");
Msg.append(sapCloseOrderQuery.getOrder()+L_MSG2);
log.info("订单关闭结果"+Msg.toString());
return R.ok(null,Msg.toString());
}catch (Exception e){
log.error("订单关闭失败"+e.getMessage());
return R.fail(e.getMessage());
}
}
@ -338,12 +351,12 @@ public class SapOrderServiceImpl implements SapOrderService {
S_EBELN.setValue(Constants.OPTION, "EQ");
S_EBELN.setValue(Constants.LOW, sapPurchaseOrderQuery.getEbeln());
}
if (!StringUtils.isNull(sapPurchaseOrderQuery.getEbeln())){
JCoTable S_EBELN = func.getTableParameterList().getTable("S_EBELP");
S_EBELN.appendRow();
S_EBELN.setValue(Constants.SIGN, "I");
S_EBELN.setValue(Constants.OPTION, "EQ");
S_EBELN.setValue(Constants.LOW, sapPurchaseOrderQuery.getEbeln());
if (!StringUtils.isNull(sapPurchaseOrderQuery.getEbelp())){
JCoTable S_EBELP = func.getTableParameterList().getTable("S_EBELP");
S_EBELP.appendRow();
S_EBELP.setValue(Constants.SIGN, "I");
S_EBELP.setValue(Constants.OPTION, "EQ");
S_EBELP.setValue(Constants.LOW, sapPurchaseOrderQuery.getEbelp());
}
if (!StringUtils.isNull(sapPurchaseOrderQuery.getMatnr())){
JCoTable S_MATNR = func.getTableParameterList().getTable("S_MATNR");
@ -365,7 +378,57 @@ public class SapOrderServiceImpl implements SapOrderService {
JCoTable maraTable = func.getTableParameterList().getTable("LT_PROCURE");
JCoRecordMetaData metaData = maraTable.getRecordMetaData();
System.out.println("###" + metaData.toString());
return R.ok();
List<SapPurchaseOrderQuery> sapPurchaseOrderQueryList=new ArrayList<>();
for (int i = 0; i < maraTable.getNumRows(); i++) {
maraTable.setRow(i);
SapPurchaseOrderQuery sapPCorder=new SapPurchaseOrderQuery();
String EBELN = maraTable.getString("EBELN");
String EBELP = maraTable.getString("EBELP");
String MATNR = maraTable.getString("MATNR");
String MAKTX = maraTable.getString("MAKTX");
String MENGE = maraTable.getString("MENGE");
String MEINS = maraTable.getString("MEINS");
String ZMENGE = maraTable.getString("ZMENGE");
String ZMEINS = maraTable.getString("ZMEINS");
String LIFNR = maraTable.getString("LIFNR");
String WERKS = maraTable.getString("WERKS");
String LGORT = maraTable.getString("LGORT");
String EINDT = maraTable.getString("EINDT");
String ELIKZ = maraTable.getString("ELIKZ");
String BEIZHU = maraTable.getString("BEIZHU");
System.out.println(
"采购凭证号"+EBELN+
"采购凭证的项目编号"+EBELP+
"物料号"+MATNR+
"物料描述(短文本)"+MAKTX+
"采购订单数量"+MENGE+
"采购订单的计量单位"+MEINS+
"交货数量"+ZMENGE+
"基本计量单位"+ZMEINS+
"供应商帐户号"+LIFNR+
"工厂"+WERKS+
"库存地点"+LGORT+
"项目交货日期"+EINDT+
"交货已完成标识"+ELIKZ+
"注释"+BEIZHU);
sapPCorder.setEbeln(EBELN);
sapPCorder.setEbelp(EBELP);
sapPCorder.setMatnr(MATNR);
sapPCorder.setMaktx(MAKTX);
sapPCorder.setMenge(MENGE);
sapPCorder.setMeins(MEINS);
sapPCorder.setZmenge(ZMENGE);
sapPCorder.setZmeins(ZMEINS);
sapPCorder.setLifnr(LIFNR);
sapPCorder.setWerks(WERKS);
sapPCorder.setLgort(LGORT);
sapPCorder.setEindt(EINDT);
sapPCorder.setElikz(ELIKZ);
sapPCorder.setBeizhu(BEIZHU);
sapPurchaseOrderQueryList.add(sapPCorder);
}
return R.ok(sapPurchaseOrderQueryList);
}catch (Exception e){
return R.fail(e.getMessage());
}
@ -375,6 +438,7 @@ public class SapOrderServiceImpl implements SapOrderService {
@Override
public R shopUpdateSync(SapShopOrderQuery sapProOrder) {
try {
log.info("订单修改入参-------"+sapProOrder.toString());
JCoRepository repository = dest.getRepository();
JCoFunction func = repository.getFunction("ZPPR_MES_PRODORD_CHANGE");
// 配置传入参数
@ -399,11 +463,14 @@ public class SapOrderServiceImpl implements SapOrderService {
String RETCODE= func.getExportParameterList().getString("RETCODE");
String MESSAGE= func.getExportParameterList().getString("MESSAGE");
if ((Constants.FAIL).equals(Integer.parseInt(RETCODE))){
log.error("订单修改结果-----"+MESSAGE);
return R.fail(null,"订单号:"+sapProOrder.getAufnr()+MESSAGE);
}else {
log.info("订单修改结果-----"+MESSAGE);
return R.ok(null,"订单号:"+sapProOrder.getAufnr()+MESSAGE);
}
}catch (Exception e){
log.error(e.getMessage());
return R.fail(e.getMessage());
}
}

Loading…
Cancel
Save