功能修改

This commit is contained in:
mashuai 2025-01-13 18:03:20 +08:00
parent cce2ddf4f9
commit 129550fa13
15 changed files with 337 additions and 5 deletions

View File

@ -1,6 +1,7 @@
package com.bonus.material.lease.controller;
import com.bonus.common.biz.annotation.StoreLog;
import com.bonus.common.biz.domain.lease.LeaseOutDetails;
import com.bonus.common.core.utils.poi.ExcelUtil;
import com.bonus.common.core.web.controller.BaseController;
import com.bonus.common.core.web.domain.AjaxResult;
@ -73,6 +74,32 @@ public class LeaseApplyInfoController extends BaseController {
return success(leaseApplyInfoService.selectLeaseApplyInfoById(id, keyWord));
}
/**
* 获取领料出库内部详细信息
* @param leaseApplyDetails
* @return
*/
@ApiOperation(value = "获取领料出库内部详细信息")
//@RequiresPermissions("lease:info:query")
@GetMapping(value = "/getInnerById")
public AjaxResult getInnerById(LeaseApplyDetails leaseApplyDetails) {
return success(leaseApplyInfoService.getInnerById(leaseApplyDetails));
}
/**
* 获取领料出库内部详细信息
* @param leaseApplyDetails
* @return
*/
@ApiOperation(value = "获取领料出库内部详细信息")
//@RequiresPermissions("lease:info:query")
@GetMapping(value = "/getDetailsById")
public AjaxResult getDetailsById(LeaseApplyDetails leaseApplyDetails) {
startPage();
List<LeaseApplyDetails> list = leaseApplyInfoService.getDetailsById(leaseApplyDetails);
return AjaxResult.success(getDataTable(list));
}
/**
* 获取领料出库单详细信息
* @param leaseApplyInfo
@ -207,6 +234,22 @@ public class LeaseApplyInfoController extends BaseController {
}
}
/**
* app领料出库退回
* @param leaseOutDetails
* @return
*/
@ApiOperation(value = "app领料出库退回")
@PreventRepeatSubmit
@PostMapping("/leaseOutBack")
public AjaxResult leaseOutBack(@NotNull(message = "领料出库信息不能为空") @RequestBody LeaseOutDetails leaseOutDetails) {
try {
return leaseApplyInfoService.leaseOutBack(leaseOutDetails);
} catch (Exception e) {
return error("系统错误, " + e.getMessage());
}
}
/**
* 删除领料任务
*/

View File

