123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312 |
- using Microsoft.International.Converters.PinYinConverter;
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Configuration;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Net.Http;
- using System.Net.Http.Json;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- using wispro.sp.entity;
- using wispro.sp.share;
- using wispro.sp.utility;
- namespace wispro.sp.winClient
- {
- public partial class Form1 : Form
- {
- public Form1()
- {
- InitializeComponent();
- }
- private void button1_Click(object sender, EventArgs e)
- {
- DateTime startTime = DateTime.Now;
- frmMerageExcel frm = new frmMerageExcel();
- if (frm.ShowDialog() == DialogResult.OK)
- {
- MessageBox.Show($"合并完成,合并后文件保存在:\r\n{frm.SaveFilePath}\r\n用时:{DateTime.Now - startTime }");
- }
- }
- private void button2_Click(object sender, EventArgs e)
- {
- OpenFileDialog ofd = new OpenFileDialog()
- {
- Multiselect = false,
- Filter = "*.xls|*.xlsx"
- };
- string strDinashuRegularFile = ConfigurationSettings.AppSettings["DinashuRegularFile"];
- if (ofd.ShowDialog() == DialogResult.OK)
- {
- new ExcelHelper().FillDianShu(ofd.FileName, strDinashuRegularFile);
- }
- MessageBox.Show("完成点数输入!");
- }
- private async void button3_Click(object sender, EventArgs e)
- {
- await InputPerformanceItem();
- }
- private async Task InputPerformanceItem()
- {
- DataTable dt = NPOIExcel.ExcelToDataTable("ExcelFiles\\21.01-21.06 工程师绩效报表-总表.xlsx", true);
- List<Staff> Staffs =await GetStaffsAsync();
- foreach(DataRow row in dt.Rows)
- {
- PerformanceItem item = new PerformanceItem();
- item.CaseNo = row["我方文号"].ToString().Trim();
- string strjxyf = row["绩效核算月份"].ToString().Trim();
- string[] temYFs = strjxyf.Split(new char[] { '.' });
- item.Year = int.Parse(temYFs[0]);
- item.Month = int.Parse(temYFs[1]);
- item.ApplicationType = row["申请类型"].ToString().Trim();
- item.BusinessType = row["业务类型"].ToString().Trim();
- item.AgentFeedbackMemo = row["备注(填表注意事项)"].ToString().Trim();
- item.DoItem = row["处理事项"].ToString().Trim();
- item.CaseStage = row["案件阶段"].ToString().Trim();
- item.CaseCoefficient = row["案件系数"].ToString().Trim();
- item.DoItemCoefficient = row["处理事项系数"].ToString().Trim();
- item.PreOastaffId = GetStaff(row["前一次OA处理人"].ToString().Trim(),Staffs );
- string strHandler = row["处理人"].ToString().Trim();
- string[] temHandlers = strHandler.Split(new char[] { ',' },StringSplitOptions.RemoveEmptyEntries);
- item.ItemStaffs = new List<ItemStaff>();
- foreach (string name in temHandlers)
- {
- ItemStaff itemStaff = new ItemStaff();
- int? iTem = GetStaff(name,Staffs);
- if ((iTem != null))
- {
- //itemStaff.Item = item;
- itemStaff.DoPersonId = iTem.Value;
- item.ItemStaffs.Add(itemStaff);
- }
- else
- {
- itemStaff.DoPerson = new Staff() { Name = name,
- Account = name,
- Password = "12345678",
- IsCalPerformsnce = false,
- Status = "已离职",
- StaffGradeId = 4
- };
- item.ItemStaffs.Add(itemStaff);
- }
- }
- if(item.ItemStaffs.Count == 0)
- {
- System.Diagnostics.Debug.WriteLine($"没有处理人: {item.CaseNo}\t{item.DoItem}");
- }
- item.ReviewerId = GetStaff(row["核稿人"].ToString().Trim(), Staffs);
- item.Customer = new Customer() { Name = row["客户名称"].ToString().Trim() };
- item.ApplicationName = row["申请人"].ToString().Trim();
- DateTime temDate = new DateTime();
- if (DateTime.TryParse(row["处理事项完成日"].ToString().Trim(),out temDate))
- {
- item.FinishedDate = temDate;
- }
- //定稿日
- if (DateTime.TryParse(row["定稿日"].ToString().Trim(), out temDate))
- {
- item.FinalizationDate = temDate;
- }
- //返稿日
- if (DateTime.TryParse(row["返稿日"].ToString().Trim(), out temDate))
- {
- item.ReturnDate = temDate;
- }
- //案件类型
- item.CaseType = row["案件类型"].ToString().Trim();
- //案件状态
- item.CaseState = row["案件状态"].ToString().Trim();
- //处理事项备注
- item.DoItemMemo = row["处理事项备注"].ToString().Trim();
- //处理状态
- item.DoItemState = row["处理状态"].ToString().Trim();
- //案件名称
- item.CaseName = row["案件名称"].ToString().Trim();
- //委案日期
- if (DateTime.TryParse(row["委案日期"].ToString().Trim(), out temDate))
- {
- item.EntrustingDate = temDate;
- }
- //客户期限
- if (DateTime.TryParse(row["客户期限"].ToString().Trim(), out temDate))
- {
- item.CustomerLimitDate = temDate;
- }
- //内部期限
- if (DateTime.TryParse(row["内部期限"].ToString().Trim(), out temDate))
- {
- item.InternalDate = temDate;
- }
- //初稿日
- if (DateTime.TryParse(row["初稿日"].ToString().Trim(), out temDate))
- {
- item.FirstDraftDate = temDate;
- }
- //备注(发文严重超期是否属客观原因,若为否,请填写原因)
- item.OverDueMemo = row["备注(发文严重超期是否属客观原因,若为否,请填写原因)"].ToString().Trim();
- //案件备注
- item.CaseMemo = row["案件备注"].ToString().Trim();
- await SavePerformanceItem(item);
- }
- }
- private int? GetStaff(string v, List<Staff> staffs)
- {
- if (!string.IsNullOrEmpty(v))
- {
- foreach(Staff sf in staffs)
- {
- if(sf.Name == v)
- {
- return sf.Id;
- }
- }
- }
- return null;
- }
- private async Task NewMethod()
- {
- DataTable dt = NPOIExcel.ExcelToDataTable("ExcelFiles\\210730-威世博人员清单v1r01-xm.xlsx", true);
- List<StaffGrade> staffGrades = await GetStaffGrades();
- foreach (DataRow row in dt.Rows)
- {
- Staff staff = new Staff();
- staff.Name = row["姓名"].ToString().Trim();
- staff.Status = row["岗位状态"].ToString().Trim();
- staff.Department = row["部门"].ToString();
- staff.WorkPlace = row["工作地"].ToString();
- staff.EntyDate = DateTime.Parse(row["入职时间"].ToString());
- staff.IsCalPerformsnce = (row["是否核算绩效"].ToString() == "是");
- staff.Memo = row["备注"].ToString().Trim();
- string strGrade = row["工程师等级"].ToString().Trim() + "级";
- foreach (StaffGrade sg in staffGrades)
- {
- if (strGrade.Trim() == sg.Grade.Trim())
- {
- staff.StaffGradeId = sg.Id;
- break;
- }
- }
- staff.Account = getPinYin(staff.Name.Trim());
- staff.Mail = staff.Account + "@china-wispro.com";
- staff.Password = "12345678";
- //staff.StaffGradeId = row["姓名"].ToString();
- await SaveStaff(staff);
- }
- }
- private string getPinYin(string str)
- {
- string retStr = "";
-
- for(int i = 0; i < str.Length; i++)
- {
- ChineseChar cc = new ChineseChar(str[i]);
-
- retStr = retStr + cc.Pinyins[0].ToLower().Replace("1","")
- .Replace("2", "").Replace("3", "").Replace("4", "");
- }
- return retStr;
- }
- private async Task SaveStaff(Staff obj)
- {
- HttpClient http = new HttpClient();
- var data = await http.PostAsJsonAsync<wispro.sp.entity.Staff>($"http://localhost:39476/api/Staff/Save", obj);
- if (data.IsSuccessStatusCode)
- {
- ApiSaveResponse result = await data.Content.ReadFromJsonAsync<ApiSaveResponse>();
- //await Task.Delay(1000);
- if (result.Success)
- {
- }
- else
- {
- }
- }
- else
- {
- }
- }
- private async Task SavePerformanceItem(PerformanceItem obj)
- {
- HttpClient http = new HttpClient();
- var data = await http.PostAsJsonAsync<PerformanceItem>($"http://localhost:39476/api/PerformanceItem/New", obj);
- if (data.IsSuccessStatusCode)
- {
- ApiSaveResponse result = await data.Content.ReadFromJsonAsync<ApiSaveResponse>();
- //await Task.Delay(1000);
- if (result.Success)
- {
- }
- else
- {
- System.Diagnostics.Debug.WriteLine($"保存错误: {obj.CaseNo}\t{obj.DoItem}\r\n{result.ErrorMessage}");
- }
- }
- else
- {
- System.Diagnostics.Debug.WriteLine($"调用API错误: {obj.CaseNo}\t{obj.DoItem}");
- }
- }
- private async Task<List<StaffGrade>> GetStaffGrades()
- {
- HttpClient http = new HttpClient();
- var _StaffGrade = await http.GetFromJsonAsync<List<StaffGrade>>($"http://localhost:39476/api/StaffGrade/GetAll");
- return _StaffGrade;
- }
- private async Task<List<Staff>> GetStaffsAsync()
- {
- HttpClient http = new HttpClient();
- ListApiResponse<Staff> data = await http.GetFromJsonAsync<ListApiResponse<Staff>>($"http://localhost:39476/api/Staff/Query?pageIndex=1&pageSize=200");
- return data.Results;
- }
- }
- }
|