Selaa lähdekoodia

Merge remote-tracking branch 'origin/master'

xiahan 4 viikkoa sitten
vanhempi
commit
8ab9ac86ab
17 muutettua tiedostoa jossa 928 lisäystä ja 0 poistoa
  1. 7 0
      qhse-common/src/main/java/com/rongwei/bscommon/sys/dao/MaterialOutboundDao.java
  2. 7 0
      qhse-common/src/main/java/com/rongwei/bscommon/sys/dao/MaterialOutboundDetailsDao.java
  3. 7 0
      qhse-common/src/main/java/com/rongwei/bscommon/sys/dao/MaterialOutboundDetailsRecordDao.java
  4. 7 0
      qhse-common/src/main/java/com/rongwei/bscommon/sys/dao/MaterialOutboundRecordDao.java
  5. 7 0
      qhse-common/src/main/java/com/rongwei/bscommon/sys/service/MaterialOutboundDetailsRecordService.java
  6. 7 0
      qhse-common/src/main/java/com/rongwei/bscommon/sys/service/MaterialOutboundDetailsService.java
  7. 7 0
      qhse-common/src/main/java/com/rongwei/bscommon/sys/service/MaterialOutboundRecordService.java
  8. 15 0
      qhse-common/src/main/java/com/rongwei/bscommon/sys/service/MaterialOutboundService.java
  9. 13 0
      qhse-common/src/main/java/com/rongwei/bscommon/sys/service/impl/MaterialOutboundDetailsRecordServiceImpl.java
  10. 12 0
      qhse-common/src/main/java/com/rongwei/bscommon/sys/service/impl/MaterialOutboundDetailsServiceImpl.java
  11. 12 0
      qhse-common/src/main/java/com/rongwei/bscommon/sys/service/impl/MaterialOutboundRecordServiceImpl.java
  12. 120 0
      qhse-common/src/main/java/com/rongwei/bscommon/sys/service/impl/MaterialOutboundServiceImpl.java
  13. 59 0
      qhse-entity/src/main/java/com/rongwei/bsentity/domain/MaterialOutboundDetailsDo.java
  14. 59 0
      qhse-entity/src/main/java/com/rongwei/bsentity/domain/MaterialOutboundDetailsRecordDo.java
  15. 271 0
      qhse-entity/src/main/java/com/rongwei/bsentity/domain/MaterialOutboundDo.java
  16. 277 0
      qhse-entity/src/main/java/com/rongwei/bsentity/domain/MaterialOutboundRecordDo.java
  17. 41 0
      qhse-server/src/main/java/com/rongwei/controller/MaterialOutboundController.java

+ 7 - 0
qhse-common/src/main/java/com/rongwei/bscommon/sys/dao/MaterialOutboundDao.java

@@ -0,0 +1,7 @@
+package com.rongwei.bscommon.sys.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.rongwei.bsentity.domain.MaterialOutboundDo;
+
+public interface MaterialOutboundDao extends BaseMapper<MaterialOutboundDo> {
+}

+ 7 - 0
qhse-common/src/main/java/com/rongwei/bscommon/sys/dao/MaterialOutboundDetailsDao.java

@@ -0,0 +1,7 @@
+package com.rongwei.bscommon.sys.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.rongwei.bsentity.domain.MaterialOutboundDetailsDo;
+
+public interface MaterialOutboundDetailsDao extends BaseMapper<MaterialOutboundDetailsDo> {
+}

+ 7 - 0
qhse-common/src/main/java/com/rongwei/bscommon/sys/dao/MaterialOutboundDetailsRecordDao.java

@@ -0,0 +1,7 @@
+package com.rongwei.bscommon.sys.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.rongwei.bsentity.domain.MaterialOutboundDetailsRecordDo;
+
+public interface MaterialOutboundDetailsRecordDao extends BaseMapper<MaterialOutboundDetailsRecordDo> {
+}

+ 7 - 0
qhse-common/src/main/java/com/rongwei/bscommon/sys/dao/MaterialOutboundRecordDao.java

@@ -0,0 +1,7 @@
+package com.rongwei.bscommon.sys.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.rongwei.bsentity.domain.MaterialOutboundRecordDo;
+
+public interface MaterialOutboundRecordDao extends BaseMapper<MaterialOutboundRecordDo> {
+}

+ 7 - 0
qhse-common/src/main/java/com/rongwei/bscommon/sys/service/MaterialOutboundDetailsRecordService.java

