Activities of "dhaoo"

Answer

可以提供个Demo么

Answer

[EngincanV] said:

[dhaoo] said:


hi:
Through the document, I saw the requirements for dynamic or static agents. The interface under the Contracts project can implement the agent, but this interface definition does not exist in the module program of the multi-layer project. What should I do now

Do you have an application service interface defined in your *.Application.Contracts project and referenced in your other module? Typically, in ABP, application service contracts are placed in the *.Application.Contracts layer, and other modules reference that project to access the services.

You can refer to the Service Interface section in the document for more info.

Must the interface defined by *.Application.Contracts be referenced in the module to implement the proxy? Is it referenced in the *.HttpApi project or in the *.httpapi.client

Answer

hi: Through the document, I saw the requirements for dynamic or static agents. The interface under the Contracts project can implement the agent, but this interface definition does not exist in the module program of the multi-layer project. What should I do now

Answer

Hi,I checked the AbpUsers table and found that no new field was added. Where is the storage of this field placed

Answer

Wow, it's amazing. Thank you very much!

Answer

Hi,Why does the microservice version 8.1.3 that I recently created through cli still have this code snippet

Answer

The comment section is the logic for resetting the application if it is not in the dev environment

Answer

Hi, unfortunately, the image quality is not good enough to be seen in the related code. So, can you please share it as a code or send a better image?

Regards.

hi,

Answer

ok, this my controller

using LCFC.MOM.PEC.bPEC1003SMT.bPEC1003SMT;
using LCFC.MOM.PEC.bPEC1003SMT.Extensions;
using LCFC.MOM.PEC.bPEC1003SMT.Localization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Threading.Tasks;
using Volo.Abp;
using Volo.Abp.AspNetCore.Mvc;

namespace LCFC.MOM.PEC.bPEC1003SMT;

[Area(bPEC1003SMTRemoteServiceConsts.ModuleName)]
[RemoteService(Name = bPEC1003SMTRemoteServiceConsts.RemoteServiceName)]
[Route("api/bPEC1003SMT")]
public class bPEC1003SMTController : AbpControllerBase, IbPEC1003SMTAppService
{
    private readonly IbPEC1003SMTAppService _ibPEC1003SMTAppService;

    public bPEC1003SMTController(IbPEC1003SMTAppService ibPEC1003SMTAppService)
    {
        LocalizationResource = typeof(bPEC1003SMTResource);
        _ibPEC1003SMTAppService = ibPEC1003SMTAppService;
    }

    [HttpPost]
    [Route("getList")]
    public async Task<ResultView> GetListAsync([FromBody] QueryDto queryDto)
    {
        var result = await _ibPEC1003SMTAppService.GetListAsync(queryDto);
        return result;
    }

    [HttpPost]
    [Route("add")]
    public async Task<ResultView> AddAsync([FromBody] InsertDto insertDto)
    {
        var result = await _ibPEC1003SMTAppService.AddAsync(insertDto);
        return result;
    }
    [HttpPost]
    [Route("edit")]
    public async Task<ResultView> EditAsync([FromBody] UpdateDto updateDto)
    {
        return await _ibPEC1003SMTAppService.EditAsync(updateDto);
    }

    [HttpPost]
    [Route("delete")]
    public async Task<ResultView> DeleteAsync([FromBody] DeleteDto deleteDto)
    {
        var result = await _ibPEC1003SMTAppService.DeleteAsync(deleteDto);
        return result;
    }

    [HttpPost]
    [Route("exportToExcel")]
    public async Task<ResultView> ExportToExcelAsync([FromBody] QueryDto queryDto)
    {
        var result = await _ibPEC1003SMTAppService.ExportToExcelAsync(queryDto);
        return result;
    }

