作者 雷海东

月工时信息视图展示、工资导入去空格

正在显示 19 个修改的文件 包含 326 行增加170 行删除
... ... @@ -288,6 +288,28 @@ public class JeecgController<T, S extends IService<T>> {
return Result.error("文件导入失败!");
}
// 去除列表中对象字段的空格
private void trimSpaces(List<T> list) {
for (T item : list) {
Field[] fields = item.getClass().getDeclaredFields();
for (Field field : fields) {
field.setAccessible(true); // 确保可以访问私有字段
try {
if (field.getType() == String.class) {
String value = (String) field.get(item);
if (value != null) {
// 去除空格并更新字段值
String trimmedValue = value.replaceAll("\\s", "");
field.set(item, trimmedValue);
}
}
} catch (IllegalAccessException e) {
// 异常处理
}
}
}
}
//员工基本信息导入
protected Result<?> importExcelbase(HttpServletRequest request, HttpServletResponse response, Class<T> clazz) {
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
... ... @@ -302,20 +324,91 @@ public class JeecgController<T, S extends IService<T>> {
params.setNeedSave(true);
try {
List<T> list = ExcelImportUtil.importExcel(file.getInputStream(), clazz, params);
// 去除导入数据的空格
trimSpaces(list);
List<T> dataListToSave = new ArrayList<>();
for (T data : list) {
if (data != null) {
// 获取对象的所有字段
Field[] fields = data.getClass().getDeclaredFields();
boolean hasNonNullValue = false;
for (Field field : fields) {
// 排除 serialVersionUID 字段
if ("serialVersionUID".equals(field.getName())) {
continue;
}
field.setAccessible(true); // 设置字段可访问
try {
// 获取字段值,并检查是否为空
Object value = field.get(data);
if (value != null) {
hasNonNullValue = true;
break;
}
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
if (hasNonNullValue) {
//update-begin-author:taoyan date:20190528 for:批量插入数据
long start = System.currentTimeMillis();
service.saveBatch(list);
//400条 saveBatch消耗时间1592毫秒 循环插入消耗时间1947毫秒
//1200条 saveBatch消耗时间3687毫秒 循环插入消耗时间5212毫秒
log.info("消耗时间" + (System.currentTimeMillis() - start) + "毫秒");
//update-end-author:taoyan date:20190528 for:批量插入数据
return Result.ok("文件导入成功!数据行数:" + list.size());
// 如果至少有一个字段值不为空,则保存数据到待保存列表
dataListToSave.add(data);
}
}
}
if (!dataListToSave.isEmpty()) {
// 如果有数据需要保存,则批量保存
long start = System.currentTimeMillis();
service.saveBatch(dataListToSave);
List<T> recordsToUpdate = service.list();
List<T> updateList = new ArrayList<>();
for (T item : recordsToUpdate) {
Class<?> clazz2 = item.getClass();
// 获取 jobName 字段
Field jobname = clazz2.getDeclaredField("jobName");
jobname.setAccessible(true);
String jobName = (String) jobname.get(item);
// 获取 jobTitle 字段
Field jobTitle = clazz2.getDeclaredField("jobTitle");
jobTitle.setAccessible(true); // 确保可以访问私有字段
if (jobName.equals("普工")) {
jobTitle.set(item,"WorkshopGeneralWorker");
} else if (jobName.equals("装配主管")) {
jobTitle.set(item,"AssemblySupervisor");
} else if (jobName.equals("装配工")) {
jobTitle.set(item,"Assembler");
} else if (jobName.equals("采购主管")) {
jobTitle.set(item,"ProcurementSupervisor");
} else if (jobName.equals("采购员")) {
jobTitle.set(item,"PurchasingOfficer");
} else if (jobName.equals("车间辅助人员")) {
jobTitle.set(item,"WorkshopAuxiliaryPersonnel");
} else if (jobName.equals("车间技术员")) {
jobTitle.set(item,"WorkshopTechnician");
} else if (jobName.equals("车间技术主管")) {
jobTitle.set(item,"WorkshopTechnicalManager");
} else if (jobName.equals("车间管理员")) {
jobTitle.set(item,"WorkshopDirector");
} else if (jobName.equals("办公室行政人员")) {
jobTitle.set(item,"OfficeAdministrative");
}
updateList.add(item);
}
service.updateBatchById(updateList);
log.info("批量保存消耗时间:" + (System.currentTimeMillis() - start) + "毫秒");
if(dataListToSave.size()<=0){
return Result.error("没有有效的导入数据");
}
return Result.ok("文件导入成功!数据行数:" + dataListToSave.size());
} else {
return Result.error("文件导入失败:没有有效的数据需要保存!");
}
}catch (ExcelImportException e) {
return Result.error("文件导入失败,导入数据格式错误");
}catch (Exception e) {
} catch (Exception e) {
//update-begin-author:taoyan date:20211124 for: 导入数据重复增加提示
String msg = e.getMessage();
log.error(msg, e);
... ...
... ... @@ -469,14 +469,14 @@ public class JeecgController2<T, t, b,w, V extends IService<t>, S extends IServi
SimpleDateFormat outputFormat = new SimpleDateFormat("yyyy-MM");
String outputDateString = outputFormat.format(salaryMonth);
queryWrapper.eq("name",userName+"(普工)");
queryWrapper.eq("undertaker",userName+"(普工)");
List<w> list = serviceTime.list(queryWrapper);
if(list.size()==0) {
return true;
}else {
queryWrapper.eq("work_time",workingHours);
queryWrapper.eq("name",userName+"(普工)");
queryWrapper.apply("DATE_FORMAT(salary_month, '%Y-%m') = '" + outputDateString + "'");
queryWrapper.eq("work_hours",workingHours);
queryWrapper.eq("undertaker",userName+"(普工)");
queryWrapper.apply("DATE_FORMAT(yan_time, '%Y-%m') = '" + outputDateString + "'");
System.out.println("输出:"+serviceTime.getOne(queryWrapper));
w one2 = serviceTime.getOne(queryWrapper);
if(one2!=null){
... ...
package org.jeecg.modules.erp.order_form.controller;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.*;
import java.util.stream.Collectors;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.util.oConvertUtils;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.modules.erp.order_form.entity.TblWorkTime;
import org.jeecg.modules.erp.order_form.service.ITblWorkTimeService;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.jeecg.modules.erp.order_form.entity.ViewWorkTime;
import org.jeecg.modules.erp.order_form.service.IViewWorkTimeService;
import org.jeecg.common.system.base.controller.JeecgController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import com.alibaba.fastjson.JSON;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.jeecg.common.aspect.annotation.AutoLog;
... ... @@ -43,72 +27,71 @@ import org.jeecg.common.aspect.annotation.AutoLog;
* @Date: 2024-06-13
* @Version: V1.0
*/
@Api(tags="tbl_work_time")
@Api(tags="view_work_time")
@RestController
@RequestMapping("/work_time/tblWorkTime")
@RequestMapping("/work_time/viewWorkTime")
@Slf4j
public class TblWorkTimeController extends JeecgController<TblWorkTime, ITblWorkTimeService> {
public class ViewWorkTimeController extends JeecgController<ViewWorkTime, IViewWorkTimeService> {
@Autowired
private ITblWorkTimeService tblWorkTimeService;
private IViewWorkTimeService tblWorkTimeService;
/**
* 分页列表查询
*
* @param tblWorkTime
* @param viewWorkTime
* @param pageNo
* @param pageSize
* @param req
* @return
*/
//@AutoLog(value = "tbl_work_time-分页列表查询")
@ApiOperation(value="tbl_work_time-分页列表查询", notes="tbl_work_time-分页列表查询")
@ApiOperation(value="view_work_time-分页列表查询", notes="view_work_time-分页列表查询")
@GetMapping(value = "/list")
public Result<IPage<TblWorkTime>> queryPageList(TblWorkTime tblWorkTime,
public Result<IPage<ViewWorkTime>> queryPageList(ViewWorkTime viewWorkTime,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<TblWorkTime> queryWrapper = new QueryWrapper<>();
queryWrapper.orderByDesc("salary_month");
if(tblWorkTime.getName()!=null && !tblWorkTime.getName().isEmpty()){
String name = tblWorkTime.getName().replace("*", "");
queryWrapper.like("name", "%" + name + "%");
QueryWrapper<ViewWorkTime> queryWrapper = new QueryWrapper<>();
queryWrapper.orderByDesc("yan_time");
if(viewWorkTime.getUndertaker()!=null && !viewWorkTime.getUndertaker().isEmpty()){
queryWrapper.like("undertaker", "%" + viewWorkTime.getUndertaker() + "%");
}
if(tblWorkTime.getSalaryMonth()!=null){
Date salaryMonth = tblWorkTime.getSalaryMonth();
if(viewWorkTime.getYanTime()!=null){
Date salaryMonth = viewWorkTime.getYanTime();
SimpleDateFormat outputFormat = new SimpleDateFormat("yyyy-MM");
String outputDateString = outputFormat.format(salaryMonth);
queryWrapper.apply("DATE_FORMAT(salary_month, '%Y-%m') = '" + outputDateString + "'");
queryWrapper.apply("DATE_FORMAT(yan_time, '%Y-%m') = '" + outputDateString + "'");
}
Page<TblWorkTime> page = new Page<TblWorkTime>(pageNo, pageSize);
IPage<TblWorkTime> pageList = tblWorkTimeService.page(page, queryWrapper);
Page<ViewWorkTime> page = new Page<ViewWorkTime>(pageNo, pageSize);
IPage<ViewWorkTime> pageList = tblWorkTimeService.page(page, queryWrapper);
return Result.OK(pageList);
}
/**
* 添加
*
* @param tblWorkTime
* @param viewWorkTime
* @return
*/
@AutoLog(value = "tbl_work_time-添加")
@ApiOperation(value="tbl_work_time-添加", notes="tbl_work_time-添加")
@PostMapping(value = "/add")
public Result<String> add(@RequestBody TblWorkTime tblWorkTime) {
tblWorkTimeService.save(tblWorkTime);
public Result<String> add(@RequestBody ViewWorkTime viewWorkTime) {
tblWorkTimeService.save(viewWorkTime);
return Result.OK("添加成功!");
}
/**
* 编辑
*
* @param tblWorkTime
* @param viewWorkTime
* @return
*/
@AutoLog(value = "tbl_work_time-编辑")
@ApiOperation(value="tbl_work_time-编辑", notes="tbl_work_time-编辑")
@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
public Result<String> edit(@RequestBody TblWorkTime tblWorkTime) {
tblWorkTimeService.updateById(tblWorkTime);
public Result<String> edit(@RequestBody ViewWorkTime viewWorkTime) {
tblWorkTimeService.updateById(viewWorkTime);
return Result.OK("编辑成功!");
}
... ... @@ -149,23 +132,23 @@ public class TblWorkTimeController extends JeecgController<TblWorkTime, ITblWork
//@AutoLog(value = "tbl_work_time-通过id查询")
@ApiOperation(value="tbl_work_time-通过id查询", notes="tbl_work_time-通过id查询")
@GetMapping(value = "/queryById")
public Result<TblWorkTime> queryById(@RequestParam(name="id",required=true) String id) {
TblWorkTime tblWorkTime = tblWorkTimeService.getById(id);
if(tblWorkTime==null) {
public Result<ViewWorkTime> queryById(@RequestParam(name="id",required=true) String id) {
ViewWorkTime viewWorkTime = tblWorkTimeService.getById(id);
if(viewWorkTime ==null) {
return Result.error("未找到对应数据");
}
return Result.OK(tblWorkTime);
return Result.OK(viewWorkTime);
}
/**
* 导出excel
*
* @param request
* @param tblWorkTime
* @param viewWorkTime
*/
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, TblWorkTime tblWorkTime) {
return super.exportXls(request, tblWorkTime, TblWorkTime.class, "tbl_work_time");
public ModelAndView exportXls(HttpServletRequest request, ViewWorkTime viewWorkTime) {
return super.exportXls(request, viewWorkTime, ViewWorkTime.class, "月工时信息");
}
/**
... ... @@ -177,7 +160,7 @@ public class TblWorkTimeController extends JeecgController<TblWorkTime, ITblWork
*/
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, TblWorkTime.class);
return super.importExcel(request, response, ViewWorkTime.class);
}
}
... ...
... ... @@ -53,11 +53,11 @@ public class TblOrderForm implements Serializable {
@ApiModelProperty(value = "所属部门")
private java.lang.String sysOrgCode;
/**主料号*/
@Excel(name = "主料号", width = 15)
// @Excel(name = "主料号", width = 15)
@ApiModelProperty(value = "主料号")
private java.lang.String orderId;
/**订货单位*/
@Excel(name = "订货单位", width = 15)
// @Excel(name = "订货单位", width = 15)
@ApiModelProperty(value = "订货单位")
private java.lang.String orderCompany;
... ...
... ... @@ -22,28 +22,65 @@ import java.math.BigDecimal;
* @Version: V1.0
*/
@Data
@TableName("tbl_work_time")
@TableName("view_work_time")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="tbl_work_time对象", description="tbl_work_time")
public class TblWorkTime implements Serializable {
@ApiModel(value="view_work_time对象", description="view_work_time")
public class ViewWorkTime implements Serializable {
private static final long serialVersionUID = 1L;
/**id*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "id")
private java.lang.Integer id;
/**月份*/
/**订单号*/
// @Excel(name = "订单号", width = 15)
@ApiModelProperty(value = "订单号")
private java.lang.String orderNumber;
/**产品类型*/
// @Excel(name = "产品类型", width = 15)
@ApiModelProperty(value = "产品类型")
private java.lang.String productType;
/**工序*/
// @Excel(name = "工序", width = 15)
@ApiModelProperty(value = "工序")
private java.lang.String workingProcedure;
/**承接人*/
@Excel(name = "承接人", width = 15)
@ApiModelProperty(value = "承接人")
private java.lang.String undertaker;
/**工时*/
@Excel(name = "工时", width = 15)
@ApiModelProperty(value = "工时")
private java.math.BigDecimal workHours;
/**派发时间*/
// @Excel(name = "派发时间", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "派发时间")
private java.util.Date dispatchTime;
/**派发人*/
// @Excel(name = "派发人", width = 15)
@ApiModelProperty(value = "派发人")
private java.lang.String dispatchRen;
/**验收时间*/
@Excel(name = "验收时间", width = 15, format = "yyyy-MM")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM")
@DateTimeFormat(pattern="yyyy-MM")
@ApiModelProperty(value = "月份")
private java.util.Date salaryMonth;
/**姓名*/
@ApiModelProperty(value = "姓名")
private java.lang.String name;
/**月总工时*/
@ApiModelProperty(value = "月总工时")
private BigDecimal workTime;
@ApiModelProperty(value = "验收时间")
private java.util.Date yanTime;
/**验收人*/
// @Excel(name = "验收人", width = 15)
@ApiModelProperty(value = "验收人")
private java.lang.String yanRen;
/**验收结果*/
// @Excel(name = "验收结果", width = 15)
@ApiModelProperty(value = "验收结果")
private java.lang.String yanResult;
/**备注*/
// @Excel(name = "备注", width = 15)
@ApiModelProperty(value = "备注")
private java.lang.String notes;
/**创建人*/
@ApiModelProperty(value = "创建人")
private java.lang.String createBy;
... ...
package org.jeecg.modules.erp.order_form.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.jeecg.modules.erp.order_form.entity.TblWorkTime;
import org.jeecg.modules.erp.order_form.entity.ViewWorkTime;
public interface TblWorkTimeMapper extends BaseMapper<TblWorkTime> {
public interface ViewWorkTimeMapper extends BaseMapper<ViewWorkTime> {
}
... ...
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.erp.order_form.mapper.TblWorkTimeMapper">
<mapper namespace="org.jeecg.modules.erp.order_form.mapper.ViewWorkTimeMapper">
</mapper>
\ No newline at end of file
... ...
package org.jeecg.modules.erp.order_form.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.erp.order_form.entity.TblWorkTime;
import org.jeecg.modules.erp.order_form.entity.ViewWorkTime;
public interface ITblWorkTimeService extends IService<TblWorkTime> {
public interface IViewWorkTimeService extends IService<ViewWorkTime> {
}
... ...
package org.jeecg.modules.erp.order_form.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.jeecg.modules.erp.order_form.entity.TblWorkTime;
import org.jeecg.modules.erp.order_form.mapper.TblWorkTimeMapper;
import org.jeecg.modules.erp.order_form.service.ITblWorkTimeService;
import org.jeecg.modules.erp.order_form.entity.ViewWorkTime;
import org.jeecg.modules.erp.order_form.mapper.ViewWorkTimeMapper;
import org.jeecg.modules.erp.order_form.service.IViewWorkTimeService;
import org.springframework.stereotype.Service;
@Service
public class TblWorkTimeServiceImpl extends ServiceImpl<TblWorkTimeMapper, TblWorkTime> implements ITblWorkTimeService {
public class ViewWorkTimeServiceImpl extends ServiceImpl<ViewWorkTimeMapper, ViewWorkTime> implements IViewWorkTimeService {
}
... ...
... ... @@ -101,21 +101,14 @@ public class TblProductionGongxuController extends JeecgController<TblProduction
@PutMapping("/updateYan")
@Transactional(rollbackFor = Exception.class)
public Result<?> updateYan(@RequestBody List<TblProductionGongxu> tblProductionGongxuList){
// if(tblProductionGongxuList.size()<=0){
// return Result.ok("没有修改的数据");
// }
boolean b = tblProductionGongxuService.updateBatchById(tblProductionGongxuList);
LambdaQueryWrapper<TblProductionGongxu> queryWrapper=new LambdaQueryWrapper<TblProductionGongxu>()
.eq(TblProductionGongxu::getOrderNumber,tblProductionGongxuList.get(0).getOrderNumber());
if(b){
tblProductionGongxuService.selectAdd();//查询已合格工序并汇总工时
List<TblProductionGongxu> list = tblProductionGongxuService.list(queryWrapper);
boolean allHhhQualified = true;
for (TblProductionGongxu productionGongxu : list) {
if (!"合格入库".equals(productionGongxu.getYanResult())) {
// 如果有任何一个元素的hhh值不是“合格入库”,则置标志位为false,并跳出循环
allHhhQualified = false;
break;
}
}
if(allHhhQualified){
//tblProductionGongxuService.selectAdd();//查询已合格工序并汇总工时
int count=tblProductionGongxuService.selectCount(tblProductionGongxuList.get(0).getOrderNumber()); //查工序表不合格数据
if(count<=0){
tblProductionGongxuService.updateByStatus(tblProductionGongxuList.get(0).getOrderNumber());
}
}
... ...
... ... @@ -11,7 +11,6 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.modules.erp.order_form.entity.TblOrderForm;
import org.jeecg.modules.erp.order_form.entity.TblWorkTime;
import org.jeecg.modules.erp.order_form.service.ITblOrderFormService;
import org.jeecg.modules.erp.product_design.entity.TblProductDesign;
import org.jeecg.modules.erp.product_design.service.ITblProductDesignService;
... ... @@ -28,7 +27,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.jeecg.common.aspect.annotation.AutoLog;
... ... @@ -99,15 +97,15 @@ public class TblProductionPlanController extends JeecgController<TblOrderForm, I
// 根据日期、姓名查找工序
@GetMapping(value = "/querygxone")
public Result<?> querygxone(@RequestParam(name = "salaryMonth")
public Result<?> querygxone(@RequestParam(name = "yanTime")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM")
@DateTimeFormat(pattern="yyyy-MM")
Date salaryMonth, @RequestParam(name="name",required=true) String name) {
Date yanTime, @RequestParam(name="undertaker",required=true) String undertaker) {
QueryWrapper<TblProductionGongxu> queryWrapper = new QueryWrapper<>();
SimpleDateFormat outputFormat = new SimpleDateFormat("yyyy-MM");
String outputDateString = outputFormat.format(salaryMonth);
String outputDateString = outputFormat.format(yanTime);
queryWrapper.apply("DATE_FORMAT(yan_time, '%Y-%m') = '" + outputDateString + "'");
queryWrapper.eq("undertaker",name);
queryWrapper.eq("undertaker",undertaker);
queryWrapper.eq("yan_result","合格入库");
List<TblProductionGongxu> list = gongxuService.list(queryWrapper);
return Result.OK(list);
... ...
... ... @@ -25,4 +25,6 @@ public interface TblProductionGongxuMapper extends BaseMapper<TblProductionGongx
Integer deleteByOrderId(String orderId);
void selectAdd();
int selectNoClount(String orderNumber);
}
... ...
... ... @@ -13,6 +13,18 @@
<select id="getByhours" resultType="org.jeecg.modules.erp.order_form.entity.TblOrderForm">
select * from tbl_order_form where order_id=#{orderNumber}
</select>
<select id="selectNoClount" resultType="java.lang.Integer">
SELECT
count( 1 )
FROM
tbl_production_gongxu
WHERE
order_number = #{orderNumber}
AND (
yan_result IS NULL
OR yan_result = ''
OR yan_result = '不合格')
</select>
<insert id="selectAdd">
INSERT INTO tbl_work_time(`name`, salary_month, work_time)
SELECT undertaker,yan_time, SUM(work_hours)
... ...
... ... @@ -25,4 +25,6 @@ public interface ITblProductionGongxuService extends IService<TblProductionGongx
Integer deleteByOrderId(String orderId);
void selectAdd();
int selectCount(String orderNumber);
}
... ...
... ... @@ -49,4 +49,9 @@ public class TblProductionGongxuServiceImpl extends ServiceImpl<TblProductionGon
tblProductionGongxuMapper.selectAdd();
}
@Override
public int selectCount(String orderNumber) {
return tblProductionGongxuMapper.selectNoClount(orderNumber);
}
}
... ...
package org.jeecg.modules.erp.salary.controller;
import com.aliyun.oss.common.utils.StringUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
... ... @@ -16,15 +17,18 @@ import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.modules.erp.order_form.entity.TblOrderForm;
import org.jeecg.modules.erp.salary.entity.TblSalaryBase;
import org.jeecg.modules.erp.salary.entity.TblSalarySuanfa;
import org.jeecg.modules.erp.salary.service.ITblSalaryCalculationService;
import org.jeecg.modules.erp.salary.service.ITblSalarySuanfaService;
import org.jeecg.modules.erp.salary.service.TblSalaryBaseService;
import org.jeecg.modules.erp.trad.entity.TblTradTender;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.lang.reflect.Field;
import java.util.*;
/**
... ... @@ -42,7 +46,8 @@ public class TblSalaryBaseController extends JeecgController<TblSalaryBase, Tbl
@Autowired
private TblSalaryBaseService tblSalaryBaseService;
@Autowired
private ITblSalaryCalculationService tblSalaryCalculationService;
/**
* 分页列表查询
*
... ... @@ -59,44 +64,40 @@ public class TblSalaryBaseController extends JeecgController<TblSalaryBase, Tbl
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req){
// 去除 tblSalaryBase 对象中的字符串字段的空格
trimStringFields(tblSalaryBase);
QueryWrapper<TblSalaryBase> queryWrapper = QueryGenerator.initQueryWrapper(tblSalaryBase, req.getParameterMap());
Page<TblSalaryBase> page = new Page<>(pageNo, pageSize);
IPage<TblSalaryBase> pageList = tblSalaryBaseService.page(page,queryWrapper);
// 查询所有符合条件的记录
List<TblSalaryBase> recordsToUpdate = tblSalaryBaseService.list(queryWrapper);
List<TblSalaryBase> updateList = new ArrayList<>();
// 在这里可以根据需要进行更新操作
for (TblSalaryBase item : recordsToUpdate) {
// 根据业务需求更新字段
if(item.getJobTitle() == null || item.getJobTitle().isEmpty()) {
if (item.getJobName().equals("普工")) {
item.setJobTitle("WorkshopGeneralWorker");
} else if (item.getJobName().equals("装配主管")) {
item.setJobTitle("AssemblySupervisor");
} else if (item.getJobName().equals("装配工")) {
item.setJobTitle("Assembler");
} else if (item.getJobName().equals("采购主管")) {
item.setJobTitle("ProcurementSupervisor");
} else if (item.getJobName().equals("采购员")) {
item.setJobTitle("PurchasingOfficer");
} else if (item.getJobName().equals("车间辅助人员")) {
item.setJobTitle("WorkshopAuxiliaryPersonnel");
} else if (item.getJobName().equals("车间技术员")) {
item.setJobTitle("WorkshopTechnician");
} else if (item.getJobName().equals("车间技术主管")) {
item.setJobTitle("WorkshopTechnicalManager");
} else if (item.getJobName().equals("车间管理员")) {
item.setJobTitle("WorkshopDirector");
} else if (item.getJobName().equals("办公室行政人员")) {
item.setJobTitle("OfficeAdministrative");
}
updateList.add(item); // 将需要更新的对象加入集合
}
}
tblSalaryBaseService.updateBatchById(updateList); // 批量更新数据
return Result.OK(pageList);
}
private void trimStringFields(Object obj) {
if (obj == null) {
return;
}
// 获取所有声明的字段,包括私有字段
Field[] fields = obj.getClass().getDeclaredFields();
for (Field field : fields) {
if (field.getType() == String.class) {
try {
// 设置私有字段可访问
field.setAccessible(true);
// 获取字段值
String value = (String) field.get(obj);
if (value != null) {
// 去除空格并重新设置字段值
String trimmedValue = value.replaceAll("\\s", "");
field.set(obj, trimmedValue);
System.out.println("Trimmed field: " + field.getName() + ", Original: [" + value + "], Trimmed: [" + trimmedValue + "]");
}
} catch (IllegalAccessException e) {
// 处理异常
e.printStackTrace();
}
}
}
}
//人员下拉
@GetMapping(value = "/listSalary")
... ... @@ -130,8 +131,34 @@ public class TblSalaryBaseController extends JeecgController<TblSalaryBase, Tbl
@ApiOperation(value = "tbl_salary_base-新增")
@PostMapping(value = "/add")
@Transactional(rollbackFor = Exception.class)
public Result<String> add(@RequestBody TblSalaryBase tblSalaryBase){
tblSalaryBaseService.save(tblSalaryBase);
boolean save = tblSalaryBaseService.save(tblSalaryBase);
if (save) {
if (tblSalaryBase.getJobName().equals("普工")) {
tblSalaryBase.setJobTitle("WorkshopGeneralWorker");
} else if (tblSalaryBase.getJobName().equals("装配主管")) {
tblSalaryBase.setJobTitle("AssemblySupervisor");
} else if (tblSalaryBase.getJobName().equals("装配工")) {
tblSalaryBase.setJobTitle("Assembler");
} else if (tblSalaryBase.getJobName().equals("采购主管")) {
tblSalaryBase.setJobTitle("ProcurementSupervisor");
} else if (tblSalaryBase.getJobName().equals("采购员")) {
tblSalaryBase.setJobTitle("PurchasingOfficer");
} else if (tblSalaryBase.getJobName().equals("车间辅助人员")) {
tblSalaryBase.setJobTitle("WorkshopAuxiliaryPersonnel");
} else if (tblSalaryBase.getJobName().equals("车间技术员")) {
tblSalaryBase.setJobTitle("WorkshopTechnician");
} else if (tblSalaryBase.getJobName().equals("车间技术主管")) {
tblSalaryBase.setJobTitle("WorkshopTechnicalManager");
} else if (tblSalaryBase.getJobName().equals("车间管理员")) {
tblSalaryBase.setJobTitle("WorkshopDirector");
} else if (tblSalaryBase.getJobName().equals("办公室行政人员")) {
tblSalaryBase.setJobTitle("OfficeAdministrative");
}
tblSalaryBaseService.updateById(tblSalaryBase);
}
return Result.ok("添加成功");
}
... ... @@ -171,8 +198,35 @@ public class TblSalaryBaseController extends JeecgController<TblSalaryBase, Tbl
@AutoLog(value = "tbl_salary_base-编辑")
@ApiOperation(value="tbl_salary_base-编辑", notes="tbl_salary_base-编辑")
@RequestMapping(value = "/update", method = {RequestMethod.PUT,RequestMethod.POST})
@Transactional(rollbackFor = Exception.class)
public Result<String> update(@RequestBody TblSalaryBase tblSalaryBase) {
boolean b = tblSalaryBaseService.updateById(tblSalaryBase);
if(b){
if (tblSalaryBase.getJobName().equals("普工")) {
tblSalaryBase.setJobTitle("WorkshopGeneralWorker");
} else if (tblSalaryBase.getJobName().equals("装配主管")) {
tblSalaryBase.setJobTitle("AssemblySupervisor");
} else if (tblSalaryBase.getJobName().equals("装配工")) {
tblSalaryBase.setJobTitle("Assembler");
} else if (tblSalaryBase.getJobName().equals("采购主管")) {
tblSalaryBase.setJobTitle("ProcurementSupervisor");
} else if (tblSalaryBase.getJobName().equals("采购员")) {
tblSalaryBase.setJobTitle("PurchasingOfficer");
} else if (tblSalaryBase.getJobName().equals("车间辅助人员")) {
tblSalaryBase.setJobTitle("WorkshopAuxiliaryPersonnel");
} else if (tblSalaryBase.getJobName().equals("车间技术员")) {
tblSalaryBase.setJobTitle("WorkshopTechnician");
} else if (tblSalaryBase.getJobName().equals("车间技术主管")) {
tblSalaryBase.setJobTitle("WorkshopTechnicalManager");
} else if (tblSalaryBase.getJobName().equals("车间管理员")) {
tblSalaryBase.setJobTitle("WorkshopDirector");
} else if (tblSalaryBase.getJobName().equals("办公室行政人员")) {
tblSalaryBase.setJobTitle("OfficeAdministrative");
}
tblSalaryBaseService.updateById(tblSalaryBase);
tblSalaryCalculationService.selectAndUpd();
}
return Result.OK("编辑成功!");
}
... ... @@ -214,6 +268,6 @@ public class TblSalaryBaseController extends JeecgController<TblSalaryBase, Tbl
*/
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, TblSalaryBase.class);
return super.importExcelbase(request, response, TblSalaryBase.class);
}
}
... ...
... ... @@ -12,9 +12,8 @@ import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.system.base.controller.JeecgController2;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.erp.order_form.entity.TblWorkTime;
import org.jeecg.modules.erp.order_form.service.ITblWorkTimeService;
import org.jeecg.modules.erp.order_form.entity.ViewWorkTime;
import org.jeecg.modules.erp.order_form.service.IViewWorkTimeService;
import org.jeecg.modules.erp.salary.entity.TblSalaryBase;
import org.jeecg.modules.erp.salary.entity.TblSalaryCalculation;
import org.jeecg.modules.erp.salary.entity.TblSalaryCalculationVo;
... ... @@ -31,8 +30,6 @@ import org.springframework.http.*;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.InputStreamResource;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
... ... @@ -40,26 +37,18 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.io.*;
import java.net.URL;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.util.HtmlUtils;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
import static org.apache.poi.hemf.record.emfplus.HemfPlusRecordType.object;
/**
* @Description: tbl_salary_calculation
... ... @@ -71,7 +60,7 @@ import static org.apache.poi.hemf.record.emfplus.HemfPlusRecordType.object;
@RestController
@RequestMapping("/salary/calculation")
@Slf4j
public class TblSalaryCalculationController extends JeecgController2<TblSalaryCalculation, TblSalaryCalculationVo, TblSalaryBase, TblWorkTime, ITblSalaryCalculationVoService, ITblSalaryCalculationService, TblSalaryBaseService, ITblWorkTimeService> {
public class TblSalaryCalculationController extends JeecgController2<TblSalaryCalculation, TblSalaryCalculationVo, TblSalaryBase, ViewWorkTime, ITblSalaryCalculationVoService, ITblSalaryCalculationService, TblSalaryBaseService, IViewWorkTimeService> {
@Autowired
private ITblSalaryCalculationService tblSalaryCalculationService;
@Autowired
... ... @@ -94,7 +83,7 @@ public class TblSalaryCalculationController extends JeecgController2<TblSalaryCa
HttpServletRequest req) {
QueryWrapper<TblSalaryCalculation> queryWrapper = QueryGenerator.initQueryWrapper(tblSalaryCalculation, req.getParameterMap());
Page<TblSalaryCalculation> page = new Page<>(pageNo, pageSize);
tblSalaryCalculationService.selectAndUpd();
IPage<TblSalaryCalculation> pageList = tblSalaryCalculationService.page(page, queryWrapper);
return Result.OK(pageList);
}
... ... @@ -226,7 +215,7 @@ public class TblSalaryCalculationController extends JeecgController2<TblSalaryCa
@ApiOperation(value="tbl_salary_calculation-导入", notes="tbl_salary_calculation-导入")
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcelgz(request, response, TblSalaryCalculation.class,TblSalaryBase.class,TblWorkTime.class);
return super.importExcelgz(request, response, TblSalaryCalculation.class,TblSalaryBase.class, ViewWorkTime.class);
}
... ...
... ... @@ -37,7 +37,7 @@
sc.social_person = sb.social_person
WHERE
sc.salary_month = #{salaryMonth} AND EXISTS ( SELECT 1 FROM tbl_salary_base WHERE sb.user_name = sc.user_name );
sc.salary_month = #{salaryMonth}
</update>
<select id="select" resultType="org.jeecg.modules.erp.salary.entity.TblSalaryCalculation">
select * from tbl_salary_calculation
... ...
... ... @@ -150,16 +150,4 @@ public class TblTradZongController extends JeecgController<TblTradZong, TblTradZ
return super.exportXls(request, tblTradZong, TblTradZong.class, "tbl_trad_zong");
}
/**
* 通过excel导入数据
*
* @param request
* @param response
* @return
*/
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcelbase(request, response, TblTradZong.class);
}
}
... ...