@@ -0,0 +1,7 @@
+package com.rongwei.bscommon.sys.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwei.bsentity.domain.MaterialOutboundDetailsRecordDo;
+
+public interface MaterialOutboundDetailsRecordService extends IService<MaterialOutboundDetailsRecordDo> {
+}

+ 7 - 0
qhse-common/src/main/java/com/rongwei/bscommon/sys/service/MaterialOutboundDetailsService.java

@@ -0,0 +1,7 @@
+package com.rongwei.bscommon.sys.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwei.bsentity.domain.MaterialOutboundDetailsDo;
+
+public interface MaterialOutboundDetailsService extends IService<MaterialOutboundDetailsDo> {
+}

+ 7 - 0
qhse-common/src/main/java/com/rongwei/bscommon/sys/service/MaterialOutboundRecordService.java

@@ -0,0 +1,7 @@
+package com.rongwei.bscommon.sys.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwei.bsentity.domain.MaterialOutboundRecordDo;
+
+public interface MaterialOutboundRecordService extends IService<MaterialOutboundRecordDo> {
+}

+ 15 - 0
qhse-common/src/main/java/com/rongwei/bscommon/sys/service/MaterialOutboundService.java

@@ -0,0 +1,15 @@
+package com.rongwei.bscommon.sys.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwei.bsentity.domain.MaterialOutboundDo;
+
+public interface MaterialOutboundService extends IService<MaterialOutboundDo> {
+
+    /**
+     * 生成历史记录
+     *
+     * @param materialOutboundDo 物资出厂参数
+     * @return 结果
+     */
+    boolean produceHistory(MaterialOutboundDo materialOutboundDo);
+}

+ 13 - 0
qhse-common/src/main/java/com/rongwei/bscommon/sys/service/impl/MaterialOutboundDetailsRecordServiceImpl.java

@@ -0,0 +1,13 @@
+package com.rongwei.bscommon.sys.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.rongwei.bscommon.sys.dao.MaterialOutboundDetailsRecordDao;
+import com.rongwei.bscommon.sys.service.MaterialOutboundDetailsRecordService;
+import com.rongwei.bsentity.domain.MaterialOutboundDetailsRecordDo;
+import org.springframework.stereotype.Service;
+
+@Service
+public class MaterialOutboundDetailsRecordServiceImpl
+        extends ServiceImpl<MaterialOutboundDetailsRecordDao, MaterialOutboundDetailsRecordDo>
+        implements MaterialOutboundDetailsRecordService {
+}

+ 12 - 0
qhse-common/src/main/java/com/rongwei/bscommon/sys/service/impl/MaterialOutboundDetailsServiceImpl.java

@@ -0,0 +1,12 @@
+package com.rongwei.bscommon.sys.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.rongwei.bscommon.sys.dao.MaterialOutboundDetailsDao;
+import com.rongwei.bscommon.sys.service.MaterialOutboundDetailsService;
+import com.rongwei.bsentity.domain.MaterialOutboundDetailsDo;
+import org.springframework.stereotype.Service;
+
+@Service
+public class MaterialOutboundDetailsServiceImpl extends ServiceImpl<MaterialOutboundDetailsDao, MaterialOutboundDetailsDo>
+        implements MaterialOutboundDetailsService {
+}

+ 12 - 0
qhse-common/src/main/java/com/rongwei/bscommon/sys/service/impl/MaterialOutboundRecordServiceImpl.java

@@ -0,0 +1,12 @@
+package com.rongwei.bscommon.sys.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.rongwei.bscommon.sys.dao.MaterialOutboundRecordDao;
+import com.rongwei.bscommon.sys.service.MaterialOutboundRecordService;
+import com.rongwei.bsentity.domain.MaterialOutboundRecordDo;
+import org.springframework.stereotype.Service;
+
+@Service
+public class MaterialOutboundRecordServiceImpl extends ServiceImpl<MaterialOutboundRecordDao, MaterialOutboundRecordDo>
+        implements MaterialOutboundRecordService {
+}

+ 120 - 0
qhse-common/src/main/java/com/rongwei/bscommon/sys/service/impl/MaterialOutboundServiceImpl.java

