Hi,I checked the AbpUsers table and found that no new field was added. Where is the storage of this field placed
Wow, it's amazing. Thank you very much!
Hi,Why does the microservice version 8.1.3 that I recently created through cli still have this code snippet
The comment section is the logic for resetting the application if it is not in the dev environment
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);
}
}
}