批量创建任务报工

dev
siontion 4 months ago
parent f0c0ced0fb
commit 85c2b743ae

@ -10,7 +10,8 @@ import lombok.Getter;
@Getter
public enum WarningEnum {
PROCESS_DESIGN_DEFERRED_WARNING("工艺设计延期预警");
PROCESS_DESIGN_DEFERRED_WARNING("工艺设计延期预警"),
DISPATCH_NO_FINISHED_WARNING("每日报工未达标预警");
private String description;

@ -0,0 +1,53 @@
package com.chanko.yunxi.mes.module.biz.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.List;
/**
*
*
* @author chenxi
* @date 2024-02-23 09:54
*/
@Data
@Accessors(chain = true)
public class DispatchWarningMessageVO {
@Schema(description = "是否包含预警信息")
private boolean hasWarning = false;
@Schema(description = "预警信息")
private List<WarningVO> warnings;
public static abstract class WarningVO {}
@Data
@Accessors(chain = true)
public static class DispatchWarningVO extends WarningVO {
@Schema(description = "自增id")
private Long id;
/**
* {@link com.chanko.yunxi.mes.module.biz.enums.WarningEnum}
*/
@Schema(description = "预警类型")
private String warningType;
@Schema(description = "预警接收人")
private String ownerName;
@Schema(description = "派工编号")
private String dispatchCode;
@Schema(description = "派工工序名称")
private String procedureName;
@Schema(description = "每日产能")
private long amount;
}
}

@ -238,23 +238,23 @@ public class ChanjetController {
//查询销售订单列表
chanjetSchedule.queryProjectOrder();
//查询bom表
chanjetSchedule.queryProcessBom(null,null);
// //查询bom表
// chanjetSchedule.queryProcessBom(null,null);
//查询存货
chanjetSchedule.queryMaterial();
//查询库存-现存量
chanjetSchedule.queryStock(null,null);
// //查询库存-现存量
// chanjetSchedule.queryStock(null,null);
//查询仓库
chanjetSchedule.queryWarehouse();
//创建入库
chanjetSchedule.createStorageInOrder(new Long(0));
//创建出库
chanjetSchedule.createStockOutOrder(new Long(0));
//创建工序
chanjetSchedule.createProcedure(null);
//创建员工
chanjetSchedule.createUser(null);
chanjetSchedule.createStorageInOrder();
// //创建出库
// chanjetSchedule.createStockOutOrder(new Long(0));
//
// //创建工序
// chanjetSchedule.createProcedure(null);
// //创建员工
// chanjetSchedule.createUser(null);
}
}

@ -93,4 +93,6 @@ public class CustomerController {
BeanUtils.toBean(list, CustomerRespVO.class));
}
}

@ -65,8 +65,27 @@ public class PlanController {
@PreAuthorize("@ss.hasPermission('biz:plan:update')")
public CommonResult<Boolean> updatePlanStatus(@Valid @RequestBody PlanSaveReqVO updateReqVO) {
PlanDO plan = planService.getPlan(updateReqVO.getId());
plan.setStatus(updateReqVO.getStatus());
planMapper.updateById(plan);
PlanPageReqVO pageReqVO = new PlanPageReqVO();
pageReqVO.setPlanNo(plan.getPlanNo()).setPageSize(99);
PageResult<PlanDO> pageResult = planService.getPlanOfSchedulePage(pageReqVO);
if(pageResult.getTotal()>0){
Integer orderTotal = pageResult.getList().get(0).getAmount();
final Integer[] finishedTotal = {0};
pageResult.getList().forEach(item ->{
finishedTotal[0] += item.getFinishedAmount();
});
if(orderTotal == finishedTotal[0]){
plan.setStatus(updateReqVO.getStatus());
planMapper.updateById(plan);
}
}
return success(true);
}

@ -19,6 +19,8 @@ import com.chanko.yunxi.mes.module.biz.service.taskdispatch.TaskDispatchService;
import com.chanko.yunxi.mes.module.biz.dal.dataobject.taskdispatch.TaskDispatchDO;
import com.chanko.yunxi.mes.module.biz.dal.dataobject.taskdispatch.TaskDispatchDetailDO;
import com.chanko.yunxi.mes.module.biz.enums.BusinessTypeEnum;
import com.chanko.yunxi.mes.module.biz.vo.DispatchWarningMessageVO;
import com.chanko.yunxi.mes.module.biz.vo.WarningMessageVO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
@ -258,4 +260,11 @@ public class TaskDispatchController {
taskDispatchDetailMapper.updateById(taskDispatchDetailDO);
return success(true);
}
@GetMapping("/warnings")
@Operation(summary = "获得工艺设计预警信息")
@PreAuthorize("@ss.hasPermission('biz:process-design:query')")
public CommonResult<DispatchWarningMessageVO> getWarnings() {
return success(taskDispatchService.getWarnings());
}
}