@@ -0,0 +1,120 @@
+package com.rongwei.bscommon.sys.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.rongwei.bscommon.sys.dao.MaterialOutboundDao;
+import com.rongwei.bscommon.sys.service.MaterialOutboundDetailsRecordService;
+import com.rongwei.bscommon.sys.service.MaterialOutboundDetailsService;
+import com.rongwei.bscommon.sys.service.MaterialOutboundRecordService;
+import com.rongwei.bscommon.sys.service.MaterialOutboundService;
+import com.rongwei.bscommon.sys.utils.QHSEUtils;
+import com.rongwei.bsentity.domain.MaterialOutboundDetailsDo;
+import com.rongwei.bsentity.domain.MaterialOutboundDetailsRecordDo;
+import com.rongwei.bsentity.domain.MaterialOutboundDo;
+import com.rongwei.bsentity.domain.MaterialOutboundRecordDo;
+import com.rongwei.rwadmincommon.system.vo.SysUserVo;
+import com.rongwei.rwcommon.utils.SecurityUtil;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+@Service
+public class MaterialOutboundServiceImpl extends ServiceImpl<MaterialOutboundDao, MaterialOutboundDo>
+        implements MaterialOutboundService {
+
+    @Autowired
+    private MaterialOutboundRecordService materialOutboundRecordService;
+    @Autowired
+    private MaterialOutboundDetailsService materialOutboundDetailsService;
+    @Autowired
+    private MaterialOutboundDetailsRecordService materialOutboundDetailsRecordService;
+
+    /**
+     * 生成历史记录
+     *
+     * @param materialOutboundDo 物资出厂参数
+     * @return 结果
+     */
+    @Override
+    public boolean produceHistory(MaterialOutboundDo materialOutboundDo) {
+        // 获取当前用户信息
+        SysUserVo currentUser = QHSEUtils.getCurrentUser();
+
+        // 获取当前物资出厂信息
+        MaterialOutboundDo currentDo = lambdaQuery().eq(MaterialOutboundDo::getId, materialOutboundDo.getId())
+                .eq(MaterialOutboundDo::getDeleted, "0").one();
+
+        // 生成物资出厂记录对象
+        MaterialOutboundRecordDo historyDo = createMaterialOutboundRecordDo(currentDo, currentUser);
+        materialOutboundRecordService.save(historyDo);
+
+        // 获取当前物资明细列表
+        List<MaterialOutboundDetailsDo> currentDetailsList = materialOutboundDetailsService.lambdaQuery()
+                .eq(MaterialOutboundDetailsDo::getDeleted, "0")
+                .eq(MaterialOutboundDetailsDo::getOutboundId, currentDo.getId())
+                .list();
+        // 创建物资出厂明细记录对象列表
+        List<MaterialOutboundDetailsRecordDo> historyDetailsList =
+                createMaterialOutboundDetailsRecordDo(currentUser, currentDetailsList, historyDo);
+        // 保存物资出厂明细记录对象列表
+        materialOutboundDetailsRecordService.saveBatch(historyDetailsList);
+
+        return true;
+    }
+
+    /**
+     * 创建物资出厂明细记录对象列表
+     *
+     * @param currentUser        当前用户信息
+     * @param currentDetailsList 当前物资出厂明细列表
+     * @param historyDo          物资出厂记录历史对象
+     * @return 物资出厂明细记录对象列表
+     */
+    private List<MaterialOutboundDetailsRecordDo> createMaterialOutboundDetailsRecordDo(
+            SysUserVo currentUser,
+            List<MaterialOutboundDetailsDo> currentDetailsList,
+            MaterialOutboundRecordDo historyDo) {
+
+        List<MaterialOutboundDetailsRecordDo> historyDetailsList = new ArrayList<>();
+        currentDetailsList.forEach(item -> {
+            MaterialOutboundDetailsRecordDo historyDetailsDo = new MaterialOutboundDetailsRecordDo();
+            BeanUtils.copyProperties(item, historyDetailsDo);
+            historyDetailsDo.setId(SecurityUtil.getUUID());
+            historyDetailsDo.setOutboundId(historyDo.getId());
+            historyDetailsDo.setCreatedate(new Date());
+            historyDetailsDo.setCreateuserid(currentUser.getId());
+            historyDetailsDo.setCreateusername(currentUser.getName());
+            historyDetailsDo.setModifydate(new Date());
+            historyDetailsDo.setModifyuserid(currentUser.getId());
+            historyDetailsDo.setModifyusername(currentUser.getName());
+            historyDetailsList.add(historyDetailsDo);
+        });
+
+        return historyDetailsList;
+    }
+
+    /**
+     * 创建物资出厂记录对象
+     *
+     * @param currentDo   当前物资出厂对象,用于复制基础属性
+     * @param currentUser 当前操作用户信息,用于设置创建和修改用户信息
+     * @return 物资出厂记录对象,包含历史记录所需的所有信息
+     */
+    private MaterialOutboundRecordDo createMaterialOutboundRecordDo(MaterialOutboundDo currentDo,
+                                                                    SysUserVo currentUser) {
+        MaterialOutboundRecordDo historyDo = new MaterialOutboundRecordDo();
+        BeanUtils.copyProperties(currentDo, historyDo);
+        historyDo.setId(SecurityUtil.getUUID());
+        historyDo.setOriginalId(currentDo.getId());
+        historyDo.setCreatedate(new Date());
+        historyDo.setCreateuserid(currentUser.getId());
+        historyDo.setCreateusername(currentUser.getName());
+        historyDo.setModifydate(new Date());
+        historyDo.setModifyuserid(currentUser.getId());
+        historyDo.setModifyusername(currentUser.getName());
+        return historyDo;
+    }
+}