    [HttpGet]
    [Route("DownloadTemplate")]
    public FileResult DownloadTemplate()
    {
        // 使用NPOI创建模板文件
        IWorkbook workbook = new XSSFWorkbook();
        ISheet sheet = workbook.CreateSheet("Sheet1");

        // 创建标题行
        IRow headerRow = sheet.CreateRow(0);
        headerRow.CreateCell(0).SetCellValue("SKU_PN");
        headerRow.CreateCell(1).SetCellValue("PACKING_TYPE");
        headerRow.CreateCell(2).SetCellValue("PALLET_IN_QTY");
        headerRow.CreateCell(3).SetCellValue("CARTON_IN_QTY");
        headerRow.CreateCell(4).SetCellValue("UNIT_GROSS_WEIGHT");
        headerRow.CreateCell(5).SetCellValue("UNIT_NET_WEIGHT");
        headerRow.CreateCell(6).SetCellValue("PACKAGE_WEIGHT");
        headerRow.CreateCell(7).SetCellValue("PALLET_SIZE_L");
        headerRow.CreateCell(8).SetCellValue("PALLET_SIZE_W");
        headerRow.CreateCell(9).SetCellValue("PALLET_SIZE_H");

        using (var memoryStream = new MemoryStream())
        {
            workbook.Write(memoryStream);
            return File(memoryStream.ToArray(),
                      "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
                      "bPEC1003SMT_Template.xlsx");
        }
    }

    [HttpPost]
    [Route("UploadExcel")]
    public async Task<ResultView> UploadExcelAsync(IFormFile file)
    {
        return await _ibPEC1003SMTAppService.UploadExcelAsync(file);
    }
}
using LCFC.MOM.PEC.bPEC1003SMT.Extensions;
using LCFC.MOM.PEC.bPEC1003SMT.Localization;
using LCFC.MOM.PEC.bPEC1003SMT.Utils;
using Oracle.ManagedDataAccess.Client;
using Microsoft.AspNetCore.Http;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Linq.Dynamic.Core;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Application.Services;
using Volo.Abp.Data;
using Volo.Abp.Users;
using NPOI.Util;

namespace LCFC.MOM.PEC.bPEC1003SMT.bPEC1003SMT
{
    public class bPEC1003SMTAppService : ApplicationService, IbPEC1003SMTAppService
    {
        private readonly IConnectionStringResolver _configuration;
        private readonly ICurrentUser _currentUser;
        private InfoLightDBTools _dbTools;
        private InfoLightDBTXTools _dbTxTools;
        private string _userId;

        public bPEC1003SMTAppService(IConnectionStringResolver configuration,
            ICurrentUser currentUser)
        {
            LocalizationResource = typeof(bPEC1003SMTResource);
            ObjectMapperContext = typeof(bPEC1003SMTApplicationModule);
            _configuration = configuration;
            _currentUser = currentUser;

            _userId = _currentUser.UserName ?? "001"; // TODO: 这里需要改成从当前登录用户获取用户ID

            string connectionString = _configuration.ResolveAsync("MOMDefault").Result;
            _dbTools = new InfoLightDBTools(null, connectionString);
            _dbTxTools = new InfoLightDBTXTools(null, connectionString);
        }


        public async Task<ResultView> AddAsync(InsertDto insertDto)
        {
            insertDto.SkuPn = insertDto.SkuPn.ToUpper().Trim();
            insertDto.PackingType = insertDto.PackingType.ToUpper().Trim();
            insertDto.CountryCode = insertDto.CountryCode.ToUpper().Trim();
            insertDto.VasType = insertDto.VasType.ToUpper().Trim();

            if (string.IsNullOrWhiteSpace(insertDto.SkuPn)
                || string.IsNullOrWhiteSpace(insertDto.PackingType)
                || string.IsNullOrWhiteSpace(insertDto.CountryCode)
                || string.IsNullOrWhiteSpace(insertDto.VasType))
            {
                return await Task.FromResult(ResultView.Error(L["RequiredField"].Value));
            }

            if (insertDto.UnitGrossWeight < insertDto.UnitNetWeight)
            {
                return await Task.FromResult(ResultView.Error(L["GrossWeightGreaterThanNetWeight"].Value));
            }

            if (insertDto.PackingType == "1" && insertDto.PackageWeight > 0)
            {
                return await Task.FromResult(ResultView.Error(L["PackageWeightMustBeZero"].Value));
            }
            
            DBParameter dbParam = new();
            ResultView result;
            ExecutionResult execRes;

            string sql = @$"INSERT INTO SFIS1.C_SKU_C38_PALLET_INFO_T(
SKU_PN, PACKING_TYPE, PALLET_IN_QTY, CARTON_IN_QTY, UNIT_GROSS_WEIGHT,
UNIT_NET_WEIGHT, PACKAGE_WEIGHT, PALLET_SIZE_L, PALLET_SIZE_W, PALLET_SIZE_H,
CREATE_UESER, CREATE_DATE, COUNTRY_CODE, VAS_TYPE)
VALUES(
:SKU_PN, :PACKING_TYPE, :PALLET_IN_QTY, :CARTON_IN_QTY, :UNIT_GROSS_WEIGHT,
:UNIT_NET_WEIGHT, :PACKAGE_WEIGHT, :PALLET_SIZE_L, :PALLET_SIZE_W, :PALLET_SIZE_H,
:CREATE_UESER, SYSDATE, :COUNTRY_CODE, :VAS_TYPE)";

