Merge remote-tracking branch 'origin/master'

master
陈恒杰 10 months ago
commit 1fba7c8452

@ -7,6 +7,7 @@ import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle; import org.apache.commons.lang3.builder.ToStringStyle;
import java.util.Date; import java.util.Date;
import java.util.List;
/** /**
* base_equipment * base_equipment
@ -156,6 +157,44 @@ public class EquEquipmentDTO extends BaseEntity {
@Excel(name = "SAP资产号") @Excel(name = "SAP资产号")
private String sapAsset; private String sapAsset;
private String factoryCode;
private String sapCode;
private String sapName;
private List<EquEquipmentDTO> details;
public List<EquEquipmentDTO> getDetails() {
return details;
}
public void setDetails(List<EquEquipmentDTO> details) {
this.details = details;
}
public String getSapCode() {
return sapCode;
}
public void setSapCode(String sapCode) {
this.sapCode = sapCode;
}
public String getSapName() {
return sapName;
}
public void setSapName(String sapName) {
this.sapName = sapName;
}
public String getFactoryCode() {
return factoryCode;
}
public void setFactoryCode(String factoryCode) {
this.factoryCode = factoryCode;
}
public void setEquipmentId(Long equipmentId) { public void setEquipmentId(Long equipmentId) {
this.equipmentId = equipmentId; this.equipmentId = equipmentId;
} }

@ -7,13 +7,13 @@ public class H5 {
private String category; private String category;
private String specifications; private String specifications;
private int StandardStaffing; private int StandardStaffing;
private int actualEmployment; private Double actualEmployment;
private String productionDuration; private Double productionDuration;
private int planProduction; private int planProduction;
private int production; private int production;
private String hourlyProduction; private String hourlyProduction;
private String standardEfficiency; private double standardEfficiency;
private String actualEfficiency; private double actualEfficiency;
private String efficiencyAcRate; private String efficiencyAcRate;
private String feedbackTime; private String feedbackTime;
private String parentOrder; private String parentOrder;
@ -91,19 +91,19 @@ public class H5 {
StandardStaffing = standardStaffing; StandardStaffing = standardStaffing;
} }
public int getActualEmployment() { public Double getActualEmployment() {
return actualEmployment; return actualEmployment;
} }
public void setActualEmployment(int actualEmployment) { public void setActualEmployment(Double actualEmployment) {
this.actualEmployment = actualEmployment; this.actualEmployment = actualEmployment;
} }
public String getProductionDuration() { public Double getProductionDuration() {
return productionDuration; return productionDuration;
} }
public void setProductionDuration(String productionDuration) { public void setProductionDuration(Double productionDuration) {
this.productionDuration = productionDuration; this.productionDuration = productionDuration;
} }
@ -123,19 +123,19 @@ public class H5 {
this.hourlyProduction = hourlyProduction; this.hourlyProduction = hourlyProduction;
} }
public String getStandardEfficiency() { public double getStandardEfficiency() {
return standardEfficiency; return standardEfficiency;
} }
public void setStandardEfficiency(String standardEfficiency) { public void setStandardEfficiency(double standardEfficiency) {
this.standardEfficiency = standardEfficiency; this.standardEfficiency = standardEfficiency;
} }
public String getActualEfficiency() { public double getActualEfficiency() {
return actualEfficiency; return actualEfficiency;
} }
public void setActualEfficiency(String actualEfficiency) { public void setActualEfficiency(double actualEfficiency) {
this.actualEfficiency = actualEfficiency; this.actualEfficiency = actualEfficiency;
} }

@ -119,6 +119,15 @@ public class MesPrepareDetail extends BaseEntity {
private String workorderCode; private String workorderCode;
private String parentOrder; private String parentOrder;
private String prodLineCode; private String prodLineCode;
private int xh;
public int getXh() {
return xh;
}
public void setXh(int xh) {
this.xh = xh;
}
public String getProductDateStr() { public String getProductDateStr() {
return productDateStr; return productDateStr;

@ -24,8 +24,109 @@ public class H5ApiServiceImpl implements H5ApiService {
//查询当天的生产情况 //查询当天的生产情况
H5 h5=new H5(); H5 h5=new H5();
h5.setFeedbackTime(workTime); h5.setFeedbackTime(workTime);
//母单报工信息 //报工信息
List<H5> h5List=h5ApiMapper.selectMesLineProdceList(h5); List<H5> h5List=h5ApiMapper.selectMesLineProdceList(h5);
return h5List; //报工信息处理
//母单报工数据
List<H5> filteredList = h5List.stream()
.filter(h5s -> "0".equals(h5s.getParentOrder()))
.collect(Collectors.toList());
//子单报工数据
List<H5> filteredLists = h5List.stream()
.filter(h5s -> !"0".equals(h5s.getParentOrder()))
.collect(Collectors.toList());
// 按照 workOrderCode 分组,并计算各个字段的统计值
List<H5> resultList = filteredList.stream()
.collect(Collectors.groupingBy(
H5::getWorkOrderCode, // 按 workOrderCode 分组
Collectors.collectingAndThen(
Collectors.toList(),
list -> {
double averageStandardStaffing = list.stream()
.collect(Collectors.averagingDouble(H5::getStandardStaffing));
double averageActualEmployment = list.stream()
.collect(Collectors.averagingDouble(H5::getActualEmployment));
double totalProductionDuration = list.stream()
.collect(Collectors.summingDouble(H5::getProductionDuration));
double totalPlanProduction = list.stream()
.collect(Collectors.summingDouble(H5::getPlanProduction));
double totalProduction = list.stream()
.collect(Collectors.summingDouble(H5::getProduction));
H5 resultH5 = new H5();
resultH5.setWorkOrderCode(list.get(0).getWorkOrderCode()); // 设置 workOrderCode
resultH5.setLineName(list.get(0).getLineName());
resultH5.setProductName(list.get(0).getProductName());
resultH5.setCategory(list.get(0).getCategory());
resultH5.setSpecifications(list.get(0).getSpecifications());
resultH5.setStandardEfficiency(list.get(0).getStandardEfficiency());
resultH5.setActualEmployment(averageActualEmployment);
resultH5.setStandardStaffing((int) Math.round(averageStandardStaffing)); // 计算的平均值
resultH5.setProductionDuration(totalProductionDuration); // 总和
resultH5.setPlanProduction((int) Math.round(totalPlanProduction)); // 总和
resultH5.setProduction((int) Math.round(totalProduction)); // 总和
return resultH5;
} }
)
))
.values()
.stream()
.collect(Collectors.toList());
List<H5> resultLists = filteredLists.stream()
.collect(Collectors.groupingBy(
H5::getWorkOrderCode, // 按 workOrderCode 分组
Collectors.collectingAndThen(
Collectors.toList(),
list -> {
double averageActualEmployment = list.stream()
.collect(Collectors.averagingDouble(H5::getActualEmployment));
H5 resultH5 = new H5();
resultH5.setWorkOrderCode(list.get(0).getWorkOrderCode()); // 设置 workOrderCode
resultH5.setActualEmployment(averageActualEmployment);
resultH5.setParentOrder(list.get(0).getParentOrder());
return resultH5;
}
)
))
.values()
.stream()
.collect(Collectors.toList());
// 将 resultLists 转换为 Map以便快速查找
Map<String, H5> parentOrderToH5Map = resultLists.stream()
.collect(Collectors.toMap(
H5::getParentOrder,
h5s -> h5s
));
// 更新 resultList 中的 actualEmployment
// 更新 resultList 中的 actualEmployment
resultList.forEach(h51 -> {
H5 matchingH52 = parentOrderToH5Map.get(h51.getWorkOrderCode());
if (matchingH52 != null) {
h51.setActualEmployment(matchingH52.getActualEmployment());
}
});
// 更新 actualEfficiency 为百分比形式,保留一位小数
resultList.forEach(h5a -> {
double production = h5a.getProduction();
double productionDuration = h5a.getProductionDuration();
double actualEmployment = h5a.getActualEmployment();
double standardEfficiency=h5a.getStandardEfficiency();
// 避免除以零的情况
if (productionDuration != 0 && actualEmployment != 0) {
double actualEfficiency = production / productionDuration / actualEmployment;
actualEfficiency = Math.round(actualEfficiency * 10.0) / 10.0;
h5a.setActualEfficiency(actualEfficiency);
String efficiencyAcRate = String.format("%.1f%%", (actualEfficiency/standardEfficiency)*100); // 格式化为百分比形式
h5a.setEfficiencyAcRate(efficiencyAcRate); // 设置百分比形式
} else {
h5a.setEfficiencyAcRate("0.0%"); // 或者设为其他默认值
}
});
return resultList;
}
} }

@ -113,11 +113,16 @@ public class MesPrepareDetailServiceImpl implements IMesPrepareDetailService {
.replace("\"","") .replace("\"","")
.replace("\"","") .replace("\"","")
.replace("]]","")); .replace("]]",""));
mesPrepareDetailList = mesPrepareDetailList.stream()
.filter(dto ->!dto.getQuantity().equals("0.00"))
.collect(Collectors.toList());
PrintPrepareVo printPrepareVo = new PrintPrepareVo(); PrintPrepareVo printPrepareVo = new PrintPrepareVo();
printPrepareVo.setMesPrepare(mesPrepare); printPrepareVo.setMesPrepare(mesPrepare);
printPrepareVo.setMesPrepareDetailList(mesPrepareDetailList.stream() int i = 1;
.filter(dto ->!dto.getQuantity().equals("0.00")) for(MesPrepareDetail dto:mesPrepareDetailList){
.collect(Collectors.toList())); dto.setXh(i++);
}
printPrepareVo.setMesPrepareDetailList(mesPrepareDetailList);
return AjaxResult.success(printPrepareVo); return AjaxResult.success(printPrepareVo);
} }
@ -134,11 +139,16 @@ public class MesPrepareDetailServiceImpl implements IMesPrepareDetailService {
qodetail.setProductDateStr(productDate); qodetail.setProductDateStr(productDate);
qodetail.setRecoil("X"); qodetail.setRecoil("X");
List<MesPrepareDetail> mesPrepareDetailList = mesPrepareDetailMapper.selectPreDetailHzList(qodetail); List<MesPrepareDetail> mesPrepareDetailList = mesPrepareDetailMapper.selectPreDetailHzList(qodetail);
mesPrepareDetailList = mesPrepareDetailList.stream()
.filter(dto ->!dto.getQuantity().equals("0.00"))
.collect(Collectors.toList());
int i = 1;
for(MesPrepareDetail dto:mesPrepareDetailList){
dto.setXh(i++);
}
PrintPrepareVo printPrepareVo = new PrintPrepareVo(); PrintPrepareVo printPrepareVo = new PrintPrepareVo();
printPrepareVo.setMesPrepare(mesPrepare); printPrepareVo.setMesPrepare(mesPrepare);
printPrepareVo.setMesPrepareDetailList(mesPrepareDetailList.stream() printPrepareVo.setMesPrepareDetailList(mesPrepareDetailList);
.filter(dto ->!dto.getQuantity().equals("0.00"))
.collect(Collectors.toList()));
return AjaxResult.success(printPrepareVo); return AjaxResult.success(printPrepareVo);
} }
} }

@ -25,9 +25,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import java.util.ArrayList; import java.text.SimpleDateFormat;
import java.util.List; import java.util.*;
import java.util.Map;
import java.util.concurrent.ExecutorService; import java.util.concurrent.ExecutorService;
import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.ThreadPoolExecutor;
@ -100,7 +99,6 @@ public class MesReportWorksServiceImpl implements IMesReportWorksService {
SysNoticeGroup noticeQo = new SysNoticeGroup(); SysNoticeGroup noticeQo = new SysNoticeGroup();
//取模板 //取模板
noticeQo.setNoticeId(23L); noticeQo.setNoticeId(23L);
List<SysNoticeGroup> notices = mesReportWorkMapper.getNoticesGroup(noticeQo); List<SysNoticeGroup> notices = mesReportWorkMapper.getNoticesGroup(noticeQo);
if(!CollectionUtils.isEmpty(notices)) { if(!CollectionUtils.isEmpty(notices)) {
List<WechartDTO> wecharts = new ArrayList<>(); List<WechartDTO> wecharts = new ArrayList<>();
@ -108,12 +106,20 @@ public class MesReportWorksServiceImpl implements IMesReportWorksService {
WechartDTO wechart0 = new WechartDTO(); WechartDTO wechart0 = new WechartDTO();
wechart0.setUserId(noticedto.getWxId()); wechart0.setUserId(noticedto.getWxId());
String contentInfo = noticedto.getNoticeContent(); String contentInfo = noticedto.getNoticeContent();
contentInfo = contentInfo.replace("${ymd}", DateUtils.getDate()) // 定义格式化日期的格式
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
// 获取当前日期
Calendar calendar = Calendar.getInstance();
// 将日期设置为前一天
calendar.add(Calendar.DATE, -1);
Date yesterday = calendar.getTime();
// 格式化前一天的日期
String currentDate = dateFormat.format(yesterday);
contentInfo = contentInfo.replace("${ymd}", currentDate)
.replace("${factory}", prowork.getFactoryCode()) .replace("${factory}", prowork.getFactoryCode())
.replace("${carName}", prowork.getWorkorderName()); .replace("${carName}", prowork.getWorkorderName());
Matcher m = p2.matcher(contentInfo);
contentInfo = m.replaceAll("");
wechart0.setText(contentInfo); wechart0.setText(contentInfo);
wecharts.add(wechart0); wecharts.add(wechart0);
} }

@ -21,85 +21,29 @@
</resultMap> </resultMap>
<select id="selectMesLineProdceList" parameterType="H5" resultMap="H5Result"> <select id="selectMesLineProdceList" parameterType="H5" resultMap="H5Result">
SELECT SELECT
mrw.workorder_code, mrws.workorder_code,
mrw.machine_name, mrws.machine_name,
mrw.product_code, mrws.product_name,
mrw.product_name,
bpa.category, bpa.category,
bp.umrez, bp.umrez,
SUM ( mrw.quantity ) AS plan_production, mrws.quantity as plan_production,
SUM ( mrw.quantity_feedback ) AS quantity_feedback, mrws.quantity_feedback ,
MAX(A.quantity_s) AS quantity_s, mlp.use_man as man_standar,
MAX(A.quantity_s_total) AS quantity_s_total, mrws.use_man,
bpa.man_standar, mrws.work_time,
MAX(A.use_man) AS use_man, CAST(ROUND(mlp.efficiency / mlp.attr1 / mlp.use_man, 1) AS FLOAT) AS standardEfficiency,
FORMAT(ROUND((MAX(A.work_time)), 1), '0.#') AS work_time, CAST(ROUND(mrws.quantity_feedback / mrws.work_time / mrws.use_man, 1) AS FLOAT) AS actualEfficiency,
mrw.parent_order , mrws.parent_order
bpa.iei,
FORMAT(ROUND((bpa.iei / bp.umrez / bpa.man_standar), 1), '0.#') AS standardEfficiency,
FORMAT(ROUND(
CASE
WHEN MAX(A.use_man) = 0 OR SUM(A.work_time) = 0 THEN NULL
ELSE (SUM(mrw.quantity_feedback)) / MAX(A.use_man) / (MAX(A.work_time))
END,
1
), '0.#') AS actualEfficiency,
FORMAT(
CASE
WHEN (bpa.iei / bp.umrez / bpa.man_standar) = 0
THEN NULL
ELSE (CAST(
ROUND(
CASE
WHEN MAX(A.use_man) = 0 OR SUM(A.work_time) = 0 THEN NULL
ELSE (SUM(mrw.quantity_feedback)) / MAX(A.use_man) / (MAX(A.work_time))
END,
1
) AS DECIMAL(10,1))
/ CAST(
ROUND((bpa.iei / bp.umrez / bpa.man_standar), 1) AS DECIMAL(10,1)
) * 100
)
END,
'0.#'
) + '%' AS efficiencyAcRate
FROM
[dbo].[mes_report_work] mrw
LEFT JOIN base_product_attached bpa ON bpa.product_code = RIGHT ( mrw.product_code, 11 )
LEFT JOIN base_product bp ON bp.product_code = mrw.product_code
LEFT JOIN (
SELECT
mrws.workorder_code,
mrws.parent_order,
MAX(mrws.use_man) AS use_man,
MAX(pow.quantity_split) AS quantity_s,
SUM(mrws.quantity_feedback) AS quantity_s_total,
SUM (mrws.work_time ) AS work_time
FROM FROM
[dbo].[mes_report_work] mrws [dbo].[mes_report_work] mrws
LEFT JOIN pro_order_workorder pow ON mrws.workorder_code = pow.workorder_code LEFT JOIN pro_order_workorder pow ON mrws.workorder_code = pow.workorder_code
LEFT JOIN base_product_attached bpa ON bpa.product_code = RIGHT ( mrws.product_code, 11 )
LEFT JOIN base_product bp ON bp.product_code = mrws.product_code
LEFT JOIN mes_line_product mlp ON mlp.product_code=mrws.product_code AND mlp.line_code=mrws.machine_code
WHERE WHERE
CAST(mrws.feedback_time AS DATE) = #{feedbackTime} CAST(mrws.feedback_time AS DATE) = #{feedbackTime}
AND mrws.parent_order != '0' AND mrws.del_flag = '0'
GROUP BY ORDER BY mrws.machine_name ASC
mrws.workorder_code,
mrws.parent_order
) A ON A.parent_order= mrw.workorder_code
WHERE
CAST ( mrw.feedback_time AS DATE ) = #{feedbackTime}
AND mrw.parent_order = '0'
GROUP BY
mrw.workorder_code,
mrw.machine_name,
mrw.product_code,
mrw.product_name,
bpa.category,
bp.umrez,
bpa.man_standar,
mrw.use_man,
mrw.parent_order,
bpa.iei
ORDER BY mrw.machine_name ASC
</select> </select>

@ -955,9 +955,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select> </select>
<select id="getProductReason" resultType="java.lang.String"> <select id="getProductReason" resultType="java.lang.String">
SELECT SELECT
STRING_AGG(Reason, ';') AS Reasons STRING_AGG(concat('【',Reason,attr2,'H】'), ';') AS Reasons
FROM FROM
mes_report_work where workorder_code = #{workorderCode} and del_flag = '0' and Reason is not null mes_report_work where workorder_code = #{workorderCode} and del_flag = '0'
and Reason is not null
and reason !=''
and reason !='无'
GROUP BY GROUP BY
workorder_code; workorder_code;
</select> </select>

@ -10,6 +10,7 @@ import com.op.common.core.web.domain.AjaxResult;
import com.op.common.datasource.creator.DynamicDatasourceCreator; import com.op.common.datasource.creator.DynamicDatasourceCreator;
import com.op.open.service.OpenService; import com.op.open.service.OpenService;
import com.op.system.api.domain.DataSourcePropertyDTO; import com.op.system.api.domain.DataSourcePropertyDTO;
import com.op.system.api.domain.device.EquEquipmentDTO;
import com.op.system.api.domain.device.EquRepairOrderDTO; import com.op.system.api.domain.device.EquRepairOrderDTO;
import com.op.system.api.domain.dto.WCSDTO; import com.op.system.api.domain.dto.WCSDTO;
import com.op.system.api.domain.dto.WechartDTO; import com.op.system.api.domain.dto.WechartDTO;
@ -257,4 +258,13 @@ public class OpenController extends BaseController {
public AjaxResult sendProductCheckNo(@RequestBody List<BaseProductDTO> dots) { public AjaxResult sendProductCheckNo(@RequestBody List<BaseProductDTO> dots) {
return openService.sendProductCheckNo(dots); return openService.sendProductCheckNo(dots);
} }
//给oa提供的设备sap设备增加
@PostMapping("/addEquSapInfo")
public AjaxResult addEquSapInfo(@RequestBody EquEquipmentDTO dto) {
if(StringUtils.isNotBlank(dto.getFactoryCode())){
return error("[factoryCode] is null ");
}
return openService.addEquSapInfo(dto);
}
} }

@ -96,5 +96,9 @@ public interface OpenMapper {
int updateProductNoBatchs(@Param("list") List<BaseProductDTO> updates); int updateProductNoBatchs(@Param("list") List<BaseProductDTO> updates);
int addProductNoBatchs(@Param("list")List<BaseProductDTO> everyList); int addProductNoBatchs(@Param("list")List<BaseProductDTO> everyList);
//
// int updateEquBatchs(@Param("list") List<EquEquipmentDTO> updates);
//
// int addEquBatchs(@Param("list") List<EquEquipmentDTO> everyList);
} }

@ -1,6 +1,7 @@
package com.op.open.service; package com.op.open.service;
import com.op.common.core.web.domain.AjaxResult; import com.op.common.core.web.domain.AjaxResult;
import com.op.system.api.domain.device.EquEquipmentDTO;
import com.op.system.api.domain.device.EquRepairOrderDTO; import com.op.system.api.domain.device.EquRepairOrderDTO;
import com.op.system.api.domain.dto.WCSDTO; import com.op.system.api.domain.dto.WCSDTO;
import com.op.system.api.domain.dto.WechartDTO; import com.op.system.api.domain.dto.WechartDTO;
@ -43,4 +44,6 @@ public interface OpenService {
AjaxResult getDeliveryNoteDetail(Map paramMap); AjaxResult getDeliveryNoteDetail(Map paramMap);
AjaxResult sendProductCheckNo(List<BaseProductDTO> dots); AjaxResult sendProductCheckNo(List<BaseProductDTO> dots);
AjaxResult addEquSapInfo(EquEquipmentDTO dto);
} }

@ -706,7 +706,72 @@ public class OpenServiceImpl implements OpenService {
return error(e.getMessage()); return error(e.getMessage());
} }
} }
@Override
public AjaxResult addEquSapInfo(EquEquipmentDTO dto) {
// try {
// logger.info("oa增加sap设备发送参数"+JSONObject.toJSONString(dto));
// List<EquEquipmentDTO> dtos = dto.getDetails();
// if(CollectionUtils.isEmpty(dtos)){
// return error("oa增加sap设备发送参数为空");
// }
// DynamicDataSourceContextHolder.push("ds_"+dtos.get(0).getFactoryCode());
// Date nowDate = DateUtils.getNowDate();
// String createBy = SecurityUtils.getUsername();
// for(EquEquipmentDTO equ:dtos){
// equ.setCreateBy(createBy);
// equ.setUpdateBy(createBy);
// equ.setCreateTime(nowDate);
// equ.setUpdateTime(nowDate);
// }
//
//
// //sap返回的sap设备编码
// List<String> codes = dtos.stream().map(EquEquipmentDTO::getSapCode).collect(Collectors.toList());
// //sap返回的客户编码-本地已存在
// List<String> exsitCodes = openMapper.getExsitCodes(codes);
// //sap返回的产品编码-本地不存在// 差集 (list2 - list1)
// List<String> noExsitCodes = codes.stream().filter(item -> !exsitCodes.contains(item)).collect(Collectors.toList());
//
// List<EquEquipmentDTO> updates = new ArrayList<>();
// for (String exsitCode : exsitCodes) {
// List<EquEquipmentDTO> updates0 = dtos.stream().filter(up -> up.getSapCode().equals(exsitCode)).collect(Collectors.toList());
// updates.addAll(updates0);
// }
// if (!CollectionUtils.isEmpty(updates)) {
// int m = openMapper.updateEquBatchs(updates);
// System.out.println("oa更新设备成功条数" + m);
// }
// List<EquEquipmentDTO> adds = new ArrayList<>();
// for (String noExsitCode : noExsitCodes) {
// List<EquEquipmentDTO> adds0 = dtos.stream().filter(ad -> ad.getSapCode().equals(noExsitCode)).collect(Collectors.toList());
// adds.addAll(adds0);
// }
// if (!CollectionUtils.isEmpty(adds)) {
//
// int allsize = adds.size();
// int inserttimes = allsize / 100 + 1;
// for (int m = 0; m < inserttimes; m++) {
// List<EquEquipmentDTO> everyList;
// if (m < (inserttimes - 1)) {
// everyList = adds.subList(m * 100, (m + 1) * 100);
// } else {
// everyList = adds.subList(m * 100, allsize);
// }
// if (everyList.size() > 0) {
// openMapper.addEquBatchs(everyList);
// }
// }
//
// System.out.println("oa新增设备成功条数" + allsize);
// }
//
// return success();
// } catch (Exception e) {
// e.printStackTrace();
// return error(e.getMessage());
// }
return success();
}
protected Boolean oneMinHas(Date lastData){ protected Boolean oneMinHas(Date lastData){
if(lastData != null){ if(lastData != null){
int year= Integer.parseInt(String.format("%tY", lastData)); int year= Integer.parseInt(String.format("%tY", lastData));

@ -0,0 +1,111 @@
package com.op.quality.controller;
import java.security.Security;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.op.common.core.utils.DateUtils;
import com.op.common.core.utils.poi.ExcelUtil;
import com.op.common.core.utils.uuid.IdUtils;
import com.op.common.security.utils.SecurityUtils;
import com.op.quality.domain.QcProductCpkUpdown;
import com.op.quality.service.IQcProductCpkUpdownService;
import org.apache.catalina.security.SecurityUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.op.common.log.annotation.Log;
import com.op.common.log.enums.BusinessType;
import com.op.common.security.annotation.RequiresPermissions;
import com.op.common.core.web.controller.BaseController;
import com.op.common.core.web.domain.AjaxResult;
import com.op.common.core.web.page.TableDataInfo;
/**
* CPKController
*
* @author Open Platform
* @date 2024-09-12
*/
@RestController
@RequestMapping("/cpkUpdown")
public class QcProductCpkUpdownController extends BaseController {
@Autowired
private IQcProductCpkUpdownService qcProductCpkUpdownService;
/**
* CPK
*/
@GetMapping("/list")
public TableDataInfo list(QcProductCpkUpdown qcProductCpkUpdown) {
startPage();
List<QcProductCpkUpdown> list = qcProductCpkUpdownService.selectQcProductCpkUpdownList(qcProductCpkUpdown);
return getDataTable(list);
}
/**
* CPK
*/
@Log(title = "CPK上下限维护", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, QcProductCpkUpdown qcProductCpkUpdown) {
List<QcProductCpkUpdown> list = qcProductCpkUpdownService.selectQcProductCpkUpdownList(qcProductCpkUpdown);
ExcelUtil<QcProductCpkUpdown> util = new ExcelUtil<QcProductCpkUpdown>(QcProductCpkUpdown. class);
util.exportExcel(response, list, "CPK上下限维护数据");
}
/**
* CPK
*/
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") String id) {
return success(qcProductCpkUpdownService.selectQcProductCpkUpdownById(id));
}
/**
* CPK
*/
@RequiresPermissions("quality:cpkUpDowConfig:add")
@Log(title = "CPK上下限维护", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody QcProductCpkUpdown qcProductCpkUpdown) {
qcProductCpkUpdown.setId(IdUtils.fastSimpleUUID());
qcProductCpkUpdown.setCreateBy(SecurityUtils.getUsername());
qcProductCpkUpdown.setCreateTime(DateUtils.getNowDate());
QcProductCpkUpdown exsit = qcProductCpkUpdownService.checkCpkUpdown(qcProductCpkUpdown);
if(exsit!=null){
return AjaxResult.error("数据已存在");
}
return toAjax(qcProductCpkUpdownService.insertQcProductCpkUpdown(qcProductCpkUpdown));
}
/**
* CPK
*/
@RequiresPermissions("quality:cpkUpDowConfig:edit")
@Log(title = "CPK上下限维护", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody QcProductCpkUpdown qcProductCpkUpdown) {
qcProductCpkUpdown.setUpdateBy(SecurityUtils.getUsername());
qcProductCpkUpdown.setUpdateTime(DateUtils.getNowDate());
return toAjax(qcProductCpkUpdownService.updateQcProductCpkUpdown(qcProductCpkUpdown));
}
/**
* CPK
*/
@RequiresPermissions("quality:cpkUpDowConfig:remove")
@Log(title = "CPK上下限维护", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable String[] ids) {
return toAjax(qcProductCpkUpdownService.deleteQcProductCpkUpdownByIds(ids));
}
}