+ 59 - 0
qhse-entity/src/main/java/com/rongwei/bsentity/domain/MaterialOutboundDetailsDo.java

@@ -0,0 +1,59 @@
+package com.rongwei.bsentity.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.rongwei.rwcommon.base.BaseDo;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 物资出厂明细表
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@TableName(value = "qhse_material_outbound_details")
+public class MaterialOutboundDetailsDo extends BaseDo {
+
+    /**
+     * 主键ID
+     */
+    @TableId(value = "ID")
+    private String id;
+
+    /**
+     * 对应的物资出厂ID
+     */
+    @TableField(value = "OUTBOUNDID")
+    private String outboundId;
+
+    /**
+     * 物品名称
+     */
+    @TableField(value = "ITEMNAME")
+    private String itemName;
+
+    /**
+     * 数量
+     */
+    @TableField(value = "QUANTITY")
+    private Integer quantity;
+
+    /**
+     * 租户ID
+     */
+    @TableField(value = "TENANTID")
+    private String tenantId;
+
+    /**
+     * 扩展json格式配置
+     */
+    @TableField(value = "ROPTION")
+    private String roption;
+
+    /**
+     * 单位
+     */
+    @TableField(value = "ITEMDW")
+    private String itemDw;
+}

+ 59 - 0
qhse-entity/src/main/java/com/rongwei/bsentity/domain/MaterialOutboundDetailsRecordDo.java

@@ -0,0 +1,59 @@
+package com.rongwei.bsentity.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.rongwei.rwcommon.base.BaseDo;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 物资出厂明细记录表
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@TableName(value = "qhse_material_outbound_details_record")
+public class MaterialOutboundDetailsRecordDo extends BaseDo {
+
+    /**
+     * 主键ID
+     */
+    @TableId(value = "ID")
+    private String id;
+
+    /**
+     * 对应的物资出厂历史ID
+     */
+    @TableField(value = "OUTBOUNDID")
+    private String outboundId;
+
+    /**
+     * 物品名称
+     */
+    @TableField(value = "ITEMNAME")
+    private String itemName;
+
+    /**
+     * 数量
+     */
+    @TableField(value = "QUANTITY")
+    private Integer quantity;
+
+    /**
+     * 租户ID
+     */
+    @TableField(value = "TENANTID")
+    private String tenantId;
+
+    /**
+     * 扩展json格式配置
+     */
+    @TableField(value = "ROPTION")
+    private String roption;
+
+    /**
+     * 单位
+     */
+    @TableField(value = "ITEMDW")
+    private String itemDw;
+}

+ 271 - 0
qhse-entity/src/main/java/com/rongwei/bsentity/domain/MaterialOutboundDo.java

