Activities of "dhaoo"

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!

Question
  • hi,I want to add an employee number field to the AbpUsers table and add this field to the functions on the /Identity/Users page. Which methods should I rewrite
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,

Question
  • When I was running the microservice, I found that if the current environment was not the dev environment, the identity would reset my application. Is this considered a bug? If the identity service restarts after I publish the microservice to the production environment, wouldn't all the applications I added previously be reset.
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);
        }
    }
}
Question
  • hi:
  • I sent an ajax request on the web end. When he sent the request to the server through the dynamic proxy, I found through packet capture that the content-type was gone and the request body was also gone. Port 44382 is my server. Under the same controller, there is an api also named post. Adding its dynamic proxy is normal because when proxening, the content-type is gone and the request body is also gone, reporting an error of 415
Question
  • I want to move the Toolbar on the right to the bottom of the navigation bar. How can I rewrite the layout? Also, where can I obtain this part of the source code
Showing 1 to 10 of 47 entries
Boost Your Development
ABP Live Training
Packages
See Trainings
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v9.3.0-preview. Updated on May 15, 2025, 10:28