@ -41,6 +41,17 @@ public class TaskReportController {
return success(taskReportService.createTaskReport(createReqVO));
}
@PostMapping("/create-batch")
@Operation(summary = "批量创建任务报工")
@PreAuthorize("@ss.hasPermission('biz:task-report:create')")
public CommonResult<Boolean> createTaskReport(@Valid @RequestBody List<TaskReportSaveReqVO> createReqVOs) {
createReqVOs.forEach(item ->{
taskReportService.createTaskReport(item);
});
// taskReportService.createTaskReport(createReqVO)
return success(true);
}
@PutMapping("/update")
@Operation(summary = "更新任务报工")
@PreAuthorize("@ss.hasPermission('biz:task-report:update')")

@ -1,6 +1,8 @@
package com.chanko.yunxi.mes.module.biz.dal.dataobject.equipmanufacture;
import lombok.*;
import java.math.BigDecimal;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
@ -56,6 +58,6 @@ public class EquipManufactureDO extends BaseDO {
private String workShopName;
@TableField(exist = false)
private Long workTime;
private BigDecimal workTime;
}

@ -185,5 +185,8 @@ public class PlanDO extends BaseDO {
@TableField(exist = false)
private Integer isCompleted;
@TableField(exist = false)
private Integer finishedAmount;
}