@@ -0,0 +1,271 @@
+package com.rongwei.bsentity.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.rongwei.rwcommon.base.BaseDo;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * 物资出厂管理表
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@TableName(value = "qhse_material_outbound")
+public class MaterialOutboundDo extends BaseDo {
+
+    /**
+     * 主键ID
+     */
+    @TableId(value = "ID")
+    private String id;
+
+    /**
+     * 申请人
+     */
+    @TableField(value = "APPLICANT")
+    private String applicant;
+
+    /**
+     * 申请人ID
+     */
+    @TableField(value = "APPLICANTID")
+    private String applicantId;
+
+    /**
+     * 申请部门
+     */
+    @TableField(value = "APPLYDEPARTMENT")
+    private String applyDepartment;
+
+    /**
+     * 申请部门ID
+     */
+    @TableField(value = "APPLYDEPARTMENTID")
+    private String applyDepartmentId;
+
+    /**
+     * 出厂事由
+     */
+    @TableField(value = "REASON")
+    private String reason;
+
+    /**
+     * 物资进出区域
+     */
+    @TableField(value = "MATERIALAREA")
+    private String materialArea;
+
+    /**
+     * 物资进出区域ID
+     */
+    @TableField(value = "MATERIALAREAID")
+    private String materialAreaId;
+
+    /**
+     * 出厂日期
+     */
+    @TableField(value = "OUTBOUNDDATE")
+    private Date outboundDate;
+
+    /**
+     * 车牌号
+     */
+    @TableField(value = "LICENSEPLATE")
+    private String licensePlate;
+
+    /**
+     * 司机姓名
+     */
+    @TableField(value = "DRIVERNAME")
+    private String driverName;
+
+    /**
+     * 身份证号码
+     */
+    @TableField(value = "CERTIFICATENUMBER")
+    private String certificateNumber;
+
+    /**
+     * 手机号
+     */
+    @TableField(value = "PHONENUMBER")
+    private String phoneNumber;
+
+    /**
+     * 携物单位
+     */
+    @TableField(value = "CARRYINGUNIT")
+    private String carryingUnit;
+
+    /**
+     * 携物人
+     */
+    @TableField(value = "CARRIER")
+    private String carrier;
+
+    /**
+     * 发货人
+     */
+    @TableField(value = "SHIPPER")
+    private String shipper;
+
+    /**
+     * 发货人电话
+     */
+    @TableField(value = "SHIPPERPHONE")
+    private String shipperPhone;
+
+    /**
+     * 发货地点
+     */
+    @TableField(value = "SHIPPINGLOCATION")
+    private String shippingLocation;
+
+    /**
+     * 收货人
+     */
+    @TableField(value = "RECEIVER")
+    private String receiver;
+
+    /**
+     * 收货人电话
+     */
+    @TableField(value = "RECEIVERPHONE")
+    private String receiverPhone;
+
+    /**
+     * 收货地点
+     */
+    @TableField(value = "RECEIVINGLOCATION")
+    private String receivingLocation;
+
+    /**
+     * 其他情况说明
+     */
+    @TableField(value = "OTHERINFORMATION")
+    private String otherInformation;
+
+    /**
+     * 驾驶员/携物人证件照
+     */
+    @TableField(value = "DRIVERLICENSEIMAGE")
+    private String driverLicenseImage;
+
+    /**
+     * 车牌号照片
+     */
+    @TableField(value = "LICENSEPLATEIMAGE")
+    private String licensePlateImage;
+
+    /**
+     * 多维度装车照片(如:车头、车尾、货物整体等照片的路径或URL,建议使用JSON数组存储)
+     */
+    @TableField(value = "LOADINGPHOTOS")
+    private String loadingPhotos;
+
+    /**
+     * 流程ID
+     */
+    @TableField(value = "PROCESSINSTID")
+    private String processInstId;
+
+    /**
+     * 审批状态
+     */
+    @TableField(value = "APPROVALSTATUS")
+    private String approvalStatus;
+
+    /**
+     * 租户ID
+     */
+    @TableField(value = "TENANTID")
+    private String tenantId;
+
+    /**
+     * 扩展json格式配置
+     */
+    @TableField(value = "ROPTION")
+    private String roption;
+
+    /**
+     * 司机ID
+     */
+    @TableField(value = "DRIVERID")
+    private String driverId;
+
+    /**
+     * 物资附件
+     */
+    @TableField(value = "MATERIALATTACHMENT")
+    private String materialAttachment;
+
+    /**
+     * 处室领导ID
+     */
+    @TableField(value = "CSBMLDID")
+    private String csbmlDid;
+
+    /**
+     * 处室领导名称
+     */
+    @TableField(value = "CSBMLDNAME")
+    private String csbmlDName;
+
+    /**
+     * 申请部门领导ID
+     */
+    @TableField(value = "SQBMJLID")
+    private String sqbmjlId;
+
+    /**
+     * 申请部门领导名称
+     */
+    @TableField(value = "SQBMJLNAME")
+    private String sqbmjlName;
+
+    /**
+     * 流程状态
+     */
+    @TableField(value = "PROCESSINSTSTATUS")
+    private String processInstStatus;
+
+    /**
+     * 携物单位ID
+     */
+    @TableField(value = "CARRYINGUNITID")
+    private String carryingUnitId;
+
+    /**
+     * 检查拍照
+     */
+    @TableField(value = "CHECKPHOTOS")
+    private String checkPhotos;
+
+    /**
+     * 检查结果
+     */
+    @TableField(value = "CHECKRESULT")
+    private String checkResult;
+
+    /**
+     * 问题说明
+     */
+    @TableField(value = "PROBLEMDESCRIPTION")
+    private String problemDescription;
+
+    /**
+     * 异常拍照
+     */
+    @TableField(value = "EXCEPTIONPHOTOS")
+    private String exceptionPhotos;
+
+    /**
+     * 驾驶员电子签名(存储签名图片路径或URL)
+     */
+    @TableField(value = "DRIVERSIGNATURE")
+    private String driverSignature;
+}

