Merge remote-tracking branch 'origin/master'

master
wws 2 years ago
commit 428e203946

@ -1,5 +1,7 @@
package com.op.system.api.domain.sap; package com.op.system.api.domain.sap;
import java.util.List;
/** /**
* *
*/ */
@ -7,14 +9,14 @@ public class SapRFW {
private String aufnr; private String aufnr;
private String gamng; private String gamng;
private lt_gs lt_gs; private lt_gs lt_gs;
private lt_hw lt_hw; private List<lt_hw> lt_hwList;
public SapRFW.lt_hw getLt_hw() { public List<lt_hw> getLt_hwList() {
return lt_hw; return lt_hwList;
} }
public void setLt_hw(SapRFW.lt_hw lt_hw) { public void setLt_hwList(List<lt_hw> lt_hwList) {
this.lt_hw = lt_hw; this.lt_hwList = lt_hwList;
} }
public SapRFW.lt_gs getLt_gs() { public SapRFW.lt_gs getLt_gs() {
@ -140,13 +142,5 @@ public class SapRFW {
'}'; '}';
} }
} }
@Override
public String toString() {
return "{" +
"aufnr:"+aufnr+","+
"gamng:"+gamng+","+
"lt_gs:"+lt_gs.toString()+","+
"lt_hw:"+lt_hw.toString()+","+
"}";
}
} }

@ -71,4 +71,14 @@ public class DeviceInterfaceController {
public AjaxResult getEquipmentIntactRate(EquOperationRecord equOperationRecord) { public AjaxResult getEquipmentIntactRate(EquOperationRecord equOperationRecord) {
return deviceInterfaceService.getEquipmentIntactRate(equOperationRecord); return deviceInterfaceService.getEquipmentIntactRate(equOperationRecord);
} }
/**
*
*
*/
@GetMapping("/getDeviceRefreshTime")
public AjaxResult getDeviceRefreshTime(EquOperationRecord equOperationRecord) {
return deviceInterfaceService.getDeviceRefreshTime(equOperationRecord);
}
} }

@ -37,4 +37,10 @@ public interface DeviceInterfaceMapper {
MesReportWork selectReportWorkByEquipmentCode(String equipmentCode); MesReportWork selectReportWorkByEquipmentCode(String equipmentCode);
List<EquRepairWorkOrder> selectRepairRecordByEquipmentCode(String equipmentCode); List<EquRepairWorkOrder> selectRepairRecordByEquipmentCode(String equipmentCode);
/**
*
* 5
*/
String getDeviceRefreshTime(EquOperationRecord equOperationRecord);
} }

@ -39,4 +39,10 @@ public interface IDeviceInterfaceService {
* @return * @return
*/ */
AjaxResult getEquipmentIntactRate(EquOperationRecord equOperationRecord); AjaxResult getEquipmentIntactRate(EquOperationRecord equOperationRecord);
/**
*
* 5
*/
public AjaxResult getDeviceRefreshTime(EquOperationRecord equOperationRecord);
} }

@ -206,4 +206,15 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService {
EquOperationRecord equipmentIntactRate = equOperationRecordMapper.getEquipmentIntactRate(equOperationRecord); EquOperationRecord equipmentIntactRate = equOperationRecordMapper.getEquipmentIntactRate(equOperationRecord);
return success(equipmentIntactRate); return success(equipmentIntactRate);
} }
/**
*
*/
@Override
@DS("master")
public AjaxResult getDeviceRefreshTime(EquOperationRecord equOperationRecord) {
String refreshTime = deviceInterfaceMapper.getDeviceRefreshTime(equOperationRecord);
int time = Integer.parseInt(refreshTime);
return success(time);
}
} }

@ -58,4 +58,10 @@
and wo.work_status = '1' and wo.work_status = '1'
</select> </select>
<select id="getDeviceRefreshTime" resultType="java.lang.String">
select dict_value
from sys_dict_data
where dict_label = 'device_refresh_time'
</select>
</mapper> </mapper>

@ -304,10 +304,12 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService {
ltgs.setConf_activity5(work.getSac5());//折旧 ltgs.setConf_activity5(work.getSac5());//折旧
ltgs.setConf_activity6(work.getSac6()); ltgs.setConf_activity6(work.getSac6());
sapRFW.setLt_gs(ltgs); sapRFW.setLt_gs(ltgs);
List<SapRFW.lt_hw> lt_hwList =new ArrayList<>();
SapRFW.lt_hw lthw = sapRFW.new lt_hw();//MES生产订单报工货物移动修改 SapRFW.lt_hw lthw = sapRFW.new lt_hw();//MES生产订单报工货物移动修改
lthw.setEntry_qnt(work.getQuantityFeedback().toString());//TODO; lthw.setEntry_qnt(work.getQuantityFeedback().toString());//TODO;
lthw.setMaterial(work.getProcessCode()); lthw.setMaterial(work.getProcessCode());
sapRFW.setLt_hw(lthw); lt_hwList.add(lthw);
sapRFW.setLt_hwList(lt_hwList);
//添加调用sap日志 //添加调用sap日志
SysSapLog sysSapLog = new SysSapLog(); SysSapLog sysSapLog = new SysSapLog();
sysSapLog.setId(IdUtils.fastSimpleUUID()); sysSapLog.setId(IdUtils.fastSimpleUUID());
@ -339,7 +341,7 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService {
List<String> sapWorkOrders = mesReportWorkMapper.getSapWorkOrder(work.getWorkorderCode());//根据belong_work_order找到所有要关闭的虚拟工单 List<String> sapWorkOrders = mesReportWorkMapper.getSapWorkOrder(work.getWorkorderCode());//根据belong_work_order找到所有要关闭的虚拟工单
for(String sapWorkOrder:sapWorkOrders){ for(String sapWorkOrder:sapWorkOrders){
R r2= remoteSapService.sapCloseOrder(sapWorkOrder); R r2= remoteSapService.sapCloseOrder(sapWorkOrder);
logger.info("工单"+work.getWorkorderCode()+",sapworkorder:"+sapWorkOrder+",sap关闭"+r.getCode()+",返回信息:"+r.getMsg()); logger.info("工单"+work.getWorkorderCode()+",sapworkorder:"+sapWorkOrder+",sap关闭"+r2.getCode()+",返回信息:"+r2.getMsg());
} }
work.setStatus("w3"); work.setStatus("w3");

@ -275,18 +275,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
from sys_factory where f_type = 'c' from sys_factory where f_type = 'c'
</select> </select>
<select id="getLineChartsDatas" resultType="com.op.mes.domain.MesReportProduction"> <select id="getLineChartsDatas" resultType="com.op.mes.domain.MesReportProduction">
select mrw.nameDate,
mrw.productCode,
mrw.productName,
mrw.feedbackTime,
sum(mrw.quantity) quantity
from(
select select
mrw.product_name+CONVERT(varchar(10),mrw.feedback_time, 120) nameDate, product_name+CONVERT(varchar(10),feedback_time, 120) nameDate,
mrw.product_code productCode, product_code productCode,
mrw.product_name productName, product_name productName,
CONVERT(varchar(10),mrw.feedback_time, 120) feedbackTime, CONVERT(varchar(10),feedback_time, 120) feedbackTime,
sum(mrw.quantity_feedback) quantity quantity_feedback quantity
from mes_report_work mrw from mes_report_work
where where
CONVERT(varchar(10),mrw.feedback_time, 120) >= #{productDateStart} CONVERT(varchar(10),feedback_time, 120) >= #{productDateStart}
and #{productDateEnd} >= CONVERT(varchar(10),mrw.feedback_time, 120) and #{productDateEnd} >= CONVERT(varchar(10),feedback_time, 120)
group by mrw.product_code,mrw.product_name,mrw.feedback_time )mrw
order by mrw.feedback_time group by mrw.nameDate,mrw.productCode,mrw.productName,mrw.feedbackTime
</select> </select>
<select id="getLineChartsNames" resultType="java.lang.String"> <select id="getLineChartsNames" resultType="java.lang.String">
select select
@ -445,7 +451,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select> </select>
<select id="getSapWorkOrder" resultType="java.lang.String"> <select id="getSapWorkOrder" resultType="java.lang.String">
select workorder_code_sap from pro_order_workorder select workorder_code_sap from pro_order_workorder
where belong_work_order = #{workorderCode} and del_flag = '0' and parent_order = '0' where belong_work_order = #{workorderCode} and del_flag = '0'
</select> </select>
<insert id="insertMesReportWork" parameterType="MesReportWork"> <insert id="insertMesReportWork" parameterType="MesReportWork">

@ -209,7 +209,7 @@ public class OpenServiceImpl implements OpenService {
List<String> sapWorkOrders = openMapper.getSapWorkOrder(work.getWorkorderCode());//根据belong_work_order找到所有要关闭的虚拟工单 List<String> sapWorkOrders = openMapper.getSapWorkOrder(work.getWorkorderCode());//根据belong_work_order找到所有要关闭的虚拟工单
for(String sapWorkOrder:sapWorkOrders){ for(String sapWorkOrder:sapWorkOrders){
R rclose = remoteSapService.sapCloseOrder(sapWorkOrder); R rclose = remoteSapService.sapCloseOrder(sapWorkOrder);
logger.info("工单"+work.getWorkorderCode()+",sapworkorder:"+sapWorkOrder+",sap关闭"+r.getCode()+",返回信息:"+r.getMsg()); logger.info("工单"+work.getWorkorderCode()+",sapworkorder:"+sapWorkOrder+",sap关闭"+rclose.getCode()+",返回信息:"+rclose.getMsg());
} }
work.setStatus("w3"); work.setStatus("w3");
work.setUpdateTime(DateUtils.getNowDate()); work.setUpdateTime(DateUtils.getNowDate());

@ -124,7 +124,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select> </select>
<select id="getSapWorkOrder" resultType="java.lang.String"> <select id="getSapWorkOrder" resultType="java.lang.String">
select workorder_code_sap from pro_order_workorder select workorder_code_sap from pro_order_workorder
where belong_work_order = #{workorderCode} and del_flag = '0' and parent_order = '0' where belong_work_order = #{workorderCode} and del_flag = '0'
</select> </select>
</mapper> </mapper>

@ -244,7 +244,6 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService {
mesPrepare.setStatus("L0");//待确认 mesPrepare.setStatus("L0");//待确认
proOrderWorkorderMapper.createPrepare(mesPrepare); proOrderWorkorderMapper.createPrepare(mesPrepare);
//备(领)料明细 //备(领)料明细
List<MesPrepareDetailDTO> details = new ArrayList<>(); List<MesPrepareDetailDTO> details = new ArrayList<>();
MesPrepareDetailDTO detail = new MesPrepareDetailDTO(); MesPrepareDetailDTO detail = new MesPrepareDetailDTO();
detail.setCreateTime(DateUtils.getNowDate()); detail.setCreateTime(DateUtils.getNowDate());
@ -348,16 +347,19 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService {
//获取领料单 //获取领料单
this.getMesPrepare(returnCodes,wcodes); this.getMesPrepare(returnCodes,wcodes);
//关闭母订单子订单会自动关闭//订单的订单编码 //关闭母子订单//订单的订单编码
//for(String orderCode:ordercodes){ R closeR = null;
R closeR= remoteSapService.sapCloseOrder(ordercodes.get(0)); for(String orderCode:ordercodes){
logger.info(workorderId+"下发工单后关闭母订单"+ordercodes.get(0)+":"+closeR.getMsg()); closeR= remoteSapService.sapCloseOrder(orderCode);
//} logger.info(workorderId+"下发工单后关闭母订单"+orderCode+":"+closeR.getCode()+","+closeR.getMsg());
}
if(closeR.getCode()==200){
//下达工单 //下达工单
String[] idsArrayAll = (String[])wids.toArray(new String[wids.size()]); String[] idsArrayAll = (String[])wids.toArray(new String[wids.size()]);
proOrderWorkorderMapper.downWorkorders(idsArrayAll); proOrderWorkorderMapper.downWorkorders(idsArrayAll);
} }
} }
}
return 1; return 1;
} }