@ -0,0 +1,153 @@
package com.op.quality.domain;
import java.math.BigDecimal;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.op.common.core.annotation.Excel;
import com.op.common.core.web.domain.BaseEntity;
/**
* qc_product_cpk_updown
*
* @author Open Platform
* @date 2024-09-12
*/
public class QcProductCpkUpdown extends BaseEntity {
private static final long serialVersionUID=1L;
/** id */
private String id;
/** 类型编码material来料检验、produce生产检验、product成品检验 */
@Excel(name = "类型编码material来料检验、produce生产检验、product成品检验")
private String typeCode;
/** 检验节点 */
@Excel(name = "检验节点")
private String checkType;
/** 工厂编码 */
@Excel(name = "工厂编码")
private String factoryCode;
/** 删除标识1删除0正常 */
private String delFlag;
/** 物料号 */
@Excel(name = "物料号")
private String materialCode;
/** 物料名称 */
@Excel(name = "物料名称")
private String materialName;
/** 上限 */
@Excel(name = "上限")
private BigDecimal upVal;
/** 下限 */
@Excel(name = "下限")
private BigDecimal downVal;
private String ruleCode;
private String ruleName;
public String getRuleCode() {
return ruleCode;
}
public void setRuleCode(String ruleCode) {
this.ruleCode = ruleCode;
}
public String getRuleName() {
return ruleName;
}
public void setRuleName(String ruleName) {
this.ruleName = ruleName;
}
public void setId(String id){
this.id = id;
}
public String getId(){
return id;
}
public void setTypeCode(String typeCode){
this.typeCode = typeCode;
}
public String getTypeCode(){
return typeCode;
}
public void setCheckType(String checkType){
this.checkType = checkType;
}
public String getCheckType(){
return checkType;
}
public void setFactoryCode(String factoryCode){
this.factoryCode = factoryCode;
}
public String getFactoryCode(){
return factoryCode;
}
public void setDelFlag(String delFlag){
this.delFlag = delFlag;
}
public String getDelFlag(){
return delFlag;
}
public void setMaterialCode(String materialCode){
this.materialCode = materialCode;
}
public String getMaterialCode(){
return materialCode;
}
public void setMaterialName(String materialName){
this.materialName = materialName;
}
public String getMaterialName(){
return materialName;
}
public void setUpVal(BigDecimal upVal){
this.upVal = upVal;
}
public BigDecimal getUpVal(){
return upVal;
}
public void setDownVal(BigDecimal downVal){
this.downVal = downVal;
}
public BigDecimal getDownVal(){
return downVal;
}
@Override
public String toString(){
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id",getId())
.append("typeCode",getTypeCode())
.append("checkType",getCheckType())
.append("createBy",getCreateBy())
.append("createTime",getCreateTime())
.append("updateBy",getUpdateBy())
.append("updateTime",getUpdateTime())
.append("factoryCode",getFactoryCode())
.append("delFlag",getDelFlag())
.append("materialCode",getMaterialCode())
.append("materialName",getMaterialName())
.append("upVal",getUpVal())
.append("downVal",getDownVal())
.toString();
}
}

