外协结算导出、同步镀层厚度日志,班组导出

liweidong
maxiangong 2 days ago
parent b5491feb4e
commit e842381c02
  1. 1
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/vo/TeamSetVO.java
  2. 6
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/entity/OemStatementEntity.java
  3. 17
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/vo/StatementVO.java
  4. 145
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/TeamSetController.java
  5. 36
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/WorkCenterController.java
  6. 195
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/excel/TeamSetExcel.java
  7. 134
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/excel/TeamSetImportExcel.java
  8. 93
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/excel/WorkCenterExcel.java
  9. 13
      blade-service/blade-desk/src/main/java/org/springblade/desk/oem/controller/OemStatementController.java
  10. 9
      blade-service/blade-desk/src/main/java/org/springblade/desk/oem/mapper/OemStatementMapper.java
  11. 139
      blade-service/blade-desk/src/main/java/org/springblade/desk/oem/mapper/OemStatementMapper.xml
  12. 7
      blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/IOemStatementService.java
  13. 51
      blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/impl/OemStatementServiceImpl.java

@ -36,4 +36,5 @@ public class TeamSetVO extends TeamSet {
@Schema(description = "类型分类")
private String tsTypeName;
}

@ -226,10 +226,4 @@ public class OemStatementEntity extends BaseEntity {
@Schema(description = "流程卡号")
private String cardNo;
public static String getRosStatusName(String rosStatus){
if(rosStatus != null){
return rosStatusMap.get(Integer.parseInt(rosStatus));
}
return null;
}
}

@ -90,4 +90,21 @@ public class StatementVO extends OemStatementEntity {
@Schema(description = "镀种编号")
private String plateCode;
public String getUnitName() {
if ("1".equals(super.getUnit())) {
return "件";
} else if ("2".equals(super.getUnit())) {
return "克";
} else if ("3".equals(super.getUnit())) {
return "平方分米";
} else if ("DJ".equals(super.getUnit())) {
return "单件";
} else if ("DJMJ".equals(super.getUnit())) {
return "单件面积";
} else if ("ZMJ".equals(super.getUnit())) {
return "总面积";
} else {
return "";
}
}
}

