diff --git a/src/main/java/com/nov/KgLowDurable/mapper/LdErstockOutFormMapper.java b/src/main/java/com/nov/KgLowDurable/mapper/LdErstockOutFormMapper.java new file mode 100644 index 0000000..96bdb49 --- /dev/null +++ b/src/main/java/com/nov/KgLowDurable/mapper/LdErstockOutFormMapper.java @@ -0,0 +1,23 @@ +package com.nov.KgLowDurable.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.nov.KgLowDurable.pojo.entity.LdDurableForm; +import com.nov.KgLowDurable.pojo.entity.LdErstockOutForm; + +import java.util.List; + + +/** + * 移动端二级库出库表接口 + * + * @author liweidong + */ +public interface LdErstockOutFormMapper extends BaseMapper { + /** + * 根据移动端二级库出库ID查询明细 + * + * @param outId + * @return + */ + List listByOutId(Long outId); +} diff --git a/src/main/java/com/nov/KgLowDurable/mapper/LdErstockOutMapper.java b/src/main/java/com/nov/KgLowDurable/mapper/LdErstockOutMapper.java new file mode 100644 index 0000000..d356cfe --- /dev/null +++ b/src/main/java/com/nov/KgLowDurable/mapper/LdErstockOutMapper.java @@ -0,0 +1,14 @@ +package com.nov.KgLowDurable.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.nov.KgLowDurable.pojo.entity.LdErstockOut; + + +/** + * 移动端二级库出库表接口 + * + * @author liweidong + */ +public interface LdErstockOutMapper extends BaseMapper { + +} diff --git a/src/main/java/com/nov/KgLowDurable/pojo/entity/LdErstockOut.java b/src/main/java/com/nov/KgLowDurable/pojo/entity/LdErstockOut.java new file mode 100644 index 0000000..2ad5439 --- /dev/null +++ b/src/main/java/com/nov/KgLowDurable/pojo/entity/LdErstockOut.java @@ -0,0 +1,114 @@ +package com.nov.KgLowDurable.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +/** + * 移动端二级库出库表实体类 + * + * @author: liweidong + * @create: 2025-12-26 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("ld_erstock_out") +public class LdErstockOut implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * ID - 主键,自增 + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 二级出库编号 + */ + @TableField("so_no") + private String soNo; + /** + * 申请人id + */ + @TableField("user_id") + private String proposerId; + + /** + * 申请人姓名 + */ + @TableField("user_name") + private String proposerName; + + /** + * 提交时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @TableField("opt_time") + private Date optTime; + + /** + * 部门ID + */ + @TableField("department_id") + private String departmentId; + + /** + * 部门 + */ + @TableField("department") + private String department; + + /** + * 事由 + */ + @TableField("reason") + private String reason; + + /** + * 物资类型:办公物资/其他物资 + */ + @TableField("material_type") + private String materialType; + + /** + * 出库人ID + */ + @TableField("shipper_id") + private String shipperId; + + /** + * 出库人名称 + */ + @TableField("shipper_name") + private String shipperName; + + /** + * 审批编号 + */ + @TableField("sp_no") + private String spNo; + + /** + * 出库状态:0-未出库;1-已出库;2-已驳回 + */ + private String status; + + /** + * 分组名称 + */ + private String groupName; + + /** + * 审批人员 + */ + private String approvers; +} \ No newline at end of file diff --git a/src/main/java/com/nov/KgLowDurable/pojo/entity/LdErstockOutForm.java b/src/main/java/com/nov/KgLowDurable/pojo/entity/LdErstockOutForm.java new file mode 100644 index 0000000..425f525 --- /dev/null +++ b/src/main/java/com/nov/KgLowDurable/pojo/entity/LdErstockOutForm.java @@ -0,0 +1,112 @@ +package com.nov.KgLowDurable.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +/** + * 移动端二级库出库表实体类 + * + * @author: liweidong + * @create: 2025-12-26 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("ld_erstock_out_form") +public class LdErstockOutForm implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * ID - 主键,自增 + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 二级出库ID + */ + @TableField("out_id") + private Long outId; + + /** + * 二级出库单号 + */ + @TableField("out_no") + private Long outNo; + + /** + * 二级出库明细单号 + */ + @TableField("out_detail_no") + private Long outDetailNo; + + /** + * 物资ID + */ + @TableField("material_id") + private String materialId; + + /** + * 二级库物资id(易耗品是为空) 物资编号 + */ + @TableField("stock_id") + private String stockId; + + /** + * 二级库物资名称 + */ + @TableField("stock_name") + private String stockName; + + /** + * 规格型号 + */ + @TableField("model") + private String model; + + /** + * 类别:耐用品/易耗品 + */ + @TableField("type") + private String type; + + /** + * 单位 + */ + @TableField("unit") + private String unit; + + /** + * 数量(耐用品默认为1) + */ + @TableField("num") + private String num; + + /** + * 物品详细描述 + */ + @TableField("remark") + private String remark; + + /** + * 申请原因 + */ + @TableField("reason") + private String reason; + + /** + * 提交时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @TableField("opt_time") + private Date optTime; +} \ No newline at end of file diff --git a/src/main/java/com/nov/KgLowDurable/service/ILdErstockOutFromService.java b/src/main/java/com/nov/KgLowDurable/service/ILdErstockOutFromService.java new file mode 100644 index 0000000..717ae5d --- /dev/null +++ b/src/main/java/com/nov/KgLowDurable/service/ILdErstockOutFromService.java @@ -0,0 +1,25 @@ +package com.nov.KgLowDurable.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.nov.KgLowDurable.pojo.entity.LdDurableForm; +import com.nov.KgLowDurable.pojo.entity.LdErstockOut; +import com.nov.KgLowDurable.pojo.entity.LdErstockOutForm; + +import java.util.List; + + +/** + * 移动端二级库 + * + * @author liweidong + */ +public interface ILdErstockOutFromService extends IService { + + /** + * 根据移动端二级库出库ID查询明细 + * + * @param outId + * @return + */ + List listByOutId(Long outId); +} diff --git a/src/main/java/com/nov/KgLowDurable/service/ILdErstockOutService.java b/src/main/java/com/nov/KgLowDurable/service/ILdErstockOutService.java new file mode 100644 index 0000000..0505c5f --- /dev/null +++ b/src/main/java/com/nov/KgLowDurable/service/ILdErstockOutService.java @@ -0,0 +1,14 @@ +package com.nov.KgLowDurable.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.nov.KgLowDurable.pojo.entity.LdErstockOut; + + +/** + * 移动端二级库 + * + * @author liweidong + */ +public interface ILdErstockOutService extends IService { + +} diff --git a/src/main/java/com/nov/KgLowDurable/service/Impl/LdErstockOutFromServiceImpl.java b/src/main/java/com/nov/KgLowDurable/service/Impl/LdErstockOutFromServiceImpl.java new file mode 100644 index 0000000..2a11ec5 --- /dev/null +++ b/src/main/java/com/nov/KgLowDurable/service/Impl/LdErstockOutFromServiceImpl.java @@ -0,0 +1,26 @@ +package com.nov.KgLowDurable.service.Impl; + +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.nov.KgLowDurable.mapper.LdErstockOutFormMapper; +import com.nov.KgLowDurable.pojo.entity.LdDurableForm; +import com.nov.KgLowDurable.pojo.entity.LdErstockOutForm; +import com.nov.KgLowDurable.service.ILdErstockOutFromService; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 服务实现类 + */ +@Service +@AllArgsConstructor +public class LdErstockOutFromServiceImpl extends ServiceImpl implements ILdErstockOutFromService { + + + @Override + public List listByOutId(Long outId) { + return baseMapper.listByOutId(outId); + } +} diff --git a/src/main/java/com/nov/KgLowDurable/service/Impl/LdErstockOutServiceImpl.java b/src/main/java/com/nov/KgLowDurable/service/Impl/LdErstockOutServiceImpl.java new file mode 100644 index 0000000..2bc704e --- /dev/null +++ b/src/main/java/com/nov/KgLowDurable/service/Impl/LdErstockOutServiceImpl.java @@ -0,0 +1,18 @@ +package com.nov.KgLowDurable.service.Impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.nov.KgLowDurable.mapper.LdErstockOutMapper; +import com.nov.KgLowDurable.pojo.entity.LdErstockOut; +import com.nov.KgLowDurable.service.ILdErstockOutService; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; + +/** + * 服务实现类 + */ +@Service +@AllArgsConstructor +public class LdErstockOutServiceImpl extends ServiceImpl implements ILdErstockOutService { + + +} diff --git a/src/main/java/com/nov/KgLowDurable/service/Impl/LdTwoInventoryRecordServiceImpl.java b/src/main/java/com/nov/KgLowDurable/service/Impl/LdTwoInventoryRecordServiceImpl.java index f4e2cb2..2c9b485 100644 --- a/src/main/java/com/nov/KgLowDurable/service/Impl/LdTwoInventoryRecordServiceImpl.java +++ b/src/main/java/com/nov/KgLowDurable/service/Impl/LdTwoInventoryRecordServiceImpl.java @@ -1,4 +1,6 @@ package com.nov.KgLowDurable.service.Impl; + +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; @@ -14,8 +16,10 @@ import lombok.AllArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; + import java.math.BigDecimal; import java.math.RoundingMode; +import java.sql.Wrapper; import java.time.LocalDateTime; import java.util.List; @@ -43,12 +47,18 @@ public class LdTwoInventoryRecordServiceImpl extends ServiceImpl getTwoInventoryRecordList(Long consumerFormId, String transactionType, Integer pageNum, Integer pageSize) { - PageHelper.startPage(pageNum,pageSize); + PageHelper.startPage(pageNum, pageSize); // 查询全部 - List ldTwoInventoryRecordList = twoInventoryRecordMapper.selectByConsumerFormId(consumerFormId,transactionType); + List ldTwoInventoryRecordList = twoInventoryRecordMapper.selectByConsumerFormId(consumerFormId, transactionType); // 返回结果 PageInfo pageInfo = new PageInfo<>(ldTwoInventoryRecordList); return pageInfo; @@ -57,15 +67,17 @@ public class LdTwoInventoryRecordServiceImpl extends ServiceImpl ldTwoOutStorageDetailList = twoOutStorageDetailService.selectByTwoOutStorageId(approveDto.getTwoOutStorageId()); for (LdTwoOutStorageDetail twoOutStorageDetail : ldTwoOutStorageDetailList) { - if(BatchConstant.CONSUMER.equals(twoOutStorageDetail.getType())){ + if (BatchConstant.CONSUMER.equals(twoOutStorageDetail.getType())) { LdConsumerForm consumerForm = consumerFormService.getById(twoOutStorageDetail.getTwoInventoryId()); //计算差值 BigDecimal difference = consumerForm.getNum().subtract(twoOutStorageDetail.getNum()); consumerForm.setNum(difference); boolean updateConfumerForm = consumerFormService.updateById(consumerForm); - if(!updateConfumerForm){ + if (!updateConfumerForm) { throw new CustomerException("易耗品更新失败"); } //出库记录 @@ -93,15 +105,71 @@ public class LdTwoInventoryRecordServiceImpl extends ServiceImpl outFormList = ldErstockOutFromService.listByOutId(approveDto.getTwoOutStorageId()); + for (LdErstockOutForm ldErstockOutForm : outFormList) { + // todo 移动端的类存储的是代码(YH)还是汉字(易耗品) + if (BatchConstant.CONSUMER.equals(ldErstockOutForm.getType())) { + // 获取二级库存 + LdConsumerForm consumerForm = consumerFormService.getById(ldErstockOutForm.getStockId()); + BigDecimal num = new BigDecimal(ldErstockOutForm.getNum()); + //计算差值 + BigDecimal difference = consumerForm.getNum().subtract(num); + consumerForm.setNum(difference); + boolean updateConfumerForm = consumerFormService.updateById(consumerForm); + if (!updateConfumerForm) { + throw new CustomerException("易耗品更新失败"); + } + //出库记录 + LdTwoInventoryRecord ldTwoInventoryRecord = new LdTwoInventoryRecord() + .setConsumerFormId(consumerForm.getId().longValue()) + .setTransactionType(BatchConstant.OUT_WAREHOUSE) + .setQuantity(num) + .setOperatorId(approveDto.getOperatorId()) + .setOperatorName(approveDto.getOperatorName()) + .setOperationTime(approveDto.getOperationTime()) + .setDepartmentId(approveDto.getDepartmentId()) + .setDepartmentName(approveDto.getDepartmentName()); + int insertTwoInventoryRecord = twoInventoryRecordMapper.insert(ldTwoInventoryRecord); + if (insertTwoInventoryRecord <= 0) { + throw new CustomerException("出库记录保存失败"); + } + } else { + LdDurableForm durableForm = durableFormService.getById(ldErstockOutForm.getStockId()); + durableForm.setIsBorrow(BatchConstant.LEND); + durableForm.setNum(new BigDecimal(0)); + boolean updateDurableForm = durableFormService.updateById(durableForm); + if (!updateDurableForm) { throw new CustomerException("耐用品更新失败"); } } diff --git a/src/main/java/com/nov/KgLowDurable/service/Impl/LdTwoOutStorageServiceImpl.java b/src/main/java/com/nov/KgLowDurable/service/Impl/LdTwoOutStorageServiceImpl.java index e0d96e4..8a98e49 100644 --- a/src/main/java/com/nov/KgLowDurable/service/Impl/LdTwoOutStorageServiceImpl.java +++ b/src/main/java/com/nov/KgLowDurable/service/Impl/LdTwoOutStorageServiceImpl.java @@ -1,4 +1,5 @@ package com.nov.KgLowDurable.service.Impl; +import com.baomidou.mybatisplus.core.toolkit.StringPool; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; @@ -167,7 +168,7 @@ public class LdTwoOutStorageServiceImpl extends ServiceImpl implements IU "}"; @Override - public String getApprover(String mainErDepartment, String type,Long formId) { + public String getApprover(String mainErDepartment, String type, Long formId) { // 参数校验 if (!StringUtils.hasText(type)) { throw new IllegalArgumentException("审批类型不能为空"); @@ -170,13 +170,15 @@ public class UserServiceImpl extends ServiceImpl implements IU }}; Map querys = new HashMap(); - querys. put("type",type); + querys.put("type", type); if ("1".equals(type)) { querys.put("deptId", mainErDepartment); } String resp = null; try { + log.info("获取审批人开始, mainErDepartment:{}, type:{}, formId:{}", mainErDepartment, type, formId); + log.info("获取审批人开始, host:{}, path:{}, querys:{}", "http://10.90.100.231:8132", "/ld-person-form/getApprove", JSONObject.toJSONString(querys)); resp = EntityUtils.toString( HttpUtils.doGet( "http://10.90.100.231:8132", @@ -189,6 +191,7 @@ public class UserServiceImpl extends ServiceImpl implements IU } catch (Exception e) { e.printStackTrace(); } + log.info("获取审批人接收, resp:{}", resp); try { // 1.解析模拟数据 diff --git a/src/main/resources/mapper/LdErstockOutFormMapper.xml b/src/main/resources/mapper/LdErstockOutFormMapper.xml new file mode 100644 index 0000000..fb1a10e --- /dev/null +++ b/src/main/resources/mapper/LdErstockOutFormMapper.xml @@ -0,0 +1,9 @@ + + + + +