package jnpf.limsService.impl; import com.alibaba.fastjson.JSON; import jnpf.base.UserInfo; import jnpf.limsEntity.LimsQingyandanEntity; import jnpf.limsEntity.LimsSxtQuyangJihuaRenwuEntity; import jnpf.limsEntity.LimsSxtQuyangJihuaRenwuShijianEntity; import jnpf.limsMapper.LimsSxtQuyangJihuaRenwuMapper; import jnpf.limsMapper.LimsSxtQuyangJihuaRenwuShijianMapper; import jnpf.util.RandomUtil; import jnpf.util.UserProvider; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; import java.util.Date; import java.util.LinkedHashMap; import java.util.Map; /** * 请验单变更后的任务内状态副本同步器。看板只读取 Renwu,不能反向联查请验单。 */ @Service public class LimsSxtRenwuQingyandanZhuangtaiTongbuService { @Autowired private LimsSxtQuyangJihuaRenwuMapper renwuMapper; @Autowired private LimsSxtQuyangJihuaRenwuShijianMapper shijianMapper; public void tongbu(LimsQingyandanEntity qingyandan, String shijianLeixing) { if (qingyandan == null || !StringUtils.hasText(qingyandan.getLaiyuanRenwuId())) { return; } LimsSxtQuyangJihuaRenwuEntity renwu = renwuMapper.selectById(qingyandan.getLaiyuanRenwuId()); if (renwu == null || !qingyandan.getId().equals(renwu.getQingyandanId())) { return; } String zhuangtai = "deleted".equals(qingyandan.getQuyangStatus()) ? "deleted" : qingyandan.getBizStatus(); if (renwuMapper.tongbuQingyandanZhuangtai(renwu.getId(), qingyandan.getId(), zhuangtai) != 1) { return; } Map shuju = new LinkedHashMap<>(); shuju.put("biz_status", qingyandan.getBizStatus()); shuju.put("quyang_status", qingyandan.getQuyangStatus()); shuju.put("jieyang_status", qingyandan.getJieyangStatus()); shuju.put("qingyandan_zhuangtai", zhuangtai); LimsSxtQuyangJihuaRenwuShijianEntity shijian = new LimsSxtQuyangJihuaRenwuShijianEntity(); shijian.setId(RandomUtil.uuId()); shijian.setFTenantId(renwu.getFTenantId()); shijian.setRenwuId(renwu.getId()); shijian.setRenwuShiliId(renwu.getRenwuShiliId()); shijian.setShijianLeixing(shijianLeixing); shijian.setFashengShijian(new Date()); UserInfo user = UserProvider.getUser(); shijian.setCaozuoRenId(user == null ? null : user.getUserId()); shijian.setCaozuoLeixing(user == null ? "system" : "user"); shijian.setGuanlianQingyandanId(qingyandan.getId()); shijian.setXinKuaizhaoHaxi(renwu.getKuaizhaoHaxi()); shijian.setShijianShuju(JSON.toJSONString(shuju)); shijianMapper.insertShijian(shijian); } }