Merge remote-tracking branch 'origin/master'

master
Yangwl 10 months ago
commit 1dc0e7d7d6

@ -544,6 +544,9 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService
EquEquipment equEquipment = new EquEquipment();
equEquipment.setEquipmentCode(equRepairWorkOrder.getEquipmentCode());
EquEquipment equ = equEquipmentMapper.selectEquEquipmentByEquEquipmentCode(equEquipment.getEquipmentCode());
if(equ == null){
throw new NotLoginException("设备表中不存在此设备,请确认!");
}
String equStatus = "";
//todo 维修保养中 和维修中 和保养中!!!!!!!!!!!!!!!!!!!!!!! 需要修改状态
if(equ.getEquipmentStatus().equals("0")){
@ -658,6 +661,7 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService
for (String id : ids) {
EquRepairWorkOrder equRepairWorkOrder = new EquRepairWorkOrder();
equRepairWorkOrder.setWorkId(id);
equRepairWorkOrder.setAuditOpinion(upKeepOrderDTO.getAuditOpinion());
String resultInspect = upKeepOrderDTO.getInspect();
//1.1 审核通过后 更新运行表 + 更新设备表 1审核通过

@ -140,6 +140,7 @@
erwo.fault_start_time,
erwo.result_inspect,
erwo.remark,
erwo.audit_opinion,
be.equipment_name,
et.team_name,
et.team_person

@ -1,5 +1,6 @@
package com.op.open.controller;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.dynamic.datasource.DynamicRoutingDataSource;
import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DataSourceProperty;
import com.op.common.core.domain.R;

@ -1,13 +1,10 @@
package com.op.open.service;
import com.op.common.core.domain.R;
import com.op.common.core.web.domain.AjaxResult;
import com.op.system.api.domain.device.EquRepairOrderDTO;
import com.op.system.api.domain.dto.WCSDTO;
import com.op.system.api.domain.dto.WechartDTO;
import com.op.system.api.domain.mes.BaseProductDTO;
import com.op.system.api.domain.mes.MesReportWorkDTO;
import com.op.system.api.domain.quality.QcCheckTaskDTO;
import com.op.system.api.domain.quality.QcCheckTaskProduceDTO;
import java.util.List;

@ -37,10 +37,15 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;

@ -1275,33 +1275,24 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService {
BigDecimal pall = pow.getBatchQuantity();
BigDecimal pn = pow.getPalletNum();
while(pall.subtract(pn).compareTo(BigDecimal.ZERO)>0){
while(pall.compareTo(BigDecimal.ZERO)>0){
pw = new ProOrderWorkorder();
pw.setProductName(pow.getProductName());
pw.setWorkorderCode(pow.getWorkorderCode());
pw.setBatchCode(pow.getBatchCode());
pw.setProductDateStr(pow.getProductDateStr());
pw.setRecordId(IdUtils.fastSimpleUUID());
pw.setBatchQuantity(pn);
if(pall.compareTo(pn)<0) {//最后一托盘
pw.setBatchQuantity(pall);
}else{
pw.setBatchQuantity(pn);
}
pw.setPalletNo(i++);
pw.setPalletCode(pow.getPalletCode()+"-"+pw.getPalletNo());
pw.setCreateTime(nowDate);
dtos.add(pw);
pall = pall.subtract(pn);
}
if(pall.compareTo(pn)<0){//最后一托盘
pw = new ProOrderWorkorder();
pw.setProductName(pow.getProductName());
pw.setWorkorderCode(pow.getWorkorderCode());
pw.setBatchCode(pow.getBatchCode());
pw.setProductDateStr(pow.getProductDateStr());
pw.setRecordId(IdUtils.fastSimpleUUID());
pw.setBatchQuantity(pall);
pw.setPalletNo(i++);
pw.setPalletCode(pow.getPalletCode()+"-"+pw.getPalletNo());
pw.setCreateTime(nowDate);
dtos.add(pw);
}
}
}
if(!CollectionUtils.isEmpty(dtos)){

@ -688,7 +688,7 @@
case when powbp.quantity is not null then powbp.quantity
else powb.batch_quantity end batchQuantity,
bpa.pallet_num palletNum,
concat(pow.workorder_code_sap,'-', powb.batch_code) palletCode,
concat(pow.workorder_code_sap,'-', powb.batch_code,'-',powbp.pallet_num) palletCode,
powbp.pallet_num palletNo
from pro_order_workorder pow
left join pro_order_workorder_batch powb on pow.workorder_id = powb.workorder_id
@ -697,7 +697,7 @@
and powbp.batch_code = powb.batch_code
where pow.workorder_code = #{workorderCode} and pow.del_flag = '0' and powb.del_flag = '0'
<if test="palletNo != null">and powbp.pallet_num = #{palletNo}</if>
order by powbp.pallet_num
order by CAST(powbp.pallet_num AS INT),powb.batch_code
</select>
<insert id="createPrepareDetails">

@ -5,11 +5,14 @@ import java.time.format.DateTimeFormatter;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.alibaba.fastjson2.JSONObject;
import com.op.common.core.domain.R;
import com.op.common.core.utils.DateUtils;
import com.op.common.core.utils.StringUtils;
import com.op.quality.domain.OACheckTaskDTO;
import com.op.quality.domain.QcCheckTaskIncome;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
@ -141,4 +144,41 @@ public class QcCheckTaskInventoryController extends BaseController {
qcCheckTaskInventoryService.createCCTask();
return R.ok();
}
//给oa提供的发起库存检验接口
@PostMapping("/createCCTaskFromOA")
public AjaxResult createCCTaskFromOA(@RequestBody OACheckTaskDTO dto) {
logger.info("oa发起库存检验参数"+ JSONObject.toJSONString(dto));
if(StringUtils.isBlank(dto.getFactoryCode())){
return AjaxResult.error("[factoryCode is null]");
}
if(CollectionUtils.isEmpty(dto.getDetail())){
return AjaxResult.error("[detail is null]");
}
if(StringUtils.isBlank(dto.getApplyNo())){
return AjaxResult.error("[applyNo is null]");
}
for(QcCheckTaskInventory qcCheckTaskInventory : dto.getDetail()){
if(StringUtils.isBlank(qcCheckTaskInventory.getSerialNumber())){
return AjaxResult.error("[serialNumber is null]");
}
if(StringUtils.isBlank(qcCheckTaskInventory.getMaterialCode())){
return AjaxResult.error("[materialCode is null]");
}
if(StringUtils.isBlank(qcCheckTaskInventory.getMaterialName())){
return AjaxResult.error("[materialName is null]");
}
if(StringUtils.isBlank(qcCheckTaskInventory.getIncomeBatchNo())){
return AjaxResult.error("[incomeBatchNo is null]");
}
if(StringUtils.isBlank(qcCheckTaskInventory.getUnit())){
return AjaxResult.error("[unit is null]");
}
if(qcCheckTaskInventory.getQuality() == null){
return AjaxResult.error("[quality is null]");
}
}
return qcCheckTaskInventoryService.createCCTaskFromOA(dto);
}
}

@ -487,5 +487,23 @@ public class QcStaticTableController extends BaseController {
}
}
}
/**
* ----
**/
@PostMapping("/getTableHzTitle")
@Log(title = "检验分析报表", businessType = BusinessType.QUERY)
public QcStaticTable getTableHzTitle(@RequestBody QcStaticTable qcStaticTable) {
return qcStaticTableService.getTableHzTitle(qcStaticTable);
}
/**
* --
**/
@PostMapping("/getTableHzData")
public List<HashMap> getTableHzLineData(@RequestBody QcStaticTable qcStaticTable) {
return qcStaticTableService.getTableHzData(qcStaticTable);
}
@PostMapping("/getTableHzNoOkData")
public List<QcStaticTable> getTableHzNoOkData(@RequestBody QcStaticTable qcStaticTable) {
return qcStaticTableService.getTableHzNoOkData(qcStaticTable);
}
}

