|
|
@@ -188,13 +188,24 @@ public class FqcInspBillFlowService : IDynamicApiController, ITransient
|
|
|
if (string.IsNullOrWhiteSpace(input.Comment))
|
|
|
throw Oops.Oh("退回必须填写意见");
|
|
|
|
|
|
- await EnsureBillAsync(input.Id);
|
|
|
+ var (_, sourceBillNo) = await EnsureBillAsync(input.Id);
|
|
|
var (_, myTask) = await RequireSupervisorTaskAsync(input.Id);
|
|
|
+ var tid = ResolveTenantOrThrow();
|
|
|
|
|
|
var tran = await _db.AsTenant().UseTranAsync(async () =>
|
|
|
{
|
|
|
- // ReturnToPrev 回 N1;不清 pd/hgsl/bhgsl/clfs、不清 FINSPECTSTATUS/jywcsj,检验员改后重提
|
|
|
+ // ReturnToPrev 回 N1(原流程回退,不重新起流/不改 Initiator/N1 Assignee/jyfzr);
|
|
|
+ // 保留已录检验明细与 pd/hgsl/bhgsl/clfs(不清结果),检验员在原数据上修改后重提。
|
|
|
await _flowEngine.ReturnToPrev(myTask.Id, input.Comment);
|
|
|
+
|
|
|
+ // 业务状态同步:退回后 Flow 回 N1 ⇔ FINSPECTSTATUS 恢复"检验中"(与生成时口径一致),
|
|
|
+ // 与 ReturnToPrev 同一事务,杜绝"Flow回N1但状态仍检验完成"或"状态改了但Reject失败仍N2"的分叉。
|
|
|
+ if (!string.IsNullOrWhiteSpace(sourceBillNo))
|
|
|
+ {
|
|
|
+ await _db.Ado.ExecuteCommandAsync(
|
|
|
+ "UPDATE qms_fqcbj SET FINSPECTSTATUS='检验中' WHERE FBILLNO=@bjbh AND tenant_id=@t",
|
|
|
+ new SugarParameter("@bjbh", sourceBillNo), new SugarParameter("@t", tid));
|
|
|
+ }
|
|
|
});
|
|
|
if (!tran.IsSuccess) throw tran.ErrorException;
|
|
|
|