@ -35,8 +35,6 @@ import com.op.common.core.web.page.TableDataInfo;
public class QcCheckTypeProjectController extends BaseController { public class QcCheckTypeProjectController extends BaseController {
@Autowired @Autowired
private IQcCheckTypeProjectService qcCheckTypeProjectService; private IQcCheckTypeProjectService qcCheckTypeProjectService;
@Autowired
private IQcMaterialGroupService qcMaterialGroupService;
/** /**
* *

@ -7,10 +7,12 @@ import com.op.common.core.utils.StringUtils;
import com.op.common.core.web.controller.BaseController; import com.op.common.core.web.controller.BaseController;
import com.op.common.core.web.domain.AjaxResult; import com.op.common.core.web.domain.AjaxResult;
import com.op.common.core.web.page.TableDataInfo; import com.op.common.core.web.page.TableDataInfo;
import com.op.common.security.annotation.RequiresPermissions;
import com.op.common.security.utils.SecurityUtils; import com.op.common.security.utils.SecurityUtils;
import com.op.quality.domain.*; import com.op.quality.domain.*;
import com.op.quality.service.*; import com.op.quality.service.*;
import com.op.system.api.RemoteMesService; import com.op.system.api.RemoteMesService;
import com.op.system.api.domain.SysDictData;
import com.op.system.api.domain.dto.WCSDTO; import com.op.system.api.domain.dto.WCSDTO;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
@ -39,7 +41,8 @@ public class QuaController extends BaseController {
private IQcCheckTaskWarehousingService qcCheckTaskWarehousingService; private IQcCheckTaskWarehousingService qcCheckTaskWarehousingService;
@Autowired @Autowired
private IQcCheckTypeService qcCheckTypeService; private IQcCheckTypeService qcCheckTypeService;
@Autowired
private IQcMaterialGroupService qcMaterialGroupService;
@Autowired @Autowired
private IQcCheckTaskIncomeService qcCheckTaskIncomeService; private IQcCheckTaskIncomeService qcCheckTaskIncomeService;
@ -179,17 +182,14 @@ public class QuaController extends BaseController {
* *
*/ */
@GetMapping(value = "getCheckTaskList") @GetMapping(value = "getCheckTaskList")
public AjaxResult getCheckTaskList(QcCheckTaskIncome qcCheckTaskIncome) { public TableDataInfo getCheckTaskList(QcCheckTaskIncome qcCheckTaskIncome) {
if(StringUtils.isBlank(qcCheckTaskIncome.getFactoryCode())){
return error("[factoryCode]不能为空"); if(StringUtils.isNotBlank(qcCheckTaskIncome.getCheckStatus())){
qcCheckTaskIncome.setCheckStatus("'"+ qcCheckTaskIncome.getCheckStatus().replace(",","','")+"'");
} }
if(StringUtils.isBlank(qcCheckTaskIncome.getCheckType())){ startPage();
return error("[checkType]不能为空"); List<QcCheckTaskIncome> list = qcProCheckService.getCheckTaskList(qcCheckTaskIncome);
} return getDataTable(list);
if(StringUtils.isBlank(qcCheckTaskIncome.getCheckManCode())){
return error("[checkManCode]不能为空");
}
return success(qcProCheckService.getCheckTaskList(qcCheckTaskIncome));
} }
/** /**
* *
@ -204,13 +204,44 @@ public class QuaController extends BaseController {
} }
return success(qcProCheckService.getCheckTaskDetailList(qcCheckTaskDetail)); return success(qcProCheckService.getCheckTaskDetailList(qcCheckTaskDetail));
} }
/**检测结果提交**/
@PostMapping("/commitCheckResults") /**
public AjaxResult commitCheckResults(@RequestBody List<QcCheckTaskDetail> details) { *
if(CollectionUtils.isEmpty(details)){ */
@PostMapping(value = "commitCheckResults")
public AjaxResult commitCheckResults(@RequestBody List<QcCheckTaskDetail> qcCheckTaskDetails) {
if(CollectionUtils.isEmpty(qcCheckTaskDetails)){
return error("[List<QcCheckTaskDetail>]不能为空"); return error("[List<QcCheckTaskDetail>]不能为空");
} }
return toAjax(qcCheckTaskIncomeService.commitCheckResults(details)); return success(qcCheckTaskIncomeService.commitCheckResults(qcCheckTaskDetails));
}
/**
*
*/
@GetMapping(value = "getQcUnitList")
public TableDataInfo getQcUnitList(SysDictData sysDictData) {
startPage();
List<SysDictData> list = qcProCheckService.getQcUnitList(sysDictData);
return getDataTable(list);
}
/**
*
*/
@GetMapping("/pdaMaterialTree")
public AjaxResult pdaMaterialTree(QcMaterialGroup materialGroup) {
DynamicDataSourceContextHolder.push("ds_"+materialGroup.getFactoryCode());
return success(qcMaterialGroupService.selectQcMaterialTreeList(materialGroup));
} }
/**
*
*/
@GetMapping("/getCheckTypeProjectList")
public TableDataInfo list(QcCheckTypeProject qcCheckTypeProject) {
DynamicDataSourceContextHolder.push("ds_"+qcCheckTypeProject.getFactoryCode());
startPage();
List<QcCheckTypeProject> list = qcMaterialGroupService.getCheckTypeProjectList(qcCheckTypeProject);
return getDataTable(list);
}
} }