@ -0,0 +1,157 @@
package com.op.quality.domain;
import com.op.common.core.web.domain.BaseEntity;
import java.sql.Date;
import java.util.List;
/**
* oa
*
* @author Open Platform
* @date 2023-10-31
*/
public class OACheckTaskDTO extends BaseEntity {
private static final long serialVersionUID = 1L;
private String recordId;
private String applyNo;//申请单号
private String applicant;//申请人
private String applyDepartment;//申请部门
private Date applyDate;//申请日期
private String storeAddress;//物品存放地点
private String type;//复检物品种类
private String checkManCode;//检验人员工号
private String checkManName;//检验人员姓名
private String qcManager;//QC主管工号
private String zlManager;//质量主管工号
private String treatmentMan;//处理方案人员工号
private int taskNum;//子任务数
private String status;//检验状态 0未完成 1检验完成
private String factoryCode;//工厂编码
private String delFlag;//删除标志
//任务明细
private List<QcCheckTaskInventory> detail;
//流程表单中有 数据库表没有
//其他仓库
//方案处理执行人员
//附件
public String getRecordId() {
return recordId;
}
public void setRecordId(String recordId) {
this.recordId = recordId;
}
public String getApplyNo() {
return applyNo;
}
public void setApplyNo(String applyNo) {
this.applyNo = applyNo;
}
public String getApplicant() {
return applicant;
}
public void setApplicant(String applicant) {
this.applicant = applicant;
}
public String getApplyDepartment() {
return applyDepartment;
}
public void setApplyDepartment(String applyDepartment) {
this.applyDepartment = applyDepartment;
}
public Date getApplyDate() {
return applyDate;
}
public void setApplyDate(Date applyDate) {
this.applyDate = applyDate;
}
public String getStoreAddress() { return storeAddress; }
public void setStoreAddress(String storeAddress) {
this.storeAddress = storeAddress;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getCheckManCode() {
return checkManCode;
}
public void setCheckManCode(String checkManCode) {
this.checkManCode = checkManCode;
}
public String getCheckManName() {
return checkManName;
}
public void setCheckManName(String checkManName) {
this.checkManName = checkManName;
}
public String getQcManager() {
return qcManager;
}
public void setQcManager(String qcManager) {
this.qcManager = qcManager;
}
public String getZlManager() {
return zlManager;
}
public void setZlManager(String zlManager) {
this.zlManager = zlManager;
}
public String getTreatmentMan() {
return treatmentMan;
}
public void setTreatmentMan(String treatmentMan) {
this.treatmentMan = treatmentMan;
}
public int getTaskNum() {
return taskNum;
}
public void setTaskNum(int taskNum) {
this.taskNum = taskNum;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getDelFlag() {
return delFlag;
}
public void setDelFlag(String delFlag) {
this.delFlag = delFlag;
}
public String getFactoryCode() {
return factoryCode;
}
public void setFactoryCode(String factoryCode) {
this.factoryCode = factoryCode;
}
public List<QcCheckTaskInventory> getDetail() {
return detail;
}
public void setDetail(List<QcCheckTaskInventory> detail) {
this.detail = detail;
}
}

@ -190,6 +190,7 @@ public class QcCheckTaskIncome extends BaseEntity {
private String fileList;
private List<BaseFile> files;
private String remark;
private String remarkCode;
private String belongTo;
private String oldBelongTo;
private String noOkQualityNames;
@ -852,6 +853,14 @@ public class QcCheckTaskIncome extends BaseEntity {
return delFlag;
}
public String getRemarkCode() {
return remarkCode;
}
public void setRemarkCode(String remarkCode) {
this.remarkCode = remarkCode;
}
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)

@ -216,6 +216,9 @@ public class QcCheckTaskInventory extends BaseEntity {
private String checkTimeStart;
private String checkTimeEnd;
//序号 复检流程单用
private String serialNumber;
private List<QcCheckTaskDefect> defects;
public void setRecordId(String recordId) {
@ -514,6 +517,14 @@ public class QcCheckTaskInventory extends BaseEntity {
this.defects = defects;
}
public String getSerialNumber() {
return serialNumber;
}
public void setSerialNumber(String serialNumber) {
this.serialNumber = serialNumber;
}
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)

@ -88,6 +88,7 @@ public class QcStaticTable extends BaseEntity {
private String projectNo;
private String status;
private String ymdms;
private String ymdUntype;
private String column080090;
private String column090100;
private String column100110;
@ -110,6 +111,32 @@ public class QcStaticTable extends BaseEntity {
private String[] projectNoArray;
private BigDecimal upperDiff;
private BigDecimal downDiff;
private List<String> columns1;
private List<String> columns2;
public String getYmdUntype() {
return ymdUntype;
}
public void setYmdUntype(String ymdUntype) {
this.ymdUntype = ymdUntype;
}
public List<String> getColumns1() {
return columns1;
}
public void setColumns1(List<String> columns1) {
this.columns1 = columns1;
}
public List<String> getColumns2() {
return columns2;
}
public void setColumns2(List<String> columns2) {
this.columns2 = columns2;
}
public String getIncomeTimeStr() {
return incomeTimeStr;

@ -2,6 +2,7 @@ package com.op.quality.mapper;
import java.util.List;
import com.op.quality.domain.OACheckTaskDTO;
import com.op.quality.domain.QcCheckTaskIncome;
import com.op.quality.domain.QcCheckTaskInventory;
import com.op.quality.domain.QcCheckTaskProduce;
@ -69,4 +70,7 @@ public interface QcCheckTaskInventoryMapper {
List<QcCheckTaskIncome> getPutInOrder(QcCheckTaskInventory qcCheckTaskInventory);
List<QcCheckTaskInventory> getPutInOrderList(QcCheckTaskInventory qoPutIn);
//创建 qc_check_oa_task 复检申请记录
void insertQcCheckOaTask(OACheckTaskDTO dto);
}

@ -81,4 +81,14 @@ public interface QcStaticTableMapper {
QcStaticTable getUpAndDown(QcStaticTable qcStaticTable);
@MapKey("detailId")
Map<String, QcStaticTable> defectMap(QcStaticTable qcStaticTable);
List<String> getTableHzTitle(QcStaticTable qcStaticTable);
List<String> getTableHzTitle2(QcStaticTable qcStaticTable);
@MapKey("ymdms")
Map<String, QcStaticTable> getSamplesNum(QcStaticTable qcStaticTable);
@MapKey("ymdUntype")
Map<String, QcStaticTable> getNoOkNum(QcStaticTable qcStaticTable);
List<QcStaticTable> getTableHzNoOkData(QcStaticTable qcStaticTable);
}

@ -3,6 +3,7 @@ package com.op.quality.service;
import java.util.List;
import com.op.common.core.web.domain.AjaxResult;
import com.op.quality.domain.OACheckTaskDTO;
import com.op.quality.domain.QcCheckTaskIncome;
import com.op.quality.domain.QcCheckTaskInventory;
@ -64,4 +65,6 @@ public interface IQcCheckTaskInventoryService {
List<QcCheckTaskIncome> getPutInOrder(QcCheckTaskInventory qcCheckTaskInventory);
AjaxResult createCCTask();
AjaxResult createCCTaskFromOA(OACheckTaskDTO dto);
}

@ -1,5 +1,6 @@
package com.op.quality.service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -49,4 +50,10 @@ public interface IQcStaticTableService {
QcStaticTable getDLTableCPKInfo(QcStaticTable qcStaticTable);
List<QcStaticTable> getProjectList(String checkType);
QcStaticTable getTableHzTitle(QcStaticTable qcStaticTable);
List<HashMap> getTableHzData(QcStaticTable qcStaticTable);
List<QcStaticTable> getTableHzNoOkData(QcStaticTable qcStaticTable);
}

@ -678,6 +678,7 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements
qcCheckTask.setUpdateTime(nowTime);
qcCheckTask.setCheckTime(nowTime);
qcCheckTask.setRemark(qcCheckTaskIncome.getRemark());
qcCheckTask.setRemarkCode(qcCheckTaskIncome.getRemarkCode());
qcCheckTask.setCheckResult(result);//检验结果Y合格 N不合格
qcCheckTask.setIncomeBatchNo(qcCheckTaskIncome.getIncomeBatchNo());
BigDecimal noOkQquality = new BigDecimal("0");
@ -688,7 +689,11 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements
qcCheckTask.setNoOkQuality(noOkQquality);//累计不合格数
qcCheckTask.setCheckManCode(qcCheckTaskIncome.getUpdateBy());
qcCheckTask.setCheckManName(qcCheckTaskIncome.getUpdateByName());
qcCheckTask.setSampleQuality(qcCheckTaskIncome.getSampleQuality());
qcCheckTask.setReason(qcCheckTaskIncome.getReason());
qcCheckTask.setBz(qcCheckTaskIncome.getAttr3());//备注
@ -720,34 +725,10 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements
qcCheckTask.setSccj(qcCheckTaskIncome.getSccj());// 所属车间
qcCheckTask.setSqr(qcCheckTaskIncome.getSqr());// 申请人Id
/**qc_check_task_cg**/
List<QcCheckTaskIncome> valiData = qcCheckTaskIncomeMapper.selectQcCheckTaskCgByRecordId(belongId);
// 判断表中是否存在此条数据
if (valiData != null && valiData.size() > 0) {
n = qcCheckTaskIncomeMapper.updateQcCheckTaskCg(qcCheckTask);//updateQcCheckTaskCG
}else {
qcCheckTask.setCheckNo(qcCheckTaskIncome.getCheckNo());
qcCheckTask.setOrderNo(qcCheckTaskIncome.getOrderNo());
qcCheckTask.setMaterialCode(qcCheckTaskIncome.getMaterialCode());
qcCheckTask.setMaterialName(qcCheckTaskIncome.getMaterialName());
qcCheckTask.setOrderType(qcCheckTaskIncome.getOrderType());
qcCheckTask.setOrderTypeDesc(qcCheckTaskIncome.getOrderTypeDesc());
qcCheckTask.setCreateBy(qcCheckTaskIncome.getCreateBy());
qcCheckTask.setCreateTime(DateUtils.getNowDate());
qcCheckTask.setIncomeTime(qcCheckTaskIncome.getIncomeTime());
qcCheckTask.setFactoryCode(qcCheckTaskIncome.getFactoryCode());
qcCheckTask.setCheckType(qcCheckTaskIncome.getCheckType());
qcCheckTask.setaNoOkquality(qcCheckTaskIncome.getaNoOkquality());
qcCheckTask.setbNoOkquality(qcCheckTaskIncome.getbNoOkquality());
qcCheckTask.setcNoOkquality(qcCheckTaskIncome.getcNoOkquality());
n = qcCheckTaskIncomeMapper.insertQcCheckTaskIncomeCg(qcCheckTask);
}
logger.info("qc_check_task:"+n);
/**更新qc_check_task_detail**/
BigDecimal sampleQuality = new BigDecimal("0");
for(QcCheckTaskDetail detail:details){
detail.setUpdateTime(nowTime);
sampleQuality = sampleQuality.add(new BigDecimal(detail.getSampleQuality()==null?"0":detail.getSampleQuality()));
//上传附件
if (StringUtils.isNotEmpty(detail.getFileListStr())) {
String[] ids = detail.getFileListStr().split(",");
@ -769,6 +750,41 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements
}
}
/**qc_check_task_cg**/
List<QcCheckTaskIncome> valiData = qcCheckTaskIncomeMapper.selectQcCheckTaskCgByRecordId(belongId);
// 判断表中是否存在此条数据
if (valiData != null && valiData.size() > 0) {
n = qcCheckTaskIncomeMapper.updateQcCheckTaskCg(qcCheckTask);//updateQcCheckTaskCG
}else {
if(qcCheckTaskIncome.getSampleQuality().equals(BigDecimal.ZERO)){
qcCheckTask.setSampleQuality(sampleQuality);
}else{
qcCheckTask.setSampleQuality(qcCheckTaskIncome.getSampleQuality());
}
qcCheckTask.setCheckNo(qcCheckTaskIncome.getCheckNo());
qcCheckTask.setOrderNo(qcCheckTaskIncome.getOrderNo());
qcCheckTask.setMaterialCode(qcCheckTaskIncome.getMaterialCode());
qcCheckTask.setMaterialName(qcCheckTaskIncome.getMaterialName());
qcCheckTask.setOrderType(qcCheckTaskIncome.getOrderType());
qcCheckTask.setOrderTypeDesc(qcCheckTaskIncome.getOrderTypeDesc());
qcCheckTask.setCreateBy(qcCheckTaskIncome.getCreateBy());
qcCheckTask.setCreateTime(DateUtils.getNowDate());
qcCheckTask.setIncomeTime(qcCheckTaskIncome.getIncomeTime());
qcCheckTask.setFactoryCode(qcCheckTaskIncome.getFactoryCode());
qcCheckTask.setCheckType(qcCheckTaskIncome.getCheckType());
qcCheckTask.setaNoOkquality(qcCheckTaskIncome.getaNoOkquality());
qcCheckTask.setbNoOkquality(qcCheckTaskIncome.getbNoOkquality());
qcCheckTask.setcNoOkquality(qcCheckTaskIncome.getcNoOkquality());
n = qcCheckTaskIncomeMapper.insertQcCheckTaskIncomeCg(qcCheckTask);
}
logger.info("qc_check_task:"+n);
/**更新qc_check_task_detail**/
n= qcCheckTaskIncomeMapper.updateQcCheckTaskDetails(details);
logger.info("更新qc_check_task_detail:"+n);
@ -841,6 +857,7 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements
qcCheckTask.setUpdateTime(nowTime);
qcCheckTask.setCheckTime(nowTime);
qcCheckTask.setRemark(qcCheckTaskIncome.getRemark());
qcCheckTask.setRemarkCode(qcCheckTaskIncome.getRemarkCode());
qcCheckTask.setCheckResult(result);//检验结果Y合格 N不合格
qcCheckTask.setIncomeBatchNo(qcCheckTaskIncome.getIncomeBatchNo());
BigDecimal noOkQquality = new BigDecimal("0");
@ -860,7 +877,7 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements
BigDecimal sampleQuality = new BigDecimal("0");
for(QcCheckTaskDetail detail:details){
detail.setUpdateTime(nowTime);
sampleQuality = noOkQquality.add(new BigDecimal(detail.getSampleQuality()==null?"0":detail.getSampleQuality()));
sampleQuality = sampleQuality.add(new BigDecimal(detail.getSampleQuality()==null?"0":detail.getSampleQuality()));
//上传附件
if (StringUtils.isNotEmpty(detail.getFileListStr())) {
String[] ids = detail.getFileListStr().split(",");
@ -882,7 +899,12 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements
}
}
qcCheckTask.setSampleQuality(sampleQuality);
if(qcCheckTaskIncome.getSampleQuality().equals(BigDecimal.ZERO)){
qcCheckTask.setSampleQuality(sampleQuality);
}else{
qcCheckTask.setSampleQuality(qcCheckTaskIncome.getSampleQuality());
}
/**qc_check_task**/
n = qcCheckTaskIncomeMapper.updateQcCheckTask(qcCheckTask);
logger.info("qc_check_task:"+n);

@ -28,8 +28,6 @@ import com.op.system.api.RemoteUserService;
import com.op.system.api.domain.SysNoticeGroup;
import com.op.system.api.domain.SysUser;
import com.op.system.api.domain.dto.WechartDTO;
import com.op.system.api.domain.mes.ProOrderWorkorderDTO;
import com.op.system.api.domain.quality.QcUserMaterialDTO;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@ -386,6 +384,32 @@ public class QcCheckTaskInventoryServiceImpl implements IQcCheckTaskInventorySer
return success();
}
@Override
public AjaxResult createCCTaskFromOA(OACheckTaskDTO dto) {
List<QcCheckTaskInventory> dtos = dto.getDetail();
int m = 0;
for(QcCheckTaskInventory ccTask : dtos){
ccTask.setOrderNo(dto.getApplyNo() + ":" + ccTask.getSerialNumber() );//订单号 = 申请单号 ++序号
ccTask.setAttr1(dto.getApplyNo());//申请编码
ccTask.setCheckType("checkTypeCC");//库存检验
ccTask.setFactoryCode(dto.getFactoryCode());
if(ccTask.getIncomeTime() == null){
ccTask.setIncomeTime(DateUtils.getNowDate());//如果生产日期和入库时间
}
insertQcCheckTaskInventory(ccTask);
m++;
}
/**qc_check_oa_task表新增**/
dto.setRecordId(IdUtils.fastSimpleUUID());
dto.setTaskNum(dtos.size());
dto.setCreateTime(DateUtils.getNowDate());//创建时间
dto.setCreateBy(dto.getApplicant());//创建人
qcCheckTaskInventoryMapper.insertQcCheckOaTask(dto);
logger.info("++++++++++++oa发起仓库检验任务生成" + m + "++++++++++++++");
return success();
}
public void createCCFunc(String poolName){
DynamicDataSourceContextHolder.push(poolName);// 这是数据源的key
QcCheckTaskInventory qoPutIn = new QcCheckTaskInventory();

@ -361,8 +361,9 @@ public class QcCheckUnqualifiedServiceImpl implements IQcCheckUnqualifiedService
mainObject.append(",\"SFXYZG\":"+"\""+task.getSfxyzg()+"\"");//*是否需要主管审核 1否 0是
if("0".equals(task.getSfxyzg())){
mainObject.append(",\"PGZG\":"+"\""+task.getPgzg()+"\"");//QC主管SFXYZG字段为"是",则此项选择QC主管信息
mainObject.append(",\"PGZR\":"+"\""+task.getPgzr()+"\"");//质量主管 660朱继新
}
};
mainObject.append(",\"PGZR\":"+"\""+task.getPgzr()+"\"");//质量主管 660朱继新
mainObject.append(",\"SFGYSWT\":"+"\""+task.getSfgyswt()+"\"");//*是否供应商问题 1非供应商问题 0是供应商问题
mainObject.append("}");

@ -221,12 +221,17 @@ public class QcInterfaceServiceImpl implements IQcInterfaceService {
if (hz1 != null) {
dtoMap.put("todaySample", hz1.getSampleQuality().replaceAll("\\..*", ""));
dtoMap.put("todayNoOk", hz1.getNoOkQuality().replaceAll("\\..*", ""));
BigDecimal tOkRate = (new BigDecimal(hz1.getSampleQuality())
.subtract(new BigDecimal(hz1.getNoOkQuality()))
)
.multiply(new BigDecimal(100))
.divide(new BigDecimal(hz1.getSampleQuality()), 2, RoundingMode.HALF_UP);
dtoMap.put("todayOkRate", tOkRate + "%");
if(!hz1.getSampleQuality().equals("0.00")){
BigDecimal tOkRate = (new BigDecimal(hz1.getSampleQuality())
.subtract(new BigDecimal(hz1.getNoOkQuality()))
)
.multiply(new BigDecimal(100))
.divide(new BigDecimal(hz1.getSampleQuality()), 2, RoundingMode.HALF_UP);
dtoMap.put("todayOkRate", tOkRate + "%");
}else{
dtoMap.put("todayOkRate", "0%");
}
}
qcInterface.setYmdType("mm");
@ -239,12 +244,16 @@ public class QcInterfaceServiceImpl implements IQcInterfaceService {
QcInterface hz2 = qcInterfaceMapper.getProduceHz(qcInterface);
if (hz2 != null) {
dtoMap.put("monthNoOk", hz2.getNoOkQuality().replaceAll("\\..*", ""));
BigDecimal tOkRate2 = (new BigDecimal(hz2.getSampleQuality())
.subtract(new BigDecimal(hz2.getNoOkQuality()))
)
.multiply(new BigDecimal(100))
.divide(new BigDecimal(hz2.getSampleQuality()), 2, RoundingMode.HALF_UP);
dtoMap.put("monthOkRate", tOkRate2 + "%");
if(!hz2.getSampleQuality().equals("0.00")){
BigDecimal tOkRate2 = (new BigDecimal(hz2.getSampleQuality())
.subtract(new BigDecimal(hz2.getNoOkQuality()))
)
.multiply(new BigDecimal(100))
.divide(new BigDecimal(hz2.getSampleQuality()), 2, RoundingMode.HALF_UP);
dtoMap.put("monthOkRate", tOkRate2 + "%");
}else{
dtoMap.put("monthOkRate", "0%");
}
}
// /**质量看板测试开始**/
// dtoMap.put("todayPro", "3800");

@ -151,6 +151,11 @@ public class QcProCheckServiceImpl implements QcProCheckService {
Map<String,QcCheckTaskDefect> defectMap = qcCheckTaskDefectMapper.getDefectMap(qcCheckTaskDetail);
for (QcCheckTaskDetail qcd : qcCheckTaskDetails) {
if(StringUtils.isNotBlank(qcd.getSampleQuality())){
qcd.setSampleQuality(qcd.getSampleQuality().replaceAll("\\..*", ""));//去掉小数
}
List<BaseFile> files = qmsFileMapper.getBaseFileBatch(qcd.getRecordId());
if (CollectionUtils.isNotEmpty(files)) {
qcd.setFiles(files);
@ -185,7 +190,10 @@ public class QcProCheckServiceImpl implements QcProCheckService {
Map<String,QcCheckTaskDefect> defectMap = qcCheckTaskDefectMapper.getDefectMap(qcCheckTaskDetail);
for (QcCheckTaskDetail qcd : qcCheckTaskDetails) {
qcd.setSampleQuality(qcd.getSampleQuality().replaceAll("\\..*", ""));//去掉小数
if(StringUtils.isNotBlank(qcd.getSampleQuality())){
qcd.setSampleQuality(qcd.getSampleQuality().replaceAll("\\..*", ""));//去掉小数
}
List<BaseFile> files = qmsFileMapper.getBaseFileBatch(qcd.getRecordId());
if (CollectionUtils.isNotEmpty(files)) {

@ -4,6 +4,11 @@ import java.math.BigDecimal;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.Month;
import java.time.YearMonth;
import java.time.format.DateTimeFormatter;
import java.time.format.TextStyle;
import java.util.*;
import java.util.stream.Collectors;
@ -783,6 +788,25 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService {
return qcStaticTableMapper.getProjectList(checkType);
}
@Override
@DS("#header.poolName")
public QcStaticTable getTableHzTitle(QcStaticTable qcStaticTable) {
QcStaticTable dto = new QcStaticTable();
qcStaticTable.setDataType("unqualified_remark");
qcStaticTable.setRemark(qcStaticTable.getCheckType());
List<String> cols1 = qcStaticTableMapper.getTableHzTitle(qcStaticTable);
if(CollectionUtils.isEmpty(cols1)){
return dto;
}
dto.setColumns1(cols1);
// List<String> cols2 = qcStaticTableMapper.getTableHzTitle2(qcStaticTable);
//
// dto.setColumns2(cols2);
return dto;
}
private List<String> getHourProductionTitle(QcStaticTable qcStaticTable) {
// 返回的日期集合
@ -859,8 +883,152 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService {
return days;
}
@Override
@DS("#header.poolName")
public List<HashMap> getTableHzData(QcStaticTable qcStaticTable) {
List<HashMap> dtos = new ArrayList<>();
qcStaticTable.setDataType("unqualified_remark");
qcStaticTable.setRemark(qcStaticTable.getCheckType());
List<String> noOkTyps = qcStaticTableMapper.getTableHzTitle(qcStaticTable);
//第一列日期
List<String> days = this.getHzDays(qcStaticTable.getIncomeTimeStr(),qcStaticTable.getYmdms());
//抽样数、不良数、不良率
Map<String,QcStaticTable> samples = qcStaticTableMapper.getSamplesNum(qcStaticTable);
if(samples.isEmpty()){
return dtos;
}
//不良数
Map<String,QcStaticTable> noOks = qcStaticTableMapper.getNoOkNum(qcStaticTable);
HashMap colMap = null;
for(String col:days){
colMap = new HashMap();
colMap.put("timeCol",col);
String samKey = col;
QcStaticTable sampl = samples.get(samKey);
if(sampl!=null&&!sampl.getSampleQuality().equals("0.00")){
colMap.put("sampleQuality",sampl.getSampleQuality().replaceAll("\\..*", ""));
BigDecimal noOkRate = new BigDecimal(sampl.getNoOkQuality()).multiply(new BigDecimal("100.00"))
.divide(new BigDecimal(sampl.getSampleQuality()),2, BigDecimal.ROUND_HALF_UP);
colMap.put("noOkRate",noOkRate);
}else{
colMap.put("sampleQuality","0");
colMap.put("noOkRate","0");
}
//缺陷不良
for(int i=0;i< noOkTyps.size();i++){
String noOkTyp = noOkTyps.get(i);
String noOkTypeKey = col+noOkTyp;
QcStaticTable noOk = noOks.get(noOkTypeKey);
if(noOk!=null&&noOk.getNoOkQuality()!=null) {
colMap.put("col"+i, noOk.getNoOkQuality().replaceAll("\\..*", ""));
}else{
colMap.put("col"+i, "0");
}
}
dtos.add(colMap);
}
return dtos;
}
@Override
@DS("#header.poolName")
public List<QcStaticTable> getTableHzNoOkData(QcStaticTable qcStaticTable) {
//不良数
List<QcStaticTable> dtos = qcStaticTableMapper.getTableHzNoOkData(qcStaticTable);
BigDecimal totalNoOkQuality = BigDecimal.ZERO;
//求不良数和
for (QcStaticTable dto : dtos) {
totalNoOkQuality = totalNoOkQuality.add(new BigDecimal(dto.getNoOkQuality()));
}
//求占比
for (QcStaticTable dto : dtos) {
BigDecimal noOkratio = new BigDecimal(dto.getNoOkQuality())
.divide(totalNoOkQuality,2, BigDecimal.ROUND_HALF_UP);
dto.setNoOkNumRate(noOkratio.toString());
dto.setNoOkQuality(dto.getNoOkQuality().replaceAll("\\..*", ""));
}
return dtos;
}
/****/
public List<String> getHzDays(String timeStr,String ymd) {
// 返回的日期集合
List<String> days = new ArrayList<String>();
DateFormat dateFormat = null;
try {
Calendar tempStart = null;
Calendar tempEnd = null;
if ("dd".equals(ymd)) {//天内各小时
for (int i = 0; i < 24; i++) {
// 使用String.format()格式化小时,保证每个小时都是两位数
String hourS = String.format("%02d", i);//String.format("%02d:00", i);
days.add(hourS);
}
} else if ("mm".equals(ymd)){//月内各日
int year = Integer.parseInt(timeStr.split("-")[0]);
int month = Integer.parseInt(timeStr.split("-")[1]);
YearMonth yearMonth = YearMonth.of(year, month);
// 获取该月份的第一天
LocalDate firstDayOfMonth = yearMonth.atDay(1);
// 循环直到下一个月的第一天
LocalDate currentDate = firstDayOfMonth;
while (currentDate.getMonthValue() == month) {
// 使用DateTimeFormatter格式化日期为字符串
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String formattedDate = currentDate.format(formatter);
days.add(formattedDate);
// 移动到下一天
currentDate = currentDate.plusDays(1);
}
} else if ("yyyy".equals(ymd)){//
for (Month month : Month.values()) {
// 使用String.format来构造"yyyy-MM"格式的字符串
// %d用于整数年份和月份但月份需要前面补0使用%02d
String formattedMonth = String.format("%d-%02d", Integer.parseInt(timeStr), month.getValue());
days.add(formattedMonth);
}
}
} catch (Exception e) {
e.printStackTrace();
}
return days;
}
public static List<String> getDaysOfMonth(int year, int month) {
List<String> days = new ArrayList<>();
YearMonth yearMonth = YearMonth.of(year, month);
// 获取该月份的第一天
LocalDate firstDayOfMonth = yearMonth.atDay(1);
// 循环直到下一个月的第一天
LocalDate currentDate = firstDayOfMonth;
while (currentDate.getMonthValue() == month) {
// 使用DateTimeFormatter格式化日期为字符串
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String formattedDate = currentDate.format(formatter);
days.add(formattedDate);
// 移动到下一天
currentDate = currentDate.plusDays(1);
}
return days;
}
public static void main(String args[]){
double a = 0.01;
System.out.println(new BigDecimal(a).compareTo(BigDecimal.ZERO));
List<String> months = new ArrayList<>();
for (Month month : Month.values()) {
// 使用String.format来构造"yyyy-MM"格式的字符串
// %d用于整数年份和月份但月份需要前面补0使用%02d
String formattedMonth = String.format("%d-%02d",2024, month.getValue());
months.add(formattedMonth);
}
System.out.println(months);
}
}

@ -39,6 +39,7 @@
<result property="sampleCode" column="sample_code"/>
<result property="orderType" column="order_type"/>
<result property="orderTypeDesc" column="order_type_desc"/>
<result property="remark" column="remark"/>
</resultMap>
<sql id="selectQcCheckTaskIncomeVo">
@ -46,7 +47,7 @@
supplier_code, supplier_name, income_time, check_loc, check_status, check_man_code,
check_man_name, check_time, check_result, status, attr1, attr2, attr3, attr4, create_by,
create_time, update_by, update_time, factory_code, del_flag , check_type,sample_quality, noOk_quality,
order_type,order_type_desc
order_type,order_type_desc,remark
from qc_check_task
</sql>
@ -313,6 +314,7 @@
<if test="cNoOkquality != null">cNoOkquality = #{cNoOkquality},</if>
<if test="incomeBatchNo != null">income_batch_no = #{incomeBatchNo},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="remarkCode != null">remark_code = #{remarkCode},</if>
<if test="reason != null">reason = #{reason},</if>
<if test="bz != null">bz = #{bz},</if>
<if test="cxzz != null">cxzz = #{cxzz},</if>
@ -362,6 +364,7 @@
<if test="orderType != null">order_type,</if>
<if test="orderTypeDesc != null">order_type_desc,</if>
<if test="remark != null">remark,</if>
<if test="remarkCode != null">remark_code,</if>
<if test="reason != null">reason,</if>
<if test="bz != null">bz,</if>
<if test="startOA != null">start_oA,</if>
@ -420,6 +423,7 @@
<if test="orderType != null">#{orderType},</if>
<if test="orderTypeDesc != null">#{orderTypeDesc},</if>
<if test="remark != null">#{remark},</if>
<if test="remarkCode != null">#{remarkCode},</if>
<if test="reason != null">#{reason},</if>
<if test="bz != null">#{bz},</if>
<if test="startOA != null">#{startOA},</if>
@ -458,6 +462,7 @@
<if test="cNoOkquality != null">cNoOkquality = #{cNoOkquality},</if>
<if test="incomeBatchNo != null">income_batch_no = #{incomeBatchNo},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="remarkCode != null">remark_code = #{remarkCode},</if>
<if test="reason != null">reason = #{reason},</if>
<if test="bz != null">bz = #{bz},</if>
<if test="startOA != null">start_oA = #{startOA},</if>
@ -592,6 +597,7 @@
qct.income_time incomeTime,
qct.check_loc checkLoc,
qct.remark,
qct.remark_code remarkCode,
qct.cxzz,
qct.jgy,
qct.pgy
@ -621,6 +627,7 @@
qct.income_time incomeTime,
qct.check_loc checkLoc,
qct.remark,
qct.remark_code remarkCode,
qct.czbjr,
qct.zcf,
qct.zcoemcm,

@ -362,4 +362,52 @@
)t0
where t0.days >= t0.warehouse_cycle
</select>
<insert id="insertQcCheckOaTask" parameterType="OACheckTaskDTO">
insert into qc_check_oa_task
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="recordId != null">record_id,</if>
<if test="applyNo != null">apply_no,</if>
<if test="applicant != null">applicant,</if>
<if test="applyDepartment != null">apply_department,</if>
<if test="applyDate != null">apply_date,</if>
<if test="storeAddress != null">store_address,</if>
<if test="type != null">type,</if>
<if test="checkManCode != null">check_man_code,</if>
<if test="checkManName != null">check_man_name,</if>
<if test="qcManager != null">qc_manager,</if>
<if test="zlManager != null">zl_manager,</if>
<if test="treatmentMan != null">treatment_man,</if>
<if test="taskNum != null">task_num,</if>
status,
<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">factory_code,</if>
<if test="delFlag != null">del_flag,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="recordId != null">#{recordId},</if>
<if test="applyNo != null">#{applyNo},</if>
<if test="applicant != null">#{applicant},</if>
<if test="applyDepartment != null">#{applyDepartment},</if>
<if test="applyDate != null">#{applyDate},</if>
<if test="storeAddress != null">#{storeAddress},</if>
<if test="type != null">#{type},</if>
<if test="checkManCode != null">#{checkManCode},</if>
<if test="checkManName != null">#{checkManName},</if>
<if test="qcManager != null">#{qcManager},</if>
<if test="zlManager != null">#{zlManager},</if>
<if test="treatmentMan != null">#{treatmentMan},</if>
<if test="taskNum != null">#{taskNum},</if>
'0',
<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>
</trim>
</insert>
</mapper>

@ -180,7 +180,15 @@
from qc_check_task_detail qctd
left join qc_check_task qct on qctd.belong_to = qct.record_id
where qct.type_code = #{typeCode} and qctd.status = 'N'
and CONVERT(varchar(10),qct.income_time, 120) = SUBSTRING(#{ymd},0,11)
<if test='ymdType=="yyyy"'>
and CONVERT(varchar(4),qct.income_time, 120) = SUBSTRING(#{ymd},0,5)
</if>
<if test='ymdType=="mm"'>
and CONVERT(varchar(7),qct.income_time, 120) = SUBSTRING(#{ymd},0,8)
</if>
<if test='ymdType=="dd"'>
and CONVERT(varchar(10),qct.income_time, 120) = SUBSTRING(#{ymd},0,11)
</if>
order by qctd.update_time desc
</select>
<select id="getProduceHz" resultType="com.op.quality.domain.QcInterface">

@ -490,4 +490,124 @@
where qctd.del_flag = '0' and qct.order_no = #{orderNo}
GROUP by qctd.belong_to,qctd.belong_to_detail
</select>
<select id="getTableHzTitle" resultType="java.lang.String">
select dict_label from base_dict_data
where dict_type = #{dataType}
and remark = #{remark} order by dict_sort
</select>
<select id="getTableHzTitle2" resultType="java.lang.String">
select defect_subclass from qc_defect_type where defect_type = #{typeCode} and del_flag = '0'
</select>
<select id="getSamplesNum" resultType="com.op.quality.domain.QcStaticTable">
<if test="ymdms == 'yyyy'">
select sum(sample_quality) sampleQuality,
sum(noOk_quality) noOkQuality,
ymdms
FROM(
select CONVERT(varchar(7),qct.create_time, 120) AS ymdms, qct.sample_quality, qct.noOk_quality
from qc_check_task qct
where check_type = #{checkType}
and CONVERT(varchar(4),qct.create_time, 120) = #{incomeTimeStr}
and del_flag = '0'
) t
group by ymdms
</if>
<if test="ymdms == 'mm'">
select sum(sample_quality) sampleQuality,
sum(noOk_quality) noOkQuality,
ymdms
FROM(
select CONVERT(varchar(10),qct.create_time, 120) AS ymdms, qct.sample_quality, qct.noOk_quality
from qc_check_task qct
where check_type = #{checkType}
and CONVERT(varchar(7),qct.create_time, 120) = #{incomeTimeStr}
and del_flag = '0'
) t
group by ymdms
</if>
<if test="ymdms == 'dd'">
select sum(sample_quality) sampleQuality,
sum(noOk_quality) noOkQuality,
RIGHT('00' + CAST(ymdms AS VARCHAR(2)), 2) ymdms
FROM(
select DATEPART(HOUR, qct.create_time) AS ymdms, qct.sample_quality, qct.noOk_quality
from qc_check_task qct
where check_type = #{checkType}
and CONVERT(varchar(10),qct.create_time, 120) = #{incomeTimeStr}
and del_flag = '0'
) t
group by ymdms
</if>
</select>
<select id="getNoOkNum" resultType="com.op.quality.domain.QcStaticTable">
<if test="ymdms == 'yyyy'">
select sum(noOk_quality) noOkQuality,
concat(hourName,dict_label) ymdUntype
FROM(
select CONVERT(varchar(7),qct.create_time, 120) AS hourName,
qct.noOk_quality,
bdd.dict_label
from qc_check_task qct
left join base_dict_data bdd on bdd.dict_type = 'unqualified_remark' and qct.remark_code = dict_value
where qct.check_type = #{checkType} and qct.check_status = '2'
and CONVERT(varchar(4),qct.create_time, 120) = #{incomeTimeStr}
and del_flag = '0' and bdd.dict_label is not null
) t
group by hourName,dict_label
</if>
<if test="ymdms == 'mm'">
select sum(noOk_quality) noOkQuality,
concat(hourName,dict_label) ymdUntype
FROM(
select CONVERT(varchar(10),qct.create_time, 120) AS hourName,
qct.noOk_quality,
bdd.dict_label
from qc_check_task qct
left join base_dict_data bdd on bdd.dict_type = 'unqualified_remark' and qct.remark_code = dict_value
where qct.check_type = #{checkType} and qct.check_status = '2'
and CONVERT(varchar(7),qct.create_time, 120) = #{incomeTimeStr}
and del_flag = '0' and bdd.dict_label is not null
) t
group by hourName,dict_label
</if>
<if test="ymdms == 'dd'">
select sum(noOk_quality) noOkQuality,
concat(hourName,dict_label) ymdUntype
FROM(
select RIGHT('00' + CAST(DATEPART(HOUR, qct.create_time) AS VARCHAR(2)), 2) AS hourName,
qct.noOk_quality,
bdd.dict_label
from qc_check_task qct
left join base_dict_data bdd on bdd.dict_type = 'unqualified_remark' and qct.remark_code = dict_value
where qct.check_type = #{checkType} and qct.check_status = '2'
and CONVERT(varchar(10),qct.create_time, 120) = #{incomeTimeStr}
and del_flag = '0' and bdd.dict_label is not null
) t
group by hourName,dict_label
</if>
</select>
<select id="getTableHzNoOkData" resultType="com.op.quality.domain.QcStaticTable">
select * from (
select sum(t.noOk_quality) noOkQuality,
t.dict_label dataType
FROM(
select
qct.noOk_quality,qct.sample_quality,
bdd.dict_label
from qc_check_task qct
left join base_dict_data bdd on bdd.dict_type = 'unqualified_remark' and qct.remark_code = dict_value
where qct.check_type = #{checkType} and qct.check_status = '2'
<if test="ymdms == 'yyyy'">and CONVERT(varchar(4),qct.create_time, 120) = #{incomeTimeStr}
</if>
<if test="
ymdms == 'mm'">and CONVERT(varchar(7),qct.create_time, 120) = #{incomeTimeStr}
</if>
<if test="ymdms == 'dd'">
and CONVERT(varchar(10),qct.create_time, 120) = #{incomeTimeStr}
</if>
and del_flag = '0' and qct.remark_code is not null
) t
group by t.dict_label
) t0 order by noOkQuality desc
</select>
</mapper>

@ -4,6 +4,7 @@ import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.baomidou.dynamic.datasource.annotation.DS;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
@ -49,6 +50,13 @@ public class SysDictDataController extends BaseController {
return getDataTable(list);
}
@GetMapping("/getDictData")
@DS("#header.poolName")
public AjaxResult getDict(SysDictData dictData) {
List<SysDictData> list = dictDataService.getDictDataList(dictData);
return success(list);
}
@Log(title = "字典数据", businessType = BusinessType.EXPORT)
@RequiresPermissions("system:dict:export")
@PostMapping("/export")

@ -92,4 +92,6 @@ public interface SysDictDataMapper {
* @return
*/
public int updateDictDataType(@Param("oldDictType") String oldDictType, @Param("newDictType") String newDictType);
List<SysDictData> getDictDataList(SysDictData dictData);
}

@ -57,4 +57,6 @@ public interface ISysDictDataService {
* @return
*/
public int updateDictData(SysDictData dictData);
List<SysDictData> getDictDataList(SysDictData dictData);
}

@ -99,4 +99,9 @@ public class SysDictDataServiceImpl implements ISysDictDataService {
}
return row;
}
@Override
public List<SysDictData> getDictDataList(SysDictData dictData) {
return dictDataMapper.getDictDataList(dictData);
}
}

@ -41,6 +41,36 @@
order by dict_sort asc
</select>
<select id="getDictDataList" parameterType="SysDictData" resultMap="SysDictDataResult">
select
CONCAT(dict_label,'[',dict_value,']') AS dict_label,
dict_code,
dict_sort,
dict_value,
dict_type,
status,
remark
from base_dict_data
<where>
<if test="dictType != null and dictType != ''">
AND dict_type = #{dictType}
</if>
<if test="dictLabel != null and dictLabel != ''">
AND dict_label like concat('%', #{dictLabel}, '%')
</if>
<if test="dictValue != null and dictValue != ''">
AND dict_value = #{dictValue}
</if>
<if test="status != null and status != ''">
AND status = #{status}
</if>
<if test="remark != null and remark != ''">
AND remark like concat('%', #{remark}, '%')
</if>
</where>
order by dict_sort asc
</select>
<select id="selectDictDataByType" parameterType="SysDictData" resultMap="SysDictDataResult">
<include refid="selectDictDataVo"/>
where status = '0' and dict_type = #{dictType} order by dict_sort asc

@ -44,12 +44,7 @@ public class BaseDictDataController extends BaseController {
List<SysDictData> list = dictDataService.selectDictDataList(dictData);
return getDataTable(list);
}
@GetMapping("/getDictData")
@DS("#header.poolName")
public AjaxResult getDict(SysDictData dictData) {
List<SysDictData> list = dictDataService.getDictDataList(dictData);
return success(list);
}
@Log(title = "字典数据", businessType = BusinessType.EXPORT)
@RequiresPermissions("factory:dict:export")

@ -49,7 +49,11 @@ public class OdsProcureOrderController extends BaseController {
List<OdsProcureOrder> list = odsProcureOrderService.selectOdsProcureOrderList(odsProcureOrder);
return getDataTable(list);
}
/**获取标识卡**/
@PostMapping("/getIdCardList")
public List<ProOrderWorkorder> getIdCardList(@RequestBody OdsProcureOrder odsProcureOrder) {
return odsProcureOrderService.getIdCardList(odsProcureOrder);
}
/**
*
*/

@ -301,13 +301,20 @@ public class WmsToWCSmissionController {
return AjaxResult.success(wmsProductPutService.WmsProductPutByWorkOrderquery(wmsProductPut));
}
/**
*
*
* ---
*/
@PostMapping("/WmsProductPutByWorkOrderqueryBS")
public AjaxResult WmsProductPutByWorkOrderqueryBS(@RequestBody WmsProductPut wmsProductPut) {
return AjaxResult.success(wmsProductPutService.WmsProductPutByWorkOrderqueryBS(wmsProductPut));
WmsProductPut wmsProductPut1= wmsProductPutService.WmsProductPutByWorkOrderqueryBS(wmsProductPut);
if (wmsProductPut1==null) {
return AjaxResult.error("标识卡未绑定");
}
return AjaxResult.success(wmsProductPut1);
}
/**
*
*
@ -316,6 +323,14 @@ public class WmsToWCSmissionController {
public AjaxResult WmsProductPutByWorkOrderConfirm(@RequestBody WmsProductPut wmsProductPut) {
return AjaxResult.success(wmsProductPutService.WmsProductPutByWorkOrderConfirm(wmsProductPut));
}
/**
*
*
*/
@PostMapping("/WmsProductPutByWorkOrderConfirmT")
public AjaxResult WmsProductPutByWorkOrderConfirmT(@RequestBody WmsProductPut wmsProductPut) {
return AjaxResult.success(wmsProductPutService.WmsProductPutByWorkOrderConfirmT(wmsProductPut));
}
/**
@ -644,6 +659,15 @@ public class WmsToWCSmissionController {
Integer result= wmsProductPutService.finishedProductProductionRecords(proOrderWorkorder);
return success(result);
}
/**
*
*
*/
@PostMapping("/finishedProductProductionRecordscar")
public AjaxResult finishedProductProductionRecordscar(@RequestBody ProOrderWorkorder proOrderWorkorder) {
ProOrderWorkorder proOrderWorkorder1= wmsProductPutService.finishedProductProductionRecordscar(proOrderWorkorder);
return AjaxResult.success(proOrderWorkorder1);
}
// //查询--成品生产记录
// @PostMapping("/selectProductProductionRecords")
// public AjaxResult selectProductProductionRecords(@RequestBody WmsProductProductionRecords wmsProductProductionRecords) {

@ -185,6 +185,33 @@ public class ProOrderWorkorder extends TreeEntity {
private String prodType;
@Excel(name = "托盘")
private String sn;
private String attribute1 ;
private String attribute2;
private String attribute3;
public String getAttribute1() {
return attribute1;
}
public void setAttribute1(String attribute1) {
this.attribute1 = attribute1;
}
public String getAttribute2() {
return attribute2;
}
public void setAttribute2(String attribute2) {
this.attribute2 = attribute2;
}
public String getAttribute3() {
return attribute3;
}
public void setAttribute3(String attribute3) {
this.attribute3 = attribute3;
}
public String getProdLineName() {
return prodLineName;

@ -93,5 +93,5 @@ public interface BaseDictDataMapper {
*/
public int updateDictDataType(@Param("oldDictType") String oldDictType, @Param("newDictType") String newDictType);
List<SysDictData> getDictDataList(SysDictData dictData);
}

@ -70,4 +70,6 @@ public interface OdsProcureOrderMapper {
List<OdsProcureOrder> selectOdsProcureOrderAlreadyReaderList(OdsProcureOrder odsProcureOrder);
void updateOdsProcureOrderByProcureCode(OdsProcureOrder odsProcureOrder);
List<OdsProcureOrder> getIdCardList(OdsProcureOrder odsProcureOrder);
}

@ -79,6 +79,8 @@ public interface WmsProductPutMapper {
WmsProductPut WmsProductPutByWorkOrderqueryBS(WmsProductPut wmsProductPut);
WmsProductPut selectProOrderWorkorderBatchPallet(WmsProductPut wmsProductPut);
// String selectWmsProductPutNum(wmsReportWork wmsReportWork);
}

@ -59,5 +59,4 @@ public interface IBaseDictDataService {
*/
public int updateDictData(SysDictData dictData);
List<SysDictData> getDictDataList(SysDictData dictData);
}

@ -111,4 +111,6 @@ public interface IOdsProcureOrderService {
OrderLine addPurchaseOrderOutboundfc(OrderLine orderLine);
void OutboundPostingSAPfc(List<OdsProcureOutOrder> orderList);
List<ProOrderWorkorder> getIdCardList(OdsProcureOrder odsProcureOrder);
}

@ -140,4 +140,8 @@ public interface IWmsProductPutService {
List<WmsProductProductionRecords> selectProductProductionRecords(WmsProductProductionRecords wmsProductProductionRecords);
WmsProductPut WmsProductPutByWorkOrderqueryBS(WmsProductPut wmsProductPut);
ProOrderWorkorder finishedProductProductionRecordscar(ProOrderWorkorder proOrderWorkorder);
String WmsProductPutByWorkOrderConfirmT(WmsProductPut wmsProductPutList);
}

@ -30,10 +30,7 @@ public class BaseDictDataServiceImpl implements IBaseDictDataService {
return dictDataMapper.selectDictDataList(dictData);
}
@Override
public List<SysDictData> getDictDataList(SysDictData dictData) {
return dictDataMapper.getDictDataList(dictData);
}
/**
*

@ -73,6 +73,8 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
@Autowired
private BaseWarehouseMapper baseWarehouseMapper;
@Autowired
private WmsRawOrderInMapper wmsRawOrderInMapper;
@Autowired
private RemoteOpenService remoteOpenService;
/**
@ -760,8 +762,28 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
R result2 = remoteSapService.temporarilyCollected(mapList);
int code = result2.getCode();
if (code == 200){//成功
order.setSapTempStatus("1");//0是失败。1是成功
order.setSapTempInfor(result2.getMsg());
WmsRawOrderIn wmsRawOrderIn=new WmsRawOrderIn();
wmsRawOrderIn.setRawOrderInId(IdUtils.fastSimpleUUID());
wmsRawOrderIn.setFactoryCode(odsProcureOrder.getFactoryCode());
wmsRawOrderIn.setDnNo(order.getReceiptNoCode());
wmsRawOrderIn.setPoNo(order.getProcureCode());
wmsRawOrderIn.setPoLine(order.getUserDefined3());
wmsRawOrderIn.setMaterialCode(order.getMaterialCode());
wmsRawOrderIn.setMaterialDesc(order.getMaterialDesc());
wmsRawOrderIn.setRequestAmount(amount);
wmsRawOrderIn.setUnit(order.getUnit());
wmsRawOrderIn.setRequestTime(new Date());
wmsRawOrderIn.setOrderStatus("0");//暂收
wmsRawOrderIn.setActiveFlag("1");
wmsRawOrderIn.setSupplyCode(order.getSupplierCode());
wmsRawOrderIn.setUserDefined1(result2.getMsg());
wmsRawOrderIn.setSapFactoryCode(odsProcureOrder.getFactoryCode());
wmsRawOrderIn.setCreateBy(odsProcureOrder.getCreateBy());
wmsRawOrderInMapper.insertWmsRawOrderIn(wmsRawOrderIn);
order.setSapTempStatus("1");//0是失败。1是成功
odsProcureOrderMapper.updateOdsProcureOrder(order);
for (WmsRawOrderInSn wmsRawOrderInSn:wmsRawOrderInSns){
//收货
@ -788,6 +810,7 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
wmsOdsEmStorageNews.setWlCode(wmsRawOrderInSn.getWlCode());//库位编码
wmsOdsEmStorageNews.setWaCode(wmsRawOrderInSn.getWaCode());//库位编码
wmsOdsEmStorageNews.setMaterialCode(wmsRawOrderInSn.getMaterialCode());
wmsOdsEmStorageNews.setUserDefined2(formattedDate);//批次
wmsOdsEmStorageNews.setAmount(wmsRawOrderInSn.getAmount());
//添加库存--这个要有个判断有没有这个库存如果没有的话,就插入
WmsOdsMateStorageNews wmsOdsMateStorageNews = wmsOdsMateStorageNewsMapper.selectByWhCodeAndMate(wmsOdsEmStorageNews);
@ -814,6 +837,8 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
}
wmsRawOrderInSnMapper.updateU1Byid(wmsRawOrderInSn);//入库
}
}else {////失败|
result="暂收失败";
order.setSapTempInfor(result2.getMsg());
@ -1044,6 +1069,18 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
}
}
@Override
public List<ProOrderWorkorder> getIdCardList(OdsProcureOrder odsProcureOrder) {
List<OdsProcureOrder> orderList= odsProcureOrderMapper.getIdCardList(odsProcureOrder);
return null;
}
public String DesignatedPalletOutboundWCS(WMSDesignatedPalle wmsDesignatedPalle) {
// 定义请求的URL地址
String url = "http://192.168.202.37:9001/api/v1/ReceiveMesMsg/packingMaterialsOutBoundByPallet";

@ -1041,9 +1041,194 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService {
wmsProductPut.setAttribute2(attribute2);
wmsProductPut.setAttribute3(attribute3);
WmsProductPut wmsProductPut1 = wmsProductPutMapper.WmsProductPutByWorkOrderqueryBS(wmsProductPut);
WmsProductPut wmsProductPut2 =new WmsProductPut();
wmsProductPut2.setWorkOrder(attribute1);
wmsProductPut2.setBatchNumber(attribute2);
wmsProductPut2.setPallet(attribute3);
WmsProductPut wmsProductPut3= wmsProductPutMapper.selectProOrderWorkorderBatchPallet(wmsProductPut2);
//wmsProductPut.setProductCode(wmsProductPut3.getProductCode());
// wmsProductPut.setProductName(wmsProductPut3.getProductName());
// wmsProductPut.setUnitOfMeasure(wmsProductPut3.getAttr5());
wmsProductPut1.setNumber(wmsProductPut3.getAttr3());
//获取托盘信息--首先要他们有绑定数据
WmsProductProductionRecords wmsProductProductionRecord=new WmsProductProductionRecords();
wmsProductProductionRecord.setUserDefined1(wmsProductPut.getPallet());
List<WmsProductProductionRecords> wmsProductProductionRecords= wmsProductPutRecordsMapper.selectProductProductionRecords(wmsProductProductionRecord);
if (wmsProductProductionRecords.size()>0){
WmsProductProductionRecords wmsProductProductionRecords1= wmsProductProductionRecords.get(0);
wmsProductPut1.setSn(wmsProductProductionRecords1.getSn());
WmsProductPutRecords wmsProductPutRecords=new WmsProductPutRecords();
wmsProductPutRecords.setUserDefined1(wmsProductPut.getPallet());
List<WmsProductPutRecords> wmsProductPutRecords1= wmsProductPutRecordsMapper.selectWmsProductPutRecordsList(wmsProductPutRecords);
if(wmsProductPutRecords1.size()>0){
wmsProductPut1.setRemark("1");//已经入库
wmsProductPut1.setNumber(wmsProductPutRecords1.get(0).getNumber());
}else {
wmsProductPut1.setRemark("0");//未入库
}
}else {
//他们又不想在成品下线的时候绑托盘,--让标识卡代替托盘码,如果没有绑的话,就标识卡代替托盘码
wmsProductPut1.setSn(wmsProductPut.getPallet());
WmsProductPutRecords wmsProductPutRecords=new WmsProductPutRecords();
wmsProductPutRecords.setUserDefined1(wmsProductPut.getPallet());
List<WmsProductPutRecords> wmsProductPutRecords1= wmsProductPutRecordsMapper.selectWmsProductPutRecordsList(wmsProductPutRecords);
if(wmsProductPutRecords1.size()>0){
wmsProductPut1.setRemark("1");//已经入库
wmsProductPut1.setNumber(wmsProductPutRecords1.get(0).getNumber());
}else {
wmsProductPut1.setRemark("0");//未入库
}
// return null;
}
if (wmsProductPut1.getAttr3()==null){
wmsProductPut1.setAttr3(wmsProductPut1.getPlanQuantity().toString());
}
wmsProductPut1.setPallet(wmsProductPut.getPallet());
return wmsProductPut1;
}
@Override
public ProOrderWorkorder finishedProductProductionRecordscar(ProOrderWorkorder proOrderWorkorder) {
DynamicDataSourceContextHolder.push("ds_" + proOrderWorkorder.getFactoryCode());
String[] attributes = proOrderWorkorder.getAttr1().split("-");
// 通过索引访问分割后的数组,获取所需的三个属性
String attribute1 = attributes[0]; // 获取第一个属性
String attribute2 = attributes[1]; // 获取第二个属性
String attribute3 = attributes[2]; // 获取第三个属性
proOrderWorkorder.setWorkorderCodeSap(attribute1);
proOrderWorkorder.setBatchCode(attribute2);
WmsProductPut wmsProductPut =new WmsProductPut();
wmsProductPut.setWorkOrder(attribute1);
wmsProductPut.setBatchNumber(attribute2);
wmsProductPut.setPallet(attribute3);
WmsProductPut wmsProductPut1= wmsProductPutMapper.selectProOrderWorkorderBatchPallet(wmsProductPut);
proOrderWorkorder.setQuantity(wmsProductPut1.getAttr3());
proOrderWorkorder.setProdLineCode(wmsProductPut1.getAttr4());
proOrderWorkorder.setProductCode(wmsProductPut1.getProductCode());
proOrderWorkorder.setProductName(wmsProductPut1.getProductName());
// proOrderWorkorder.setAttribute3(attribute3);
return proOrderWorkorder;
}
@Override
public String WmsProductPutByWorkOrderConfirmT(WmsProductPut wmsProductPut) {
// whCode
// waCode
// factoryCode
DynamicDataSourceContextHolder.push("ds_" + wmsProductPut.getFactoryCode());
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
Date date = new Date();
String formattedDate = dateFormat.format(date);//批次
List<WmsProductPut> wmsProductPutList = wmsProductPut.getWmsProductPut();//前端下栏保存的数据
String SUCCESS = "操作成功";
for (WmsProductPut wmsProductPut1 :
wmsProductPutList) {
//根据下面的记录--先查询对应订单,如果有原来的订单的话,就在原来的订单上进行修改,如果没有就先插入,如果有就修改数量
WmsProductPut wmsProductPutk = new WmsProductPut();
//wms_product_put
wmsProductPutk.setWorkOrder(wmsProductPut1.getWorkOrder());
wmsProductPutk.setProductOrder(wmsProductPut1.getProductOrder());
wmsProductPutk.setFactoryCode(wmsProductPut.getFactoryCode());
wmsProductPutk.setWhCode(wmsProductPut1.getWhCode());//仓库编码
wmsProductPutk.setWaCode(wmsProductPut1.getWaCode());//仓库编码
wmsProductPutk.setProductName(wmsProductPut1.getProductName());
wmsProductPutk.setProductCode(wmsProductPut1.getProductCode());
wmsProductPutk.setPlanQuantity(wmsProductPut1.getPlanQuantity());
wmsProductPutk.setUnitOfMeasure(wmsProductPut1.getUnitOfMeasure());
wmsProductPutk.setBatchNumber(wmsProductPut1.getBatchNumber());//
List<WmsProductPut> wmsProductPutLists= wmsProductPutMapper.selectWmsProductPutList(wmsProductPutk);
if (wmsProductPutLists.size()>0){//有
WmsProductPut wmsProductPut2= wmsProductPutLists.get(0);
BigDecimal planQuantity= wmsProductPut2.getPlanQuantity();
BigDecimal putQuantity= wmsProductPut2.getPutQuantity();
if (planQuantity.equals(putQuantity.add(new BigDecimal(wmsProductPut1.getNumber())))){
wmsProductPutk.setStatus("1");
}else {
wmsProductPutk.setStatus("2");
}
BigDecimal putQuantityT=putQuantity.add(new BigDecimal(wmsProductPut1.getNumber()));//入库数量
wmsProductPut2.setPutQuantity(putQuantityT);
wmsProductPut2.setUpdateTime(new Date());
wmsProductPut2.setUpdateBy(wmsProductPut.getCreateBy());
wmsProductPutMapper.updateWmsProductPut(wmsProductPut2);
}else {
wmsProductPutk.setStatus("2");
wmsProductPutk.setSapStatus("0");
wmsProductPutk.setAttr3(formattedDate);//
wmsProductPutk.setCreateBy(wmsProductPut.getCreateBy());
wmsProductPutk.setCreateTime(new Date());
wmsProductPutk.setPutQuantity(new BigDecimal(wmsProductPut1.getNumber()));
wmsProductPutk.setId(IdUtils.fastSimpleUUID());
wmsProductPutMapper.insertWmsProductPut(wmsProductPutk);
}
WmsProductPutRecords wmsProductPutRecords = new WmsProductPutRecords();
wmsProductPutRecords.setWorkOrder(wmsProductPut1.getWorkOrder());
wmsProductPutRecords.setProductOrder(wmsProductPut1.getProductOrder());
wmsProductPutRecords.setProductName(wmsProductPut1.getProductName());
wmsProductPutRecords.setProductCode(wmsProductPut1.getProductCode());
wmsProductPutRecords.setWhCode(wmsProductPut1.getWhCode());//仓库编码
wmsProductPutRecords.setWaCode(wmsProductPut1.getWaCode());//库区编码
wmsProductPutRecords.setId(IdUtils.fastSimpleUUID());
wmsProductPutRecords.setWlCode(wmsProductPut1.getWlCode());
wmsProductPutRecords.setSn(wmsProductPut1.getSn());
wmsProductPutRecords.setNumber(wmsProductPut1.getNumber());
wmsProductPutRecords.setCreateBy(wmsProductPut.getCreateBy());
wmsProductPutRecords.setCreateTime(new Date());
wmsProductPutRecords.setUserDefined1(wmsProductPut1.getPallet());
wmsProductPutRecordsMapper.insertWmsProductPutRecords(wmsProductPutRecords);
//wms_fp_storage_news_sn
WmsFpStorageNewsSn wmsFpStorageNewsSn = new WmsFpStorageNewsSn();
wmsFpStorageNewsSn.setStorageId(IdUtils.fastSimpleUUID());
wmsFpStorageNewsSn.setFactoryCode(wmsProductPut.getFactoryCode());
wmsFpStorageNewsSn.setWhCode(wmsProductPut1.getWhCode());//仓库编码
wmsFpStorageNewsSn.setWaCode(wmsProductPut1.getWaCode());
wmsFpStorageNewsSn.setWlCode(wmsProductPut1.getWlCode());
wmsFpStorageNewsSn.setOrderNo(wmsProductPutk.getId());
wmsFpStorageNewsSn.setProductCode(wmsProductPut1.getProductCode());
wmsFpStorageNewsSn.setProductName(wmsProductPut1.getProductName());
wmsFpStorageNewsSn.setSn(wmsProductPut1.getSn());
wmsFpStorageNewsSn.setAmount(new BigDecimal(wmsProductPut1.getNumber()));
wmsFpStorageNewsSn.setBatchNumber(wmsProductPut1.getBatchNumber());
//wmsFpStorageNewsSn.setUserDefined2(formattedDate);
wmsFpStorageNewsSn.setCreateBy(wmsProductPut.getCreateBy());
wmsFpStorageNewsSn.setCreateTime(new Date());
wmsFpStorageNewsSn.setActiveFlag("1");
wmsFpStorageNewsSn.setUserDefined3(wmsProductPut1.getUnitOfMeasure());
wmsFpStorageNewsSnMapper.insertWmsFpStorageNewsSn(wmsFpStorageNewsSn);
// wms_fp_storage_news
WmsFpStorageNews wmsFpStorageNews = new WmsFpStorageNews();
wmsFpStorageNews.setWhCode(wmsProductPut1.getWhCode());//仓库编码
wmsFpStorageNews.setWaCode(wmsProductPut1.getWaCode());
wmsFpStorageNews.setWlCode(wmsProductPut1.getWlCode());
wmsFpStorageNews.setStorageType("成品");
wmsFpStorageNews.setProductCode(wmsProductPut1.getProductCode());
wmsFpStorageNews.setProductName(wmsProductPut1.getProductName());
wmsFpStorageNews.setFactoryCode(wmsProductPut.getFactoryCode());
wmsFpStorageNews.setActiveFlag("1");
wmsFpStorageNews.setProductBatch(wmsProductPut1.getBatchNumber());
wmsFpStorageNews.setUserDefined1(wmsProductPut1.getUnitOfMeasure());
List<WmsFpStorageNews> wmsFpStorageNewsList = wmsFpStorageNewsMapper.selectWmsFpStorageNewsList(wmsFpStorageNews);
wmsFpStorageNews.setStorageId(IdUtils.fastSimpleUUID());
wmsFpStorageNews.setAmount(new BigDecimal(wmsProductPut1.getNumber()));
wmsFpStorageNews.setCreateBy(wmsProductPut.getCreateBy());
wmsFpStorageNews.setGmtCreate(new Date());
if (wmsFpStorageNewsList.size() > 0) {
WmsFpStorageNews wmsFpStorageNews1 = wmsFpStorageNewsList.get(0);
BigDecimal amount = wmsFpStorageNews1.getAmount();
BigDecimal amountAdd = amount.add(wmsFpStorageNews.getAmount());
wmsFpStorageNews1.setAmount(amountAdd);
wmsFpStorageNewsMapper.updateWmsFpStorageNews(wmsFpStorageNews1);
} else {
wmsFpStorageNewsMapper.insertWmsFpStorageNews(wmsFpStorageNews);
}
}
return SUCCESS;
}
@Override
public List<WmsRuturnPutEmbryo> FinishedProductSalesReturn(WmsRuturnPutEmbryo wmsRuturnPutEmbryo) {
DynamicDataSourceContextHolder.push("ds_" + wmsRuturnPutEmbryo.getFactoryCode());

@ -41,36 +41,6 @@
order by dict_sort asc
</select>
<select id="getDictDataList" parameterType="SysDictType" resultMap="SysDictTypeResult">
select
CONCAT(dict_label,'[',dict_value,']') AS dict_label,
dict_code,
dict_sort,
dict_value,
dict_type,
status,
remark
from base_dict_data
<where>
<if test="dictType != null and dictType != ''">
AND dict_type = #{dictType}
</if>
<if test="dictLabel != null and dictLabel != ''">
AND dict_label like concat('%', #{dictLabel}, '%')
</if>
<if test="dictValue != null and dictValue != ''">
AND dict_value = #{dictValue}
</if>
<if test="status != null and status != ''">
AND status = #{status}
</if>
<if test="remark != null and remark != ''">
AND remark like concat('%', #{remark}, '%')
</if>
</where>
order by dict_sort asc
</select>
<select id="selectDictDataByType" parameterType="SysDictType" resultMap="SysDictTypeResult">
<include refid="selectDictDataVo"/>

@ -80,6 +80,7 @@
<if test="enterpriseId != null and enterpriseId != ''">and Enterprise_Id = #{enterpriseId}</if>
<if test="enterpriseCode != null and enterpriseCode != ''">and Enterprise_Code = #{enterpriseCode}</if>
</where>
order by Create_Date desc
</select>
<select id="selectOdsProcureOrderByID" parameterType="String" resultMap="OdsProcureOrderResult">
@ -249,5 +250,7 @@
and Active= #{Active}
</select>
<select id="getIdCardList">
</select>
</mapper>

@ -214,6 +214,7 @@
<select id="selectByWhCodeAndMate" resultMap="WmsOdsMateStorageNewsResult">
select storage_id, wh_code, region_code, wa_code, storage_type, wl_code, material_code, material_desc, amount, storage_amount, occupy_amount, lpn, product_batch, receive_date, product_date, 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, wl_name from wms_ods_mate_storage_news
where wh_code=#{whCode} and wl_code=#{wlCode} and wa_code=#{waCode} and material_code=#{materialCode}
<if test="userDefined2 != null">and user_defined2 = #{userDefined2}</if>
</select>
<select id="selectBaseProductByCode" resultMap="WmsOdsMateStorageNewsResult">
select DISTINCT material_desc,user_defined1

@ -386,33 +386,50 @@
</update>
<select id="WmsProductPutByWorkOrderqueryBS" resultMap="WmsProductPutResult">
SELECT
mes_report_work.report_code work_order,
pro_order_workorder.workorder_code work_order,
pro_order_workorder.workorder_code_sap product_order,
mes_report_work.product_code,
mes_report_work.product_name,
mes_report_work.unit unit_of_measure,
mes_report_work.batch batch_number,
mes_report_work.quantity plan_quantity,
( mes_report_work.quantity- put.put_quantity ) attr3
pro_order_workorder.product_code,
pro_order_workorder.product_name,
pro_order_workorder.unit unit_of_measure,
pro_order_workorder_batch.batch_code batch_number,
pro_order_workorder_batch.batch_quantity plan_quantity,
( pro_order_workorder_batch.batch_quantity- put.put_quantity ) attr3
FROM
pro_order_workorder
LEFT JOIN mes_report_work ON pro_order_workorder.workorder_code = mes_report_work.workorder_code
LEFT JOIN pro_order_workorder_batch ON pro_order_workorder.workorder_id = pro_order_workorder_batch.workorder_id
LEFT JOIN (
SELECT SUM
( wms_product_put.put_quantity ) AS put_quantity,
wms_product_put.work_order AS work_order,
wms_product_put.batch_number AS batch_number,
wms_product_put.product_code AS product_code
FROM
wms_product_put
GROUP BY
wms_product_put.work_order,
wms_product_put.batch_number,
wms_product_put.product_code
) put ON put.work_order= mes_report_work.report_code
) put ON put.batch_number= pro_order_workorder_batch.batch_code
AND put.product_code= pro_order_workorder.workorder_code_sap
WHERE
pro_order_workorder.workorder_code_sap=#{attribute1}
AND mes_report_work.batch=#{attribute2}
AND mes_report_work.parent_order = '0'
</select>
pro_order_workorder.workorder_code_sap= #{attribute1}
AND pro_order_workorder_batch.batch_code= #{attribute2}
AND pro_order_workorder_batch.del_flag = '0'
</select>
<select id="selectProOrderWorkorderBatchPallet" resultMap="WmsProductPutResult">
SELECT
pro_order_workorder_batch_pallet.quantity AS attr3,
pro_order_workorder.workorder_name AS attr4,
pro_order_workorder.product_code,
pro_order_workorder.product_name,
pro_order_workorder.unit AS attr5
FROM
pro_order_workorder_batch_pallet
LEFT JOIN pro_order_workorder ON pro_order_workorder.workorder_code_sap= pro_order_workorder_batch_pallet.workorder_code
WHERE
pro_order_workorder_batch_pallet.workorder_code= #{workOrder}
AND pro_order_workorder_batch_pallet.batch_code= #{batchNumber}
AND pro_order_workorder_batch_pallet.pallet_num= #{pallet}
</select>
</mapper>

@ -240,5 +240,6 @@
<if test="productDate != null ">and product_date= #{productDate}</if>
<if test="siteCode != null and siteCode != ''">and siteCode = #{siteCode}</if>
</where>
order by create_time desc
</select>
</mapper>

Loading…
Cancel
Save