|
@ -33,6 +33,8 @@ using BBWY.Client.Views.QualityTask; |
|
|
using BBWY.Client.Views.QualityTipWindows; |
|
|
using BBWY.Client.Views.QualityTipWindows; |
|
|
using System.Windows.Interop; |
|
|
using System.Windows.Interop; |
|
|
using NPOI.SS.Formula.Functions; |
|
|
using NPOI.SS.Formula.Functions; |
|
|
|
|
|
using NPOI.SS.Util; |
|
|
|
|
|
using System.Text; |
|
|
|
|
|
|
|
|
namespace BBWY.Client.ViewModels.PackTask |
|
|
namespace BBWY.Client.ViewModels.PackTask |
|
|
{ |
|
|
{ |
|
@ -883,141 +885,210 @@ namespace BBWY.Client.ViewModels.PackTask |
|
|
MessageBox.Show($"查找不到店铺信息, {model.ShopName}"); |
|
|
MessageBox.Show($"查找不到店铺信息, {model.ShopName}"); |
|
|
return; |
|
|
return; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
var packTaskRes = qualityTaskService.GetQualityTask(model.TaskId);//获取任务详情
|
|
|
|
|
|
|
|
|
|
|
|
if (packTaskRes == null) |
|
|
|
|
|
{ |
|
|
|
|
|
MessageBox.Show("网络异常!"); |
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
if (!packTaskRes.Success || packTaskRes.Data == null) |
|
|
|
|
|
{ |
|
|
|
|
|
MessageBox.Show(packTaskRes.Msg); |
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
if (packTaskRes == null || !packTaskRes.Success) return; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//获取品牌和适用年龄
|
|
|
var skuAttsDetailRes = qualityTaskService.SearchProductAttrsBySkuId(model.SkuId, shop.AppKey, shop.AppSecret, shop.AppToken, shop.Platform); |
|
|
var skuAttsDetailRes = qualityTaskService.SearchProductAttrsBySkuId(model.SkuId, shop.AppKey, shop.AppSecret, shop.AppToken, shop.Platform); |
|
|
if (skuAttsDetailRes == null || !skuAttsDetailRes.Success) |
|
|
if (skuAttsDetailRes == null || !skuAttsDetailRes.Success) |
|
|
{ |
|
|
{ |
|
|
MessageBox.Show(skuAttsDetailRes?.Msg); |
|
|
MessageBox.Show(skuAttsDetailRes?.Msg); |
|
|
return; |
|
|
return; |
|
|
} |
|
|
} |
|
|
var skuAttsDetail = skuAttsDetailRes.Data; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var IsPassInspection = packTaskRes.Data.IsPassInspection; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var skuAttsDetail = skuAttsDetailRes.Data; |
|
|
|
|
|
|
|
|
bool isqualityCer = false; //验收合格证
|
|
|
bool isqualityCer = false; //验收合格证
|
|
|
|
|
|
StringBuilder sb = null; |
|
|
|
|
|
Need IsNeedCer = Need.不需要; |
|
|
|
|
|
BrandMarkType markType = BrandMarkType.无需遮盖; |
|
|
|
|
|
bool? isCer3CValid = null; |
|
|
|
|
|
|
|
|
|
|
|
new QualityProductWindow("商品合格证情况", "商品包装有合格证信息", "商品包装无合格证信息", (ishaveCer) => |
|
|
|
|
|
{ |
|
|
|
|
|
if (ishaveCer)//验收商品 有合格证
|
|
|
|
|
|
{ |
|
|
|
|
|
if (skuAttsDetail.ApplyAge.IsNullOrEmpty() || (skuAttsDetail.IsApplyAgeOver14 != null && skuAttsDetail.IsApplyAgeOver14.Value))//不存在使用年龄 或者适用年龄大于14
|
|
|
|
|
|
{ |
|
|
|
|
|
new QualityProductWindow("商品合格证情况", "商品包装合格证上有品牌信息", "商品包装合格证上无品牌信息", (iscerhavebrand) => |
|
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
if (iscerhavebrand) |
|
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
new QualityProductWindow("商品合格证情况", $"商品包装合格证上的品牌是{skuAttsDetail.Brand}", $"商品包装合格证上的品牌不是{skuAttsDetail.Brand}", (istruebrand) => |
|
|
|
|
|
{ |
|
|
|
|
|
if (!istruebrand) |
|
|
|
|
|
{ |
|
|
|
|
|
//需要合格证
|
|
|
|
|
|
if (model.CertificateModel == null || !model.CertificateModel.Any())//未配置
|
|
|
|
|
|
{ |
|
|
|
|
|
sb = new StringBuilder(); |
|
|
|
|
|
sb.AppendLine("该任务未配置合格证,商品包装合格证上的品牌与详情页的品牌不符"); |
|
|
|
|
|
if (skuAttsDetail.ApplyAge.IsNullOrEmpty()) |
|
|
|
|
|
sb.Append("详情页未展示适用年龄"); |
|
|
|
|
|
else |
|
|
|
|
|
sb.Append("详情页展示适用年龄为14岁以上"); |
|
|
|
|
|
sb.Append("请立即配置合格证信息,包装任务已被挂起."); |
|
|
|
|
|
var res = qualityTaskService.SendMsgToPurchaseDepartment(model.TaskId, "任务未配置合格证", sb.ToString()); |
|
|
|
|
|
if (res.Success) |
|
|
|
|
|
{ |
|
|
|
|
|
ReflashTask();//刷新任务
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
//打印合格证 完全遮盖包装合格证信息
|
|
|
|
|
|
} |
|
|
|
|
|
isqualityCer = true;//验收合格证完毕
|
|
|
|
|
|
}).ShowDialog(); |
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
isqualityCer = true;//验收合格证完毕
|
|
|
|
|
|
|
|
|
|
|
|
}).ShowDialog(); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
else |
|
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
new QualityProductWindow("商品合格证情况", "商品包装有合格证信息", "商品包装无合格证信息", (ishaveCer) => |
|
|
if (IsPassInspection)//验收过 跳过询问
|
|
|
{ |
|
|
{ |
|
|
if (ishaveCer)//验收商品 有合格证
|
|
|
isqualityCer = true; |
|
|
{ |
|
|
return; |
|
|
if (skuAttsDetail.ApplyAge.IsNullOrEmpty() || (skuAttsDetail.IsApplyAgeOver14 != null && skuAttsDetail.IsApplyAgeOver14.Value))//不存在使用年龄 或者适用年龄大于14
|
|
|
} |
|
|
{ |
|
|
//todo: 判断是否首次验收 只支持供应链 有采购方案的
|
|
|
//todo: 判断是否首次验收 只支持供应链 有采购方案的
|
|
|
new QualityProductWindow("商品合格证情况", "商品合格证类型有3C标", "商品合格证类型无3C标", (ishave3c) => |
|
|
new QualityProductWindow("商品合格证情况", "商品合格证类型有3C标", "商品合格证类型无3C标", (ishave3c) => |
|
|
{ |
|
|
{ |
|
|
if (ishave3c) |
|
|
if (ishave3c) |
|
|
{ |
|
|
{ |
|
|
sb = new StringBuilder(); |
|
|
//todo: 存配置 只支持供应链 有采购方案的
|
|
|
sb.Append("该任务商品适用年龄为14岁以下,请验证合格证上的3C信息是否有效,包装任务已被挂起."); |
|
|
|
|
|
var res = qualityTaskService.SendMsgToPurchaseDepartment(model.TaskId, "包装合格证有3C信息且详情页适用年龄小于14岁", sb.ToString()); |
|
|
|
|
|
if (res.Success) |
|
|
//验收有效性
|
|
|
{ |
|
|
|
|
|
ReflashTask();//刷新任务
|
|
|
new QualityProductWindow("商品合格证情况", "商品合格证类型有3C标", "商品合格证类型无3C标", (iscanuser) => |
|
|
} |
|
|
{ |
|
|
return; |
|
|
|
|
|
} |
|
|
if (iscanuser) |
|
|
else |
|
|
{ |
|
|
{ |
|
|
isqualityCer = true;//验收正常
|
|
|
//todo:
|
|
|
return; |
|
|
// 通知采购方问题 咨询是否可替款
|
|
|
} |
|
|
// MessageBox.Show("提示采购部门,当前任务详情页展示适用年龄为14岁以下, 实物商品配置的合格证没有3C,咨询是否可替款,任务已挂起");
|
|
|
//当前合格证3c无效
|
|
|
sb = new StringBuilder(); |
|
|
//todo:
|
|
|
sb.AppendLine("该任务商品包装有合格证信息"); |
|
|
// 通知采购方问题 咨询是否可替款
|
|
|
sb.Append("详情页展示适用年龄为14岁以下,但是商品包装合格证无3C标"); |
|
|
MessageBox.Show("提示采购部门,当前任务详情页展示适用年龄为14岁以下, 实物商品配置的合格证当前合格证3c无效,任务已挂起"); |
|
|
sb.Append("请立即配置3C类型的合格证信息"); |
|
|
|
|
|
var res = qualityTaskService.SendMsgToPurchaseDepartment(model.TaskId, "包装有合格证信息且详情页适用年龄小于14岁", sb.ToString()); |
|
|
}).ShowDialog(); |
|
|
if (res.Success) |
|
|
|
|
|
{ |
|
|
|
|
|
ReflashTask();//刷新任务
|
|
|
return; |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
//todo:
|
|
|
|
|
|
// 通知采购方问题 咨询是否可替款
|
|
|
|
|
|
MessageBox.Show("提示采购部门,当前任务详情页展示适用年龄为14岁以下, 实物商品配置的合格证没有3C,咨询是否可替款,任务已挂起"); |
|
|
}).ShowDialog(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
}).ShowDialog(); |
|
|
//验收商品合格证是否有品牌
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//验收商品合格证是否有品牌
|
|
|
} |
|
|
|
|
|
else |
|
|
new QualityProductWindow("商品合格证情况", "商品包装合格证上有品牌信息", "商品包装合格证上无品牌信息", (iscerhavebrand) => |
|
|
{ |
|
|
{ |
|
|
IsNeedCer = Need.需要;//需要合格证
|
|
|
|
|
|
//需要合格证
|
|
|
if (iscerhavebrand) |
|
|
if (model.CertificateModel == null || !model.CertificateModel.Any())//未配置
|
|
|
{ |
|
|
{ |
|
|
|
|
|
sb = new StringBuilder(); |
|
|
new QualityProductWindow("商品合格证情况", $"商品包装合格证上的品牌是{skuAttsDetail.Brand}", $"商品包装合格证上的品牌不是{skuAttsDetail.Brand}", (istruebrand) => |
|
|
sb.AppendLine("该任务未配置合格证,请立即配置合格证信息"); |
|
|
{ |
|
|
var res1 = qualityTaskService.SendMsgToPurchaseDepartment(model.TaskId, "任务未配置合格证", sb.ToString()); |
|
|
if (!istruebrand) |
|
|
if (res1.Success) |
|
|
{ |
|
|
{ |
|
|
//需要合格证
|
|
|
ReflashTask();//刷新任务
|
|
|
if (model.CertificateModel == null || !model.CertificateModel.Any())//未配置
|
|
|
} |
|
|
{ |
|
|
return; |
|
|
//未配置 todo: 写接口通知采购方问题
|
|
|
} |
|
|
MessageBox.Show("提示采购部门,当前任务未配置合格证,赶紧配置,任务已挂起"); |
|
|
|
|
|
return; |
|
|
if (skuAttsDetail.ApplyAge.IsNullOrEmpty() || (skuAttsDetail.IsApplyAgeOver14 != null && skuAttsDetail.IsApplyAgeOver14.Value))//不存在使用年龄 或者适用年龄大于14
|
|
|
} |
|
|
{ |
|
|
//打印合格证 完全遮盖包装合格证信息
|
|
|
isqualityCer = true;//验收正常
|
|
|
} |
|
|
return; |
|
|
isqualityCer = true;//验收合格证完毕
|
|
|
} |
|
|
}).ShowDialog(); |
|
|
//年龄低于14
|
|
|
} |
|
|
|
|
|
|
|
|
if (!model.CertificateModel.Any(c => c.LabelModel != CertificateLabelModel.标准有3c))//所有有配置的合格证都是标准3c
|
|
|
}).ShowDialog(); |
|
|
{ |
|
|
} |
|
|
isqualityCer = true;//验收正常
|
|
|
else |
|
|
return; |
|
|
{ |
|
|
} |
|
|
//需要合格证
|
|
|
//不存在 3c 通知采购方问题
|
|
|
if (model.CertificateModel == null || !model.CertificateModel.Any())//未配置
|
|
|
// MessageBox.Show("提示采购部门,当前任务配置的合格证没有3C,赶紧配置,任务已挂起");
|
|
|
{ |
|
|
|
|
|
//未配置 todo: 写接口通知采购方问题
|
|
|
sb = new StringBuilder(); |
|
|
MessageBox.Show("提示采购部门,当前任务未配置合格证,赶紧配置,任务已挂起"); |
|
|
sb.AppendLine("该任务商品包装无合格证信息"); |
|
|
return; |
|
|
|
|
|
} |
|
|
sb.Append("详情页展示适用年龄为14岁以下,"); |
|
|
|
|
|
sb.Append("请立即配置3C类型的合格证信息"); |
|
|
if (skuAttsDetail.ApplyAge.IsNullOrEmpty() || (skuAttsDetail.IsApplyAgeOver14 != null && skuAttsDetail.IsApplyAgeOver14.Value))//不存在使用年龄 或者适用年龄大于14
|
|
|
var res = qualityTaskService.SendMsgToPurchaseDepartment(model.TaskId, "包装无合格证信息且详情页适用年龄小于14岁", sb.ToString()); |
|
|
{ |
|
|
if (res.Success) |
|
|
isqualityCer = true;//验收正常
|
|
|
{ |
|
|
return; |
|
|
ReflashTask();//刷新任务
|
|
|
} |
|
|
} |
|
|
//年龄低于14
|
|
|
|
|
|
|
|
|
|
|
|
if (!model.CertificateModel.Any(c => c.LabelModel != CertificateLabelModel.标准有3c))//所有配置的合格证都是标准3c
|
|
|
return; |
|
|
{ |
|
|
} |
|
|
isqualityCer = true;//验收正常
|
|
|
|
|
|
return; |
|
|
}).ShowDialog(); |
|
|
} |
|
|
|
|
|
//不存在 3c 通知采购方问题
|
|
|
|
|
|
MessageBox.Show("提示采购部门,当前任务配置的合格证没有3C,赶紧配置,任务已挂起"); |
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
}).ShowDialog(); |
|
|
|
|
|
|
|
|
|
|
|
if (isqualityCer)//合格证验收完毕
|
|
|
if (isqualityCer)//合格证验收完毕
|
|
|
{ |
|
|
{ |
|
|
|
|
|
bool isqualityBrand = false; |
|
|
new QualityProductWindow("商品品牌情况", "商品包装有品牌信息", "商品包装无品牌信息", (ishavebrand) => |
|
|
new QualityProductWindow("商品品牌情况", "商品包装有品牌信息", "商品包装无品牌信息", (ishavebrand) => |
|
|
{ |
|
|
{ |
|
|
|
|
|
|
|
|
if (ishavebrand && !skuAttsDetail.IsTeamBrand)//有品牌且品牌不是集团的
|
|
|
if (ishavebrand && !skuAttsDetail.IsTeamBrand)//有品牌且品牌不是集团的
|
|
|
{ |
|
|
{ |
|
|
new QualityProductWindow($"商品品牌情况", $"商品包装品牌是{skuAttsDetail.Brand}", $"商品包装品牌不是{skuAttsDetail.Brand}", (istruebrand) => { |
|
|
new QualityProductWindow($"商品品牌情况", $"商品包装品牌是{skuAttsDetail.Brand}", $"商品包装品牌不是{skuAttsDetail.Brand}", (istruebrand) => |
|
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (istruebrand) |
|
|
if (istruebrand) |
|
|
{ |
|
|
{ |
|
|
//无需贴商标
|
|
|
//无需贴商标
|
|
|
|
|
|
|
|
|
|
|
|
markType = BrandMarkType.无需贴商标; |
|
|
} |
|
|
} |
|
|
else |
|
|
else |
|
|
{ |
|
|
{ |
|
|
|
|
|
markType = BrandMarkType.无需遮盖; |
|
|
//需覆盖商标
|
|
|
//需覆盖商标
|
|
|
} |
|
|
} |
|
|
|
|
|
isqualityBrand = true; |
|
|
|
|
|
|
|
|
}).ShowDialog(); |
|
|
}).ShowDialog(); |
|
|
|
|
|
|
|
@ -1025,17 +1096,20 @@ namespace BBWY.Client.ViewModels.PackTask |
|
|
} |
|
|
} |
|
|
else |
|
|
else |
|
|
{ |
|
|
{ |
|
|
|
|
|
isqualityBrand = true; |
|
|
//需贴商标
|
|
|
//需贴商标
|
|
|
} |
|
|
markType = BrandMarkType.无需遮盖; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
}).ShowDialog(); |
|
|
}).ShowDialog(); |
|
|
|
|
|
if (isqualityBrand) |
|
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
QualityWindow service = new QualityWindow(model, ReflashTask, IsNeedCer, markType, packTaskRes.Data); |
|
|
|
|
|
service.Show(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
QualityWindow service = new QualityWindow(model, ReflashTask); |
|
|
|
|
|
service.Show(); |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -2116,19 +2190,19 @@ namespace BBWY.Client.ViewModels.PackTask |
|
|
data.EndTime = item.CreateTime; |
|
|
data.EndTime = item.CreateTime; |
|
|
data.SkuTitle = item.SkuGoodsTitle; |
|
|
data.SkuTitle = item.SkuGoodsTitle; |
|
|
data.AcceptName = item.UserName; |
|
|
data.AcceptName = item.UserName; |
|
|
//if (item.BarCodeDTO != null && item.BarCodeDTO.Id > 0)
|
|
|
if (item.BarCodeDTO != null && item.BarCodeDTO.Id > 0) |
|
|
//{
|
|
|
{ |
|
|
|
|
|
|
|
|
// data.BarCodeModel = item.BarCodeDTO;
|
|
|
data.BarCodeModel = item.BarCodeDTO; |
|
|
// if (data.BarCodeModel.LabelModel == BarcodeLabelModel.无型号模板)
|
|
|
if (data.BarCodeModel.LabelModel == BarcodeLabelModel.无型号模板) |
|
|
// data.BarCodeModel.LabelModel = BarcodeLabelModel.精简模板;
|
|
|
data.BarCodeModel.LabelModel = BarcodeLabelModel.精简模板; |
|
|
|
|
|
|
|
|
//}
|
|
|
} |
|
|
//if (item.Cers != null)
|
|
|
if (item.Cers != null) |
|
|
//{
|
|
|
{ |
|
|
// data.CertificateModel = item.Cers;
|
|
|
data.CertificateModel = item.Cers; |
|
|
|
|
|
|
|
|
//}
|
|
|
} |
|
|
data.ReflashTask = ReflashTask; |
|
|
data.ReflashTask = ReflashTask; |
|
|
|
|
|
|
|
|
App.Current.Dispatcher.Invoke(new Action(() => |
|
|
App.Current.Dispatcher.Invoke(new Action(() => |
|
|