1
yanjinhui
2025-09-29 18ef8c37e6290ba6f47cbd5bbd26e56a682d767e
´úÂë¹ÜÀí/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/MedicineGoodsServices.cs
@@ -2,6 +2,7 @@
using Masuit.Tools;
using Newtonsoft.Json;
using SharpCompress.Common;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -14,8 +15,8 @@
using WIDESEA_ISquareCabinRepository;
using WIDESEA_ISquareCabinServices;
using WIDESEA_Model.Models;
using WIDESEA_SquareCabinRepository;
using static WIDESEA_DTO.SquareCabin.OrderDto;
using static WIDESEA_DTO.SquareCabin.TowcsDto;
namespace WIDESEA_SquareCabinServices
{
@@ -59,9 +60,30 @@
                    return responseContent.OK("无新药品数据");
                }
                foreach (var Medicat in response.data)
                {
                    var entity = new Dt_MedicineGoods
                #region
                //foreach (var Medicat in response.data)
                //{
                //    var entity = new Dt_MedicineGoods
                //    {
                //        Goods_no = Medicat.goods_no,
                //        Goods_spm = Medicat.goods_spm,
                //        Model = Medicat.model,
                //        Factory = Medicat.factory,
                //        Unit = Medicat.unit,
                //        Item_Iength = Medicat.item_length,
                //        Item_weight = Medicat.item_weight,
                //        Item_hight = Medicat.item_hight,
                //        Item_volumn = Medicat.item_volumn,
                //        Storage_cond = Medicat.storage_cond,
                //        Remark = Medicat.remark,
                //        GoodStatus = "未下发",
                //        ModifyDate = Medicat.modify_date
                //    };
                //    AddData(entity);
                //}
                #endregion
                // æ”¶é›†æ‰€æœ‰è¦æ’入的实体
                var entityList = response.data.Select(Medicat => new Dt_MedicineGoods
                    {
                        Goods_no = Medicat.goods_no,
                        Goods_spm = Medicat.goods_spm,
@@ -74,11 +96,13 @@
                        Item_volumn = Medicat.item_volumn,
                        Storage_cond=Medicat.storage_cond,
                        Remark=Medicat.remark,
                    GoodStatus = "未下发",
                        ModifyDate = Medicat.modify_date
                    };
                    AddData(entity);
                }
                }).ToList();
                // ä¸€æ¬¡æ€§æ‰¹é‡æ’入数据库
                Db.Insertable(entityList).ExecuteCommand();
                ProductSynchronous();
                return responseContent.OK("同步成功");
            }
            
@@ -88,6 +112,85 @@
                return responseContent.Error(ex.Message);
            }
        }
        /// <summary>
        /// å‘给下游wcs同步药品信息
        /// </summary>
        /// <returns></returns>
        public WebResponseContent ProductSynchronous()
        {
            try
            {
                //先找到所有未下发的药品
                var list = BaseDal.QueryData(x => x.GoodStatus == "未下发").ToList();
                if (list == null || !list.Any())
                {
                    return new WebResponseContent().OK("无未下发药品");
                }
                //找到了就将整个list发给下游系统
                foreach (var item in list)
                {
                    var medicineDTO = new ProductInfo
                    {
                        //用户code
                        customerCode = "905",
                        //物料类型
                        materialCode = "YY",
                        //产品编码
                        productCode= item.Goods_no,
                        //产品名
                        productName =item.Goods_spm ,
                        //产品条码
                        productBarCode= item.Goods_no,
                        //规格
                        productSpecifications=item.Model,
                        //单位
                        unit = item.Unit,
                        //长
                        singleProductLongNum = item.Item_Iength.ToString(),
                        //宽
                        singleProductWideNum = item.Item_weight.ToString(),
                        //高
                        singleProductHighNum = item.Item_hight.ToString(),
                        //重量
                        singleProductWeight = item.Item_weight.ToString(),
                        //体积
                        singleProductVolume = item.Item_volumn.ToString(),
                        //是否取消
                        Is_delete = "0"
                    };
                    var url = "http://172.16.1.2:9357/file-admin/api/product/productSynchronous";
                    var result = HttpHelper.Post(url, medicineDTO.ToJsonString());
                    var resp = JsonConvert.DeserializeObject<TowcsResponse<object>>(result);
                    if (resp!=null&&resp.code=="0")
                    {
                        //更新药品状态-已完成
                      Db.Updateable<Dt_MedicineGoods>()
                            .SetColumns(x => x.GoodStatus == "下发完成")
                            .Where(x => x.Goods_no == item.Goods_no)
                            .ExecuteCommand();
                    }
                    else
                    {
                        SendErrorToUpstream(5, medicineDTO.materialCode, resp?.msg ?? "WCS药品信息同步失败", "");
                        return new WebResponseContent { Status = false, Message = "订单推送失败" };
                    }
                }
                return new WebResponseContent { Status = true, Message = "成功" };
            }
            catch (Exception ex)
            {
                return new WebResponseContent { Status = false, Message = ex.Message };
            }
        }
        /// <summary>
        /// æŽ¨é€å¼‚常信息给上游系统1.入库单接口;2.入库单报完成接口;3.出库单接口;4.出库报完成接口;5.药品基础信息同步接口;6.供应商信息接口;7.客户信息接口;8.库存
@@ -115,5 +218,7 @@
                Console.WriteLine("异常接口推送失败:" + e.Message);
            }
        }
    }
}