@ -0,0 +1,64 @@
package com.op.quality.mapper;
import com.op.quality.domain.QcProductCpkUpdown;
import java.util.List;
/**
* Mapper
*
* @author Open Platform
* @date 2024-09-12
*/
public interface QcProductCpkUpdownMapper {
/**
*
*
* @param id
* @return
*/
public QcProductCpkUpdown selectQcProductCpkUpdownById(String id);
/**
*
*
* @param qcProductCpkUpdown
* @return
*/
public List<QcProductCpkUpdown> selectQcProductCpkUpdownList(QcProductCpkUpdown qcProductCpkUpdown);
/**
*
*
* @param qcProductCpkUpdown
* @return
*/
public int insertQcProductCpkUpdown(QcProductCpkUpdown qcProductCpkUpdown);
/**
*
*
* @param qcProductCpkUpdown
* @return
*/
public int updateQcProductCpkUpdown(QcProductCpkUpdown qcProductCpkUpdown);
/**
*
*
* @param id
* @return
*/
public int deleteQcProductCpkUpdownById(String id);
/**
*
*
* @param ids
* @return
*/
public int deleteQcProductCpkUpdownByIds(String[] ids);
QcProductCpkUpdown checkCpkUpdown(QcProductCpkUpdown qcProductCpkUpdown);
}

@ -0,0 +1,64 @@
package com.op.quality.service;
import com.op.quality.domain.QcProductCpkUpdown;
import java.util.List;
/**
* Service
*
* @author Open Platform
* @date 2024-09-12
*/
public interface IQcProductCpkUpdownService {
/**
*
*
* @param id
* @return
*/
public QcProductCpkUpdown selectQcProductCpkUpdownById(String id);
/**
*
*
* @param qcProductCpkUpdown
* @return
*/
public List<QcProductCpkUpdown> selectQcProductCpkUpdownList(QcProductCpkUpdown qcProductCpkUpdown);
/**
*
*
* @param qcProductCpkUpdown
* @return
*/
public int insertQcProductCpkUpdown(QcProductCpkUpdown qcProductCpkUpdown);
/**
*
*
* @param qcProductCpkUpdown
* @return
*/
public int updateQcProductCpkUpdown(QcProductCpkUpdown qcProductCpkUpdown);
/**
*
*
* @param ids
* @return
*/
public int deleteQcProductCpkUpdownByIds(String[] ids);
/**
*
*
* @param id
* @return
*/
public int deleteQcProductCpkUpdownById(String id);
QcProductCpkUpdown checkCpkUpdown(QcProductCpkUpdown qcProductCpkUpdown);
}

@ -0,0 +1,104 @@
package com.op.quality.service.impl;
import java.util.List;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.op.common.core.utils.DateUtils;
import com.op.quality.domain.QcProductCpkUpdown;
import com.op.quality.mapper.QcProductCpkUpdownMapper;
import com.op.quality.service.IQcProductCpkUpdownService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* Service
*
* @author Open Platform
* @date 2024-09-12
*/
@Service
public class QcProductCpkUpdownServiceImpl implements IQcProductCpkUpdownService {
@Autowired
private QcProductCpkUpdownMapper qcProductCpkUpdownMapper;
/**
*
*
* @param id
* @return
*/
@Override
@DS("#header.poolName")
public QcProductCpkUpdown selectQcProductCpkUpdownById(String id) {
return qcProductCpkUpdownMapper.selectQcProductCpkUpdownById(id);
}
/**
*
*
* @param qcProductCpkUpdown
* @return
*/
@Override
@DS("#header.poolName")
public List<QcProductCpkUpdown> selectQcProductCpkUpdownList(QcProductCpkUpdown qcProductCpkUpdown) {
return qcProductCpkUpdownMapper.selectQcProductCpkUpdownList(qcProductCpkUpdown);
}
/**
*
*
* @param qcProductCpkUpdown
* @return
*/
@Override
@DS("#header.poolName")
public int insertQcProductCpkUpdown(QcProductCpkUpdown qcProductCpkUpdown) {
qcProductCpkUpdown.setCreateTime(DateUtils.getNowDate());
return qcProductCpkUpdownMapper.insertQcProductCpkUpdown(qcProductCpkUpdown);
}
/**
*
*
* @param qcProductCpkUpdown
* @return
*/
@Override
@DS("#header.poolName")
public int updateQcProductCpkUpdown(QcProductCpkUpdown qcProductCpkUpdown) {
qcProductCpkUpdown.setUpdateTime(DateUtils.getNowDate());
return qcProductCpkUpdownMapper.updateQcProductCpkUpdown(qcProductCpkUpdown);
}
/**
*
*
* @param ids
* @return
*/
@Override
@DS("#header.poolName")
public int deleteQcProductCpkUpdownByIds(String[] ids) {
return qcProductCpkUpdownMapper.deleteQcProductCpkUpdownByIds(ids);
}
/**
*
*
* @param id
* @return
*/
@Override
@DS("#header.poolName")
public int deleteQcProductCpkUpdownById(String id) {
return qcProductCpkUpdownMapper.deleteQcProductCpkUpdownById(id);
}
@Override
@DS("#header.poolName")
public QcProductCpkUpdown checkCpkUpdown(QcProductCpkUpdown qcProductCpkUpdown) {
return qcProductCpkUpdownMapper.checkCpkUpdown(qcProductCpkUpdown);
}
}