@ -29,6 +29,7 @@ import org.springblade.core.tool.utils.Func;
import org.springblade.desk.basic.constant.BAModuleConst;
import org.springblade.desk.basic.excel.PlatingSmallExcel;
import org.springblade.desk.basic.excel.TeamSetExcel;
import org.springblade.desk.basic.excel.TeamSetImportExcel;
import org.springblade.desk.basic.pojo.entity.*;
import org.springblade.desk.basic.pojo.vo.TeamSetVO;
import org.springblade.desk.basic.service.IRelTeamSetUserService;
@ -40,6 +41,7 @@ import org.springblade.desk.basic.wrapper.TeamSetWrapper;
import org.springblade.desk.quality.pojo.vo.InspectionTaskListVO;
import org.springblade.system.feign.IUserClient;
import org.springblade.system.pojo.entity.User;
import org.springframework.beans.BeanUtils;
import org.springframework.http.ResponseEntity;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
@ -103,11 +105,11 @@ public class TeamSetController extends BladeController {
QueryWrapper<RelTeamSetUser> qwuser = new QueryWrapper<>();
qwuser.eq("TEAM_SET_ID", detail.getId());
List<RelTeamSetUser> users = relTeamSetUserService.list(qwuser);
if(null != users && users.size() > 0){
if (null != users && users.size() > 0) {
List<Long> userIds = users.stream().map(RelTeamSetUser::getUserId).collect(Collectors.toList());
String userId = Func.toStr(userIds);
teams = iUserClient.userUNListByIds(userId);
}else{
} else {
teams = iUserClient.userUNListByIds("");
}
// if(detail != null){
@ -132,7 +134,7 @@ public class TeamSetController extends BladeController {
QueryWrapper<RelTeamSetUser> qwuser = new QueryWrapper<>();
qwuser.eq("TEAM_SET_ID", detail.getId());
List<RelTeamSetUser> users = relTeamSetUserService.list(qwuser);
if(null != users && users.size() > 0){
if (null != users && users.size() > 0) {
List<Long> userIds = users.stream().map(RelTeamSetUser::getUserId).collect(Collectors.toList());
String userId = Func.toStr(userIds);
teams = iUserClient.userListByIds(userId);
@ -172,7 +174,7 @@ public class TeamSetController extends BladeController {
teamTimeService.remove(qw);
List<TeamTime> times = teamSet.getTeamTimes();
for(TeamTime time:times){
for (TeamTime time : times) {
time.setId(null);
time.setTsId(teamSet.getId());
time.setSpecial(Long.parseLong(teamSet.getSpecial()));
@ -183,7 +185,6 @@ public class TeamSetController extends BladeController {
}
@PostMapping("/updateUserId")
@ApiOperationSupport(order = 31)
@Operation(summary = "设置人员Id保存", description = "传入WorkCenter List")
@ -194,17 +195,17 @@ public class TeamSetController extends BladeController {
List<Long> teamIds = teamSet.getUserIds();
String result = null;
String team = null;
if(null != teamIds && teamIds.size() > 0){
if (null != teamIds && teamIds.size() > 0) {
QueryWrapper<RelTeamSetUser> qwuser = new QueryWrapper<>();
qwuser.eq("TEAM_SET_ID", detail.getId());
relTeamSetUserService.remove(qwuser);
for(Long teamId:teamIds){
for (Long teamId : teamIds) {
RelTeamSetUser relTeamSetUser = new RelTeamSetUser();
relTeamSetUser.setTeamSetId(detail.getId());
relTeamSetUser.setUserId(teamId);
relTeamSetUserService.save(relTeamSetUser);
R<User> user = iUserClient.userInfoById(teamId);
if(null != user && null != user.getData() && null != user.getData().getRealName()){
if (null != user && null != user.getData() && null != user.getData().getRealName()) {
if (StrUtil.isEmpty(team)) {
team = user.getData().getRealName();
} else {
@ -222,14 +223,14 @@ public class TeamSetController extends BladeController {
// team= teams.stream()
// .map(user -> String.valueOf(user.getRealName()))
// .collect(Collectors.joining(","));
}else{
} else {
QueryWrapper<RelTeamSetUser> qwuser = new QueryWrapper<>();
qwuser.eq("TEAM_SET_ID", detail.getId());
relTeamSetUserService.remove(qwuser);
}
// todo
detail.setTeamMemberId(result);
if(null != team){
if (null != team) {
detail.setTeamMember(team);
} else {
detail.setTeamMember("");
@ -279,19 +280,19 @@ public class TeamSetController extends BladeController {
// IPage<TeamSetVO> pagesVOs = service.listSearch(Condition.getPage(query), search);
IPage<TeamSetVO> pagesVO = TeamSetWrapper.build().pageVO(pages);
List<TeamSetVO> records = pagesVO.getRecords();
for(TeamSetVO teamSetVO:records){
for (TeamSetVO teamSetVO : records) {
List<TeamSetVO> teamSetVOS = service.getUserAll(teamSetVO.getDispatcher(),teamSetVO.getPlanner(),teamSetVO.getTeamLeader());
if(null != teamSetVOS && teamSetVOS.size() > 0){
for(TeamSetVO teamSetVO1:teamSetVOS){
if(null != teamSetVO1.getDispatcherRealName() && !"".equals(teamSetVO1.getDispatcherRealName())){
List<TeamSetVO> teamSetVOS = service.getUserAll(teamSetVO.getDispatcher(), teamSetVO.getPlanner(), teamSetVO.getTeamLeader());
if (null != teamSetVOS && teamSetVOS.size() > 0) {
for (TeamSetVO teamSetVO1 : teamSetVOS) {
if (null != teamSetVO1.getDispatcherRealName() && !"".equals(teamSetVO1.getDispatcherRealName())) {
teamSetVO.setDispatcherRealName(teamSetVO1.getDispatcherRealName());
}
if(null != teamSetVO1.getPlannerRealName() && !"".equals(teamSetVO1.getPlannerRealName())){
if (null != teamSetVO1.getPlannerRealName() && !"".equals(teamSetVO1.getPlannerRealName())) {
teamSetVO.setPlannerRealName(teamSetVO1.getPlannerRealName());
}
if(null != teamSetVO1.getTeamLeaderRealName() && !"".equals(teamSetVO1.getTeamLeaderRealName())){
if (null != teamSetVO1.getTeamLeaderRealName() && !"".equals(teamSetVO1.getTeamLeaderRealName())) {
teamSetVO.setTeamLeaderRealName(teamSetVO1.getTeamLeaderRealName());
}
}
@ -406,17 +407,17 @@ public class TeamSetController extends BladeController {
Condition.getPage(query), teamSet
);
List<TeamSetVO> records = pagesVO.getRecords();
for(TeamSetVO teamSetVO:records){
R<User> user= iUserClient.userInfoById(teamSetVO.getDispatcher());
if(null != user && null != user.getData()){
for (TeamSetVO teamSetVO : records) {
R<User> user = iUserClient.userInfoById(teamSetVO.getDispatcher());
if (null != user && null != user.getData()) {
teamSetVO.setDispatcherRealName(user.getData().getRealName());
}
R<User> userplan= iUserClient.userInfoById(teamSetVO.getPlanner());
if(null != userplan && null != userplan.getData()){
R<User> userplan = iUserClient.userInfoById(teamSetVO.getPlanner());
if (null != userplan && null != userplan.getData()) {
teamSetVO.setPlannerRealName(userplan.getData().getRealName());
}
R<User> userleader= iUserClient.userInfoById(teamSetVO.getTeamLeader());
if(null != userleader && null != userleader.getData()){
R<User> userleader = iUserClient.userInfoById(teamSetVO.getTeamLeader());
if (null != userleader && null != userleader.getData()) {
teamSetVO.setTeamLeaderRealName(userleader.getData().getRealName());
}
}
@ -472,7 +473,7 @@ public class TeamSetController extends BladeController {
@Operation(summary = "新增一条", description = "传入TeamSet Obj")
public R save(@Valid @RequestBody TeamSet addOne) {
addOne.setId(null);
R<User> user= iUserClient.userInfoById(addOne.getDispatcher());
R<User> user = iUserClient.userInfoById(addOne.getDispatcher());
addOne.setDispatcherRealName(user.getData().getRealName());
return R.status(service.save(addOne));
}
@ -486,7 +487,7 @@ public class TeamSetController extends BladeController {
public R saveBat(@Valid @RequestBody List<TeamSet> addList) {
addList.forEach(one -> {
one.setId(null);
R<User> user= iUserClient.userInfoById(one.getDispatcher());
R<User> user = iUserClient.userInfoById(one.getDispatcher());
one.setDispatcherRealName(user.getData().getRealName());
});
return R.status(service.saveBatch(addList));
@ -500,7 +501,7 @@ public class TeamSetController extends BladeController {
@ApiLog("班组修改")
@Operation(summary = "修改一条", description = "传入TeamSet Obj")
public R update(@Valid @RequestBody TeamSet updateOne) {
R<User> user= iUserClient.userInfoById(updateOne.getDispatcher());
R<User> user = iUserClient.userInfoById(updateOne.getDispatcher());
updateOne.setDispatcherRealName(user.getData().getRealName());
return R.status(service.updateById(updateOne));
}
@ -513,8 +514,8 @@ public class TeamSetController extends BladeController {
@Operation(summary = "修改批量", description = "传入TeamSet List")
public R updateBat(@Valid @RequestBody List<TeamSet> updateList) {
for(TeamSet updateOne:updateList){
R<User> user= iUserClient.userInfoById(updateOne.getDispatcher());
for (TeamSet updateOne : updateList) {
R<User> user = iUserClient.userInfoById(updateOne.getDispatcher());
updateOne.setDispatcherRealName(user.getData().getRealName());
}
return R.status(service.updateBatchById(updateList));
@ -557,16 +558,72 @@ public class TeamSetController extends BladeController {
@GetMapping("/exportExcel")
@ApiOperationSupport(order = 70)
@Operation(summary = "导出Excel", description = "传入TeamSet")
public void exportExcel(@Parameter(hidden = true) @RequestParam Map<String, Object> teamSet,
public void exportExcel(@Parameter(hidden = true) @RequestParam Map<String, Object> map,
BladeUser bladeUser, HttpServletResponse response) {
QueryWrapper<TeamSet> qw = Condition.getQueryWrapper(teamSet, TeamSet.class);
//if (!AuthUtil.isAdministrator()) {
// queryWrapper.lambda().eq(TeamSet::getTenantId, bladeUser.getTenantId());
//}
//queryWrapper.lambda().eq(TeamSetEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
List<TeamSetExcel> list = service.exportTeamSet(qw);
ExcelUtil.export(response, "[班组]数据" + DateUtil.time(),
"[班组]数据表", list, TeamSetExcel.class);
QueryWrapper<TeamSet> qw = Condition.getQueryWrapper(map, TeamSet.class);
qw.like(map.containsKey(TeamSet.COL_TS_CODE), TeamSet.COL_TS_CODE, (Func.toStr(map.get(TeamSet.COL_TS_CODE))));
qw.like(map.containsKey(TeamSet.COL_TS_NAME), TeamSet.COL_TS_NAME, (Func.toStr(map.get(TeamSet.COL_TS_NAME))));
qw.like(map.containsKey("dispatcherRealName"), "DISPATCHER_REAL_NAME", (Func.toStr(map.get("dispatcherRealName"))));
qw.eq(map.containsKey(TeamSet.COL_DISPATCHER), TeamSet.COL_DISPATCHER, (Func.toLong(map.get(TeamSet.COL_DISPATCHER))));
qw.in(map.containsKey("ids"), "ID", Func.toLong(map.get("ids")));
qw.last("ORDER BY UPDATE_TIME DESC ");
// page
List<TeamSet> list = service.list(qw);
List<TeamSetExcel> excels = new ArrayList<>();
for (TeamSet teamSet : list) {
TeamSetExcel excel = new TeamSetExcel();
BeanUtils.copyProperties(teamSet, excel);
List<TeamSetVO> teamSetVOS = service.getUserAll(teamSet.getDispatcher(), teamSet.getPlanner(), teamSet.getTeamLeader());
if (null != teamSetVOS && teamSetVOS.size() > 0) {
for (TeamSetVO teamSetVO1 : teamSetVOS) {
if (null != teamSetVO1.getDispatcherRealName() && !"".equals(teamSetVO1.getDispatcherRealName())) {
excel.setDispatcherRealName(teamSetVO1.getDispatcherRealName());
}
if (null != teamSetVO1.getPlannerRealName() && !"".equals(teamSetVO1.getPlannerRealName())) {
excel.setPlannerRealName(teamSetVO1.getPlannerRealName());
}
if (null != teamSetVO1.getTeamLeaderRealName() && !"".equals(teamSetVO1.getTeamLeaderRealName())) {
excel.setTeamLeaderRealName(teamSetVO1.getTeamLeaderRealName());
}
}
}
List<TeamSetVO> teamTimes = teamTimeService.getTimesAll(teamSet.getId());
List<String> dayPutDueTimes = teamTimes.stream()
.filter(setvo -> (setvo.getDayPutDueTime() != null && !"".equals(setvo.getDayPutDueTime())))
.map(TeamSetVO::getDayPutDueTime)
.collect(Collectors.toList());
String dayPutDueTime = dayPutDueTimes.stream()
.map(Object::toString) // 或者直接使用String::valueOf,效果相同
.collect(Collectors.joining(","));
excel.setDayPutDueTime(dayPutDueTime);
List<String> specDayPutDueTimes = teamTimes.stream()
.filter(setvo -> (setvo.getSpecDayPutDueTime() != null && !"".equals(setvo.getSpecDayPutDueTime())))
.map(TeamSetVO::getSpecDayPutDueTime)
.collect(Collectors.toList());
String specDayPutDueTime = specDayPutDueTimes.stream()
.map(Object::toString) // 或者直接使用String::valueOf,效果相同
.collect(Collectors.joining(","));
excel.setSpecDayPutDueTime(specDayPutDueTime);
List<String> exChangeTimes = teamTimes.stream()
.filter(setvo -> (setvo.getExChangeTime() != null && !"".equals(setvo.getExChangeTime())))
.map(TeamSetVO::getExChangeTime)
.collect(Collectors.toList());
String changeDayPutDueTime = exChangeTimes.stream()
.map(Object::toString) // 或者直接使用String::valueOf,效果相同
.collect(Collectors.joining(","));
excel.setExChangeTime(changeDayPutDueTime);
if ("0".equals(excel.getSpecial())) {
excel.setSpecial("否");
} else if ("1".equals(excel.getSpecial())) {
excel.setSpecial("是");
}
excel.setTsTypeName(TeamSetExcel.getTsTypeName(teamSet.getTsType()));
excels.add(excel);
}
ExcelUtil.export(response, "班组" + DateUtil.time(),
"班组", excels, TeamSetExcel.class);
}
/**
@ -598,30 +655,30 @@ public class TeamSetController extends BladeController {
// return R.status(service.saveBatch(importList));
List<TeamSet> noticeList = new ArrayList<>();
List<TeamSetExcel> list = ExcelUtil.read(file, TeamSetExcel.class);
List<TeamSetImportExcel> list = ExcelUtil.read(file, TeamSetImportExcel.class);
list.forEach(noticeExcel -> {
TeamSet notice = BeanUtil.copy(noticeExcel, TeamSet.class);
List<User> userPlanners = iUserClient.listByNameNolike(noticeExcel.getPlannerName());
if(null != userPlanners && userPlanners.size() > 0){
if (null != userPlanners && userPlanners.size() > 0) {
notice.setPlanner(userPlanners.get(0).getId());
}
List<User> userDispatchers = iUserClient.listByNameNolike(noticeExcel.getDispatcherName());
if(null != userDispatchers && userDispatchers.size() > 0){
if (null != userDispatchers && userDispatchers.size() > 0) {
notice.setDispatcher(userDispatchers.get(0).getId());
}
List<User> userLeaders = iUserClient.listByNameNolike(noticeExcel.getTeamLeaderName());
if(null != userLeaders && userLeaders.size() > 0){
if (null != userLeaders && userLeaders.size() > 0) {
notice.setTeamLeader(userLeaders.get(0).getId());
}
QueryWrapper<Shifts> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("name",noticeExcel.getCsName());
queryWrapper.eq("name", noticeExcel.getCsName());
List<Shifts> shifts = shiftService.list(queryWrapper);
if(null != shifts && shifts.size() > 0){
if (null != shifts && shifts.size() > 0) {
notice.setCsId(shifts.get(0).getId());
}

@ -36,6 +36,7 @@ import org.springblade.desk.basic.util.ExcelExtUtil;
import org.springblade.desk.basic.util.QueryUtils;
import org.springblade.desk.basic.wrapper.WorkCenterWrapper;
import org.springblade.scheduling.pojo.entity.CraftAbilityEntity;
import org.springblade.system.feign.IDictClient;
import org.springblade.system.feign.IUserClient;
import org.springblade.system.pojo.entity.User;
import org.springframework.beans.BeanUtils;
@ -75,6 +76,8 @@ public class WorkCenterController extends BladeController {
private IUserClient iUserClient;
@Resource
private ICenterTeamService teamCenterService;
@Resource
private IDictClient dictClient;
/**
* [作业中心] 详情
*/
@ -466,13 +469,32 @@ public class WorkCenterController extends BladeController {
public void exportExcel(@Parameter(hidden = true) @RequestParam Map<String, Object> workCenter,
BladeUser bladeUser, HttpServletResponse response) {
QueryWrapper<WorkCenter> qw = Condition.getQueryWrapper(workCenter, WorkCenter.class);
//if (!AuthUtil.isAdministrator()) {
// queryWrapper.lambda().eq(WorkCenter::getTenantId, bladeUser.getTenantId());
//}
//queryWrapper.lambda().eq(WorkCenterEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
List<WorkCenterExcel> list = service.exportWorkCenter(qw);
ExcelUtil.export(response, "[作业中心]数据" + DateUtil.time(),
"[作业中心]数据表", list, WorkCenterExcel.class);
qw.like(workCenter.containsKey("wcCode"), WorkCenter.COL_WC_CODE, Func.toStr(workCenter.get("wcCode")));
qw.like(workCenter.containsKey("wcName"), WorkCenter.COL_WC_NAME, Func.toStr(workCenter.get("wcName")));
qw.like(workCenter.containsKey("processes"), WorkCenter.COL_PROCESSES, Func.toStr(workCenter.get("processes")));
qw.like(workCenter.containsKey("sign"), WorkCenter.COL_SIGN, Func.toStr(workCenter.get("sign")));
qw.eq(workCenter.containsKey("leaderUser"), WorkCenter.COL_LEADER_USER, Func.toLong(workCenter.get("leaderUser")));
qw.like(workCenter.containsKey("team"), WorkCenter.COL_TEAM, Func.toStr(workCenter.get("team")));
qw.like(workCenter.containsKey("teamId"), WorkCenter.COL_TEAM_ID, Func.toStr(workCenter.get("teamId")));
//qw.last("ORDER BY UPDATE_TIME DESC ");
List<WorkCenter> list = service.list(qw);
List<WorkCenterExcel> excels = new ArrayList<>();
for(WorkCenter one : list){
WorkCenterExcel excel = new WorkCenterExcel();
BeanUtils.copyProperties(one, excel);
R<User> user= iUserClient.userInfoById(one.getLeaderUser());
if(null != user && null != user.getData()){
excel.setLeaderUserName(user.getData().getRealName());
}
R<String> workCenterJfCenter = dictClient.getValue("workCenterJfCenter", one.getJcId());
if(workCenterJfCenter != null && workCenterJfCenter.getData() != null){
excel.setJcName(workCenterJfCenter.getData());
}
excels.add(excel);
}
ExcelUtil.export(response, "作业中心" + DateUtil.time(),
"作业中心", excels, WorkCenterExcel.class);
}
/**

@ -26,109 +26,96 @@ import java.io.Serializable;
@ContentRowHeight(18)
public class TeamSetExcel implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Serial
private static final long serialVersionUID = 1L;
/**
* 编码
*/
@ColumnWidth(20)
@ExcelProperty("编码")
private String tsCode;
/**
* 名称
*/
@ColumnWidth(20)
@ExcelProperty("名称")
private String tsName;
/**
* 调度员
*/
@ColumnWidth(20)
@ExcelProperty("调度员")
// private Long dispatcher;
private String dispatcherName;
/**
* 班组长;外键人员
*/
@ColumnWidth(20)
@ExcelProperty("班组长;外键(人员)")
// private Long teamLeader;
private String teamLeaderName;
/**
* 班次;外键班次
*/
@ColumnWidth(20)
@ExcelProperty("班次;外键(班次)")
// private Long csId;
private String csName;
/**
* 日分派时间
*/
@ColumnWidth(20)
@ExcelProperty("日分派时间")
private String dayPutDueTime;
/**
* 创建人;外键人员
*/
@ColumnWidth(20)
@ExcelProperty("创建人;外键(人员)")
// private Long createMan;
private String createManName;
/**
* 删除标记;1:删除0:正常
*/
@ColumnWidth(20)
@ExcelProperty("删除标记;1:删除,0:正常")
private String deleted;
/**
* 作业中心
*/
@ColumnWidth(20)
@ExcelProperty("作业中心")
// private Long wcId;
private String wcName;
/**
*
*/
@ColumnWidth(20)
@ExcelProperty("")
private String special;
/**
*
*/
@ColumnWidth(20)
@ExcelProperty("计划员")
// private Long planner;
private String plannerName;
/**
*
*/
@ColumnWidth(20)
@ExcelProperty("")
private String teamMember;
/**
*
*/
@ColumnWidth(20)
@ExcelProperty("")
private String specDayPutDueTime;
/**
*
*/
@ColumnWidth(20)
@ExcelProperty("")
private String exChangeTime;
/**
* 类型;1针孔2壳体3烧结4园区5外协
*/
@ColumnWidth(20)
@ExcelProperty("类型;1、针孔,2、壳体,3、烧结,4、园区,5、外协")
private String tsType;
/**
* 备注
*/
@ColumnWidth(20)
@ExcelProperty("备注")
private String remark;
/**
* 编码
*/
@ColumnWidth(20)
@ExcelProperty("编码")
private String tsCode;
/**
* 名称
*/
@ColumnWidth(20)
@ExcelProperty("名称")
private String tsName;
/**
* 班组长
*/
@ColumnWidth(20)
@ExcelProperty("班组长")
private String teamLeaderRealName;
/**
* 计划员
*/
@ColumnWidth(20)
@ExcelProperty("计划员")
private String plannerRealName;
/**
* 调度员
*/
@ColumnWidth(20)
@ExcelProperty("调度员")
private String dispatcherRealName;
/**
* 班次
*/
@ColumnWidth(20)
@ExcelProperty("班次")
private String shiftsName;
/**
* 类型分类
*/
@ColumnWidth(20)
@ExcelProperty("类型分类")
private String tsTypeName;
/**
* 日分派时间
*/
@ColumnWidth(20)
@ExcelProperty("日分派时间")
private String dayPutDueTime;
/**
* 特殊日分派时间
*/
@ColumnWidth(20)
@ExcelProperty("特殊日分派时间")
private String specDayPutDueTime;
/**
* 轮换时间
*/
@ColumnWidth(20)
@ExcelProperty("轮换时间")
private String exChangeTime;
/**
* 特殊
*/
@ColumnWidth(20)
@ExcelProperty("特殊")
private String special;
public static String getTsTypeName(String tsType) {
if ("1".equals(tsType)) {
return "针孔";
} else if ("2".equals(tsType)) {
return "壳体";
} else if ("3".equals(tsType)) {
return "烧结";
} else if ("4".equals(tsType)) {
return "园区";
} else if ("5".equals(tsType)) {
return "外协";
} else {
return "";
}
}
}

@ -0,0 +1,134 @@
/**
* Author: Tom Shuo
*/
package org.springblade.desk.basic.excel;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* [班组] Excel实体类
*
* @author Tom Shuo
* @since 2025-12-16
*/
@Data
@ColumnWidth(25)
@HeadRowHeight(20)
@ContentRowHeight(18)
public class TeamSetImportExcel implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 编码
*/
@ColumnWidth(20)
@ExcelProperty("编码")
private String tsCode;
/**
* 名称
*/
@ColumnWidth(20)
@ExcelProperty("名称")
private String tsName;
/**
* 调度员
*/
@ColumnWidth(20)
@ExcelProperty("调度员")
// private Long dispatcher;
private String dispatcherName;
/**
* 班组长;外键人员
*/
@ColumnWidth(20)
@ExcelProperty("班组长;外键(人员)")
// private Long teamLeader;
private String teamLeaderName;
/**
* 班次;外键班次
*/
@ColumnWidth(20)
@ExcelProperty("班次;外键(班次)")
// private Long csId;
private String csName;
/**
* 日分派时间
*/
@ColumnWidth(20)
@ExcelProperty("日分派时间")
private String dayPutDueTime;
/**
* 创建人;外键人员
*/
@ColumnWidth(20)
@ExcelProperty("创建人;外键(人员)")
// private Long createMan;
private String createManName;
/**
* 删除标记;1:删除0:正常
*/
@ColumnWidth(20)
@ExcelProperty("删除标记;1:删除,0:正常")
private String deleted;
/**
* 作业中心
*/
@ColumnWidth(20)
@ExcelProperty("作业中心")
// private Long wcId;
private String wcName;
/**
*
*/
@ColumnWidth(20)
@ExcelProperty("")
private String special;
/**
*
*/
@ColumnWidth(20)
@ExcelProperty("计划员")
// private Long planner;
private String plannerName;
/**
*
*/
@ColumnWidth(20)
@ExcelProperty("")
private String teamMember;
/**
*
*/
@ColumnWidth(20)
@ExcelProperty("")
private String specDayPutDueTime;
/**
*
*/
@ColumnWidth(20)
@ExcelProperty("")
private String exChangeTime;
/**
* 类型;1针孔2壳体3烧结4园区5外协
*/
@ColumnWidth(20)
@ExcelProperty("类型;1、针孔,2、壳体,3、烧结,4、园区,5、外协")
private String tsType;
/**
* 备注
*/
@ColumnWidth(20)
@ExcelProperty("备注")
private String remark;
}

@ -13,6 +13,7 @@ import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
@ -42,12 +43,6 @@ public class WorkCenterExcel implements Serializable {
@ColumnWidth(20)
@ExcelProperty("名称")
private String wcName;
/**
* 工序
*/
@ColumnWidth(20)
@ExcelProperty("工序")
private String processes;
/**
* 工艺能力
*/
@ -61,93 +56,29 @@ public class WorkCenterExcel implements Serializable {
@ExcelProperty("业务标识")
private String sign;
/**
* 主管工艺员[用户]id
* 主管工艺员
*/
@ColumnWidth(20)
@ExcelProperty("主管工艺员[用户]id")
private BigDecimal leaderUser;
@ExcelProperty("主管工艺员")
private String leaderUserName;
/**
* 班组
*/
@ColumnWidth(20)
@ExcelProperty("班组")
private String team;
/**
* 面积
*/
@ColumnWidth(20)
@ExcelProperty("面积")
private BigDecimal area;
/**
* 数量
*/
@ColumnWidth(20)
@ExcelProperty("数量")
private Long quantity;
/**
* 批次
*/
@ColumnWidth(20)
@ExcelProperty("批次")
private Long batchNo;
/**
* 饱和度
*/
@ColumnWidth(20)
@ExcelProperty("饱和度")
private BigDecimal saturation;
/**
* 是否检验-[0]:不需检验;[1]:需检验;
*/
@ColumnWidth(20)
@ExcelProperty("是否检验-[0]:不需检验;[1]:需检验;")
private Short checkout;
/**
* 是否镀后-[0]:不需要;[1]-需要;
*/
@ColumnWidth(20)
@ExcelProperty("是否镀后-[0]:不需要;[1]-需要;")
private Short whetherPlate;
/**
* 是否大批量-[0]:不是;[1]:;
*/
@ColumnWidth(20)
@ExcelProperty("是否大批量-[0]:不是;[1]:是;")
private Short bigBatch;
/**
* 开始点位
*/
@ColumnWidth(20)
@ExcelProperty("开始点位")
private String startPoint;
/**
* 结束点位
*/
@ColumnWidth(20)
@ExcelProperty("结束点位")
private String endPoint;
/**
* 轮转周期
*/
@ColumnWidth(20)
@ExcelProperty("轮转周期")
private Long roundCycle;
/**
* 描述
*/
@ColumnWidth(20)
@ExcelProperty("描述")
private String describe;
/**
* [交付中心]id
* 交付中心
*/
@ColumnWidth(20)
@ExcelProperty("[交付中心]id")
private BigDecimal jcId;
@ExcelProperty("交付中心")
private String jcName;
/**
* 备注
* 修改时间
*/
@ColumnWidth(20)
@ExcelProperty("备注")
private String remarks;
@ExcelProperty("修改时间")
private Date updateTime;
}

@ -178,11 +178,16 @@ public class OemStatementController extends BladeController {
@ApiOperationSupport(order = 13)
@Operation(summary = "导出数据", description = "传入mesOemStatement")
public void exportOemStatement(StatementQuery mesOemStatement, Query query, HttpServletResponse response) {
List<OemStatementExcel> oemStatementExcels = mesOemStatementService.exportOemStatement(mesOemStatement);
for (OemStatementExcel excel : oemStatementExcels) {
excel.setRosStatusName(OemStatementEntity.getRosStatusName(excel.getRosStatusName()));
List<StatementVO> vos = mesOemStatementService.selectOemStatement(mesOemStatement);
List<OemStatementExcel> excels = new ArrayList<>();
for (StatementVO vo : vos) {
OemStatementExcel excel = new OemStatementExcel();
BeanUtils.copyProperties(vo, excel);
excel.setRosStatusName(vo.getRosStatusName());
excel.setUnitName(vo.getUnitName());
excels.add(excel);
}
ExcelUtil.export(response, "外协结算单数据" + DateUtil.time(), "外协结算单数据表", oemStatementExcels, OemStatementExcel.class);
ExcelUtil.export(response, "外协结算单数据" + DateUtil.time(), "外协结算单数据表", excels, OemStatementExcel.class);
}
/**

@ -37,15 +37,6 @@ public interface OemStatementMapper extends BaseMapper<OemStatementEntity> {
*/
List<StatementVO> selectOemStatement(@Param("query") StatementQuery query);
/**
* 获取导出数据
*
* @param statementQuery
* @return
*/
List<OemStatementExcel> exportOemStatement(StatementQuery statementQuery);
/**
* 获取未结算订单
*

@ -273,9 +273,7 @@
STATEMENT_NO,
STATEMENT_CATEGORY_ID,
STATEMENT_CATEGORY,
CARD_NO,
CASE WHEN UNIT = '1' THEN TO_NCHAR('件') WHEN UNIT = '2' THEN TO_NCHAR('克') WHEN UNIT = '3' THEN TO_NCHAR('平方分米')
WHEN UNIT = 'DJ' THEN TO_NCHAR('单件') WHEN UNIT = 'DJMJ' THEN TO_NCHAR('单件面积') WHEN UNIT = 'ZMJ' THEN TO_NCHAR('总面积') ELSE UNIT END AS UNIT_NAME
CARD_NO
FROM MES_OEM_STATEMENT
<where>
IS_DELETED = 0
@ -372,141 +370,6 @@
<include refid="selectOemStatementSql"/>
</select>
<select id="exportOemStatement" resultMap="statementExcelResultMap">
SELECT ID,
YP_CODE,
WO_CODE,
PART_ID,
PART_CODE,
PART_NAME,
BATCH_NO,
PRODUCT_IDENT,
PPS_ID,
PS_CODE,
PS_NAME,
CA_ID,
CA_NAME,
OC_ID,
OC_CODE,
OC_NAME,
MAKE_QTY,
YP_AREA,
MAKE_QTY * YP_AREA as TOTAL_AREA,
PLATE,
ROS_THICKNESS,
STANDARD_PROCESS_CODE,
TSB_NUM,
TSD_NUM,
TJT_NUM,
PLAN_DEPTCODE,
USE_DEPT_CODE,
PUT_STORE_TIME,
to_char(PUT_STORE_TIME, 'yyyy-MM-dd') as PUT_STORE_DATE,
QUOTATION,
UNIT,
UNIT_PRICE,
TOTAL_PRICE,
CASE WHEN ROS_STATUS = 3 THEN MEMO ELSE NULL END as MEMO,
to_char(SETTLE_TIME, 'yyyy-MM-dd') as SETTLE_DATE,
ROS_STATUS,
to_char(APPROVAL_TIME, 'yyyy-MM-dd') as APPROVAL_DATE,
to_char(PUSH_TIME, 'yyyy-MM-dd') as PUSH_DATE,
STATEMENT_NO,
STATEMENT_CATEGORY_ID,
STATEMENT_CATEGORY,
CARD_NO,
ROS_STATUS as ROS_STATUS_NAME,
CASE WHEN UNIT = '1' THEN '件' WHEN UNIT = '2' THEN '克' WHEN UNIT = '3' THEN '平方分米'
WHEN UNIT = 'DJ' THEN '单件' WHEN UNIT = 'DJMJ' THEN '单件面积' WHEN UNIT = 'ZMJ' THEN '总面积' ELSE UNIT END AS UNIT_NAME
FROM MES_OEM_STATEMENT
<where>
IS_DELETED = 0
<if test="rosStatusList != null and rosStatusList != ''">
AND ROS_STATUS IN
<foreach collection="rosStatusList.split(',')" item="status"
open="(" separator="," close=")" index="index">
#{status}
</foreach>
</if>
<if test="memo != null and memo != ''">
AND MEMO IN
<foreach collection="memo.split(';')" item="memo" open="(" separator="," close=")" index="index">
#{memo}
</foreach>
</if>
<if test="postPlatingStorageTimeStart != null">
AND PUT_STORE_TIME &gt;= #{postPlatingStorageTimeStart}
</if>
<if test="postPlatingStorageTimeEnd != null">
AND PUT_STORE_TIME &lt; #{postPlatingStorageTimeEnd} + 1
</if>
<if test="productIdent != null and productIdent != ''">
AND PRODUCT_IDENT LIKE CONCAT('%', CONCAT(#{productIdent}, '%'))
</if>
<if test="manual != null and manual != ''">
AND manual = #{manual}
</if>
<if test="caId != null and caId != ''">
AND CA_ID = #{caId}
</if>
<if test="ppsId != null and ppsId != ''">
AND PPS_ID = #{ppsId}
</if>
<if test="woCode != null and woCode != ''">
AND WO_CODE LIKE CONCAT('%', CONCAT(#{woCode}, '%'))
</if>
<if test="partCode != null and partCode != ''">
AND PART_CODE LIKE CONCAT('%', CONCAT(#{partCode}, '%'))
</if>
<if test="ypCode != null and ypCode != ''">
AND YP_CODE LIKE CONCAT('%', CONCAT(#{ypCode}, '%'))
</if>
<if test="batchNo != null and batchNo != ''">
AND BATCH_NO LIKE CONCAT('%', CONCAT(#{batchNo}, '%'))
</if>
<if test="plate != null and plate != ''">
AND PLATE LIKE CONCAT('%', CONCAT(#{plate}, '%'))
</if>
<if test="productIdent != null and productIdent != ''">
AND PRODUCT_IDENT LIKE CONCAT('%', CONCAT(#{productIdent}, '%'))
</if>
<if test="cardNo != null and cardNo != ''">
AND CARD_NO LIKE CONCAT('%', CONCAT(#{cardNo}, '%'))
</if>
<if test="statementCategoryId != null and statementCategoryId != ''">
AND STATEMENT_CATEGORY_ID = #{statementCategoryId}
</if>
<if test="statementCategory != null and statementCategory != ''">
AND STATEMENT_CATEGORY LIKE CONCAT('%', CONCAT(#{statementCategory}, '%'))
</if>
<if test="ocIds != null and ocIds != ''">
AND OC_ID IN
<foreach collection="ocIds.split(',')" item="id"
open="(" separator="," close=")" index="index">
#{id}
</foreach>
</if>
<if test="psCode != null and psCode != ''">
AND ps_code IN
<foreach collection="psCode.split(',')" item="id"
open="(" separator="," close=")" index="index">
#{id}
</foreach>
</if>
</where>
<choose>
<when test="orderByField != null and orderByField != ''">
ORDER BY ${orderByField}
<if test="isAsc">ASC</if>
<if test="!isAsc">DESC</if>
</when>
<otherwise>
order by PUT_STORE_TIME asc
</otherwise>
</choose>
</select>
<!-- 查询结算异常数据(带关联字段) -->
<select id="selectErrorStatements" resultMap="statementVOResultMap">
SELECT

@ -32,7 +32,12 @@ public interface IOemStatementService extends BaseService<OemStatementEntity> {
*/
IPage<StatementVO> selectOemStatementPage(IPage<StatementVO> page, StatementQuery mesOemStatement);
List<OemStatementExcel> exportOemStatement(StatementQuery mesOemStatement);
/**
* 自定义查询
* @param mesOemStatement
* @return
*/
List<StatementVO> selectOemStatement(StatementQuery mesOemStatement);
/**

@ -118,8 +118,8 @@ public class OemStatementServiceImpl extends BaseServiceImpl<OemStatementMapper,
}
@Override
public List<OemStatementExcel> exportOemStatement(StatementQuery mesOemStatement) {
return baseMapper.exportOemStatement(mesOemStatement);
public List<StatementVO> selectOemStatement(StatementQuery mesOemStatement) {
return baseMapper.selectOemStatement(mesOemStatement);
}
@Override
@ -2598,17 +2598,22 @@ public class OemStatementServiceImpl extends BaseServiceImpl<OemStatementMapper,
@Override
public R generateSettlementByMjMes(StatementQuery statementQuery) {
log.info("开始同步旧MES未结算数据......");
List<OemStatementEntity> saves = new ArrayList<>();
// 查询未生成的结算数据
List<StatementVO> statementVOS = baseMapper.selectUnsettledByMjMes(statementQuery);
if (CollectionUtils.isEmpty(statementVOS)) {
return R.fail("没有需要结算的记录");
}
for(StatementVO vo : statementVOS){
if(StringUtils.isEmpty(vo.getPlateThickness())){
for (StatementVO vo : statementVOS) {
log.info("同步旧MES未结算数据,woId:{},yoId:{},plateThickness:{}, rosThickness:{}", vo.getWoId(), vo.getYoId(), vo.getPlateThickness(), vo.getRosThickness());
log.info("同步旧MES未结算数据,镀层厚度是否为空:{}", StringUtils.isEmpty(vo.getPlateThickness()));
if (StringUtils.isEmpty(vo.getPlateThickness())) {
log.info("同步旧MES未结算数据,开始同步镀层厚度, partCode:{}, plateThickness:{}, plateCode:{}, productIdent:{}", vo.getPartCode(), vo.getPlateThickness(), vo.getPlateCode(), vo.getProductIdent());
String thickness = this.getThicknessByMjMes(vo.getPartCode(), vo.getPlateThickness(), vo.getPlateCode(), vo.getProductIdent());
vo.setRosThickness(thickness);
vo.setPlateThickness(thickness);
log.info("同步旧MES未结算数据,结束同步镀层厚度,thickness:{}", thickness);
}
}
// 处理重复镀后入库
@ -2627,57 +2632,75 @@ public class OemStatementServiceImpl extends BaseServiceImpl<OemStatementMapper,
entity.setMemo("未找到报价单");
saves.add(entity);
}
boolean b = this.saveOrUpdateBatch(saves);
log.info("结束同步旧MES未结算数据......");
// 记录结算数据
return R.status(this.saveOrUpdateBatch(saves));
return R.status(b);
}
@Override
public String getThicknessByMjMes(String partCode, String plateThickness, String plateCode, String prodIdent) {
log.info("同步镀层厚度,plateThickness:{}, plateThickness有值:{}", plateThickness, StringUtils.isNotEmpty(plateThickness));
if (StringUtils.isNotEmpty(plateThickness)) {
return plateThickness;
}
boolean special = false;
log.info("同步镀层厚度, plateCod:{}", plateCode);
// 2025-07-23 线上迁移修改
if ("4.1.2.1".equals(plateCode) || "4.1.2.2".equals(plateCode) || "4.1.2.5".equals(plateCode) || "4.1.2.13".equals(plateCode)
|| "4.1.2.7".equals(plateCode) || "4.1.2.11".equals(plateCode) || "4.1.2.12".equals(plateCode) || "4.1.2.15".equals(plateCode)
|| "4.1.2.16".equals(plateCode) || "4.1.2.17".equals(plateCode)) {
//镀层质量等级标识
log.info("同步镀层厚度, identList, getBusConfigByMjMes, bcTag:BC_TYPE_PROD_IDENT, bcName:镀层质量等级标识");
List<Map<String, Object>> bc = baseMapper.getBusConfigByMjMes("BC_TYPE_PROD_IDENT", "镀层质量等级标识");
String[] identList = new String[]{"JII", "JI", "JHT", "JIIR", "JIR", "JZ","JIX"};
String[] identList = new String[]{"JII", "JI", "JHT", "JIIR", "JIR", "JZ", "JIX"};
log.info("同步镀层厚度,identList, bc不为空:{}", !CollectionUtils.isEmpty(bc));
if (!CollectionUtils.isEmpty(bc)) {
if(bc.get(0).get("bc_value") != null){
String bcValue = (String) bc.get(0).get("bc_value");
log.info("同步镀层厚度,identList, BC_VALUE:{}", bc.get(0).get("BC_VALUE"));
if (bc.get(0).get("BC_VALUE") != null) {
String bcValue = (String) bc.get(0).get("BC_VALUE");
identList = bcValue.split("/");
log.info("同步镀层厚度, identList:{}", identList);
}
}
//镀层零件标识
log.info("同步镀层厚度,partList, getBusConfigByMjMes,bcTag:PLATE_PART, bcName:镀层零件标识");
bc = baseMapper.getBusConfigByMjMes("PLATE_PART", "镀层零件标识");
String[] partList = new String[]{"21E8-210"};
log.info("同步镀层厚度,partList, bc不为空:{}", !CollectionUtils.isEmpty(bc));
if (!CollectionUtils.isEmpty(bc)) {
if(bc.get(0).get("bc_value") != null) {
String bcValue = (String) bc.get(0).get("bc_value");
log.info("同步镀层厚度,partList, BC_VALUE:{}", bc.get(0).get("BC_VALUE"));
if (bc.get(0).get("BC_VALUE") != null) {
String bcValue = (String) bc.get(0).get("BC_VALUE");
partList = bcValue.split("/");
log.info("同步镀层厚度, partList:{}", partList);
}
}
special = Stream.of(identList).anyMatch(item -> prodIdent.equals(item));
if (special) {
special = Stream.of(partList).anyMatch(item -> partCode.contains(item));
}
log.info("同步镀层厚度, special:{}", special);
} else if ("4.1.2.6".equals(plateCode)) {
//镀层质量等级标识
String[] identList = new String[]{"JI", "JIR", "JHT", "JZ","J","JIX"};
String[] identList = new String[]{"JI", "JIR", "JHT", "JZ", "J", "JIX"};
//镀层零件标识
String[] partList = new String[]{"21E8-210"};
special = Stream.of(identList).anyMatch(item -> prodIdent.equals(item));
if (special) {
special = Stream.of(partList).anyMatch(item -> partCode.contains(item));
}
log.info("同步镀层厚度, special:{}", special);
}
log.info("同步镀层厚度, getThicknessByMjMes, plateCode:{}, prodIdent:{}, special: {}", plateCode, prodIdent, special);
List<Map<String, Object>> thicknessList = baseMapper.getThicknessByMjMes(plateCode, prodIdent, special);
log.info("同步镀层厚度, getThicknessByMjMes, thicknessList:{}", thicknessList);
log.info("同步镀层厚度, getThicknessByMjMes, thicknessList不为空:{}", !CollectionUtils.isEmpty(thicknessList));
if (!CollectionUtils.isEmpty(thicknessList)) {
if(thicknessList.get(0).get("thickness") != null){
String thickness = (String) thicknessList.get(0).get("thickness");
log.info("同步镀层厚度, getThicknessByMjMes, THICKNESS不为空:{}", thicknessList.get(0).get("THICKNESS"));
if (thicknessList.get(0).get("THICKNESS") != null) {
String thickness = (String) thicknessList.get(0).get("THICKNESS");
log.info("同步镀层厚度, getThicknessByMjMes, THICKNESS:{}", thickness);
return thickness;
}
}

Loading…
Cancel
Save