From 5564d3d391803c765a8243378c425577f79d5b7a Mon Sep 17 00:00:00 2001 From: bns_han <1604366271@qq.com> Date: Thu, 21 Dec 2023 20:17:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8E=E5=8F=B0-=E9=80=80=E6=96=99=E7=94=B3?= =?UTF-8?q?=E8=AF=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resources/mapper/app/BackApplyMapper.xml | 2 + .../controller/BackApplyController.java | 140 ++++++ .../sgzb/material/domain/BackApplyInfo.java | 108 ++++ .../sgzb/material/mapper/BackApplyMapper.java | 42 ++ .../material/service/BackApplyService.java | 38 ++ .../service/impl/BackApplyServiceImpl.java | 117 +++++ .../mapper/material/BackApplyMapper.xml | 475 ++++++++++++++++++ 7 files changed, 922 insertions(+) create mode 100644 sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/controller/BackApplyController.java create mode 100644 sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/domain/BackApplyInfo.java create mode 100644 sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/mapper/BackApplyMapper.java create mode 100644 sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/service/BackApplyService.java create mode 100644 sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/service/impl/BackApplyServiceImpl.java create mode 100644 sgzb-modules/sgzb-material/src/main/resources/mapper/material/BackApplyMapper.xml diff --git a/sgzb-modules/sgzb-base/src/main/resources/mapper/app/BackApplyMapper.xml b/sgzb-modules/sgzb-base/src/main/resources/mapper/app/BackApplyMapper.xml index d95d9f27..4e40b8b6 100644 --- a/sgzb-modules/sgzb-base/src/main/resources/mapper/app/BackApplyMapper.xml +++ b/sgzb-modules/sgzb-base/src/main/resources/mapper/app/BackApplyMapper.xml @@ -371,6 +371,7 @@ LEFT JOIN ma_machine mm on mm.ma_id = lod.ma_id WHERE tta.agreement_id = #{agreementId} and tt.task_type = '29' + and mt.type_id is not null ) AS subquery1 LEFT JOIN ( @@ -390,6 +391,7 @@ LEFT JOIN ma_type mt4 ON mt4.type_id = mt3.parent_id WHERE tta.agreement_id = #{agreementId} and tt.task_type = '36' + and mt.type_id is not null ) AS subquery2 ON subquery1.type_id = subquery2.type_id diff --git a/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/controller/BackApplyController.java b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/controller/BackApplyController.java new file mode 100644 index 00000000..2053b48e --- /dev/null +++ b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/controller/BackApplyController.java @@ -0,0 +1,140 @@ +package com.bonus.sgzb.material.controller; + +import com.bonus.sgzb.common.core.utils.StringUtils; +import com.bonus.sgzb.common.core.web.controller.BaseController; +import com.bonus.sgzb.common.core.web.domain.AjaxResult; +import com.bonus.sgzb.common.core.web.page.TableDataInfo; +import com.bonus.sgzb.common.log.annotation.Log; +import com.bonus.sgzb.common.log.enums.BusinessType; +import com.bonus.sgzb.material.domain.BackApplyInfo; +import com.bonus.sgzb.material.service.BackApplyService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import java.util.List; + +/** +* @description 退料申请 +* @author hay +* @date 2023/12/20 11:46 +*/ +@Api(tags = "退料申请") +@RestController +@RequestMapping("/backApply") +public class BackApplyController extends BaseController { + @Autowired + private BackApplyService backApplyService; + + /** + * 获取退料审核列表 + */ + @ApiOperation(value = "获取退料审核列表") + @GetMapping("/getBackApplyList") + public TableDataInfo getBackApplyList(@RequestBody BackApplyInfo bean) + { + startPage(); + List list = backApplyService.getBackApplyList(bean); + return getDataTable(list); + } + + /** + * 获取在用物料列表 + */ + @ApiOperation(value = "获取在用物料列表") + @GetMapping("/getMaterialList") + public TableDataInfo getMaterialList(@RequestBody BackApplyInfo bean) + { + startPage(); + List list = backApplyService.getMaterialList(bean); + return getDataTable(list); + } + + /** + * 退料申请详情 + */ + @ApiOperation(value = "退料申请详情") + @GetMapping("/getView") + public TableDataInfo getView(@RequestBody BackApplyInfo bean) + { + startPage(); + List list = backApplyService.getView(bean); + return getDataTable(list); + } + + /** + * 退料申请详情修改 + */ + @ApiOperation(value = "退料申请详情修改") + @PostMapping("/setModify") + public AjaxResult setModify(@RequestBody BackApplyInfo bean) + { + return backApplyService.setModify(bean); + } + + /** + * 退料申请删除 + */ + @ApiOperation(value = "退料申请删除") + @GetMapping("/del") + public AjaxResult del(@RequestBody BackApplyInfo bean) + { + return backApplyService.del(bean); + } + + + + @Log(title = "领料申请提交", businessType = BusinessType.INSERT) + @PostMapping("submitBackApply") + public AjaxResult submitBackApply(@RequestBody BackApplyInfo bean) { + if (StringUtils.isNull(bean)) { + return AjaxResult.error("参数错误"); + } + try { + //生成退料编码 + String code = backApplyService.genderBackCode(); + if (StringUtils.isEmpty(code)) { + return AjaxResult.error("后台退料编号生成异常,请重试!"); + } + bean.setCode(code); + // 创建任务 + boolean addTaskResult = backApplyService.insertSelective(bean) > 0; + if (addTaskResult && bean.getTaskId() != null) { + //任务协议表(tm_task_agreement) + Boolean addTaskAgreementRes = backApplyService.insertTaskAgreement(bean)>0; + if (addTaskAgreementRes){ + //退料任务表(back_apply_info) + Boolean addBackApply=backApplyService.insertBackApply(bean)>0; + if (addBackApply && bean.getId()!=null){ + if (!StringUtils.isEmpty(bean.getTypeId()) && !StringUtils.isEmpty(bean.getNum())){ + String[] typeId = bean.getTypeId().split(","); + String[] num = bean.getNum().split(","); + for (int i=0;i< typeId.length;i++){ + String typeIdStr=typeId[i]; + String numStr=num[i]; + bean.setTypeId(typeIdStr); + bean.setNum(numStr); + int re =backApplyService.upload(bean); + if (re<1){ + return AjaxResult.error("退料申请详情创建失败"); + } + } + }else { + return AjaxResult.error("未获取到物料类型或数量"); + } + }else { + return AjaxResult.error("创建退料申请失败"); + } + }else { + return AjaxResult.error("创建任务协议失败"); + } + } else { + return AjaxResult.error("创建任务失败"); + } + return AjaxResult.success("退料申请创建成功,已完成"); + } catch (Exception e) { + return AjaxResult.error("创建任务失败," + e.getCause().toString() + "," + e.getMessage()); + } + } + +} diff --git a/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/domain/BackApplyInfo.java b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/domain/BackApplyInfo.java new file mode 100644 index 00000000..35f1a492 --- /dev/null +++ b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/domain/BackApplyInfo.java @@ -0,0 +1,108 @@ +package com.bonus.sgzb.material.domain; + +import com.bonus.sgzb.common.core.annotation.Excel; +import com.bonus.sgzb.common.core.web.domain.BaseEntity; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** +* @description 退料 +* @author hay +* @date 2023/12/20 11:56 +*/ +@Data +public class BackApplyInfo extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** 退料ID */ + @ApiModelProperty(value = "退料ID") + private Long id; + + /** 退料单号 */ + @Excel(name = "退料单号") + @ApiModelProperty(value = "退料单号") + private String code; + + /** 任务ID */ + @ApiModelProperty(value = "任务ID") + private Integer taskId; + + /** 签订日期 */ + @Excel(name = "签订日期") + @ApiModelProperty(value = "签订日期") + private String signTime; + + /** 退料人员 */ + @Excel(name = "退料人员") + @ApiModelProperty(value = "退料人员") + private String backPerson; + + /** 联系电话 */ + @Excel(name = "联系电话") + @ApiModelProperty(value = "联系电话") + private String phone; + + /** 机具公司审核人 */ + @ApiModelProperty(value = "机具公司审核人") + private Integer directAuditBy; + + /** 机具公司审批时间 */ + @ApiModelProperty(value = "机具公司审批时间") + private String directAuditTime; + + /** 机具公司审批备注 */ + @ApiModelProperty(value = "机具公司审批备注") + private String directAuditRemark; + + + /** 创建者 */ + @ApiModelProperty(value = "创建者") + private String createBy; + + /** 创建时间 */ + @ApiModelProperty(value = "创建时间") + private Date createTime; + + /** 更新者 */ + @ApiModelProperty(value = "更新者") + private String updateBy; + + /** 更新时间 */ + @ApiModelProperty(value = "更新时间") + private Date updateTime; + + /** 备注 */ + @ApiModelProperty(value = "备注") + private String remark; + + /** 数据所属组织 */ + @ApiModelProperty(value = "数据所属组织") + private Long companyId; + + @ApiModelProperty(value = "关键字") + private String keyWord; + + @ApiModelProperty(value = "工程id") + private Integer lotId; + + @ApiModelProperty(value = "工程名称") + private String lotName; + + @ApiModelProperty(value = "单位id") + private Integer unitId; + + @ApiModelProperty(value = "单位名称") + private String unitName; + + @ApiModelProperty(value = "退料日期") + private String backTime; + + private String typeId; + private String typeCode; + private String num; + private String typeByNum; + +} diff --git a/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/mapper/BackApplyMapper.java b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/mapper/BackApplyMapper.java new file mode 100644 index 00000000..b52df25d --- /dev/null +++ b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/mapper/BackApplyMapper.java @@ -0,0 +1,42 @@ +package com.bonus.sgzb.material.mapper; + +import com.bonus.sgzb.material.domain.AgreementInfo; +import com.bonus.sgzb.material.domain.BackApplyInfo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; +import java.util.List; + +/** +* @author hay +* @date 2023/12/20 14:56 +*/ +@Mapper +public interface BackApplyMapper { + /** + * 获取退料审核列表 + */ + List getBackApplyList(BackApplyInfo bean); + + /** + * 获取在用物料列表 + */ + List getMaterialList(BackApplyInfo bean); + + int selectTaskNumByMonth(@Param("date") Date date, @Param("taskType") Integer taskType); + + int insertTask(BackApplyInfo bean); + + int insertTaskAgreement(BackApplyInfo bean); + + int insertBackApply(BackApplyInfo bean); + + int upload(BackApplyInfo bean); + + List getView(BackApplyInfo bean); + + int setModify(@Param("detailsId") int detailsId, @Param("num") int num); + + int del(BackApplyInfo bean); +} diff --git a/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/service/BackApplyService.java b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/service/BackApplyService.java new file mode 100644 index 00000000..1d357a7a --- /dev/null +++ b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/service/BackApplyService.java @@ -0,0 +1,38 @@ +package com.bonus.sgzb.material.service; + +import com.bonus.sgzb.common.core.web.domain.AjaxResult; +import com.bonus.sgzb.material.domain.AgreementInfo; +import com.bonus.sgzb.material.domain.BackApplyInfo; + +import java.util.List; + +/** +* @author hay +* @date 2023/12/20 14:55 +*/ +public interface BackApplyService { + /** + * 获取退料审核列表 + */ + List getBackApplyList(BackApplyInfo bean); + /** + * 获取在用物料列表 + */ + List getMaterialList(BackApplyInfo bean); + + String genderBackCode(); + + int insertSelective(BackApplyInfo bean); + + int insertTaskAgreement(BackApplyInfo bean); + + int insertBackApply(BackApplyInfo bean); + + int upload(BackApplyInfo bean); + + List getView(BackApplyInfo bean); + + AjaxResult setModify(BackApplyInfo bean); + + AjaxResult del(BackApplyInfo bean); +} diff --git a/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/service/impl/BackApplyServiceImpl.java b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/service/impl/BackApplyServiceImpl.java new file mode 100644 index 00000000..2bd024a9 --- /dev/null +++ b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/service/impl/BackApplyServiceImpl.java @@ -0,0 +1,117 @@ +package com.bonus.sgzb.material.service.impl; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.bonus.sgzb.common.core.utils.DateUtils; +import com.bonus.sgzb.common.core.utils.StringUtils; +import com.bonus.sgzb.common.core.web.domain.AjaxResult; +import com.bonus.sgzb.material.domain.AgreementInfo; +import com.bonus.sgzb.material.domain.BackApplyInfo; +import com.bonus.sgzb.material.mapper.BackApplyMapper; +import com.bonus.sgzb.material.service.AgreementInfoService; +import com.bonus.sgzb.material.service.BackApplyService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; + +/** +* @author hay +* @date 2023/12/20 14:55 +*/ +@Service +public class BackApplyServiceImpl implements BackApplyService { + + @Autowired + private BackApplyMapper backApplyMapper; + + @Override + public List getBackApplyList(BackApplyInfo bean) { + return backApplyMapper.getBackApplyList(bean); + } + + @Override + public List getMaterialList(BackApplyInfo bean) { + return backApplyMapper.getMaterialList(bean); + } + + @Override + public String genderBackCode() { + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd"); + Date nowDate = DateUtils.getNowDate(); + String format = dateFormat.format(nowDate); + int taskNum = backApplyMapper.selectTaskNumByMonth(nowDate,36) + 1; + String code=""; + if (taskNum>9 && taskNum<100){ + code = "T" + format + "-00" + taskNum; + }else if (taskNum>99 && taskNum<1000){ + code = "T" + format + "-0" + taskNum; + }else { + code = "T" + format + "-000" + taskNum; + } + return code; + } + + @Override + public int insertSelective(BackApplyInfo bean) { + return backApplyMapper.insertTask(bean); + } + + @Override + public int insertTaskAgreement(BackApplyInfo bean) { + return backApplyMapper.insertTaskAgreement(bean); + } + + @Override + public int insertBackApply(BackApplyInfo bean) { + return backApplyMapper.insertBackApply(bean); + } + + @Override + public int upload(BackApplyInfo bean) { + return backApplyMapper.upload(bean); + } + + @Override + public List getView(BackApplyInfo bean) { + return backApplyMapper.getView(bean); + } + + @Override + public AjaxResult setModify(BackApplyInfo bean) { + if (!StringUtils.isEmpty(bean.getTypeByNum())){ + // 使用 parseArray 方法解析 JSON 字符串为 JSONArray 对象 + JSONArray jsonArray = JSON.parseArray(bean.getTypeByNum()); + // 遍历 JSONArray + for (int i = 0; i < jsonArray.size(); i++) { + // 获取当前 JSONObject + JSONObject jsonObject = jsonArray.getJSONObject(i); + // 获取 JSONObject 中的属性值 + int detailsId = jsonObject.getIntValue("detailsId"); + int num = jsonObject.getIntValue("num"); + int res=backApplyMapper.setModify(detailsId,num); + if (res<1){ + return AjaxResult.error("修改失败"); + } + + } + return AjaxResult.success("修改成功"); + }else { + return AjaxResult.error("修改失败,未获取到参数"); + } + } + + @Override + public AjaxResult del(BackApplyInfo bean) { + int re =backApplyMapper.del(bean); + if (re>0){ + return AjaxResult.success("删除成功"); + }else { + return AjaxResult.error("删除失败"); + } + } + +} diff --git a/sgzb-modules/sgzb-material/src/main/resources/mapper/material/BackApplyMapper.xml b/sgzb-modules/sgzb-material/src/main/resources/mapper/material/BackApplyMapper.xml new file mode 100644 index 00000000..7668f71e --- /dev/null +++ b/sgzb-modules/sgzb-material/src/main/resources/mapper/material/BackApplyMapper.xml @@ -0,0 +1,475 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + insert into tm_task + ( + + task_type, + + + task_status, + + + code, + + + create_by, + + + update_by, + + + update_time, + + + remark, + + + company_id, + + create_time + ) values ( + + #{taskType}, + + + #{taskStatus}, + + + #{code}, + + + #{createBy}, + + + #{updateBy}, + + + #{updateTime}, + + + #{remark}, + + + #{companyId}, + + NOW() + + + + insert into tm_task_agreement + ( + + task_id, + + + agreement_id, + + + create_by, + + + update_by, + + + update_time, + + + remark, + + + company_id, + + create_time + ) values ( + + #{taskId}, + + + #{agreementId}, + + + #{createBy}, + + + #{updateBy}, + + + #{updateTime}, + + + #{remark}, + + + #{companyId}, + + NOW() + ) + + + + insert into back_apply_info + ( + + code, + + + task_id, + + + back_person, + + + back_time, + + + phone, + + + direct_audit_by, + + + direct_audit_time, + + + direct_audit_remark, + + + create_by, + + + update_by, + + + update_time, + + + remark, + + + company_id, + + create_time + ) values ( + + #{code}, + + + #{taskId}, + + + #{backPerson}, + + + #{backTime}, + + + #{phone}, + + + #{directAuditBy}, + + + #{directAuditTime}, + + + #{directAuditRemark}, + + + #{createBy}, + + + #{updateBy}, + + + #{updateTime}, + + + #{remark}, + + + #{companyId}, + + NOW() + ) + + + + insert into back_apply_details + ( + + parent_id, + + + type_id, + + + pre_num, + + status, + + create_by, + + + update_by, + + update_time, + + remark, + + + company_id, + + create_time + ) + values ( + + #{id}, + + + #{typeId}, + + + #{num}, + + '0', + + #{createBy}, + + + #{createBy}, + + NOW(), + + #{remark}, + + + #{companyId}, + + NOW() + ) + + + + update back_apply_details + set pre_num =#{num} + where id = #{detailsId} + + + DELETE + FROM tm_task_agreement tta LEFT JOIN back_apply_info bai + ON bai.task_id = tta.task_id + WHERE + bai.id = #{id}; + + DELETE + FROM tm_task tt LEFT JOIN back_apply_info bai + ON bai.task_id = tt.task_id + WHERE + bai.id = #{id}; + + DELETE + FROM back_apply_details bad LEFT JOIN back_apply_info bai + ON bai.id = bad.parent_id + WHERE + bai.id = #{id}; + + DELETE + FROM back_apply_info + WHERE id = #{id}; + + + + + + + + + + \ No newline at end of file