Merge remote-tracking branch 'origin/master'

master
Yangwl 8 months ago
commit 63c8a50843

@ -84,6 +84,26 @@ public class MesPrepareDetailDTO extends BaseEntity {
private String recoil;
private String buyFlag;
private String parentWorkOrder;
//以输入单位计的数量
private String erfmg;
//条目单位
private String erfme;
public String getErfmg() {
return erfmg;
}
public void setErfmg(String erfmg) {
this.erfmg = erfmg;
}
public String getErfme() {
return erfme;
}
public void setErfme(String erfme) {
this.erfme = erfme;
}
public String getParentWorkOrder() {
return parentWorkOrder;

@ -29,6 +29,26 @@ public class SapMaterialPreparation {
private String RGEKZ;
//直接采购标识
private String DBSKZ;
//以输入单位计的数量
private String ERFMG;
//条目单位
private String ERFME;
public String getERFMG() {
return ERFMG;
}
public void setERFMG(String ERFMG) {
this.ERFMG = ERFMG;
}
public String getERFME() {
return ERFME;
}
public void setERFME(String ERFME) {
this.ERFME = ERFME;
}
public String getAUFNR() {
return AUFNR;

@ -193,10 +193,19 @@ public class wmsReportWork extends BaseEntity {
private String createTimeEnd;
private String feedbackTimeStart;
private String feedbackTimeEnd;
private String batch;
private String batch;//生产批次
private String batchSK;//RK批次
private String endReport;
private String whCode;
public String getBatchSK() {
return batchSK;
}
public void setBatchSK(String batchSK) {
this.batchSK = batchSK;
}
public String getWhCode() {
return whCode;
}

@ -475,7 +475,7 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils {
*
* @param factoryCode
* @param lineCode 线
* @param productDate
* @param productDate
* @param version
* @param productStatus A
* @param content (0)

@ -162,13 +162,13 @@ public class HttpUtils {
conn.setRequestProperty("user-agent" , "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
conn.setRequestProperty("Accept-Charset" , "utf-8");
// conn.setRequestProperty("contentType" , "utf-8");
conn.setRequestProperty("content-Type", "application/json; charset=utf-8");
conn.setRequestProperty("content-Type", "application/json; charset=GBK");
conn.setDoOutput(true);
conn.setDoInput(true);
out = new PrintWriter(conn.getOutputStream());
out.print(param);
out.flush();
in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "utf-8"));
in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "GBK"));
String line;
while ((line = in.readLine()) != null) {
result.append(line);

@ -5,6 +5,7 @@ import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
import com.op.common.core.context.SecurityContextHolder;
import com.op.common.core.domain.R;
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.common.core.web.domain.AjaxResult;
import com.op.common.security.utils.SecurityUtils;
@ -340,9 +341,11 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService {
order.setOutsourceCode("BW" + orderCode);
}
//查询组线
String lineName = equOrderMapper.getGroupLine(plan.getEquipmentCode());
order.setPlanProdLine(lineName);
if(StringUtils.isNotEmpty(plan.getEquipmentCode())){
//查询组线
String lineName = equOrderMapper.getGroupLine(plan.getEquipmentCode());
order.setPlanProdLine(lineName);
}
/**equ_order**/
sce = equOrderMapper.insertEquOrder(order);

@ -518,7 +518,7 @@
<!-- 获取组线信息 -->
<select id="getGroupLine" parameterType="java.lang.String" resultType="java.lang.String">
select equipment_name
select TOP 1 equipment_name
from equ_bind_auxiliary_equipment
where auxiliary_equipment_code = #{auxiliaryEquipmentCode}
and del_flag = '0'

@ -114,6 +114,24 @@ public class MesReportWorkConsume extends BaseEntity {
private String planQuantity;
private String machineCode;
private String rspos;//sap物料项目编号
private String erfmg;
private String erfme;
public String getErfmg() {
return erfmg;
}
public void setErfmg(String erfmg) {
this.erfmg = erfmg;
}
public String getErfme() {
return erfme;
}
public void setErfme(String erfme) {
this.erfme = erfme;
}
public String getRspos() {
return rspos;

@ -72,7 +72,7 @@ public interface MesLineMapper {
MesLine selectInfoByLineProduct(MesLine mesLine);
void insertLineProduct(MesLine mesLine);
int insertLineProduct(MesLine mesLine);
void updateLineProduct(MesLine mesLine);
}

@ -1,6 +1,7 @@
package com.op.mes.service.impl;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
@ -14,6 +15,7 @@ import com.op.common.core.web.domain.AjaxResult;
import com.op.common.security.utils.SecurityUtils;
import com.op.mes.domain.MesLineProcess;
import com.op.mes.domain.MesLineProduct;
import com.op.mes.mapper.MesLineProductMapper;
import com.op.mes.service.IMesLineProcessService;
import com.op.mes.service.IMesLineProductService;
import org.apache.commons.collections4.CollectionUtils;
@ -43,6 +45,9 @@ public class MesLineServiceImpl implements IMesLineService {
@Autowired
private MesLineMapper mesLineMapper;
@Autowired
private MesLineProductMapper mesLineProductMapper;
@Autowired
private IMesLineProcessService mesLineProcessService;
@Autowired
@ -97,49 +102,20 @@ public class MesLineServiceImpl implements IMesLineService {
*/
@Override
@DS("#header.poolName")
@Transactional(propagation = Propagation.REQUIRED)
// @Transactional(propagation = Propagation.REQUIRED)
public int insertMesLine(MesLine mesLine) {
mesLine.setCreateTime(DateUtils.getNowDate());
mesLine.setCreateBy(SecurityUtils.getUsername());
mesLine.setId(IdUtils.fastSimpleUUID());
String belongTo = mesLine.getId();
// 获取工厂编码
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String key = "#header.poolName";
String factoryCode = request.getHeader(key.substring(8)).replace("ds_", "");
mesLine.setFactoryCode(factoryCode);
// 绑定工艺
List<String> processList = mesLine.getProcessList();
List<BigDecimal> qualityList = mesLine.getQualityList();
if (!CollectionUtils.isEmpty(processList)) {
String lineCode = mesLine.getLineCode();
String lineName = mesLine.getLineName();
for (int i = 0; i < processList.size(); i++) {
MesLineProcess mesLineProcess = new MesLineProcess();
mesLineProcess.setBelongTo(belongTo);
mesLineProcess.setProcessName(processList.get(i));
mesLineProcess.setQuality(qualityList.get(i));
mesLineProcess.setLineCode(lineCode);
mesLineProcess.setLineName(lineName);
mesLineProcess.setFactoryCode(factoryCode);
mesLineProcessService.insertMesLineProcess(mesLineProcess);
}
}
// 绑定产品
List<MesLineProduct> productList = mesLine.getProductList();
if (CollectionUtils.isNotEmpty(productList)) {
for (MesLineProduct item : productList) {
item.setId(IdUtils.fastSimpleUUID());
item.setBelongTo(belongTo);
item.setFactoryCode(factoryCode);
item.setCreateBy(SecurityUtils.getUsername());
item.setCreateTime(DateUtils.getNowDate());
}
mesLineProductService.batchInsertMesLineProduct(productList);
}
mesLine.setId(IdUtils.fastSimpleUUID());
mesLine.setFactoryCode(factoryCode);
mesLine.setCreateBy(SecurityUtils.getUsername());
mesLine.setCreateTime(DateUtils.getNowDate());
int m = mesLineMapper.insertLineProduct(mesLine);
return mesLineMapper.insertMesLine(mesLine);
return m;
}
/**

@ -204,7 +204,7 @@
select id, line_code, use_man, efficiency
from mes_line_product
where del_flag = '0' and line_code = #{lineCode}
and use_man = #{useMan} and efficiency = #{efficiency}
and product_code = #{productCode}
</select>
<select id="getProductListBom" resultType="com.op.mes.domain.MesLineProduct">

@ -114,7 +114,7 @@
pow.workorder_code_sap workorderCodeSap,
mrwc.attr1,
mrwc.warehouse_code warehouseCode,
mpd.quantity planQuantity,
mpd.quantity planQuantity,mpd.erfmg,mpd.erfme,
mrwc.parent_order parentOrder,mrwc.report_code reportCode,
mrwc.rspos
from mes_report_work_consume mrwc

@ -386,6 +386,7 @@ public class OpenServiceImpl implements OpenService {
return success();
}
/**首检 批次成品**/
@Override
public int insertQcCheckTaskProduce(QcCheckTaskProduceDTO qcCheckTaskProduce) {
DynamicDataSourceContextHolder.push("ds_" + qcCheckTaskProduce.getFactoryCode());

@ -8,6 +8,15 @@ public class ProLine {
private String lineName;
private Long efficiency;
private String dh;
private String factoryDh;
public String getFactoryDh() {
return factoryDh;
}
public void setFactoryDh(String factoryDh) {
this.factoryDh = factoryDh;
}
public Long getEfficiency() {
return efficiency;

@ -76,6 +76,15 @@ public class ProOrder extends TreeEntity {
private Integer endFlag;
private String belongWorkOrder;
private String shiftId;
private String factoryDh;
public String getFactoryDh() {
return factoryDh;
}
public void setFactoryDh(String factoryDh) {
this.factoryDh = factoryDh;
}
public String getShiftId() {
return shiftId;

@ -1357,8 +1357,8 @@ public class ProOrderServiceImpl implements IProOrderService {
proOrder.setLineCode(proOrder.getLineCodes()[i]);
ProLine plineInfo = proOrderWorkorderMapper.getLineProductInfo(proOrder);//线体母单产品产能和线体代码
if(plineInfo==null){
logger.error("线体"+proOrder.getLineCodes()[i]+"无法生产");
return AjaxResult.error(642,"线体"+proOrder.getLineCodes()[i]+"无法生产");
logger.error("线体"+proOrder.getLineCodes()[i]+"无法生产,请到【线体产品管理界面进行维护】");
return AjaxResult.error(642,"线体"+proOrder.getLineCodes()[i]+"无法生产,请到【线体产品管理界面进行维护】");
}
Long efficiency = plineInfo.getEfficiency();
if(efficiency < orderQua){
@ -1424,10 +1424,15 @@ public class ProOrderServiceImpl implements IProOrderService {
/**拆批次**/
proOrder.setProdSpc(plineInfo.getDh());//借用字段
/**批次中的工厂代码**/
proOrder.setFactoryDh(plineInfo.getFactoryDh());
AjaxResult aResult = getBatchList(proOrder);//Done;
if(!aResult.isSuccess()){
return aResult;
}
List<ProOrderWorkorderBatch> workorderBatches0 = getBatchList(proOrder);//TODO;
List<ProOrderWorkorderBatch> workorderBatches0 = (List<ProOrderWorkorderBatch>)aResult.get("data");
if(CollectionUtils.isEmpty(workorderBatches0)){
logger.error("批次太多,请检查【产品批次数量】、【产线产能】、【批次号夜班开始字母】是否设置正常。");
@ -1491,12 +1496,16 @@ public class ProOrderServiceImpl implements IProOrderService {
String[][] lineCodeArray = {{gxCode,pOrder.getLineCode()}};
workOrder.setProdLineCode(JSONArray.toJSONString(lineCodeArray));
workOrder.setProductDate(DateUtils.dateTime("yyyy-MM-dd",pOrder.getProductDate()));
//workOrder.setShiftId();
workOrder.setShiftId(pOrder.getShiftId());
workOrder.setParentOrder(proOrder.getParentOrder());
workOrder.setStatus("w0");
workOrder.setCreateBy(SecurityUtils.getUsername());
workOrder.setCreateTime(pOrder.getCreateTime());
workOrder.setProdType(proOrder.getOrderType());
if("LJ88".equals(pOrder.getOrderType())){
workOrder.setProdType("LJ01");
}else{
workOrder.setProdType(pOrder.getOrderType());
}
workOrder.setFactoryCode(pOrder.getFactoryCode());
workOrder.setEndFlag(proOrder.getEndFlag());
workOrder.setSortNo(pOrder.getSortNo());
@ -1504,10 +1513,16 @@ public class ProOrderServiceImpl implements IProOrderService {
}
//靠母单先生成批次模板
protected List<ProOrderWorkorderBatch> getBatchList(ProOrder proOrder){
protected AjaxResult getBatchList(ProOrder proOrder){
List<ProOrderWorkorderBatch> workorderBatches = new ArrayList<>();
Long pworkOrderQua = proOrder.getQuantitySplit();//母工单数量
BaseProduct batchQua0 = proOrderWorkorderMapper.getProductInfo(proOrder);//母单标准批次产能和几合一
if(batchQua0 == null || batchQua0.getBatchQuaStandar()==null){
logger.error("未设置最大批次数,请到【产品管理】界面进行产品的最大批次设置");
return AjaxResult.error("未设置最大批次数,请到【产品管理】界面进行产品的最大批次设置");
}
ProOrderWorkorderBatch workBatch = null;
while(pworkOrderQua>0){
workBatch = new ProOrderWorkorderBatch();
@ -1525,8 +1540,6 @@ public class ProOrderServiceImpl implements IProOrderService {
List<String> batches = proOrderWorkorderMapper.getBatchDict("batch_flag");
char dayWorkBatchStart = batches.get(0).charAt(0);
char nightWorkBatchStart = batches.get(1).charAt(0);
int dayBatches = nightWorkBatchStart - dayWorkBatchStart;
int nigthBatches = 'Z' - nightWorkBatchStart;
int maxBatchNum = 0;
char startZM = 'A';
@ -1540,11 +1553,12 @@ public class ProOrderServiceImpl implements IProOrderService {
if(workorderBatches.size()>maxBatchNum){
logger.error("大于工厂字典【batch_flag】推理的的批次数");
return null;
return AjaxResult.error("大于工厂字典【batch_flag】推理的的批次数");
}
//获取批次号集合
List<String> batchCodes = StringUtils.batchAutoCreate(proOrder.getFactoryCode(),
List<String> batchCodes = StringUtils.batchAutoCreate(proOrder.getFactoryDh(),
proOrder.getProdSpc(),
DateUtils.dateTime("yyyy-MM-dd",proOrder.getProductDate()),
proOrder.getAtrr2().substring(proOrder.getAtrr2().length()-1),
@ -1554,7 +1568,7 @@ public class ProOrderServiceImpl implements IProOrderService {
workorderBatches.get(n).setBatchCode(batchCodes.get(n));
}
return workorderBatches;
return AjaxResult.success(workorderBatches);
}
/**

@ -488,11 +488,14 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService {
detail.setCreateBy(SecurityUtils.getUsername());
detail.setCreateTime(createDate);
detail.setParentWorkOrder(workOrders.get(0));
detail.setErfmg(sap.getERFMG());//以输入单位计的数量
detail.setErfme(sap.getERFME());//条目单位
details.add(detail);
logger.info("领料单内容detail" + sap.getRSPOS() + "," + sap.getMATNR() + "," +
sap.getMAKTX() + "," + sap.getWERKS() + "," + sap.getLGORT() + "," +
sap.getBDTER() + "," + sap.getBDMNG() + "," + sap.getZQLSL() + "," +
sap.getMEINS() + "," + sap.getRGEKZ() + "," + sap.getDBSKZ()
sap.getMEINS() + "," + sap.getRGEKZ() + "," + sap.getDBSKZ()+ "," +
sap.getERFMG() + "," + sap.getERFME()
);
}
if (!CollectionUtils.isEmpty(details)) {

@ -649,9 +649,10 @@
</select>
<select id="getLineProductInfo" resultType="com.op.plan.domain.ProLine">
select mlp.efficiency efficiency,
bp.dh
bp.dh,sf.ancestors factoryDh
from mes_line_product mlp
left join base_equipment bp on mlp.line_code = bp.equipment_code
left join sys_factory sf on sf.factory_code = mlp.factory_code and sf.del_flag = '0'
where mlp.del_flag = '0' and product_code = #{prodCode}
and mlp.line_code = #{lineCode} and bp.del_flag = '0'
</select>
@ -763,14 +764,15 @@
INSERT INTO mes_prepare_detail (
record_id,prepare_id,material_code,material_name,unit,
quantity,create_by,create_time,factory_code,status,
locator,need_date,recoil,fund_quanlity,buy_flag,parent_work_order,attr1
locator,need_date,recoil,fund_quanlity,buy_flag,parent_work_order,attr1,
erfmg,erfme
)VALUES
<foreach collection="list" item="d" index="index" separator=",">
(
#{d.recordId},#{d.prepareId},#{d.materialCode},#{d.materailName},#{d.unit},
#{d.quantity},#{d.createBy},#{d.createTime},#{d.factoryCode},#{d.status},
#{d.locator},#{d.needDate},#{d.recoil},#{d.fundQuanlity},#{d.buyFlag},#{d.parentWorkOrder},
#{d.attr1}
#{d.attr1},#{d.erfmg},#{d.erfme}
)
</foreach>

@ -109,14 +109,14 @@ public class QcMaterialGroupController extends BaseController {
public AjaxResult remove(@PathVariable String id) {
QcMaterialGroup parent = new QcMaterialGroup();
parent.setId(id);
List<QcMaterialGroup> children = qcMaterialGroupService.getMaterialChildrenList(parent);
boolean hasRule = qcMaterialGroupService.validationData(id);
if (!children.isEmpty()) {
return AjaxResult.error("此节点下含有子节点,请先删除子节点");
} else if (hasRule) {
return AjaxResult.error("此节点含有检验规则,请先删除检验规则");
} else {
// List<QcMaterialGroup> children = qcMaterialGroupService.getMaterialChildrenList(parent);
// boolean hasRule = qcMaterialGroupService.validationData(id);
// if (!children.isEmpty()) {
// return AjaxResult.error("此节点下含有子节点,请先删除子节点");
// } else if (hasRule) {
// return AjaxResult.error("此节点含有检验规则,请先删除检验规则");
// } else {
return toAjax(qcMaterialGroupService.deleteQcMaterialGroupById(id));
}
// }
}
}

@ -214,6 +214,15 @@ public class QcCheckTaskIncome extends BaseEntity {
private String pgzg;//QC主管SFXYZG字段为"是",则此项选择QC主管信息
private String pgzr;//质量主管
private String oaFactoryF;//异常范围
private String sccj;
public String getSccj() {
return sccj;
}
public void setSccj(String sccj) {
this.sccj = sccj;
}
public String getOaFactoryF() {
return oaFactoryF;

@ -132,6 +132,15 @@ public class QcCheckUnqualified extends BaseEntity {
private String pgzg;//QC主管SFXYZG字段为"是",则此项选择QC主管信息
private String pgzr;//质量主管
private String oaFactoryF;
private String sccj;//所属车间
public String getSccj() {
return sccj;
}
public void setSccj(String sccj) {
this.sccj = sccj;
}
public String getOaFactoryF() {
return oaFactoryF;

@ -68,4 +68,6 @@ public interface QcMaterialGroupMapper {
public List<QcMaterialGroup> validationData(String id);
String selectGroupIdByName(String groupName);
void deleteGroupDetailById(String id);
}

@ -23,7 +23,7 @@ public interface IQcMaterialGroupService {
public QcMaterialGroup selectQcMaterialGroupById(String id);
/**
*
*
* @param qcMaterialGroup
* @return
*/

@ -140,7 +140,7 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements
/**
*
*
*
* @param qcCheckTaskIncome
* @return
*/
@ -640,7 +640,7 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements
}
@Override
@Transactional(rollbackFor = Exception.class)
//@Transactional(rollbackFor = Exception.class)
public int commitCheckResults(QcCheckTaskIncome qcCheckTaskIncome) {
logger.info("质检提交参数:"+JSONObject.toJSONString(qcCheckTaskIncome));
List<QcCheckTaskDetail> details = qcCheckTaskIncome.getQcCheckTaskDetails();
@ -815,25 +815,28 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements
if("produce".equals(qcCheckTaskIncome.getTypeCode())){
unqualified.setTypeCode(qcCheckTaskIncome.getTypeCode());
unqualified.setSfgyswt(qcCheckTaskIncome.getSfgyswt());
unqualified.setUser(qcCheckTaskIncome.getUpdateBy());
//申请人-
unqualified.setSqr(qcCheckTaskIncome.getSqr());
unqualified.setSqr("MSL#"+qcCheckTaskIncome.getSqr());
//申请部门
unqualified.setSqbm(qcCheckTaskIncome.getSqbm());
//所属车间
unqualified.setSccj("MSD#"+qcCheckTaskIncome.getSccj());
//实际生产数量
unqualified.setQuality(qcCheckTaskIncome.getQuality().toString());
//发现地点
unqualified.setCheckLoc(qcCheckTaskIncome.getCheckLoc());
//是否需要主管审核
unqualified.setSfgyswt(qcCheckTaskIncome.getSfgyswt());
if(qcCheckTaskIncome.getSfgyswt().equals("0")){//是
unqualified.setSfxyzg(qcCheckTaskIncome.getSfxyzg());
if(qcCheckTaskIncome.getSfxyzg().equals("0")){//是
//qc主管
unqualified.setPgzg(qcCheckTaskIncome.getPgzg());
unqualified.setPgzg("MSL#"+qcCheckTaskIncome.getPgzg());
//质量主管
unqualified.setPgzr(qcCheckTaskIncome.getPgzr());
unqualified.setPgzr("MSL#"+qcCheckTaskIncome.getPgzr());
}
//是否供应商问题
unqualified.setSfgyswt(qcCheckTaskIncome.getSfgyswt());
unqualified.setOaFactoryF(qcCheckTaskIncome.getOaFactoryF());
}else if("material".equals(qcCheckTaskIncome.getTypeCode())){
unqualified.setTypeCode(qcCheckTaskIncome.getTypeCode());
@ -859,19 +862,20 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements
//来料数量
unqualified.setQuality(qcCheckTaskIncome.getQuality().toString());
//来料单位
unqualified.setUnit(qcCheckTaskIncome.getUnit());
//CAR:0 PC:1 其它2 吨3 千克4
unqualified.setUnit(getConvertUnit(qcCheckTaskIncome.getUnit()));
//检验编号
unqualified.setCheckNo(qcCheckTaskIncome.getCheckNo());
//仓储报检人-李爱娟
unqualified.setCzbjr(qcCheckTaskIncome.getCzbjr());
unqualified.setCzbjr("MSL#"+qcCheckTaskIncome.getCzbjr());
//物料类别
unqualified.setMaterialType(qcCheckTaskIncome.getMaterialType());
//物料来源
unqualified.setMaterialFrom(qcCheckTaskIncome.getMaterialFrom());
//QC主管-朱继新
unqualified.setQczg(qcCheckTaskIncome.getQczg());
unqualified.setQczg("MSL#"+qcCheckTaskIncome.getQczg());
//申请人-
unqualified.setSqr(qcCheckTaskIncome.getSqr());
unqualified.setSqr("MSL#"+qcCheckTaskIncome.getSqr());
unqualified.setUser(qcCheckTaskIncome.getUpdateBy());
//转出方
unqualified.setZcf(qcCheckTaskIncome.getZcf());
@ -911,6 +915,8 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements
.replace("${quality}", qcCheckTaskIncome.getQuality()+"\n");
if(StringUtils.isNotBlank(qcCheckTaskIncome.getIncomeBatchNo())){
contentInfo = contentInfo.replace("${incomeBatchNo}", qcCheckTaskIncome.getIncomeBatchNo()+"\n");
}else{
contentInfo = contentInfo.replace("${incomeBatchNo}", "无"+"\n");
}
if(StringUtils.isNotBlank(qcCheckTaskIncome.getOrderNo())){
contentInfo = contentInfo.replace("${orderNo}", qcCheckTaskIncome.getOrderNo()+"\n");
@ -931,6 +937,15 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements
//发企业微信--------------------结束
}
}
//CAR:0 PC:1 其它2 吨3 千克4
protected String getConvertUnit(String unit){
String unitOa= "";
switch (unit) {
case "ST": unitOa="1";
default: unitOa="1";
}
return unitOa;
}
protected String getSampleQua(QcCheckTaskIncome qcCheckTaskIncome){
String sampleQuaStr = "";
@ -993,4 +1008,9 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements
public SysUser getOaUserId(SysUser getUserIdList) {
return qcCheckTaskIncomeMapper.getOaUserId(getUserIdList);
}
public static void main(String args[]){
QcCheckTaskIncomeServiceImpl impl = new QcCheckTaskIncomeServiceImpl();
System.out.println(impl.getConvertUnit("ST"));
}
}

@ -145,6 +145,7 @@ public class QcCheckTaskProduceServiceImpl implements IQcCheckTaskProduceService
*
*
* @param qcCheckTaskProduce
*
* @return
*/
@Override

@ -247,7 +247,7 @@ public class QcCheckTypeProjectServiceImpl implements IQcCheckTypeProjectService
return failOrder;
}
@Transactional(rollbackFor = Exception.class)
//@Transactional(rollbackFor = Exception.class)
public String syncFunc(QcMaterialGroupDetail materialGroupDetail){
String failOrder = "";
Date nowDate = DateUtils.getNowDate();

@ -177,14 +177,13 @@ public class QcCheckUnqualifiedServiceImpl implements IQcCheckUnqualifiedService
* \"supplier\":\"广东高顺印刷包装有限公司\",\"CHARG\":\"null\",\"comeQty\":\"1117\",
* \"DW\":\"ST\",\"JYBH\":\"202404180042\",\"BJY\":\"202404180042\",\"WLLY\":\"2\",
* \"memo\":\"不合格\",\"PZGLBZG\":\"不合格\"}","user":"999999","requestLevel":0,"workflowId":113454}
*/
private AjaxResult createLLOA(QcCheckUnqualified task){
//QcCheckTaskIncome detailInfo = qcCheckTaskIncomeMapper.getTaskInfo(task.getTaskId());
//发起来料检验OA流程
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("user",task.getSqr());//提交人工号
paramMap.put("user",task.getUser());//提交人工号
paramMap.put("requestLevel",0);//流程紧急度
paramMap.put("requestName","ZL0010-来料检验不合格控制流程");//流程名称
paramMap.put("workflowId",113454);//该流程对应的唯- workFlowld
@ -195,7 +194,7 @@ public class QcCheckUnqualifiedServiceImpl implements IQcCheckUnqualifiedService
StringBuffer mainObject = new StringBuffer();
mainObject.append("{");
mainObject.append("\"SQR\":"+"\""+task.getSqr()+"");//申请人--
mainObject.append("\"SQR\":"+"\""+task.getSqr()+"\"");//申请人--
mainObject.append(",\"CQ\":"+task.getOaFactory());//厂区--
mainObject.append(",\"LLLB\":"+task.getMaterialType());//来料类别【0、1】
mainObject.append(",\"MATNR\":"+"\""+task.getMaterialCode()+"\"");//物料编码
@ -306,6 +305,29 @@ public class QcCheckUnqualifiedServiceImpl implements IQcCheckUnqualifiedService
"SFGYSWT":"1" * 1 0
}"
}
http://oa.lanju.cn/lanju/oa/submitOa.jsp?
user=9999999&requestLevel=0&
requestName=&
workflowId=113455&
mainObject={"CPMC":"榄菊加大盘野菊花蚊香塑料筒装(18装)(36单圈)",
"CPBM":"000000010101046600",
"SQBM":"0",
"SQR":"MSL#999999", \"SQR\":\"MSL#002007\",
"SQSJ":"2024-07-18",
"SCCJ":"MSD#10000769", \"SCCJ\":\"MSD#10000152\",
"SCPH":"LJ20240705ABACEQ",
"SCSL":100,
"FXDD":"测试发现地点",
"FXRQ":"2024-07-18 16:26:45",
"BH":"202407040001",
"YCFW":"1",
"PZYCMS":"zxl测试不合格发起oa",
"Notes":"",
"SFXYZG":"0",
"PGZG":"MSL%23001539",
"PGZR":"MSL%23001539",
"SFGYSWT":"0"}
* @param task
* @return
*/
@ -314,31 +336,31 @@ public class QcCheckUnqualifiedServiceImpl implements IQcCheckUnqualifiedService
QcCheckTaskIncome detailInfo = qcCheckTaskIncomeMapper.getTaskInfo(task.getTaskId());
//发起来料检验OA流程
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("user",task.getSqr());//提交人工号
paramMap.put("user",task.getUser());//提交人工号
paramMap.put("requestLevel",0);//流程紧急度
paramMap.put("requestName","ZL0030-品质异常流程-智能制造-"+DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss",detailInfo.getIncomeTime())+"(产品名称:"+detailInfo.getMaterialName()+"");//流程名称
paramMap.put("workflowId",113455);//该流程对应的唯- workFlowld
StringBuffer mainObject = new StringBuffer();
mainObject.append("{");
mainObject.append("\"CPMC\":"+detailInfo.getMaterialName());//产品名称
mainObject.append(",\"CPBM\":"+detailInfo.getMaterialCode());//产品编码
mainObject.append(",\"SQBM\":"+task.getSqbm());//0品质保障部
mainObject.append("\"CPMC\":"+"\""+detailInfo.getMaterialName()+"\"");//产品名称
mainObject.append(",\"CPBM\":"+"\""+detailInfo.getMaterialCode()+"\"");//产品编码
mainObject.append(",\"SQBM\":"+"\""+task.getSqbm()+"\"");//0品质保障部
mainObject.append(",\"SQR\":"+"\""+task.getSqr()+"\"");//申请人:默认当前用户
mainObject.append(",\"SQSJ\":"+"\""+DateUtils.parseDateToStr("yyyy-MM-dd",detailInfo.getCheckTime())+"\"");//申请时间
mainObject.append(",\"SCCJ\":"+"\"162\"");//所属车间
mainObject.append(",\"SCCJ\":"+"\""+task.getSccj()+"\"");//所属车间
mainObject.append(",\"SCPH\":"+"\""+detailInfo.getIncomeBatchNo()+"\"");//生产批号
mainObject.append(",\"SCSL\":"+"\""+task.getQuality()+"\"");//生产数量
mainObject.append(",\"SCSL\":"+task.getQuality());//生产数量
mainObject.append(",\"FXDD\":"+"\""+task.getCheckLoc()+"\"");//发现地点
mainObject.append(",\"FXRQ\":"+"\""+DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss",detailInfo.getCheckTime())+"\"");//发现日期
mainObject.append(",\"FXRQ\":"+"\""+DateUtils.parseDateToStr("yyyy-MM-dd",detailInfo.getCheckTime())+"\"");//发现日期
mainObject.append(",\"BH\":"+"\""+detailInfo.getCheckNo()+"\"");//编号:流水号 年月日+四位流水号
mainObject.append(",\"YCFW\":"+task.getOaFactoryF()+"\"");//*异常范围:下拉框榄菊所有工厂 1代表小榄工厂
mainObject.append(",\"YCFW\":"+"\""+task.getOaFactoryF()+"\"");//*异常范围:下拉框榄菊所有工厂 1代表小榄工厂
mainObject.append(",\"PZYCMS\":"+"\""+detailInfo.getRemark()+"\"");//品质异常描述
mainObject.append(",\"Notes\":"+"\"\"");//测试备注
mainObject.append(",\"SFXYZG\":"+"\""+task.getSfxyzg()+"\"");//*是否需要主管审核 1否 0是
mainObject.append(",\"PGZG\":"+"\""+task.getPgzg()+"\"");//QC主管SFXYZG字段为"是",则此项选择QC主管信息
mainObject.append(",\"PGZR\":"+"\""+task.getPgzr()+"\"");//质量主管 660朱继新
mainObject.append(",\"SFGYSWT\":"+task.getSfgyswt()+"\"");//*是否供应商问题 1非供应商问题 0是供应商问题
mainObject.append(",\"SFGYSWT\":"+"\""+task.getSfgyswt()+"\"");//*是否供应商问题 1非供应商问题 0是供应商问题
mainObject.append("}");

@ -1,22 +1,35 @@
package com.op.quality.service.impl;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.op.common.core.utils.DateUtils;
import com.op.common.core.utils.StringUtils;
import com.op.common.core.web.domain.AjaxResult;
import com.op.common.security.utils.SecurityUtils;
import com.op.quality.domain.QcCheckTaskIncome;
import com.op.quality.domain.QcCheckUnqualified;
import com.op.quality.domain.vo.TreeSelect;
import com.op.quality.mapper.QcCheckTaskIncomeMapper;
import com.op.system.api.RemoteOpenService;
import com.op.system.api.RemoteQualityService;
import com.op.system.api.domain.SysNoticeGroup;
import com.op.system.api.domain.dto.WechartDTO;
import com.op.system.api.domain.quality.QcCheckTaskIncomeDTO;
import com.sun.xml.bind.v2.TODO;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.op.quality.mapper.QcGoalMapper;
import com.op.quality.domain.QcGoal;
import com.op.quality.service.IQcGoalService;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
@ -31,8 +44,24 @@ import javax.servlet.http.HttpServletRequest;
*/
@Service
public class QcGoalServiceImpl implements IQcGoalService {
protected Logger logger = LoggerFactory.getLogger(getClass());
@Autowired
private QcGoalMapper qcGoalMapper;
// @Autowired
// private QcCheckTaskIncomeMapper qcCheckTaskIncomeMapper;
// @Autowired
// private RemoteOpenService remoteOpenService;
//
// private static Pattern p2= Pattern.compile("<[^>]+>");
@Autowired
private RemoteOpenService remoteOpenService;
@Autowired
private RemoteQualityService remoteQualityService;
@Autowired
private QcCheckTaskIncomeMapper qcCheckTaskIncomeMapper;
/**
*
@ -59,9 +88,147 @@ public class QcGoalServiceImpl implements IQcGoalService {
for (QcGoal item : qcGoals) {
item.setHasChildren(true);
}
// QcCheckUnqualified task = new QcCheckUnqualified();
// task.setUser("002007");//9999999
// task.setSqr("660");
// task.setOaFactory("0");
// task.setMaterialType("0");
// task.setMaterialCode("000000040000015128");
// task.setMaterialName("榄菊蚊香加大盘Ф137.5mm×H100mm36圈内增高塑料筒(有字盖2201");
// task.setSupplierCode("0000100330");
// task.setSupplierName("中山市荣星塑料包装有限公司");
// task.setQuality("15296");
// task.setUnit("ST");
// task.setCheckNo("202407130047");
// task.setCzbjr("284");
// task.setMaterialFrom("2");
// task.setZcf("0");
// task.setZcoemcm("转出工厂");
// task.setRemark("zxl测试不合格发起oa");
// task.setQczg("660");
// this.createLLOA(task);
// //手持来料质检触发
// QcCheckTaskIncomeDTO qcCheckTaskIncomeDTO = new QcCheckTaskIncomeDTO();
// qcCheckTaskIncomeDTO.setPoolName("ds_1000" );
// qcCheckTaskIncomeDTO.setCheckLoc("mjtest");
// qcCheckTaskIncomeDTO.setCheckType("checkTypeLL");
//// qcCheckTaskIncomeDTO.setCheckManCode("mobile");
//// qcCheckTaskIncomeDTO.setCheckManName("手持测试用户");
// qcCheckTaskIncomeDTO.setSupplierCode("0000102272");
// qcCheckTaskIncomeDTO.setFactoryCode("1000");
// qcCheckTaskIncomeDTO.setSupplierName("广州市彩晴包装印刷有限公司");
// qcCheckTaskIncomeDTO.setOrderType("8040");//包材固定码
// qcCheckTaskIncomeDTO.setUnit("KG");
// qcCheckTaskIncomeDTO.setQuality(new BigDecimal("10"));
// qcCheckTaskIncomeDTO.setMaterialCode("000000040000011094");
// qcCheckTaskIncomeDTO.setMaterialName("LANJU 出口封口胶(1000米/卷)(1901)");
// qcCheckTaskIncomeDTO.setIncomeBatchNo("202312250001");
// qcCheckTaskIncomeDTO.setOrderNo("4500297568");
// qcCheckTaskIncomeDTO.setIncomeTime(new Date());
// remoteQualityService.createIncomeTask(qcCheckTaskIncomeDTO);
// 品质检验
// QcCheckUnqualified task = new QcCheckUnqualified();
// task.setTaskId("3ffb199037ba46a48e39cb148d7ad9e0");
// task.setUser("002007");
// task.setSqbm("0");
// task.setSqr("MSL#002007");
// task.setSccj("MSD#10000152");
// task.setQuality("100");
// task.setCheckLoc("测试发现地点");
// task.setOaFactoryF("0");
// task.setSfxyzg("0");
// task.setPgzg("MSL#019184");
// task.setPgzr("MSL#019184");
// task.setSfgyswt("0");
// this.createProduceOA(task);
return qcGoals;
}
private AjaxResult createLLOA(QcCheckUnqualified task){
//QcCheckTaskIncome detailInfo = qcCheckTaskIncomeMapper.getTaskInfo(task.getTaskId());
//发起来料检验OA流程
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("user",task.getUser());//提交人工号
paramMap.put("requestLevel",0);//流程紧急度
paramMap.put("requestName","ZL0010-来料检验不合格控制流程");//流程名称
paramMap.put("workflowId",113454);//该流程对应的唯- workFlowld
if(StringUtils.isEmpty(task.getIncomeBatchNo())){
task.setIncomeBatchNo(DateUtils.parseDateToStr("yyyyMMdd",new Date()));
}
StringBuffer mainObject = new StringBuffer();
mainObject.append("{");
mainObject.append("\"SQR\":"+"\""+task.getSqr()+"\"");//申请人--
mainObject.append(",\"CQ\":"+task.getOaFactory());//厂区--
mainObject.append(",\"LLLB\":"+task.getMaterialType());//来料类别【0、1】
mainObject.append(",\"MATNR\":"+"\""+task.getMaterialCode()+"\"");//物料编码
mainObject.append(",\"MAKTX\":"+"\""+task.getMaterialName()+"\"");//物料名称
mainObject.append(",\"suppliernum\":"+"\""+task.getSupplierCode()+"\"");//供应商编码
mainObject.append(",\"supplier\":"+"\""+task.getSupplierName()+"\"");//供应商名称
mainObject.append(",\"CHARG\":"+"\""+task.getIncomeBatchNo()+"\"");//生产批号
mainObject.append(",\"comeQty\":"+"\""+task.getQuality()+"\"");//来料数量
mainObject.append(",\"DW\":"+"\""+task.getUnit()+"\"");//来料单位
mainObject.append(",\"testDate\":"+"\""+DateUtils.parseDateToStr("yyyy-MM-dd",new Date())+"\"");//检验日期
mainObject.append(",\"JYBH\":"+"\""+task.getCheckNo()+"\"");//检验编码
mainObject.append(",\"BJY\":"+"\""+task.getCzbjr()+"\"");//仓储报检人--
mainObject.append(",\"WLLY\":"+"\""+task.getMaterialFrom()+"\"");//物料来源
mainObject.append(",\"ZCF\":"+"\""+task.getZcf()+"\"");//转出方
mainObject.append(",\"ZCOEMCM\":"+"\""+task.getZcoemcm()+"\"");//转出OEM厂名
mainObject.append(",\"memo\":"+"\""+task.getRemark()+"\"");//不合格描述
mainObject.append(",\"PZGLBZG\":"+"\""+task.getQczg()+"\"");//qc主管--
mainObject.append("}");
paramMap.put("mainObject",mainObject.toString());
logger.info("流程Id 113454:"+ JSONObject.toJSONString(paramMap));
AjaxResult oaR = remoteOpenService.OAInspection(paramMap);
logger.info("流程Id 113454:"+ JSONObject.toJSONString(oaR));
return oaR;
}
private AjaxResult createProduceOA(QcCheckUnqualified task){
QcCheckTaskIncome detailInfo = qcCheckTaskIncomeMapper.getTaskInfo(task.getTaskId());
//发起来料检验OA流程
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("user",task.getUser());//提交人工号
paramMap.put("requestLevel",0);//流程紧急度
paramMap.put("requestName","ZL0030-品质异常流程-智能制造-"+DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss",detailInfo.getIncomeTime())+"(产品名称:"+detailInfo.getMaterialName()+"");//流程名称
paramMap.put("workflowId",113455);//该流程对应的唯- workFlowld
StringBuffer mainObject = new StringBuffer();
mainObject.append("{");
mainObject.append("\"CPMC\":"+"\""+detailInfo.getMaterialName()+"\"");//产品名称
mainObject.append(",\"CPBM\":"+"\""+detailInfo.getMaterialCode()+"\"");//产品编码
mainObject.append(",\"SQBM\":"+"\""+task.getSqbm()+"\"");//0品质保障部
mainObject.append(",\"SQR\":"+"\""+task.getSqr()+"\"");//申请人:默认当前用户
mainObject.append(",\"SQSJ\":"+"\""+DateUtils.parseDateToStr("yyyy-MM-dd",detailInfo.getCheckTime())+"\"");//申请时间
mainObject.append(",\"SCCJ\":"+"\""+task.getSccj()+"\"");//所属车间
mainObject.append(",\"SCPH\":"+"\""+detailInfo.getIncomeBatchNo()+"\"");//生产批号
mainObject.append(",\"SCSL\":"+task.getQuality());//生产数量
mainObject.append(",\"FXDD\":"+"\""+task.getCheckLoc()+"\"");//发现地点
mainObject.append(",\"FXRQ\":"+"\""+DateUtils.parseDateToStr("yyyy-MM-dd",detailInfo.getCheckTime())+"\"");//发现日期
mainObject.append(",\"BH\":"+"\""+detailInfo.getCheckNo()+"\"");//编号:流水号 年月日+四位流水号
mainObject.append(",\"YCFW\":"+"\""+task.getOaFactoryF()+"\"");//*异常范围:下拉框榄菊所有工厂 1代表小榄工厂
mainObject.append(",\"PZYCMS\":"+"\""+detailInfo.getRemark()+"\"");//品质异常描述
mainObject.append(",\"Notes\":"+"\"\"");//测试备注
mainObject.append(",\"SFXYZG\":"+"\""+task.getSfxyzg()+"\"");//*是否需要主管审核 1否 0是
mainObject.append(",\"PGZG\":"+"\""+task.getPgzg()+"\"");//QC主管SFXYZG字段为"是",则此项选择QC主管信息
mainObject.append(",\"PGZR\":"+"\""+task.getPgzr()+"\"");//质量主管 660朱继新
mainObject.append(",\"SFGYSWT\":"+"\""+task.getSfgyswt()+"\"");//*是否供应商问题 1非供应商问题 0是供应商问题
mainObject.append("}");
paramMap.put("mainObject",mainObject.toString());
logger.info("流程Id 113455:"+ JSONObject.toJSONString(paramMap));
AjaxResult oaR = remoteOpenService.OAInspection(paramMap);
logger.info("流程Id 113455:"+ JSONObject.toJSONString(oaR));
return oaR;
}
@Override
@DS("#header.poolName")
public List<QcGoal> selectChildrenByParent(QcGoal goal) {

@ -54,7 +54,7 @@ public class QcMaterialGroupServiceImpl implements IQcMaterialGroupService {
}
/**
*
*
* @param qcMaterialGroup
* @return
*/
@ -191,6 +191,7 @@ public class QcMaterialGroupServiceImpl implements IQcMaterialGroupService {
@Override
@DS("#header.poolName")
public int deleteQcMaterialGroupById(String id) {
qcMaterialGroupMapper.deleteGroupDetailById(id);
return qcMaterialGroupMapper.deleteQcMaterialGroupById(id);
}

@ -632,9 +632,20 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService {
public static double calculateCpk(double[] data, double USL, double LSL) {
double mean = calculateMean(data);
double stdDev = calculateStandardDeviation(data);
double cpkUpper = (USL - mean) / (3 * stdDev);
double cpkLower = (mean - LSL) / (3 * stdDev);
return Math.min(cpkUpper, cpkLower);
if(new BigDecimal(USL).compareTo(BigDecimal.ZERO)>0 && new BigDecimal(LSL).compareTo(BigDecimal.ZERO)>0){
double cpkUpper = (USL - mean) / (3 * stdDev);
double cpkLower = (mean - LSL) / (3 * stdDev);
return Math.min(cpkUpper, cpkLower);
}else if(new BigDecimal(USL).compareTo(BigDecimal.ZERO)==0 && new BigDecimal(LSL).compareTo(BigDecimal.ZERO)>0){
//无上限
double cpkLower = (mean - LSL) / (3 * stdDev);
return cpkLower;
}else if(new BigDecimal(USL).compareTo(BigDecimal.ZERO)>0 && new BigDecimal(LSL).compareTo(BigDecimal.ZERO)==0){
//无下限
double cpkUpper = (USL - mean) / (3 * stdDev);
return cpkUpper;
}
return 0;
}
// 计算均值
public static double calculateMean(double[] data) {
@ -736,5 +747,8 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService {
return days;
}
public static void main(String args[]){
double a = 0.01;
System.out.println(new BigDecimal(a).compareTo(BigDecimal.ZERO));
}
}

@ -574,7 +574,7 @@
where del_flag='0' and sample_code like concat(#{sampleCode},'%')
</select>
<select id="getUserIdList" resultType="com.op.system.api.domain.SysUser">
select oa_user_id userId,
select user_name userCode,
nick_name userName
from sys_user where dept_id = #{deptId} and del_flag='0'
</select>

@ -307,13 +307,20 @@
where del_flag = '0'
</select>
<select id="getProductGroup" resultType="com.op.quality.domain.QcProjectType">
select bp.product_group productGroup,
<!--select bp.product_group productGroup,
bp.product_group_name productGroupName,
qmg.id groupId
from base_product bp
left join qc_material_group qmg on qmg.group_code = bp.product_group
where bp.product_code like concat('%',#{materialCode},'%')
and bp.del_flag = '0'-->
select top 1 qmg.id groupId
from base_product bp
left join qc_material_group qmg on qmg.group_code = bp.mvgr5
where bp.product_code like concat('%',#{materialCode},'%')
and bp.del_flag = '0'
order by qmg.create_time desc
</select>
<select id="selectExist" resultType="com.op.quality.domain.QcMaterialGroupDetail">
select material_name from qc_material_group_detail

@ -14,10 +14,14 @@
<result property="updateTime" column="update_time"/>
<result property="factoryCode" column="factory_code"/>
<result property="delFlag" column="del_flag"/>
<result property="groupCode" column="group_code"/>
</resultMap>
<sql id="selectQcMaterialGroupVo">
select id, group_name, attr1, create_by, create_time, update_by, update_time, factory_code, del_flag from qc_material_group
select id, group_name, attr1, create_by, create_time,
update_by, update_time, factory_code, del_flag
from qc_material_group
</sql>
<select id="selectQcMaterialGroupList" parameterType="QcMaterialGroup" resultMap="QcMaterialGroupResult">
@ -40,10 +44,10 @@
<select id="getOriginalGroupList" parameterType="QcMaterialGroup" resultType="QcMaterialGroup">
SELECT DISTINCT
product_group groupCode,
concat(product_group_name,'(',product_group,')') groupName
mvgr5 groupCode,
mvgr5 groupName
FROM base_product
WHERE del_flag = '0' AND product_group_name IS NOT NULL
WHERE del_flag = '0' AND mvgr5 IS NOT NULL
</select>
<select id="getMaterialChildrenList" parameterType="QcMaterialGroup" resultMap="QcMaterialGroupResult">
@ -61,7 +65,10 @@
<select id="selectQcMaterialGroupById" parameterType="String" resultMap="QcMaterialGroupResult">
<include refid="selectQcMaterialGroupVo"/>
select id, group_name, attr1, create_by, create_time,
update_by, update_time, factory_code, del_flag,
group_code
from qc_material_group
where id = #{id}
</select>
@ -119,6 +126,9 @@
#{id}
</foreach>
</delete>
<delete id="deleteGroupDetailById">
delete from qc_material_group_detail where group_id = #{id}
</delete>
<select id="validationData" parameterType="String" resultMap="QcMaterialGroupResult">
select
id,

@ -67,6 +67,10 @@ public class SapMaterialPreparationServiceImpl implements SapMaterialPreparation
String BDMNG = maraTable.getString("BDMNG");
String ZQLSL = maraTable.getString("ZQLSL");
String MEINS = maraTable.getString("MEINS");
String ERFMG = maraTable.getString("ERFMG");
String ERFME = maraTable.getString("ERFME");
String RGEKZ = maraTable.getString("RGEKZ");
String DBSKZ = maraTable.getString("DBSKZ");
log.info("备料单输出------" + "订单号:" + AUFNR
@ -79,20 +83,10 @@ public class SapMaterialPreparationServiceImpl implements SapMaterialPreparation
" - 需求量:" + BDMNG +
" - 欠料数量:" + ZQLSL +
" - 基本计量单位:" + MEINS +
" - 以输入单位计的数量:" + ERFMG +
" - 条目单位:" + ERFME +
" - 标识:反冲:" + RGEKZ +
" - 直接采购标识:" + DBSKZ);
// System.out.println("订单号:" + AUFNR
// + " - 预留/相关需求的项目编号:" + RSPOS +
// " - 物料号:" + MATNR +
// " - 物料描述(短文本):" + MAKTX +
// " - 工厂:" + WERKS +
// " - 库存地点:" + LGORT +
// " - 组件的需求日期 " + BDTER +
// " - 需求量:" + BDMNG +
// " - 欠料数量:" + ZQLSL +
// " - 基本计量单位:" + MEINS +
// " - 标识:反冲:" + RGEKZ +
// " - 直接采购标识:" + DBSKZ );
SapMaterialPreparation sapMaterialPreparation = new SapMaterialPreparation();
sapMaterialPreparation.setAUFNR(AUFNR);
sapMaterialPreparation.setBDMNG(BDMNG);
@ -106,6 +100,10 @@ public class SapMaterialPreparationServiceImpl implements SapMaterialPreparation
sapMaterialPreparation.setRSPOS(RSPOS);
sapMaterialPreparation.setWERKS(WERKS);
sapMaterialPreparation.setZQLSL(ZQLSL);
sapMaterialPreparation.setERFMG(ERFMG);
sapMaterialPreparation.setERFME(ERFME);
sapMaterialPreparationList.add(sapMaterialPreparation);
}
String MSG = func.getExportParameterList().getString("MSG");

@ -5,6 +5,7 @@ package com.op.wms.controller;
import com.op.common.core.utils.StringUtils;
import com.op.common.core.web.domain.AjaxResult;
import com.op.common.core.web.page.TableDataInfo;
import com.op.system.api.RemoteOpenService;
import com.op.wms.domain.*;
import com.op.wms.service.*;
@ -615,8 +616,24 @@ public class WmsToWCSmissionController {
return success(odsProductEmbryoInventoryCorrelationList);
}
//查询线体
@PostMapping("/listBaseEquipment")
public AjaxResult listBaseEquipment(@RequestBody BaseEquipment baseEquipment) {
List<BaseEquipment> list = wmsProductPutService.selectBaseEquipmentList(baseEquipment);
return success(list);
}
//根据线体查询单子
@PostMapping("/listProOrderWorkorder")
public AjaxResult listProOrderWorkorder(@RequestBody ProOrderWorkorder proOrderWorkorder) {
List<ProOrderWorkorder> list = wmsProductPutService.listProOrderWorkorder(proOrderWorkorder);
return success(list);
}
//保存--成品生产记录
@PostMapping("/finishedProductProductionRecords")
public AjaxResult finishedProductProductionRecords(@RequestBody ProOrderWorkorder proOrderWorkorder) {
List<ProOrderWorkorder> list = wmsProductPutService.listProOrderWorkorder(proOrderWorkorder);
return success(list);
}
/**
* RGV RFID WMS
* RFID

@ -47,6 +47,15 @@ public class WmsProductPut extends BaseEntity {
*/
@Excel(name = "仓库编码")
private String whCode;
private String batchSK;//生产批次
public String getBatchSK() {
return batchSK;
}
public void setBatchSK(String batchSK) {
this.batchSK = batchSK;
}
/**
*
@ -490,4 +499,6 @@ public class WmsProductPut extends BaseEntity {
", attr10='" + attr10 + '\'' +
'}';
}
}

@ -73,4 +73,6 @@ public interface WmsOdsWhiteEmbryoInMapper {
WmsOdsWhiteEmbryoIn selectWmsOdsWhiteEmbryoInByOrderCodeAndUserDefined1(WmsOdsWhiteEmbryoIn wmsOdsWhiteEmbryoIn);
String selectByOrderAndBc(@Param("proOrderWorkorderBatch") ProOrderWorkorderBatch proOrderWorkorderBatch,@Param("orderCode") String orderCode);
List<ProOrderWorkorder> listProOrderWorkorder(ProOrderWorkorder proOrderWorkorder);
}

@ -1,5 +1,6 @@
package com.op.wms.mapper;
import com.op.wms.domain.BaseEquipment;
import com.op.wms.domain.WmsRuturnPutEmbryo;
import java.util.List;
@ -23,4 +24,6 @@ public interface WmsRuturnPutEmbryoMapper {
public List<WmsRuturnPutEmbryo> selectWmsRuturnPutEmbryoList(WmsRuturnPutEmbryo wmsRuturnPutEmbryo);
void insertWmsRuturnPutEmbryo(WmsRuturnPutEmbryo wmsRuturnPutEmbryo1);
List<BaseEquipment> selectBaseEquipmentList(BaseEquipment baseEquipment);
}

@ -130,4 +130,8 @@ public interface IWmsProductPutService {
List<WmsRuturnPutEmbryo> selectWmsRuturnPutEmbryoList(WmsRuturnPutEmbryo wmsRuturnPutEmbryo);
String finishedProductSalesReturnTD(WmsRuturnPutEmbryo wmsRuturnPutEmbryo);
List<BaseEquipment> selectBaseEquipmentList(BaseEquipment baseEquipment);
List<ProOrderWorkorder> listProOrderWorkorder(ProOrderWorkorder proOrderWorkorder);
}

@ -285,14 +285,15 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService {
map.put("LGORT", wmsProductPut3.getWhCode());
map.put("QUANTITY", wmsProductPut3.getPutQuantity());
map.put("ERFME", wmsProductPut3.getUnitOfMeasure());
map.put("BATCH", wmsProductPut3.getAttr4());
//map.put("BATCH", wmsProductPut3.getBatchNumber());
if (wmsProductPut3.getBatchNumber().length()>12){
//String batch = mesReportWork.getBatch().substring(12);
String batch = InterceptionRules(wmsProductPut3.getBatchNumber());
map.put("BATCH", batch);
}else {
map.put("BATCH", wmsProductPut3.getBatchNumber());
}
// if (wmsProductPut3.getBatchNumber().length()>12){
// //String batch = mesReportWork.getBatch().substring(12);
// String batch = InterceptionRules(wmsProductPut3.getBatchNumber());
// map.put("BATCH", batch);
// }else {
// map.put("BATCH", wmsProductPut3.getBatchNumber());
// }
map.put("HSDAT", wmsProductPut3.getProductDate());
mapList.add(map);
}
@ -329,6 +330,15 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService {
@DS("#header.poolName")
public List<wmsReportWork> getReportList(wmsReportWork mesReportWork) {
List<wmsReportWork> rlist = wmsProductPutMapper.getReportList(mesReportWork);
for (wmsReportWork wmsReportWork:
rlist ) {
if (wmsReportWork.getBatch().length()>=23){
String batchsk = InterceptionRules(wmsReportWork.getBatch());
wmsReportWork.setBatchSK(batchsk);
}else {
wmsReportWork.setBatchSK(wmsReportWork.getBatch());
}
}
return rlist;
}
@ -365,6 +375,7 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService {
wmsProductPutk.setBatchNumber(mesReportWork.getBatch());//
// wmsProductPutk.setSapStatus("2");//过账失败的
List<WmsProductPut> wmsProductPutList = wmsProductPutMapper.selectWmsProductPutList(wmsProductPutk);
if (wmsProductPutList.size() > 0) {
String id = wmsProductPutList.get(0).getId();
mesReportWork.setId(id);
@ -393,6 +404,7 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService {
wmsReportWorkListagain.add(mesReportWork);//
// }
}
//已经插入且插入失败的
for (wmsReportWork mesReportWork :
wmsReportWorkList) {
WmsProductPut wmsProductPutk = new WmsProductPut();
@ -408,6 +420,7 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService {
wmsProductPutk.setUnitOfMeasure(mesReportWork.getUnit());
wmsProductPutk.setBatchNumber(mesReportWork.getBatch());//
wmsProductPutk.setSapStatus("2");
List<WmsProductPut> wmsProductPutList = wmsProductPutMapper.selectWmsProductPutList(wmsProductPutk);
if (wmsProductPutList.size() > 0) {//已经插入且失败的
wmsReportWorkListTWO.add(mesReportWork);//
@ -415,7 +428,7 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService {
}
//先屏蔽起来
//第一次
for (wmsReportWork mesReportWork :
wmsReportWorkListRk) {
WmsProductPut wmsProductPutk = new WmsProductPut();
@ -433,12 +446,12 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService {
wmsProductPutk.setStatus("1");
wmsProductPutk.setUnitOfMeasure(mesReportWork.getUnit());
wmsProductPutk.setBatchNumber(mesReportWork.getBatch());//
wmsProductPutk.setAttr4(mesReportWork.getBatchSK());
//List<WmsProductPut> wmsProductPutList= wmsProductPutMapper.selectWmsProductPutList(wmsProductPutk);
// wmsProductPutk.setBatchSK(mesReportWork.getBatchSK());//入库批次
wmsProductPutk.setAttr3(formattedDate);//
wmsProductPutk.setCreateBy(SecurityUtils.getUsername());
wmsProductPutk.setCreateTime(new Date());
wmsProductPutk.setProductDate(mesReportWork.getProductDate());
wmsProductPutk.setId(mesReportWork.getId());
wmsProductPutk.setSapStatus("0");
@ -492,13 +505,14 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService {
map.put("LGORT", mesReportWork.getWhCode());
map.put("QUANTITY", mesReportWork.getQuantityQualified());
map.put("ERFME", mesReportWork.getUnit());
if (mesReportWork.getBatch().length()>12){
//String batch = mesReportWork.getBatch().substring(12);
String batch = InterceptionRules(mesReportWork.getBatch());
map.put("BATCH", batch);
}else {
map.put("BATCH", mesReportWork.getBatch());
}
map.put("BATCH", mesReportWork.getBatchSK());
// if (mesReportWork.getBatch().length()>12){
// //String batch = mesReportWork.getBatch().substring(12);
// String batch = InterceptionRules(mesReportWork.getBatch());
//
// }else {
// map.put("BATCH", mesReportWork.getBatch());
// }
String formattedsDate = mesReportWork.getProductDate().replace("-", "");
map.put("HSDAT", formattedsDate);
mapList.add(map);
@ -532,12 +546,13 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService {
map.put("LGORT", mesReportWork.getWhCode());
map.put("QUANTITY", mesReportWork.getQuantityQualified());
map.put("ERFME", mesReportWork.getUnit());
if (mesReportWork.getBatch().length()>12){
String batch = InterceptionRules(mesReportWork.getBatch());
map.put("BATCH", batch);
}else {
map.put("BATCH", mesReportWork.getBatch());
}
map.put("BATCH", mesReportWork.getBatchSK());
// if (mesReportWork.getBatch().length()>12){
// String batch = InterceptionRules(mesReportWork.getBatch());
// map.put("BATCH", batch);
// }else {
// map.put("BATCH", mesReportWork.getBatch());
// }
String formattedsDate = mesReportWork.getProductDate().replace("-", "");
map.put("HSDAT", formattedsDate);
mapList.add(map);
@ -967,6 +982,21 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService {
}
return results;
}
@Override
public List<BaseEquipment> selectBaseEquipmentList(BaseEquipment baseEquipment) {
DynamicDataSourceContextHolder.push("ds_" + baseEquipment.getFactoryCode());
List<BaseEquipment> baseEquipments = wmsRuturnPutEmbryoMapper.selectBaseEquipmentList(baseEquipment);
return baseEquipments;
}
@Override
public List<ProOrderWorkorder> listProOrderWorkorder(ProOrderWorkorder proOrderWorkorder) {
DynamicDataSourceContextHolder.push("ds_" + proOrderWorkorder.getFactoryCode());
List<ProOrderWorkorder> workorderList= wmsOdsWhiteEmbryoInMapper.listProOrderWorkorder(proOrderWorkorder);
return workorderList;
}
@Override
public List<WmsRuturnPutEmbryo> FinishedProductSalesReturn(WmsRuturnPutEmbryo wmsRuturnPutEmbryo) {
DynamicDataSourceContextHolder.push("ds_" + wmsRuturnPutEmbryo.getFactoryCode());

@ -285,5 +285,26 @@
<include refid="selectWmsOdsWhiteEmbryoInVo"/>
WHERE Active='1' AND Order_Code=#{orderCode} AND User_Defined1=#{userDefined1}
</select>
<select id="listProOrderWorkorder" resultType="com.op.wms.domain.ProOrderWorkorder">
SELECT
pro_order_workorder.workorder_code_sap AS workorderCodeSap,
pro_order_workorder.status AS status,
pro_order_workorder_batch.batch_code AS batchCode,
pro_order_workorder.product_code AS productCode,
pro_order_workorder.product_name AS productName,
pro_order_workorder.unit AS unit,
pro_order_workorder.workorder_name AS workorderName
FROM
pro_order_workorder
LEFT JOIN pro_order_workorder_batch ON pro_order_workorder_batch.workorder_id= pro_order_workorder.workorder_id
WHERE
pro_order_workorder.parent_order= '0'
AND pro_order_workorder_batch.del_flag= '0'
AND pro_order_workorder.status IN('w2','w3')
AND pro_order_workorder.product_date= CONVERT(DATE, GETDATE())
<if test="workorderName != null">AND pro_order_workorder.workorder_name= #{workorderName}</if>
<if test="workorderCodeSap != null">AND pro_order_workorder.workorder_code_sap= #{workorderCodeSap}</if>
<if test="batchCode != null">AND pro_order_workorder_batch.batch_code= #{batchCode}</if>
<if test="productCode != null">AND pro_order_workorder.product_code= #{productCode}</if>
</select>
</mapper>

@ -387,4 +387,114 @@
</if>
</where>
</select>
<resultMap type="com.op.wms.domain.BaseEquipment" id="BaseEquipmentResult">
<result property="equipmentId" column="equipment_id"/>
<result property="equipmentCode" column="equipment_code"/>
<result property="equipmentName" column="equipment_name"/>
<result property="equipmentBrand" column="equipment_brand"/>
<result property="equipmentSpec" column="equipment_spec"/>
<result property="equipmentTypeId" column="equipment_type_id"/>
<result property="equipmentTypeCode" column="equipment_type_code"/>
<result property="equipmentTypeName" column="equipment_type_name"/>
<result property="workshopId" column="workshop_id"/>
<result property="workshopCode" column="workshop_code"/>
<result property="workshopName" column="workshop_name"/>
<result property="status" column="status"/>
<result property="remark" column="remark"/>
<result property="attr1" column="attr1"/>
<result property="attr2" column="attr2"/>
<result property="attr3" column="attr3"/>
<result property="attr4" column="attr4"/>
<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="delFlag" column="del_flag"/>
<result property="unitWorkingHours" column="unit_working_hours"/>
<result property="workshopSection" column="workshop_section"/>
<result property="equipmentLocation" column="equipment_location"/>
<result property="hourlyUnitPrice" column="hourly_unit_price"/>
<result property="plcIp" column="plc_ip"/>
<result property="plcPort" column="plc_port"/>
<result property="equipmentBarcode" column="equipment_barcode"/>
<result property="equipmentBarcodeImage" column="equipment_barcode_image"/>
<result property="manufacturer" column="manufacturer"/>
<result property="supplier" column="supplier"/>
<result property="useLife" column="use_life"/>
<result property="buyTime" column="buy_time"/>
<result property="assetOriginalValue" column="asset_original_value"/>
<result property="netAssetValue" column="net_asset_value"/>
<result property="assetHead" column="asset_head"/>
<result property="fixedAssetCode" column="fixed_asset_code"/>
<result property="department" column="department"/>
<result property="sapAsset" column="sap_asset"/>
<result property="equipmentHead" column="equipment_head"/>
<result property="factoryCode" column="factory_code"/>
<result property="equipmentStatus" column="equipment_status"/>
<result property="equipmentCategory" column="equipment_category"/>
<result property="assetClassificationName" column="asset_classification_name"/>
<result property="assetDescription" column="asset_description"/>
<result property="equipmentNumber" column="equipment_number"/>
<result property="inventoryNumber" column="inventory_number"/>
<result property="unitMeasurement" column="unit_measurement"/>
<result property="sapCode" column="sap_code"/>
<result property="sapName" column="sap_name"/>
<result property="factoryWorkshop" column="factory_workshop"/>
</resultMap>
<select id="selectBaseEquipmentList" resultMap="BaseEquipmentResult" >
select
equipment_id,
equipment_code,
equipment_name,
equipment_brand,
equipment_spec,
equipment_type_id,
equipment_type_code,
equipment_type_name,
workshop_id,
workshop_code,
workshop_name,
status,
remark,
attr1,
attr2,
attr3,
attr4,
create_by,
create_time,
update_by,
update_time,
workshop_section,
equipment_location,
hourly_unit_price,
unit_working_hours,
del_flag,
plc_ip,
plc_port,
sap_asset,
equipment_barcode,
equipment_barcode_image,
manufacturer,
supplier,
use_life,
buy_time,
asset_original_value,
net_asset_value,
asset_head,
fixed_asset_code,
department,
equipment_head,
factory_code,
equipment_status,
equipment_category,
asset_classification_name,
asset_description,
equipment_number,
inventory_number,
unit_measurement,
sap_code,
sap_name,
factory_workshop
from base_equipment WHERE equipment_type_code='equ_type_bzx' AND del_flag='0'
</select>
</mapper>

Loading…
Cancel
Save