活动 新增作物记录
This commit is contained in:
+7
-4
@@ -1,9 +1,9 @@
|
|||||||
package cn.iocoder.yudao.module.farm.controller.admin.taskCate.vo;
|
package cn.iocoder.yudao.module.farm.controller.admin.taskCate.vo;
|
||||||
|
|
||||||
import lombok.*;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import java.util.*;
|
import lombok.Data;
|
||||||
import io.swagger.annotations.*;
|
|
||||||
import javax.validation.constraints.*;
|
import javax.validation.constraints.NotNull;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 任务类型 Base VO,提供给添加、修改、详细的子 VO 使用
|
* 任务类型 Base VO,提供给添加、修改、详细的子 VO 使用
|
||||||
@@ -24,4 +24,7 @@ public class TaskCateBaseVO {
|
|||||||
|
|
||||||
private String unit;
|
private String unit;
|
||||||
|
|
||||||
|
@ApiModelProperty("同步到erp")
|
||||||
|
private Boolean synchronizeErp;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+7
-4
@@ -1,10 +1,10 @@
|
|||||||
package cn.iocoder.yudao.module.farm.controller.admin.taskCate.vo;
|
package cn.iocoder.yudao.module.farm.controller.admin.taskCate.vo;
|
||||||
|
|
||||||
import lombok.*;
|
|
||||||
import java.util.*;
|
|
||||||
import io.swagger.annotations.*;
|
|
||||||
|
|
||||||
import com.alibaba.excel.annotation.ExcelProperty;
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 任务类型 Excel VO
|
* 任务类型 Excel VO
|
||||||
@@ -26,4 +26,7 @@ public class TaskCateExcelVO {
|
|||||||
private Boolean pretendDelete;
|
private Boolean pretendDelete;
|
||||||
|
|
||||||
private String unit;
|
private String unit;
|
||||||
|
|
||||||
|
@ApiModelProperty("同步到erp")
|
||||||
|
private Boolean synchronizeErp;
|
||||||
}
|
}
|
||||||
|
|||||||
+8
-4
@@ -1,11 +1,12 @@
|
|||||||
package cn.iocoder.yudao.module.farm.controller.admin.taskCate.vo;
|
package cn.iocoder.yudao.module.farm.controller.admin.taskCate.vo;
|
||||||
|
|
||||||
import lombok.*;
|
import io.swagger.annotations.ApiModel;
|
||||||
import java.util.*;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import io.swagger.annotations.*;
|
import lombok.Data;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
|
||||||
import org.springframework.format.annotation.DateTimeFormat;
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||||
|
|
||||||
@ApiModel(value = "管理后台 - 任务类型 Excel 导出 Request VO", description = "参数和 TaskCatePageReqVO 是一致的")
|
@ApiModel(value = "管理后台 - 任务类型 Excel 导出 Request VO", description = "参数和 TaskCatePageReqVO 是一致的")
|
||||||
@@ -29,4 +30,7 @@ public class TaskCateExportReqVO {
|
|||||||
private Boolean pretendDelete;
|
private Boolean pretendDelete;
|
||||||
|
|
||||||
private String unit;
|
private String unit;
|
||||||
|
|
||||||
|
@ApiModelProperty("同步到erp")
|
||||||
|
private Boolean synchronizeErp;
|
||||||
}
|
}
|
||||||
|
|||||||
+10
-3
@@ -1,11 +1,15 @@
|
|||||||
package cn.iocoder.yudao.module.farm.controller.admin.taskCate.vo;
|
package cn.iocoder.yudao.module.farm.controller.admin.taskCate.vo;
|
||||||
|
|
||||||
import lombok.*;
|
|
||||||
import java.util.*;
|
|
||||||
import io.swagger.annotations.*;
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.ToString;
|
||||||
import org.springframework.format.annotation.DateTimeFormat;
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||||
|
|
||||||
@ApiModel("管理后台 - 任务类型分页 Request VO")
|
@ApiModel("管理后台 - 任务类型分页 Request VO")
|
||||||
@@ -32,4 +36,7 @@ public class TaskCatePageReqVO extends PageParam {
|
|||||||
|
|
||||||
private String unit;
|
private String unit;
|
||||||
|
|
||||||
|
@ApiModelProperty("同步到erp")
|
||||||
|
private Boolean synchronizeErp;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+6
-3
@@ -1,10 +1,10 @@
|
|||||||
package cn.iocoder.yudao.module.farm.dal.dataobject.taskCate;
|
package cn.iocoder.yudao.module.farm.dal.dataobject.taskCate;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
import java.util.*;
|
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 任务类型 DO
|
* 任务类型 DO
|
||||||
@@ -40,4 +40,7 @@ public class TaskCateDO extends BaseDO {
|
|||||||
@ApiModelProperty("任务单位, 亩,株")
|
@ApiModelProperty("任务单位, 亩,株")
|
||||||
private String unit;
|
private String unit;
|
||||||
|
|
||||||
|
@ApiModelProperty("true 同步到erp ")
|
||||||
|
private Boolean synchronizeErp;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+70
-31
@@ -18,12 +18,16 @@ import cn.iocoder.yudao.module.farm.controller.admin.workHour.dto.WorkUserMsgDTO
|
|||||||
import cn.iocoder.yudao.module.farm.controller.admin.workHour.vo.WorkHourBaseVO;
|
import cn.iocoder.yudao.module.farm.controller.admin.workHour.vo.WorkHourBaseVO;
|
||||||
import cn.iocoder.yudao.module.farm.convert.discuss.DiscussConvert;
|
import cn.iocoder.yudao.module.farm.convert.discuss.DiscussConvert;
|
||||||
import cn.iocoder.yudao.module.farm.dal.dataobject.area.AreaDO;
|
import cn.iocoder.yudao.module.farm.dal.dataobject.area.AreaDO;
|
||||||
|
import cn.iocoder.yudao.module.farm.dal.dataobject.cropRecord.CropRecordDO;
|
||||||
import cn.iocoder.yudao.module.farm.dal.dataobject.discuss.DiscussDO;
|
import cn.iocoder.yudao.module.farm.dal.dataobject.discuss.DiscussDO;
|
||||||
import cn.iocoder.yudao.module.farm.dal.dataobject.task.TaskDO;
|
import cn.iocoder.yudao.module.farm.dal.dataobject.task.TaskDO;
|
||||||
|
import cn.iocoder.yudao.module.farm.dal.dataobject.taskCate.TaskCateDO;
|
||||||
import cn.iocoder.yudao.module.farm.dal.dataobject.workHour.WorkHourDO;
|
import cn.iocoder.yudao.module.farm.dal.dataobject.workHour.WorkHourDO;
|
||||||
import cn.iocoder.yudao.module.farm.dal.mysql.area.AreaMapper;
|
import cn.iocoder.yudao.module.farm.dal.mysql.area.AreaMapper;
|
||||||
|
import cn.iocoder.yudao.module.farm.dal.mysql.cropRecord.CropRecordMapper;
|
||||||
import cn.iocoder.yudao.module.farm.dal.mysql.discuss.DiscussMapper;
|
import cn.iocoder.yudao.module.farm.dal.mysql.discuss.DiscussMapper;
|
||||||
import cn.iocoder.yudao.module.farm.dal.mysql.task.TaskMapper;
|
import cn.iocoder.yudao.module.farm.dal.mysql.task.TaskMapper;
|
||||||
|
import cn.iocoder.yudao.module.farm.dal.mysql.taskCate.TaskCateMapper;
|
||||||
import cn.iocoder.yudao.module.farm.dal.mysql.workHour.WorkHourMapper;
|
import cn.iocoder.yudao.module.farm.dal.mysql.workHour.WorkHourMapper;
|
||||||
import cn.iocoder.yudao.module.farm.enums.TaskStatus;
|
import cn.iocoder.yudao.module.farm.enums.TaskStatus;
|
||||||
import cn.iocoder.yudao.module.farm.service.area.AreaService;
|
import cn.iocoder.yudao.module.farm.service.area.AreaService;
|
||||||
@@ -69,6 +73,10 @@ public class DiscussServiceImpl implements DiscussService {
|
|||||||
private AreaMapper areaMapper;
|
private AreaMapper areaMapper;
|
||||||
@Resource
|
@Resource
|
||||||
private TaskMapper taskMapper;
|
private TaskMapper taskMapper;
|
||||||
|
@Resource
|
||||||
|
private CropRecordMapper cropRecordMapper;
|
||||||
|
@Resource
|
||||||
|
private TaskCateMapper taskCateMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Long createDiscuss(DiscussCreateReqVO createReqVO) {
|
public Long createDiscuss(DiscussCreateReqVO createReqVO) {
|
||||||
@@ -78,38 +86,11 @@ public class DiscussServiceImpl implements DiscussService {
|
|||||||
DiscussDO discuss = DiscussConvert.INSTANCE.convert(createReqVO);
|
DiscussDO discuss = DiscussConvert.INSTANCE.convert(createReqVO);
|
||||||
discussMapper.insert(discuss);
|
discussMapper.insert(discuss);
|
||||||
|
|
||||||
if (ObjectUtil.isNotEmpty(createReqVO.getWorkHourList())){
|
//添加工时记录
|
||||||
List<Long> workUserIdList = createReqVO.getWorkHourList().stream().map(WorkHourBaseVO::getUserId).collect(Collectors.toList());
|
addWorkHourRecord(createReqVO, discuss);
|
||||||
List<CpUserDO> userList = cpUserMapper.selectList(Wrappers.<CpUserDO>lambdaQuery().in(CpUserDO::getId, workUserIdList));
|
|
||||||
|
|
||||||
//传了工时
|
//添加作物入库记录
|
||||||
List<WorkHourDO> workSaveList = new ArrayList<>();
|
addCropRecord(createReqVO);
|
||||||
for (WorkHourBaseVO work : createReqVO.getWorkHourList()) {
|
|
||||||
WorkHourDO workHourDO = WorkHourDO.builder()
|
|
||||||
.userId(work.getUserId())
|
|
||||||
.discussId(discuss.getId())
|
|
||||||
.projectId(work.getProjectId())
|
|
||||||
.taskId(work.getTaskId())
|
|
||||||
.hour(work.getHour())
|
|
||||||
.build();
|
|
||||||
workSaveList.add(workHourDO);
|
|
||||||
|
|
||||||
userList.forEach(user ->{
|
|
||||||
if (work.getUserId().equals(user.getId())){
|
|
||||||
user.setWorkHour(user.getWorkHour() + work.getHour());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
//插入工时记录
|
|
||||||
workHourMapper.insertBatch(workSaveList);
|
|
||||||
//更新员工工时合计
|
|
||||||
//todo service有问题
|
|
||||||
// cpUserService.updateBatchById(userList);
|
|
||||||
userList.stream().forEach(item ->{
|
|
||||||
cpUserMapper.updateById(item);
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// 返回
|
// 返回
|
||||||
return discuss.getId();
|
return discuss.getId();
|
||||||
@@ -244,4 +225,62 @@ public class DiscussServiceImpl implements DiscussService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 添加工时记录
|
||||||
|
*/
|
||||||
|
public void addWorkHourRecord(DiscussCreateReqVO createReqVO, DiscussDO discuss){
|
||||||
|
if (ObjectUtil.isNotEmpty(createReqVO.getWorkHourList())){
|
||||||
|
List<Long> workUserIdList = createReqVO.getWorkHourList().stream().map(WorkHourBaseVO::getUserId).collect(Collectors.toList());
|
||||||
|
List<CpUserDO> userList = cpUserMapper.selectList(Wrappers.<CpUserDO>lambdaQuery().in(CpUserDO::getId, workUserIdList));
|
||||||
|
//传了工时
|
||||||
|
List<WorkHourDO> workSaveList = new ArrayList<>();
|
||||||
|
for (WorkHourBaseVO work : createReqVO.getWorkHourList()) {
|
||||||
|
WorkHourDO workHourDO = WorkHourDO.builder()
|
||||||
|
.userId(work.getUserId())
|
||||||
|
.discussId(discuss.getId())
|
||||||
|
.projectId(work.getProjectId())
|
||||||
|
.taskId(work.getTaskId())
|
||||||
|
.hour(work.getHour())
|
||||||
|
.build();
|
||||||
|
workSaveList.add(workHourDO);
|
||||||
|
|
||||||
|
userList.forEach(user ->{
|
||||||
|
if (work.getUserId().equals(user.getId())){
|
||||||
|
user.setWorkHour(user.getWorkHour() + work.getHour());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
//插入工时记录
|
||||||
|
workHourMapper.insertBatch(workSaveList);
|
||||||
|
//更新员工工时合计
|
||||||
|
userList.stream().forEach(item ->{
|
||||||
|
cpUserMapper.updateById(item);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 添加农作物收入记录
|
||||||
|
*/
|
||||||
|
public void addCropRecord(DiscussCreateReqVO reqVO){
|
||||||
|
TaskDO taskDO = taskMapper.selectById(reqVO.getTaskId());
|
||||||
|
TaskCateDO cateDO = taskCateMapper.selectById(taskDO.getTaskCateName());
|
||||||
|
//如果任务内容 是要同步的
|
||||||
|
if (cateDO.getSynchronizeErp()){
|
||||||
|
Optional<CropRecordDO> max = cropRecordMapper.selectList(Wrappers.<CropRecordDO>lambdaQuery().eq(CropRecordDO::getCropId, taskDO.getCropId()))
|
||||||
|
.stream().max(Comparator.comparing(CropRecordDO::getId));
|
||||||
|
Integer afterStock = max.isPresent() ? max.get().getAfterStock() : 0;
|
||||||
|
CropRecordDO cropRecordDO = CropRecordDO.builder()
|
||||||
|
.cropId(taskDO.getCropId())
|
||||||
|
.type(true)
|
||||||
|
.stock(reqVO.getCropNum().intValue())
|
||||||
|
.afterStock(reqVO.getCropNum().intValue() + afterStock)
|
||||||
|
.build();
|
||||||
|
cropRecordMapper.insert(cropRecordDO);
|
||||||
|
|
||||||
|
//todo 调用ERP出入库接口
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user