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);
}
}
}
ok,thanks
Must it be of svg type
I want to use charts with MVC/Razor. Does the abp framework support it? I see that angular integrates with apexcharts
If I do not log in to the account that has purchased the commercial abp framework, or the account that logs in does not have the permission of the commercial version, can I not run the commercial version of the program? Should every developer log into my current account