Merge remote-tracking branch 'origin/master'

This commit is contained in:
zfh 2025-02-20 20:05:54 +08:00
commit 3542b435ed
12 changed files with 420 additions and 52 deletions

View File

@ -56,7 +56,7 @@ public class MachineController extends BaseController {
}
/**
* 查询在库机具编号
* todo 查询在库机具编号存在数据拼接盘点报废专用
*/
@ApiOperation(value = "查询在库机具编号")
//@RequiresPermissions("ma:machine:typeList")

View File

@ -71,7 +71,7 @@ public interface IMachineService
AjaxResult selectByTypeList(Type type);
/**
* 查询在库机具编号
* todo 查询在库机具编号存在数据拼接盘点报废专用
* @param type
* @return
*/

View File

@ -11,7 +11,8 @@ import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.material.ma.domain.Type;
import com.bonus.material.ma.domain.vo.MachineVo;
import com.bonus.material.purchase.config.RemoteConfig;
import com.bonus.system.api.RemoteUserService;
import com.bonus.material.scrap.domain.ScrapApplyDetails;
import com.bonus.material.scrap.mapper.ScrapApplyDetailsMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import com.bonus.material.ma.mapper.MachineMapper;
@ -36,6 +37,9 @@ public class MachineServiceImpl implements IMachineService
@Resource
private RemoteConfig remoteConfig;
@Resource
private ScrapApplyDetailsMapper scrapApplyDetailsMapper;
/**
* 查询机具设备管理
*
@ -149,13 +153,33 @@ public class MachineServiceImpl implements IMachineService
}
/**
* 查询在库机具编号
* todo 查询在库机具编号存在数据拼接盘点报废专用
* @param type
* @return
*/
@Override
public AjaxResult getMachineList(Type type) {
List<Machine> typeList = machineMapper.getMachineList(type);
if (type.getTaskId() != null && type.getTypeId() != null) {
ScrapApplyDetails scrapApplyDetails = new ScrapApplyDetails();
scrapApplyDetails.setTaskId(type.getTaskId());
scrapApplyDetails.setTypeId(type.getTypeId());
List<ScrapApplyDetails> list = scrapApplyDetailsMapper.getDetailsList(scrapApplyDetails);
if (CollectionUtils.isNotEmpty(list)) {
for (ScrapApplyDetails details : list) {
if (StringUtils.isNotBlank(details.getMaIds())) {
String[] maIds = details.getMaIds().split(",");
for (String maId : maIds) {
Machine machine = new Machine();
MachineVo machineVo = machineMapper.selectMachineByMaId(Long.parseLong(maId));
machine.setMaId(machineVo.getMaId());
machine.setMaCode(machineVo.getMaCode());
typeList.add(machine);
}
}
}
}
}
return AjaxResult.success(typeList);
}
}

View File

