diff --git a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/domain/Mjy.java b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/domain/Mjy.java index a259ff0..66e6bd2 100644 --- a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/domain/Mjy.java +++ b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/domain/Mjy.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.FieldStrategy; import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonFormat; import com.baomidou.mybatisplus.annotation.TableName; +import com.hxhq.common.core.annotation.Excel; import com.hxhq.common.core.domain.MpBaseEntity; @@ -21,24 +22,30 @@ public class Mjy extends MpBaseEntity private static final long serialVersionUID = 1L; /** 名称 */ + @Excel(name = "名称") private String mc; /** 编号 */ private String bh; /** 浓度 */ + @Excel(name = "浓度") private String nd; /** 浓度单位 */ + @Excel(name = "浓度单位") private String nddw; /** 库存 */ + @Excel(name = "库存") private String kc; /** 库存单位 */ + @Excel(name = "库存单位") private String kcdw; /** 失效日期 */ + @Excel(name = "失效日期") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date sxrq; @@ -62,9 +69,11 @@ public class Mjy extends MpBaseEntity private Long zcgId; /** 存储条件 */ + @Excel(name = "存储条件") private String cctj; /** 存储位置 */ + @Excel(name = "存储位置") private String ccwz; /** 表单id */ diff --git a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/domain/MjyFfjl.java b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/domain/MjyFfjl.java index 1b90e79..bcf3a11 100644 --- a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/domain/MjyFfjl.java +++ b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/domain/MjyFfjl.java @@ -48,9 +48,6 @@ public class MjyFfjl extends MpBaseEntity @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date sxrq; - /** 保存条件 */ - private String bctj; - /** 出库量 */ private String ckl; @@ -97,6 +94,9 @@ public class MjyFfjl extends MpBaseEntity /** 发放备注 */ private String ffbz; + /** 项目id */ + private Long xmId; + /** 归还转移条件 */ private String ghzytj; @@ -140,6 +140,14 @@ public class MjyFfjl extends MpBaseEntity /** 归档申请人id */ private Long gdsqrId; + public Long getXmId() { + return xmId; + } + + public void setXmId(Long xmId) { + this.xmId = xmId; + } + public String getLqr1Mc() { return lqr1Mc; } @@ -334,15 +342,6 @@ public class MjyFfjl extends MpBaseEntity this.sxrq = sxrq; } - public void setBctj(String bctj) - { - this.bctj = bctj; - } - - public String getBctj() - { - return bctj; - } public void setCkl(String ckl) { diff --git a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/enums/zykgl/JcmcysEnum.java b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/enums/zykgl/JcmcysEnum.java index 1bf04c7..e2e08cd 100644 --- a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/enums/zykgl/JcmcysEnum.java +++ b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/enums/zykgl/JcmcysEnum.java @@ -9,22 +9,22 @@ public enum JcmcysEnum { /** * 蓝色 */ - wsd(1, "蓝色"), + blue(1, "蓝色"), /** * 红色 */ - ysd(3, "红色"), + red(3, "红色"), /** * 绿色 */ - dgd(5, "绿色"), + green(5, "绿色"), /** * 橙色 */ - gd(7, "橙色"); + orange(7, "橙色"); private int value; private String text; diff --git a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/form/mjy/MjyBjForm.java b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/form/mjy/MjyBjForm.java index e4346d7..4865eaf 100644 --- a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/form/mjy/MjyBjForm.java +++ b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/form/mjy/MjyBjForm.java @@ -1,6 +1,7 @@ package com.hxhq.business.form.mjy; import com.fasterxml.jackson.annotation.JsonFormat; +import com.hxhq.common.core.annotation.Excel; import java.util.Date; @@ -13,29 +14,37 @@ public class MjyBjForm { private Long id; /** 名称编辑 */ - private String mcbj; + @Excel(name = "名称") + private String mc; /** 浓度编辑 */ - private String ndbj; + @Excel(name = "浓度") + private String nd; /** 浓度单位编辑 */ - private String nddwbj; + @Excel(name = "浓度单位") + private String nddw; /** 库存编辑 */ - private String kcbj; + @Excel(name = "库存") + private String kc; /** 库存单位编辑 */ - private String kcdwbj; + @Excel(name = "库存单位") + private String kcdw; /** 失效日期编辑 */ + @Excel(name = "失效日期") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date sxrqbj; + private Date sxrq; /** 存储条件编辑 */ - private String cctjbj; + @Excel(name = "存储条件") + private String cctj; /** 存储位置编辑 */ - private String ccwzbj; + @Excel(name = "存储位置") + private String ccwz; /** 编辑备注 */ private String bjbz; @@ -49,14 +58,6 @@ public class MjyBjForm { /** 项目id */ private Long xmId; - public Long getXmId() { - return xmId; - } - - public void setXmId(Long xmId) { - this.xmId = xmId; - } - public Long getId() { return id; } @@ -65,68 +66,68 @@ public class MjyBjForm { this.id = id; } - public String getMcbj() { - return mcbj; + public String getMc() { + return mc; } - public void setMcbj(String mcbj) { - this.mcbj = mcbj; + public void setMc(String mc) { + this.mc = mc; } - public String getNdbj() { - return ndbj; + public String getNd() { + return nd; } - public void setNdbj(String ndbj) { - this.ndbj = ndbj; + public void setNd(String nd) { + this.nd = nd; } - public String getNddwbj() { - return nddwbj; + public String getNddw() { + return nddw; } - public void setNddwbj(String nddwbj) { - this.nddwbj = nddwbj; + public void setNddw(String nddw) { + this.nddw = nddw; } - public String getKcbj() { - return kcbj; + public String getKc() { + return kc; } - public void setKcbj(String kcbj) { - this.kcbj = kcbj; + public void setKc(String kc) { + this.kc = kc; } - public String getKcdwbj() { - return kcdwbj; + public String getKcdw() { + return kcdw; } - public void setKcdwbj(String kcdwbj) { - this.kcdwbj = kcdwbj; + public void setKcdw(String kcdw) { + this.kcdw = kcdw; } - public Date getSxrqbj() { - return sxrqbj; + public Date getSxrq() { + return sxrq; } - public void setSxrqbj(Date sxrqbj) { - this.sxrqbj = sxrqbj; + public void setSxrq(Date sxrq) { + this.sxrq = sxrq; } - public String getCctjbj() { - return cctjbj; + public String getCctj() { + return cctj; } - public void setCctjbj(String cctjbj) { - this.cctjbj = cctjbj; + public void setCctj(String cctj) { + this.cctj = cctj; } - public String getCcwzbj() { - return ccwzbj; + public String getCcwz() { + return ccwz; } - public void setCcwzbj(String ccwzbj) { - this.ccwzbj = ccwzbj; + public void setCcwz(String ccwz) { + this.ccwz = ccwz; } public String getBjbz() { @@ -153,5 +154,11 @@ public class MjyBjForm { this.qmrmm = qmrmm; } + public Long getXmId() { + return xmId; + } + public void setXmId(Long xmId) { + this.xmId = xmId; + } } diff --git a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/form/mjy/MjyShbjForm.java b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/form/mjy/MjyShbjForm.java index ce62f4c..0a239cc 100644 --- a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/form/mjy/MjyShbjForm.java +++ b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/form/mjy/MjyShbjForm.java @@ -12,25 +12,6 @@ public class MjyShbjForm { /** 麻精药id */ private Long id; - /** 名称编辑 */ - private String mcbj; - - /** 浓度编辑 */ - private String ndbj; - - /** 浓度单位编辑 */ - private String nddwbj; - - /** 失效日期编辑 */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date sxrqbj; - - /** 存储条件编辑 */ - private String cctjbj; - - /** 存储位置编辑 */ - private String ccwzbj; - /** 备注 */ private String remark; @@ -43,14 +24,6 @@ public class MjyShbjForm { /** 签名意义 */ private String qmyy; - public String getQmyy() { - return qmyy; - } - - public void setQmyy(String qmyy) { - this.qmyy = qmyy; - } - public Long getId() { return id; } @@ -59,54 +32,6 @@ public class MjyShbjForm { this.id = id; } - public String getMcbj() { - return mcbj; - } - - public void setMcbj(String mcbj) { - this.mcbj = mcbj; - } - - public String getNdbj() { - return ndbj; - } - - public void setNdbj(String ndbj) { - this.ndbj = ndbj; - } - - public String getNddwbj() { - return nddwbj; - } - - public void setNddwbj(String nddwbj) { - this.nddwbj = nddwbj; - } - - public Date getSxrqbj() { - return sxrqbj; - } - - public void setSxrqbj(Date sxrqbj) { - this.sxrqbj = sxrqbj; - } - - public String getCctjbj() { - return cctjbj; - } - - public void setCctjbj(String cctjbj) { - this.cctjbj = cctjbj; - } - - public String getCcwzbj() { - return ccwzbj; - } - - public void setCcwzbj(String ccwzbj) { - this.ccwzbj = ccwzbj; - } - public String getRemark() { return remark; } @@ -130,4 +55,12 @@ public class MjyShbjForm { public void setQmrmm(String qmrmm) { this.qmrmm = qmrmm; } + + public String getQmyy() { + return qmyy; + } + + public void setQmyy(String qmyy) { + this.qmyy = qmyy; + } } diff --git a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/form/mjy/MjyShxgkcForm.java b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/form/mjy/MjyShxgkcForm.java index c30f603..abd9dca 100644 --- a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/form/mjy/MjyShxgkcForm.java +++ b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/form/mjy/MjyShxgkcForm.java @@ -9,17 +9,11 @@ public class MjyShxgkcForm { private Long id; /** 库存编辑 */ - private String kcbj; - - /** 库存 */ private String kc; /** 库存单位 */ private String kcdw; - /** 库存单位编辑 */ - private String kcdwbj; - /** 备注 */ private String remark; @@ -48,13 +42,6 @@ public class MjyShxgkcForm { this.id = id; } - public String getKcbj() { - return kcbj; - } - - public void setKcbj(String kcbj) { - this.kcbj = kcbj; - } public String getKc() { return kc; @@ -72,13 +59,6 @@ public class MjyShxgkcForm { this.kcdw = kcdw; } - public String getKcdwbj() { - return kcdwbj; - } - - public void setKcdwbj(String kcdwbj) { - this.kcdwbj = kcdwbj; - } public String getRemark() { return remark; diff --git a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/form/mjy/MjyXgkcForm.java b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/form/mjy/MjyXgkcForm.java index 32b8733..3a5ad72 100644 --- a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/form/mjy/MjyXgkcForm.java +++ b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/form/mjy/MjyXgkcForm.java @@ -1,5 +1,7 @@ package com.hxhq.business.form.mjy; +import com.hxhq.common.core.annotation.Excel; + /** * @author 15881 */ @@ -8,11 +10,13 @@ public class MjyXgkcForm { /** 麻精药id */ private Long id; - /** 库存编辑 */ - private String kcbj;; + /** 库存 */ + @Excel(name = "库存") + private String kc;; - /** 库存单位编辑 */ - private String kcdwbj; + /** 库存单位 */ + @Excel(name = "库存单位") + private String kcdw; /** 库存编辑备注 */ private String kcbjbz; @@ -23,41 +27,38 @@ public class MjyXgkcForm { /** 签名人密码 */ private String qmrmm; - - - public String getKcbjbz() { - return kcbjbz; + public Long getId() { + return id; } - public void setKcbjbz(String kcbjbz) { - this.kcbjbz = kcbjbz; + public void setId(Long id) { + this.id = id; } - public String getKcbj() { - return kcbj; + public String getKc() { + return kc; } - public void setKcbj(String kcbj) { - this.kcbj = kcbj; + public void setKc(String kc) { + this.kc = kc; } - public String getKcdwbj() { - return kcdwbj; + public String getKcdw() { + return kcdw; } - public void setKcdwbj(String kcdwbj) { - this.kcdwbj = kcdwbj; + public void setKcdw(String kcdw) { + this.kcdw = kcdw; } - public Long getId() { - return id; + public String getKcbjbz() { + return kcbjbz; } - public void setId(Long id) { - this.id = id; + public void setKcbjbz(String kcbjbz) { + this.kcbjbz = kcbjbz; } - public Long getQmrId() { return qmrId; } diff --git a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/impl/MjyServiceImpl.java b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/impl/MjyServiceImpl.java index 597ca3e..1658ccc 100644 --- a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/impl/MjyServiceImpl.java +++ b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/impl/MjyServiceImpl.java @@ -4,6 +4,7 @@ import java.math.BigDecimal; import java.util.*; import java.util.stream.Collectors; +import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.hxhq.business.domain.*; @@ -12,10 +13,13 @@ import com.hxhq.business.dto.mjy.MjyListDto; import com.hxhq.business.enums.zykgl.*; import com.hxhq.business.form.mjy.*; import com.hxhq.business.service.*; +import com.hxhq.business.utils.ObjectCompareUtil; import com.hxhq.common.core.utils.StringUtils; import com.hxhq.common.security.utils.SecurityUtils; import com.hxhq.system.api.domain.SysUser; import com.hxhq.system.service.ISysUserService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.hxhq.business.mapper.MjyMapper; @@ -32,6 +36,7 @@ import org.springframework.web.bind.annotation.RequestBody; */ @Service public class MjyServiceImpl extends ServiceImpl implements IMjyService { + protected final Logger logger = LoggerFactory.getLogger(this.getClass()); @Autowired private ISysUserService sysUserService; @Autowired @@ -118,7 +123,7 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS String jcnr = "备注:" + form.getRemark() + ";签名意义:申请解档" + ";签名人:" + qmr.getNickName(); - mjyJcgjService.saveJcgj(mjyOld.getId(), JcgjlxEnum.lc.getValue(), "申请解档", JcmcysEnum.wsd.getValue(), jcnr, SecurityUtils.getUserId(), SecurityUtils.getLoginUser().getSysUser().getNickName()); + mjyJcgjService.saveJcgj(mjyOld.getId(), JcgjlxEnum.lc.getValue(), "申请解档", JcmcysEnum.green.getValue(), jcnr, SecurityUtils.getUserId(), SecurityUtils.getLoginUser().getSysUser().getNickName()); } /** @@ -153,7 +158,7 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS mjyJcgj.setMjyId(mjy.getId()); mjyJcgj.setJcgjlx(JcgjlxEnum.lc.getValue()); mjyJcgj.setJcmc("申请归档"); - mjyJcgj.setJcmcys(JcmcysEnum.wsd.getValue()); + mjyJcgj.setJcmcys(JcmcysEnum.green.getValue()); String jcnr = "备注:" + form.getRemark() + ";签名意义:申请归档" + ";签名人:" + qmr.getNickName(); @@ -196,7 +201,7 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS String jcnr = "备注:" + form.getRemark() + ";签名意义:申请归档" + ";签名人:" + qmr.getNickName(); - mjyJcgjService.saveJcgj(mjyOld.getId(), JcgjlxEnum.lc.getValue(), "申请归档", JcmcysEnum.wsd.getValue(), jcnr, SecurityUtils.getUserId(), SecurityUtils.getLoginUser().getSysUser().getNickName()); + mjyJcgjService.saveJcgj(mjyOld.getId(), JcgjlxEnum.lc.getValue(), "申请归档", JcmcysEnum.green.getValue(), jcnr, SecurityUtils.getUserId(), SecurityUtils.getLoginUser().getSysUser().getNickName()); } @@ -230,7 +235,7 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS mjyJcgj.setMjyId(mjy.getId()); mjyJcgj.setJcgjlx(JcgjlxEnum.lc.getValue()); mjyJcgj.setJcmc("锁定麻精药"); - mjyJcgj.setJcmcys(JcmcysEnum.wsd.getValue()); + mjyJcgj.setJcmcys(JcmcysEnum.green.getValue()); String jcnr = "备注:" + form.getRemark() + ";签名意义:锁定麻精药" + ";签名人:" + qmr.getNickName(); @@ -272,7 +277,7 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS String jcnr = "备注:" + form.getRemark() + ";签名意义:锁定麻精药" + ";签名人:" + qmr.getNickName(); - mjyJcgjService.saveJcgj(mjyOld.getId(), JcgjlxEnum.lc.getValue(), "锁定麻精药", JcmcysEnum.wsd.getValue(), jcnr, SecurityUtils.getUserId(), SecurityUtils.getLoginUser().getSysUser().getNickName()); + mjyJcgjService.saveJcgj(mjyOld.getId(), JcgjlxEnum.lc.getValue(), "锁定麻精药", JcmcysEnum.green.getValue(), jcnr, SecurityUtils.getUserId(), SecurityUtils.getLoginUser().getSysUser().getNickName()); } @@ -303,7 +308,7 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS String jcnr = "备注:" + form.getRemark() + ";签名意义:解锁麻精药" + ";签名人:" + qmr.getNickName(); - mjyJcgjService.saveJcgj(mjyOld.getId(), JcgjlxEnum.lc.getValue(), "解锁麻精药", JcmcysEnum.wsd.getValue(), jcnr, SecurityUtils.getUserId(), SecurityUtils.getLoginUser().getSysUser().getNickName()); + mjyJcgjService.saveJcgj(mjyOld.getId(), JcgjlxEnum.lc.getValue(), "解锁麻精药", JcmcysEnum.green.getValue(), jcnr, SecurityUtils.getUserId(), SecurityUtils.getLoginUser().getSysUser().getNickName()); } /** @@ -377,7 +382,7 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS mjyJcgj.setMjyId(mjy.getId()); mjyJcgj.setJcgjlx(JcgjlxEnum.lc.getValue()); mjyJcgj.setJcmc("处置药剂"); - mjyJcgj.setJcmcys(JcmcysEnum.wsd.getValue()); + mjyJcgj.setJcmcys(JcmcysEnum.green.getValue()); String jcnr = "处置方式:" + mjyPlffItemFilter.get(0).getCzfs() + ";处置原因:" + mjyPlffItemFilter.get(0).getCzyy() + ";处置量:" + mjyPlffItemFilter.get(0).getCzl() + mjy.getKcdw() @@ -472,7 +477,7 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS + ";处置人:" + clr.getNickName() + ";复核人:" + fhr.getNickName() + ";监督人:" + jdr.getNickName(); - mjyJcgjService.saveJcgj(mjyOld.getId(), JcgjlxEnum.lc.getValue(), "处置药剂", JcmcysEnum.wsd.getValue(), jcnr, SecurityUtils.getUserId(), SecurityUtils.getLoginUser().getSysUser().getNickName()); + mjyJcgjService.saveJcgj(mjyOld.getId(), JcgjlxEnum.lc.getValue(), "处置药剂", JcmcysEnum.green.getValue(), jcnr, SecurityUtils.getUserId(), SecurityUtils.getLoginUser().getSysUser().getNickName()); //endregion //region 台账 @@ -531,7 +536,7 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS mjyJcgj.setMjyId(mjy.getId()); mjyJcgj.setJcgjlx(JcgjlxEnum.lc.getValue()); mjyJcgj.setJcmc("处置容器"); - mjyJcgj.setJcmcys(JcmcysEnum.wsd.getValue()); + mjyJcgj.setJcmcys(JcmcysEnum.green.getValue()); String jcnr = "处置方式:" + mjyPlffItemFilter.get(0).getCzfs() + ";处置原因:" + mjyPlffItemFilter.get(0).getCzyy() + ";处置人:" + clr.getNickName() @@ -604,7 +609,7 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS + ";处置人:" + clr.getNickName() + ";复核人:" + fhr.getNickName() + ";监督人:" + jdr.getNickName(); - mjyJcgjService.saveJcgj(mjyOld.getId(), JcgjlxEnum.lc.getValue(), "处置容器", JcmcysEnum.wsd.getValue(), jcnr, SecurityUtils.getUserId(), SecurityUtils.getLoginUser().getSysUser().getNickName()); + mjyJcgjService.saveJcgj(mjyOld.getId(), JcgjlxEnum.lc.getValue(), "处置容器", JcmcysEnum.green.getValue(), jcnr, SecurityUtils.getUserId(), SecurityUtils.getLoginUser().getSysUser().getNickName()); //endregion //region 台账 @@ -672,7 +677,7 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS mjyJcgj.setMjyId(mjy.getId()); mjyJcgj.setJcgjlx(JcgjlxEnum.lc.getValue()); mjyJcgj.setJcmc("钥匙发放"); - mjyJcgj.setJcmcys(JcmcysEnum.wsd.getValue()); + mjyJcgj.setJcmcys(JcmcysEnum.green.getValue()); String jcnr = "备注:" + form.getRemark() + ";签名意义:钥匙发放" + ";钥匙1领取人:" + lqr1.getNickName() @@ -745,10 +750,10 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS mjyFfjl.setCctj(mjyOld.getCctj()); mjyFfjl.setCcwz(mjyOld.getCcwz()); mjyFfjl.setSxrq(mjyOld.getSxrq()); + mjyFfjl.setCctj(mjyOld.getCctj()); mjyFfjl.setCkl(mjyOld.getKc()); mjyFfjl.setCkldw(mjyOld.getKcdw()); - mjyFfjl.setFfzytj(form.getZytj()); mjyFfjl.setCkmz(form.getCkmz()); mjyFfjl.setCkmzdw(form.getCkmzdw()); mjyFfjl.setLqr1Id(lqr1.getUserId()); @@ -759,9 +764,11 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS mjyFfjl.setLqr2Mc(lqr2.getNickName()); mjyFfjl.setFfr1Mc(ffr1.getNickName()); mjyFfjl.setFfr2Mc(ffr2.getNickName()); - + mjyFfjl.setFfzytj(form.getZytj()); mjyFfjl.setFfrq(now); mjyFfjl.setFfbz(form.getRemark()); + mjyFfjl.setXmId(form.getXmId()); + mjyFfjlService.save(mjyFfjl); @@ -773,7 +780,7 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS + ";出库毛重:" + form.getCkmz() + mjyOld.getKcdw() + ";目的:" + form.getXmId() + ";备注:" + form.getRemark(); - mjyJcgjService.saveJcgj(mjyOld.getId(), JcgjlxEnum.lc.getValue(), "领取发放", JcmcysEnum.wsd.getValue(), jcnr, + mjyJcgjService.saveJcgj(mjyOld.getId(), JcgjlxEnum.lc.getValue(), "领取发放", JcmcysEnum.green.getValue(), jcnr, SecurityUtils.getUserId(), SecurityUtils.getLoginUser().getSysUser().getNickName()); //endregion @@ -783,7 +790,7 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS "领取发放", mjyOld.getKc(), mjyOld.getKcdw(), form.getRemark()); //endregion - + //region 更新发放信息 mjyOld.setCkl(mjyOld.getKc()); mjyOld.setCkldw(mjyOld.getKcdw()); @@ -799,7 +806,6 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS mjyOld.setFfr1Mc(ffr1.getNickName()); mjyOld.setFfr2Mc(ffr2.getNickName()); mjyOld.setFfr2Mc(ffr2.getNickName()); - mjyOld.setKc("0"); mjyOld.setFfrq(now); mjyOld.setFfbz(form.getRemark()); mjyOld.setFfxmId(form.getXmId()); @@ -852,7 +858,7 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS if (mjyList.size() <= 0) { throw new SecurityException("麻精药不是入库状态,不能发放"); } - Date now=new Date(); + Date now = new Date(); for (Mjy mjy : mjyList) { //验证库存 BigDecimal kc = new BigDecimal(mjy.getKc()); @@ -878,7 +884,6 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS mjyFfjl.setCkl(mjy.getKc()); mjyFfjl.setCkldw(mjy.getKcdw()); - mjyFfjl.setFfzytj(mjyPlffItemFilter.get(0).getZytj()); mjyFfjl.setCkmz(mjyPlffItemFilter.get(0).getCkmz()); mjyFfjl.setCkmzdw(mjyPlffItemFilter.get(0).getCkmzdw()); mjyFfjl.setLqr1Id(lqr1.getUserId()); @@ -889,9 +894,10 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS mjyFfjl.setLqr2Mc(lqr2.getNickName()); mjyFfjl.setFfr1Mc(ffr1.getNickName()); mjyFfjl.setFfr2Mc(ffr2.getNickName()); - + mjyFfjl.setFfzytj(mjyPlffItemFilter.get(0).getZytj()); mjyFfjl.setFfrq(now); mjyFfjl.setFfbz(mjyPlffItemFilter.get(0).getRemark()); + mjyFfjl.setXmId(mjyPlffItemFilter.get(0).getXmId()); mjyFfjlList.add(mjyFfjl); //endregion @@ -901,7 +907,7 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS mjyJcgj.setMjyId(mjy.getId()); mjyJcgj.setJcgjlx(JcgjlxEnum.lc.getValue()); mjyJcgj.setJcmc("领取发放"); - mjyJcgj.setJcmcys(JcmcysEnum.wsd.getValue()); + mjyJcgj.setJcmcys(JcmcysEnum.green.getValue()); String jcnr = "出库量:" + mjy.getKc() + ";转移条件:" + mjyPlffItemFilter.get(0).getZytj() + ";出库毛重:" + mjyPlffItemFilter.get(0).getCkmz() + mjy.getKcdw() @@ -940,7 +946,6 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS mjy.setFfr1Mc(ffr1.getNickName()); mjy.setFfr2Mc(ffr2.getNickName()); mjy.setFfr2Mc(ffr2.getNickName()); - mjy.setKc("0"); mjy.setFfrq(now); mjy.setFfbz(mjyPlffItemFilter.get(0).getRemark()); mjy.setFfxmId(mjyPlffItemFilter.get(0).getXmId()); @@ -982,141 +987,34 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS } List mjyJcgjList = new ArrayList<>(); - //region 名称 - mjyOld.setMcbj(form.getMcbj()); - - if (!mjyOld.getMc().equals(form.getMcbj())) { - MjyJcgj mjyJcgj = new MjyJcgj(); - mjyJcgj.setMjyId(mjyOld.getId()); - mjyJcgj.setJcgjlx(JcgjlxEnum.lc.getValue()); - mjyJcgj.setJcmc("申请编辑"); - mjyJcgj.setJcmcys(JcmcysEnum.gd.getValue()); - String jcnr = "字段名:名称" - + ";原值:" + mjyOld.getMc() - + ";新值:" + form.getMcbj() - + ";备注:" + form.getBjbz(); - mjyJcgj.setJcnr(jcnr); - mjyJcgj.setQmrId(qmr.getUserId()); - mjyJcgj.setQmrMc(qmr.getNickName()); - mjyJcgjList.add(mjyJcgj); - } - //endregion - - //region 浓度 - mjyOld.setNdbj(form.getNdbj()); - - if (!mjyOld.getNd().equals(form.getNdbj())) { - MjyJcgj mjyJcgj = new MjyJcgj(); - mjyJcgj.setMjyId(mjyOld.getId()); - mjyJcgj.setJcgjlx(JcgjlxEnum.lc.getValue()); - mjyJcgj.setJcmc("申请编辑"); - mjyJcgj.setJcmcys(JcmcysEnum.gd.getValue()); - String jcnr = "字段名:浓度" - + ";原值:" + mjyOld.getNd() - + ";新值:" + form.getNdbj() - + ";备注:" + form.getBjbz(); - mjyJcgj.setJcnr(jcnr); - mjyJcgj.setQmrId(qmr.getUserId()); - mjyJcgj.setQmrMc(qmr.getNickName()); - mjyJcgjList.add(mjyJcgj); - - } - //endregion - - //region 浓度单位 - mjyOld.setNddwbj(form.getNddwbj()); - - if (!mjyOld.getNddw().equals(form.getNddwbj())) { - MjyJcgj mjyJcgj = new MjyJcgj(); - mjyJcgj.setMjyId(mjyOld.getId()); - mjyJcgj.setJcgjlx(JcgjlxEnum.lc.getValue()); - mjyJcgj.setJcmc("申请编辑"); - mjyJcgj.setJcmcys(JcmcysEnum.gd.getValue()); - String jcnr = "字段名:浓度单位" - + ";原值:" + mjyOld.getNddw() - + ";新值:" + form.getNddwbj() - + ";备注:" + form.getBjbz(); - mjyJcgj.setJcnr(jcnr); - mjyJcgj.setQmrId(qmr.getUserId()); - mjyJcgj.setQmrMc(qmr.getNickName()); - mjyJcgjList.add(mjyJcgj); - - } - //endregion - - //region 失效日期 - mjyOld.setSxrqbj(form.getSxrqbj()); - - if (!mjyOld.getSxrq().equals(form.getSxrqbj())) { - MjyJcgj mjyJcgj = new MjyJcgj(); - mjyJcgj.setMjyId(mjyOld.getId()); - mjyJcgj.setJcgjlx(JcgjlxEnum.lc.getValue()); - mjyJcgj.setJcmc("申请编辑"); - mjyJcgj.setJcmcys(JcmcysEnum.gd.getValue()); - String jcnr = "字段名:失效日期" - + ";原值:" + mjyOld.getSxrq() - + ";新值:" + form.getSxrqbj() - + ";备注:" + form.getBjbz(); - mjyJcgj.setJcnr(jcnr); - mjyJcgj.setQmrId(qmr.getUserId()); - mjyJcgj.setQmrMc(qmr.getNickName()); - mjyJcgjList.add(mjyJcgj); - - } - //endregion - - //region 存储条件 - mjyOld.setCctjbj(form.getCctjbj()); - - if (!mjyOld.getCctj().equals(form.getCctjbj())) { - MjyJcgj mjyJcgj = new MjyJcgj(); - mjyJcgj.setMjyId(mjyOld.getId()); - mjyJcgj.setJcgjlx(JcgjlxEnum.lc.getValue()); - mjyJcgj.setJcmc("申请编辑"); - mjyJcgj.setJcmcys(JcmcysEnum.gd.getValue()); - String jcnr = "字段名:存储条件" - + ";原值:" + mjyOld.getCctj() - + ";新值:" + form.getCctjbj() - + ";备注:" + form.getBjbz(); - mjyJcgj.setJcnr(jcnr); - mjyJcgj.setQmrId(qmr.getUserId()); - mjyJcgj.setQmrMc(qmr.getNickName()); - mjyJcgjList.add(mjyJcgj); - + List fieldChanges = ObjectCompareUtil.compareObjects(mjyOld, form); + if (fieldChanges.size() == 0) { + throw new SecurityException("你没有修改任何内容"); } - //endregion - - //region 存储位置 - mjyOld.setCcwzbj(form.getCcwzbj()); - - if (!mjyOld.getCcwz().equals(form.getCcwzbj())) { + for (ObjectCompareUtil.FieldChange fieldChange : fieldChanges) { MjyJcgj mjyJcgj = new MjyJcgj(); mjyJcgj.setMjyId(mjyOld.getId()); mjyJcgj.setJcgjlx(JcgjlxEnum.lc.getValue()); mjyJcgj.setJcmc("申请编辑"); - mjyJcgj.setJcmcys(JcmcysEnum.gd.getValue()); - String jcnr = "字段名:存储位置" - + ";原值:" + mjyOld.getCcwz() - + ";新值:" + form.getCcwzbj() - + ";备注:" + form.getBjbz(); - mjyJcgj.setJcnr(jcnr); + mjyJcgj.setJcmcys(JcmcysEnum.green.getValue()); + mjyJcgj.setJcnr(fieldChange.toString()); mjyJcgj.setQmrId(qmr.getUserId()); mjyJcgj.setQmrMc(qmr.getNickName()); mjyJcgjList.add(mjyJcgj); - mjyOld.setNdbj(form.getNdbj()); - - } - //endregion - if (mjyJcgjList.size() > 0) { - mjyOld.setBjbz(form.getBjbz()); - mjyOld.setBjrId(qmr.getUserId()); - mjyOld.setBjrMc(qmr.getNickName()); - mjyOld.setBjzt(BjEnum.shz.getValue()); - this.updateById(mjyOld); - mjyJcgjService.saveBatch(mjyJcgjList); - } else { - throw new SecurityException("你没有修改任何内容"); } + mjyOld.setMcbj(form.getMc()); + mjyOld.setNdbj(form.getNd()); + mjyOld.setNddwbj(form.getNddw()); + mjyOld.setSxrqbj(form.getSxrq()); + mjyOld.setCctjbj(form.getCctj()); + mjyOld.setCcwzbj(form.getCcwz()); + + mjyOld.setBjbz(form.getBjbz()); + mjyOld.setBjrId(qmr.getUserId()); + mjyOld.setBjrMc(qmr.getNickName()); + mjyOld.setBjzt(BjEnum.shz.getValue()); + this.updateById(mjyOld); + mjyJcgjService.saveBatch(mjyJcgjList); } /** @@ -1142,136 +1040,33 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS if (!(mjyOld.getZjzt().equals(ZjztEnum.rk.getValue()) || mjyOld.getZjzt().equals(ZjztEnum.yff.getValue()))) { throw new SecurityException("麻精药【" + mjyOld.getMc() + "】不是入库或已发放状态,不能审核编辑"); } - List mjyJcgjList = new ArrayList<>(); - - //region 名称 - if (!mjyOld.getMc().equals(form.getMcbj())) { - MjyJcgj mjyJcgj = new MjyJcgj(); - mjyJcgj.setMjyId(mjyOld.getId()); - mjyJcgj.setJcgjlx(JcgjlxEnum.lc.getValue()); - mjyJcgj.setJcmc(form.getQmyy()); - mjyJcgj.setJcmcys(JcmcysEnum.gd.getValue()); - String jcnr = "字段名:名称" - + ";原值:" + mjyOld.getMc() - + ";新值:" + form.getMcbj() - + ";修改备注:" + mjyOld.getBjbz() - + ";审核备注:" + form.getRemark(); - mjyJcgj.setJcnr(jcnr); - mjyJcgj.setQmrId(qmr.getUserId()); - mjyJcgj.setQmrMc(qmr.getNickName()); - mjyJcgjList.add(mjyJcgj); - - } - //endregion - - //region 浓度 - if (!mjyOld.getNd().equals(form.getNdbj())) { - MjyJcgj mjyJcgj = new MjyJcgj(); - mjyJcgj.setMjyId(mjyOld.getId()); - mjyJcgj.setJcgjlx(JcgjlxEnum.lc.getValue()); - mjyJcgj.setJcmc(form.getQmyy()); - mjyJcgj.setJcmcys(JcmcysEnum.gd.getValue()); - String jcnr = "字段名:浓度" - + ";原值:" + mjyOld.getNd() - + ";新值:" + form.getNdbj() - + ";修改备注:" + mjyOld.getBjbz() - + ";审核备注:" + form.getRemark(); - mjyJcgj.setJcnr(jcnr); - mjyJcgj.setQmrId(qmr.getUserId()); - mjyJcgj.setQmrMc(qmr.getNickName()); - mjyJcgjList.add(mjyJcgj); - - } - //endregion - - //region 浓度单位 - if (!mjyOld.getNddw().equals(form.getNddwbj())) { - MjyJcgj mjyJcgj = new MjyJcgj(); - mjyJcgj.setMjyId(mjyOld.getId()); - mjyJcgj.setJcgjlx(JcgjlxEnum.lc.getValue()); - mjyJcgj.setJcmc(form.getQmyy()); - mjyJcgj.setJcmcys(JcmcysEnum.gd.getValue()); - String jcnr = "字段名:浓度单位" - + ";原值:" + mjyOld.getNddw() - + ";新值:" + form.getNddwbj() - + ";修改备注:" + mjyOld.getBjbz() - + ";审核备注:" + form.getRemark(); - mjyJcgj.setJcnr(jcnr); - mjyJcgj.setQmrId(qmr.getUserId()); - mjyJcgj.setQmrMc(qmr.getNickName()); - mjyJcgjList.add(mjyJcgj); - - } - //endregion - - //region 失效日期 - if (!mjyOld.getSxrq().equals(form.getSxrqbj())) { - MjyJcgj mjyJcgj = new MjyJcgj(); - mjyJcgj.setMjyId(mjyOld.getId()); - mjyJcgj.setJcgjlx(JcgjlxEnum.lc.getValue()); - mjyJcgj.setJcmc(form.getQmyy()); - mjyJcgj.setJcmcys(JcmcysEnum.gd.getValue()); - String jcnr = "字段名:失效日期" - + ";原值:" + mjyOld.getSxrq() - + ";新值:" + form.getSxrqbj() - + ";修改备注:" + mjyOld.getBjbz() - + ";审核备注:" + form.getRemark(); - mjyJcgj.setJcnr(jcnr); - mjyJcgj.setQmrId(qmr.getUserId()); - mjyJcgj.setQmrMc(qmr.getNickName()); - mjyJcgjList.add(mjyJcgj); - - } - //endregion - - //region 存储条件 - if (!mjyOld.getCctj().equals(form.getCctjbj())) { - MjyJcgj mjyJcgj = new MjyJcgj(); - mjyJcgj.setMjyId(mjyOld.getId()); - mjyJcgj.setJcgjlx(JcgjlxEnum.lc.getValue()); - mjyJcgj.setJcmc(form.getQmyy()); - mjyJcgj.setJcmcys(JcmcysEnum.gd.getValue()); - String jcnr = "字段名:存储条件" - + ";原值:" + mjyOld.getCctj() - + ";新值:" + form.getCctjbj() - + ";修改备注:" + mjyOld.getBjbz() - + ";审核备注:" + form.getRemark(); - mjyJcgj.setJcnr(jcnr); - mjyJcgj.setQmrId(qmr.getUserId()); - mjyJcgj.setQmrMc(qmr.getNickName()); - mjyJcgjList.add(mjyJcgj); - + //region 稽查轨迹 + MjyJcgj mjyJcgj = new MjyJcgj(); + mjyJcgj.setMjyId(mjyOld.getId()); + mjyJcgj.setJcgjlx(JcgjlxEnum.lc.getValue()); + mjyJcgj.setJcmc(form.getQmyy()); + if (form.getQmyy().equals("同意编辑")) { + mjyJcgj.setJcmcys(JcmcysEnum.green.getValue()); + } else { + mjyJcgj.setJcmcys(JcmcysEnum.red.getValue()); } + mjyJcgj.setJcnr("申请备注:" + mjyOld.getBjbz() + ";审核备注:" + form.getRemark()); + mjyJcgj.setQmrId(qmr.getUserId()); + mjyJcgj.setQmrMc(qmr.getNickName()); + mjyJcgjService.save(mjyJcgj); //endregion - //region 存储位置 - if (!mjyOld.getCcwz().equals(form.getCcwzbj())) { - MjyJcgj mjyJcgj = new MjyJcgj(); - mjyJcgj.setMjyId(mjyOld.getId()); - mjyJcgj.setJcgjlx(JcgjlxEnum.lc.getValue()); - mjyJcgj.setJcmc(form.getQmyy()); - mjyJcgj.setJcmcys(JcmcysEnum.gd.getValue()); - String jcnr = "字段名:存储位置" - + ";原值:" + mjyOld.getCcwz() - + ";新值:" + form.getCcwzbj() - + ";修改备注:" + mjyOld.getBjbz() - + ";审核备注:" + form.getRemark(); - mjyJcgj.setJcnr(jcnr); - mjyJcgj.setQmrId(qmr.getUserId()); - mjyJcgj.setQmrMc(qmr.getNickName()); - mjyJcgjList.add(mjyJcgj); - mjyOld.setNdbj(form.getNdbj()); - - } - //endregion + //region 更新 if (form.getQmyy().equals("同意编辑")) { - mjyOld.setCcwz(form.getCcwzbj()); - mjyOld.setCctj(form.getCctjbj()); - mjyOld.setSxrq(form.getSxrqbj()); - mjyOld.setNddw(form.getNddwbj()); - mjyOld.setNd(form.getNdbj()); - mjyOld.setMc(form.getMcbj()); + mjyOld.setCcwz(mjyOld.getCcwzbj()); + mjyOld.setCctj(mjyOld.getCctjbj()); + mjyOld.setSxrq(mjyOld.getSxrqbj()); + mjyOld.setNddw(mjyOld.getNddwbj()); + mjyOld.setNd(mjyOld.getNdbj()); + mjyOld.setMc(mjyOld.getMcbj()); } + + //清空编辑信息 mjyOld.setMcbj(null); mjyOld.setNddwbj(null); mjyOld.setNdbj(null); @@ -1283,14 +1078,12 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS mjyOld.setBjrMc(null); mjyOld.setBjzt(BjEnum.wbj.getValue()); this.updateById(mjyOld); - if (mjyJcgjList.size() > 0) { - mjyJcgjService.saveBatch(mjyJcgjList); - } + //endregion } /** - * 修改库存 + * 修改库存 ok * * @param form */ @@ -1312,64 +1105,39 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS if (!(mjyOld.getZjzt().equals(ZjztEnum.rk.getValue()) || mjyOld.getZjzt().equals(ZjztEnum.yff.getValue()))) { throw new SecurityException("麻精药【" + mjyOld.getMc() + "】不是入库或已发放状态,不能修改库存"); } - List mjyJcgjList = new ArrayList<>(); - - //region 库存 - mjyOld.setKcbj(form.getKcbj()); - if (!mjyOld.getKc().equals(form.getKcbj())) { - MjyJcgj mjyJcgj = new MjyJcgj(); - mjyJcgj.setMjyId(mjyOld.getId()); - mjyJcgj.setJcgjlx(JcgjlxEnum.lc.getValue()); - mjyJcgj.setJcmc("修改库存申请"); - mjyJcgj.setJcmcys(JcmcysEnum.gd.getValue()); - String jcnr = "字段名:库存" - + ";原值:" + mjyOld.getKc() - + ";新值:" + form.getKcbj() - + ";修改备注:" + form.getKcbjbz(); - mjyJcgj.setJcnr(jcnr); - mjyJcgj.setQmrId(qmr.getUserId()); - mjyJcgj.setQmrMc(qmr.getNickName()); - mjyJcgjList.add(mjyJcgj); - + List fieldChanges = ObjectCompareUtil.compareObjects(mjyOld, form); + if (fieldChanges.size() == 0) { + throw new SecurityException("你没有修改任何内容"); } - //endregion - - //region 库存单位 - mjyOld.setKcdwbj(form.getKcdwbj()); - - if (!mjyOld.getKcdw().equals(form.getKcdwbj())) { + List mjyJcgjList = new ArrayList<>(); + //region 稽查轨迹 + for (ObjectCompareUtil.FieldChange fieldChange : fieldChanges) { MjyJcgj mjyJcgj = new MjyJcgj(); mjyJcgj.setMjyId(mjyOld.getId()); mjyJcgj.setJcgjlx(JcgjlxEnum.lc.getValue()); mjyJcgj.setJcmc("修改库存申请"); - mjyJcgj.setJcmcys(JcmcysEnum.gd.getValue()); - String jcnr = "字段名:库存单位" - + ";原值:" + mjyOld.getKcdw() - + ";新值:" + form.getKcdwbj() - + ";备注:" + form.getKcbjbz(); - mjyJcgj.setJcnr(jcnr); + mjyJcgj.setJcmcys(JcmcysEnum.green.getValue()); + mjyJcgj.setJcnr(fieldChange.toString()); mjyJcgj.setQmrId(qmr.getUserId()); mjyJcgj.setQmrMc(qmr.getNickName()); mjyJcgjList.add(mjyJcgj); - } //endregion + + mjyOld.setKcdwbj(form.getKcdw()); + mjyOld.setKcbj(form.getKc()); + mjyOld.setKcbjrId(qmr.getUserId()); + mjyOld.setKcbjrMc(qmr.getNickName()); + mjyOld.setKcbjzt(KcbjEnum.shz.getValue()); + mjyOld.setKcbjbz(form.getKcbjbz()); + this.updateById(mjyOld); + mjyJcgjService.saveBatch(mjyJcgjList); - if (mjyJcgjList.size() > 0) { - mjyOld.setKcbjrId(qmr.getUserId()); - mjyOld.setKcbjrMc(qmr.getNickName()); - mjyOld.setKcbjzt(KcbjEnum.shz.getValue()); - mjyOld.setKcbjbz(form.getKcbjbz()); - this.updateById(mjyOld); - mjyJcgjService.saveBatch(mjyJcgjList); - } else { - throw new SecurityException("你没有修改任何内容"); - } } /** - * 审核修改库存 + * 审核修改库存 ok * * @param form */ @@ -1391,67 +1159,42 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS if (!(mjyOld.getZjzt().equals(ZjztEnum.rk.getValue()) || mjyOld.getZjzt().equals(ZjztEnum.yff.getValue()))) { throw new SecurityException("麻精药【" + mjyOld.getMc() + "】不是入库或已发放状态,不能审核修改库存"); } - List mjyJcgjList = new ArrayList<>(); - - //region 库存 - if (!mjyOld.getKc().equals(form.getKcbj())) { - MjyJcgj mjyJcgj = new MjyJcgj(); - mjyJcgj.setMjyId(mjyOld.getId()); - mjyJcgj.setJcgjlx(JcgjlxEnum.lc.getValue()); - mjyJcgj.setJcmc(form.getQmyy()); - mjyJcgj.setJcmcys(JcmcysEnum.gd.getValue()); - String jcnr = "字段名:库存" - + ";原值:" + mjyOld.getKc() - + ";新值:" + form.getKcbj() - + ";申请备注:" + mjyOld.getKcbjbz() - + ";审核备注:" + form.getRemark(); - mjyJcgj.setJcnr(jcnr); - mjyJcgj.setQmrId(qmr.getUserId()); - mjyJcgj.setQmrMc(qmr.getNickName()); - mjyJcgjList.add(mjyJcgj); - - mjyOld.setKc(form.getKcbj()); + //region 稽查轨迹 + MjyJcgj mjyJcgj = new MjyJcgj(); + mjyJcgj.setMjyId(mjyOld.getId()); + mjyJcgj.setJcgjlx(JcgjlxEnum.lc.getValue()); + mjyJcgj.setJcmc(form.getQmyy()); + if (form.getQmyy().equals("同意修改库存")) { + mjyJcgj.setJcmcys(JcmcysEnum.green.getValue()); + } else { + mjyJcgj.setJcmcys(JcmcysEnum.red.getValue()); } + mjyJcgj.setJcnr("申请备注:" + mjyOld.getKcbjbz() + ";审核备注:" + form.getRemark()); + mjyJcgj.setQmrId(qmr.getUserId()); + mjyJcgj.setQmrMc(qmr.getNickName()); + mjyJcgjService.save(mjyJcgj); //endregion - //region 库存单位 - if (!mjyOld.getKcdw().equals(form.getKcdwbj())) { - MjyJcgj mjyJcgj = new MjyJcgj(); - mjyJcgj.setMjyId(mjyOld.getId()); - mjyJcgj.setJcgjlx(JcgjlxEnum.lc.getValue()); - mjyJcgj.setJcmc(form.getQmyy()); - mjyJcgj.setJcmcys(JcmcysEnum.gd.getValue()); - String jcnr = "字段名:库存单位" - + ";原值:" + mjyOld.getKcdw() - + ";新值:" + form.getKcdwbj() - + ";申请备注:" + mjyOld.getKcbjbz() - + ";审核备注:" + form.getRemark(); - mjyJcgj.setJcnr(jcnr); - mjyJcgj.setQmrId(qmr.getUserId()); - mjyJcgj.setQmrMc(qmr.getNickName()); - mjyJcgjList.add(mjyJcgj); - - mjyOld.setKcdw(form.getKcdwbj()); + //region 更新 + if (form.getQmyy().equals("同意修改库存")) { + mjyOld.setKcdw(mjyOld.getKcdwbj()); + mjyOld.setKc(mjyOld.getKcbj()); } - //endregion - mjyOld.setKcbj(null); mjyOld.setKcdwbj(null); mjyOld.setKcbjbz(null); mjyOld.setKcbjzt(KcbjEnum.wbj.getValue()); this.updateById(mjyOld); + //endregion //region 台账 if (form.getQmyy().equals("同意修改库存")) { mjyTzService.saveTz(mjyOld.getId(), "", "", "", "", qmr.getUserId(), qmr.getNickName(), - "修改库存", form.getKcbj(), form.getKcdwbj(), mjyOld.getKcbjbz()); + "修改库存", form.getKc(), form.getKcdw(), mjyOld.getKcbjbz()); } //endregion - if (mjyJcgjList.size() > 0) { - mjyJcgjService.saveBatch(mjyJcgjList); - } } } diff --git a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/ObjectCompareUtil.java b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/ObjectCompareUtil.java new file mode 100644 index 0000000..55cde02 --- /dev/null +++ b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/ObjectCompareUtil.java @@ -0,0 +1,215 @@ +package com.hxhq.business.utils; + +import com.alibaba.fastjson.JSONObject; +import com.hxhq.common.core.utils.DateUtils; +import com.hxhq.common.core.utils.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.lang.reflect.Field; +import java.text.SimpleDateFormat; +import java.util.*; + +/** + * @author tanfei + */ +public class ObjectCompareUtil { + private static final Logger LOG = LoggerFactory.getLogger(ObjectCompareUtil.class.getName()); + + public static void main(String[] args) { + + } + + /** + * 对比两个对象的差异 + * + * @param oldObj 原始对象 + * @param newObj 新对象 + * @return 字段变化列表 + */ + public static List compareObjects(Object oldObj, Object newObj) { + List changes = new ArrayList<>(); + + if (oldObj == null || newObj == null) { + return changes; + } + +// if (!oldObj.getClass().equals(newObj.getClass())) { +// throw new IllegalArgumentException("对比的对象类型必须相同"); +// } + + + // 获取所有字段 + Field[] fields = oldObj.getClass().getDeclaredFields(); + + for (Field field : fields) { + try { + field.setAccessible(true); + + // 如果没有excel注解,跳过字段 + if (StringUtils.isBlank(getFieldLabel(field))) { + continue; + } + String name = field.getName(); + Object oldValue = field.get(oldObj); + String oldValueStr = ""; + String newValueStr = ""; + if (field.getType().getName().equals("java.util.Date")) { + oldValueStr = autoConvert(oldValue, "yyyy-MM-dd HH:mm:ss"); + } else { + oldValueStr = oldValue.toString(); + } + try { + Object newValue = JSONObject.parseObject(JSONObject.toJSONString(newObj)).get(name); + if (field.getType().getName().equals("java.util.Date")) { + newValueStr = autoConvert(newValue, "yyyy-MM-dd HH:mm:ss"); + } else { + newValueStr = newValue.toString(); + } + if (StringUtils.isNoneBlank(oldValueStr) && StringUtils.isNoneBlank(newValueStr)) { + // 对比字段值 + if (!Objects.equals(oldValue, newValue)) { + FieldChange change = new FieldChange(); + change.setFieldName(field.getName()); + change.setFieldLabel(getFieldLabel(field)); + change.setOldValue(oldValueStr); + change.setNewValue(newValueStr); + change.setFieldType(field.getType().getSimpleName()); + changes.add(change); + } + } + + } catch (Exception ex) { + // 忽略没有的字段 + } + + } catch (IllegalAccessException e) { + // 忽略无法访问的字段 + } + } + + return changes; + } + + /** + * 自动识别时间戳类型并转换 + * + * @param timestamp 时间戳(支持Long, Integer, String) + * @param pattern 日期格式 + * @return 格式化后的日期字符串 + */ + public static String autoConvert(Object timestamp, String pattern) { + if (timestamp == null) { + return null; + } + if (timestamp instanceof Date) { + SimpleDateFormat sdf = new SimpleDateFormat(pattern); + return sdf.format(timestamp); + } + + long millis = 0L; + + if (timestamp instanceof Long) { + // 检查是毫秒还是秒 + Long ts = (Long) timestamp; + if (ts > 1000000000000L) { // 毫秒时间戳 + millis = ts; + } else { // 秒时间戳 + millis = ts * 1000L; + } + } else if (timestamp instanceof Integer) { + millis = ((Integer) timestamp) * 1000L; + } else if (timestamp instanceof String) { + try { + String tsStr = (String) timestamp; + if (tsStr.length() == 10) { // 秒时间戳 + millis = Long.parseLong(tsStr) * 1000L; + } else if (tsStr.length() == 13) { // 毫秒时间戳 + millis = Long.parseLong(tsStr); + } else { + throw new IllegalArgumentException("不支持的时间戳格式: " + tsStr); + } + } catch (NumberFormatException e) { + throw new IllegalArgumentException("时间戳格式错误: " + timestamp, e); + } + } else { + throw new IllegalArgumentException("不支持的时间戳类型: " + timestamp.getClass()); + } + + Date date = new Date(millis); + SimpleDateFormat sdf = new SimpleDateFormat(pattern); + return sdf.format(date); + } + + + /** + * 获取字段的中文描述(如果有@Excel注解) + */ + private static String getFieldLabel(Field field) { + // 若依的@Excel注解,可以获取name属性 + if (field.isAnnotationPresent(com.hxhq.common.core.annotation.Excel.class)) { + com.hxhq.common.core.annotation.Excel excel = field.getAnnotation(com.hxhq.common.core.annotation.Excel.class); + return excel.name(); + } + + return null; + } + + /** + * 字段变化实体类 + */ + public static class FieldChange { + private String fieldName; // 字段名 + private String fieldLabel; // 字段描述 + private Object oldValue; // 旧值 + private Object newValue; // 新值 + private String fieldType; // 字段类型 + + // getter和setter + public String getFieldName() { + return fieldName; + } + + public void setFieldName(String fieldName) { + this.fieldName = fieldName; + } + + public String getFieldLabel() { + return fieldLabel; + } + + public void setFieldLabel(String fieldLabel) { + this.fieldLabel = fieldLabel; + } + + public Object getOldValue() { + return oldValue; + } + + public void setOldValue(Object oldValue) { + this.oldValue = oldValue; + } + + public Object getNewValue() { + return newValue; + } + + public void setNewValue(Object newValue) { + this.newValue = newValue; + } + + public String getFieldType() { + return fieldType; + } + + public void setFieldType(String fieldType) { + this.fieldType = fieldType; + } + + @Override + public String toString() { + return String.format("字段名:%s;原值:%s;新值:%s", fieldLabel, oldValue, newValue); + } + } + +}