Merge remote-tracking branch 'origin/master'

highway
wws 1 year ago
commit 428e203946

@ -1,5 +1,7 @@
package com.op.system.api.domain.sap;
import java.util.List;
/**
*
*/
@ -7,14 +9,14 @@ public class SapRFW {
private String aufnr;
private String gamng;
private lt_gs lt_gs;
private lt_hw lt_hw;
private List<lt_hw> lt_hwList;
public SapRFW.lt_hw getLt_hw() {
return lt_hw;
public List<lt_hw> getLt_hwList() {
return lt_hwList;
}
public void setLt_hw(SapRFW.lt_hw lt_hw) {
this.lt_hw = lt_hw;
public void setLt_hwList(List<lt_hw> lt_hwList) {
this.lt_hwList = lt_hwList;
}
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) {
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);
List<EquRepairWorkOrder> selectRepairRecordByEquipmentCode(String equipmentCode);
/**
*
* 5
*/
String getDeviceRefreshTime(EquOperationRecord equOperationRecord);
}

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

@ -206,4 +206,15 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService {
EquOperationRecord equipmentIntactRate = equOperationRecordMapper.getEquipmentIntactRate(equOperationRecord);
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'
</select>
<select id="getDeviceRefreshTime" resultType="java.lang.String">
select dict_value
from sys_dict_data
where dict_label = 'device_refresh_time'
</select>
</mapper>

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

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

@ -209,7 +209,7 @@ public class OpenServiceImpl implements OpenService {
List<String> sapWorkOrders = openMapper.getSapWorkOrder(work.getWorkorderCode());//根据belong_work_order找到所有要关闭的虚拟工单
for(String sapWorkOrder:sapWorkOrders){
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.setUpdateTime(DateUtils.getNowDate());

@ -124,7 +124,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select>
<select id="getSapWorkOrder" resultType="java.lang.String">
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>
</mapper>

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

@ -26,7 +26,7 @@ import com.op.common.core.web.page.TableDataInfo;
/**
* Controller
*
*
* @author Open Platform
* @date 2023-10-17
*/
@ -35,8 +35,6 @@ import com.op.common.core.web.page.TableDataInfo;
public class QcCheckTypeProjectController extends BaseController {
@Autowired
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.domain.AjaxResult;
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.quality.domain.*;
import com.op.quality.service.*;
import com.op.system.api.RemoteMesService;
import com.op.system.api.domain.SysDictData;
import com.op.system.api.domain.dto.WCSDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
@ -39,7 +41,8 @@ public class QuaController extends BaseController {
private IQcCheckTaskWarehousingService qcCheckTaskWarehousingService;
@Autowired
private IQcCheckTypeService qcCheckTypeService;
@Autowired
private IQcMaterialGroupService qcMaterialGroupService;
@Autowired
private IQcCheckTaskIncomeService qcCheckTaskIncomeService;
@ -179,17 +182,14 @@ public class QuaController extends BaseController {
*
*/
@GetMapping(value = "getCheckTaskList")
public AjaxResult getCheckTaskList(QcCheckTaskIncome qcCheckTaskIncome) {
if(StringUtils.isBlank(qcCheckTaskIncome.getFactoryCode())){
return error("[factoryCode]不能为空");
}
if(StringUtils.isBlank(qcCheckTaskIncome.getCheckType())){
return error("[checkType]不能为空");
}
if(StringUtils.isBlank(qcCheckTaskIncome.getCheckManCode())){
return error("[checkManCode]不能为空");
public TableDataInfo getCheckTaskList(QcCheckTaskIncome qcCheckTaskIncome) {
if(StringUtils.isNotBlank(qcCheckTaskIncome.getCheckStatus())){
qcCheckTaskIncome.setCheckStatus("'"+ qcCheckTaskIncome.getCheckStatus().replace(",","','")+"'");
}
return success(qcProCheckService.getCheckTaskList(qcCheckTaskIncome));
startPage();
List<QcCheckTaskIncome> list = qcProCheckService.getCheckTaskList(qcCheckTaskIncome);
return getDataTable(list);
}
/**
*
@ -204,13 +204,44 @@ public class QuaController extends BaseController {
}
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 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 String typeProjectId;
private String defectCode;
private String checkType;
public String getCheckType() {
return checkType;
}
public void setCheckType(String checkType) {
this.checkType = checkType;
}
public String getDefectCode() {
return defectCode;

@ -70,10 +70,48 @@ public class QcCheckTypeProject extends BaseEntity {
@Excel(name = "物料编码")
private String materialCode;
private String materialName;
private Integer sort;
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() {
return sort;
}

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

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

@ -1,20 +1,22 @@
package com.op.quality.service;
import java.util.List;
import com.op.quality.domain.QcCheckTypeProject;
import com.op.quality.domain.QcMaterialGroup;
import com.op.quality.domain.vo.TreeSelect;
import com.op.system.api.domain.SysDept;
/**
* Service
*
*
* @author materialGroup
* @date 2023-10-16
*/
public interface IQcMaterialGroupService {
/**
*
*
*
* @param id
* @return
*/
@ -22,7 +24,7 @@ public interface IQcMaterialGroupService {
/**
*
*
*
* @param qcMaterialGroup
* @return
*/
@ -38,7 +40,7 @@ public interface IQcMaterialGroupService {
/**
*
*
*
* @param qcMaterialGroup
* @return
*/
@ -46,7 +48,7 @@ public interface IQcMaterialGroupService {
/**
*
*
*
* @param qcMaterialGroup
* @return
*/
@ -54,7 +56,7 @@ public interface IQcMaterialGroupService {
/**
*
*
*
* @param ids
* @return
*/
@ -62,11 +64,13 @@ public interface IQcMaterialGroupService {
/**
*
*
*
* @param id
* @return
*/
public int deleteQcMaterialGroupById(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.QcCheckTypeProject;
import com.op.quality.domain.QcProCheck;
import com.op.system.api.domain.SysDictData;
import java.util.List;
@ -34,4 +35,6 @@ public interface QcProCheckService {
List<QcCheckTaskIncome> getCheckTaskList(QcCheckTaskIncome qcCheckTaskIncome);
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 java.util.List;
@ -19,7 +19,7 @@ import javax.servlet.http.HttpServletRequest;
/**
* Service
*
*
* @author Open Platform
* @date 2023-10-13
*/
@ -30,7 +30,7 @@ public class QcCheckProjectServiceImpl implements IQcCheckProjectService {
/**
*
*
*
* @param id
* @return
*/
@ -42,7 +42,7 @@ public class QcCheckProjectServiceImpl implements IQcCheckProjectService {
/**
*
*
*
* @param qcCheckProject
* @return
*/
@ -54,7 +54,7 @@ public class QcCheckProjectServiceImpl implements IQcCheckProjectService {
/**
*
*
*
* @param qcCheckProject
* @return
*/
@ -77,7 +77,7 @@ public class QcCheckProjectServiceImpl implements IQcCheckProjectService {
/**
*
*
*
* @param qcCheckProject
* @return
*/
@ -91,7 +91,7 @@ public class QcCheckProjectServiceImpl implements IQcCheckProjectService {
/**
*
*
*
* @param ids
* @return
*/
@ -103,7 +103,7 @@ public class QcCheckProjectServiceImpl implements IQcCheckProjectService {
/**
*
*
*
* @param id
* @return
*/

@ -1,4 +1,4 @@
package com.op.quality.service.serviceImpl;
package com.op.quality.service.impl;
import com.alibaba.fastjson2.JSONArray;
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.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.op.common.core.utils.DateUtils;
@ -102,12 +102,12 @@ public class QcCheckReportProductServiceImpl implements IQcCheckReportProductSer
qctp.setTypeId(qcCheckReportIncome.getCheckType());//生产过程检验
qctp.setMaterialCode(qcCheckReportIncome.getMaterialCode());//特性
/**qc_check_type_project**/
List<QcCheckTaskDetail> items = qcCheckTypeProjectMapper.getTPByTypeMaterial(qctp);
if(CollectionUtils.isEmpty(items)){
/**qc_material_group_detail**/
List<QcCheckTaskDetail> items = qcCheckTypeProjectMapper.getTPByTypeMaterial(qctp);
if(CollectionUtils.isEmpty(items)){
/**qc_material_group_detail**/
QcMaterialGroupDetail group = qcMaterialGroupDetailMapper.getGroupByMaterial(qcCheckReportIncome.getMaterialCode());
if(group == null){
return 0;//没有找到检测项目
return 0;//没有找到检测项目
}
qctp.setGroupId(group.getGroupId());//共性
items = qcCheckTypeProjectMapper.getTPByTypeGroup(qctp);

@ -296,6 +296,7 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService {
String factoryCode = details.get(0).getFactoryCode();
String updateBy = details.get(0).getUpdateBy();
String belongId = details.get(0).getBelongTo();
String checkType = details.get(0).getCheckType();
//默认合格
String result = "Y";
@ -318,22 +319,23 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService {
logger.info("qc_check_task:"+n);
/**更新qc_check_task_detail**/
for(QcCheckTaskDetail detail:details){
detail.setUpdateTime(nowTime);
}
n= qcCheckTaskIncomeMapper.updateQcCheckTaskDetails(details);;
n= qcCheckTaskIncomeMapper.updateQcCheckTaskDetails(details);
logger.info("更新qc_check_task_detail:"+n);
//不合格处理
if("N".equals(result)){
// QcCheckUnqualified unqualified = new QcCheckUnqualified();
// unqualified.setId(IdUtils.fastSimpleUUID());
// unqualified.setTaskId(qcCheckTaskIncome.getRecordId());
// unqualified.setCreateTime(DateUtils.getNowDate());
// unqualified.setCreateBy(qcCheckTaskIncome.getUpdateBy());
// unqualified.setFactoryCode(factoryCode);
// unqualified.setType(qcCheckTaskIncome.getCheckType());
// /**qc_check_unqualified**/
// qcCheckUnqualifiedMapper.insertQcCheckUnqualified(unqualified);
QcCheckUnqualified unqualified = new QcCheckUnqualified();
unqualified.setId(IdUtils.fastSimpleUUID());
unqualified.setTaskId(belongId);
unqualified.setCreateTime(DateUtils.getNowDate());
unqualified.setCreateBy(updateBy);
unqualified.setFactoryCode(factoryCode);
unqualified.setType(checkType);
/**qc_check_unqualified**/
n = qcCheckUnqualifiedMapper.insertQcCheckUnqualified(unqualified);
logger.info("qc_check_unqualified:"+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.Map;
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.uuid.IdUtils;
import com.op.common.security.utils.SecurityUtils;
import com.op.system.api.domain.SysDictData;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.op.quality.mapper.QcCheckTypeProjectMapper;
@ -18,7 +21,7 @@ import javax.servlet.http.HttpServletRequest;
/**
* Service
*
*
* @author Open Platform
* @date 2023-10-17
*/
@ -29,7 +32,7 @@ public class QcCheckTypeProjectServiceImpl implements IQcCheckTypeProjectService
/**
*
*
*
* @param id
* @return
*/
@ -41,19 +44,29 @@ public class QcCheckTypeProjectServiceImpl implements IQcCheckTypeProjectService
/**
*
*
*
* @param qcCheckTypeProject
* @return
*/
@Override
@DS("#header.poolName")
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;
}
/**
*
*
*
* @param qcCheckTypeProject
* @return
*/
@ -71,7 +84,7 @@ public class QcCheckTypeProjectServiceImpl implements IQcCheckTypeProjectService
/**
*
*
*
* @param qcCheckTypeProject
* @return
*/
@ -85,7 +98,7 @@ public class QcCheckTypeProjectServiceImpl implements IQcCheckTypeProjectService
/**
*
*
*
* @param ids
* @return
*/
@ -97,7 +110,7 @@ public class QcCheckTypeProjectServiceImpl implements IQcCheckTypeProjectService
/**
*
*
*
* @param id
* @return
*/

@ -1,4 +1,4 @@
package com.op.quality.service.serviceImpl;
package com.op.quality.service.impl;
import java.util.List;
@ -18,7 +18,7 @@ import javax.servlet.http.HttpServletRequest;
/**
* Service
*
*
* @author Open Platform
* @date 2023-10-18
*/
@ -29,7 +29,7 @@ public class QcMaterialGroupDetailServiceImpl implements IQcMaterialGroupDetailS
/**
*
*
*
* @param id
* @return
*/
@ -41,7 +41,7 @@ public class QcMaterialGroupDetailServiceImpl implements IQcMaterialGroupDetailS
/**
*
*
*
* @param qcMaterialGroupDetail
* @return
*/
@ -53,7 +53,7 @@ public class QcMaterialGroupDetailServiceImpl implements IQcMaterialGroupDetailS
/**
*
*
*
* @param qcMaterialGroupDetail
* @return
*/
@ -71,7 +71,7 @@ public class QcMaterialGroupDetailServiceImpl implements IQcMaterialGroupDetailS
/**
*
*
*
* @param qcMaterialGroupDetail
* @return
*/
@ -84,7 +84,7 @@ public class QcMaterialGroupDetailServiceImpl implements IQcMaterialGroupDetailS
/**
*
*
*
* @param ids
* @return
*/
@ -96,7 +96,7 @@ public class QcMaterialGroupDetailServiceImpl implements IQcMaterialGroupDetailS
/**
*
*
*
* @param id
* @return
*/

@ -1,4 +1,4 @@
package com.op.quality.service.serviceImpl;
package com.op.quality.service.impl;
import java.util.ArrayList;
import java.util.Iterator;
@ -7,13 +7,17 @@ import java.util.Map;
import java.util.stream.Collectors;
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.SpringUtils;
import com.op.common.core.utils.StringUtils;
import com.op.common.core.utils.uuid.IdUtils;
import com.op.common.datascope.annotation.DataScope;
import com.op.common.security.utils.SecurityUtils;
import com.op.quality.domain.QcCheckTypeProject;
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.stereotype.Service;
import com.op.quality.mapper.QcMaterialGroupMapper;
@ -26,7 +30,7 @@ import javax.servlet.http.HttpServletRequest;
/**
* Service
*
*
* @author materialGroup
* @date 2023-10-16
*/
@ -34,10 +38,12 @@ import javax.servlet.http.HttpServletRequest;
public class QcMaterialGroupServiceImpl implements IQcMaterialGroupService {
@Autowired
private QcMaterialGroupMapper qcMaterialGroupMapper;
@Autowired
private QcCheckTypeProjectMapper qcCheckTypeProjectMapper;
/**
*
*
*
* @param id
* @return
*/
@ -46,7 +52,7 @@ public class QcMaterialGroupServiceImpl implements IQcMaterialGroupService {
return qcMaterialGroupMapper.selectQcMaterialGroupById(id);
}
@Override
@DataScope(deptAlias = "d")
//@DataScope(deptAlias = "d")
@DS("#header.poolName")
public List<QcMaterialGroup> selectQcMaterialGroupList(QcMaterialGroup qcMaterialGroup) {
return qcMaterialGroupMapper.selectQcMaterialGroupList(qcMaterialGroup);
@ -54,7 +60,7 @@ public class QcMaterialGroupServiceImpl implements IQcMaterialGroupService {
/**
*
*
*
* @param qcMaterialGroup
* @return
*/
@ -119,7 +125,7 @@ public class QcMaterialGroupServiceImpl implements IQcMaterialGroupService {
/**
*
*
*
* @param qcMaterialGroup
* @return
*/
@ -137,7 +143,7 @@ public class QcMaterialGroupServiceImpl implements IQcMaterialGroupService {
/**
*
*
*
* @param qcMaterialGroup
* @return
*/
@ -151,7 +157,7 @@ public class QcMaterialGroupServiceImpl implements IQcMaterialGroupService {
/**
*
*
*
* @param ids
* @return
*/
@ -163,7 +169,7 @@ public class QcMaterialGroupServiceImpl implements IQcMaterialGroupService {
/**
*
*
*
* @param id
* @return
*/
@ -179,6 +185,21 @@ public class QcMaterialGroupServiceImpl implements IQcMaterialGroupService {
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) {
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.op.common.core.domain.BaseFileData;
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.QcProCheckMapper;
import com.op.quality.service.QcProCheckService;
import com.op.system.api.domain.SysDictData;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -127,4 +129,10 @@ public class QcProCheckServiceImpl implements QcProCheckService {
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.List;
@ -20,7 +20,7 @@ import javax.servlet.http.HttpServletRequest;
/**
* Service
*
*
* @author Open Platform
* @date 2023-10-09
*/
@ -35,7 +35,7 @@ public class QcUserMaterialServiceImpl implements IQcUserMaterialService {
/**
*
*
*
* @param userCode
* @return
*/
@ -53,7 +53,7 @@ public class QcUserMaterialServiceImpl implements IQcUserMaterialService {
/**
*
*
*
* @param qcUserMaterial
* @return
*/
@ -65,7 +65,7 @@ public class QcUserMaterialServiceImpl implements IQcUserMaterialService {
/**
*
*
*
* @param qcUserMaterial
* @return
*/
@ -105,7 +105,7 @@ public class QcUserMaterialServiceImpl implements IQcUserMaterialService {
/**
*
*
*
* @param qcUserMaterial
* @return
*/
@ -118,7 +118,7 @@ public class QcUserMaterialServiceImpl implements IQcUserMaterialService {
/**
*
*
*
* @param userCodes
* @return
*/
@ -130,7 +130,7 @@ public class QcUserMaterialServiceImpl implements IQcUserMaterialService {
/**
*
*
*
* @param qcUserMaterial
* @return
*/

@ -131,7 +131,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
td.create_time createTime,
td.update_by updateBy,
td.update_time updateTime,
td.update_time updateTime,
td.belong_to belongTo,
qctp.upper_diff upperDiff,
qctp.down_diff downDiff,
@ -140,8 +139,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
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'
</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
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="recordId != null">record_id,</if>
@ -258,14 +264,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<foreach collection="list" item="item" separator=";">
update qc_check_task_detail
set
zh_desc = #{item.name1},
contact_phone = #{item.telf1},
address = #{item.stras},
factory_code = #{item.bukrs},
create_time= #{item.erdat},
update_time = #{item.erdat}
actual_value = #{item.actualValue},
status = #{item.status},
update_by = #{item.updateBy},
update_time = #{item.updateTime}
where
supplier_code = #{item.lifnr}
record_id = #{item.recordId}
</foreach>
</update>

@ -26,7 +26,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</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 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>
<select id="selectQcCheckTypeProjectList" parameterType="QcCheckTypeProject" resultMap="QcCheckTypeProjectResult">
@ -137,7 +139,38 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
and qctp.type_id = #{typeId}
order by qctp.sort
</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 into qc_check_type_project
<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.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.status,qct.create_by,qct.create_time
qct.status,qct.create_by,qct.create_time,qct.check_type
from qc_check_task qct
<where>
and qct.del_flag = '0'
<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="checkStatus != null and checkStatus != ''"> and qct.check_status in (#{checkStatus})</if>
</where>
order by qct.create_time desc
</select>

@ -176,7 +176,7 @@ public class SapController extends BaseController {
calendar.setTime(maxTime0);
calendar.add(Calendar.DAY_OF_YEAR, 1);
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_", ""));//工厂
@ -202,6 +202,19 @@ public class SapController extends BaseController {
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")
@Log(title = "订单物料领料过账、原材料补料、订单物料退料过账接口MB1A", businessType = BusinessType.SAP)
public R sapMaterialPosting(@RequestBody SapMaterialPosting sapMaterialPosting){
@ -223,13 +236,14 @@ public class SapController extends BaseController {
/**
*
* @param shopOrder
*
* @param sapCloseOrderQuery
* @return
*/
@PostMapping("/sapCloseOrder")
@Log(title = "生产订单关闭接口", businessType = BusinessType.SAP)
public R sapCloseOrder(@RequestParam("shopOrder") String shopOrder){
return sapOrderService.sapCloseOrder(shopOrder);
public R sapCloseOrder(@RequestBody SapCloseOrderQuery sapCloseOrderQuery){
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;
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.SapMaterialPosting;
import com.op.system.api.domain.sap.SapBaseProduct;
@ -25,4 +26,6 @@ public interface SapItemSyncService {
*/
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.sap.domain.vo.SapCloseOrderQuery;
import com.op.sap.domain.vo.SapPurchaseOrderQuery;
import com.op.system.api.domain.sap.SapCreateOrder;
import com.op.system.api.domain.sap.SapRFW;
@ -32,11 +33,11 @@ public interface SapOrderService {
/**
*
* @param shopOrder
* @param sapCloseOrderQuery
* @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.bean.BeanValidators;
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.SapMaterialPosting;
import com.op.sap.mapper.SapBaseProductMapper;
@ -98,13 +99,6 @@ public class SapItemSyncImpl implements SapItemSyncService {
S_LAEDA.setValue("HIGH", END_DATE);
}
// 获取调用 RFC 函数对象
func.execute(dest);
// 获取 内表 - 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){
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.uuid.IdUtils;
import com.op.sap.domain.vo.SapCloseOrderQuery;
import com.op.sap.domain.vo.SapPurchaseOrderQuery;
import com.op.sap.service.SapOrderService;
@ -202,8 +203,9 @@ public class SapOrderServiceImpl implements SapOrderService {
}
@Override
public R sapCloseOrder(String shopOrder) {
String L_MSG=null;
public R sapCloseOrder(SapCloseOrderQuery sapCloseOrderQuery) {
StringBuilder Msg = new StringBuilder();
try {
//获取连接
// JCoDestination dest = SAPConnUtils.connect();
@ -215,19 +217,26 @@ public class SapOrderServiceImpl implements SapOrderService {
// 配置传入参数
JCoParameterList jCoParameterList = func.getImportParameterList();
if (StringUtils.isEmpty(shopOrder)){
return R.fail("订单号为空");
if (StringUtils.isEmpty(sapCloseOrderQuery.getLeadOrder())){
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);//执行调用函数
JCoParameterList J= func.getExportParameterList();
System.out.println(J);
L_MSG= func.getExportParameterList().getString("L_MSG");
if (StringUtils.isEmpty(L_MSG)){
return R.fail("订单关闭失败");
}
return R.ok(L_MSG);
// JCoParameterList J= func.getExportParameterList();
// System.out.println(J);
String L_MSG1= func.getExportParameterList().getString("L_MSG");
Msg.append(sapCloseOrderQuery.getLeadOrder()+L_MSG1+";");
//关闭子订单
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){
return R.fail(e.getMessage());
}
@ -260,7 +269,7 @@ public class SapOrderServiceImpl implements SapOrderService {
if (sapRFW.getLt_gs()==null){
return R.fail("生产订单报工工时为空");
}
if (sapRFW.getLt_hw()==null){
if (sapRFW.getLt_hwList()==null){
return R.fail("生产订单报工货物移动为空");
}
/**
@ -280,9 +289,12 @@ public class SapOrderServiceImpl implements SapOrderService {
*/
JCoTable LT_HW_jCoTable = func.getTableParameterList().getTable("LT_HW");
System.out.println("LT_HW_jCoTable"+LT_HW_jCoTable);
LT_HW_jCoTable.appendRow();
LT_HW_jCoTable.setValue("MATERIAL", sapRFW.getLt_hw().getMaterial());
LT_HW_jCoTable.setValue("ENTRY_QNT", sapRFW.getLt_hw().getEntry_qnt());
for (SapRFW.lt_hw lt_hw:sapRFW.getLt_hwList()){
LT_HW_jCoTable.appendRow();
LT_HW_jCoTable.setValue("MATERIAL", lt_hw.getMaterial());
LT_HW_jCoTable.setValue("ENTRY_QNT", lt_hw.getEntry_qnt());
}
func.execute(dest);//执行调用函数
JCoParameterList J= func.getExportParameterList();
@ -364,7 +376,7 @@ public class SapOrderServiceImpl implements SapOrderService {
JCoFunction func = repository.getFunction("ZPPR_MES_PRODORD_CHANGE");
// 配置传入参数
JCoParameterList jCoParameterList = func.getImportParameterList();
System.out.println(jCoParameterList);
//System.out.println(jCoParameterList);
if (func == null) {
throw new RuntimeException("Function does not exist in SAP");
}
@ -381,10 +393,13 @@ public class SapOrderServiceImpl implements SapOrderService {
jCoParameterList.setValue("P_QUANTITY",sapProOrder.getQuantity());
func.execute(dest);//执行调用函数
JCoParameterList J= func.getExportParameterList();
System.out.println(J);
String RETCODE= func.getExportParameterList().getString("RETCODE");
String MESSAGE= func.getExportParameterList().getString("MESSAGE");
System.out.println(MESSAGE);
return R.ok(MESSAGE);
if ((Constants.FAIL).equals(Integer.parseInt(RETCODE))){
return R.fail(null,"订单号:"+sapProOrder.getAufnr()+MESSAGE);
}else {
return R.ok(null,"订单号:"+sapProOrder.getAufnr()+MESSAGE);
}
}catch (Exception e){
return R.fail(e.getMessage());
}

@ -176,8 +176,8 @@ public class SapRouterServiceImpl implements SapRouterService {
"删除标识:" + LOEKZ+
"物料号:" + MATNR+
"物料描述:" + MAKTX+
"任务清单使用"+VERWE+
"状态"+STATU+
"任务清单使用"+VERWE+
"状态"+STATU+
"任务清单描述:" + KTEXT+
" 操作/活动编号:" + VORNR+
"控制码:" + STEUS+
@ -190,16 +190,14 @@ public class SapRouterServiceImpl implements SapRouterService {
"工作中心:" + ARBPL+
"基本数量:" + BMSCH+
"工序计量单位:" + MEINH+
"标准值01" + VGW01+
"计量单位01" + VGE01+
"标准值02" + VGE02+
"计量单位02" + VGE02+
"标准值03" + VGE03+
"计量单位03" + VGE03+
" 标准值04" + VGE04+
" 计量单位04" + VGE04);
"标准值01机器" + VGW01+
"计量单位01" + VGE01+
"标准值02人工" + VGW02+
"计量单位02" + VGE02+
"标准值03折旧" + VGW03+
"计量单位03" + VGE03+
"标准值04其它" + VGW04+
" 计量单位04" + VGE04);
//工艺路线下的工序
if (StringUtil.isBlank(PLNNR)) {
throw new ServiceException("任务清单组码不能为空");
@ -239,6 +237,18 @@ public class SapRouterServiceImpl implements SapRouterService {
sapProRoute.setAttr1("job");//说明是来自定时任务
sapProRoute.setCreateTime(DateUtils.dateTime("yyyy-MM-dd", ANDAT));
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);
//增加工艺路线和工序的关系
@ -265,58 +275,79 @@ public class SapRouterServiceImpl implements SapRouterService {
successNum++;
}
}
//更新工艺路线
else {
sapProRoute.setRouteName(KTEXT);
sapProRoute.setRouteDesc(KTEXT);
sapProRoute.setEnableFlag("Y");
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);
}
}
//机器
sapProRoute.setTecMachine(VGW01);
sapProRoute.setTecMachineUnit(VGE01);
//人工
sapProRoute.setTecMan(VGW02);
sapProRoute.setTecManUnit(VGE02);
//折旧
sapProRoute.setTecDepreciation(VGW03);
sapProRoute.setTecDepreciationUnit(VGE03);
//其它
sapProRoute.setTecOther(VGW04);
sapProRoute.setTecOtherUnit(VGE04);
sapProRoute.setUpdateBy(ANNAM);
sapProRoute.setUpdateTime(DateUtils.getNowDate());
sapProRouteMapper.updateProRoute(sapProRoute);
}
// 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);
if (destination!=null){
logger.info("连接SAP成功");
System.err.println("连接SAP成功");
}
} catch (JCoException e) {
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="routeVersion != null">route_version,</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 prefix="values (" suffix=")" suffixOverrides=",">
@ -116,6 +124,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="updateTime != null">#{updateTime},</if>
<if test="routeVersion != null">#{routeVersion},</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>
</insert>
@ -128,6 +144,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="routeDesc != null">route_desc = #{routeDesc},</if>
<if test="enableFlag != null and enableFlag != ''">enable_flag = #{enableFlag},</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="attr2 != null">attr2 = #{attr2},</if>
<if test="attr3 != null">attr3 = #{attr3},</if>

Loading…
Cancel
Save