@ -103,6 +103,12 @@ public class TaskReportDO extends BaseDO {
@TableField(exist = false)
private String materialName;
@TableField(exist = false)
private Long materialId;
@TableField(exist = false)
private String materialCode;
@TableField(exist = false)
private String spec;
@ -123,4 +129,15 @@ public class TaskReportDO extends BaseDO {
@TableField(exist = false)
private String ownerUsername;
private Integer hasSynch;
@TableField(exist = false)
private Integer isFinal;
@TableField(exist = false)
private Long whId;
@TableField(exist = false)
private String whNo;
}

@ -6,6 +6,8 @@ import com.chanko.yunxi.mes.framework.mybatis.core.query.MPJLambdaWrapperX;
import com.chanko.yunxi.mes.module.biz.controller.admin.equipmanufacture.vo.EquipManufacturePageReqVO;
import com.chanko.yunxi.mes.module.biz.dal.dataobject.equipmanufacture.EquipManufactureDO;
import com.chanko.yunxi.mes.module.biz.dal.dataobject.procedure.ProcedureDO;
import com.chanko.yunxi.mes.module.biz.dal.dataobject.taskdispatch.TaskDispatchDetailDO;
import com.chanko.yunxi.mes.module.biz.dal.dataobject.taskreport.TaskReportDO;
import com.chanko.yunxi.mes.module.biz.dal.dataobject.workshop.WorkshopDO;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.util.StringUtils;
@ -41,12 +43,17 @@ public interface EquipManufactureMapper extends BaseMapperX<EquipManufactureDO>
default PageResult<EquipManufactureDO> selectWorkTimePage(EquipManufacturePageReqVO reqVO) {
MPJLambdaWrapperX<EquipManufactureDO> query = new MPJLambdaWrapperX<>();
// query.selectAll(EquipManufactureDO.class)
// .select("d.work_time as workTime","w.name as workShopName")
// .leftJoin("select a.device_model,sum(b.work_time) work_time from pro_task_dispatch_detail a left join pro_task_report b on a.id=b.dispatch_detail_id" +
// " where a.deleted=0 and b.deleted=0 and ISNULL(a.device_model)=0 group by a.device_model ) as d on on t.id=d.device_model")
// .leftJoin(WorkshopDO.class,"w",WorkshopDO::getId,EquipManufactureDO::getWorkshopId)
// ;
query.selectAll(EquipManufactureDO.class)
.select("d.work_time as workTime","w.name as workShopName")
.leftJoin("select a.device_model,sum(b.work_time) work_time from pro_task_dispatch_detail a left join pro_task_report b on a.id=b.dispatch_detail_id" +
" where a.deleted=0 and b.deleted=0 and ISNULL(a.device_model)=0 group by a.device_model ) as d on on t.id=d.device_model")
.leftJoin(WorkshopDO.class,"w",WorkshopDO::getId,EquipManufactureDO::getWorkshopId)
;
.select("c.name as workShopName","sum(b.work_time) workTime")
.leftJoin(TaskDispatchDetailDO.class,"a",TaskDispatchDetailDO::getDeviceModel,EquipManufactureDO::getId)
.leftJoin(TaskReportDO.class,"b",TaskReportDO::getDispatchDetailId,TaskDispatchDetailDO::getId)
.leftJoin(WorkshopDO.class,"c",WorkshopDO::getId,EquipManufactureDO::getWorkshopId);
query.likeIfPresent(EquipManufactureDO::getCode, reqVO.getCode())

@ -93,6 +93,7 @@ public interface PlanMapper extends BaseMapperX<PlanDO> {
.select("i.name as workshopName, h.name as procedureName")
.select("u1.nickname as reportUserName", "f.work_time as workTime, f.amount as deliverAmount")
.select("case when f.procedure_status = 2 then 1 else 0 end as isCompleted")
.select("sum(case when h.is_final=1 then g.amount else 0 end) finishedAmount")
.leftJoin(ProjectOrderDO.class, "a", ProjectOrderDO::getId, PlanDO::getProjectId)
.leftJoin(ProjectOrderSubDO.class, "b", ProjectOrderSubDO::getProjectOrderId, ProjectOrderDO::getId)
.leftJoin(PlanSubDO.class, "c", PlanSubDO::getProjectSubId, ProjectOrderSubDO::getId)

@ -132,4 +132,30 @@ public interface TaskDispatchDetailMapper extends BaseMapperX<TaskDispatchDetail
return selectPage(reqVO, query);
}
default PageResult<TaskDispatchDetailDO> selectNoFinishedReportPage(TaskDispatchDetailPageReqVO reqVO) {
MPJLambdaWrapper<TaskDispatchDetailDO> query = new MPJLambdaWrapper<>();
query.selectAll(TaskDispatchDetailDO.class)
.select("a.code as dispatchCode")
.select("e.name as procedureName")
.select("u.nickname as ownerName")
.leftJoin(TaskDispatchDO.class, "a", TaskDispatchDO::getId, TaskDispatchDetailDO::getDispatchId)
// .leftJoin(ProjectOrderDO.class, "b", ProjectOrderDO::getId, TaskDispatchDO::getProjectId)
// .leftJoin(ProjectOrderSubDO.class, "c", ProjectOrderSubDO::getId, TaskDispatchDO::getProjectSubId)
// .leftJoin(MaterialDO.class, "d", MaterialDO::getId, ProjectOrderSubDO::getMaterialId)
.leftJoin(ProcedureDO.class, "e", ProcedureDO::getId, TaskDispatchDetailDO::getProcedureId)
.leftJoin("pro_task_report as f on t.dispatch_id=f.dispatch_id and t.procedure_id=f.procedure_id and DATE(f.start_time)=(CURDATE() - INTERVAL 1 DAY)")
// .leftJoin(WorkshopDO.class, "g", WorkshopDO::getId, TaskDispatchDO::getWorkshopId)
.leftJoin(AdminUserDO.class,"u",AdminUserDO::getId,TaskDispatchDetailDO::getOwner)
.groupBy("t.dispatch_id,t.procedure_id")
.having("t.amount/DATEDIFF(t.end_time,t.start_time)>sum(ifnull(a.amount,0))")
.orderByDesc(TaskDispatchDetailDO::getId)
.disableSubLogicDel();
query.eq(true,TaskDispatchDetailDO::getProcedureStatus,1)
.eq(true,TaskDispatchDetailDO::getOwner,reqVO.getOwner())
;
return selectPage(reqVO,query);
}
}

@ -12,6 +12,7 @@ import com.chanko.yunxi.mes.module.biz.dal.dataobject.projectorder.ProjectOrderS
import com.chanko.yunxi.mes.module.biz.dal.dataobject.taskdispatch.TaskDispatchDO;
import com.chanko.yunxi.mes.module.biz.dal.dataobject.taskdispatch.TaskDispatchDetailDO;
import com.chanko.yunxi.mes.module.biz.dal.dataobject.taskreport.TaskReportDO;
import com.chanko.yunxi.mes.module.biz.dal.dataobject.warehouse.WarehouseDO;
import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.apache.ibatis.annotations.Mapper;
@ -91,4 +92,28 @@ public interface TaskReportMapper extends BaseMapperX<TaskReportDO> {
return selectOne(query);
}
default PageResult<TaskReportDO> selectNoSynchPage(TaskReportPageReqVO reqVO) {
MPJLambdaWrapperX<TaskReportDO> query = new MPJLambdaWrapperX<>();
query.selectAll(TaskReportDO.class)
.select("y.is_final as isFinal")
.select("e.id as materialId")
.select("e.code as materialCode")
.select("w.warehouse_id as whId")
.select("w.wh_no as whNo")
.leftJoin(TaskDispatchDetailDO.class, "x", TaskDispatchDetailDO::getId, TaskReportDO::getDispatchDetailId)
.leftJoin(ProcedureDO.class, "y", ProcedureDO::getId, TaskReportDO::getProcedureId)
.leftJoin(TaskDispatchDO.class, "z", TaskDispatchDO::getId, TaskReportDO::getDispatchId)
.leftJoin(PlanDO.class, "a", PlanDO::getId, TaskDispatchDO::getPlanId)
.leftJoin(ProjectOrderSubDO.class, "c", ProjectOrderSubDO::getId, TaskDispatchDO::getProjectSubId)
.leftJoin(ProjectOrderDO.class, "d", ProjectOrderDO::getId, ProjectOrderSubDO::getProjectOrderId)
.leftJoin(MaterialDO.class, "e", MaterialDO::getId, ProjectOrderSubDO::getMaterialId)
.leftJoin(WarehouseDO.class,"w",WarehouseDO::getId,ProjectOrderSubDO::getWarehouseId)
.orderByDesc(TaskReportDO::getId)
.disableSubLogicDel();
query.eq(true,TaskReportDO::getHasSynch,0);
return selectPage(reqVO, query);
}
}

