CZT
2024-03-04 1bb55039e42042aad3433a12b2d48c5a91234210
增加账面库存同步功能
已修改3个文件
已添加3个文件
271 ■■■■■ 文件已修改
src/main/java/com/fzzy/api/entity/Api1211.java 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/api/view/repository/Api1211Rep.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/async/fzzy40/Fzzy40SyncService12.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/async/fzzy40/entity/Fz40DepotBookStore.java 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/async/fzzy40/impl/Fzzy40Sync1211.java 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/async/fzzy40/repository/Fzzy40Sync1211Rep.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/api/entity/Api1211.java
@@ -34,9 +34,8 @@
    
    @JSONField(serialize = false)
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    private Integer id;
    @Column(name = "bizId", length = 60)
    private String id;
    @JSONField(serialize = false)
    @PropertyDef(label = "业务id")
@@ -55,33 +54,33 @@
    @Column(name = "lsxzdm", length = 7)
    private String lsxzdm;
    @PropertyDef(label = "粮食品种代码",required=true)
    @PropertyDef(label = "粮食品种代码")
    @Column(name = "lspzdm", length = 7)
    private String lspzdm;
    @PropertyDef(label = "年度" ,required=true)
    @PropertyDef(label = "年度" )
    @Column(name = "nd", length = 4)
    private String nd;
    @PropertyDef(label = "月份" ,required=true)
    @PropertyDef(label = "月份" )
    @Column(name = "yf", length = 2)
    private String yf;
    @PropertyDef(label = "期初数量(公斤)",required=true )
    @PropertyDef(label = "期初数量(公斤)" )
    @Column(name = "qcsl", precision = 20, scale = 6)
    private double qcsl;
    private Double qcsl;
    @PropertyDef(label = "本期收入数量(公斤)" )
    @Column(name = "bqsrsl", precision = 20, scale = 6)
    private double bqsrsl;
    private Double bqsrsl;
    @PropertyDef(label = "本期支出数量(公斤)" )
    @Column(name = "bqzcsl", precision = 20, scale = 6)
    private double bqzcsl;
    private Double bqzcsl;
    @PropertyDef(label = "期末数量(公斤)" )
    @Column(name = "qmye", precision = 20, scale = 6)
    private double qmye;
    private Double qmye;
    @PropertyDef(label = "月结标志" )
    @Column(name = "yjbz")
src/main/java/com/fzzy/api/view/repository/Api1211Rep.java
@@ -10,12 +10,15 @@
import java.util.Date;
import java.util.List;
public interface Api1211Rep extends JpaRepository<Api1211, Integer>, JpaSpecificationExecutor<Api1211> {
public interface Api1211Rep extends JpaRepository<Api1211, String>, JpaSpecificationExecutor<Api1211> {
    @Transactional
    @Modifying
    @Query("update Api1211 set czbz =:czbz where id=:id")
    void updateStatus(@Param("id") Integer id, @Param("czbz") String czbz);
    void updateStatus(@Param("id") String id, @Param("czbz") String czbz);
    @Query("from Api1211 where kqdm=:kqdm and zhgxsj >=:start and zhgxsj <:end order by zhgxsj ")
    List<Api1211> findPushDataByTime(@Param("kqdm") String kqdm, @Param("start") Date start, @Param("end") Date end);
    @Query("from Api1211 where bizId =:bizId ")
    List<Api1211> getDataByBizId(@Param("bizId") String bizId);
}
src/main/java/com/fzzy/async/fzzy40/Fzzy40SyncService12.java
@@ -23,23 +23,25 @@
    @Autowired
    private Fzzy40Sync1202 fzzySync1202;
    @Autowired
    private Fzzy40Sync1205 fzzySync1205;
    @Autowired
    private Fzzy40Sync1212 fzzySync1212;
    @Autowired
    private Fzzy40Sync1208 fzzySync1208;
    @Autowired
    private Fzzy40Sync1203 fzzySync1203;
    @Autowired
    private Fzzy40Sync1204 fzzySync1204;
    @Autowired
    private Fzzy40Sync1205 fzzySync1205;
    @Autowired
    private Fzzy40Sync1206 fzzySync1206;
    @Autowired
    private Fzzy40Sync1207 fzzySync1207;
    @Autowired
    private Fzzy40Sync1208 fzzySync1208;
    @Autowired
    private Fzzy40Sync1209 fzzySync1209;
    @Autowired
    private Fzzy40Sync1211 fzzySync1211;
    @Autowired
    private Fzzy40Sync1210 fzzySync1210;
    @Autowired
    private Fzzy40Sync1212 fzzySync1212;
    @Autowired
    private Fzzy40Sync1109 fzzySync1109;
    @Autowired
@@ -95,6 +97,9 @@
        //粮食性质转变信息同步
        fzzySync1210.syncData(kqdm, deptId, start, end);
        //账面库存信息同步
        fzzySync1211.syncData(kqdm, deptId, start, end);
        /*-----各省独有接口信息同步-----*/
        //上海市平台2023版
        if (StringUtils.isNotEmpty(param.getPushProtocol()) && PushProtocol.SB_SH_2023.getCode().equals(param.getPushProtocol())) {
@@ -105,7 +110,6 @@
//            //同步市储驳运单
//            fzzySync2104.syncData(param.getKqdm(), param.getDeptId(), param.getStart(), param.getEnd());
        }
        //账面库存信息同步  TODO
    }