@ -768,6 +768,7 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService {
if(qcStaticTable.getProjectNoArray()!=null){ if(qcStaticTable.getProjectNoArray()!=null){
qcStaticTable.setProjectNo(qcStaticTable.getProjectNoArray()[0]); qcStaticTable.setProjectNo(qcStaticTable.getProjectNoArray()[0]);
QcStaticTable upandown = qcStaticTableMapper.getUpAndDown(qcStaticTable); QcStaticTable upandown = qcStaticTableMapper.getUpAndDown(qcStaticTable);
if(upandown!=null){ if(upandown!=null){
dto.setUpperDiff(upandown.getUpperDiff()); dto.setUpperDiff(upandown.getUpperDiff());
dto.setDownDiff(upandown.getDownDiff()); dto.setDownDiff(upandown.getDownDiff());

@ -100,7 +100,7 @@
qct.check_time, qct.check_result, qct.status, qct.check_type, qct.attr1, qct.attr2, qct.attr3, qct.attr4, qct.check_time, qct.check_result, qct.status, qct.check_type, qct.attr1, qct.attr2, qct.attr3, qct.attr4,
qct.create_by, qct.create_time, qct.update_by, qct.update_time, qct.create_by, qct.create_time, qct.update_by, qct.update_time,
qct.factory_code, qct.del_flag,qct.reason,qct.product_type,qct.order_type,qct.jgy,qct.pgy,qct.cxzz, qct.factory_code, qct.del_flag,qct.reason,qct.product_type,qct.order_type,qct.jgy,qct.pgy,qct.cxzz,
bp.mvgr5 standardNo ISNULL(bp.mvgr5, '成品蚊香【物料组】') standardNo
from qc_check_task qct from qc_check_task qct
left join base_product bp on bp.product_code = qct.material_code left join base_product bp on bp.product_code = qct.material_code
where qct.record_id = #{recordId} where qct.record_id = #{recordId}

@ -161,7 +161,7 @@
qctp.weight qctp.weight
from qc_check_task_detail td from qc_check_task_detail td
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
left join lanju_op_cloud.dbo.sys_dict_data dic on dic.dict_value = td.unit_code and dic.status ='0' left join lanju_op_cloud.dbo.sys_dict_data dic on dic.dict_value = td.unit_code and dic.status ='0' and dic.dict_type = 'unit'
where td.belong_to = #{belongTo} and td.del_flag='0' and qctp.del_flag = '0' and td.rule_name is not null where td.belong_to = #{belongTo} and td.del_flag='0' and qctp.del_flag = '0' and td.rule_name is not null
order by qctp.sort order by qctp.sort
</select> </select>

@ -241,6 +241,7 @@
where CONVERT(varchar(10),create_time, 120) = CONVERT(varchar(10),GETDATE(), 120) where CONVERT(varchar(10),create_time, 120) = CONVERT(varchar(10),GETDATE(), 120)
</select> </select>
<select id="getPutInOrder" resultType="com.op.quality.domain.QcCheckTaskIncome"> <select id="getPutInOrder" resultType="com.op.quality.domain.QcCheckTaskIncome">
<!--
select * from ( select * from (
SELECT SELECT
wms_raw_order_in_sn.user_defined5 AS orderNo, wms_raw_order_in_sn.user_defined5 AS orderNo,
@ -290,7 +291,41 @@
base_warehouse.warehouse_name, base_warehouse.warehouse_name,
wms_fp_storage_news_sn.wh_code wms_fp_storage_news_sn.wh_code
) t ) t
-->
select t0.orderNo,
t0.materialCode,
t0.materialName,
t0.quality,
t0.incomeTime,
t0.supplierCode,
t0.supplierName,
t0.check_Type
from (
select t.order_no orderNo,
t.material_code materialCode,
t.material_name materialName,
t.quality quality,
t.income_time incomeTime,
t.supplier_code supplierCode,
t.supplier_name supplierName,
t.check_type check_Type,
bp.warehouse_cycle,
case when qct.create_time is not null then DATEDIFF(day, qct.create_time, GETDATE())
else DATEDIFF(day, t.income_time, GETDATE()) end days
from qc_check_task t
left join base_product_attached bp on t.material_code = concat('0000000',bp.product_code)
left join (
select order_no,material_code,max(create_time) create_time
from qc_check_task where check_type='checkTypeCC' and del_flag = '0' GROUP BY order_no,material_code
) qct on qct.order_no = t.order_no
and t.material_code = qct.material_code
where bp.warehouse_cycle is not null and t.check_type in('checkTypeLL','checkTypeCP') and t.del_flag = '0'
<if test="materialCode != null">and t.material_code like concat('%',#{materialCode}, '%')</if>
<if test="materialName != null">and t.material_name like concat('%',#{materialName}, '%')</if>
)t0
where t0.days >= t0.warehouse_cycle
</select> </select>
<select id="getPutInOrderList" resultType="com.op.quality.domain.QcCheckTaskInventory"> <select id="getPutInOrderList" resultType="com.op.quality.domain.QcCheckTaskInventory">
select t0.orderNo, select t0.orderNo,
t0.materialCode, t0.materialCode,
@ -322,6 +357,7 @@
where bp.warehouse_cycle is not null and t.check_type in('checkTypeLL','checkTypeCP') and t.del_flag = '0' where bp.warehouse_cycle is not null and t.check_type in('checkTypeLL','checkTypeCP') and t.del_flag = '0'
)t0 )t0
where t0.days >= t0.warehouse_cycle where t0.days >= t0.warehouse_cycle
</select> </select>
<insert id="insertQcCheckOaTask" parameterType="OACheckTaskDTO"> <insert id="insertQcCheckOaTask" parameterType="OACheckTaskDTO">

@ -0,0 +1,152 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.op.quality.mapper.QcProductCpkUpdownMapper">
<resultMap type="QcProductCpkUpdown" id="QcProductCpkUpdownResult">
<result property="id" column="id"/>
<result property="typeCode" column="type_code"/>
<result property="checkType" column="check_type"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
<result property="factoryCode" column="factory_code"/>
<result property="delFlag" column="del_flag"/>
<result property="materialCode" column="material_code"/>
<result property="materialName" column="material_name"/>
<result property="upVal" column="up_val"/>
<result property="downVal" column="down_val"/>
<result property="ruleCode" column="rule_code"/>
<result property="ruleName" column="rule_name"/>
</resultMap>
<sql id="selectQcProductCpkUpdownVo">
select id, type_code, check_type, create_by, create_time, update_by, update_time,
factory_code, del_flag, material_code, material_name, up_val, down_val,
rule_code,rule_name
from qc_product_cpk_updown
</sql>
<select id="selectQcProductCpkUpdownList" parameterType="QcProductCpkUpdown" resultMap="QcProductCpkUpdownResult">
select qpcu.id, qpcu.type_code, qpcu.create_by,
qpcu.create_time, qpcu.update_by, qpcu.update_time,
qpcu.material_code, qpcu.material_name, qpcu.up_val, qpcu.down_val,
qpcu.rule_code,qpcu.rule_name,qct.check_name check_type
from qc_product_cpk_updown qpcu
left join qc_check_type qct on qct.order_code = qpcu.check_type
<where>
<if test="typeCode != null and typeCode != ''">
and qpcu.type_code = #{typeCode}
</if>
<if test="checkType != null and checkType != ''">
and qpcu.check_type = #{checkType}
</if>
<if test="factoryCode != null and factoryCode != ''">
and qpcu.factory_code = #{factoryCode}
</if>
<if test="materialCode != null and materialCode != ''">
and qpcu.material_code like concat('%', #{materialCode}, '%')
</if>
<if test="materialName != null and materialName != ''">
and qpcu.material_name like concat('%', #{materialName}, '%')
</if>
<if test="upVal != null ">
and qpcu.up_val = #{upVal}
</if>
<if test="downVal != null ">
and qpcu.down_val = #{downVal}
</if>
<if test="ruleCode != null ">
and qpcu.rule_code like concat('%', #{ruleCode}, '%')
</if>
<if test="ruleName != null ">
and qpcu.rule_name like concat('%', #{ruleName}, '%')
</if>
and qpcu.del_flag = '0'
</where>
</select>
<select id="selectQcProductCpkUpdownById" parameterType="String"
resultMap="QcProductCpkUpdownResult">
<include refid="selectQcProductCpkUpdownVo"/>
where id = #{id}
</select>
<select id="checkCpkUpdown" resultType="com.op.quality.domain.QcProductCpkUpdown">
select top 1 type_code typeCode, check_type checkType,
material_code materialCode, material_name materialName,
rule_code ruleCode,rule_name ruleName
from qc_product_cpk_updown
where check_type = #{checkType}
and material_code = #{materialCode}
and rule_code = #{ruleCode}
</select>
<insert id="insertQcProductCpkUpdown" parameterType="QcProductCpkUpdown">
insert into qc_product_cpk_updown
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">id,</if>
<if test="typeCode != null">type_code,</if>
<if test="checkType != null">check_type,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="factoryCode != null and factoryCode != ''">factory_code,</if>
<if test="delFlag != null">del_flag,</if>
<if test="materialCode != null">material_code,</if>
<if test="materialName != null">material_name,</if>
<if test="upVal != null">up_val,</if>
<if test="downVal != null">down_val,</if>
<if test="ruleCode != null">rule_code,</if>
<if test="ruleName != null">rule_name,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">#{id},</if>
<if test="typeCode != null">#{typeCode},</if>
<if test="checkType != null">#{checkType},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="factoryCode != null and factoryCode != ''">#{factoryCode}, </if>
<if test="delFlag != null">#{delFlag},</if>
<if test="materialCode != null">#{materialCode},</if>
<if test="materialName != null">#{materialName},</if>
<if test="upVal != null">#{upVal},</if>
<if test="downVal != null">#{downVal},</if>
<if test="ruleCode != null">#{ruleCode},</if>
<if test="ruleName != null">#{ruleName},</if>
</trim>
</insert>
<update id="updateQcProductCpkUpdown" parameterType="QcProductCpkUpdown">
update qc_product_cpk_updown
<trim prefix="SET" suffixOverrides=",">
<if test="typeCode != null">type_code =#{typeCode},</if>
<if test="checkType != null">check_type = #{checkType},</if>
<if test="updateBy != null">update_by =#{updateBy},</if>
<if test="updateTime != null">update_time =#{updateTime}, </if>
<if test="delFlag != null">del_flag =#{delFlag},</if>
<if test="materialCode != null">material_code =#{materialCode},</if>
<if test="materialName != null">material_name =#{materialName},</if>
<if test="upVal != null">up_val =#{upVal},</if>
<if test="downVal != null">down_val =#{downVal},</if>
<if test="ruleCode != null">rule_code =#{ruleCode},</if>
<if test="ruleName != null">rule_name = #{ruleName},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteQcProductCpkUpdownById" parameterType="String">
update qc_product_cpk_updown set del_flag = '1' where id = #{id}
</delete>
<delete id="deleteQcProductCpkUpdownByIds" parameterType="String">
update qc_product_cpk_updown set del_flag = '1' where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

@ -329,7 +329,17 @@ public class OdsProcureOrderController extends BaseController {
odsProcureOrderService.OutboundPostingSAPfc(orderList); odsProcureOrderService.OutboundPostingSAPfc(orderList);
return success(); return success();
} }
/**
*
*
* @param orderList
* @return
*/
@PostMapping("/OutboundPostingzcSAP")
public AjaxResult OutboundPostingzcSAP(@RequestBody List<OdsProcureOutOrder> orderList) {
odsProcureOrderService.OutboundPostingzcSAP(orderList);
return success();
}
@PostMapping("/listCKT") @PostMapping("/listCKT")
public AjaxResult listCKT(BaseWarehouse baseWarehouse) { public AjaxResult listCKT(BaseWarehouse baseWarehouse) {

@ -65,6 +65,12 @@ public class OdsProcureOutOrderController extends BaseController {
List<OdsProcureOutOrder> list = odsProcureOutOrderService.selectOdsProcureOutOrderListZUfc(odsProcureOutOrder); List<OdsProcureOutOrder> list = odsProcureOutOrderService.selectOdsProcureOutOrderListZUfc(odsProcureOutOrder);
return getDataTable(list); return getDataTable(list);
} }
@PostMapping("/listZC")
public TableDataInfo listZC(OdsProcureOutOrder odsProcureOutOrder) {
startPage();
List<OdsProcureOutOrder> list = odsProcureOutOrderService.selectOdsProcureOutOrderListZC(odsProcureOutOrder);
return getDataTable(list);
}
/** /**
* *
*/ */

@ -141,6 +141,15 @@ public class OdsProcureOutOrder extends BaseEntity {
*/ */
@Excel(name = "计划数量") @Excel(name = "计划数量")
private BigDecimal planNumber; private BigDecimal planNumber;
private BigDecimal amount;
public BigDecimal getAmount() {
return amount;
}
public void setAmount(BigDecimal amount) {
this.amount = amount;
}
private String sn; private String sn;
@ -320,6 +329,43 @@ public class OdsProcureOutOrder extends BaseEntity {
private String enterpriseCode; private String enterpriseCode;
private String sapMag; private String sapMag;
private String sapXMag; private String sapXMag;
private String mateOrderInSnId;
private String whCode;
private String waCode;
private String wlCode;
public String getWhCode() {
return whCode;
}
public void setWhCode(String whCode) {
this.whCode = whCode;
}
public String getWaCode() {
return waCode;
}
public void setWaCode(String waCode) {
this.waCode = waCode;
}
public String getWlCode() {
return wlCode;
}
public void setWlCode(String wlCode) {
this.wlCode = wlCode;
}
public String getMateOrderInSnId() {
return mateOrderInSnId;
}
public void setMateOrderInSnId(String mateOrderInSnId) {
this.mateOrderInSnId = mateOrderInSnId;
}
public String getSapMag() { public String getSapMag() {
return sapMag; return sapMag;

@ -88,6 +88,16 @@ public class WmsOdsMateStorageNewsSn extends BaseEntity {
*/ */
@Excel(name = "数量") @Excel(name = "数量")
private BigDecimal amount; private BigDecimal amount;
@Excel(name = "出库数量")
private BigDecimal outNumber;
public BigDecimal getOutNumber() {
return outNumber;
}
public void setOutNumber(BigDecimal outNumber) {
this.outNumber = outNumber;
}
/** /**
* 1 * 1

@ -4,6 +4,8 @@ import java.util.List;
import com.op.system.api.domain.sap.SapMaterialPosting; import com.op.system.api.domain.sap.SapMaterialPosting;
import com.op.wms.domain.OdsProcureOutOrder; import com.op.wms.domain.OdsProcureOutOrder;
import com.op.wms.domain.WmsOdsEmStorageNews;
import com.op.wms.domain.WmsOdsMateStorageNews;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
/** /**
@ -61,55 +63,68 @@ public interface OdsProcureOutOrderMapper {
*/ */
public int deleteOdsProcureOutOrderByIDs(String[] IDs); public int deleteOdsProcureOutOrderByIDs(String[] IDs);
OdsProcureOutOrder selectmesPrepare(OdsProcureOutOrder odsProcureOrder); public OdsProcureOutOrder selectmesPrepare(OdsProcureOutOrder odsProcureOrder);
List<OdsProcureOutOrder> selectmesPrepareDetail(OdsProcureOutOrder odsProcureOutOrder); public List<OdsProcureOutOrder> selectmesPrepareDetail(OdsProcureOutOrder odsProcureOutOrder);
void insertWmsRawMissionOut(OdsProcureOutOrder order); public void insertWmsRawMissionOut(OdsProcureOutOrder order);
void updateOdsProcureOutOrderByid(OdsProcureOutOrder odsProcureOutOrder); public void updateOdsProcureOutOrderByid(OdsProcureOutOrder odsProcureOutOrder);
List<OdsProcureOutOrder> selectOdsProcureOutOrderListByIds(@Param("list") List<OdsProcureOutOrder> orderList); public List<OdsProcureOutOrder> selectOdsProcureOutOrderListByIds(@Param("list") List<OdsProcureOutOrder> orderList);
List<OdsProcureOutOrder> selectOdsProcureOutOrderListZU(OdsProcureOutOrder odsProcureOutOrder); public List<OdsProcureOutOrder> selectOdsProcureOutOrderListZU(OdsProcureOutOrder odsProcureOutOrder);
List<OdsProcureOutOrder> selectOdsProcureOutOrderListZUT(OdsProcureOutOrder odsProcureOutOrder1); public List<OdsProcureOutOrder> selectOdsProcureOutOrderListZUT(OdsProcureOutOrder odsProcureOutOrder1);
List<OdsProcureOutOrder> selectOdsProcureOutOrderListByu1(@Param("list") List<OdsProcureOutOrder> orderList); public List<OdsProcureOutOrder> selectOdsProcureOutOrderListByu1(@Param("list") List<OdsProcureOutOrder> orderList);
void updateOdsProcureOutOrderByids(@Param("order") OdsProcureOutOrder order, @Param("list") List<OdsProcureOutOrder> sapMaterialPostingList); public void updateOdsProcureOutOrderByids(@Param("order") OdsProcureOutOrder order, @Param("list") List<OdsProcureOutOrder> sapMaterialPostingList);
List<String> selectOdsProcureOutOrderListZUKEN(OdsProcureOutOrder order); public List<String> selectOdsProcureOutOrderListZUKEN(OdsProcureOutOrder order);
List<String> selectOdsProcureOutOrderListZUKENX(OdsProcureOutOrder order); public List<String> selectOdsProcureOutOrderListZUKENX(OdsProcureOutOrder order);
String selectMachineCode(@Param("order")OdsProcureOutOrder odsProcureOutOrder); public String selectMachineCode(@Param("order")OdsProcureOutOrder odsProcureOutOrder);
List<OdsProcureOutOrder> selectmesPrepareDetailWhite(OdsProcureOutOrder odsProcureOutOrder); public List<OdsProcureOutOrder> selectmesPrepareDetailWhite(OdsProcureOutOrder odsProcureOutOrder);
OdsProcureOutOrder selectmesPreparelike(OdsProcureOutOrder odsProcureOrder); public OdsProcureOutOrder selectmesPreparelike(OdsProcureOutOrder odsProcureOrder);
List<OdsProcureOutOrder> selectOdsProcureOutOrderListZUfc(OdsProcureOutOrder odsProcureOutOrder); public List<OdsProcureOutOrder> selectOdsProcureOutOrderListZUfc(OdsProcureOutOrder odsProcureOutOrder);
List<OdsProcureOutOrder> PurchaseOrderOutboundPdafc(OdsProcureOutOrder odsProcureOrder); public List<OdsProcureOutOrder> PurchaseOrderOutboundPdafc(OdsProcureOutOrder odsProcureOrder);
public int insertOdsProcureOutOrderfc(OdsProcureOutOrder odsProcureOutOrder); public int insertOdsProcureOutOrderfc(OdsProcureOutOrder odsProcureOutOrder);
List<OdsProcureOutOrder> selectOdsProcureOutOrderListByu1fc(List<OdsProcureOutOrder> orderList); public List<OdsProcureOutOrder> selectOdsProcureOutOrderListByu1fc(List<OdsProcureOutOrder> orderList);
void updateOdsProcureOutOrderByidsfc(@Param("order") OdsProcureOutOrder order, @Param("list") List<OdsProcureOutOrder> sapMaterialPostingList); public void updateOdsProcureOutOrderByidsfc(@Param("order") OdsProcureOutOrder order, @Param("list") List<OdsProcureOutOrder> sapMaterialPostingList);
OdsProcureOutOrder selectOdsProcureOutOrderListZUfcsy(OdsProcureOutOrder odsProcureOutOrder); public OdsProcureOutOrder selectOdsProcureOutOrderListZUfcsy(OdsProcureOutOrder odsProcureOutOrder);
OdsProcureOutOrder selectMesPrepareBC(OdsProcureOutOrder odsProcureOutOrder); public OdsProcureOutOrder selectMesPrepareBC(OdsProcureOutOrder odsProcureOutOrder);
List<OdsProcureOutOrder> selectMesPrepareDetailBC(OdsProcureOutOrder order); public List<OdsProcureOutOrder> selectMesPrepareDetailBC(OdsProcureOutOrder order);
List<OdsProcureOutOrder> selectWmsOdsProcureOutOrder(OdsProcureOutOrder odsProcureOutOrder); public List<OdsProcureOutOrder> selectWmsOdsProcureOutOrder(OdsProcureOutOrder odsProcureOutOrder);
public void insertWmsOdsProcureOutOrder(OdsProcureOutOrder odsProcureOutOrder1); public void insertWmsOdsProcureOutOrder(OdsProcureOutOrder odsProcureOutOrder1);
OdsProcureOutOrder selectWmsOdsProcureOutOrderByID(String id); public OdsProcureOutOrder selectWmsOdsProcureOutOrderByID(String id);
void updateWmsOdsProcureOutOrder(OdsProcureOutOrder odsProcureOutOrder1); public void updateWmsOdsProcureOutOrder(OdsProcureOutOrder odsProcureOutOrder1);
public List<OdsProcureOutOrder> selectOdsProcureOutOrderListZC(OdsProcureOutOrder odsProcureOutOrder);
public List<OdsProcureOutOrder> selectWmsOdsProcureOutOrderByIDs(@Param("list") List<OdsProcureOutOrder> orderList);
public void updateWMSOdsProcureOutOrderByids(@Param("order") OdsProcureOutOrder order, @Param("list") List<OdsProcureOutOrder> sapMaterialPostingList);
public List<WmsOdsMateStorageNews> selectWmsRawMissionOutByPrdAndMa(OdsProcureOutOrder order1);
public List<OdsProcureOutOrder> selectPreDetailHzList(OdsProcureOutOrder odsProcureOutOrder);
public List<OdsProcureOutOrder> selectWmsOdsProcureOutOrderByOrderStatus(OdsProcureOutOrder order);
} }

@ -62,12 +62,20 @@ public interface WmsOdsMateStorageNewsSnMapper {
*/ */
public int deleteWmsOdsMateStorageNewsSnByMateOrderInSnIds(Long[] mateOrderInSnIds); public int deleteWmsOdsMateStorageNewsSnByMateOrderInSnIds(Long[] mateOrderInSnIds);
void updateAdd(WmsOdsEmStorageNews wmsOdsEmStorageNews); public void updateAdd(WmsOdsEmStorageNews wmsOdsEmStorageNews);
void updatekdd(WmsOdsEmStorageNews wmsOdsEmStorageNews); public void updatekdd(WmsOdsEmStorageNews wmsOdsEmStorageNews);
WmsOdsMateStorageNewsSn selectwmsRfidNotwo(WmsToWCSDTO wcsdto); public WmsOdsMateStorageNewsSn selectwmsRfidNotwo(WmsToWCSDTO wcsdto);
WmsOdsMateStorageNewsSn selectWmsOdsMateStorageNewsSnByWlCode(WmsOdsMateStorageNewsSn wmsOdsMateStorageNewsSn); public WmsOdsMateStorageNewsSn selectWmsOdsMateStorageNewsSnByWlCode(WmsOdsMateStorageNewsSn wmsOdsMateStorageNewsSn);
public WmsOdsMateStorageNewsSn selectWmsOdsMateStorageNewsSnByMateOrderInSnIdk(String mateOrderInSnId);
public void updateWmsOdsMateStorageNewsSnAddoutNumber(WmsOdsMateStorageNewsSn wmsOdsMateStorageNewsSn);
public WmsOdsMateStorageNewsSn selectWmsOdsMateStorageNewsSnByWlCodeTEM(WmsOdsMateStorageNewsSn wmsOdsMateStorageNewsSn);
void updatesub(WmsOdsMateStorageNews wmsOdsMateStorageNews);
} }

@ -127,4 +127,6 @@ public interface IOdsProcureOrderService {
WmsOdsMateStorageNewsSn SweepMaterialCardSC(WmsOdsMateStorageNewsSn wmsOdsMateStorageNewsSn); WmsOdsMateStorageNewsSn SweepMaterialCardSC(WmsOdsMateStorageNewsSn wmsOdsMateStorageNewsSn);
String NewConMaterialOutSC(List<OdsProcureOutOrder> odsProcureOutOrder); String NewConMaterialOutSC(List<OdsProcureOutOrder> odsProcureOutOrder);
void OutboundPostingzcSAP(List<OdsProcureOutOrder> orderList);
} }

@ -64,4 +64,6 @@ public interface IOdsProcureOutOrderService {
List<OdsProcureOutOrder> selectOdsProcureOutOrderListZUTwo(OdsProcureOutOrder odsProcureOutOrder1); List<OdsProcureOutOrder> selectOdsProcureOutOrderListZUTwo(OdsProcureOutOrder odsProcureOutOrder1);
List<OdsProcureOutOrder> selectOdsProcureOutOrderListZUfc(OdsProcureOutOrder odsProcureOutOrder); List<OdsProcureOutOrder> selectOdsProcureOutOrderListZUfc(OdsProcureOutOrder odsProcureOutOrder);
List<OdsProcureOutOrder> selectOdsProcureOutOrderListZC(OdsProcureOutOrder odsProcureOutOrder);
} }

@ -1176,6 +1176,10 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
}else{ }else{
dtos.addAll(dtos0); dtos.addAll(dtos0);
} }
// for (OdsProcureOrder order1:
// dtos ) {
//
// }
String msg= dayin(dtos); String msg= dayin(dtos);
return msg; return msg;
} }
@ -1457,11 +1461,72 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
@Override @Override
public List<OdsProcureOutOrder> ProductionMaterialRequisitionSC(OdsProcureOutOrder odsProcureOutOrder) { public List<OdsProcureOutOrder> ProductionMaterialRequisitionSC(OdsProcureOutOrder odsProcureOutOrder) {
//二维码获取的信息查询对应的sap生产订单再用生产订单查询子单
DynamicDataSourceContextHolder.push("ds_" + odsProcureOutOrder.getFactoryCode()); DynamicDataSourceContextHolder.push("ds_" + odsProcureOutOrder.getFactoryCode());
if (odsProcureOutOrder.getUserDefined4().length()<=10){
//二维码获取的信息查询对应的sap生产订单再用生产订单查询子单
List<OdsProcureOutOrder> orderLists=new ArrayList<>();
List<OdsProcureOutOrder> orderListone= odsProcureOutOrderMapper.selectWmsOdsProcureOutOrder(odsProcureOutOrder); List<OdsProcureOutOrder> orderListone= odsProcureOutOrderMapper.selectWmsOdsProcureOutOrder(odsProcureOutOrder);
if (orderListone.size()>0){ if (orderListone.size()>0){
return orderListone; for (OdsProcureOutOrder order:orderListone){
if (!"3".equals(order.getOrderStatus())){
orderLists.add(order);
}
}
return orderLists;
}
// OdsProcureOutOrder order = odsProcureOutOrderMapper.selectMesPrepareBC(odsProcureOutOrder);
List<OdsProcureOutOrder> orderList= odsProcureOutOrderMapper.selectPreDetailHzList(odsProcureOutOrder);
//根据订单号查询对应的最大批次号
Integer orderItem = 0;
for (OdsProcureOutOrder orderLine1 :
orderList) {
orderItem++;
orderLine1.setUserDefined2(String.format("%05d", orderItem));
}
List<OdsProcureOutOrder> orderList1=new ArrayList<>();
for (OdsProcureOutOrder order1:
orderList) {
OdsProcureOutOrder odsProcureOutOrder1 = new OdsProcureOutOrder();
odsProcureOutOrder1.setID(IdUtils.fastSimpleUUID());
odsProcureOutOrder1.setSiteCode(order1.getFactoryCode());
odsProcureOutOrder1.setProduceCode(odsProcureOutOrder.getUserDefined4());//反冲
odsProcureOutOrder1.setOutNumber(new BigDecimal("0"));
//odsProcureOutOrder1.setLocCode(order.getWarehouseNo());
odsProcureOutOrder1.setMaterialCode(order1.getMaterialCode());
odsProcureOutOrder1.setMaterialDesc(order1.getMaterialDesc());
odsProcureOutOrder1.setPlanDate(new Date());
odsProcureOutOrder1.setUnit(order1.getUnit());
odsProcureOutOrder1.setUserDefined5(odsProcureOutOrder.getUserDefined4());
//odsProcureOutOrder1.setProductionLineCode(order1.getStationNo());
//odsProcureOutOrder1.setUserDefined1(orderLine1.getBatchNo());
odsProcureOutOrder1.setActive("1");
odsProcureOutOrder1.setOrderStatus("1");//
odsProcureOutOrder1.setPlanNumber(order1.getPlanNumber());
odsProcureOutOrder1.setUserDefined2(order1.getUserDefined2());
odsProcureOutOrder1.setUserDefined3(order1.getUserDefined3());
odsProcureOutOrder1.setUserDefined4(odsProcureOutOrder.getUserDefined4());
odsProcureOutOrder1.setUserDefined10("1");
odsProcureOutOrder1.setCreateBy(odsProcureOutOrder.getCreateBy());
odsProcureOutOrder1.setCreateDate(new Date());
//odsProcureOutOrder1.setCreateDate(new Date());
//odsProcureOutOrder.set
odsProcureOutOrderMapper.insertWmsOdsProcureOutOrder(odsProcureOutOrder1);
orderList1.add(odsProcureOutOrder1);
}
return orderList1;
}else {
//二维码获取的信息查询对应的sap生产订单再用生产订单查询子单
List<OdsProcureOutOrder> orderLists=new ArrayList<>();
List<OdsProcureOutOrder> orderListone= odsProcureOutOrderMapper.selectWmsOdsProcureOutOrder(odsProcureOutOrder);
if (orderListone.size()>0){
for (OdsProcureOutOrder order:orderListone){
if (!"3".equals(order.getOrderStatus())){
orderLists.add(order);
}
}
return orderLists;
} }
OdsProcureOutOrder order = odsProcureOutOrderMapper.selectMesPrepareBC(odsProcureOutOrder); OdsProcureOutOrder order = odsProcureOutOrderMapper.selectMesPrepareBC(odsProcureOutOrder);
List<OdsProcureOutOrder> orderList= odsProcureOutOrderMapper.selectMesPrepareDetailBC(order); List<OdsProcureOutOrder> orderList= odsProcureOutOrderMapper.selectMesPrepareDetailBC(order);
@ -1489,15 +1554,16 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
//odsProcureOutOrder1.setProductionLineCode(order1.getStationNo()); //odsProcureOutOrder1.setProductionLineCode(order1.getStationNo());
//odsProcureOutOrder1.setUserDefined1(orderLine1.getBatchNo()); //odsProcureOutOrder1.setUserDefined1(orderLine1.getBatchNo());
odsProcureOutOrder1.setActive("1"); odsProcureOutOrder1.setActive("1");
odsProcureOutOrder1.setOrderStatus("0");// odsProcureOutOrder1.setOrderStatus("1");//
odsProcureOutOrder1.setPlanNumber(order1.getPlanNumber()); odsProcureOutOrder1.setPlanNumber(order1.getPlanNumber());
odsProcureOutOrder1.setUserDefined2(order1.getUserDefined2()); odsProcureOutOrder1.setUserDefined2(order1.getUserDefined2());
odsProcureOutOrder1.setUserDefined3(order1.getUserDefined3()); odsProcureOutOrder1.setUserDefined3(order1.getUserDefined3());
odsProcureOutOrder1.setUserDefined4(odsProcureOutOrder.getUserDefined4()); odsProcureOutOrder1.setUserDefined4(odsProcureOutOrder.getUserDefined4());
odsProcureOutOrder1.setUserDefined10("1"); odsProcureOutOrder1.setUserDefined10("1");
odsProcureOutOrder1.setUserDefined5(order1.getNeedDate());
odsProcureOutOrder1.setCreateBy(odsProcureOutOrder.getCreateBy()); odsProcureOutOrder1.setCreateBy(odsProcureOutOrder.getCreateBy());
odsProcureOutOrder1.setCreateDate(new Date()); odsProcureOutOrder1.setCreateDate(new Date());
odsProcureOutOrder1.setCreateDate(new Date()); //odsProcureOutOrder1.setCreateDate(new Date());
//odsProcureOutOrder.set //odsProcureOutOrder.set
odsProcureOutOrderMapper.insertWmsOdsProcureOutOrder(odsProcureOutOrder1); odsProcureOutOrderMapper.insertWmsOdsProcureOutOrder(odsProcureOutOrder1);
orderList1.add(odsProcureOutOrder1); orderList1.add(odsProcureOutOrder1);
@ -1505,67 +1571,89 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
return orderList1; return orderList1;
} }
@Override
public WmsOdsMateStorageNewsSn SweepMaterialCardSC(WmsOdsMateStorageNewsSn wmsOdsMateStorageNewsSn) {
DynamicDataSourceContextHolder.push("ds_" + wmsOdsMateStorageNewsSn.getFactoryCode());
wmsOdsMateStorageNewsSn.setUserDefined3("1");
WmsOdsMateStorageNewsSn wmsOdsMateStorageNewsSnk= wmsOdsMateStorageNewsSnMapper.selectWmsOdsMateStorageNewsSnByWlCode(wmsOdsMateStorageNewsSn);
return wmsOdsMateStorageNewsSnk;
} }
@Override
public WmsOdsMateStorageNewsSn SweepMaterialCardSC(WmsOdsMateStorageNewsSn wmsOdsMateStorageNewsSn) {
DynamicDataSourceContextHolder.push("ds_" + wmsOdsMateStorageNewsSn.getFactoryCode());
wmsOdsMateStorageNewsSn.setUserDefined3("1");//1是入库
WmsOdsMateStorageNewsSn wmsOdsMateStorageNewsSnk= wmsOdsMateStorageNewsSnMapper.selectWmsOdsMateStorageNewsSnByWlCodeTEM(wmsOdsMateStorageNewsSn);
return wmsOdsMateStorageNewsSnk;
}
/**
*
*
* ,
* ---
* @param orderList
* @return
*/
@Override @Override
public String NewConMaterialOutSC(List<OdsProcureOutOrder> orderList) { public String NewConMaterialOutSC(List<OdsProcureOutOrder> orderList) {
//修改对应订单--插入对应出库托盘数据数据
// for (OdsProcureOutOrder odsProcureOutOrder:
// orderList) {
// //领料单,物料编号,领料单批次,物料名称,托盘号,出库数量,库位号,
// odsProcureOutOrder.
// }
String result="操作成功"; String result="操作成功";
String factoryCode = orderList.get(0).getFactoryCode(); String factoryCode = orderList.get(0).getFactoryCode();
DynamicDataSourceContextHolder.push("ds_" + factoryCode); DynamicDataSourceContextHolder.push("ds_" + factoryCode);
for (OdsProcureOutOrder odsProcureOutOrder : for (OdsProcureOutOrder odsProcureOutOrder :
orderList) { orderList) {
//领料单,物料编号,领料单批次,物料名称,托盘号,出库数量,库位号, //领料单,物料编号,领料单批次,物料名称,托盘号,出库数量,库位号,
WmsToWCSDTO wcsdto = new WmsToWCSDTO(); String produceCode= odsProcureOutOrder.getProduceCode();//生产领料单号
String createBy= odsProcureOutOrder.getCreateBy();//操作人
wcsdto.setRfidNo(odsProcureOutOrder.getSn()); String mateOrderInSnId= odsProcureOutOrder.getMateOrderInSnId();
WmsOdsMateStorageNewsSn wmsOdsMateStorageNewsSn = wmsOdsMateStorageNewsSnMapper.selectwmsRfidNotwo(wcsdto); String waCode= odsProcureOutOrder.getWaCode();
//明细 String whCode= odsProcureOutOrder.getWhCode();
String wlCode= odsProcureOutOrder.getWlCode();
String sn= odsProcureOutOrder.getSn();
String materialCode= odsProcureOutOrder.getMaterialCode();
String materialDesc= odsProcureOutOrder.getMaterialDesc();
BigDecimal amount= odsProcureOutOrder.getAmount();//数量
String userDefined1= odsProcureOutOrder.getUserDefined1();//单位
String userDefined2= odsProcureOutOrder.getUserDefined2();//批次
WmsOdsMateStorageNewsSn wmsOdsMateStorageNewsSn = wmsOdsMateStorageNewsSnMapper.selectWmsOdsMateStorageNewsSnByMateOrderInSnIdk(mateOrderInSnId);
//wms_raw_mission_out--保存 //wms_raw_mission_out--保存
//ods_procure_out_order--修改 //ods_procure_out_order--修改
WCSInventoryPlan wcsInventoryPlan = new WCSInventoryPlan(); WCSInventoryPlan wcsInventoryPlan = new WCSInventoryPlan();
wcsInventoryPlan.setSku(odsProcureOutOrder.getMaterialCode()); wcsInventoryPlan.setSku(odsProcureOutOrder.getMaterialCode());
// WmsOdsMateStorageNews wmsOdsMateStorageNews = wmsOdsMateStorageNewsMapper.selectBaseProductByCode(wcsInventoryPlan); // WmsOdsMateStorageNews wmsOdsMateStorageNews = wmsOdsMateStorageNewsMapper.selectBaseProductByCode(wcsInventoryPlan);
OdsProcureOutOrder order = new OdsProcureOutOrder(); OdsProcureOutOrder order = new OdsProcureOutOrder();
order.setProduceCode(odsProcureOutOrder.getProduceCode());//领料单 order.setProduceCode(produceCode);//领料单
order.setMaterialCode(odsProcureOutOrder.getMaterialCode());// order.setMaterialCode(materialCode);//
order.setMaterialDesc(odsProcureOutOrder.getMaterialDesc()); order.setMaterialDesc(materialDesc);
order.setUserDefined1(odsProcureOutOrder.getUserDefined1());//批次 order.setUserDefined1(userDefined2);//批次
order.setSn(odsProcureOutOrder.getSn()); order.setUserDefined2(whCode);
order.setPlanNumber(odsProcureOutOrder.getPlanNumber()); order.setUserDefined3(wlCode);
order.setLocCode(odsProcureOutOrder.getLocCode()); order.setSn(sn);
order.setPlanNumber(amount);
order.setLocCode(waCode);//库区
order.setID(IdUtils.fastSimpleUUID()); order.setID(IdUtils.fastSimpleUUID());
order.setUnit(odsProcureOutOrder.getUnit()); order.setUnit(userDefined1);
order.setFactoryCode(factoryCode); order.setFactoryCode(factoryCode);
order.setActive("1"); order.setActive("1");
order.setCreateBy(odsProcureOutOrder.getCreateBy()); order.setCreateBy(createBy);
order.setCreateDate(new Date()); order.setCreateDate(new Date());
order.setSiteCode(factoryCode);
odsProcureOutOrderMapper.insertWmsRawMissionOut(order); odsProcureOutOrderMapper.insertWmsRawMissionOut(order);
OdsProcureOutOrder odsProcureOutOrder1=new OdsProcureOutOrder();
OdsProcureOutOrder odsProcureOutOrder1 = odsProcureOutOrderMapper.selectWmsOdsProcureOutOrderByID(odsProcureOutOrder.getID()); odsProcureOutOrder1.setProduceCode(produceCode);
BigDecimal realityNumber1 = odsProcureOutOrder1.getOutNumber();//累出库数 odsProcureOutOrder1.setMaterialCode(materialCode);
BigDecimal realityNumber = odsProcureOutOrder1.getPlanNumber();//计划 List<OdsProcureOutOrder> odsProcureOutOrders = odsProcureOutOrderMapper.selectWmsOdsProcureOutOrder(odsProcureOutOrder1);
BigDecimal planNumber = odsProcureOutOrder.getPlanNumber();//本次实际数量 OdsProcureOutOrder order1= odsProcureOutOrders.get(0);
BigDecimal realityNumber1 = order1.getOutNumber();//累出库数
BigDecimal realityNumber = order1.getPlanNumber();//计划
BigDecimal planNumber = amount;//本次实际数量
BigDecimal tem = realityNumber1.add(planNumber); BigDecimal tem = realityNumber1.add(planNumber);
if (tem.compareTo(realityNumber)== 0) { if (tem.compareTo(realityNumber)>= 0) {
odsProcureOutOrder1.setOrderStatus("3"); order1.setOrderStatus("3");
} else { } else {
odsProcureOutOrder1.setOrderStatus("2"); order1.setOrderStatus("2");
} }
odsProcureOutOrder1.setOutNumber(tem); order1.setOutNumber(tem);
odsProcureOutOrderMapper.updateWmsOdsProcureOutOrder(odsProcureOutOrder1);//订单修改 odsProcureOutOrderMapper.updateWmsOdsProcureOutOrder(order1);//订单修改
//明细
// BigDecimal temk= wmsOdsMateStorageNewsSn.getAmount().subtract(amount);
wmsOdsMateStorageNewsSn.setOutNumber(amount);
wmsOdsMateStorageNewsSn.setLastModifiedBy(createBy);
wmsOdsMateStorageNewsSnMapper.updateWmsOdsMateStorageNewsSnAddoutNumber(wmsOdsMateStorageNewsSn);//库存明细
WmsOdsEmStorageNews wmsOdsEmStorageNews = new WmsOdsEmStorageNews(); WmsOdsEmStorageNews wmsOdsEmStorageNews = new WmsOdsEmStorageNews();
wmsOdsEmStorageNews.setWhCode(wmsOdsMateStorageNewsSn.getWhCode());//仓库编码 wmsOdsEmStorageNews.setWhCode(wmsOdsMateStorageNewsSn.getWhCode());//仓库编码
wmsOdsEmStorageNews.setWlCode(wmsOdsMateStorageNewsSn.getWlCode());//库位编码 wmsOdsEmStorageNews.setWlCode(wmsOdsMateStorageNewsSn.getWlCode());//库位编码
@ -1573,13 +1661,237 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
wmsOdsEmStorageNews.setProductBatch(wmsOdsMateStorageNewsSn.getUserDefined2()); wmsOdsEmStorageNews.setProductBatch(wmsOdsMateStorageNewsSn.getUserDefined2());
wmsOdsEmStorageNews.setMaterialCode(wmsOdsMateStorageNewsSn.getMaterialCode()); wmsOdsEmStorageNews.setMaterialCode(wmsOdsMateStorageNewsSn.getMaterialCode());
wmsOdsEmStorageNews.setAmount(odsProcureOutOrder.getPlanNumber());//库存 wmsOdsEmStorageNews.setAmount(odsProcureOutOrder.getPlanNumber());//库存
wmsOdsEmStorageNews.setLastModifiedBy(createBy);
wmsOdsMateStorageNewsSnMapper.updatekdd(wmsOdsEmStorageNews);//库存调整 wmsOdsMateStorageNewsSnMapper.updatekdd(wmsOdsEmStorageNews);//库存调整
wmsOdsMateStorageNewsSn.setUserDefined1("1"); }
wmsOdsMateStorageNewsSnMapper.updateWmsOdsMateStorageNewsSn(wmsOdsMateStorageNewsSn);//库存明细 //
OdsProcureOutOrder order=new OdsProcureOutOrder();
List<OdsProcureOutOrder> orderList1 = odsProcureOutOrderMapper.selectWmsOdsProcureOutOrderByOrderStatus(order);
if (orderList1.size()>0){
OutboundPostingzcSAPGY(orderList1);
} }
return result; return result;
} }
public void OutboundPostingzcSAPGY(List<OdsProcureOutOrder> orderList) {
//先根据出库单获取
// * 退料的移动类型为 262
// * 领料的移动类型为 261
List<OdsProcureOutOrder> orderList1 = odsProcureOutOrderMapper.selectWmsOdsProcureOutOrderByIDs(orderList);
List<OdsProcureOutOrder> orderList2 = new ArrayList<>();//非反冲
List<Map<String, Object>> mapList = new ArrayList<>();//非反冲
List<SapBackflushMPQuery> sapMaterialPostingFCList = new ArrayList<>();//反冲
List<OdsProcureOutOrder> orderList2FC = new ArrayList<>();//反冲
for (OdsProcureOutOrder odsProcureOutOrder :
orderList1) {
if (!"X".equals(odsProcureOutOrder.getUserDefined3())){
Map<String, Object> map = new HashMap<>();
map.put("AUFNR", odsProcureOutOrder.getProduceCode());
map.put("PLANT", odsProcureOutOrder.getSiteCode());
String lgort = baseWarehouseMapper.selectByCode(odsProcureOutOrder.getLocCode());
map.put("LGORT", lgort);
map.put("MATNR", odsProcureOutOrder.getMaterialCode());
map.put("QUANTITY", odsProcureOutOrder.getOutNumber().toString());
map.put("MEINS", odsProcureOutOrder.getUnit());
mapList.add(map);
orderList2.add(odsProcureOutOrder);
}else {
SapBackflushMPQuery sapBackflushMPQuery = new SapBackflushMPQuery();
sapBackflushMPQuery.setPlant(odsProcureOutOrder.getSiteCode()); //工厂
String lgort = baseWarehouseMapper.selectByCode(odsProcureOutOrder.getLocCode());
sapBackflushMPQuery.setLgort(lgort);//库存地点
sapBackflushMPQuery.setMatnr(odsProcureOutOrder.getMaterialCode());//物料号
sapBackflushMPQuery.setQuantity(odsProcureOutOrder.getOutNumber().toString()); //数量
sapBackflushMPQuery.setMeins(odsProcureOutOrder.getUnit()); //基本计量单位
sapBackflushMPQuery.setBatch(odsProcureOutOrder.getUserDefined2()); //批号
sapMaterialPostingFCList.add(sapBackflushMPQuery);
orderList2FC.add(odsProcureOutOrder);
}
}
if (mapList.size() > 0) {
//非反冲过账
SapMaterialPosting sapMaterialPosting = new SapMaterialPosting();
sapMaterialPosting.setPostingType("261");
sapMaterialPosting.setMapList(mapList);
R result = remoteSapService.sapMaterialPosting(sapMaterialPosting);
OdsProcureOutOrder order = new OdsProcureOutOrder();
int code = result.getCode();
String msg = result.getMsg();
//order.setSapMaterialPostingList(sapMaterialPostingList);
order.setUserDefined11(msg);
if (code == 200) {
//过账成功
Map map = new HashMap();
map = (Map) result.getData();
String userDefined9 = (String) map.get("MATERIALDOCUMENT");
order.setUserDefined9(userDefined9);
order.setUserDefined10("2");//成功
odsProcureOutOrderMapper.updateWMSOdsProcureOutOrderByids(order, orderList2);
for (OdsProcureOutOrder order1:
orderList2) {
//过账成功--减库存
List<WmsOdsMateStorageNews> odsEmStorageNews= odsProcureOutOrderMapper.selectWmsRawMissionOutByPrdAndMa(order1);
for (WmsOdsMateStorageNews wmsOdsMateStorageNews:
odsEmStorageNews) {
//wmsOdsMateStorageNews
wmsOdsMateStorageNews.setLastModifiedBy(SecurityUtils.getUsername());
wmsOdsMateStorageNewsSnMapper.updatesub(wmsOdsMateStorageNews);//库存调整
}
}
} else {
//
order.setUserDefined9("");
order.setUserDefined10("3");//失败
odsProcureOutOrderMapper.updateWMSOdsProcureOutOrderByids(order, orderList2);
}
}
if (sapMaterialPostingFCList.size() > 0) {
//反冲过账
R result2 = remoteSapService.sapBackflushMP(sapMaterialPostingFCList);//x
int code = result2.getCode();
OdsProcureOutOrder order = new OdsProcureOutOrder();
String msg = result2.getMsg();
order.setUserDefined11(msg);
if (code == 200) {
//过账成功
Map map = new HashMap();
map = (Map) result2.getData();
String userDefined9 = (String) map.get("MATERIALDOCUMENT");
order.setUserDefined9(userDefined9);
order.setUserDefined10("2");//成功
odsProcureOutOrderMapper.updateWMSOdsProcureOutOrderByids(order, orderList2FC);
for (OdsProcureOutOrder order1:
orderList2FC) {
//过账成功--减库存
List<WmsOdsMateStorageNews> odsEmStorageNews= odsProcureOutOrderMapper.selectWmsRawMissionOutByPrdAndMa(order1);
for (WmsOdsMateStorageNews wmsOdsMateStorageNews:
odsEmStorageNews) {
//wmsOdsMateStorageNews
wmsOdsMateStorageNews.setLastModifiedBy(SecurityUtils.getUsername());
wmsOdsMateStorageNewsSnMapper.updatesub(wmsOdsMateStorageNews);//库存调整
}
}
} else {//
order.setUserDefined9("");
order.setUserDefined10("3");//失败
odsProcureOutOrderMapper.updateWMSOdsProcureOutOrderByids(order, orderList2FC);
}
}
}
/**
*
* @param orderList
*/
@Override
@DS("#header.poolName")
public void OutboundPostingzcSAP(List<OdsProcureOutOrder> orderList) {
//先根据出库单获取
// * 退料的移动类型为 262
// * 领料的移动类型为 261
List<OdsProcureOutOrder> orderList1 = odsProcureOutOrderMapper.selectWmsOdsProcureOutOrderByIDs(orderList);
List<OdsProcureOutOrder> orderList2 = new ArrayList<>();//非反冲
List<Map<String, Object>> mapList = new ArrayList<>();//非反冲
List<SapBackflushMPQuery> sapMaterialPostingFCList = new ArrayList<>();//反冲
List<OdsProcureOutOrder> orderList2FC = new ArrayList<>();//反冲
for (OdsProcureOutOrder odsProcureOutOrder :
orderList1) {
if (!"X".equals(odsProcureOutOrder.getUserDefined3())){
Map<String, Object> map = new HashMap<>();
map.put("AUFNR", odsProcureOutOrder.getProduceCode());
map.put("PLANT", odsProcureOutOrder.getSiteCode());
String lgort = baseWarehouseMapper.selectByCode(odsProcureOutOrder.getLocCode());
map.put("LGORT", lgort);
map.put("MATNR", odsProcureOutOrder.getMaterialCode());
map.put("QUANTITY", odsProcureOutOrder.getOutNumber().toString());
map.put("MEINS", odsProcureOutOrder.getUnit());
mapList.add(map);
orderList2.add(odsProcureOutOrder);
}else {
SapBackflushMPQuery sapBackflushMPQuery = new SapBackflushMPQuery();
sapBackflushMPQuery.setPlant(odsProcureOutOrder.getSiteCode()); //工厂
String lgort = baseWarehouseMapper.selectByCode(odsProcureOutOrder.getLocCode());
sapBackflushMPQuery.setLgort(lgort);//库存地点
sapBackflushMPQuery.setMatnr(odsProcureOutOrder.getMaterialCode());//物料号
sapBackflushMPQuery.setQuantity(odsProcureOutOrder.getOutNumber().toString()); //数量
sapBackflushMPQuery.setMeins(odsProcureOutOrder.getUnit()); //基本计量单位
sapBackflushMPQuery.setBatch(odsProcureOutOrder.getUserDefined2()); //批号
sapMaterialPostingFCList.add(sapBackflushMPQuery);
orderList2FC.add(odsProcureOutOrder);
}
}
if (mapList.size() > 0) {
//非反冲过账
SapMaterialPosting sapMaterialPosting = new SapMaterialPosting();
sapMaterialPosting.setPostingType("261");
sapMaterialPosting.setMapList(mapList);
R result = remoteSapService.sapMaterialPosting(sapMaterialPosting);
OdsProcureOutOrder order = new OdsProcureOutOrder();
int code = result.getCode();
String msg = result.getMsg();
//order.setSapMaterialPostingList(sapMaterialPostingList);
order.setUserDefined11(msg);
if (code == 200) {
//过账成功
Map map = new HashMap();
map = (Map) result.getData();
String userDefined9 = (String) map.get("MATERIALDOCUMENT");
order.setUserDefined9(userDefined9);
order.setUserDefined10("2");//成功
odsProcureOutOrderMapper.updateWMSOdsProcureOutOrderByids(order, orderList2);
for (OdsProcureOutOrder order1:
orderList2) {
//过账成功--减库存
List<WmsOdsMateStorageNews> odsEmStorageNews= odsProcureOutOrderMapper.selectWmsRawMissionOutByPrdAndMa(order1);
for (WmsOdsMateStorageNews wmsOdsMateStorageNews:
odsEmStorageNews) {
//wmsOdsMateStorageNews
wmsOdsMateStorageNews.setLastModifiedBy(SecurityUtils.getUsername());
wmsOdsMateStorageNewsSnMapper.updatesub(wmsOdsMateStorageNews);//库存调整
}
}
} else {
//
order.setUserDefined9("");
order.setUserDefined10("3");//失败
odsProcureOutOrderMapper.updateWMSOdsProcureOutOrderByids(order, orderList2);
}
}
if (sapMaterialPostingFCList.size() > 0) {
//反冲过账
R result2 = remoteSapService.sapBackflushMP(sapMaterialPostingFCList);//x
int code = result2.getCode();
OdsProcureOutOrder order = new OdsProcureOutOrder();
String msg = result2.getMsg();
order.setUserDefined11(msg);
if (code == 200) {
//过账成功
Map map = new HashMap();
map = (Map) result2.getData();
String userDefined9 = (String) map.get("MATERIALDOCUMENT");
order.setUserDefined9(userDefined9);
order.setUserDefined10("2");//成功
odsProcureOutOrderMapper.updateWMSOdsProcureOutOrderByids(order, orderList2FC);
for (OdsProcureOutOrder order1:
orderList2FC) {
//过账成功--减库存
List<WmsOdsMateStorageNews> odsEmStorageNews= odsProcureOutOrderMapper.selectWmsRawMissionOutByPrdAndMa(order1);
for (WmsOdsMateStorageNews wmsOdsMateStorageNews:
odsEmStorageNews) {
//wmsOdsMateStorageNews
wmsOdsMateStorageNews.setLastModifiedBy(SecurityUtils.getUsername());
wmsOdsMateStorageNewsSnMapper.updatesub(wmsOdsMateStorageNews);//库存调整
}
}
} else {//
order.setUserDefined9("");
order.setUserDefined10("3");//失败
odsProcureOutOrderMapper.updateWMSOdsProcureOutOrderByids(order, orderList2FC);
}
}
}
public String dayin( List<OdsProcureOrder> orderList) { public String dayin( List<OdsProcureOrder> orderList) {
// 定义请求的URL地址 // 定义请求的URL地址

@ -131,4 +131,11 @@ public class OdsProcureOutOrderServiceImpl implements IOdsProcureOutOrderService
List<OdsProcureOutOrder> orderList = odsProcureOutOrderMapper.selectOdsProcureOutOrderListZUfc(odsProcureOutOrder); List<OdsProcureOutOrder> orderList = odsProcureOutOrderMapper.selectOdsProcureOutOrderListZUfc(odsProcureOutOrder);
return orderList; return orderList;
} }
@Override
@DS("#header.poolName")
public List<OdsProcureOutOrder> selectOdsProcureOutOrderListZC(OdsProcureOutOrder odsProcureOutOrder) {
List<OdsProcureOutOrder> orderList = odsProcureOutOrderMapper.selectOdsProcureOutOrderListZC(odsProcureOutOrder);
return orderList;
}
} }

@ -396,6 +396,8 @@
material_desc, material_desc,
unit, unit,
user_defined1, user_defined1,
user_defined2,
user_defined3,
sn, sn,
amount, amount,
origin_location, origin_location,
@ -410,6 +412,8 @@
#{materialDesc}, #{materialDesc},
#{Unit}, #{Unit},
#{userDefined1}, #{userDefined1},
#{userDefined2},
#{userDefined3},
#{sn}, #{sn},
#{planNumber}, #{planNumber},
#{locCode}, #{locCode},
@ -436,6 +440,17 @@
#{item.ID} #{item.ID}
</foreach> </foreach>
</update> </update>
<update id="updateWMSOdsProcureOutOrderByids">
update wms_ods_procure_out_order
set User_Defined10 = #{order.userDefined10},
User_Defined9 = #{order.userDefined9},
User_Defined11 = #{order.userDefined11}
where ID in
<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
#{item.ID}
</foreach>
</update>
<update id="updateOdsProcureOutOrderByidsfc"> <update id="updateOdsProcureOutOrderByidsfc">
update ods_procure_out_order_fc update ods_procure_out_order_fc
set User_Defined10 = #{order.userDefined10}, set User_Defined10 = #{order.userDefined10},
@ -708,8 +723,8 @@
FROM FROM
mes_prepare_detail mes_prepare_detail
WHERE WHERE
prepare_id=#{ID} and parent_work_order=#{workorderCode} and
del_flag = '0' del_flag = '0' and recoil= ''
</select> </select>
<select id="selectWmsOdsProcureOutOrderByID" parameterType="String" resultMap="OdsProcureOutOrderResult"> <select id="selectWmsOdsProcureOutOrderByID" parameterType="String" resultMap="OdsProcureOutOrderResult">
SELECT SELECT
@ -751,6 +766,52 @@
wms_ods_procure_out_order wms_ods_procure_out_order
where ID = #{ID} where ID = #{ID}
</select> </select>
<select id="selectWmsOdsProcureOutOrderByIDs" resultMap="OdsProcureOutOrderResult">
SELECT DISTINCT
wms_ods_procure_out_order.Site_code,
wms_ods_procure_out_order.ID,
wms_ods_procure_out_order.Produce_Code,
wms_ods_procure_out_order.Material_Code,
wms_ods_procure_out_order.Material_Desc,
wms_ods_procure_out_order.Plan_Date,
wms_ods_procure_out_order.Plan_Number,
wms_ods_procure_out_order.Unit,
COALESCE ( wms_ods_procure_out_order.Out_Number, 0 ) AS Out_Number,
wms_raw_mission_out.user_defined2 Loc_Code,
wms_ods_procure_out_order.Loc_Desc,
wms_ods_procure_out_order.Production_Line_Desc,
wms_ods_procure_out_order.Production_Line_Code,
wms_ods_procure_out_order.Order_Status,
wms_ods_procure_out_order.User_Defined1,
wms_ods_procure_out_order.User_Defined2,
wms_ods_procure_out_order.User_Defined3,
wms_ods_procure_out_order.User_Defined4,
wms_ods_procure_out_order.User_Defined5,
wms_ods_procure_out_order.User_Defined6,
wms_ods_procure_out_order.User_Defined7,
wms_ods_procure_out_order.User_Defined8,
wms_ods_procure_out_order.User_Defined9,
wms_ods_procure_out_order.User_Defined10,
wms_ods_procure_out_order.User_Defined11,
wms_ods_procure_out_order.Supplier_Code,
wms_ods_procure_out_order.Supplier_Name,
wms_ods_procure_out_order.Create_By,
wms_ods_procure_out_order.Create_Date,
wms_ods_procure_out_order.Last_Update_By,
wms_ods_procure_out_order.Last_Update_Date,
wms_ods_procure_out_order.Active,
wms_ods_procure_out_order.Enterprise_Id,
wms_ods_procure_out_order.Enterprise_Code
FROM
wms_ods_procure_out_order
LEFT JOIN wms_raw_mission_out ON wms_raw_mission_out.prd_order = wms_ods_procure_out_order.Produce_Code
AND wms_raw_mission_out.material_code = wms_ods_procure_out_order.Material_Code
where wms_ods_procure_out_order.ID
<foreach item="odsProcureOutOrder" collection="list" open="(" separator="," close=")">
#{odsProcureOutOrder.ID}
</foreach>
and wms_ods_procure_out_order.Order_Status='3'
</select>
<select id="selectWmsOdsProcureOutOrder" parameterType="OdsProcureOutOrder" resultMap="OdsProcureOutOrderResult"> <select id="selectWmsOdsProcureOutOrder" parameterType="OdsProcureOutOrder" resultMap="OdsProcureOutOrderResult">
SELECT SELECT
Site_code, Site_code,
@ -805,7 +866,7 @@
<if test="orderStatus != null and orderStatus != ''"> and Order_Status = #{orderStatus}</if> <if test="orderStatus != null and orderStatus != ''"> and Order_Status = #{orderStatus}</if>
<if test="userDefined1 != null and userDefined1 != ''"> and User_Defined1 = #{userDefined1}</if> <if test="userDefined1 != null and userDefined1 != ''"> and User_Defined1 = #{userDefined1}</if>
<if test="userDefined2 != null and userDefined2 != ''"> and User_Defined2 = #{userDefined2}</if> <if test="userDefined2 != null and userDefined2 != ''"> and User_Defined2 = #{userDefined2}</if>
<if test="userDefined3 != null and userDefined3 != ''"> and User_Defined3 = #{userDefined3}</if> <!-- <if test="userDefined3 != null and userDefined3 != ''"> and User_Defined3 = #{userDefined3}</if>-->
<if test="userDefined4 != null and userDefined4 != ''"> and User_Defined4 = #{userDefined4}</if> <if test="userDefined4 != null and userDefined4 != ''"> and User_Defined4 = #{userDefined4}</if>
<if test="userDefined5 != null and userDefined5 != ''"> and User_Defined5 = #{userDefined5}</if> <if test="userDefined5 != null and userDefined5 != ''"> and User_Defined5 = #{userDefined5}</if>
<if test="userDefined6 != null and userDefined6 != ''"> and User_Defined6 = #{userDefined6}</if> <if test="userDefined6 != null and userDefined6 != ''"> and User_Defined6 = #{userDefined6}</if>
@ -940,4 +1001,130 @@
</trim> </trim>
where ID = #{ID} where ID = #{ID}
</select> </select>
<select id="selectOdsProcureOutOrderListZC" parameterType="OdsProcureOutOrder" resultMap="OdsProcureOutOrderResult">
SELECT
Site_code,
ID,
Produce_Code,
Material_Code,
Material_Desc,
Plan_Date,
Plan_Number,
Unit,
COALESCE ( Out_Number, 0 ) AS Out_Number,
Loc_Code,
Loc_Desc,
Production_Line_Desc,
Production_Line_Code,
Order_Status,
User_Defined1,
User_Defined2,
User_Defined3,
User_Defined4,
User_Defined5,
User_Defined6,
User_Defined7,
User_Defined8,
User_Defined9,
User_Defined10,
User_Defined11,
Supplier_Code,
Supplier_Name,
Create_By,
Create_Date,
Last_Update_By,
Last_Update_Date,
Active,
Enterprise_Id,
Enterprise_Code
FROM
wms_ods_procure_out_order
<where>
<if test="produceCode != null and produceCode != ''"> and Produce_Code like concat('%', #{produceCode}, '%')</if>
<if test="userDefined1 != null and userDefined1 != ''"> and User_Defined1 = #{userDefined1}</if>
<if test="Active != null and Active != ''"> and Active = #{Active}</if>
</where>
</select>
<select id="selectWmsRawMissionOutByPrdAndMa" resultType="com.op.wms.domain.WmsOdsMateStorageNews">
SELECT
material_code materialCode,
origin_location waCode,
amount amount,
user_defined1 userDefined1,
user_defined2 userDefined2,
user_defined3 userDefined3
FROM
wms_raw_mission_out
WHERE
prd_order=#{produceCode} AND
material_code=#{Material_Code}
</select>
<select id="selectPreDetailHzList" resultMap="OdsProcureOutOrderResult">
SELECT
mpd.material_code Material_Code,
mpd.material_name Material_Desc,
SUM ( mpd.quantity ) Plan_Number,
mpd.unit Unit,
-- SUM ( CONVERT ( DECIMAL ( 10, 3 ), mpd.fund_quanlity ) ) fundQuanlity,
mpd.factory_code Site_code,
mpd.recoil User_Defined3
FROM
pro_order_workorder ow
LEFT JOIN mes_prepare mp ON ow.workorder_code = mp.workorder_code
LEFT JOIN mes_prepare_detail mpd ON mp.prepare_id = mpd.prepare_id
WHERE
ow.product_date = #{userDefined4}
AND mpd.recoil = 'X'
AND mp.del_flag = '0'
AND mpd.del_flag = '0'
GROUP BY
mpd.material_code,
mpd.material_name,
mpd.unit,
mpd.factory_code,
mpd.recoil
ORDER BY
mpd.material_code
</select>
<select id="selectWmsOdsProcureOutOrderByOrderStatus" parameterType="OdsProcureOutOrder" resultMap="OdsProcureOutOrderResult">
SELECT
Site_code,
ID,
Produce_Code,
Material_Code,
Material_Desc,
Plan_Date,
Plan_Number,
Unit,
COALESCE ( Out_Number, 0 ) AS Out_Number,
Loc_Code,
Loc_Desc,
Production_Line_Desc,
Production_Line_Code,
Order_Status,
User_Defined1,
User_Defined2,
User_Defined3,
User_Defined4,
User_Defined5,
User_Defined6,
User_Defined7,
User_Defined8,
User_Defined9,
User_Defined10,
User_Defined11,
Supplier_Code,
Supplier_Name,
Create_By,
Create_Date,
Last_Update_By,
Last_Update_Date,
Active,
Enterprise_Id,
Enterprise_Code
FROM
wms_ods_procure_out_order
where Order_Status='3' and Active='1'
and User_Defined10='1'
</select>
</mapper> </mapper>

@ -79,7 +79,11 @@
<include refid="selectWmsOdsMateStorageNewsSnVo"/> <include refid="selectWmsOdsMateStorageNewsSnVo"/>
where mate_order_in_sn_id = #{mateOrderInSnId} where mate_order_in_sn_id = #{mateOrderInSnId}
</select> </select>
<select id="selectWmsOdsMateStorageNewsSnByMateOrderInSnIdk"
resultMap="WmsOdsMateStorageNewsSnResult">
<include refid="selectWmsOdsMateStorageNewsSnVo"/>
where mate_order_in_sn_id = #{mateOrderInSnId}
</select>
<insert id="insertWmsOdsMateStorageNewsSn" parameterType="WmsOdsMateStorageNewsSn" useGeneratedKeys="true" <insert id="insertWmsOdsMateStorageNewsSn" parameterType="WmsOdsMateStorageNewsSn" useGeneratedKeys="true"
keyProperty="mateOrderInSnId"> keyProperty="mateOrderInSnId">
insert into wms_ods_mate_storage_news_sn insert into wms_ods_mate_storage_news_sn
@ -201,10 +205,20 @@
</update> </update>
<update id="updatekdd"> <update id="updatekdd">
update wms_ods_mate_storage_news update wms_ods_mate_storage_news
set occupy_amount = occupy_amount + #{amount}, set occupy_amount =ISNULL(occupy_amount, 0) + #{amount},
last_modified_by=#{lastModifiedBy},
gmt_modified=GETDATE() gmt_modified=GETDATE()
where wh_code=#{whCode} and wa_code=#{waCode} and wl_code=#{wlCode} and material_code=#{materialCode} and product_bach= #{productBatch} where wh_code=#{whCode} and wa_code=#{waCode} and wl_code=#{wlCode} and material_code=#{materialCode}
</update> </update>
<update id="updatesub">
update wms_ods_mate_storage_news
set occupy_amount =ISNULL(occupy_amount, 0) - #{amount},
amount = ISNULL(amount, 0) - #{amount},
last_modified_by=#{lastModifiedBy},
gmt_modified=GETDATE()
where wh_code=#{userDefined2} and wa_code=#{waCode} and wl_code=#{userDefined3} and material_code=#{materialCode}
</update>
<select id="selectByWhCodeAndMate"> <select id="selectByWhCodeAndMate">
<include refid="selectWmsOdsMateStorageNewsSnVo"/> <include refid="selectWmsOdsMateStorageNewsSnVo"/>
where mate_order_in_sn_id = #{mateOrderInSnId} where mate_order_in_sn_id = #{mateOrderInSnId}
@ -249,4 +263,76 @@
<if test="sapFactoryCode != null and sapFactoryCode != ''">and sap_factory_code = #{sapFactoryCode}</if> <if test="sapFactoryCode != null and sapFactoryCode != ''">and sap_factory_code = #{sapFactoryCode}</if>
</where> </where>
</select> </select>
<update id="updateWmsOdsMateStorageNewsSnAddoutNumber" >
update wms_ods_mate_storage_news_sn
set out_number = ISNULL(out_number, 0) + #{outNumber},
last_modified_by = #{lastModifiedBy},
gmt_modified=GETDATE()
where mate_order_in_sn_id = #{mateOrderInSnId}
</update>
<select id="selectWmsOdsMateStorageNewsSnByWlCodeTEM" parameterType="WmsOdsMateStorageNewsSn"
resultMap="WmsOdsMateStorageNewsSnResult">
SELECT
mate_order_in_sn_id,
wh_code,
wa_code,
wl_code,
order_no,
po_no,
po_line,
material_code,
material_desc,
sn,
bar_code,
amount-ISNULL(out_number, 0) amount,
user_defined1,
user_defined2,
user_defined3,
user_defined4,
user_defined5,
user_defined6,
user_defined7,
user_defined8,
user_defined9,
user_defined10,
create_by,
gmt_create,
last_modified_by,
gmt_modified,
active_flag,
factory_code,
sap_factory_code
FROM
wms_ods_mate_storage_news_sn
<where>
<if test="whCode != null and whCode != ''">and wh_code = #{whCode}</if>
<if test="waCode != null and waCode != ''">and wa_code = #{waCode}</if>
<if test="wlCode != null and wlCode != ''">and wl_code = #{wlCode}</if>
<if test="orderNo != null and orderNo != ''">and order_no = #{orderNo}</if>
<if test="poNo != null and poNo != ''">and po_no = #{poNo}</if>
<if test="poLine != null and poLine != ''">and po_line = #{poLine}</if>
<if test="materialCode != null and materialCode != ''">and material_code = #{materialCode}</if>
<if test="materialDesc != null and materialDesc != ''">and material_desc = #{materialDesc}</if>
<if test="sn != null and sn != ''">and sn = #{sn}</if>
<if test="barCode != null and barCode != ''">and bar_code = #{barCode}</if>
<if test="amount != null ">and amount = #{amount}</if>
<if test="userDefined1 != null and userDefined1 != ''">and user_defined1 = #{userDefined1}</if>
<if test="userDefined2 != null and userDefined2 != ''">and user_defined2 = #{userDefined2}</if>
<if test="userDefined3 != null and userDefined3 != ''">and user_defined3 = #{userDefined3}</if>
<if test="userDefined4 != null and userDefined4 != ''">and user_defined4 = #{userDefined4}</if>
<if test="userDefined5 != null and userDefined5 != ''">and user_defined5 = #{userDefined5}</if>
<if test="userDefined6 != null and userDefined6 != ''">and user_defined6 = #{userDefined6}</if>
<if test="userDefined7 != null and userDefined7 != ''">and user_defined7 = #{userDefined7}</if>
<if test="userDefined8 != null and userDefined8 != ''">and user_defined8 = #{userDefined8}</if>
<if test="userDefined9 != null and userDefined9 != ''">and user_defined9 = #{userDefined9}</if>
<if test="userDefined10 != null and userDefined10 != ''">and user_defined10 = #{userDefined10}</if>
<if test="gmtCreate != null ">and gmt_create = #{gmtCreate}</if>
<if test="lastModifiedBy != null and lastModifiedBy != ''">and last_modified_by = #{lastModifiedBy}</if>
<if test="gmtModified != null ">and gmt_modified = #{gmtModified}</if>
<if test="activeFlag != null and activeFlag != ''">and active_flag = #{activeFlag}</if>
<if test="factoryCode != null and factoryCode != ''">and factory_code = #{factoryCode}</if>
<if test="sapFactoryCode != null and sapFactoryCode != ''">and sap_factory_code = #{sapFactoryCode}</if>
</where>
</select>
</mapper> </mapper>

Loading…
Cancel
Save