@ -11,6 +11,7 @@ import com.chanko.yunxi.mes.framework.common.pojo.CommonResult;
import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils;
import com.chanko.yunxi.mes.framework.common.util.object.ObjectUtils;
import com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum;
import com.chanko.yunxi.mes.framework.operatelog.core.service.OperateLogFrameworkService;
import com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.ChanjetSpi;
import com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.dto.*;
import com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.vo.*;
@ -58,6 +59,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
@ -120,6 +122,13 @@ public class ChanjetManager {
@Resource
private SystemParametersMapper systemParametersMapper;
@Resource
private OperateLogFrameworkService operateLogFrameworkService;
@Resource
private HttpServletRequest request;
private Boolean getSystemParameters(){
Boolean chanjet_switch = true;
SystemParametersDO systemParametersDO = systemParametersMapper.selectOne("code",SystemParmetersEnum.TPLUS_INTERFACE_SWITCH.getDescription());
@ -820,6 +829,31 @@ public class ChanjetManager {
saveReqVO.setProjectOrderSubs(subDOList);
projectOrderController.operateProjectOrder(saveReqVO);
// 根据销售订单的每个产品的BOM找到物料编码为6开头的物料原先的生成生产订单的逻辑不变再另外生成一张生产订单
if(subDOList.stream().filter(sub ->{ return sub.getMaterialId().toString().startsWith("6");}).count()>0){
ProjectOrderDO newProjectOrderDO =BeanUtil.toBean(projectOrderMapper.selectById(saveReqVO.getId()),ProjectOrderDO.class);
newProjectOrderDO.setId(null);
newProjectOrderDO.setCode(newProjectOrderDO.getCode()+"-1");
projectOrderMapper.insert(newProjectOrderDO);
List<ProjectOrderSubDO> insertList =subDOList.stream().filter(sub ->{ return sub.getMaterialId().toString().startsWith("6");}).collect(Collectors.toList());
insertList.forEach(o->{
o.setId(null);
o.setProjectOrderId(newProjectOrderDO.getId());
// o.setAmount()
});
projectOrderSubMapper.insertBatch(insertList);
// 手动记录日志
operateLogFrameworkService.createOperateLog(request,
LocalDateTime.now(),
BusinessTypeEnum.PROJECT_ORDER.name(),
newProjectOrderDO.getId(),
OperateTypeEnum.valueOf(OperateTypeEnum.SAVE.name()).getType(),
"");
}
}
});
}