src/main/java/com/fzzy/async/fzzy40/entity/Fz40DepotBookStore.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,90 @@
package com.fzzy.async.fzzy40.entity;
import com.alibaba.fastjson.annotation.JSONField;
import com.bstek.dorado.annotation.PropertyDef;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;
/**
 * @author czt
 *
 * æŒ‰ä»“库进行统计,每个月底统计一次(因上海市账面库存接口为按货位统计,转换接口服务时根据省份要求统计成对应的账面库存)
 **/
@Data
@Entity
@Table(name = "D_DEPOT_BOOK_STORE")
public class Fz40DepotBookStore implements Serializable {
    /**
     *
     */
    private static final long serialVersionUID = 1L;
    @Id
    @Column(name = "ID_", length = 40)
    @PropertyDef(label = "主键", description = "规则:仓库编码_yyyyMMdd")
    private String id;
    @Column(name = "COMPANY_ID_", length = 10)
    @PropertyDef(label = "组织编码")
    private String companyId;
    @Column(name = "DEPT_ID_", length = 20)
    @PropertyDef(label = "库区代码")
    private String deptId;
    @Column(name = "DEPOT_ID_", length = 30)
    @PropertyDef(label = "仓库编码")
    private String depotId;
    @Column(name = "lspzdm", length = 7)
    @PropertyDef(label = "粮食品种代码")
    private String lspzdm;
    @PropertyDef(label = "粮食性质代码", description = "目前上海使用")
    @Column(name = "lsxzdm", length = 7)
    private String lsxzdm;
    @Column(name = "nd", length = 4)
    @PropertyDef(label = "年度")
    private String nd;
    @Column(name = "yf", length = 2)
    @PropertyDef(label = "月份")
    private String yf;
    @Column(name = "qcsl", precision = 20, scale = 3)
    @PropertyDef(label = "期初数量", description = "单位:公斤")
    private Double qcsl = 0.0;
    @Column(name = "bqsrsl", precision = 20, scale = 3)
    @PropertyDef(label = "本期收入数量", description = "单位:公斤")
    private Double bqsrsl = 0.0;
    @Column(name = "bqzcsl", precision = 20, scale = 3)
    @PropertyDef(label = "本期支出数量", description = "单位:公斤")
    private Double bqzcsl = 0.0;
    @Column(name = "qmye", precision = 20, scale = 3)
    @PropertyDef(label = "期末数量", description = "单位:公斤")
    private Double qmye = 0.0;
    @Column(name = "yjbz")
    @PropertyDef(label = "月结标志", description = "0:月结;1 æœªæœˆç»“")
    private Integer yjbz;
    @Column(name = "ywrq")
    @PropertyDef(label = "业务日期")
    private Date ywrq;
    @Column(name = "zhgxsj")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    @PropertyDef(label = "最后更新时间")
    private Date zhgxsj;
}
src/main/java/com/fzzy/async/fzzy40/impl/Fzzy40Sync1211.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,113 @@
package com.fzzy.async.fzzy40.impl;
import com.fzzy.api.Constant;
import com.fzzy.api.entity.*;
import com.fzzy.api.service.ApiCommonService;
import com.fzzy.api.service.ApiTriggerService;
import com.fzzy.api.utils.ContextUtil;
import com.fzzy.api.view.repository.*;
import com.fzzy.async.fzzy40.entity.Fz40DepotBookStore;
import com.fzzy.async.fzzy40.repository.Fzzy40Sync1211Rep;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.List;
/**
 * @author czt
 * è´¦é¢åº“å­˜
 */
