班组退料
This commit is contained in:
parent
e37ff62fd3
commit
e586306296
|
|
@ -17,7 +17,9 @@ import com.bonus.material.back.domain.BackApplyDetails;
|
|||
import com.bonus.material.back.domain.HandlingOrder;
|
||||
import com.bonus.material.back.domain.MaCode;
|
||||
import com.bonus.material.back.domain.vo.*;
|
||||
import com.bonus.material.basic.domain.BmUnit;
|
||||
import com.bonus.material.common.annotation.PreventRepeatSubmit;
|
||||
import com.bonus.material.task.mapper.TmTaskMapper;
|
||||
import com.bonus.system.api.RemoteFileService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
|
|
@ -52,6 +54,9 @@ public class BackApplyInfoController extends BaseController {
|
|||
@Resource
|
||||
private ArchivesService archivesService;
|
||||
|
||||
@Resource
|
||||
private TmTaskMapper taskMapper;
|
||||
|
||||
/**
|
||||
* 查询退料任务列表
|
||||
*/
|
||||
|
|
@ -365,6 +370,11 @@ public class BackApplyInfoController extends BaseController {
|
|||
@PostMapping("/submitBackApply")
|
||||
public AjaxResult submitBackApply(@RequestBody BackApplyInfo backApplyInfo) {
|
||||
try {
|
||||
BmUnit unit = taskMapper.selectBmUnitInfo(backApplyInfo);
|
||||
if (unit != null && unit.getTypeId() == 1731L) {
|
||||
// 班组退料提交
|
||||
return backApplyInfoService.submitBzBackApply(backApplyInfo);
|
||||
}
|
||||
return backApplyInfoService.submitBackApply(backApplyInfo);
|
||||
} catch (Exception e) {
|
||||
return error("系统错误, " + e.getMessage());
|
||||
|
|
|
|||
|
|
@ -475,4 +475,18 @@ public interface BackApplyInfoMapper {
|
|||
* @return
|
||||
*/
|
||||
List<SltAgreementInfo> getTbList(BackApplyInfo bean);
|
||||
|
||||
/**
|
||||
* 查看机具在用数据
|
||||
* @param applyInfo
|
||||
* @return
|
||||
*/
|
||||
List<SltAgreementInfo> getUserList(BackApplyInfo applyInfo);
|
||||
|
||||
/**
|
||||
* 查看材料站在用数据
|
||||
* @param applyInfo
|
||||
* @return
|
||||
*/
|
||||
List<SltAgreementInfo> getClzUserList(BackApplyInfo applyInfo);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -217,5 +217,12 @@ public interface IBackApplyInfoService {
|
|||
* @return
|
||||
*/
|
||||
AjaxResult getSort(HandlingOrder bean);
|
||||
|
||||
/**
|
||||
* 班组退料提交
|
||||
* @param backApplyInfo
|
||||
* @return
|
||||
*/
|
||||
AjaxResult submitBzBackApply(BackApplyInfo backApplyInfo);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -932,26 +932,6 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService {
|
|||
if (backApplyInfo.getUnitId() == null || backApplyInfo.getProId() == null) {
|
||||
return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), "参数不能为空");
|
||||
}
|
||||
BmUnit queryUnitInfo = bmUnitMapper.selectBmUnitByUnitId(backApplyInfo.getUnitId());
|
||||
if (queryUnitInfo.getTypeId() == null) {
|
||||
throw new ServiceException("单位类型为空");
|
||||
}
|
||||
// 如果单位类型为班组,则查询该班在机具签署✍️的协议ID
|
||||
LeaseOutDetails leaseOutDetail = new LeaseOutDetails();
|
||||
if (queryUnitInfo.getTypeId() == 1731L) {
|
||||
// 查询班组挂靠的项目部协议信息
|
||||
leaseOutDetail = leaseApplyInfoMapper.selectProjectUnitAgreementIdByTeamAndProject(
|
||||
Math.toIntExact(backApplyInfo.getUnitId()),
|
||||
Math.toIntExact(backApplyInfo.getProId())
|
||||
);
|
||||
if (leaseOutDetail == null) {
|
||||
throw new ServiceException("项目部协议信息查询为空");
|
||||
}
|
||||
// 把后续流程设置为项目部的协议进行处理
|
||||
backApplyInfo.setAgreementId(leaseOutDetail.getProjectUnitAgreementId());
|
||||
backApplyInfo.setUnitId(leaseOutDetail.getProjectUnitAgreementId());
|
||||
}
|
||||
|
||||
List<BackApplyInfo> codeList = new ArrayList<>();
|
||||
// 根据传入的id查询退料申请信息
|
||||
List<BackApplyInfo> applyInfoList = backApplyInfoMapper.selectBackDetails(backApplyInfo);
|
||||
|
|
@ -986,14 +966,6 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService {
|
|||
Long agreementId = backApplyInfoMapper.selectAgreementId(backApplyInfo);
|
||||
// 先查第四层类型
|
||||
backApplyInfo.setAgreementId(agreementId);
|
||||
// 如果单位类型为班组,则查询该班在机具签署✍️的协议ID
|
||||
if (queryUnitInfo.getTypeId() == 1731L) {
|
||||
// 把后续流程设置为项目部的协议进行处理
|
||||
if (leaseOutDetail.getProjectUnitAgreementId() != null) {
|
||||
backApplyInfo.setAgreementId(leaseOutDetail.getProjectUnitAgreementId());
|
||||
backApplyInfo.setUnitId(leaseOutDetail.getProjectUnitAgreementId());
|
||||
}
|
||||
}
|
||||
List<TypeTreeNode> listL4 = mapper.getUseTypeTreeL4(backApplyInfo);
|
||||
if (CollectionUtils.isNotEmpty(applyDetails)) {
|
||||
for (BackApplyDetails applyDetail : applyDetails) {
|
||||
|
|
@ -1013,12 +985,6 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService {
|
|||
} else {
|
||||
return AjaxResult.error("退料物资为空,无法进行提交");
|
||||
}
|
||||
// 判断是否为班组退料,将退料同步材料站以及项目部
|
||||
boolean isClz = false;
|
||||
BmUnit unit = taskMapper.selectBmUnitInfo(backApplyInfo);
|
||||
if (unit != null && unit.getTypeId() == 1731L) {
|
||||
isClz = true;
|
||||
}
|
||||
// 设置更新信息,
|
||||
backApplyInfo.setUpdateBy(SecurityUtils.getLoginUser().getSysUser().getNickName());
|
||||
backApplyInfo.setUpdateTime(DateUtils.getNowDate());
|
||||
|
|
@ -1037,95 +1003,6 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService {
|
|||
Long newTaskId = insertTt(SecurityUtils.getLoginUser().getSysUser().getNickName(), backApplyInfo.getRemark(), backApplyInfo.getTaskId());
|
||||
// 插入协议任务表
|
||||
result += insertTta(newTaskId, applyInfoList);
|
||||
MaterialBackApplyInfo materialBackApplyInfo = new MaterialBackApplyInfo();
|
||||
BmAgreementInfo bmAgreementInfo = new BmAgreementInfo();
|
||||
bmAgreementInfo.setUnitId(backApplyInfo.getUnitId());
|
||||
bmAgreementInfo.setProjectId(backApplyInfo.getProId());
|
||||
BmAgreementInfo info = bmAgreementInfoMapper.queryByTeamIdAndProjectIdCl(bmAgreementInfo);
|
||||
BackApplyInfo backApplyInfo4 = new BackApplyInfo();
|
||||
if (isClz) {
|
||||
int thisMonthMaxOrder = taskMapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), TmTaskTypeEnum.TM_TASK_MATERIAL_BACK.getTaskTypeId());
|
||||
String code = genderClzTaskCode(thisMonthMaxOrder);
|
||||
TmTask tmTask = new TmTask(null, TmTaskTypeEnum.TM_TASK_MATERIAL_BACK.getTaskTypeId(),
|
||||
BackTaskStatusEnum.BACK_TASK_IN_FINISHED.getStatus(), null, thisMonthMaxOrder + 1, code);
|
||||
tmTask.setCreateTime(DateUtils.getNowDate());
|
||||
String createBy = SecurityUtils.getLoginUser().getSysUser().getNickName();
|
||||
tmTask.setCreateBy(createBy);
|
||||
materialBackApplyInfo.setCode(code);
|
||||
materialBackApplyInfo.setCreateBy(createBy);
|
||||
materialBackApplyInfo.setCreateTime(DateUtils.getNowDate());
|
||||
// 保存退料信息到 tm_task 表中
|
||||
result += taskMapper.insertTmTask(tmTask);
|
||||
if (result > 0) {
|
||||
TmTaskAgreement tmTaskAgreement = new TmTaskAgreement(tmTask.getTaskId(), info.getAgreementId());
|
||||
tmTaskAgreement.setCreateTime(DateUtils.getNowDate());
|
||||
tmTaskAgreement.setCreateBy(createBy);
|
||||
taskAgreementMapper.insertTmTaskAgreement(tmTaskAgreement);
|
||||
materialBackApplyInfo.setTaskId(tmTask.getTaskId());
|
||||
materialBackApplyInfo.setBackStyle("2");
|
||||
materialBackApplyInfo.setStatus("2");
|
||||
BackApplyInfo backApplyInfo1 = backApplyInfoMapper.selectBackApplyInfoById(backApplyInfo.getId());
|
||||
if (backApplyInfo1 != null) {
|
||||
materialBackApplyInfo.setBackPerson(StringUtils.isNotBlank(backApplyInfo1.getBackPerson()) ? backApplyInfo1.getBackPerson() : "");
|
||||
materialBackApplyInfo.setPhone(StringUtils.isNotBlank(backApplyInfo1.getPhone()) ? backApplyInfo1.getPhone() : "");
|
||||
}
|
||||
result += materialBackInfoMapper.insertBackApplyInfo(materialBackApplyInfo);
|
||||
if (CollectionUtils.isNotEmpty(applyDetails)) {
|
||||
for (BackApplyDetails applyInfo : applyDetails) {
|
||||
MaterialBackApplyDetails details = new MaterialBackApplyDetails();
|
||||
details.setCode(code);
|
||||
details.setParentId(materialBackApplyInfo.getId());
|
||||
details.setPreNum(applyInfo.getPreNum());
|
||||
details.setAuditNum(applyInfo.getPreNum());
|
||||
details.setStatus(String.valueOf(BackTaskStatusEnum.BACK_TASK_NO_FINISHED.getStatus()));
|
||||
details.setCreateBy(createBy);
|
||||
details.setCreateTime(DateUtils.getNowDate());
|
||||
details.setTypeId(applyInfo.getTypeId());
|
||||
// 保存退料详情
|
||||
result += materialBackInfoMapper.insertBackApplyDetails(details);
|
||||
}
|
||||
}
|
||||
}
|
||||
// 材料站对分公司建立退料任务
|
||||
int backMonthMaxOrder = taskMapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), TmTaskTypeEnum.TM_TASK_BACK.getTaskTypeId());
|
||||
String backCode = genderTaskCode(backMonthMaxOrder);
|
||||
TmTask newTask = new TmTask(null, TmTaskTypeEnum.TM_TASK_BACK.getTaskTypeId(),
|
||||
BackTaskStatusEnum.BACK_TASK_IN_FINISHED.getStatus(),
|
||||
null,backMonthMaxOrder + 1, backCode);
|
||||
newTask.setCreateTime(DateUtils.getNowDate());
|
||||
newTask.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getNickName());
|
||||
backApplyInfo4.setCode(backCode);
|
||||
backApplyInfo4.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getNickName());
|
||||
backApplyInfo4.setCreateTime(DateUtils.getNowDate());
|
||||
// 保存退料信息到 tm_task 表中
|
||||
result += taskMapper.insertTmTask(newTask);
|
||||
if (result > 0) {
|
||||
// 根据单位和工程id查询项目部关联协议id
|
||||
BackApplyInfo backApplyInfo3 = backApplyInfoMapper.selectInfo(backApplyInfo);
|
||||
if (backApplyInfo3 != null) {
|
||||
TmTaskAgreement tmTaskAgreement = new TmTaskAgreement(newTask.getTaskId(), backApplyInfo3.getAgreementId());
|
||||
tmTaskAgreement.setCreateTime(DateUtils.getNowDate());
|
||||
tmTaskAgreement.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getNickName());
|
||||
taskAgreementMapper.insertTmTaskAgreement(tmTaskAgreement);
|
||||
}
|
||||
backApplyInfo4.setTaskId(newTask.getTaskId());
|
||||
BackApplyInfo backApplyInfo2 = backApplyInfoMapper.selectBackApplyInfoById(backApplyInfo.getId());
|
||||
if (backApplyInfo2 != null) {
|
||||
backApplyInfo4.setBackPerson(StringUtils.isNotBlank(backApplyInfo2.getBackPerson()) ? backApplyInfo2.getBackPerson() : "");
|
||||
backApplyInfo4.setPhone(StringUtils.isNotBlank(backApplyInfo2.getPhone()) ? backApplyInfo2.getPhone() : "");
|
||||
backApplyInfo4.setBackStyle("2");
|
||||
}
|
||||
result += backApplyInfoMapper.insertBackApplyInfo(backApplyInfo4);
|
||||
}
|
||||
// 保存退料详情
|
||||
if (CollectionUtils.isNotEmpty(applyDetails)) {
|
||||
for (BackApplyDetails applyDetail : applyDetails) {
|
||||
// 保存退料详情
|
||||
applyDetail.setAuditNum(applyDetail.getPreNum());
|
||||
result += backApplyInfoMapper.insertBackApplyDetails(applyDetail);
|
||||
}
|
||||
}
|
||||
}
|
||||
for (String typeId : typeIdList) {
|
||||
// 查询待维修的机具设备
|
||||
backApplyInfo.setTypeId(typeId);
|
||||
|
|
@ -1136,50 +1013,11 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService {
|
|||
// 更新结算表
|
||||
List<BackApplyInfo> allList = backApplyInfoMapper.selectBackDetails(backApplyInfo);
|
||||
if (CollectionUtils.isNotEmpty(allList)) {
|
||||
int res = updateSlt4Bean(isClz,backApplyInfo, allList);
|
||||
int res = updateSlt4Bean(backApplyInfo, allList);
|
||||
// 检查机具是否领料
|
||||
if (res == 0) {
|
||||
throw new RuntimeException("该机具未被领料使用");
|
||||
}
|
||||
List<BackApplyInfo> clzList = new ArrayList<>();
|
||||
List<BackApplyInfo> xmList = new ArrayList<>();
|
||||
if (isClz) {
|
||||
for (BackApplyInfo applyInfo : allList) {
|
||||
applyInfo.setAgreementId(info.getAgreementId());
|
||||
MaterialBackApplyDetails details = new MaterialBackApplyDetails();
|
||||
details.setParentId(materialBackApplyInfo.getId());
|
||||
details.setTypeId(Long.parseLong(typeId));
|
||||
details.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getNickName());
|
||||
details.setCreateTime(DateUtils.getNowDate());
|
||||
details.setPreNum(applyInfo.getBackNum());
|
||||
details.setStatus("0");
|
||||
details.setMaId(applyInfo.getMaId() != null ? applyInfo.getMaId() : null);
|
||||
details.setIsFinished(1);
|
||||
result += materialBackInfoMapper.insertCheckDetails(details);
|
||||
// 查询材料站同步数据
|
||||
clzList = backApplyInfoMapper.selectClzList(details);
|
||||
BackApplyDetails backApplyDetails = new BackApplyDetails();
|
||||
backApplyDetails.setParentId(backApplyInfo4.getId());
|
||||
backApplyDetails.setTypeId(Long.parseLong(typeId));
|
||||
backApplyDetails.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getNickName());
|
||||
backApplyDetails.setCreateTime(DateUtils.getNowDate());
|
||||
backApplyDetails.setPreNum(applyInfo.getBackNum());
|
||||
backApplyDetails.setMaId(applyInfo.getMaId() != null ? applyInfo.getMaId() : null);
|
||||
backApplyDetails.setStatus("0");
|
||||
backApplyDetails.setIsFinished(1);
|
||||
result += backApplyInfoMapper.insertCheckDetails(backApplyDetails);
|
||||
// 查询项目部同步数据
|
||||
//xmList = backApplyInfoMapper.selectXmList(backApplyDetails);
|
||||
}
|
||||
res = updateSlt4BeanClz(materialBackApplyInfo, clzList);
|
||||
if (res == 0) {
|
||||
throw new RuntimeException("同步材料站结算出错");
|
||||
}
|
||||
/*res = updateSlt4BeanXm(backApplyInfo4, xmList);
|
||||
if (res == 0) {
|
||||
throw new RuntimeException("同步项目部结算出错");
|
||||
}*/
|
||||
}
|
||||
}
|
||||
// 完成退料部分,更新 back_check_details
|
||||
finishBackCheckDetails(backApplyInfo);
|
||||
|
|
@ -2193,6 +2031,251 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 班组退料提交
|
||||
* @param backApplyInfo
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public AjaxResult submitBzBackApply(BackApplyInfo backApplyInfo) {
|
||||
if (backApplyInfo.getUnitId() == null || backApplyInfo.getProId() == null) {
|
||||
return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), "参数不能为空");
|
||||
}
|
||||
BmUnit queryUnitInfo = bmUnitMapper.selectBmUnitByUnitId(backApplyInfo.getUnitId());
|
||||
if (queryUnitInfo.getTypeId() == null) {
|
||||
throw new ServiceException("单位类型为空");
|
||||
}
|
||||
// 如果单位类型为班组,则查询该班在机具签署✍️的协议ID
|
||||
LeaseOutDetails leaseOutDetail = new LeaseOutDetails();
|
||||
if (queryUnitInfo.getTypeId() == 1731L) {
|
||||
// 查询班组挂靠的项目部协议信息
|
||||
leaseOutDetail = leaseApplyInfoMapper.selectProjectUnitAgreementIdByTeamAndProject(
|
||||
Math.toIntExact(backApplyInfo.getUnitId()),
|
||||
Math.toIntExact(backApplyInfo.getProId())
|
||||
);
|
||||
if (leaseOutDetail == null) {
|
||||
throw new ServiceException("项目部协议信息查询为空");
|
||||
}
|
||||
// 把后续流程设置为项目部的协议进行处理
|
||||
backApplyInfo.setAgreementId(leaseOutDetail.getProjectUnitAgreementId());
|
||||
backApplyInfo.setUnitId(leaseOutDetail.getProjectUnitAgreementId());
|
||||
}
|
||||
SelectDto dto = new SelectDto();
|
||||
dto.setProId(backApplyInfo.getProId()).setUnitId(Math.toIntExact(backApplyInfo.getUnitId()));
|
||||
List<AgreementVo> list = mapper.getAgreementInfoByIdBack(dto);
|
||||
|
||||
List<BackApplyInfo> codeList = new ArrayList<>();
|
||||
// 根据传入的id查询退料申请信息
|
||||
List<BackApplyInfo> applyInfoList = backApplyInfoMapper.selectBackDetails(backApplyInfo);
|
||||
// 将applyInfoList中状态不为在用的数据收集到新集合中
|
||||
if (CollectionUtils.isNotEmpty(applyInfoList)) {
|
||||
for (BackApplyInfo applyInfo : applyInfoList) {
|
||||
// 根据maId查询设备是否处于在用状态(需要同时查询机具和材料站)
|
||||
if (applyInfo.getMaId() != null) {
|
||||
List<SltAgreementInfo> infoList = backApplyInfoMapper.getUserList(applyInfo);
|
||||
List<SltAgreementInfo> clzList = backApplyInfoMapper.getClzUserList(applyInfo);
|
||||
if (CollectionUtils.isEmpty(infoList) && CollectionUtils.isEmpty(clzList)) {
|
||||
codeList.add(applyInfo);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (CollectionUtils.isNotEmpty(codeList)) {
|
||||
StringBuilder msgBuilder = new StringBuilder("您所选择的编码设备编号");
|
||||
for (int i = 0; i < codeList.size(); i++) {
|
||||
String maCode = codeList.get(i).getMaCode();
|
||||
msgBuilder.append(maCode);
|
||||
if (i < codeList.size() - 1) {
|
||||
msgBuilder.append(", ");
|
||||
}
|
||||
}
|
||||
msgBuilder.append("已被他人完成退料,请编辑后重新提交!");
|
||||
String msg = msgBuilder.toString();
|
||||
msg = msg.replaceAll("\n", "");
|
||||
return AjaxResult.error(msg);
|
||||
}
|
||||
int result = 0;
|
||||
//先查询退料详情信息
|
||||
List<BackApplyDetails> applyDetails = backApplyInfoMapper.selectBackApplyDetailsListByTaskId(backApplyInfo);
|
||||
if (CollectionUtils.isEmpty(applyDetails)) {
|
||||
return AjaxResult.error("退料物资为空,无法进行提交");
|
||||
}
|
||||
// 设置更新信息,
|
||||
backApplyInfo.setUpdateBy(SecurityUtils.getLoginUser().getSysUser().getNickName());
|
||||
backApplyInfo.setUpdateTime(DateUtils.getNowDate());
|
||||
backApplyInfo.setTaskStatus(BackTaskStatusEnum.BACK_TASK_IN_FINISHED.getStatus());
|
||||
// 更新任务表及退料申请表状态
|
||||
result += updateTaskAndBackInfo(backApplyInfo);
|
||||
if (result > 0 && CollectionUtils.isNotEmpty(applyInfoList)) {
|
||||
for (BackApplyInfo applyInfo : applyInfoList) {
|
||||
// 查询该设备是否存在于材料站中
|
||||
List<SltAgreementInfo> clzList = backApplyInfoMapper.getClzUserList(applyInfo);
|
||||
if (CollectionUtils.isEmpty(clzList)) {
|
||||
result += machineMapper.updateStatus(applyInfo.getMaId(), MaMachineStatusEnum.BACK_REPAIR.getStatus());
|
||||
}
|
||||
}
|
||||
// 获取applyInfoList的typeId并生成集合
|
||||
List<String> typeIdList = applyInfoList.stream()
|
||||
.map(BackApplyInfo::getTypeId).distinct()
|
||||
.collect(Collectors.toList());
|
||||
// 插入任务表
|
||||
Long newTaskId = insertTt(SecurityUtils.getLoginUser().getSysUser().getNickName(), backApplyInfo.getRemark(), backApplyInfo.getTaskId());
|
||||
// 插入协议任务表
|
||||
result += insertTta(newTaskId, applyInfoList);
|
||||
MaterialBackApplyInfo materialBackApplyInfo = new MaterialBackApplyInfo();
|
||||
BmAgreementInfo bmAgreementInfo = new BmAgreementInfo();
|
||||
bmAgreementInfo.setUnitId(backApplyInfo.getUnitId());
|
||||
bmAgreementInfo.setProjectId(backApplyInfo.getProId());
|
||||
BmAgreementInfo info = bmAgreementInfoMapper.queryByTeamIdAndProjectIdCl(bmAgreementInfo);
|
||||
BackApplyInfo backApplyInfo4 = new BackApplyInfo();
|
||||
|
||||
int thisMonthMaxOrder = taskMapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), TmTaskTypeEnum.TM_TASK_MATERIAL_BACK.getTaskTypeId());
|
||||
String code = genderClzTaskCode(thisMonthMaxOrder);
|
||||
TmTask tmTask = new TmTask(null, TmTaskTypeEnum.TM_TASK_MATERIAL_BACK.getTaskTypeId(),
|
||||
BackTaskStatusEnum.BACK_TASK_IN_FINISHED.getStatus(), null, thisMonthMaxOrder + 1, code);
|
||||
tmTask.setCreateTime(DateUtils.getNowDate());
|
||||
String createBy = SecurityUtils.getLoginUser().getSysUser().getNickName();
|
||||
tmTask.setCreateBy(createBy);
|
||||
materialBackApplyInfo.setCode(code);
|
||||
materialBackApplyInfo.setCreateBy(createBy);
|
||||
materialBackApplyInfo.setCreateTime(DateUtils.getNowDate());
|
||||
// 保存退料信息到 tm_task 表中
|
||||
result += taskMapper.insertTmTask(tmTask);
|
||||
if (result > 0) {
|
||||
TmTaskAgreement tmTaskAgreement = new TmTaskAgreement(tmTask.getTaskId(), info.getAgreementId());
|
||||
tmTaskAgreement.setCreateTime(DateUtils.getNowDate());
|
||||
tmTaskAgreement.setCreateBy(createBy);
|
||||
taskAgreementMapper.insertTmTaskAgreement(tmTaskAgreement);
|
||||
materialBackApplyInfo.setTaskId(tmTask.getTaskId());
|
||||
materialBackApplyInfo.setBackStyle("2");
|
||||
materialBackApplyInfo.setStatus("2");
|
||||
BackApplyInfo backApplyInfo1 = backApplyInfoMapper.selectBackApplyInfoById(backApplyInfo.getId());
|
||||
if (backApplyInfo1 != null) {
|
||||
materialBackApplyInfo.setBackPerson(StringUtils.isNotBlank(backApplyInfo1.getBackPerson()) ? backApplyInfo1.getBackPerson() : "");
|
||||
materialBackApplyInfo.setPhone(StringUtils.isNotBlank(backApplyInfo1.getPhone()) ? backApplyInfo1.getPhone() : "");
|
||||
}
|
||||
result += materialBackInfoMapper.insertBackApplyInfo(materialBackApplyInfo);
|
||||
if (CollectionUtils.isNotEmpty(applyDetails)) {
|
||||
for (BackApplyDetails applyInfo : applyDetails) {
|
||||
MaterialBackApplyDetails details = new MaterialBackApplyDetails();
|
||||
details.setCode(code);
|
||||
details.setParentId(materialBackApplyInfo.getId());
|
||||
details.setPreNum(applyInfo.getPreNum());
|
||||
details.setAuditNum(applyInfo.getPreNum());
|
||||
details.setStatus(String.valueOf(BackTaskStatusEnum.BACK_TASK_NO_FINISHED.getStatus()));
|
||||
details.setCreateBy(createBy);
|
||||
details.setCreateTime(DateUtils.getNowDate());
|
||||
details.setTypeId(applyInfo.getTypeId());
|
||||
// 保存退料详情
|
||||
result += materialBackInfoMapper.insertBackApplyDetails(details);
|
||||
}
|
||||
}
|
||||
}
|
||||
// 材料站对分公司建立退料任务
|
||||
int backMonthMaxOrder = taskMapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), TmTaskTypeEnum.TM_TASK_BACK.getTaskTypeId());
|
||||
String backCode = genderTaskCode(backMonthMaxOrder);
|
||||
TmTask newTask = new TmTask(null, TmTaskTypeEnum.TM_TASK_BACK.getTaskTypeId(),
|
||||
BackTaskStatusEnum.BACK_TASK_IN_FINISHED.getStatus(),
|
||||
null, backMonthMaxOrder + 1, backCode);
|
||||
newTask.setCreateTime(DateUtils.getNowDate());
|
||||
newTask.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getNickName());
|
||||
backApplyInfo4.setCode(backCode);
|
||||
backApplyInfo4.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getNickName());
|
||||
backApplyInfo4.setCreateTime(DateUtils.getNowDate());
|
||||
// 保存退料信息到 tm_task 表中
|
||||
result += taskMapper.insertTmTask(newTask);
|
||||
if (result > 0) {
|
||||
// 根据单位和工程id查询项目部关联协议id
|
||||
BackApplyInfo backApplyInfo3 = backApplyInfoMapper.selectInfo(backApplyInfo);
|
||||
if (backApplyInfo3 != null) {
|
||||
TmTaskAgreement tmTaskAgreement = new TmTaskAgreement(newTask.getTaskId(), backApplyInfo3.getAgreementId());
|
||||
tmTaskAgreement.setCreateTime(DateUtils.getNowDate());
|
||||
tmTaskAgreement.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getNickName());
|
||||
taskAgreementMapper.insertTmTaskAgreement(tmTaskAgreement);
|
||||
}
|
||||
backApplyInfo4.setTaskId(newTask.getTaskId());
|
||||
BackApplyInfo backApplyInfo2 = backApplyInfoMapper.selectBackApplyInfoById(backApplyInfo.getId());
|
||||
if (backApplyInfo2 != null) {
|
||||
backApplyInfo4.setBackPerson(StringUtils.isNotBlank(backApplyInfo2.getBackPerson()) ? backApplyInfo2.getBackPerson() : "");
|
||||
backApplyInfo4.setPhone(StringUtils.isNotBlank(backApplyInfo2.getPhone()) ? backApplyInfo2.getPhone() : "");
|
||||
backApplyInfo4.setBackStyle("2");
|
||||
}
|
||||
result += backApplyInfoMapper.insertBackApplyInfo(backApplyInfo4);
|
||||
}
|
||||
// 保存退料详情
|
||||
if (CollectionUtils.isNotEmpty(applyDetails)) {
|
||||
for (BackApplyDetails applyDetail : applyDetails) {
|
||||
// 保存退料详情
|
||||
applyDetail.setAuditNum(applyDetail.getPreNum());
|
||||
result += backApplyInfoMapper.insertBackApplyDetails(applyDetail);
|
||||
}
|
||||
}
|
||||
for (String typeId : typeIdList) {
|
||||
// 查询待维修的机具设备
|
||||
backApplyInfo.setTypeId(typeId);
|
||||
List<BackApplyInfo> wxList = backApplyInfoMapper.getWxList(backApplyInfo);
|
||||
if (CollectionUtils.isNotEmpty(wxList)) {
|
||||
// 插入维修记录表
|
||||
result += insertRad(newTaskId, wxList);
|
||||
// 更新结算表
|
||||
List<BackApplyInfo> allList = backApplyInfoMapper.selectBackDetails(backApplyInfo);
|
||||
if (CollectionUtils.isNotEmpty(allList)) {
|
||||
int res = updateSlt4Bean(backApplyInfo, allList);
|
||||
// 检查机具是否领料
|
||||
if (res == 0) {
|
||||
throw new RuntimeException("该机具未被领料使用");
|
||||
}
|
||||
List<BackApplyInfo> clzList = new ArrayList<>();
|
||||
List<BackApplyInfo> xmList = new ArrayList<>();
|
||||
for (BackApplyInfo applyInfo : allList) {
|
||||
applyInfo.setAgreementId(info.getAgreementId());
|
||||
MaterialBackApplyDetails details = new MaterialBackApplyDetails();
|
||||
details.setParentId(materialBackApplyInfo.getId());
|
||||
details.setTypeId(Long.parseLong(typeId));
|
||||
details.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getNickName());
|
||||
details.setCreateTime(DateUtils.getNowDate());
|
||||
details.setPreNum(applyInfo.getBackNum());
|
||||
details.setStatus("0");
|
||||
details.setMaId(applyInfo.getMaId() != null ? applyInfo.getMaId() : null);
|
||||
details.setIsFinished(1);
|
||||
result += materialBackInfoMapper.insertCheckDetails(details);
|
||||
// 查询材料站同步数据
|
||||
clzList = backApplyInfoMapper.selectClzList(details);
|
||||
BackApplyDetails backApplyDetails = new BackApplyDetails();
|
||||
backApplyDetails.setParentId(backApplyInfo4.getId());
|
||||
backApplyDetails.setTypeId(Long.parseLong(typeId));
|
||||
backApplyDetails.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getNickName());
|
||||
backApplyDetails.setCreateTime(DateUtils.getNowDate());
|
||||
backApplyDetails.setPreNum(applyInfo.getBackNum());
|
||||
backApplyDetails.setMaId(applyInfo.getMaId() != null ? applyInfo.getMaId() : null);
|
||||
backApplyDetails.setStatus("0");
|
||||
backApplyDetails.setIsFinished(1);
|
||||
result += backApplyInfoMapper.insertCheckDetails(backApplyDetails);
|
||||
// 查询项目部同步数据
|
||||
//xmList = backApplyInfoMapper.selectXmList(backApplyDetails);
|
||||
}
|
||||
res = updateSlt4BeanClz(materialBackApplyInfo, clzList);
|
||||
if (res == 0) {
|
||||
throw new RuntimeException("同步材料站结算出错");
|
||||
}
|
||||
/*res = updateSlt4BeanXm(backApplyInfo4, xmList);
|
||||
if (res == 0) {
|
||||
throw new RuntimeException("同步项目部结算出错");
|
||||
}*/
|
||||
}
|
||||
// 完成退料部分,更新 back_check_details
|
||||
finishBackCheckDetails(backApplyInfo);
|
||||
}
|
||||
}
|
||||
// 如果所有操作都成功
|
||||
if (result > 0) {
|
||||
return AjaxResult.success();
|
||||
}
|
||||
}
|
||||
// 操作失败,返回错误
|
||||
return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 关键字搜索
|
||||
|
|
@ -2232,7 +2315,7 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService {
|
|||
* @param allList
|
||||
* @return
|
||||
*/
|
||||
private int updateSlt4Bean(Boolean isClz ,BackApplyInfo record, List<BackApplyInfo> allList) {
|
||||
private int updateSlt4Bean(BackApplyInfo record, List<BackApplyInfo> allList) {
|
||||
for (BackApplyInfo bean : allList) {
|
||||
List<SltAgreementInfo> infoList = backApplyInfoMapper.getStlInfo(bean);
|
||||
// 查询是否存在班组数据
|
||||
|
|
@ -2267,24 +2350,22 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService {
|
|||
}
|
||||
}
|
||||
// 非班组退料才同步班组分公司数据
|
||||
if (!isClz) {
|
||||
BigDecimal tbBackNum = bean.getBackNum();
|
||||
if (CollectionUtils.isNotEmpty(tbList)) {
|
||||
for (SltAgreementInfo info : tbList) {
|
||||
// 获取前端要退数量
|
||||
BigDecimal num = info.getBackNum();
|
||||
if (tbBackNum.compareTo(num) == 0) {
|
||||
backApplyInfoMapper.updateStlInfo(info, record);
|
||||
break;
|
||||
} else if (tbBackNum.compareTo(num) > 0) {
|
||||
tbBackNum = tbBackNum.subtract(num);
|
||||
backApplyInfoMapper.updateStlInfo(info, record);
|
||||
} else {
|
||||
BigDecimal many = num.subtract(tbBackNum);
|
||||
backApplyInfoMapper.updateStlInfoTwo(info, record, tbBackNum);
|
||||
backApplyInfoMapper.insStlInfoTwo(info, many);
|
||||
break;
|
||||
}
|
||||
BigDecimal tbBackNum = bean.getBackNum();
|
||||
if (CollectionUtils.isNotEmpty(tbList)) {
|
||||
for (SltAgreementInfo info : tbList) {
|
||||
// 获取前端要退数量
|
||||
BigDecimal num = info.getBackNum();
|
||||
if (tbBackNum.compareTo(num) == 0) {
|
||||
backApplyInfoMapper.updateStlInfo(info, record);
|
||||
break;
|
||||
} else if (tbBackNum.compareTo(num) > 0) {
|
||||
tbBackNum = tbBackNum.subtract(num);
|
||||
backApplyInfoMapper.updateStlInfo(info, record);
|
||||
} else {
|
||||
BigDecimal many = num.subtract(tbBackNum);
|
||||
backApplyInfoMapper.updateStlInfoTwo(info, record, tbBackNum);
|
||||
backApplyInfoMapper.insStlInfoTwo(info, many);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.bonus.material.common.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.alibaba.nacos.common.utils.StringUtils;
|
||||
import com.bonus.common.biz.config.DateTimeHelper;
|
||||
import com.bonus.common.biz.domain.*;
|
||||
|
|
@ -10,7 +11,6 @@ import com.bonus.material.back.domain.BackApplyInfo;
|
|||
import com.bonus.material.basic.domain.BmProject;
|
||||
import com.bonus.material.basic.domain.BmUnit;
|
||||
import com.bonus.material.basic.mapper.BmUnitMapper;
|
||||
import com.bonus.material.clz.domain.lease.MaterialLeaseApplyInfo;
|
||||
import com.bonus.material.clz.service.MaterialLeaseInfoService;
|
||||
import com.bonus.material.common.domain.dto.SelectDto;
|
||||
import com.bonus.material.common.domain.vo.AgreementVo;
|
||||
|
|
@ -526,12 +526,6 @@ public class SelectServiceImpl implements SelectService {
|
|||
}
|
||||
// 如果单位类型为班组,则查询该班在机具签署✍️的协议ID
|
||||
if (queryUnitInfo.getTypeId() == 1731L) {
|
||||
// List<AgreementVo> agreementInfos = mapper.getMaterialAgreementInfoByIdBack(new SelectDto().setProId(bean.getProId()).setUnitId(Math.toIntExact(queryUnitInfo.getUnitId())));
|
||||
// if (CollectionUtils.isNotEmpty(agreementInfos)) {
|
||||
// bean.setClzAgreementId(Long.valueOf(agreementInfos.get(0).getAgreementId()));
|
||||
// } else {
|
||||
// throw new ServiceException("该班组没有在机具签署✍️的协议");
|
||||
// }
|
||||
List<AgreementVo> clzAgreementInfos = mapper.getAgreementInfoByIdBack(new SelectDto().setProId(bean.getProId()).setUnitId(Math.toIntExact(bean.getUnitId())));
|
||||
// 如果在材料站该单位有签署协议
|
||||
if (CollectionUtils.isNotEmpty(clzAgreementInfos)) {
|
||||
|
|
@ -542,9 +536,27 @@ public class SelectServiceImpl implements SelectService {
|
|||
}
|
||||
|
||||
}
|
||||
Map<Long, TypeTreeNode> mergedMap = new HashMap<>();
|
||||
// 先查第四层类型
|
||||
listL4 = mapper.getUseTypeTreeL4(bean);
|
||||
if (CollectionUtils.isNotEmpty(listL4)) {
|
||||
// 将listL4中typeId相同数据进行合并,数量相加
|
||||
for (TypeTreeNode item : listL4) {
|
||||
Long typeId = item.getTypeId();
|
||||
if (mergedMap.containsKey(typeId)) {
|
||||
// 若存在,则将数量累加
|
||||
TypeTreeNode existingItem = mergedMap.get(typeId);
|
||||
existingItem.setNum(existingItem.getNum().add(item.getNum()));
|
||||
} else {
|
||||
// 若不存在,则将当前对象放入Map
|
||||
TypeTreeNode newItem = new TypeTreeNode();
|
||||
// 复制属性
|
||||
BeanUtil.copyProperties(item, newItem);
|
||||
mergedMap.put(typeId, newItem);
|
||||
}
|
||||
}
|
||||
// 将Map中的值转换为List
|
||||
listL4 = new ArrayList<>(mergedMap.values());
|
||||
List<Long> list4ParentIds = listL4.stream().map(TypeTreeNode::getParentId).collect(Collectors.toList());
|
||||
// 根据第四层parentId 查第三层类型
|
||||
listL3 = mapper.getUseTypeTreeL3(list4ParentIds);
|
||||
|
|
|
|||
|
|
@ -1460,4 +1460,54 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
</if>
|
||||
order by start_time asc
|
||||
</select>
|
||||
|
||||
<select id="getUserList" resultType="com.bonus.material.settlement.domain.SltAgreementInfo">
|
||||
SELECT
|
||||
id AS id,
|
||||
agreement_id AS agreementId,
|
||||
type_id AS typeId,
|
||||
ma_id AS maId,
|
||||
num AS backNum,
|
||||
start_time AS startTime,
|
||||
end_time AS endTime,
|
||||
status AS status,
|
||||
lease_id AS leaseId,
|
||||
lease_type AS leaseType,
|
||||
back_id AS backId,
|
||||
lease_price AS leasePrice,
|
||||
buy_price AS buyPrice,
|
||||
company_id AS companyId
|
||||
FROM
|
||||
slt_agreement_info
|
||||
WHERE
|
||||
status = 0
|
||||
AND type_id = #{typeId}
|
||||
AND ma_id = #{maId}
|
||||
order by start_time asc
|
||||
</select>
|
||||
|
||||
<select id="getClzUserList" resultType="com.bonus.material.settlement.domain.SltAgreementInfo">
|
||||
SELECT
|
||||
id AS id,
|
||||
agreement_id AS agreementId,
|
||||
type_id AS typeId,
|
||||
ma_id AS maId,
|
||||
num AS backNum,
|
||||
start_time AS startTime,
|
||||
end_time AS endTime,
|
||||
status AS status,
|
||||
lease_id AS leaseId,
|
||||
lease_type AS leaseType,
|
||||
back_id AS backId,
|
||||
lease_price AS leasePrice,
|
||||
buy_price AS buyPrice,
|
||||
company_id AS companyId
|
||||
FROM
|
||||
clz_slt_agreement_info
|
||||
WHERE
|
||||
status = 0
|
||||
AND type_id = #{typeId}
|
||||
AND ma_id = #{maId}
|
||||
order by start_time asc
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
|
|||
Loading…
Reference in New Issue