@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.chanjet.openapi.sdk.java.exception.ChanjetApiException;
import com.chanko.yunxi.mes.framework.common.pojo.CommonResult;
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils;
import com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum;
import com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.ChanjetSpi;
@ -16,6 +17,7 @@ import com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.vo.*;
import com.chanko.yunxi.mes.module.biz.controller.admin.procedure.vo.ProcedureSaveReqVO;
import com.chanko.yunxi.mes.module.biz.controller.admin.projectorder.ProjectOrderController;
import com.chanko.yunxi.mes.module.biz.controller.admin.projectorder.vo.ProjectOrderSaveReqVO;
import com.chanko.yunxi.mes.module.biz.controller.admin.taskreport.vo.TaskReportPageReqVO;
import com.chanko.yunxi.mes.module.biz.dal.dataobject.customer.CustomerDO;
import com.chanko.yunxi.mes.module.biz.dal.dataobject.material.MaterialDO;
import com.chanko.yunxi.mes.module.biz.dal.dataobject.procedure.ProcedureDO;
@ -57,11 +59,15 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import javax.annotation.Resource;
import java.lang.reflect.Array;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.stream.Collectors;
import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception;
@ -1148,15 +1154,51 @@ public class ChanjetSchedule {
}
/**
*
*
* @param id
* @throws ChanjetApiException
*/
@Transactional(rollbackFor = Exception.class)
public void createStorageInOrder(Long id) throws ChanjetApiException {
StorageDO storage = storageMapper.selectById(id);
List<StorageMatDO> matList = storageMatService.getStorageMatListByStockId(id);
if(matList.isEmpty()) return;
public void createStorageInOrder() throws ChanjetApiException {
StorageDO storage = new StorageDO();
TaskReportPageReqVO reqVO =new TaskReportPageReqVO();
reqVO.setPageSize(999);
PageResult<TaskReportDO> reprotResult = taskReportMapper.selectNoSynchPage(reqVO);
List<StorageMatDO> sublist = new ArrayList<>();
if(reprotResult.getTotal()>0){
Map<String, List<TaskReportDO>> dataGroupByMatCode = reprotResult.getList().stream().collect(Collectors.groupingBy(TaskReportDO::getWhNo));
dataGroupByMatCode.forEach((whno,mList) ->{
mList.forEach(item->{
if(item.getIsFinal().equals(1)){
StorageMatDO storageMatDO = new StorageMatDO();
storageMatDO.setMatId(item.getMaterialId());
storageMatDO.setProcedureId(item.getProcedureId());
storageMatDO.setStorageOkQty(new BigDecimal(mList.stream().filter(vo -> vo.getMaterialId().equals(item.getMaterialId())).mapToInt(TaskReportDO::getAmount).sum()));
sublist.add(storageMatDO);
}
if(item.getType().equals("ASSEMBLE")){
StorageMatDO storageMatDO = new StorageMatDO();
storageMatDO.setMatId(item.getMaterialId());
storageMatDO.setProcedureId(item.getProcedureId());
storageMatDO.setStorageOkQty(new BigDecimal(mList.stream().filter(vo -> vo.getMaterialId().equals(item.getMaterialId())).filter(distinctByKeys(p-> Arrays.asList(p.getMaterialId(),p.getAssembleCode()))).count()));
sublist.add(storageMatDO);
}
});
});
reprotResult.getList().forEach(item->{
item.setHasSynch(1);
taskReportMapper.updateById(item);
});
}
WarehouseDO aDo = warehouseMapper.selectById(storage.getWhId());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
@ -1169,13 +1211,6 @@ public class ChanjetSchedule {
.setWarehouse(new Warehouse(aDo.getWhNo()))
;
matList.forEach(mat -> {
RDRecordDetail detail = new RDRecordDetail();
detail.setCode(String.valueOf(mat.getId())).setBaseQuantity(mat.getStorageOkQty())
.setInventory(new Inventory(mat.getProjectSubCode()));
detailList.add(detail);
});
// 设置为“否”,关闭所有与用友通信的接口;为“是”,打开所有与用友通信的接口
if(getSystemParameters()){
CommonResult<ResultResVO> result = chanjetSpi.invoke(CREATE_STOCK_IN_ORDER, new CreateStorageReqVO(dto), ResultResVO.class);
@ -1185,6 +1220,14 @@ public class ChanjetSchedule {
}
}
// 自定义多字段去重比较器
public static <T> Predicate<T> distinctByKeys(Function<? super T, ? extends List<?>> keyExtractors) {
Map<List<?>, Boolean> seen = new ConcurrentHashMap<>();
return t -> {
List<?> keys = keyExtractors.apply(t);
return seen.putIfAbsent(keys, Boolean.TRUE) == null;
};
}
/**
*

@ -8,6 +8,8 @@ import com.chanko.yunxi.mes.module.biz.controller.admin.taskdispatch.vo.TaskDisp
import com.chanko.yunxi.mes.module.biz.dal.dataobject.taskdispatch.TaskDispatchDO;
import com.chanko.yunxi.mes.module.biz.dal.dataobject.taskdispatch.TaskDispatchDetailDO;
import com.chanko.yunxi.mes.module.biz.dal.dataobject.taskdispatch.TaskDispatchDetailOwnerDO;
import com.chanko.yunxi.mes.module.biz.vo.DispatchWarningMessageVO;
import com.chanko.yunxi.mes.module.biz.vo.WarningMessageVO;
import javax.validation.Valid;
import java.util.List;
@ -82,4 +84,10 @@ public interface TaskDispatchService {
void convertAssembleProcedure(TaskDispatchDO taskDispatchDO);
void saveTaskDispatchDetailList(Long dispatchId, List<TaskDispatchDetailOwnerDO> list);
/**
*
* @return
*/
DispatchWarningMessageVO getWarnings();
}

@ -31,6 +31,8 @@ import com.chanko.yunxi.mes.module.biz.dal.mysql.workshop.WorkshopMapper;
import com.chanko.yunxi.mes.module.biz.enums.*;
import com.chanko.yunxi.mes.module.biz.manager.CrossOrderManager;
import com.chanko.yunxi.mes.module.biz.service.serialnumber.SerialNumberService;
import com.chanko.yunxi.mes.module.biz.vo.DispatchWarningMessageVO;
import com.chanko.yunxi.mes.module.biz.vo.WarningMessageVO;
import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO;
import com.chanko.yunxi.mes.module.system.dal.mysql.user.AdminUserMapper;
import com.chanko.yunxi.mes.module.system.service.user.AdminUserService;
@ -467,4 +469,34 @@ public class TaskDispatchServiceImpl implements TaskDispatchService {
taskDispatchDetailMapper.deleteByDispatchId(dispatchId);
}
@Override
public DispatchWarningMessageVO getWarnings() {
DispatchWarningMessageVO warningMessageVO = new DispatchWarningMessageVO();
warningMessageVO.setWarnings(new ArrayList<>(99));
Long userId = SecurityFrameworkUtils.getLoginUser().getId();
TaskDispatchDetailPageReqVO reqVO = new TaskDispatchDetailPageReqVO();
reqVO.setOwner(userId).setPageSize(99);
PageResult<TaskDispatchDetailDO> result = taskDispatchDetailMapper.selectNoFinishedReportPage(reqVO);
if(result.getTotal() > 0){
result.getList().forEach(detail -> {
DispatchWarningMessageVO.DispatchWarningVO dispatchWarningVO = new DispatchWarningMessageVO.DispatchWarningVO();
dispatchWarningVO.setId(detail.getId());
dispatchWarningVO.setDispatchCode(detail.getDispatchCode());
dispatchWarningVO.setProcedureName(detail.getProcedureName());
dispatchWarningVO.setWarningType(WarningEnum.DISPATCH_NO_FINISHED_WARNING.name());
dispatchWarningVO.setOwnerName(detail.getOwnerName());
dispatchWarningVO.setAmount(detail.getAmount());
warningMessageVO.getWarnings().add(dispatchWarningVO);
});
}
return warningMessageVO;
}
}

@ -5,6 +5,7 @@ import com.chanko.yunxi.mes.framework.common.enums.CommonStatusEnum;
import com.chanko.yunxi.mes.framework.common.pojo.CommonResult;
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils;
import com.chanko.yunxi.mes.framework.excel.core.util.ExcelUtils;
import com.chanko.yunxi.mes.framework.operatelog.core.annotations.OperateLog;
import com.chanko.yunxi.mes.module.system.controller.admin.user.vo.user.*;
@ -166,4 +167,13 @@ public class UserController {
return success(userService.importUserList(list, updateSupport));
}
@GetMapping("/salary")
@Operation(summary = "获得员工薪资表分页")
@PreAuthorize("@ss.hasPermission('system:user:list')")
public CommonResult<PageResult<AdminUserDO>> getUserSalaryPage(@Valid UserPageReqVO pageReqVO) {
// 获得用户分页列表
PageResult<AdminUserDO> pageResult = userService.getUserSalaryPage(pageReqVO);
return success(pageResult);
}
}