@ -8,6 +8,7 @@ import com.bonus.common.biz.config.ListPagingUtil;
import com.bonus.common.core.utils.ServletUtils;
import com.bonus.common.log.enums.OperaType;
import com.bonus.material.common.annotation.PreventRepeatSubmit;
import com.bonus.material.scrap.domain.vo.ScrapDetailsListVo;
import com.bonus.material.scrap.domain.vo.ScrapTaskListVo;
import com.bonus.material.scrap.domain.vo.ScrapTotalListVo;
import io.swagger.annotations.Api;
@ -132,6 +133,64 @@ public class ScrapApplyDetailsController extends BaseController {
return AjaxResult.success(ListPagingUtil.paging(pageIndex, pageSize, list));
}
/**
* 查询报废台账列表
* @param scrapApplyDetails
* @return
*/
@ApiOperation(value = "查询报废台账列表")
// @RequiresPermissions("scrap:details:list")
@GetMapping("/getScrapList")
public AjaxResult getScrapList(ScrapApplyDetails scrapApplyDetails) {
Integer pageIndex = Convert.toInt(ServletUtils.getParameter("pageNum"), 1);
Integer pageSize = Convert.toInt(ServletUtils.getParameter("pageSize"), 10);
List<ScrapTotalListVo> list = scrapApplyDetailsService.getScrapList(scrapApplyDetails);
return AjaxResult.success(ListPagingUtil.paging(pageIndex, pageSize, list));
}
/**
* 导出报废台账列表
* @param response
* @param scrapApplyDetails
*/
@ApiOperation(value = "导出报废台账列表")
//@RequiresPermissions("scrap:details:export")
@PostMapping("/exportScrapList")
public void exportScrapList(HttpServletResponse response, ScrapApplyDetails scrapApplyDetails) {
List<ScrapTotalListVo> list = scrapApplyDetailsService.getScrapList(scrapApplyDetails);
ExcelUtil<ScrapTotalListVo> util = new ExcelUtil<>(ScrapTotalListVo.class);
util.exportExcel(response, list, "报废台账任务数据");
}
/**
* 查询报废台账明细列表
* @param scrapApplyDetails
* @return
*/
@ApiOperation(value = "查询报废台账明细列表")
// @RequiresPermissions("scrap:details:list")
@GetMapping("/getScrapDetailsList")
public AjaxResult getScrapDetailsList(ScrapApplyDetails scrapApplyDetails) {
Integer pageIndex = Convert.toInt(ServletUtils.getParameter("pageNum"), 1);
Integer pageSize = Convert.toInt(ServletUtils.getParameter("pageSize"), 10);
List<ScrapDetailsListVo> list = scrapApplyDetailsService.getScrapDetailsList(scrapApplyDetails);
return AjaxResult.success(ListPagingUtil.paging(pageIndex, pageSize, list));
}
/**
* 导出报废台账列表
* @param response
* @param scrapApplyDetails
*/
@ApiOperation(value = "导出报废台账明细列表")
//@RequiresPermissions("scrap:details:export")
@PostMapping("/exportScrapDetailsList")
public void exportScrapDetailsList(HttpServletResponse response, ScrapApplyDetails scrapApplyDetails) {
List<ScrapDetailsListVo> list = scrapApplyDetailsService.getScrapDetailsList(scrapApplyDetails);
ExcelUtil<ScrapDetailsListVo> util = new ExcelUtil<>(ScrapDetailsListVo.class);
util.exportExcel(response, list, "报废台账明细数据");
}
/**
* 查询报废台账审核总费用
* @param scrapApplyDetails
@ -181,11 +240,11 @@ public class ScrapApplyDetailsController extends BaseController {
}
/**
* 盘点报废审核通过
* 盘点报废审核
* @param scrapApplyDetails
* @return
*/
@ApiOperation(value = "盘点报废审核通过")
@ApiOperation(value = "盘点报废审核")
@PostMapping("/inventoryApprove")
public AjaxResult inventoryApprove(@RequestBody ScrapApplyDetails scrapApplyDetails) {
return scrapApplyDetailsService.inventoryApprove(scrapApplyDetails);

View File

@ -100,16 +100,16 @@ public class ScrapApplyDetails extends BaseEntity {
private Long typeId;
@ApiModelProperty(value = "规格型号名称")
private String typeModelName;
private String typeName;
@ApiModelProperty(value = "物资类型ID")
private Long typeNameId;
@ApiModelProperty(value = "物资类型名称")
private String typeName;
private String maTypeName;
@ApiModelProperty(value = "管理方式")
private Byte manageType;
private String manageType;
@ApiModelProperty(value = "单位")
private String unitName;
@ -213,6 +213,10 @@ public class ScrapApplyDetails extends BaseEntity {
@ApiModelProperty(value = "结束时间")
private String endTime;
@ApiModelProperty(value = "本次审核周期")
@JsonFormat(pattern = "yyyy-MM")
private String month;
@ApiModelProperty(value = "台账审核状态 0待审核1已审核2驳回")
private String ledgerStatus;
}

View File

@ -0,0 +1,72 @@
package com.bonus.material.scrap.domain.vo;
import com.bonus.common.core.annotation.Excel;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
/**
* 报废台账返回实体类
* @author ma_sh
*/
@Data
public class ScrapDetailsListVo {
@ApiModelProperty(value = "物资类型名称")
@Excel(name = "类型名称")
private String typeName;
/** 规格ID */
@ApiModelProperty(value = "规格ID")
private Long typeId;
@ApiModelProperty(value = "规格型号名称")
@Excel(name = "规格型号")
private String typeModelName;
@ApiModelProperty(value = "单位")
@Excel(name = "计量单位")
private String unitName;
/** 报废数量 */
@Excel(name = "报废数量")
@ApiModelProperty(value = "报废数量")
private BigDecimal scrapNum;
@ApiModelProperty(value = "费用合计")
@Excel(name = "报废费用(万元)")
private BigDecimal totalCost;
@ApiModelProperty(value = "购置价")
private BigDecimal buyPrice;
@ApiModelProperty(value = "报废类型")
@Excel(name = "报废类型")
private String scrapStyle;
@ApiModelProperty(value = "(1退料2,维修审核3盘点报废)")
private String scrapSource;
/** 0自然1人为 */
@Excel(name = "损坏类型", readConverterExp = "0=自然损坏1=人为损坏")
private String scrapType;
@ApiModelProperty(value = "任务创建人昵称")
@Excel(name = "审核人")
private String auditName;
@ApiModelProperty(value = "本次审核周期")
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "审核日期", width = 30, dateFormat = "yyyy-MM-dd")
private String month;
@ApiModelProperty(value = "台账审核状态 0待审核1已审核2驳回")
private String ledgerStatus;
@ApiModelProperty(value = "台账审核状态 0待审核1已审核2驳回")
private String remark;
}

View File

@ -28,7 +28,6 @@ public class ScrapTotalListVo {
private List<Long> taskIdList;
@ApiModelProperty(value = "物资类型名称")
@Excel(name = "类型名称")
private String typeName;
/** 规格ID */
@ -36,13 +35,16 @@ public class ScrapTotalListVo {
private Long typeId;
@ApiModelProperty(value = "规格型号名称")
@Excel(name = "规格型号")
private String typeModelName;
@ApiModelProperty(value = "单位")
@Excel(name = "计量单位")
private String unitName;
@ApiModelProperty(value = "本次审核周期")
@JsonFormat(pattern = "yyyy-MM")
@Excel(name = "月份")
private String month;
/** 报废数量 */
@Excel(name = "报废数量")
@ApiModelProperty(value = "报废数量")
@ -56,27 +58,18 @@ public class ScrapTotalListVo {
private BigDecimal buyPrice;
@ApiModelProperty(value = "报废类型")
@Excel(name = "报废类型")
private String scrapStyle;
@ApiModelProperty(value = "(1退料2,维修审核3盘点报废)")
private String scrapSource;
/** 0自然1人为 */
@Excel(name = "损坏类型", readConverterExp = "0=自然损坏1=人为损坏")
private String scrapType;
@ApiModelProperty(value = "任务创建人昵称")
@Excel(name = "提交人")
private String createName;
@ApiModelProperty(value = "本次审核周期")
@JsonFormat(pattern = "yyyy-MM")
@Excel(name = "本次审核周期")
private String month;
@ApiModelProperty(value = "台账审核状态 0待审核1已审核2驳回")
@Excel(name = "状态", readConverterExp = "0=待审核1=已审核2=驳回")
private String ledgerStatus;
}

View File

@ -2,9 +2,11 @@ package com.bonus.material.scrap.mapper;
import java.util.List;
import com.bonus.material.ma.domain.Type;
import com.bonus.material.repair.domain.RepairAuditDetails;
import com.bonus.material.repair.domain.RepairRecord;
import com.bonus.material.scrap.domain.ScrapApplyDetails;
import com.bonus.material.scrap.domain.vo.ScrapDetailsListVo;
import com.bonus.material.scrap.domain.vo.ScrapTaskListVo;
import com.bonus.material.scrap.domain.vo.ScrapTotalListVo;
import org.apache.ibatis.annotations.Param;
@ -166,4 +168,25 @@ public interface ScrapApplyDetailsMapper {
* @return
*/
int updateTaskStatus(ScrapApplyDetails scrapApplyDetails);
/**
* 查询报废台账列表
* @param scrapApplyDetails
* @return
*/
List<ScrapTotalListVo> getScrapList(ScrapApplyDetails scrapApplyDetails);
/**
* 查询报废台账明细列表
* @param scrapApplyDetails
* @return
*/
List<ScrapDetailsListVo> getScrapDetailsList(ScrapApplyDetails scrapApplyDetails);
/**
* 查询库存
* @param typeId
* @return
*/
List<Type> selectMaTypeList(Long typeId);
}

View File

@ -4,6 +4,7 @@ import java.util.List;
import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.material.scrap.domain.ScrapApplyDetails;
import com.bonus.material.scrap.domain.vo.ScrapDetailsListVo;
import com.bonus.material.scrap.domain.vo.ScrapTaskListVo;
import com.bonus.material.scrap.domain.vo.ScrapTotalListVo;
@ -149,9 +150,23 @@ public interface IScrapApplyDetailsService {
AjaxResult updateList(ScrapApplyDetails scrapApplyDetails);
/**
* 盘点报废审核通过
* 盘点报废审核
* @param scrapApplyDetails
* @return
*/
AjaxResult inventoryApprove(ScrapApplyDetails scrapApplyDetails);
/**
* 查询报废台账列表
* @param scrapApplyDetails
* @return
*/
List<ScrapTotalListVo> getScrapList(ScrapApplyDetails scrapApplyDetails);
/**
* 查询报废台账明细列表
* @param scrapApplyDetails
* @return
*/
List<ScrapDetailsListVo> getScrapDetailsList(ScrapApplyDetails scrapApplyDetails);
}

View File

@ -3,6 +3,7 @@ package com.bonus.material.scrap.service.impl;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
@ -22,6 +23,7 @@ import com.bonus.material.basic.mapper.BmFileInfoMapper;
import com.bonus.material.ma.domain.Type;
import com.bonus.material.ma.mapper.TypeMapper;
import com.bonus.material.scrap.domain.MaCodeInfo;
import com.bonus.material.scrap.domain.vo.ScrapDetailsListVo;
import com.bonus.material.scrap.domain.vo.ScrapTaskListVo;
import com.bonus.material.scrap.domain.vo.ScrapTotalListVo;
import com.bonus.material.task.domain.TmTask;
@ -58,9 +60,6 @@ public class ScrapApplyDetailsServiceImpl implements IScrapApplyDetailsService {
@Resource
private BmFileInfoMapper fileInfoMapper;
@Resource
private TypeMapper typeMapper;
/**
* 查询报废任务详细
*
@ -554,10 +553,6 @@ public class ScrapApplyDetailsServiceImpl implements IScrapApplyDetailsService {
return AjaxResult.error("报废详情数据为空!");
}
for (ScrapApplyDetails details : scrapApplyDetails.getScrapApplyDetailsList()) {
if (CollectionUtils.isNotEmpty(details.getMaCodeList())) {
details.setStorageNum(details.getMaCodeList().get(0).getStorageNum());
details.setScrapNum(BigDecimal.valueOf(details.getMaCodeList().size()));
}
if (details.getScrapNum().compareTo(details.getStorageNum()) > 0) {
return AjaxResult.error("报废数量不能大于库存数量!");
}
@ -594,19 +589,23 @@ public class ScrapApplyDetailsServiceImpl implements IScrapApplyDetailsService {
if (CollectionUtils.isNotEmpty(applyDetails.getMaCodeList())) {
for (MaCodeInfo maCodeInfo : applyDetails.getMaCodeList()) {
applyDetails.setMaId(maCodeInfo.getMaId());
applyDetails.setTypeId(maCodeInfo.getTypeId());
applyDetails.setScrapNum(BigDecimal.ONE);
applyDetails.setStatus(MaMachineStatusEnum.SCRAP_TO_AUDIT.getStatus().toString());
// 更改设备状态
result += scrapApplyDetailsMapper.updateMaStatus(applyDetails);
}
}
applyDetails.setStatus("0");
// 添加报废详情表
result += scrapApplyDetailsMapper.insertScrapApplyDetails(applyDetails);
}
} else {
applyDetails.setStatus("0");
// 添加报废详情表
result += scrapApplyDetailsMapper.insertScrapApplyDetails(applyDetails);
}
// 更改设备库存
if (CollectionUtils.isNotEmpty(applyDetails.getMaCodeList())) {
applyDetails.setScrapNum(BigDecimal.valueOf(applyDetails.getMaCodeList().size()));
applyDetails.setTypeId(applyDetails.getMaCodeList().get(0).getTypeId());
}
result += scrapApplyDetailsMapper.updateStorageNum(applyDetails);
}
@ -640,7 +639,7 @@ public class ScrapApplyDetailsServiceImpl implements IScrapApplyDetailsService {
*/
private Long insertScrapTt() {
Long newTask = null;
int thisMonthMaxOrder = taskMapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), TmTaskTypeEnum.TM_TASK_PART_SCRAP.getTaskTypeId());
int thisMonthMaxOrder = taskMapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), TmTaskTypeEnum.TM_TASK_PART_SCRAP.getTaskTypeId(), null);
// 生成盘点报废单号
String code = genderBfTaskCode(thisMonthMaxOrder);
TmTask tmTask = new TmTask(null, TmTaskTypeEnum.TM_TASK_PART_SCRAP.getTaskTypeId(), RepairInputStatusEnum.INPUT_TASK_NO_FINISHED.getStatus(),
@ -668,9 +667,18 @@ public class ScrapApplyDetailsServiceImpl implements IScrapApplyDetailsService {
List<ScrapApplyDetails> list = scrapApplyDetailsMapper.getDetailsList(scrapApplyDetails);
if (CollectionUtils.isNotEmpty(list)) {
for (ScrapApplyDetails applyDetails : list) {
List<Type> maTypes = typeMapper.selectMaTypeList(applyDetails.getTypeId(), " ");
List<Type> maTypes = scrapApplyDetailsMapper.selectMaTypeList(applyDetails.getTypeId());
if (CollectionUtils.isNotEmpty(maTypes)) {
applyDetails.setStorageNum(maTypes.get(0).getStorageNum());
applyDetails.setStorageNum(maTypes.get(0).getStorageNum().add(applyDetails.getScrapNum()));
}
List<MaCodeInfo> maCodeList = new ArrayList<>();
if (StringUtils.isNotBlank(applyDetails.getMaIds())) {
for (String maId : applyDetails.getMaIds().split(",")) {
MaCodeInfo maCodeInfo = new MaCodeInfo();
maCodeInfo.setMaId(Long.valueOf(maId));
maCodeList.add(maCodeInfo);
}
applyDetails.setMaCodeList(maCodeList);
}
}
// 查询文件信息
@ -722,10 +730,6 @@ public class ScrapApplyDetailsServiceImpl implements IScrapApplyDetailsService {
return AjaxResult.error("报废详情数据为空!");
}
for (ScrapApplyDetails details : scrapApplyDetails.getScrapApplyDetailsList()) {
if (CollectionUtils.isNotEmpty(details.getMaCodeList())) {
details.setStorageNum(details.getMaCodeList().get(0).getStorageNum());
details.setScrapNum(BigDecimal.valueOf(details.getMaCodeList().size()));
}
if (details.getScrapNum().compareTo(details.getStorageNum()) > 0) {
return AjaxResult.error("报废数量不能大于库存数量!");
}
@ -760,20 +764,55 @@ public class ScrapApplyDetailsServiceImpl implements IScrapApplyDetailsService {
fileInfo.setTaskId(scrapApplyDetails.getTaskId());
fileInfoMapper.deleteBmFileInfoByBizInfo(fileInfo);
}
// 根据编辑提交的数据去和编辑前数据作对比修改maId的状态
extracted(scrapApplyDetails);
result = getScrapResult(scrapApplyDetails, result, scrapApplyDetails.getTaskId());
result = getFileResult(scrapApplyDetails, result, scrapApplyDetails.getTaskId());
if (result > 0) {
return AjaxResult.success("新增成功");
return AjaxResult.success("修改成功");
}
} catch (Exception e) {
log.error("新增失败", e);
log.error("修改失败", e);
e.printStackTrace();
}
return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg());
}
/**
* 盘点报废审核通过
* 根据编辑提交的数据去和编辑前数据作对比修改maId的状态
* @param scrapApplyDetails
*/
private void extracted(ScrapApplyDetails scrapApplyDetails) {
List<ScrapApplyDetails> detailsList = scrapApplyDetails.getScrapApplyDetailsList();
for (ScrapApplyDetails details : detailsList) {
if (CollectionUtils.isNotEmpty(details.getMaCodeList())) {
List<Long> maIdList = details.getMaCodeList().stream()
.map(MaCodeInfo::getMaId)
.collect(Collectors.toList());
scrapApplyDetails.setTypeId(details.getTypeId());
List<ScrapApplyDetails> list1 = scrapApplyDetailsMapper.getDetailsList(scrapApplyDetails);
if (CollectionUtils.isNotEmpty(list1)) {
for (ScrapApplyDetails applyDetails : list1) {
if (StringUtils.isNotBlank(applyDetails.getMaIds())) {
String[] maIds = applyDetails.getMaIds().split(",");
for (String maId : maIds) {
if (!maIdList.contains(Long.parseLong(maId))) {
// 更新设备状态
ScrapApplyDetails info = new ScrapApplyDetails();
info.setMaId(Long.parseLong(maId));
info.setStatus(MaMachineStatusEnum.IN_STORE.getStatus().toString());
scrapApplyDetailsMapper.updateMaStatus(info);
}
}
}
}
}
}
}
}
/**
* 盘点报废审核
* @param scrapApplyDetails
* @return
*/
@ -784,6 +823,7 @@ public class ScrapApplyDetailsServiceImpl implements IScrapApplyDetailsService {
}
int result = 0;
try {
// 根据前端传的status来判断审核通过还是驳回1 通过 2 驳回
for (Long taskId : scrapApplyDetails.getTaskIdList()) {
scrapApplyDetails.setTaskId(taskId);
result += scrapApplyDetailsMapper.updateTaskStatus(scrapApplyDetails);
@ -798,6 +838,43 @@ public class ScrapApplyDetailsServiceImpl implements IScrapApplyDetailsService {
return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg());
}
/**
* 查询报废台账列表
* @param scrapApplyDetails
* @return
*/
@Override
public List<ScrapTotalListVo> getScrapList(ScrapApplyDetails scrapApplyDetails) {
return scrapApplyDetailsMapper.getScrapList(scrapApplyDetails);
}
/**
* 查询报废台账明细列表
* @param scrapApplyDetails
* @return
*/
@Override
public List<ScrapDetailsListVo> getScrapDetailsList(ScrapApplyDetails scrapApplyDetails) {
List<ScrapDetailsListVo> list = scrapApplyDetailsMapper.getScrapDetailsList(scrapApplyDetails);
if (CollectionUtils.isNotEmpty(list)) {
for (ScrapDetailsListVo applyDetails : list) {
BigDecimal totalCost = applyDetails.getScrapNum().multiply(applyDetails.getBuyPrice()).divide(new BigDecimal(10000), 2, RoundingMode.HALF_UP);
applyDetails.setTotalCost(totalCost);
if ("2".equals(applyDetails.getScrapSource())) {
applyDetails.setScrapStyle("维修报废");
} else if ("3".equals(applyDetails.getScrapSource())) {
applyDetails.setScrapStyle("盘点报废");
}
if ("0".equals(applyDetails.getScrapType())) {
applyDetails.setScrapType("自然损坏");
} else if ("1".equals(applyDetails.getScrapType())) {
applyDetails.setScrapType("人为损坏");
}
}
}
return list;
}
/**
* 生成报废单号
* @param thisMonthMaxOrder
@ -838,7 +915,7 @@ public class ScrapApplyDetailsServiceImpl implements IScrapApplyDetailsService {
*/
private Long insertTt(Long preTaskId) {
Long newTask = null;
int thisMonthMaxOrder = taskMapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), TmTaskTypeEnum.TM_TASK_REPAIR.getTaskTypeId());
int thisMonthMaxOrder = taskMapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), TmTaskTypeEnum.TM_TASK_REPAIR.getTaskTypeId(), null);
// 生成维修单号
String code = genderWxTaskCode(thisMonthMaxOrder);
TmTask tmTask = new TmTask(null, TmTaskTypeEnum.TM_TASK_REPAIR.getTaskTypeId(), RepairTaskStatusEnum.TASK_STATUS_PROCESSING.getStatus(),

View File

@ -406,7 +406,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
LEFT JOIN ma_type mt1 ON mt.parent_id = mt1.type_id
AND mt1.del_flag = '0'
WHERE
mt.type_id = #{typeId}
mm.ma_status = '1' and mt.type_id = #{typeId}
</select>
<delete id="deleteMachineByMaCodeAndTypeId">

View File

@ -418,22 +418,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectInventoryList" resultType="com.bonus.material.scrap.domain.vo.ScrapTaskListVo">
SELECT
tt.task_id as taskId,
GROUP_CONCAT( sad.id ) AS ids,
tt.code AS scrapCode,
GROUP_CONCAT( DISTINCT mt2.type_name ) AS type,
GROUP_CONCAT( DISTINCT mt1.type_name ) AS type,
sad.create_by AS createName,
sad.create_time AS createTime,
sad.`status` AS status
tt.task_status AS taskStatus
FROM
scrap_apply_details sad
LEFT JOIN ma_type mt ON mm.type_id = mt.type_id
LEFT JOIN ma_type mt ON sad.type_id = mt.type_id
AND mt.del_flag = '0'
LEFT JOIN ma_type mt1 ON mt.parent_id = mt1.type_id
AND mt1.del_flag = '0'
LEFT JOIN tm_task tt on sad.task_id = tt.task_id
AND tt.task_type = 15
where sad.scrap_source = '3'
<if test="status != null "> and sad.`status` = #{status}</if>
<if test="taskStatus != null "> and tt.task_status = #{taskStatus}</if>
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
<![CDATA[and DATE_FORMAT( sad.create_time, '%Y-%m-%d' ) BETWEEN #{startTime} AND #{endTime} ]]>
</if>
@ -450,11 +451,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="getDetailsList" resultType="com.bonus.material.scrap.domain.ScrapApplyDetails">
SELECT
sad.CODE AS code,
sad.task_id AS taskId,
mt.type_id AS typeId,
mt1.type_name AS typeName,
mt.type_name AS typeModelName,
mt1.type_name AS maTypeName,
mt.type_name AS typeName,
mt.unit_name AS unitName,
SUM(sad.scrap_num) AS scrapNum,
GROUP_CONCAT( DISTINCT sad.ma_id ) AS maIds,
@ -470,8 +470,109 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
LEFT JOIN ma_machine mm ON sad.ma_id = mm.ma_id
where
sad.task_id = #{taskId}
<if test="typeId != null">
AND sad.type_id = #{typeId}
</if>
<if test="keyWord != null and keyWord != ''">
AND (
mt1.type_name like concat('%', #{keyWord}, '%') or
mt.type_name like concat('%', #{keyWord}, '%')
)
</if>
GROUP BY
sad.type_id
</select>
<select id="getScrapList" resultType="com.bonus.material.scrap.domain.vo.ScrapTotalListVo">
SELECT
mt2.type_name AS typeName,
mt.type_id AS typeId,
mt.type_name AS typeModelName,
mt.unit_name AS unitName,
mt.manage_type AS manageType,
sum( sad.scrap_num ) AS scrapNum,
mt.buy_price AS buyPrice,
GROUP_CONCAT( DISTINCT sad.create_by ) AS createName,
DATE_FORMAT( sad.ledger_time, '%Y-%m' ) AS month,
sad.ledger_status AS ledgerStatus,
TRIM(TRAILING '0' FROM CAST(SUM(ROUND(mt.buy_price) * ROUND(sad.scrap_num)) / 10000 AS CHAR)) AS totalCost
FROM
scrap_apply_details sad
LEFT JOIN ma_type mt ON sad.type_id = mt.type_id
LEFT JOIN ma_type mt2 ON mt.parent_id = mt2.type_id
WHERE sad.`status` = '1' and sad.ledger_status = '1'
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
<![CDATA[
AND DATE_FORMAT( sad.create_time, '%Y-%m' ) BETWEEN DATE_FORMAT(#{startTime}, '%Y-%m') AND DATE_FORMAT(#{endTime}, '%Y-%m')
]]>
</if>
GROUP BY
DATE_FORMAT(
sad.ledger_time,
'%Y-%m')
</select>
<select id="getScrapDetailsList" resultType="com.bonus.material.scrap.domain.vo.ScrapDetailsListVo">
SELECT
mt2.type_name AS typeName,
mt.type_id AS typeId,
mt.type_name AS typeModelName,
mt.unit_name AS unitName,
mt.manage_type AS manageType,
sum( sad.scrap_num ) AS scrapNum,
mt.buy_price AS buyPrice,
sad.scrap_type AS scrapType,
GROUP_CONCAT( DISTINCT su.nick_name ) AS auditName,
DATE_FORMAT( sad.ledger_time, '%Y-%m-%d' ) AS month,
sad.ledger_status AS ledgerStatus,
sad.scrap_source AS scrapSource
FROM
scrap_apply_details sad
LEFT JOIN ma_type mt ON sad.type_id = mt.type_id
LEFT JOIN ma_type mt2 ON mt.parent_id = mt2.type_id
LEFT JOIN sys_user su on sad.ledger_by = su.user_id
WHERE sad.`status` = '1' and sad.ledger_status = '1'
DATE_FORMAT( sad.ledger_time, '%Y-%m' ) = #{month}
<if test="keyWord != null and keyWord != ''">
AND (
mt2.type_name like concat('%', #{keyWord}, '%') or
mt.type_name like concat('%', #{keyWord}, '%') or
sad.scrap_type like concat('%', #{keyWord}, '%')
)
</if>
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
<![CDATA[
AND DATE_FORMAT( sad.ledger_time, '%Y-%m' ) BETWEEN DATE_FORMAT(#{startTime}, '%Y-%m') AND DATE_FORMAT(#{endTime}, '%Y-%m')
]]>
</if>
GROUP BY
sad.type_id,
sad.scrap_type,
sad.scrap_source
</select>
<select id="selectMaTypeList" resultType="com.bonus.material.ma.domain.Type">
select
m.type_id as typeId,
CASE m.manage_type
WHEN 0 THEN
IFNULL(subquery0.num, 0)
ELSE
IFNULL(m.storage_num, 0)
END as storageNum
from ma_type m
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 = m.type_id
where
m.del_flag = '0'
AND m.type_id = #{typeId}
</select>
</mapper>