@ -95,6 +95,15 @@ public class QcCheckTaskDetail extends BaseEntity {
private List<String> actualValues; private List<String> actualValues;
private String typeProjectId; private String typeProjectId;
private String defectCode; private String defectCode;
private String checkType;
public String getCheckType() {
return checkType;
}
public void setCheckType(String checkType) {
this.checkType = checkType;
}
public String getDefectCode() { public String getDefectCode() {
return defectCode; return defectCode;

@ -70,10 +70,48 @@ public class QcCheckTypeProject extends BaseEntity {
@Excel(name = "物料编码") @Excel(name = "物料编码")
private String materialCode; private String materialCode;
private String materialName;
private Integer sort; private Integer sort;
private String projectNo; private String projectNo;
private String checkTool;
private String checkMode;
private String uint;
public String getUint() {
return uint;
}
public void setUint(String uint) {
this.uint = uint;
}
public String getCheckTool() {
return checkTool;
}
public void setCheckTool(String checkTool) {
this.checkTool = checkTool;
}
public String getCheckMode() {
return checkMode;
}
public void setCheckMode(String checkMode) {
this.checkMode = checkMode;
}
public String getMaterialName() {
return materialName;
}
public void setMaterialName(String materialName) {
this.materialName = materialName;
}
public Integer getSort() { public Integer getSort() {
return sort; return sort;
} }

@ -6,6 +6,7 @@ import com.op.quality.domain.QcBomComponent;
import com.op.quality.domain.QcCheckTaskDetail; import com.op.quality.domain.QcCheckTaskDetail;
import com.op.quality.domain.QcCheckTaskIncome; import com.op.quality.domain.QcCheckTaskIncome;
import com.op.quality.domain.QcSupplier; import com.op.quality.domain.QcSupplier;
import com.op.system.api.domain.SysDictData;
import com.op.system.api.domain.SysUser; import com.op.system.api.domain.SysUser;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@ -79,4 +80,6 @@ public interface QcCheckTaskIncomeMapper {
int updateQcCheckTask(QcCheckTaskIncome qcCheckTask); int updateQcCheckTask(QcCheckTaskIncome qcCheckTask);
int updateQcCheckTaskDetails(@Param("list") List<QcCheckTaskDetail> details); int updateQcCheckTaskDetails(@Param("list") List<QcCheckTaskDetail> details);
List<SysDictData> getQcUnitList(SysDictData sysDictData);
} }

@ -1,9 +1,12 @@
package com.op.quality.mapper; package com.op.quality.mapper;
import java.util.List; import java.util.List;
import java.util.Map;
import com.op.quality.domain.QcCheckTaskDetail; import com.op.quality.domain.QcCheckTaskDetail;
import com.op.quality.domain.QcCheckTypeProject; import com.op.quality.domain.QcCheckTypeProject;
import com.op.system.api.domain.SysDictData;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
/** /**
@ -65,4 +68,8 @@ public interface QcCheckTypeProjectMapper {
List<QcCheckTaskDetail> getTPByTypeMaterial(QcCheckTypeProject qctp); List<QcCheckTaskDetail> getTPByTypeMaterial(QcCheckTypeProject qctp);
List<QcCheckTaskDetail> getTPByTypeGroup(QcCheckTypeProject qctp); List<QcCheckTaskDetail> getTPByTypeGroup(QcCheckTypeProject qctp);
List<QcCheckTypeProject> getCheckTypeProjectList(QcCheckTypeProject qcCheckTypeProject);
@MapKey("dictValue")
Map<String, SysDictData> getDictMap(SysDictData sysDictData);
} }

@ -1,6 +1,8 @@
package com.op.quality.service; package com.op.quality.service;
import java.util.List; import java.util.List;
import com.op.quality.domain.QcCheckTypeProject;
import com.op.quality.domain.QcMaterialGroup; import com.op.quality.domain.QcMaterialGroup;
import com.op.quality.domain.vo.TreeSelect; import com.op.quality.domain.vo.TreeSelect;
import com.op.system.api.domain.SysDept; import com.op.system.api.domain.SysDept;
@ -69,4 +71,6 @@ public interface IQcMaterialGroupService {
public int deleteQcMaterialGroupById(String id); public int deleteQcMaterialGroupById(String id);
public boolean validationData(String id); public boolean validationData(String id);
List<QcCheckTypeProject> getCheckTypeProjectList(QcCheckTypeProject qcCheckTypeProject);
} }

@ -6,6 +6,7 @@ import com.op.quality.domain.QcCheckTaskDetail;
import com.op.quality.domain.QcCheckTaskIncome; import com.op.quality.domain.QcCheckTaskIncome;
import com.op.quality.domain.QcCheckTypeProject; import com.op.quality.domain.QcCheckTypeProject;
import com.op.quality.domain.QcProCheck; import com.op.quality.domain.QcProCheck;
import com.op.system.api.domain.SysDictData;
import java.util.List; import java.util.List;
@ -34,4 +35,6 @@ public interface QcProCheckService {
List<QcCheckTaskIncome> getCheckTaskList(QcCheckTaskIncome qcCheckTaskIncome); List<QcCheckTaskIncome> getCheckTaskList(QcCheckTaskIncome qcCheckTaskIncome);
List<QcCheckTaskDetail > getCheckTaskDetailList(QcCheckTaskDetail qcCheckTaskDetail); List<QcCheckTaskDetail > getCheckTaskDetailList(QcCheckTaskDetail qcCheckTaskDetail);
List<SysDictData> getQcUnitList(SysDictData sysDictData);
} }

@ -1,4 +1,4 @@
package com.op.quality.service.serviceImpl; package com.op.quality.service.impl;
import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONArray;
import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.dynamic.datasource.annotation.DS;

@ -1,4 +1,4 @@
package com.op.quality.service.serviceImpl; package com.op.quality.service.impl;
import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.dynamic.datasource.annotation.DS;
import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.DateUtils;

@ -1,4 +1,4 @@
package com.op.quality.service.serviceImpl; package com.op.quality.service.impl;
import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.dynamic.datasource.annotation.DS;
import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.DateUtils;

@ -296,6 +296,7 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService {
String factoryCode = details.get(0).getFactoryCode(); String factoryCode = details.get(0).getFactoryCode();
String updateBy = details.get(0).getUpdateBy(); String updateBy = details.get(0).getUpdateBy();
String belongId = details.get(0).getBelongTo(); String belongId = details.get(0).getBelongTo();
String checkType = details.get(0).getCheckType();
//默认合格 //默认合格
String result = "Y"; String result = "Y";
@ -318,22 +319,23 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService {
logger.info("qc_check_task:"+n); logger.info("qc_check_task:"+n);
/**更新qc_check_task_detail**/ /**更新qc_check_task_detail**/
for(QcCheckTaskDetail detail:details){ for(QcCheckTaskDetail detail:details){
detail.setUpdateTime(nowTime);
} }
n= qcCheckTaskIncomeMapper.updateQcCheckTaskDetails(details);; n= qcCheckTaskIncomeMapper.updateQcCheckTaskDetails(details);
logger.info("更新qc_check_task_detail:"+n); logger.info("更新qc_check_task_detail:"+n);
//不合格处理 //不合格处理
if("N".equals(result)){ if("N".equals(result)){
// QcCheckUnqualified unqualified = new QcCheckUnqualified(); QcCheckUnqualified unqualified = new QcCheckUnqualified();
// unqualified.setId(IdUtils.fastSimpleUUID()); unqualified.setId(IdUtils.fastSimpleUUID());
// unqualified.setTaskId(qcCheckTaskIncome.getRecordId()); unqualified.setTaskId(belongId);
// unqualified.setCreateTime(DateUtils.getNowDate()); unqualified.setCreateTime(DateUtils.getNowDate());
// unqualified.setCreateBy(qcCheckTaskIncome.getUpdateBy()); unqualified.setCreateBy(updateBy);
// unqualified.setFactoryCode(factoryCode); unqualified.setFactoryCode(factoryCode);
// unqualified.setType(qcCheckTaskIncome.getCheckType()); unqualified.setType(checkType);
// /**qc_check_unqualified**/ /**qc_check_unqualified**/
// qcCheckUnqualifiedMapper.insertQcCheckUnqualified(unqualified); n = qcCheckUnqualifiedMapper.insertQcCheckUnqualified(unqualified);
logger.info("qc_check_unqualified:"+n);
} }
return n ; return n ;

@ -1,11 +1,14 @@
package com.op.quality.service.serviceImpl; package com.op.quality.service.impl;
import java.util.List; import java.util.List;
import java.util.Map;
import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.DateUtils;
import com.op.common.core.utils.uuid.IdUtils; import com.op.common.core.utils.uuid.IdUtils;
import com.op.common.security.utils.SecurityUtils; import com.op.common.security.utils.SecurityUtils;
import com.op.system.api.domain.SysDictData;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.op.quality.mapper.QcCheckTypeProjectMapper; import com.op.quality.mapper.QcCheckTypeProjectMapper;
@ -48,7 +51,17 @@ public class QcCheckTypeProjectServiceImpl implements IQcCheckTypeProjectService
@Override @Override
@DS("#header.poolName") @DS("#header.poolName")
public List<QcCheckTypeProject> selectQcCheckTypeProjectList(QcCheckTypeProject qcCheckTypeProject) { public List<QcCheckTypeProject> selectQcCheckTypeProjectList(QcCheckTypeProject qcCheckTypeProject) {
return qcCheckTypeProjectMapper.selectQcCheckTypeProjectList(qcCheckTypeProject); List<QcCheckTypeProject> dtos = qcCheckTypeProjectMapper.selectQcCheckTypeProjectList(qcCheckTypeProject);
DynamicDataSourceContextHolder.push("master");
SysDictData sData = new SysDictData();
sData.setDictType("unit");
Map<String,SysDictData> dictMap = qcCheckTypeProjectMapper.getDictMap(sData);
if(dictMap != null){
for(QcCheckTypeProject dto:dtos){
dto.setUint(dictMap.get(dto.getUint()).getDictLabel());
}
}
return dtos;
} }
/** /**

@ -1,4 +1,4 @@
package com.op.quality.service.serviceImpl; package com.op.quality.service.impl;
import java.util.List; import java.util.List;

@ -1,4 +1,4 @@
package com.op.quality.service.serviceImpl; package com.op.quality.service.impl;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Iterator; import java.util.Iterator;
@ -7,13 +7,17 @@ import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.DateUtils;
import com.op.common.core.utils.SpringUtils; import com.op.common.core.utils.SpringUtils;
import com.op.common.core.utils.StringUtils; import com.op.common.core.utils.StringUtils;
import com.op.common.core.utils.uuid.IdUtils; import com.op.common.core.utils.uuid.IdUtils;
import com.op.common.datascope.annotation.DataScope; import com.op.common.datascope.annotation.DataScope;
import com.op.common.security.utils.SecurityUtils; import com.op.common.security.utils.SecurityUtils;
import com.op.quality.domain.QcCheckTypeProject;
import com.op.quality.domain.vo.TreeSelect; import com.op.quality.domain.vo.TreeSelect;
import com.op.quality.mapper.QcCheckTypeProjectMapper;
import com.op.system.api.domain.SysDictData;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.op.quality.mapper.QcMaterialGroupMapper; import com.op.quality.mapper.QcMaterialGroupMapper;
@ -34,6 +38,8 @@ import javax.servlet.http.HttpServletRequest;
public class QcMaterialGroupServiceImpl implements IQcMaterialGroupService { public class QcMaterialGroupServiceImpl implements IQcMaterialGroupService {
@Autowired @Autowired
private QcMaterialGroupMapper qcMaterialGroupMapper; private QcMaterialGroupMapper qcMaterialGroupMapper;
@Autowired
private QcCheckTypeProjectMapper qcCheckTypeProjectMapper;
/** /**
* *
@ -46,7 +52,7 @@ public class QcMaterialGroupServiceImpl implements IQcMaterialGroupService {
return qcMaterialGroupMapper.selectQcMaterialGroupById(id); return qcMaterialGroupMapper.selectQcMaterialGroupById(id);
} }
@Override @Override
@DataScope(deptAlias = "d") //@DataScope(deptAlias = "d")
@DS("#header.poolName") @DS("#header.poolName")
public List<QcMaterialGroup> selectQcMaterialGroupList(QcMaterialGroup qcMaterialGroup) { public List<QcMaterialGroup> selectQcMaterialGroupList(QcMaterialGroup qcMaterialGroup) {
return qcMaterialGroupMapper.selectQcMaterialGroupList(qcMaterialGroup); return qcMaterialGroupMapper.selectQcMaterialGroupList(qcMaterialGroup);
@ -179,6 +185,21 @@ public class QcMaterialGroupServiceImpl implements IQcMaterialGroupService {
return qcMaterialGroupMapper.validationData(id).size() > 0; return qcMaterialGroupMapper.validationData(id).size() > 0;
} }
@Override
public List<QcCheckTypeProject> getCheckTypeProjectList(QcCheckTypeProject qcCheckTypeProject) {
List<QcCheckTypeProject> dtos = qcCheckTypeProjectMapper.getCheckTypeProjectList(qcCheckTypeProject);
DynamicDataSourceContextHolder.push("master");
SysDictData sData = new SysDictData();
sData.setDictType("unit");
Map<String,SysDictData> dictMap = qcCheckTypeProjectMapper.getDictMap(sData);
if(dictMap != null){
for(QcCheckTypeProject dto:dtos){
dto.setUint(dictMap.get(dto.getUint()).getDictLabel());
}
}
return dtos;
}
private boolean hasChild(List<QcMaterialGroup> list, QcMaterialGroup t) { private boolean hasChild(List<QcMaterialGroup> list, QcMaterialGroup t) {
return getChildList(list, t).size() > 0 ? true : false; return getChildList(list, t).size() > 0 ? true : false;
} }

@ -1,5 +1,6 @@
package com.op.quality.service.serviceImpl; package com.op.quality.service.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
import com.op.common.core.domain.BaseFileData; import com.op.common.core.domain.BaseFileData;
import com.op.common.core.domain.R; import com.op.common.core.domain.R;
@ -14,6 +15,7 @@ import com.op.quality.domain.QcProCheck;
import com.op.quality.mapper.QcCheckTaskIncomeMapper; import com.op.quality.mapper.QcCheckTaskIncomeMapper;
import com.op.quality.mapper.QcProCheckMapper; import com.op.quality.mapper.QcProCheckMapper;
import com.op.quality.service.QcProCheckService; import com.op.quality.service.QcProCheckService;
import com.op.system.api.domain.SysDictData;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -127,4 +129,10 @@ public class QcProCheckServiceImpl implements QcProCheckService {
return qcCheckTaskIncomeMapper.getCkeckProjectList(qcCheckTaskDetail); return qcCheckTaskIncomeMapper.getCkeckProjectList(qcCheckTaskDetail);
} }
@Override
@DS("master")
public List<SysDictData> getQcUnitList(SysDictData sysDictData) {
return qcCheckTaskIncomeMapper.getQcUnitList(sysDictData);
}
} }

@ -1,4 +1,4 @@
package com.op.quality.service.serviceImpl; package com.op.quality.service.impl;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;

@ -130,7 +130,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
td.create_by createBy, td.create_by createBy,
td.create_time createTime, td.create_time createTime,
td.update_by updateBy, td.update_by updateBy,
td.update_time updateTime,
td.update_time updateTime, td.update_time updateTime,
td.belong_to belongTo, td.belong_to belongTo,
qctp.upper_diff upperDiff, qctp.upper_diff upperDiff,
@ -140,6 +139,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
left join qc_check_type_project qctp on td.type_project_id = qctp.id left join qc_check_type_project qctp on td.type_project_id = qctp.id
where td.belong_to = #{belongTo} and td.del_flag='0' and qctp.del_flag = '0' where td.belong_to = #{belongTo} and td.del_flag='0' and qctp.del_flag = '0'
</select> </select>
<select id="getQcUnitList" resultType="com.op.system.api.domain.SysDictData">
select dict_label dictLabel,
dict_value dictValue
from sys_dict_data
where dict_type = 'unit'
and status = '0'
</select>
<insert id="insertQcCheckTaskIncome" parameterType="QcCheckTaskIncome"> <insert id="insertQcCheckTaskIncome" parameterType="QcCheckTaskIncome">
insert into qc_check_task insert into qc_check_task
@ -258,14 +264,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<foreach collection="list" item="item" separator=";"> <foreach collection="list" item="item" separator=";">
update qc_check_task_detail update qc_check_task_detail
set set
zh_desc = #{item.name1}, actual_value = #{item.actualValue},
contact_phone = #{item.telf1}, status = #{item.status},
address = #{item.stras}, update_by = #{item.updateBy},
factory_code = #{item.bukrs}, update_time = #{item.updateTime}
create_time= #{item.erdat},
update_time = #{item.erdat}
where where
supplier_code = #{item.lifnr} record_id = #{item.recordId}
</foreach> </foreach>
</update> </update>

@ -26,7 +26,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap> </resultMap>
<sql id="selectQcCheckTypeProjectVo"> <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 from qc_check_type_project 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
from qc_check_type_project
</sql> </sql>
<select id="selectQcCheckTypeProjectList" parameterType="QcCheckTypeProject" resultMap="QcCheckTypeProjectResult"> <select id="selectQcCheckTypeProjectList" parameterType="QcCheckTypeProject" resultMap="QcCheckTypeProjectResult">
@ -137,7 +139,38 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
and qctp.type_id = #{typeId} and qctp.type_id = #{typeId}
order by qctp.sort order by qctp.sort
</select> </select>
<select id="getCheckTypeProjectList" resultType="com.op.quality.domain.QcCheckTypeProject">
SELECT
ctp.id,
ctp.project_id projectId,
cp.rule_name ruleName,
cp.property_code propertyCode,
ctp.type_id typeId,
ct.check_name,
ctp.standard_value standardValue,
ctp.upper_diff upperDiff,
ctp.down_diff downDiff,
qcp.unit_code unitCode,
ctp.sample,
ctp.material_code materialCode,
p.product_desc_zh materialName,
qcp.check_tool checkTool,
qcp.check_mode checkMode
FROM qc_check_type_project ctp
LEFT JOIN qc_check_project cp ON ctp.project_id = cp.id
left join qc_check_type ct on ct.id = ctp.type_id
left join base_product p on p.product_code = ctp.material_code
<where>
AND ctp.del_flag = '0' AND cp.del_flag = '0'
<if test="groupId != null and groupId != ''"> and ctp.group_id = #{groupId}</if>
</where>
order by ctp.type_id
</select>
<select id="getDictMap" resultType="com.op.system.api.domain.SysDictData">
select dict_label dictLabel,
dict_value dictValue
from sys_dict_data where dict_type = #{dictType} and status = '0'
</select>
<insert id="insertQcCheckTypeProject" parameterType="QcCheckTypeProject"> <insert id="insertQcCheckTypeProject" parameterType="QcCheckTypeProject">
insert into qc_check_type_project insert into qc_check_type_project
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">

@ -248,12 +248,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
qct.material_code, qct.material_name, qct.quality, qct.unit, qct.material_code, qct.material_name, qct.quality, qct.unit,
qct.supplier_code, qct.supplier_name, qct.income_time, qct.check_loc, qct.supplier_code, qct.supplier_name, qct.income_time, qct.check_loc,
qct.check_status, qct.check_man_code,qct.check_man_name, qct.check_time, qct.check_result, qct.check_status, qct.check_man_code,qct.check_man_name, qct.check_time, qct.check_result,
qct.status,qct.create_by,qct.create_time qct.status,qct.create_by,qct.create_time,qct.check_type
from qc_check_task qct from qc_check_task qct
<where> <where>
and qct.del_flag = '0' and qct.del_flag = '0'
<if test="checkType != null and checkType != ''"> and qct.check_type = #{checkType}</if> <if test="checkType != null and checkType != ''"> and qct.check_type = #{checkType}</if>
<if test="checkManCode != null and checkManCode != ''"> and qct.check_man_code = #{checkManCode}</if> <if test="checkManCode != null and checkManCode != ''"> and qct.check_man_code = #{checkManCode}</if>
<if test="checkStatus != null and checkStatus != ''"> and qct.check_status in (#{checkStatus})</if>
</where> </where>
order by qct.create_time desc order by qct.create_time desc
</select> </select>

@ -176,7 +176,7 @@ public class SapController extends BaseController {
calendar.setTime(maxTime0); calendar.setTime(maxTime0);
calendar.add(Calendar.DAY_OF_YEAR, 1); calendar.add(Calendar.DAY_OF_YEAR, 1);
Date maxTime = calendar.getTime(); Date maxTime = calendar.getTime();
qo.setAedat(DateFormatUtils.format(maxTime, "yyyyMMdd"));//修改日期20230923 // qo.setAedat(DateFormatUtils.format(maxTime, "yyyyMMdd"));//修改日期20230923
} }
qo.setWerks(dateSource.get("poolName").replace("ds_", ""));//工厂 qo.setWerks(dateSource.get("poolName").replace("ds_", ""));//工厂
@ -202,6 +202,19 @@ public class SapController extends BaseController {
return sapMaterialPreparationService.MaterialPreparation(shopOrder); return sapMaterialPreparationService.MaterialPreparation(shopOrder);
} }
/**
*
* ***
* @param sapBackflushMPQueryList
* @return
*/
@PostMapping("/sapBackflushMP")
@Log(title = "", businessType = BusinessType.SAP)
public R sapBackflushMP(@RequestBody List<SapBackflushMPQuery> sapBackflushMPQueryList){
return sapItemSyncService.sapBackflushMP(sapBackflushMPQueryList);
}
@PostMapping("/sapMaterialPosting") @PostMapping("/sapMaterialPosting")
@Log(title = "订单物料领料过账、原材料补料、订单物料退料过账接口MB1A", businessType = BusinessType.SAP) @Log(title = "订单物料领料过账、原材料补料、订单物料退料过账接口MB1A", businessType = BusinessType.SAP)
public R sapMaterialPosting(@RequestBody SapMaterialPosting sapMaterialPosting){ public R sapMaterialPosting(@RequestBody SapMaterialPosting sapMaterialPosting){
@ -223,13 +236,14 @@ public class SapController extends BaseController {
/** /**
* *
* @param shopOrder *
* @param sapCloseOrderQuery
* @return * @return
*/ */
@PostMapping("/sapCloseOrder") @PostMapping("/sapCloseOrder")
@Log(title = "生产订单关闭接口", businessType = BusinessType.SAP) @Log(title = "生产订单关闭接口", businessType = BusinessType.SAP)
public R sapCloseOrder(@RequestParam("shopOrder") String shopOrder){ public R sapCloseOrder(@RequestBody SapCloseOrderQuery sapCloseOrderQuery){
return sapOrderService.sapCloseOrder(shopOrder); return sapOrderService.sapCloseOrder(sapCloseOrderQuery);
} }
/** /**

@ -0,0 +1,117 @@
package com.op.sap.domain.vo;
/**
*
* auth YangWL
*
* MATNR CHAR 18 0
* PLANT CHAR 4 0
* GR_RCPT CHAR 12 0 /
* LGORT CHAR 4 0
* UMLGO CHAR 4 0 /
* QUANTITY QUAN 13 3
* MEINS UNIT 3 0
* BATCH CHAR 10 0
* MOVE_BATCH CHAR 10 0 /
*/
public class SapBackflushMPQuery {
private String matnr;
private String plant;
private String gr_rcpt;
private String lgort;
private String umlgo;
private String quantity;
private String meins;
private String batch;
private String move_batch;
public String getMatnr() {
return matnr;
}
public void setMatnr(String matnr) {
this.matnr = matnr;
}
public String getPlant() {
return plant;
}
public void setPlant(String plant) {
this.plant = plant;
}
public String getGr_rcpt() {
return gr_rcpt;
}
public void setGr_rcpt(String gr_rcpt) {
this.gr_rcpt = gr_rcpt;
}
public String getLgort() {
return lgort;
}
public void setLgort(String lgort) {
this.lgort = lgort;
}
public String getUmlgo() {
return umlgo;
}
public void setUmlgo(String umlgo) {
this.umlgo = umlgo;
}
public String getQuantity() {
return quantity;
}
public void setQuantity(String quantity) {
this.quantity = quantity;
}
public String getMeins() {
return meins;
}
public void setMeins(String meins) {
this.meins = meins;
}
public String getBatch() {
return batch;
}
public void setBatch(String batch) {
this.batch = batch;
}
public String getMove_batch() {
return move_batch;
}
public void setMove_batch(String move_batch) {
this.move_batch = move_batch;
}
@Override
public String toString() {
return "SapBackflushMPQuery{" +
"matnr='" + matnr + '\'' +
", plant='" + plant + '\'' +
", gr_rcpt='" + gr_rcpt + '\'' +
", lgort='" + lgort + '\'' +
", umlgo='" + umlgo + '\'' +
", quantity='" + quantity + '\'' +
", meins='" + meins + '\'' +
", batch='" + batch + '\'' +
", move_batch='" + move_batch + '\'' +
'}';
}
}

@ -0,0 +1,23 @@
package com.op.sap.domain.vo;
public class SapCloseOrderQuery {
private String leadOrder;
private String order;
public String getLeadOrder() {
return leadOrder;
}
public void setLeadOrder(String leadOrder) {
this.leadOrder = leadOrder;
}
public String getOrder() {
return order;
}
public void setOrder(String order) {
this.order = order;
}
}

@ -1,6 +1,7 @@
package com.op.sap.service; package com.op.sap.service;
import com.op.common.core.domain.R; import com.op.common.core.domain.R;
import com.op.sap.domain.vo.SapBackflushMPQuery;
import com.op.sap.domain.vo.SapItemQuery; import com.op.sap.domain.vo.SapItemQuery;
import com.op.sap.domain.vo.SapMaterialPosting; import com.op.sap.domain.vo.SapMaterialPosting;
import com.op.system.api.domain.sap.SapBaseProduct; import com.op.system.api.domain.sap.SapBaseProduct;
@ -25,4 +26,6 @@ public interface SapItemSyncService {
*/ */
R sapMaterialPosting(SapMaterialPosting sapMaterialPosting); R sapMaterialPosting(SapMaterialPosting sapMaterialPosting);
R sapBackflushMP(List<SapBackflushMPQuery> sapBackflushMPQueryList);
} }

@ -2,6 +2,7 @@ package com.op.sap.service;
import com.op.common.core.domain.R; import com.op.common.core.domain.R;
import com.op.sap.domain.vo.SapCloseOrderQuery;
import com.op.sap.domain.vo.SapPurchaseOrderQuery; import com.op.sap.domain.vo.SapPurchaseOrderQuery;
import com.op.system.api.domain.sap.SapCreateOrder; import com.op.system.api.domain.sap.SapCreateOrder;
import com.op.system.api.domain.sap.SapRFW; import com.op.system.api.domain.sap.SapRFW;
@ -32,11 +33,11 @@ public interface SapOrderService {
/** /**
* *
* @param shopOrder * @param sapCloseOrderQuery
* @return * @return
*/ */
R sapCloseOrder(String shopOrder); R sapCloseOrder(SapCloseOrderQuery sapCloseOrderQuery);
/** /**
* *

@ -8,6 +8,7 @@ import com.op.common.core.utils.DateUtils;
import com.op.common.core.utils.StringUtils; import com.op.common.core.utils.StringUtils;
import com.op.common.core.utils.bean.BeanValidators; import com.op.common.core.utils.bean.BeanValidators;
import com.op.common.security.utils.SecurityUtils; import com.op.common.security.utils.SecurityUtils;
import com.op.sap.domain.vo.SapBackflushMPQuery;
import com.op.sap.domain.vo.SapItemQuery; import com.op.sap.domain.vo.SapItemQuery;
import com.op.sap.domain.vo.SapMaterialPosting; import com.op.sap.domain.vo.SapMaterialPosting;
import com.op.sap.mapper.SapBaseProductMapper; import com.op.sap.mapper.SapBaseProductMapper;
@ -98,13 +99,6 @@ public class SapItemSyncImpl implements SapItemSyncService {
S_LAEDA.setValue("HIGH", END_DATE); S_LAEDA.setValue("HIGH", END_DATE);
} }
// 获取调用 RFC 函数对象 // 获取调用 RFC 函数对象
func.execute(dest); func.execute(dest);
// 获取 内表 - ZMES_PRO // 获取 内表 - ZMES_PRO
@ -297,6 +291,68 @@ public class SapItemSyncImpl implements SapItemSyncService {
} }
} }
/**
*
* @param sapBackflushMPQueryList
* @return
*/
@Override
public R sapBackflushMP(List<SapBackflushMPQuery> sapBackflushMPQueryList) {
try {
JCoRepository repository = dest.getRepository();
JCoFunction func = repository.getFunction("ZPPR_MES_GOODSMVT_CREATE_B");
if (func == null) {
throw new RuntimeException("Function does not exist in SAP");
}
JCoTable L_ITEM = func.getTableParameterList().getTable("L_ITEM");
System.out.println(L_ITEM);
//
// int successNum = 0;
// int failureNum = 0;
// StringBuilder successMsg = new StringBuilder();
// StringBuilder failureMsg = new StringBuilder();
// log.info("反冲物料开始过账----------------------------------------");
// for (int i = 0; i < sapBackflushMPQueryList.size(); i++) {
// L_ITEM.setRow(i);
// L_ITEM.appendRow();
// L_ITEM.setValue("MATNR",sfp.getMatnr());
// }
for (SapBackflushMPQuery sfp:sapBackflushMPQueryList){
// if (StringUtils.isEmpty(sfp.getMatnr())){
// return R.fail("物料号为空!");
// }
// if (StringUtils.isEmpty(sfp.getPlant())){
//
// }
L_ITEM.appendRow();
L_ITEM.setValue("MATNR",sfp.getMatnr());
L_ITEM.setValue("PLANT",sfp.getPlant());
L_ITEM.setValue("GR_RCPT",sfp.getGr_rcpt());
L_ITEM.setValue("LGORT",sfp.getLgort());
L_ITEM.setValue("UMLGO",sfp.getUmlgo());
L_ITEM.setValue("QUANTITY",sfp.getQuantity());
L_ITEM.setValue("MEINS",sfp.getMeins());
L_ITEM.setValue("BATCH",sfp.getBatch());
L_ITEM.setValue("MOVE_BATCH",sfp.getMove_batch());
}
return R.ok();
}catch (Exception e){
return R.fail(e.getMessage());
}
}
public static void main(String[] args) {
SapBackflushMPQuery sapBackflushMPQuery=new SapBackflushMPQuery();
System.out.println(sapBackflushMPQuery.toString());
}
public String importProducts(List<SapBaseProduct> sapBaseProductList){ public String importProducts(List<SapBaseProduct> sapBaseProductList){
if (StringUtils.isNull(sapBaseProductList) || sapBaseProductList.size() == 0) if (StringUtils.isNull(sapBaseProductList) || sapBaseProductList.size() == 0)
{ {

@ -6,6 +6,7 @@ import com.op.common.core.utils.DateUtils;
import com.op.common.core.utils.StringUtils; import com.op.common.core.utils.StringUtils;
import com.op.common.core.utils.uuid.IdUtils; import com.op.common.core.utils.uuid.IdUtils;
import com.op.sap.domain.vo.SapCloseOrderQuery;
import com.op.sap.domain.vo.SapPurchaseOrderQuery; import com.op.sap.domain.vo.SapPurchaseOrderQuery;
import com.op.sap.service.SapOrderService; import com.op.sap.service.SapOrderService;
@ -202,8 +203,9 @@ public class SapOrderServiceImpl implements SapOrderService {
} }
@Override @Override
public R sapCloseOrder(String shopOrder) { public R sapCloseOrder(SapCloseOrderQuery sapCloseOrderQuery) {
String L_MSG=null;
StringBuilder Msg = new StringBuilder();
try { try {
//获取连接 //获取连接
// JCoDestination dest = SAPConnUtils.connect(); // JCoDestination dest = SAPConnUtils.connect();
@ -215,19 +217,26 @@ public class SapOrderServiceImpl implements SapOrderService {
// 配置传入参数 // 配置传入参数
JCoParameterList jCoParameterList = func.getImportParameterList(); JCoParameterList jCoParameterList = func.getImportParameterList();
if (StringUtils.isEmpty(shopOrder)){ if (StringUtils.isEmpty(sapCloseOrderQuery.getLeadOrder())){
return R.fail("订单号为空"); return R.fail("订单号为空");
} }
jCoParameterList.setValue("P_AUFNR",shopOrder); if (StringUtils.isEmpty(sapCloseOrderQuery.getOrder())){
return R.fail("子订单号为空");
}
//关闭母订单
jCoParameterList.setValue("P_AUFNR",sapCloseOrderQuery.getLeadOrder());
func.execute(dest);//执行调用函数 func.execute(dest);//执行调用函数
JCoParameterList J= func.getExportParameterList(); // JCoParameterList J= func.getExportParameterList();
System.out.println(J); // System.out.println(J);
L_MSG= func.getExportParameterList().getString("L_MSG"); String L_MSG1= func.getExportParameterList().getString("L_MSG");
if (StringUtils.isEmpty(L_MSG)){ Msg.append(sapCloseOrderQuery.getLeadOrder()+L_MSG1+";");
return R.fail("订单关闭失败");
}
return R.ok(L_MSG);
//关闭子订单
jCoParameterList.setValue("P_AUFNR",sapCloseOrderQuery.getOrder());
func.execute(dest);//执行调用函数
String L_MSG2= func.getExportParameterList().getString("L_MSG");
Msg.append(sapCloseOrderQuery.getOrder()+L_MSG2);
return R.ok(null,Msg.toString());
}catch (Exception e){ }catch (Exception e){
return R.fail(e.getMessage()); return R.fail(e.getMessage());
} }
@ -260,7 +269,7 @@ public class SapOrderServiceImpl implements SapOrderService {
if (sapRFW.getLt_gs()==null){ if (sapRFW.getLt_gs()==null){
return R.fail("生产订单报工工时为空"); return R.fail("生产订单报工工时为空");
} }
if (sapRFW.getLt_hw()==null){ if (sapRFW.getLt_hwList()==null){
return R.fail("生产订单报工货物移动为空"); return R.fail("生产订单报工货物移动为空");
} }
/** /**
@ -280,9 +289,12 @@ public class SapOrderServiceImpl implements SapOrderService {
*/ */
JCoTable LT_HW_jCoTable = func.getTableParameterList().getTable("LT_HW"); JCoTable LT_HW_jCoTable = func.getTableParameterList().getTable("LT_HW");
System.out.println("LT_HW_jCoTable"+LT_HW_jCoTable); System.out.println("LT_HW_jCoTable"+LT_HW_jCoTable);
for (SapRFW.lt_hw lt_hw:sapRFW.getLt_hwList()){
LT_HW_jCoTable.appendRow(); LT_HW_jCoTable.appendRow();
LT_HW_jCoTable.setValue("MATERIAL", sapRFW.getLt_hw().getMaterial()); LT_HW_jCoTable.setValue("MATERIAL", lt_hw.getMaterial());
LT_HW_jCoTable.setValue("ENTRY_QNT", sapRFW.getLt_hw().getEntry_qnt()); LT_HW_jCoTable.setValue("ENTRY_QNT", lt_hw.getEntry_qnt());
}
func.execute(dest);//执行调用函数 func.execute(dest);//执行调用函数
JCoParameterList J= func.getExportParameterList(); JCoParameterList J= func.getExportParameterList();
@ -364,7 +376,7 @@ public class SapOrderServiceImpl implements SapOrderService {
JCoFunction func = repository.getFunction("ZPPR_MES_PRODORD_CHANGE"); JCoFunction func = repository.getFunction("ZPPR_MES_PRODORD_CHANGE");
// 配置传入参数 // 配置传入参数
JCoParameterList jCoParameterList = func.getImportParameterList(); JCoParameterList jCoParameterList = func.getImportParameterList();
System.out.println(jCoParameterList); //System.out.println(jCoParameterList);
if (func == null) { if (func == null) {
throw new RuntimeException("Function does not exist in SAP"); throw new RuntimeException("Function does not exist in SAP");
} }
@ -381,10 +393,13 @@ public class SapOrderServiceImpl implements SapOrderService {
jCoParameterList.setValue("P_QUANTITY",sapProOrder.getQuantity()); jCoParameterList.setValue("P_QUANTITY",sapProOrder.getQuantity());
func.execute(dest);//执行调用函数 func.execute(dest);//执行调用函数
JCoParameterList J= func.getExportParameterList(); JCoParameterList J= func.getExportParameterList();
System.out.println(J); String RETCODE= func.getExportParameterList().getString("RETCODE");
String MESSAGE= func.getExportParameterList().getString("MESSAGE"); String MESSAGE= func.getExportParameterList().getString("MESSAGE");
System.out.println(MESSAGE); if ((Constants.FAIL).equals(Integer.parseInt(RETCODE))){
return R.ok(MESSAGE); return R.fail(null,"订单号:"+sapProOrder.getAufnr()+MESSAGE);
}else {
return R.ok(null,"订单号:"+sapProOrder.getAufnr()+MESSAGE);
}
}catch (Exception e){ }catch (Exception e){
return R.fail(e.getMessage()); return R.fail(e.getMessage());
} }

@ -176,8 +176,8 @@ public class SapRouterServiceImpl implements SapRouterService {
"删除标识:" + LOEKZ+ "删除标识:" + LOEKZ+
"物料号:" + MATNR+ "物料号:" + MATNR+
"物料描述:" + MAKTX+ "物料描述:" + MAKTX+
"任务清单使用"+VERWE+ "任务清单使用"+VERWE+
"状态"+STATU+ "状态"+STATU+
"任务清单描述:" + KTEXT+ "任务清单描述:" + KTEXT+
" 操作/活动编号:" + VORNR+ " 操作/活动编号:" + VORNR+
"控制码:" + STEUS+ "控制码:" + STEUS+
@ -190,16 +190,14 @@ public class SapRouterServiceImpl implements SapRouterService {
"工作中心:" + ARBPL+ "工作中心:" + ARBPL+
"基本数量:" + BMSCH+ "基本数量:" + BMSCH+
"工序计量单位:" + MEINH+ "工序计量单位:" + MEINH+
"标准值01" + VGW01+ "标准值01(机器)" + VGW01+
"计量单位01" + VGE01+ "计量单位01" + VGE01+
"标准值02" + VGE02+ "标准值02人工" + VGW02+
"计量单位02" + VGE02+ "计量单位02" + VGE02+
"标准值03" + VGE03+ "标准值03折旧" + VGW03+
"计量单位03" + VGE03+ "计量单位03" + VGE03+
" 标准值04" + VGE04+ "标准值04其它" + VGW04+
" 计量单位04" + VGE04); " 计量单位04" + VGE04);
//工艺路线下的工序 //工艺路线下的工序
if (StringUtil.isBlank(PLNNR)) { if (StringUtil.isBlank(PLNNR)) {
throw new ServiceException("任务清单组码不能为空"); throw new ServiceException("任务清单组码不能为空");
@ -239,6 +237,18 @@ public class SapRouterServiceImpl implements SapRouterService {
sapProRoute.setAttr1("job");//说明是来自定时任务 sapProRoute.setAttr1("job");//说明是来自定时任务
sapProRoute.setCreateTime(DateUtils.dateTime("yyyy-MM-dd", ANDAT)); sapProRoute.setCreateTime(DateUtils.dateTime("yyyy-MM-dd", ANDAT));
sapProRoute.setRouteVersion("1.0"); sapProRoute.setRouteVersion("1.0");
//机器
sapProRoute.setTecMachine(VGW01);
sapProRoute.setTecMachineUnit(VGE01);
//人工
sapProRoute.setTecMan(VGW02);
sapProRoute.setTecManUnit(VGE02);
//折旧
sapProRoute.setTecDepreciation(VGW03);
sapProRoute.setTecDepreciationUnit(VGE03);
//其它
sapProRoute.setTecOther(VGW04);
sapProRoute.setTecOtherUnit(VGE04);
sapProRouteMapper.insertProRoute(sapProRoute); sapProRouteMapper.insertProRoute(sapProRoute);
//增加工艺路线和工序的关系 //增加工艺路线和工序的关系
@ -265,58 +275,79 @@ public class SapRouterServiceImpl implements SapRouterService {
successNum++; successNum++;
} }
} }
//更新工艺路线
else {
sapProRoute.setRouteName(KTEXT);
sapProRoute.setRouteDesc(KTEXT);
sapProRoute.setEnableFlag("Y");
else{ //机器
//验证是否存在工序 sapProRoute.setTecMachine(VGW01);
sapProProcess.setProcessName(LTXA1); sapProRoute.setTecMachineUnit(VGE01);
SapProProcess operation = sapProProcessMapper.selectProProcessByProcessName(sapProProcess); //人工
//验证原材料是否存在 sapProRoute.setTecMan(VGW02);
SapBaseProduct sapBaseProduct=new SapBaseProduct(); sapProRoute.setTecManUnit(VGE02);
sapBaseProduct.setProductCode(MATNR); //折旧
sapBaseProduct = sapBaseProductMapper.selectBaseProductByProductCode(sapBaseProduct); sapProRoute.setTecDepreciation(VGW03);
if (StringUtils.isNull(operation)){ sapProRoute.setTecDepreciationUnit(VGE03);
failureNum++; //其它
failureMsg.append(failureNum+"、工艺路线【" + PLNNR + "】下的工序【" + LTXA1 + "】不存在!"); sapProRoute.setTecOther(VGW04);
} sapProRoute.setTecOtherUnit(VGE04);
else if (StringUtils.isNull(sapBaseProduct)){ sapProRoute.setUpdateBy(ANNAM);
failureNum++; sapProRoute.setUpdateTime(DateUtils.getNowDate());
failureMsg.append(failureNum+"、工艺路线【" + PLNNR + "】下的物料【" + MATNR + "】不存在!"); sapProRouteMapper.updateProRoute(sapProRoute);
}
else if(!StringUtils.isNull(operation) && !StringUtils.isNull(sapBaseProduct)) {
//验证是否存在工艺路线和工序的关系
SapProRouteProcess sapProRouteProcess = new SapProRouteProcess();
sapProRouteProcess.setRouteId(sapProRoute.getRouteId());
sapProRouteProcess.setProcessId(operation.getProcessId());
List<SapProRouteProcess> sapProRouteProcessList = sapProRouteProcessMapper.selectProRouteProcessList(sapProRouteProcess);
if (sapProRouteProcessList .size()==0) {
//增加工艺路线和工序的关系
sapProRouteProcess.setRecordId(IdUtils.fastSimpleUUID());
sapProRouteProcess.setRouteId(sapProRoute.getRouteId());
sapProRouteProcess.setProcessId(operation.getProcessId());
sapProRouteProcess.setProcessCode(operation.getProcessCode());
sapProRouteProcess.setProcessName(operation.getProcessName());
sapProRouteProcess.setOrderNum(1);
sapProRouteProcess.setCreateTime(DateUtils.dateTime("yyyy-MM-dd", ANDAT));
sapProRouteProcess.setCreateBy(ANNAM);
sapProRouteProcessMapper.insertProRouteProcess(sapProRouteProcess);
}
//验证是否存在工艺路线和物料的关系
SapProRouteProduct sapProRouteProduct = new SapProRouteProduct();
sapProRouteProduct.setRouteId(sapProRoute.getRouteId());
sapProRouteProduct.setItemCode(MATNR);
List<SapProRouteProduct> sapProRouteProductList = sapProRouteProductMapper.selectProRouteProductList(sapProRouteProduct);
if (sapProRouteProductList .size()==0) {
sapProRouteProduct.setRecordId(IdUtils.fastSimpleUUID());
sapProRouteProduct.setRouteId(sapProRoute.getRouteId());
sapProRouteProduct.setItemId(sapBaseProduct.getProductId());
sapProRouteProduct.setItemCode(MATNR);
sapProRouteProduct.setItemName(sapBaseProduct.getProductDescZh());
sapProRouteProduct.setCreateBy(ANNAM);
sapProRouteProduct.setCreateTime(DateUtils.dateTime("yyyy-MM-dd", ANDAT));
sapProRouteProductMapper.insertProRouteProduct(sapProRouteProduct);
}
}
} }
// else{
// //验证是否存在工序
// sapProProcess.setProcessName(LTXA1);
// SapProProcess operation = sapProProcessMapper.selectProProcessByProcessName(sapProProcess);
// //验证产品是否存在
// SapBaseProduct sapBaseProduct=new SapBaseProduct();
// sapBaseProduct.setProductCode(MATNR);
// sapBaseProduct = sapBaseProductMapper.selectBaseProductByProductCode(sapBaseProduct);
// if (StringUtils.isNull(operation)){
// failureNum++;
// failureMsg.append(failureNum+"、工艺路线【" + PLNNR + "】下的工序【" + LTXA1 + "】不存在!");
// }
// else if (StringUtils.isNull(sapBaseProduct)){
// failureNum++;
// failureMsg.append(failureNum+"、工艺路线【" + PLNNR + "】下的物料【" + MATNR + "】不存在!");
// }
// else if(!StringUtils.isNull(operation) && !StringUtils.isNull(sapBaseProduct)) {
// //验证是否存在工艺路线和工序的关系
// SapProRouteProcess sapProRouteProcess = new SapProRouteProcess();
// sapProRouteProcess.setRouteId(sapProRoute.getRouteId());
// sapProRouteProcess.setProcessId(operation.getProcessId());
// List<SapProRouteProcess> sapProRouteProcessList = sapProRouteProcessMapper.selectProRouteProcessList(sapProRouteProcess);
// if (sapProRouteProcessList .size()==0) {
// //增加工艺路线和工序的关系
// sapProRouteProcess.setRecordId(IdUtils.fastSimpleUUID());
// sapProRouteProcess.setRouteId(sapProRoute.getRouteId());
// sapProRouteProcess.setProcessId(operation.getProcessId());
// sapProRouteProcess.setProcessCode(operation.getProcessCode());
// sapProRouteProcess.setProcessName(operation.getProcessName());
// sapProRouteProcess.setOrderNum(1);
// sapProRouteProcess.setCreateTime(DateUtils.dateTime("yyyy-MM-dd", ANDAT));
// sapProRouteProcess.setCreateBy(ANNAM);
// sapProRouteProcessMapper.insertProRouteProcess(sapProRouteProcess);
// }
// //验证是否存在工艺路线和物料的关系
// SapProRouteProduct sapProRouteProduct = new SapProRouteProduct();
// sapProRouteProduct.setRouteId(sapProRoute.getRouteId());
// sapProRouteProduct.setItemCode(MATNR);
// List<SapProRouteProduct> sapProRouteProductList = sapProRouteProductMapper.selectProRouteProductList(sapProRouteProduct);
// if (sapProRouteProductList .size()==0) {
// sapProRouteProduct.setRecordId(IdUtils.fastSimpleUUID());
// sapProRouteProduct.setRouteId(sapProRoute.getRouteId());
// sapProRouteProduct.setItemId(sapBaseProduct.getProductId());
// sapProRouteProduct.setItemCode(MATNR);
// sapProRouteProduct.setItemName(sapBaseProduct.getProductDescZh());
// sapProRouteProduct.setCreateBy(ANNAM);
// sapProRouteProduct.setCreateTime(DateUtils.dateTime("yyyy-MM-dd", ANDAT));
// sapProRouteProductMapper.insertProRouteProduct(sapProRouteProduct);
// }
// }
// }
} }

@ -24,6 +24,7 @@ public class SAPConnUtils {
destination = JCoDestinationManager.getDestination(ABAP_AS_POOLED); destination = JCoDestinationManager.getDestination(ABAP_AS_POOLED);
if (destination!=null){ if (destination!=null){
logger.info("连接SAP成功"); logger.info("连接SAP成功");
System.err.println("连接SAP成功");
} }
} catch (JCoException e) { } catch (JCoException e) {
logger.info("连接SAP失败错误: " + e.toString()); logger.info("连接SAP失败错误: " + e.toString());

@ -97,6 +97,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="updateTime != null">update_time,</if> <if test="updateTime != null">update_time,</if>
<if test="routeVersion != null">route_version,</if> <if test="routeVersion != null">route_version,</if>
<if test="needCheck != null">need_check,</if> <if test="needCheck != null">need_check,</if>
<if test="tecMan != null">tec_man,</if>
<if test="tecManUnit != null">tec_man_unit,</if>
<if test="tecMachine != null">tec_machine,</if>
<if test="tecMachineUnit != null">tec_machine_unit,</if>
<if test="tecDepreciation != null">tec_depreciation,</if>
<if test="tecDepreciationUnit != null">tec_depreciation_unit,</if>
<if test="tecOther != null">tec_other,</if>
<if test="tecOtherUnit != null">tec_ohter_unit,</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
@ -116,6 +124,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="updateTime != null">#{updateTime},</if> <if test="updateTime != null">#{updateTime},</if>
<if test="routeVersion != null">#{routeVersion},</if> <if test="routeVersion != null">#{routeVersion},</if>
<if test="needCheck != null">#{needCheck},</if> <if test="needCheck != null">#{needCheck},</if>
<if test="tecMan != null">#{tecMan},</if>
<if test="tecManUnit != null">#{tecManUnit},</if>
<if test="tecMachine != null">#{tecMachine},</if>
<if test="tecMachineUnit != null">#{tecMachineUnit},</if>
<if test="tecDepreciation != null">#{tecDepreciation},</if>
<if test="tecDepreciationUnit != null">#{tecDepreciationUnit},</if>
<if test="tecOther != null">#{tecOther},</if>
<if test="tecOtherUnit != null">#{tecOtherUnit},</if>
</trim> </trim>
</insert> </insert>
@ -128,6 +144,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="routeDesc != null">route_desc = #{routeDesc},</if> <if test="routeDesc != null">route_desc = #{routeDesc},</if>
<if test="enableFlag != null and enableFlag != ''">enable_flag = #{enableFlag},</if> <if test="enableFlag != null and enableFlag != ''">enable_flag = #{enableFlag},</if>
<if test="remark != null">remark = #{remark},</if> <if test="remark != null">remark = #{remark},</if>
<if test="tecMan != null">tec_man = #{tecMan},</if>
<if test="tecManUnit != null">tec_man_unit = #{tecManUnit},</if>
<if test="tecMachine != null">tec_machine = #{tecMachine},</if>
<if test="tecMachineUnit != null">tec_machine_unit = #{tecMachineUnit},</if>
<if test="tecDepreciation != null">tec_depreciation = #{tecDepreciation},</if>
<if test="tecDepreciationUnit != null">tec_depreciation_unit = #{tecDepreciationUnit},</if>
<if test="tecOther != null">tec_other = #{tecOther},</if>
<if test="tecOtherUnit != null">tec_ohter_unit = #{tecOtherUnit},</if>
<if test="attr1 != null">attr1 = #{attr1},</if> <if test="attr1 != null">attr1 = #{attr1},</if>
<if test="attr2 != null">attr2 = #{attr2},</if> <if test="attr2 != null">attr2 = #{attr2},</if>
<if test="attr3 != null">attr3 = #{attr3},</if> <if test="attr3 != null">attr3 = #{attr3},</if>

Loading…
Cancel
Save