@ -53,4 +53,19 @@ public interface AdminUserMapper extends BaseMapperX<AdminUserDO> {
return selectList(AdminUserDO::getDeptId, deptIds);
}
default PageResult<AdminUserDO> selectSalaryPage(UserPageReqVO reqVO, Collection<Long> deptIds) {
LambdaQueryWrapperX<AdminUserDO> query = new LambdaQueryWrapperX<AdminUserDO>()
.likeIfPresent(AdminUserDO::getUsername, reqVO.getUsername())
.likeIfPresent(AdminUserDO::getNickname, reqVO.getNickname())
.likeIfPresent(AdminUserDO::getMobile, reqVO.getMobile())
.eqIfPresent(AdminUserDO::getStatus, reqVO.getStatus())
.betweenIfPresent(AdminUserDO::getCreateTime, reqVO.getCreateTime())
.inIfPresent(AdminUserDO::getDeptId, deptIds)
.orderByDesc(AdminUserDO::getId);
if(!StringUtils.isEmpty(reqVO.getUserNickName())){
query.and(QueryWrapper -> QueryWrapper.like(AdminUserDO::getUsername, reqVO.getUserNickName()).or().like(AdminUserDO::getNickname, reqVO.getUserNickName()));
}
return selectPage(reqVO, query);
}
}

@ -113,6 +113,14 @@ public interface AdminUserService {
*/
PageResult<AdminUserDO> getUserPage(UserPageReqVO reqVO);
/**
*
*
* @param reqVO
* @return
*/
PageResult<AdminUserDO> getUserSalaryPage(UserPageReqVO reqVO);
/**
* ID
*

@ -222,6 +222,11 @@ public class AdminUserServiceImpl implements AdminUserService {
return userMapper.selectPage(reqVO, getDeptCondition(reqVO.getDeptId()));
}
@Override
public PageResult<AdminUserDO> getUserSalaryPage(UserPageReqVO reqVO) {
return userMapper.selectSalaryPage(reqVO, getDeptCondition(reqVO.getDeptId()));
}
@Override
public AdminUserDO getUser(Long id) {
return userMapper.selectById(id);

Loading…
Cancel
Save