            dbParam.Add("SKU_PN", OracleDbType.Varchar2, insertDto.SkuPn);
            dbParam.Add("PACKING_TYPE", OracleDbType.Varchar2, insertDto.PackingType);
            dbParam.Add("PALLET_IN_QTY", OracleDbType.Int32, insertDto.PalletInQty);
            dbParam.Add("CARTON_IN_QTY", OracleDbType.Int32, insertDto.CartonInQty);
            dbParam.Add("UNIT_GROSS_WEIGHT", OracleDbType.Decimal, insertDto.UnitGrossWeight);
            dbParam.Add("UNIT_NET_WEIGHT", OracleDbType.Decimal, insertDto.UnitNetWeight);
            dbParam.Add("PACKAGE_WEIGHT", OracleDbType.Decimal, insertDto.PackageWeight);
            dbParam.Add("PALLET_SIZE_L", OracleDbType.Decimal, insertDto.PalletSizeL);
            dbParam.Add("PALLET_SIZE_W", OracleDbType.Decimal, insertDto.PalletSizeW);
            dbParam.Add("PALLET_SIZE_H", OracleDbType.Decimal, insertDto.PalletSizeH);
            dbParam.Add("CREATE_UESER", OracleDbType.Varchar2, _userId);
            dbParam.Add("COUNTRY_CODE", OracleDbType.Varchar2, insertDto.CountryCode);
            dbParam.Add("VAS_TYPE", OracleDbType.Varchar2, insertDto.VasType);

