最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

基于Springboot實(shí)現(xiàn)送水公司信息管理

2022-02-28 13:35 作者:指南針畢業(yè)設(shè)計(jì)  | 我要投稿

?作者主頁(yè):編程指南針


?簡(jiǎn)介:Java領(lǐng)域優(yōu)質(zhì)創(chuàng)作者、CSDN博客專家? Java項(xiàng)目、簡(jiǎn)歷模板、學(xué)習(xí)資料、面試題庫(kù)、技術(shù)互助

文末獲取源碼

項(xiàng)目編號(hào):BS-XX-014

項(xiàng)目描述

springboot實(shí)現(xiàn)的送水后臺(tái)管理系統(tǒng)

運(yùn)行環(huán)境

jdk8+tomcat7+mysql+IntelliJ IDEA+maven

項(xiàng)目技術(shù)(必填)

SpringBoot+mybatis

數(shù)據(jù)庫(kù)文件(可選)

壓縮包自帶

依賴包文件(可選)

maven項(xiàng)目


項(xiàng)目運(yùn)行截圖:



系統(tǒng)主界面

客戶管理


送水工管理


送水歷史訂單


工資計(jì)算

統(tǒng)計(jì)送水?dāng)?shù)量


package com.minzu.service.impl;import cn.hutool.crypto.digest.DigestUtil;import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;import com.minzu.entities.Account;import com.minzu.mapper.AccountMapper;import com.minzu.service.AccountService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import java.util.Objects;/** * TODO:登錄業(yè)務(wù)邏輯實(shí)現(xiàn)類 * 被@Service注解修飾的類是業(yè)務(wù)邏輯實(shí)現(xiàn)類 * @author znz * @version 1.0 * @date 2022/1/2 16:25 */@Servicepublic class AccountServiceImpl implements AccountService { ? ?/** ? ? * service依賴mapper,程序運(yùn)行期SpringBoot容器自動(dòng)幫我們 ? ? * 按照類型裝配(將AccountMapper對(duì)象自動(dòng)裝配到AccountServiceImpl里面) ? ? */ ? ?@Autowired ? ?private AccountMapper accountMapper; ? ?/** ? ? * 處理用戶登錄的業(yè)務(wù)邏輯 ? ? * 步驟: ? ? * 1 根據(jù)用戶名查詢對(duì)應(yīng)的賬戶 ? ? * 2 判斷賬戶對(duì)象(Account)是否為空 ? ? * 3 如果為空登錄失敗(數(shù)據(jù)庫(kù)沒(méi)有這個(gè)用戶),返回false ? ? * 4 如果非空,對(duì)表單輸入的密碼進(jìn)行MD5加密 ? ? * 5 判斷加密之后的密碼和數(shù)據(jù)庫(kù)的密碼是否相等 ? ? * 6 如果相等登錄成功,返回true ? ? * 7 如果不相等登錄失敗,返回false ? ? * ? ? * @param userName 瀏覽器表單輸入的用戶名 ? ? * @param userPwd ?瀏覽器表單輸入的密碼 ? ? * @return 登錄成功返回true,否則返回false ? ? */ ? ?@Override ? ?public boolean login(String userName, String userPwd) { ? ? ? ?// 封裝查詢條件 ? ? ? ?QueryWrapper<Account> qw = new QueryWrapper<>(); ? ? ? ?qw.eq("user_name",userName); ? ? ? ?// 根據(jù)用戶名查詢對(duì)應(yīng)的賬戶 ? ? ? ?Account account = accountMapper.selectOne(qw); ? ? ? ?// 條件成立:表示沒(méi)有對(duì)應(yīng)的賬戶,登錄失敗,返回false ? ? ? ?if (null == account) { ? ? ? ? ? ?return false; ? ? ? ?} ? ? ? ?// 對(duì)表單輸入的密碼進(jìn)行加密 ? ? ? ?// encodingPwd存儲(chǔ)加密之后的密碼 ? ? ? ?String encodingPwd = DigestUtil.md5Hex(userPwd); ? ? ? ?// 將加密之后的密碼和數(shù)據(jù)庫(kù)密碼進(jìn)行比較,條件成立:登錄成功,返回true。否則登錄失敗,返回false ? ? ? ?if (Objects.equals(encodingPwd,account.getUserPwd())) { ? ? ? ? ? ?return true; ? ? ? ?} else { ? ? ? ? ? ?return false; ? ? ? ?} ? ?} }


package com.minzu.service.impl;import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;import com.minzu.entities.Customer;import com.minzu.mapper.CustomerMapper;import com.minzu.service.CustomerService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import java.util.List;/** * TODO: 客戶管理業(yè)務(wù)邏輯接口的實(shí)現(xiàn)類 * 被@Service注解修飾的類是接口實(shí)現(xiàn)類,SpringBoot啟動(dòng)的時(shí)候會(huì)自動(dòng)注入 * @author znz * @version 1.0 * @date 2022/1/1 8:27 */@Servicepublic class CustomerServiceImpl implements CustomerService { ? ?/** ? ? * 自動(dòng)裝配客戶管理Mapper接口 ? ? */ ? ?@Autowired ? ?private CustomerMapper customerMapper; ? ?/** ? ? * 查詢所有的客戶信息 ? ? * ? ? * @return 客戶列表 ? ? */ ? ?@Override ? ?public List<Customer> listCustomer() { ? ? ? ?return customerMapper.selectList(null); ? ?} ? ?/** ? ? * 添加客戶信息 ? ? * ? ? * @param customer 需要添加的客戶對(duì)象 ? ? * @return 受影響行數(shù),大于0添加成功,否則添加失敗 ? ? */ ? ?@Override ? ?public int saveCustomer(Customer customer) { ? ? ? ?return customerMapper.insert(customer); ? ?} ? ?/** ? ? * 根據(jù)客戶名稱搜索滿足條件的客戶列表 ? ? * 例如:例如:使用模糊查詢,搜索所有包含“老”的客戶信息 ? ? * 步驟: ? ? * 1 定義QueryWrapper對(duì)象 ? ? * 2 定義查詢條件 ? ? * 3 調(diào)用CustomerMapper對(duì)象的selectList方法,將QueryWrapper對(duì)象注入到該方法中 ? ? * 4 返回搜索結(jié)果 ? ? * @param userName 搜索的查詢條件 ? ? * @return 滿足條件的客戶列表 ? ? */ ? ?@Override ? ?public List<Customer> searchCustomer(String userName) { ? ? ? ?QueryWrapper<Customer> qw = new QueryWrapper<>(); ? ? ? ?qw.like("cust_name",userName); ? ? ? ?List<Customer> custList = customerMapper.selectList(qw); ? ? ? ?return custList; ? ?} ? ?/** ? ? * 根據(jù)客戶ID刪除客戶信息 ? ? * 步驟: ? ? * 1 創(chuàng)建QueryWrapper對(duì)象 ? ? * 2 設(shè)置要?jiǎng)h除的條件 ? ? * 3 根據(jù)id刪除客戶信息,返回受影響行數(shù) ? ? * @param cid 客戶ID ? ? * @return 受影響行數(shù),大于0刪除成功,否則刪除失敗 ? ? */ ? ?@Override ? ?public int deleteCustomerById(Integer cid) { ? ? ? ?QueryWrapper<Customer> qw = new QueryWrapper<>(); ? ? ? ?qw.eq("cid",cid); ? ? ? ?return customerMapper.delete(qw); ? ?} ? ?/** ? ? * 根據(jù)客戶id查詢對(duì)應(yīng)的客戶信息 ? ? * 步驟: ? ? * 1 創(chuàng)建QueryWrapper對(duì)象 ? ? * 2 設(shè)置查詢條件 ? ? * 3 調(diào)用CustomerMapper對(duì)象selectOne方法,并將QueryWrapper對(duì)象注入到該方法中,返回客戶信息 ? ? * @param cid 客戶id ? ? * @return 客戶信息 ? ? */ ? ?@Override ? ?public Customer getCustomerById(Integer cid) { ? ? ? ?QueryWrapper<Customer> qw = new QueryWrapper<>(); ? ? ? ?qw.eq("cid",cid); ? ? ? ?return customerMapper.selectOne(qw); ? ?} ? ?/** ? ? * 修改客戶信息 ? ? * 步驟: ? ? * 1 創(chuàng)建QueryWrapper對(duì)象 ? ? * 2 設(shè)置要修改的條件(根據(jù)ID進(jìn)行修改) ? ? * 3 調(diào)用CustomerMapper的update方法修改客戶信息,并返回受影響行數(shù) ? ? * @param customer 采集的客戶信息 ? ? * @return 受影響行數(shù) ? ? */ ? ?@Override ? ?public int updateCustomer(Customer customer) { ? ? ? ?QueryWrapper<Customer> qw = new QueryWrapper<>(); ? ? ? ?qw.eq("cid",customer.getCid()); ? ? ? ?return customerMapper.update(customer,qw); ? ?} }

package com.minzu.service.impl;import cn.hutool.core.util.StrUtil;import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;import com.minzu.entities.History;import com.minzu.mapper.HistoryMapper;import com.minzu.service.HistoryService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import java.util.ArrayList;import java.util.List;/** * TODO: 送水歷史管理接口實(shí)現(xiàn)類 * * @author znz * @version 1.0 * @date 2022/1/3 8:56 */@Servicepublic class HistoryServiceImpl implements HistoryService { ? ?@Autowired ? ?private HistoryMapper historyMapper; ? ?/** ? ? * 查詢所有的送水歷史信息 ? ? * @return 送水歷史列表 ? ? */ ? ?@Override ? ?public List<History> listHistory() { ? ? ? ?return historyMapper.listHistory(); ? ?} ? ?/** ? ? * 添加送水歷史 ? ? * ? ? * @param history 表單采集的送水歷史信息 ? ? * @return 受影響行數(shù),大于0添加成功,否則添加失敗 ? ? */ ? ?@Override ? ?public int saveHistory(History history) { ? ? ? ?return historyMapper.saveHistory(history); ? ?} ? ?/** ? ? * 根據(jù)送水歷史ID查詢對(duì)應(yīng)的送水歷史 ? ? * 用途:修改之前的數(shù)據(jù)回顯 ? ? * ? ? * @param hid 送水歷史ID ? ? * @return 送水歷史信息 ? ? */ ? ?@Override ? ?public History getHistoryById(Integer hid) { ? ? ? ?return historyMapper.getHistoryById(hid); ? ?} ? ?/** ? ? * 修改送水歷史 ? ? * ? ? * @param history 表單采集的的送水歷史信息 ? ? * @return update語(yǔ)句受影響行數(shù),大于0修改成功,否則修改失敗 ? ? */ ? ?@Override ? ?public int updateHistory(History history) { ? ? ? ?return historyMapper.updateHistory(history); ? ?} ? ?/** ? ? * 批量刪除 ? ? * ? ? * @param idList 需要批量刪除的送水歷史id列表 ? ? * @return 受影響行數(shù),大于0批量刪除成功,否批量刪除失敗 ? ? */ ? ?@Override ? ?public int batchDeleteHistory(String idList) { ? ? ? ?// 字符串轉(zhuǎn)換為L(zhǎng)ist集合 ? ? ? ?String[] split = StrUtil.split(idList, ","); ? ? ? ?List<Integer> ids = new ArrayList<>(); ? ? ? ?for (String id : split) { ? ? ? ? ? ?if (StrUtil.isNotEmpty(id)) { ? ? ? ? ? ? ? ?ids.add(Integer.parseInt(id)); ? ? ? ? ? ?} ? ? ? ?} ? ? ? ?return historyMapper.batchDeleteHistory(ids); ? ?} }


package com.minzu.service.impl;import cn.hutool.core.util.StrUtil;import com.minzu.entities.Salary;import com.minzu.entities.Worker;import com.minzu.mapper.SalaryMapper;import com.minzu.service.SalaryService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import java.text.SimpleDateFormat;import java.util.*;import java.util.stream.Collectors;/** * TODO: 計(jì)算工資業(yè)務(wù)邏輯實(shí)現(xiàn)類 * @author znz * @version 1.0 * @date 2022/1/2 8:38 */@Servicepublic class SalaryServiceImpl implements SalaryService { ? ?/** ? ? * 自動(dòng)裝配SalaryMapper對(duì)象 ? ? */ ? ?@Autowired ? ?private SalaryMapper salaryMapper; ? ?/** ? ? * 計(jì)算所有送水工的工資 ? ? * @return 工資列表 ? ? */ ? ?@Override ? ?public List<Salary> listCalcSalary() { ? ? ? ?return salaryMapper.listCalcSalary(); ? ?} ? ?/** ? ? * 根據(jù)條件計(jì)算某一段時(shí)間的送水工工資 ? ? * ? ? * @param startDate 開(kāi)始時(shí)間 ? ? * @param endDate ? 結(jié)束時(shí)間 ? ? * @return 工資列表 ? ? */ ? ?@Override ? ?public List<Salary> listCalcSalaryByCondition(String startDate, String endDate) { ? ? ? ?// 條件成立:表示輸入的結(jié)束時(shí)間為Null,將系統(tǒng)當(dāng)前時(shí)間作為結(jié)束時(shí)間 ? ? ? ?if(StrUtil.isEmpty(endDate)){ ? ? ? ? ? ?long currentTime = System.currentTimeMillis(); ? ? ? ? ? ?Date dt = new Date(currentTime); ? ? ? ? ? ?SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); ? ? ? ? ? ?endDate = sdf.format(dt); ? ? ? ?} ? ? ? ?// salaryList 在某個(gè)時(shí)間段已經(jīng)為客戶送過(guò)水的送水工信息 ? ? ? ?List<Salary> salaryList = salaryMapper.listCalcSalaryByCondition(startDate, endDate); ? ? ? ?// 沒(méi)有為客戶送過(guò)水的送水工信息 ? ? ? ?List<Worker> workerList = salaryMapper.queryNonSendWaterWorker(); ? ? ? ?// 獲取以送水的送水工名稱 ? ? ? ?List<String> workerNameList = ? ? ? ? ? ? ? ?salaryList.stream() ? ? ? ? ? ? ? ? ? ? ? ?.map(Salary::getWorkerName) ? ? ? ? ? ? ? ? ? ? ? ?.collect(Collectors.toList()); ? ? ? ?// 將沒(méi)有送水的送水工信息合并到salaryList ? ? ? ?// 遍歷workerList,將worker對(duì)象的數(shù)據(jù)注入到Salary對(duì)象中,讓后添加到salaryList集合 ? ? ? ?workerList.forEach(worker->{ ? ? ? ? ? ?// 條件成立:表示沒(méi)有沒(méi)有送水的送水工在salaryList集合中不存在,將其放入集合 ? ? ? ? ? ?if (!workerNameList.contains(worker.getWorkerName())){ ? ? ? ? ? ? ? ?Salary sa = new Salary(); ? ? ? ? ? ? ? ?sa.setWorkerName(worker.getWorkerName()); ? ? ? ? ? ? ? ?sa.setWorkerSalary(worker.getWorkerSalary()); ? ? ? ? ? ? ? ?sa.setWorkerMoney(worker.getWorkerMoney()); ? ? ? ? ? ? ? ?// 沒(méi)有送水的送水工默認(rèn)送水?dāng)?shù)量為0 ? ? ? ? ? ? ? ?sa.setSendWaterCount(0); ? ? ? ? ? ? ? ?// 沒(méi)有送水的送水工默認(rèn)實(shí)發(fā)工資為基本工資 ? ? ? ? ? ? ? ?sa.setFinalSalary(Double.valueOf(worker.getWorkerSalary())); ? ? ? ? ? ? ? ?salaryList.add(sa); ? ? ? ? ? ?} ? ? ? ?}); ? ? ? ?// 將“實(shí)發(fā)工資”按照降序排序 ? ? ? ?// 需要對(duì)每個(gè)送水工的”實(shí)發(fā)工資“進(jìn)行比較 ? ? ? ?Collections.sort(salaryList,(o1,o2)->{ ? ? ? ? ? ?if(o1.getFinalSalary() > o2.getFinalSalary()){ ? ? ? ? ? ? ? ?return -1; ? ? ? ? ? ?} else if (o1.getFinalSalary() < o2.getFinalSalary()){ ? ? ? ? ? ? ? ?return 1; ? ? ? ? ? ?} else { ? ? ? ? ? ? ? ?return 0; ? ? ? ? ? ?} ? ? ? ?});// ? ? ? ?Collections.sort(salaryList, new Comparator<Salary>() {// ? ? ? ? ? ?@Override// ? ? ? ? ? ?public int compare(Salary o1, Salary o2) {// ? ? ? ? ? ? ? ?if(o1.getFinalSalary() > o2.getFinalSalary()){// ? ? ? ? ? ? ? ? ? ?return -1;// ? ? ? ? ? ? ? ?} else if(o1.getFinalSalary() < o2.getFinalSalary()) {// ? ? ? ? ? ? ? ? ? ?return 1;// ? ? ? ? ? ? ? ?} else {// ? ? ? ? ? ? ? ? ? ?return 0;// ? ? ? ? ? ? ? ?}// ? ? ? ? ? ?}// ? ? ? ?}); ? ? ? ?return salaryList; ? ?} }

package com.minzu.service.impl;import com.minzu.entities.WaterDetails;import com.minzu.mapper.WaterDetailsMapper;import com.minzu.service.WaterDetailsService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import java.util.List;/** * TODO * * @author znz * @version 1.0 * @date 2022/1/2 ?15:36 */@Servicepublic class WaterDetailsServiceImpl implements WaterDetailsService { ? ?@Autowired ? ?private WaterDetailsMapper waterDetailsMapper; ? ?/** ? ? * 查詢每個(gè)送水工送水的詳細(xì)信息 ? ? * ? ? * @return 送水信息列表 ? ? */ ? ?@Override ? ?public List<WaterDetails> queryWaterDetails() { ? ? ? ?return waterDetailsMapper.queryWaterDetails(); ? ?} }




基于Springboot實(shí)現(xiàn)送水公司信息管理的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
广丰县| 新津县| 延安市| 石棉县| 建湖县| 绍兴县| 甘德县| 雅江县| 永顺县| 兰溪市| 顺昌县| 军事| 城固县| 四平市| 张北县| 康乐县| 越西县| 蒙自县| 南召县| 绥阳县| 南木林县| 黑水县| 盘锦市| 松原市| 英山县| 隆化县| 兴山县| 平谷区| 深州市| 随州市| 信阳市| 濉溪县| 霍林郭勒市| 安顺市| 永安市| 永州市| 巴林左旗| 子长县| 辽宁省| 柳河县| 房产|