修改扫码

main
ljh 2024-07-16 23:22:15 +08:00
parent c77fd31e14
commit 8a5779d01d
6 changed files with 209 additions and 73 deletions

View File

@ -176,6 +176,15 @@ public class PrintCodeDetailService : IDynamicApiController, ITransient
return await _rep.AsQueryable().Where(a => !a.IsDelete && a.Code.Contains(productCode)).ToListAsync(); return await _rep.AsQueryable().Where(a => !a.IsDelete && a.Code.Contains(productCode)).ToListAsync();
} }
[HttpGet]
[ApiDescriptionSettings(Name = "GetByProductCodes2")]
public async Task<List<PrintCodeDetail>> GetByProductCodes2(string? productCode)
{
return await _rep.AsQueryable().Where(a => !a.IsDelete && a.Code == productCode).ToListAsync();
}
[HttpGet] [HttpGet]
[ApiDescriptionSettings(Name = "GetByReportTableId")] [ApiDescriptionSettings(Name = "GetByReportTableId")]
public async Task<List<PrintCodeDetail>> GetByReportTableId(long? reportTableId) public async Task<List<PrintCodeDetail>> GetByReportTableId(long? reportTableId)

View File

@ -181,7 +181,7 @@ public class ProductRetrospectService : IDynamicApiController, ITransient
state = 0; state = 0;
} }
var last = codeEnt.OrderBy(a => a.WarehousingDate).FirstOrDefault(); var last = codeEnt.OrderBy(a => a.WarehousingDate).FirstOrDefault();
var receipt = last.Receipt == null ? "" : last.Receipt; var receipt = last?.Receipt == null ? "" : last.Receipt;
if (receipt.Contains("汇报单")) if (receipt.Contains("汇报单"))
{ {
state = 1; state = 1;

View File

@ -6,6 +6,7 @@ using Admin.NET.Application.Utils;
using AngleSharp.Dom; using AngleSharp.Dom;
using OfficeOpenXml.FormulaParsing.Excel.Functions.Math; using OfficeOpenXml.FormulaParsing.Excel.Functions.Math;
using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime; using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime;
using static Nest.JoinField;
namespace Admin.NET.Application; namespace Admin.NET.Application;
/// <summary> /// <summary>
@ -170,7 +171,7 @@ public class ReportDetailTableService : IDynamicApiController, ITransient
{ {
throw Oops.Oh(ErrorCodeEnum.xg1002); throw Oops.Oh(ErrorCodeEnum.xg1002);
} }
var reportDetailTable = await _rep.GetByIdAsync(input.WarehousingTableId);
var repeatCodes = await _codeDetailService.GetRepeat(input.CodeDatas); var repeatCodes = await _codeDetailService.GetRepeat(input.CodeDatas);
var codesToKeep = new List<PrintCodeDetailOutput>(); var codesToKeep = new List<PrintCodeDetailOutput>();
foreach (var repeatCode in repeatCodes) foreach (var repeatCode in repeatCodes)
@ -188,7 +189,7 @@ public class ReportDetailTableService : IDynamicApiController, ITransient
} }
} }
repeatCodes = codesToKeep; repeatCodes = codesToKeep;
if (repeatCodes != null && repeatCodes.Count > 0) if (reportDetailTable.ProductType=="普通生产" && repeatCodes != null && repeatCodes.Count > 0)
{ {
var repeats = repeatCodes.ConvertAll(a => a.Code).Distinct(); var repeats = repeatCodes.ConvertAll(a => a.Code).Distinct();
throw Oops.Oh($"条码重复:{string.Join("", repeats)}"); throw Oops.Oh($"条码重复:{string.Join("", repeats)}");
@ -234,7 +235,8 @@ public class ReportDetailTableService : IDynamicApiController, ITransient
EndDate = input.EndDt, EndDate = input.EndDt,
SourceNumber = warehousing.SourceNumber, SourceNumber = warehousing.SourceNumber,
Unit = warehousing.Unit, Unit = warehousing.Unit,
Remarks = warehousing.Remarks Remarks = warehousing.Remarks,
}; };
reprotId = await _reportTableService.Add(newReport); reprotId = await _reportTableService.Add(newReport);
} }
@ -250,21 +252,7 @@ public class ReportDetailTableService : IDynamicApiController, ITransient
var code = CodeHelper.GetCode(item.BarCode, item.QrCode); var code = CodeHelper.GetCode(item.BarCode, item.QrCode);
var codeType = string.IsNullOrEmpty(item.BarCode) ? "二维码" : "条码"; var codeType = string.IsNullOrEmpty(item.BarCode) ? "二维码" : "条码";
var unit = units.Find(a => a.Name == item.PackageName); var unit = units.Find(a => a.Name == item.PackageName);
var upPrintCodeDetails = await _codeDetailService.GetByProductCodes(code); await ReplaceCode(code);
foreach (var upPrintCodeDetail in upPrintCodeDetails.Where(t=>t.ReportTableId== reprotId))
{
var reportTable = await _reportTableService.Detail(new QueryByIdReportTableInput { Id = upPrintCodeDetail.ReportTableId??0 });
if (reportTable.ProductType.Equals("返工生产"))
{
var year = DateTime.Now.ToString("yy");
var month = DateTime.Now.Month;
var day = DateTime.Now.Day;
int milliseconds = DateTime.Now.Millisecond; // 获取当前时间的毫秒部分0-999
upPrintCodeDetail.Code = "F"+ year + month + day + milliseconds + "#" + upPrintCodeDetail.Code;
await _codeDetailService.UpdateByEntity(upPrintCodeDetail);
}
}
var unitRate = Convert.ToDecimal(units.Where(t => t.Name == item.PackageName).FirstOrDefault()?.Rate); var unitRate = Convert.ToDecimal(units.Where(t => t.Name == item.PackageName).FirstOrDefault()?.Rate);
var productRate = Convert.ToDecimal(units.Where(t => t.Name == warehousing.Package).FirstOrDefault()?.Rate); var productRate = Convert.ToDecimal(units.Where(t => t.Name == warehousing.Package).FirstOrDefault()?.Rate);
decimal unitCount = Math.Round(unitRate / productRate, 2); decimal unitCount = Math.Round(unitRate / productRate, 2);
@ -276,13 +264,14 @@ public class ReportDetailTableService : IDynamicApiController, ITransient
ChildCount = unit.ChildUnitCount, ChildCount = unit.ChildUnitCount,
Count = 1, Count = 1,
Unit = item.PackageName, Unit = item.PackageName,
BaseCount = unitCount, BaseCount = GetUnitCount(units, item.PackageName, warehousing.Package),
BaseUnit = warehousing.Package, BaseUnit = warehousing.Package,
PrintCodeTime = DateTime.Now, PrintCodeTime = DateTime.Now,
CreateUserId = userId, CreateUserId = userId,
CreateUserName = userName, CreateUserName = userName,
ScanCodeTime = DateTime.Now, ScanCodeTime = DateTime.Now,
ScanCodeName = userName ScanCodeName = userName,
State = 1
}; };
var detailId = await _codeDetailService.Add(detail); var detailId = await _codeDetailService.Add(detail);
list.Add(detail, detailId); list.Add(detail, detailId);
@ -291,7 +280,9 @@ public class ReportDetailTableService : IDynamicApiController, ITransient
foreach (var child in childs) foreach (var child in childs)
{ {
var code2 = CodeHelper.GetCode(child.BarCode, child.QrCode); var code2 = CodeHelper.GetCode(child.BarCode, child.QrCode);
await ReplaceCode(code2);
var unit2 = units.Find(a => a.Name == child.PackageName); var unit2 = units.Find(a => a.Name == child.PackageName);
var detail2 = new AddPrintCodeDetailInput() var detail2 = new AddPrintCodeDetailInput()
{ {
ReportTableId = reprotId, ReportTableId = reprotId,
@ -300,7 +291,7 @@ public class ReportDetailTableService : IDynamicApiController, ITransient
ChildCount = unit2.ChildUnitCount, ChildCount = unit2.ChildUnitCount,
Count = 1, Count = 1,
Unit = child.PackageName, Unit = child.PackageName,
BaseCount =1, BaseCount = GetUnitCount(units, child.PackageName, warehousing.Package),
BaseUnit = warehousing.Package, BaseUnit = warehousing.Package,
PrintCodeTime = DateTime.Now, PrintCodeTime = DateTime.Now,
CreateUserId = userId, CreateUserId = userId,
@ -308,15 +299,19 @@ public class ReportDetailTableService : IDynamicApiController, ITransient
FatherCode = code, FatherCode = code,
FatherId = detailId, FatherId = detailId,
ScanCodeTime = DateTime.Now, ScanCodeTime = DateTime.Now,
ScanCodeName = userName ScanCodeName = userName,
State = 1
}; };
var detailId2 = await _codeDetailService.Add(detail2); var detailId2 = await _codeDetailService.Add(detail2);
list.Add(detail2, detailId2); list.Add(detail2, detailId2);
var childs3 = input.CodeDatas.FindAll(a => a.FatherCode == code2); var childs3 = input.CodeDatas.FindAll(a => a.FatherCode == code2);
foreach (var child3 in childs3) foreach (var child3 in childs3)
{ {
var code3 = CodeHelper.GetCode(child3.BarCode, child3.QrCode); var code3 = CodeHelper.GetCode(child3.BarCode, child3.QrCode);
await ReplaceCode(code3);
var unit3 = units.Find(a => a.Name == child3.PackageName); var unit3 = units.Find(a => a.Name == child3.PackageName);
var detail3 = new AddPrintCodeDetailInput() var detail3 = new AddPrintCodeDetailInput()
{ {
@ -324,9 +319,8 @@ public class ReportDetailTableService : IDynamicApiController, ITransient
Code = code3, Code = code3,
CodeName = codeType, CodeName = codeType,
ChildCount = unit3.ChildUnitCount, ChildCount = unit3.ChildUnitCount,
Count = 1, BaseCount = GetUnitCount(units, child3.PackageName, warehousing.Package),
Unit = child3.PackageName, Unit = child3.PackageName,
BaseCount = 1,
BaseUnit = warehousing.Package, BaseUnit = warehousing.Package,
PrintCodeTime = DateTime.Now, PrintCodeTime = DateTime.Now,
CreateUserId = userId, CreateUserId = userId,
@ -334,16 +328,21 @@ public class ReportDetailTableService : IDynamicApiController, ITransient
FatherCode = code2, FatherCode = code2,
FatherId = detailId2, FatherId = detailId2,
ScanCodeTime = DateTime.Now, ScanCodeTime = DateTime.Now,
ScanCodeName = userName ScanCodeName = userName,
Count = 1,
State = 1
}; };
var detailId3 = await _codeDetailService.Add(detail3); var detailId3 = await _codeDetailService.Add(detail3);
list.Add(detail3, detailId3); list.Add(detail3, detailId3);
if (input.CodeDatas.Any(a => a.FatherCode == code3)) if (input.CodeDatas.Any(a => a.FatherCode == code3))
{ {
var childs4 = input.CodeDatas.FindAll(a => a.FatherCode == code3); var childs4 = input.CodeDatas.FindAll(a => a.FatherCode == code3);
foreach (var child4 in childs4) foreach (var child4 in childs4)
{ {
var code4 = CodeHelper.GetCode(child4.BarCode, child4.QrCode); var code4 = CodeHelper.GetCode(child4.BarCode, child4.QrCode);
await ReplaceCode(code4);
var unit4 = units.Find(a => a.Name == child4.PackageName); var unit4 = units.Find(a => a.Name == child4.PackageName);
var detail4 = new AddPrintCodeDetailInput() var detail4 = new AddPrintCodeDetailInput()
{ {
@ -353,7 +352,7 @@ public class ReportDetailTableService : IDynamicApiController, ITransient
ChildCount = unit4.ChildUnitCount, ChildCount = unit4.ChildUnitCount,
Count = 1, Count = 1,
Unit = child4.PackageName, Unit = child4.PackageName,
BaseCount = 1, BaseCount = GetUnitCount(units, child4.PackageName, warehousing.Package),
BaseUnit = warehousing.Package, BaseUnit = warehousing.Package,
PrintCodeTime = DateTime.Now, PrintCodeTime = DateTime.Now,
CreateUserId = userId, CreateUserId = userId,
@ -361,16 +360,20 @@ public class ReportDetailTableService : IDynamicApiController, ITransient
FatherCode = code3, FatherCode = code3,
FatherId = detailId3, FatherId = detailId3,
ScanCodeTime = DateTime.Now, ScanCodeTime = DateTime.Now,
ScanCodeName = userName ScanCodeName = userName,
State = 1
}; };
var detailId4 = await _codeDetailService.Add(detail4); var detailId4 = await _codeDetailService.Add(detail4);
list.Add(detail4, detailId4); list.Add(detail4, detailId4);
if (input.CodeDatas.Any(a => a.FatherCode == code4)) if (input.CodeDatas.Any(a => a.FatherCode == code4))
{ {
var childs5 = input.CodeDatas.FindAll(a => a.FatherCode == code4); var childs5 = input.CodeDatas.FindAll(a => a.FatherCode == code4);
foreach (var child5 in childs5) foreach (var child5 in childs5)
{ {
var code5 = CodeHelper.GetCode(child5.BarCode, child5.QrCode); var code5 = CodeHelper.GetCode(child5.BarCode, child5.QrCode);
await ReplaceCode(code5);
var unit5 = units.Find(a => a.Name == child5.PackageName); var unit5 = units.Find(a => a.Name == child5.PackageName);
var detail5 = new AddPrintCodeDetailInput() var detail5 = new AddPrintCodeDetailInput()
{ {
@ -380,7 +383,7 @@ public class ReportDetailTableService : IDynamicApiController, ITransient
ChildCount = unit5.ChildUnitCount, ChildCount = unit5.ChildUnitCount,
Count = 1, Count = 1,
Unit = child5.PackageName, Unit = child5.PackageName,
BaseCount = 1, BaseCount = GetUnitCount(units, child5.PackageName, warehousing.Package),
BaseUnit = warehousing.Package, BaseUnit = warehousing.Package,
PrintCodeTime = DateTime.Now, PrintCodeTime = DateTime.Now,
CreateUserId = userId, CreateUserId = userId,
@ -388,10 +391,12 @@ public class ReportDetailTableService : IDynamicApiController, ITransient
FatherCode = code4, FatherCode = code4,
FatherId = detailId4, FatherId = detailId4,
ScanCodeTime = DateTime.Now, ScanCodeTime = DateTime.Now,
ScanCodeName = userName ScanCodeName = userName,
State = 1
}; };
var detailId5 = await _codeDetailService.Add(detail5); var detailId5 = await _codeDetailService.Add(detail5);
list.Add(detail5, detailId5); list.Add(detail5, detailId5);
} }
} }
} }
@ -431,16 +436,100 @@ public class ReportDetailTableService : IDynamicApiController, ITransient
var upReportTable = await _reportTableService.GetBySource(warehousing.Id); var upReportTable = await _reportTableService.GetBySource(warehousing.Id);
var printCodeDetails = await _codeDetailService.GetByReportTableId(upReportTable.Id); var printCodeDetails = await _codeDetailService.GetByReportTableId(upReportTable.Id);
var count = printCodeDetails.Where(a => !a.IsDelete && a.Unit == a.BaseUnit).Sum(t=>t.Count); var printCodesNullFatherCode = printCodeDetails.Where(t=>t.Unit == warehousing.Package && string.IsNullOrWhiteSpace(t.FatherCode));
decimal unitSumCount = 0; var clonedList = new List<PrintCodeDetail>(printCodeDetails);
foreach (var item in printCodeDetails.Where(a => !a.IsDelete && a.Unit != a.BaseUnit)) foreach (var item in printCodesNullFatherCode)
{ {
var unitRate = Convert.ToDecimal(units.Where(t => t.Name == item.Unit).FirstOrDefault()?.Rate); var chilrens1 = printCodeDetails.Where(t => t.FatherCode == item.Code).ToList();
var productRate = Convert.ToDecimal(units.Where(t => t.Name == item.BaseUnit).FirstOrDefault()?.Rate); foreach (var chilren1 in chilrens1)
decimal unitCount = Math.Round(unitRate / productRate,2); {
unitSumCount += unitCount; clonedList.Remove(chilren1);
var chilrens2 = printCodeDetails.Where(t => t.FatherCode == chilren1.Code).ToList();
foreach (var chilren2 in chilrens2)
{
clonedList.Remove(chilren2);
var chilrens3 = printCodeDetails.Where(t => t.FatherCode == chilren2.Code).ToList();
foreach (var chilren3 in chilrens3)
{
clonedList.Remove(chilren3);
var chilrens4 = printCodeDetails.Where(t => t.FatherCode == chilren3.Code).ToList();
foreach (var chilren4 in chilrens4)
{
clonedList.Remove(chilren4);
var chilrens5 = printCodeDetails.Where(t => t.FatherCode == chilren4.Code).ToList();
foreach (var chilren5 in chilrens5)
{
clonedList.Remove(chilren5);
}
}
}
}
}
} }
upReportTable.BaseProductCount = unitSumCount + count; var printCodesNotNullFatherCode = printCodeDetails.Where(t => t.Unit == warehousing.Package && !string.IsNullOrWhiteSpace(t.FatherCode));
foreach (var item in printCodesNotNullFatherCode)
{
var parents1 = printCodeDetails.Where(t => t.Code == item.FatherCode).ToList();
foreach (var parent1 in parents1)
{
clonedList.Remove(parent1);
var parents2 = printCodeDetails.Where(t => t.Code == parent1.FatherCode).ToList();
foreach (var parent2 in parents2)
{
clonedList.Remove(parent2);
var parents3 = printCodeDetails.Where(t => t.Code == parent2.FatherCode).ToList();
foreach (var parent3 in parents3)
{
clonedList.Remove(parent3);
var parents4 = printCodeDetails.Where(t => t.Code == parent3.FatherCode).ToList();
foreach (var parent4 in parents4)
{
clonedList.Remove(parent4);
var parents5 = printCodeDetails.Where(t => t.Code == parent4.FatherCode).ToList();
foreach (var parent5 in parents5)
{
clonedList.Remove(parent5);
}
}
}
}
}
var chilrens1 = printCodeDetails.Where(t => t.FatherCode == item.Code).ToList();
foreach (var chilren1 in chilrens1)
{
clonedList.Remove(chilren1);
var chilrens2 = printCodeDetails.Where(t => t.FatherCode == chilren1.Code).ToList();
foreach (var chilren2 in chilrens2)
{
clonedList.Remove(chilren2);
var chilrens3 = printCodeDetails.Where(t => t.FatherCode == chilren2.Code).ToList();
foreach (var chilren3 in chilrens3)
{
clonedList.Remove(chilren3);
var chilrens4 = printCodeDetails.Where(t => t.FatherCode == chilren3.Code).ToList();
foreach (var chilren4 in chilrens4)
{
clonedList.Remove(chilren4);
var chilrens5 = printCodeDetails.Where(t => t.FatherCode == chilren4.Code).ToList();
foreach (var chilren5 in chilrens5)
{
clonedList.Remove(chilren5);
}
}
}
}
}
}
decimal unitSumCount = (printCodesNullFatherCode.Sum(t=>t.BaseCount) ?? 0) + (printCodesNotNullFatherCode.Sum(t => t.BaseCount)??0);
//最大单位
foreach (var item in clonedList.Where(t=>t.Unit!=warehousing.Package))
{
unitSumCount += GetUnitCount(units,item.Unit,warehousing.Package);
}
upReportTable.BaseProductCount = unitSumCount;
var updateReportTableInput = upReportTable.Adapt<UpdateReportTableInput>(); var updateReportTableInput = upReportTable.Adapt<UpdateReportTableInput>();
await _reportTableService.Update(updateReportTableInput); await _reportTableService.Update(updateReportTableInput);
//upReportTable. //upReportTable.
@ -470,6 +559,38 @@ public class ReportDetailTableService : IDynamicApiController, ITransient
} }
public async Task ReplaceCode(string code)
{
var upPrintCodeDetails = await _codeDetailService.GetByProductCodes2(code);
var printCodeDetails = await _codeDetailService.GetByReportTableId(upPrintCodeDetails.FirstOrDefault()?.ReportTableId);
foreach (var upPrintCodeDetail in upPrintCodeDetails)
{
var oldCode = upPrintCodeDetail.Code;
var year = DateTime.Now.ToString("yy");
var month = DateTime.Now.Month;
var day = DateTime.Now.Day;
int milliseconds = DateTime.Now.Millisecond; // 获取当前时间的毫秒部分0-999
upPrintCodeDetail.Code = "F" + year + month + day + milliseconds + "#" + upPrintCodeDetail.Code;
await _codeDetailService.UpdateByEntity(upPrintCodeDetail);
var chilrens = printCodeDetails.Where(t => t.FatherCode == oldCode).ToList();
foreach (var chilren in chilrens)
{
chilren.FatherCode = upPrintCodeDetail.Code;
await _codeDetailService.UpdateByEntity(chilren);
}
}
}
public decimal GetUnitCount(List<SysUnitOutput> units,string packageName,string wareHousingPackage)
{
var unitRate = Convert.ToDecimal(units.Where(t => t.Name == packageName).FirstOrDefault()?.Rate);
var productRate = Convert.ToDecimal(units.Where(t => t.Name == wareHousingPackage).FirstOrDefault()?.Rate);
decimal unitCount = Math.Round(unitRate / productRate, 2);
return unitCount;
}
/// <summary> /// <summary>
/// 删除汇报单详情 /// 删除汇报单详情
/// </summary> /// </summary>
@ -606,22 +727,7 @@ public class ReportDetailTableService : IDynamicApiController, ITransient
var newCodeDetail = await _codeDetailService.GetByProductCode(input.NewCodeName); var newCodeDetail = await _codeDetailService.GetByProductCode(input.NewCodeName);
if (newCodeDetail != null) if (newCodeDetail != null)
{ {
var reportTable = await _reportTableService.Detail(new QueryByIdReportTableInput { Id = newCodeDetail.ReportTableId ?? 0 }); throw Oops.Oh($"条码重复");
if (reportTable.ProductType.Equals("返工生产"))
{
var year = DateTime.Now.ToString("yy");
var month = DateTime.Now.Month;
var day = DateTime.Now.Day;
int milliseconds = DateTime.Now.Millisecond; // 获取当前时间的毫秒部分0-999
newCodeDetail.Code = "F" + year + month + day + milliseconds + "#" + newCodeDetail.Code;
await _codeDetailService.UpdateByEntity(newCodeDetail);
codeDetail.Code = input.NewCodeName;
await _codeDetailService.UpdateByEntity(codeDetail);
}
else
{
throw Oops.Oh($"替换条码重复");
}
} }
else else
{ {

View File

@ -7,17 +7,17 @@
</el-form-item> </el-form-item>
<el-col :xs="12" :sm="12" :md="6" :lg="6" :xl="6" class="mb20"> <el-col :xs="12" :sm="12" :md="6" :lg="6" :xl="6" class="mb20">
<el-form-item label="单号" prop="oddNumber"> <el-form-item label="单号" prop="oddNumber">
<el-input v-model="ruleForm.oddNumber" placeholder="请输入单号" maxlength="32" show-word-limit clearable /> <el-input v-model="ruleForm.oddNumber" placeholder="请输入单号" maxlength="32" show-word-limit clearable :disabled="disabled"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :xs="12" :sm="12" :md="6" :lg="6" :xl="6" class="mb20"> <el-col :xs="12" :sm="12" :md="6" :lg="6" :xl="6" class="mb20">
<el-form-item label="计划开工日期" prop="productDate" :rules="[{ required: true, message: '计划开工日期不能为空', trigger: 'blur' }]"> <el-form-item label="计划开工日期" prop="productDate" :rules="[{ required: true, message: '计划开工日期不能为空', trigger: 'blur' }]">
<el-date-picker v-model="ruleForm.productDate" type="date" placeholder="生产日期" /> <el-date-picker v-model="ruleForm.productDate" type="date" placeholder="生产日期" :disabled="disabled"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :xs="12" :sm="12" :md="6" :lg="6" :xl="6" class="mb20"> <el-col :xs="12" :sm="12" :md="6" :lg="6" :xl="6" class="mb20">
<el-form-item label="生产类型" prop="productType" :rules="[{ required: true, message: '生产类型不能为空', trigger: 'blur' }]"> <el-form-item label="生产类型" prop="productType" :rules="[{ required: true, message: '生产类型不能为空', trigger: 'blur' }]">
<el-select v-model="ruleForm.productType" placeholder="请选择" clearable> <el-select v-model="ruleForm.productType" placeholder="请选择" clearable :disabled="disabled">
<el-option label="普通生产" value= '普通生产' /> <el-option label="普通生产" value= '普通生产' />
<el-option label="返工生产" value= '返工生产' /> <el-option label="返工生产" value= '返工生产' />
</el-select> </el-select>
@ -25,7 +25,7 @@
</el-col> </el-col>
<el-col :xs="12" :sm="12" :md="6" :lg="6" :xl="6" class="mb20"> <el-col :xs="12" :sm="12" :md="6" :lg="6" :xl="6" class="mb20">
<el-form-item label="产品" prop="materialsId" > <el-form-item label="产品" prop="materialsId" >
<el-select v-model="ruleForm.materialsId" placeholder="请选择" clearable @change="materialsChange"> <el-select v-model="ruleForm.materialsId" placeholder="请选择" clearable @change="materialsChange" :disabled="disabled">
<el-option :label="item.name" :value="item.id" v-for="item, index in materials" <el-option :label="item.name" :value="item.id" v-for="item, index in materials"
:key="index" /> :key="index" />
</el-select> </el-select>
@ -49,17 +49,17 @@
<!-- </el-col>--> <!-- </el-col>-->
<el-col :xs="12" :sm="12" :md="6" :lg="6" :xl="6" class="mb20"> <el-col :xs="12" :sm="12" :md="6" :lg="6" :xl="6" class="mb20">
<el-form-item label="批次" prop="batch"> <el-form-item label="批次" prop="batch">
<el-input v-model="ruleForm.batch" placeholder="请输入批次" maxlength="32" show-word-limit clearable /> <el-input v-model="ruleForm.batch" placeholder="请输入批次" maxlength="32" show-word-limit clearable :disabled="disabled"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :xs="12" :sm="12" :md="6" :lg="6" :xl="6" class="mb20"> <el-col :xs="12" :sm="12" :md="6" :lg="6" :xl="6" class="mb20">
<el-form-item label="计划生产数量" prop="productCount" :rules="[{ required: true, message: '计划生产数量不能为空', trigger: 'blur' }]"> <el-form-item label="计划生产数量" prop="productCount" :rules="[{ required: true, message: '计划生产数量不能为空', trigger: 'blur' }]">
<el-input-number v-model="ruleForm.productCount" placeholder="请输入计划生产数量" clearable /> <el-input-number v-model="ruleForm.productCount" placeholder="请输入计划生产数量" clearable :disabled="disabled" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :xs="12" :sm="12" :md="6" :lg="6" :xl="6" class="mb20"> <el-col :xs="12" :sm="12" :md="6" :lg="6" :xl="6" class="mb20">
<el-form-item label="生产单位" prop="package" :rules="[{ required: true, message: '生产单位不能为空', trigger: 'blur' }]"> <el-form-item label="生产单位" prop="package" :rules="[{ required: true, message: '生产单位不能为空', trigger: 'blur' }]">
<el-select v-model="ruleForm.package" placeholder="请选择" clearable > <el-select v-model="ruleForm.package" placeholder="请选择" clearable :disabled="disabled" >
<el-option :label="item.name" :value="item.name" v-for="item, index in units" <el-option :label="item.name" :value="item.name" v-for="item, index in units"
:key="index" /> :key="index" />
</el-select> </el-select>
@ -67,7 +67,7 @@
</el-col> </el-col>
<el-col :xs="12" :sm="12" :md="6" :lg="6" :xl="6" class="mb20"> <el-col :xs="12" :sm="12" :md="6" :lg="6" :xl="6" class="mb20">
<el-form-item label="基本单位" prop="baseUnit" :rules="[{ required: true, message: '基本单位不能为空', trigger: 'blur' }]"> <el-form-item label="基本单位" prop="baseUnit" :rules="[{ required: true, message: '基本单位不能为空', trigger: 'blur' }]">
<el-select v-model="ruleForm.baseUnit" placeholder="请选择" clearable > <el-select v-model="ruleForm.baseUnit" placeholder="请选择" clearable :disabled="disabled" >
<el-option :label="item.name" :value="item.name" v-for="item, index in units" <el-option :label="item.name" :value="item.name" v-for="item, index in units"
:key="index" /> :key="index" />
</el-select> </el-select>
@ -75,7 +75,7 @@
</el-col> </el-col>
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
<el-form-item label="生产线" prop="productionLine" :rules="[{ required: true, message: '生产线不能为空', trigger: 'blur' }]"> <el-form-item label="生产线" prop="productionLine" :rules="[{ required: true, message: '生产线不能为空', trigger: 'blur' }]">
<el-select v-model="ruleForm.productionLine" placeholder="请选择" clearable > <el-select v-model="ruleForm.productionLine" placeholder="请选择" clearable :disabled="disabled" >
<el-option :label="item.name" :value="item.name" v-for="item, index in productionLines" <el-option :label="item.name" :value="item.name" v-for="item, index in productionLines"
:key="index" /> :key="index" />
</el-select> </el-select>

View File

@ -1,13 +1,19 @@
<template> <template>
<div class="reportTable-container" style="height: 100vh"> <div class="reportTable-container" style="height: 100vh">
<div class="footer" style="margin-bottom: 20px">
<el-button @click="cancel"> </el-button>
<!-- <el-button type="primary" @click="submit" > </el-button>-->
</div>
<el-form label-width="auto" > <el-form label-width="auto" >
<el-row :gutter="35"> <el-row :gutter="35">
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
<el-form-item label="产品名称" > <el-form-item label="产品名称" >
<el-select v-model="ruleReportForm.materialsId" placeholder="请选择" clearable @change="materialsChange" disabled> <el-select v-model="ruleReportForm.materialsId" placeholder="请选择" clearable disabled>
<el-option :label="item.name" :value="item.id" v-for="item, index in materials" <el-option :label="item.name" :value="item.id" v-for="item, index in materials"
:key="index" /> :key="index" />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
@ -110,8 +116,9 @@
<el-table-column prop="baseCount" label="生产数量" width="100" show-overflow-tooltip="" /> <el-table-column prop="baseCount" label="生产数量" width="100" show-overflow-tooltip="" />
<el-table-column prop="baseUnit" label="生产单位" width="100" show-overflow-tooltip="" /> <el-table-column prop="baseUnit" label="生产单位" width="100" show-overflow-tooltip="" />
<el-table-column prop="childCount" label="子码数" width="80" show-overflow-tooltip="" /> <el-table-column prop="childCount" label="子码数" width="80" show-overflow-tooltip="" />
<el-table-column prop="scanCodeTime" label="扫描时间" width="110" show-overflow-tooltip="" /> <el-table-column prop="scanCodeTime" label="扫描时间" width="160" show-overflow-tooltip="" />
<el-table-column prop="scanCodeName" label="提交人" width="80" show-overflow-tooltip="" /> <el-table-column prop="scanCodeName" label="提交人" width="110" show-overflow-tooltip="" />
<el-table-column prop="state" label="生产状态" width="110" show-overflow-tooltip="" :formatter="formatProductState" />
<!-- <el-table-column label="操作" width="140" align="center" fixed="right" show-overflow-tooltip="" > <!-- <el-table-column label="操作" width="140" align="center" fixed="right" show-overflow-tooltip="" >
<template #default="scope"> <template #default="scope">
<el-button icon="ele-Edit" size="small" text="" type="primary" @click="''" > 查看 </el-button> <el-button icon="ele-Edit" size="small" text="" type="primary" @click="''" > 查看 </el-button>
@ -148,10 +155,7 @@
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
</div> </div>
<div class="footer" align="right" >
<el-button @click="cancel"> </el-button>
<!-- <el-button type="primary" @click="submit" > </el-button>-->
</div>
</div> </div>
</template> </template>
<style scoped> <style scoped>
@ -164,6 +168,7 @@
import { ref,onMounted,reactive } from "vue"; import { ref,onMounted,reactive } from "vue";
import type { FormRules } from "element-plus"; import type { FormRules } from "element-plus";
import { getPrintDetail} from "/@/api/main/reportTable"; import { getPrintDetail} from "/@/api/main/reportTable";
import {listMaterials} from "/@/api/main/materials";
// //
var props = defineProps({ var props = defineProps({
@ -183,7 +188,7 @@ const ruleForm = ref<any>([]);
const tempRuleForm = ref<any>([]); const tempRuleForm = ref<any>([]);
const loading = ref(false); const loading = ref(false);
const queryParams = ref<any>({}); const queryParams = ref<any>({});
const materials = ref<any>([]);
@ -230,6 +235,22 @@ const cancel = () => {
emit("back"); emit("back");
}; };
const formatProductState = (row, column, cellValue) => {
let state = cellValue;
switch (state) {
case 1:
return "汇报单";
case 2:
return "仓库";
case 3:
return "发货/分销";
default:
return "未知状态";
}
}
// //
const submit = async () => { const submit = async () => {
isShowDialog.value = false; isShowDialog.value = false;
@ -240,11 +261,11 @@ const isExpandAll = ref(false);
// //
onMounted(async () => { onMounted(async () => {
materials.value = (await listMaterials()).data.result;
const row = props.row as any; const row = props.row as any;
ruleForm.value=[]; ruleForm.value=[];
if(typeof(row.id) === 'number'){ if(typeof(row.id) === 'number'){
var res = await getPrintDetail(row.id); var res = await getPrintDetail(row.id);
debugger
ruleForm.value = res.data.result; ruleForm.value = res.data.result;
ruleReportForm.value = {...row}; ruleReportForm.value = {...row};
}else{ }else{

View File

@ -94,7 +94,7 @@
<!-- <el-table-column prop="state" label="状态" width="80" show-overflow-tooltip="" /> --> <!-- <el-table-column prop="state" label="状态" width="80" show-overflow-tooltip="" /> -->
<el-table-column prop="productType" label="生产类型" width="140" show-overflow-tooltip=""/> <el-table-column prop="productType" label="生产类型" width="140" show-overflow-tooltip=""/>
<el-table-column prop="productionLine" label="生产线" width="140" show-overflow-tooltip=""/> <el-table-column prop="productionLine" label="生产线" width="140" show-overflow-tooltip=""/>
<el-table-column prop="productCount" label="生产数量" width="100" show-overflow-tooltip=""/> <el-table-column prop="baseProductCount" label="生产数量" width="100" show-overflow-tooltip=""/>
<!-- <el-table-column prop="sourceNumber" label="源单号" width="140" show-overflow-tooltip="" /> --> <!-- <el-table-column prop="sourceNumber" label="源单号" width="140" show-overflow-tooltip="" /> -->
<el-table-column prop="remarks" label="备注" width="140" show-overflow-tooltip=""/> <el-table-column prop="remarks" label="备注" width="140" show-overflow-tooltip=""/>
<el-table-column label="操作" width="200" align="center" fixed="right" show-overflow-tooltip="" <el-table-column label="操作" width="200" align="center" fixed="right" show-overflow-tooltip=""