            execRes = _dbTools.ExecuteUpdate(sql, dbParam.GetParameters());
            if (execRes.Status)
            {
                if (GetStatus(insertDto.SkuPn))
                {
                    InsertPN(insertDto.SkuPn);
                }
                result = ResultView.Success(execRes.Anything);
            }
            else
            {

                result = ResultView.Error(execRes.Message);
            }
            return await Task.FromResult(result);
        }
        private void InsertPN(string vpn)
        {
            DBParameter dbParam = new();
            string sql = @"Insert into sfism4.u_up2interface_todolist_t
                      (cust_no, type, wip_sn)
                    Values
                      ('NB12', 'W3', :PN)";
            dbParam.Add("PN", OracleDbType.Varchar2 , vpn);
            _ = _dbTools.ExecuteUpdate(sql, dbParam.GetParameters());
        }
        public async Task<ResultView> EditAsync(UpdateDto updateDto)
        {
            updateDto.SkuPn = updateDto.SkuPn.ToUpper().Trim();
            updateDto.PackingType = updateDto.PackingType.ToUpper().Trim();
            updateDto.CountryCode = updateDto.CountryCode.ToUpper().Trim();
            updateDto.VasType = updateDto.VasType.ToUpper().Trim();

            updateDto.OldSkuPn = updateDto.OldSkuPn.ToUpper().Trim();
            updateDto.OldPackingType = updateDto.OldPackingType.ToUpper().Trim();

            if (string.IsNullOrWhiteSpace(updateDto.SkuPn)
                || string.IsNullOrWhiteSpace(updateDto.PackingType)
                || string.IsNullOrWhiteSpace(updateDto.CountryCode)
                || string.IsNullOrWhiteSpace(updateDto.VasType)
                || string.IsNullOrWhiteSpace(updateDto.OldSkuPn)
                || string.IsNullOrWhiteSpace(updateDto.OldPackingType))
            {
                return await Task.FromResult(ResultView.Error(L["RequiredField"].Value)); // 維護欄位不可為空!
            }

            if (updateDto.UnitGrossWeight < updateDto.UnitNetWeight)
            {
                return await Task.FromResult(ResultView.Error(L["GrossWeightGreaterThanNetWeight"].Value)); // UNIT_GROSS_WEIGHT需大於UNIT_NET_WEIGHT
            }

            if (updateDto.PackingType == "1" && updateDto.PackageWeight > 0)
            {
                return await Task.FromResult(ResultView.Error(L["PackageWeightMustBeZero"].Value)); // 单台的packageweight应维护为0
            }

            DBParameter dbParam = new();
            ResultView result;
            ExecutionResult execRes;

            string sql = @$"UPDATE SFIS1.C_SKU_C38_PALLET_INFO_T
    SET
        SKU_PN = :SKU_PN,
	    PACKING_TYPE = :PACKING_TYPE,
	    PALLET_IN_QTY = :PALLET_IN_QTY,
	    CARTON_IN_QTY = :CARTON_IN_QTY,
	    UNIT_GROSS_WEIGHT = :UNIT_GROSS_WEIGHT,
	    UNIT_NET_WEIGHT = :UNIT_NET_WEIGHT,
	    PACKAGE_WEIGHT = :PACKAGE_WEIGHT,
	    PALLET_SIZE_L = :PALLET_SIZE_L,
	    PALLET_SIZE_W = :PALLET_SIZE_W,
	    PALLET_SIZE_H = :PALLET_SIZE_H,
	    UPDATE_USER = :UPDATE_USER,
	    UPDATE_DATE = SYSDATE,
	    COUNTRY_CODE = :COUNTRY_CODE,
	    VAS_TYPE = :VAS_TYPE
    WHERE
        SKU_PN = :OLD_SKU_PN AND PACKING_TYPE = :OLD_PACKING_TYPE";

            dbParam.Add("SKU_PN", OracleDbType.Varchar2, updateDto.SkuPn);
            dbParam.Add("PACKING_TYPE", OracleDbType.Varchar2, updateDto.PackingType);
            dbParam.Add("PALLET_IN_QTY", OracleDbType.Int32, updateDto.PalletInQty);
            dbParam.Add("CARTON_IN_QTY", OracleDbType.Int32, updateDto.CartonInQty);
            dbParam.Add("UNIT_GROSS_WEIGHT", OracleDbType.Decimal, updateDto.UnitGrossWeight);
            dbParam.Add("UNIT_NET_WEIGHT", OracleDbType.Decimal, updateDto.UnitNetWeight);
            dbParam.Add("PACKAGE_WEIGHT", OracleDbType.Decimal, updateDto.PackageWeight);
            dbParam.Add("PALLET_SIZE_L", OracleDbType.Decimal, updateDto.PalletSizeL);
            dbParam.Add("PALLET_SIZE_W", OracleDbType.Decimal, updateDto.PalletSizeW);
            dbParam.Add("PALLET_SIZE_H", OracleDbType.Decimal, updateDto.PalletSizeH);
            dbParam.Add("UPDATE_USER", OracleDbType.Varchar2, _userId);
            dbParam.Add("COUNTRY_CODE", OracleDbType.Varchar2, updateDto.CountryCode);
            dbParam.Add("VAS_TYPE", OracleDbType.Varchar2, updateDto.VasType);
            dbParam.Add("OLD_SKU_PN", OracleDbType.Varchar2, updateDto.OldSkuPn);
            dbParam.Add("OLD_PACKING_TYPE", OracleDbType.Varchar2, updateDto.OldPackingType);

            execRes = _dbTools.ExecuteUpdate(sql, dbParam.GetParameters());
            if (execRes.Status)
            {
                if (GetStatus(updateDto.SkuPn))
                {
                    InsertPN(updateDto.SkuPn);
                }
                result = ResultView.Success(execRes.Anything);
            }
            else
            {

                result = ResultView.Error(execRes.Message);
            }
            return await Task.FromResult(result);
        }
    }
}
Answer

ok,thanks

Showing 1 to 10 of 33 entries
Learn More, Pay Less
33% OFF
All Trainings!
Get Your Deal
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v10.0.0-preview. Updated on September 15, 2025, 14:41