+ 277 - 0
qhse-entity/src/main/java/com/rongwei/bsentity/domain/MaterialOutboundRecordDo.java

@@ -0,0 +1,277 @@
+package com.rongwei.bsentity.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.rongwei.rwcommon.base.BaseDo;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * 物资出厂管理表
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@TableName(value = "qhse_material_outbound_record")
+public class MaterialOutboundRecordDo extends BaseDo {
+
+    /**
+     * 主键ID
+     */
+    @TableId(value = "ID")
+    private String id;
+
+    /**
+     * 原表ID
+     */
+    @TableField(value = "ORIGINALID")
+    private String originalId;
+
+    /**
+     * 申请人
+     */
+    @TableField(value = "APPLICANT")
+    private String applicant;
+
+    /**
+     * 申请人ID
+     */
+    @TableField(value = "APPLICANTID")
+    private String applicantId;
+
+    /**
+     * 申请部门
+     */
+    @TableField(value = "APPLYDEPARTMENT")
+    private String applyDepartment;
+
+    /**
+     * 申请部门ID
+     */
+    @TableField(value = "APPLYDEPARTMENTID")
+    private String applyDepartmentId;
+
+    /**
+     * 出厂事由
+     */
+    @TableField(value = "REASON")
+    private String reason;
+
+    /**
+     * 物资进出区域
+     */
+    @TableField(value = "MATERIALAREA")
+    private String materialArea;
+
+    /**
+     * 物资进出区域ID
+     */
+    @TableField(value = "MATERIALAREAID")
+    private String materialAreaId;
+
+    /**
+     * 出厂日期
+     */
+    @TableField(value = "OUTBOUNDDATE")
+    private Date outboundDate;
+
+    /**
+     * 车牌号
+     */
+    @TableField(value = "LICENSEPLATE")
+    private String licensePlate;
+
+    /**
+     * 司机姓名
+     */
+    @TableField(value = "DRIVERNAME")
+    private String driverName;
+
+    /**
+     * 身份证号码
+     */
+    @TableField(value = "CERTIFICATENUMBER")
+    private String certificateNumber;
+
+    /**
+     * 手机号
+     */
+    @TableField(value = "PHONENUMBER")
+    private String phoneNumber;
+
+    /**
+     * 携物单位
+     */
+    @TableField(value = "CARRYINGUNIT")
+    private String carryingUnit;
+
+    /**
+     * 携物人
+     */
+    @TableField(value = "CARRIER")
+    private String carrier;
+
+    /**
+     * 发货人
+     */
+    @TableField(value = "SHIPPER")
+    private String shipper;
+
+    /**
+     * 发货人电话
+     */
+    @TableField(value = "SHIPPERPHONE")
+    private String shipperPhone;
+
+    /**
+     * 发货地点
+     */
+    @TableField(value = "SHIPPINGLOCATION")
+    private String shippingLocation;
+
+    /**
+     * 收货人
+     */
+    @TableField(value = "RECEIVER")
+    private String receiver;
+
+    /**
+     * 收货人电话
+     */
+    @TableField(value = "RECEIVERPHONE")
+    private String receiverPhone;
+
+    /**
+     * 收货地点
+     */
+    @TableField(value = "RECEIVINGLOCATION")
+    private String receivingLocation;
+
+    /**
+     * 其他情况说明
+     */
+    @TableField(value = "OTHERINFORMATION")
+    private String otherInformation;
+
+    /**
+     * 驾驶员/携物人证件照
+     */
+    @TableField(value = "DRIVERLICENSEIMAGE")
+    private String driverLicenseImage;
+
+    /**
+     * 车牌号照片
+     */
+    @TableField(value = "LICENSEPLATEIMAGE")
+    private String licensePlateImage;
+
+    /**
+     * 多维度装车照片(如:车头、车尾、货物整体等照片的路径或URL,建议使用JSON数组存储)
+     */
+    @TableField(value = "LOADINGPHOTOS")
+    private String loadingPhotos;
+
+    /**
+     * 流程ID
+     */
+    @TableField(value = "PROCESSINSTID")
+    private String processInstId;
+
+    /**
+     * 审批状态
+     */
+    @TableField(value = "APPROVALSTATUS")
+    private String approvalStatus;
+
+    /**
+     * 租户ID
+     */
+    @TableField(value = "TENANTID")
+    private String tenantId;
+
+    /**
+     * 扩展json格式配置
+     */
+    @TableField(value = "ROPTION")
+    private String roption;
+
+    /**
+     * 司机ID
+     */
+    @TableField(value = "DRIVERID")
+    private String driverId;
+
+    /**
+     * 物资附件
+     */
+    @TableField(value = "MATERIALATTACHMENT")
+    private String materialAttachment;
+
+    /**
+     * 处室领导ID
+     */
+    @TableField(value = "CSBMLDID")
+    private String csbmlDid;
+
+    /**
+     * 处室领导名称
+     */
+    @TableField(value = "CSBMLDNAME")
+    private String csbmlDName;
+
+    /**
+     * 申请部门领导ID
+     */
+    @TableField(value = "SQBMJLID")
+    private String sqbmjlId;
+
+    /**
+     * 申请部门领导名称
+     */
+    @TableField(value = "SQBMJLNAME")
+    private String sqbmjlName;
+
+    /**
+     * 流程状态
+     */
+    @TableField(value = "PROCESSINSTSTATUS")
+    private String processInstStatus;
+
+    /**
+     * 携物单位ID
+     */
+    @TableField(value = "CARRYINGUNITID")
+    private String carryingUnitId;
+
+    /**
+     * 检查拍照
+     */
+    @TableField(value = "CHECKPHOTOS")
+    private String checkPhotos;
+
+    /**
+     * 检查结果
+     */
+    @TableField(value = "CHECKRESULT")
+    private String checkResult;
+
+    /**
+     * 问题说明
+     */
+    @TableField(value = "PROBLEMDESCRIPTION")
+    private String problemDescription;
+
+    /**
+     * 异常拍照
+     */
+    @TableField(value = "EXCEPTIONPHOTOS")
+    private String exceptionPhotos;
+
+    /**
+     * 驾驶员电子签名(存储签名图片路径或URL)
+     */
+    @TableField(value = "DRIVERSIGNATURE")
+    private String driverSignature;
+}

+ 41 - 0
qhse-server/src/main/java/com/rongwei/controller/MaterialOutboundController.java

@@ -0,0 +1,41 @@
+package com.rongwei.controller;
+
+import com.rongwei.bscommon.sys.service.MaterialOutboundService;
+import com.rongwei.bsentity.domain.MaterialOutboundDo;
+import com.rongwei.rwcommon.base.R;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 物资出厂
+ */
+@RestController
+@RequestMapping("/material/outbound")
+@Slf4j
+public class MaterialOutboundController {
+
+    @Autowired
+    private MaterialOutboundService materialOutboundService;
+
+    /**
+     * 生成历史记录
+     *
+     * @param materialOutboundDo 物资出厂参数
+     * @return 结果
+     */
+    @PostMapping("/produce/history")
+    public R produceHistory(@RequestBody MaterialOutboundDo materialOutboundDo) {
+        log.info("开始同步出厂历史");
+        if (StringUtils.isBlank(materialOutboundDo.getId())) {
+            log.error("请选择要生成历史记录的物资出厂!");
+            return R.error("请选择要生成历史记录的物资出厂!");
+        }
+        return materialOutboundService.produceHistory(materialOutboundDo) ? R.ok() : R.error("生成历史记录失败!");
+    }
+
+}