@ -38,11 +38,17 @@ public class LeaseApplyDetails extends BaseEntity {
@ApiModelProperty(value = "规格型号id")
private Long typeId;
@ApiModelProperty(value = "规格型号id")
private Long taskId;
/** 规格型号 */
@ApiModelProperty(value = "规格型号名称")
@Excel(name = "规格型号")
private String typeName;
@ApiModelProperty(value = "机具编码")
private String maCode;
/** 计量单位 */
@ApiModelProperty(value = "计量单位")
@Excel(name = "计量单位")

View File

@ -105,4 +105,25 @@ public interface LeaseApplyDetailsMapper {
* @return
*/
List<LeaseOutVo> selectLeaseOutDetailsList(@Param("id") Long id, @Param("userId") Long userId);
/**
* 根据领料任务id查询领料任务详细
* @param leaseApplyDetails
* @return
*/
LeaseApplyDetails getInnerById(LeaseApplyDetails leaseApplyDetails);
/**
* 根据领料任务id查询领料任务详细
* @param leaseApplyDetails
* @return
*/
List<LeaseApplyDetails> getDetailsById(LeaseApplyDetails leaseApplyDetails);
/**
* 领料退回
* @param leaseOutDetails
* @return
*/
int updateBackDetailsOutNum(LeaseOutDetails leaseOutDetails);
}

View File

@ -81,4 +81,11 @@ public interface LeaseOutDetailsMapper {
* @return
*/
Type selectByTypeId(LeaseOutDetails record);
/**
* 根据任务id删除领料出库详细
* @param leaseOutDetails
* @return
*/
int deleteLeaseOutDetails(LeaseOutDetails leaseOutDetails);
}

View File

@ -1,6 +1,8 @@
package com.bonus.material.lease.service;
import java.util.List;
import com.bonus.common.biz.domain.lease.LeaseOutDetails;
import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.common.biz.domain.lease.LeaseApplyInfo;
import com.bonus.material.basic.domain.BmQrcodeInfo;
@ -112,4 +114,25 @@ public interface ILeaseApplyInfoService {
* @param response
*/
void exportInfo(LeaseApplyRequestVo leaseApplyRequestVo, HttpServletResponse response);
/**
* 根据id查询内部领料任务详情
* @param leaseApplyDetails
* @return
*/
LeaseApplyDetails getInnerById(LeaseApplyDetails leaseApplyDetails);
/**
* 根据id查询领料任务详情
* @param leaseApplyDetails
* @return
*/
List<LeaseApplyDetails> getDetailsById(LeaseApplyDetails leaseApplyDetails);
/**
* 领料任务出库回退
* @param leaseOutDetails
* @return
*/
AjaxResult leaseOutBack(LeaseOutDetails leaseOutDetails);
}

View File

@ -62,4 +62,10 @@ public interface ILeaseOutDetailsService {
public AjaxResult leaseOut(LeaseOutDetails record);
/**
* app领料出库退回
* @param leaseOutDetails
* @return
*/
AjaxResult leaseOutBack(LeaseOutDetails leaseOutDetails);
}

View File

@ -401,6 +401,36 @@ public class LeaseApplyInfoServiceImpl implements ILeaseApplyInfoService {
}
}
/**
* 领料单详情
* @param leaseApplyDetails
* @return
*/
@Override
public LeaseApplyDetails getInnerById(LeaseApplyDetails leaseApplyDetails) {
return leaseApplyDetailsMapper.getInnerById(leaseApplyDetails);
}
/**
* 领料单详情
* @param leaseApplyDetails
* @return
*/
@Override
public List<LeaseApplyDetails> getDetailsById(LeaseApplyDetails leaseApplyDetails) {
return leaseApplyDetailsMapper.getDetailsById(leaseApplyDetails);
}
/**
* app领料出库退回
* @param leaseOutDetails
* @return
*/
@Override
public AjaxResult leaseOutBack(LeaseOutDetails leaseOutDetails) {
return leaseOutDetailsService.leaseOutBack(leaseOutDetails);
}
/**
* 导出领料单
* @param response

View File

@ -23,6 +23,7 @@ import com.bonus.material.ma.mapper.MachineMapper;
import com.bonus.material.ma.mapper.TypeMapper;
import com.bonus.material.settlement.domain.SltAgreementInfo;
import com.bonus.material.settlement.mapper.SltAgreementInfoMapper;
import com.bonus.material.task.domain.TmTask;
import com.bonus.material.task.mapper.TmTaskAgreementMapper;
import com.bonus.material.task.mapper.TmTaskMapper;
import lombok.extern.slf4j.Slf4j;
@ -189,13 +190,13 @@ public class LeaseOutDetailsServiceImpl implements ILeaseOutDetailsService {
if (res == 0) {
throw new RuntimeException("出库失败,插入结算记录失败");
}
/*if (record.getManageType().equals(InputOutEnum.STANDARD_BOX.getTypeId())) {
// 6如果标准箱入库需要将设备从标准箱移出
// 6如果标准箱入库需要将设备从标准箱移出
if (record.getMaId() != null) {
res = updateBoxBind(record);
if (res == 0) {
throw new RuntimeException("出库失败,移出设备失败");
}
}*/
}
} else {
return AjaxResult.error("领料出库失败,机具库存不足");
}
@ -209,8 +210,86 @@ public class LeaseOutDetailsServiceImpl implements ILeaseOutDetailsService {
return AjaxResult.success("出库成功");
}
/**
* app领料出库退回
*
* @param leaseOutDetails
* @return
*/
@Override
public AjaxResult leaseOutBack(LeaseOutDetails leaseOutDetails) {
int res = 0;
try {
// 1 根据任务id查询此任务是否已经完结
TmTask tmTask = tmTaskMapper.selectTmTaskByTaskId(Long.valueOf(leaseOutDetails.getTaskId()));
if (tmTask != null && tmTask.getTaskStatus().equals(LeaseTaskStatusEnum.LEASE_TASK_FINISHED.getStatus())) {
return AjaxResult.error("该任务已完成,不能进行退库操作");
}
// 3插入出库记录修改库存修改机具状态
res = updateRecords(leaseOutDetails);
if (res == 0) {
throw new RuntimeException("出库退回失败,更新设备规格库存数量时出错!");
}
// 4修改任务状态tm_task
res = editTaskStatus(leaseOutDetails);
if (res == 0) {
throw new RuntimeException("出库退回失败,修改任务状态失败");
}
// 5删除结算记录
res = deleteSltInfo(leaseOutDetails);
if (res == 0) {
throw new RuntimeException("出库失败,插入结算记录失败");
}
} catch (RuntimeException re) {
return AjaxResult.error("出库退回失败");
}
return AjaxResult.success("出库退回成功");
}
/**
* 删除结算记录
* @param leaseOutDetails
* @return
*/
private int deleteSltInfo(LeaseOutDetails leaseOutDetails) {
return sltAgreementInfoMapper.deleteSltInfo(leaseOutDetails);
}
/**
* 修改任务状态tm_task
* @param leaseOutDetails
* @return
*/
private int editTaskStatus(LeaseOutDetails leaseOutDetails) {
return tmTaskMapper.updateTaskStatus(leaseOutDetails.getTaskId(), LeaseTaskStatusEnum.LEASE_TASK_IN_PROGRESS.getStatus());
}
/**
* 更新出库记录
* @param leaseOutDetails
* @return
*/
private int updateRecords(LeaseOutDetails leaseOutDetails) {
int res = 0;
// 首先更新领料任务详情表的领料数及状态lease_apply_details
leaseOutDetails.setUpdateBy(SecurityUtils.getUsername());
res = leaseApplyDetailsMapper.updateBackDetailsOutNum(leaseOutDetails);
if (res > 0) {
// 删除领料出库明细表lease_out_details
res = leaseOutDetailsMapper.deleteLeaseOutDetails(leaseOutDetails);
if (res > 0) {
// 普通机具减少 (ma_type 设备规格表)的库存数量
res = typeMapper.addMaTypeStockNum(leaseOutDetails);
// 更新 (ma_machine 设备表)的状态
machineMapper.updateMaMachineStatus(leaseOutDetails, MaMachineStatusEnum.IN_STORE.getStatus());
}
}
return res;
}
/**
* 标准箱移出设备
*
* @param record
* @return
*/
@ -284,7 +363,7 @@ public class LeaseOutDetailsServiceImpl implements ILeaseOutDetailsService {
return 0;
}
if (record.getOutNum() == null ) {
if (record.getOutNum() == null) {
record.setOutNum(BigDecimal.valueOf(0L));
}
//判断(ma_type 设备规格表)中的库存够不够出库的

View File

@ -158,4 +158,11 @@ public interface TypeMapper {
int deleteTypeRepairerByTypeId(Type type);
int insertTypeRepairer(Type repairer);
/**
* 库存退回
* @param leaseOutDetails
* @return
*/
int addMaTypeStockNum(@Param("record") LeaseOutDetails leaseOutDetails);
}

View File

@ -97,4 +97,11 @@ public interface SltAgreementInfoMapper {
* 退料驳回结算信息处理
*/
int backRejectSltCope(Long backTaskId);
/**
* 退料结算信息删除
* @param leaseOutDetails
* @return
*/
int deleteSltInfo(@Param("record") LeaseOutDetails leaseOutDetails);
}

View File

@ -147,7 +147,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</delete>
<delete id="deleteBoxBind">
delete from bm_qrcode_box_bind where box_id = #{boxId} and ma_id = #{maId}
delete from bm_qrcode_box_bind where ma_id = #{maId}
</delete>
<insert id="addQrcodeBoxBind">

View File

@ -212,6 +212,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
parent_id = #{record.parentId} and type_id = #{record.typeId}
</update>
<update id="updateBackDetailsOutNum">
UPDATE
lease_apply_details
SET
al_num = al_num - #{outNum},
<if test="record.updateBy != null and record.updateBy!= '' ">
update_by = #{updateBy},
</if>
update_time = now(),
status = '1'
WHERE
parent_id = #{parentId} and type_id = #{typeId}
</update>
<select id="getOutboundNum" resultType="com.bonus.material.lease.domain.LeaseApplyDetails">
SELECT id, parent_id as parentId, type_id as typeId, pre_num as preNum, al_num as alNum, `status`, remark
FROM lease_apply_details
@ -304,4 +318,68 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
WHERE lod.parent_id = #{id}
GROUP BY lod.type_id, mm.ma_code
</select>
<select id="getInnerById" resultType="com.bonus.material.lease.domain.LeaseApplyDetails">
select lad.id as id,
lad.parent_id as parentId,
mt.type_id as typeId,
mt.type_name as typeName,
mt2.type_name as maTypeName,
CASE mt.manage_type
WHEN 0 THEN
IFNULL(subquery0.num, 0)
ELSE
IFNULL(mt.storage_num, 0)
END as storageNum,
mt.manage_type as manageType,
(lad.pre_num - IF(lad.al_num IS NULL, '0', lad.al_num)) AS outNum,
IFNULL(lad.pre_num, 0) as preNum,
IFNULL(lad.audit_num, 0) as auditNum,
IFNULL(lad.al_num, 0) as alNum,
IFNULL(lad.status, 0) as status,
mt.unit_name as unitName,
mt.unit_value as unitValue,
lad.create_by as createBy,
lad.create_time as createTime,
lad.update_by as updateBy,
lad.update_time as updateTime,
lad.remark as remark,
lad.company_id as companyId
from lease_apply_details lad
left join
ma_type mt on lad.type_id = mt.type_id and mt.`level` = '4' and mt.del_flag = '0'
left join
ma_type mt2 on mt2.type_id = mt.parent_id and mt2.`level` = '3' and mt2.del_flag = '0'
left join (SELECT mt.type_id,
mt2.type_name AS typeName,
mt.type_name AS typeModelName,
count(mm.ma_id) num
FROM ma_machine mm
LEFT JOIN ma_type mt ON mt.type_id = mm.type_id
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id
WHERE mm.ma_code is not null
and mm.ma_status in (1)
GROUP BY mt.type_id) AS subquery0 ON subquery0.type_id = mt.type_id
where lad.id = #{id}
</select>
<select id="getDetailsById" resultType="com.bonus.material.lease.domain.LeaseApplyDetails">
SELECT
mt1.type_name as maTypeName,
mt.type_name as typeName,
mm.ma_code as maCode,
lod.create_by as createBy,
lod.create_time as createTime
FROM
lease_out_details lod
LEFT JOIN ma_type mt ON lod.type_id = mt.type_id
AND mt.del_flag = '0'
LEFT JOIN ma_type mt1 ON mt1.type_id = mt.parent_id
AND mt1.del_flag = '0'
LEFT JOIN lease_apply_info lai ON lod.parent_id = lai.id
LEFT JOIN ma_machine mm ON lod.ma_id = mm.ma_id
where lai.task_id = #{taskId} and lod.type_id = #{typeId}
ORDER BY
lod.create_time DESC
</select>
</mapper>

View File

@ -176,5 +176,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{id}
</foreach>
</delete>
<delete id="deleteLeaseOutDetails">
delete from lease_out_details where parent_id = #{parentId} and type_id = #{typeId}
<if test="maId != null">
and ma_id = #{maId}
</if>
</delete>
</mapper>

View File

@ -813,5 +813,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
insert into ma_type_repair(type_id, user_id) values (#{typeId},#{repairerId})
</insert>
<insert id="addMaTypeStockNum">
UPDATE
ma_type
SET
storage_num = storage_num + #{record.outNum} ,update_time = NOW()
WHERE
type_id = #{record.typeId}
</insert>
</mapper>

View File

@ -136,6 +136,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</foreach>
</delete>
<delete id="deleteSltInfo">
DELETE FROM slt_agreement_info
WHERE
lease_id = #{record.parentId}
and type_id = #{record.typeId}
<if test="record.maId != null">
AND ma_id = #{record.maId}
</if>
</delete>
<select id="getSltAgreementInfo" resultType="com.bonus.material.settlement.domain.SltAgreementInfo">
SELECT
id,