@Slf4j
@Component
public class Fzzy40Sync1211 {
    @Autowired
    private Fzzy40Sync1211Rep fzzy40Sync1211Rep;
    @Autowired
    private ApiTriggerService apiTriggerService;
    @Autowired
    private Api1211Rep api1211Rep;
    @Autowired
    private ApiCommonService commonService;
    @Autowired
    private ApiLogRep apiLogRep;
    /**
     * åŒæ­¥ç²®é£Ÿåº“å­˜
     *
     * @param deptId
     * @param start
     * @param end
     */
    public void syncData(String kqdm, String deptId, Date start, Date end) {
        log.info("-------------1211接口数据开始同步------------------");
        //同步数据,只记录失败的信息
        ApiLog apiLog = new ApiLog();
        apiLog.setType(ApiLog.TYPE_SYNC);
        apiLog.setKqdm(deptId);
        apiLog.setUploadTime(new Date());
        apiLog.setInteId(Constant.API_CODE_1208);
        apiLog.setStatus(99);
        apiLog.setId(ContextUtil.getUUID());
        try {
            List<Fz40DepotBookStore> list = fzzy40Sync1211Rep.listDepot(deptId, start, end);
            if (null == list || list.isEmpty()) {
                log.info("-------------没有获取到账面库存信息------------------");
                return;
            }
            Api1211 apiData;
            Api1105 api1105;
            List<Api1211> api1211List;
            for (Fz40DepotBookStore fz40DepotBookStore : list) {
                //获取货位信息
                api1105 = commonService.getApi1105Cache(fz40DepotBookStore.getDepotId());
                if (null == api1105) {
                    continue;
                }
                apiData = new Api1211();
                apiData.setId(fz40DepotBookStore.getId());
                apiData.setBizId(fz40DepotBookStore.getId());
                apiData.setKqdm(kqdm);
                apiData.setHwdm(api1105.getHwdm());
                //粮食品种
                String mappingCode = apiTriggerService.getMappingCode(Constant.TRIGGER_P_LSPZ, fz40DepotBookStore.getLspzdm().substring(0, 3));
                apiData.setLspzdm(mappingCode);
                //粮食性质
                mappingCode = apiTriggerService.getMappingCode(Constant.TRIGGER_P_LSXZ, fz40DepotBookStore.getLsxzdm());
                apiData.setLsxzdm(mappingCode);
                apiData.setNd(fz40DepotBookStore.getNd());
                apiData.setYf(fz40DepotBookStore.getYf());
                apiData.setQcsl(fz40DepotBookStore.getQcsl() == null ? 0.0 : fz40DepotBookStore.getQcsl());
                apiData.setBqsrsl(fz40DepotBookStore.getBqsrsl() == null ? 0.0 : fz40DepotBookStore.getBqsrsl());
                apiData.setBqzcsl(fz40DepotBookStore.getBqzcsl() == null ? 0.0 : fz40DepotBookStore.getBqzcsl());
                apiData.setQmye(fz40DepotBookStore.getQmye() == null ? 0.0 : fz40DepotBookStore.getQmye());
                apiData.setYjbz(fz40DepotBookStore.getYjbz());
                apiData.setYwrq(fz40DepotBookStore.getYwrq());
                apiData.setZhgxsj(new Date());
                api1211List = api1211Rep.getDataByBizId(apiData.getBizId());
                if (null == api1211List || api1211List.isEmpty()) {
                    apiData.setCzbz(Constant.CZBZ_I);
                } else {
                    apiData.setCzbz(api1211List.get(0).getCzbz());
                }
                //保存数据
                api1211Rep.save(apiData);
            }
        } catch (Exception e) {
            log.error("---同步失败----{}", e);
            apiLog.setResult("同步失败:" + e.getMessage());
            apiLogRep.save(apiLog);
        }
    }
}
src/main/java/com/fzzy/async/fzzy40/repository/Fzzy40Sync1211Rep.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
package com.fzzy.async.fzzy40.repository;
import com.fzzy.async.fzzy40.entity.Fz40DepotBookStore;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.util.Date;
import java.util.List;
/**
 * ç²®é£Ÿè´­é”€-账面库存
 */
public interface Fzzy40Sync1211Rep extends JpaRepository<Fz40DepotBookStore, String> {
    /**
     * æ ¹æ®åº“区编码及时间获取账面库存信息
     *
     * @return
     */
    @Query("from Fz40DepotBookStore where deptId=:deptId and zhgxsj >=:start and zhgxsj <:end order by zhgxsj ")
    List<Fz40DepotBookStore> listDepot(@Param("deptId") String deptId, @Param("start") Date start, @Param("end") Date end);
}